/*
 * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
 */

import { l } from '@atproto/lex'
import * as ThemeColor from './color.defs.js'

const $nsid = 'site.standard.theme.basic'

export { $nsid }

/** A simplified theme definition for publications, providing basic color customization for content display across different platforms and applications. */
type Main = {
  $type: 'site.standard.theme.basic'

  /**
   * Color used for links and button backgrounds.
   */
  accent: l.$Typed<ThemeColor.Rgb> | l.Unknown$TypedObject

  /**
   * Color used for content background.
   */
  background: l.$Typed<ThemeColor.Rgb> | l.Unknown$TypedObject

  /**
   * Color used for content text.
   */
  foreground: l.$Typed<ThemeColor.Rgb> | l.Unknown$TypedObject

  /**
   * Color used for button text.
   */
  accentForeground: l.$Typed<ThemeColor.Rgb> | l.Unknown$TypedObject
}

export type { Main }

/** A simplified theme definition for publications, providing basic color customization for content display across different platforms and applications. */
const main = /*#__PURE__*/ l.record<'tid', Main>(
  'tid',
  $nsid,
  /*#__PURE__*/ l.object({
    accent: /*#__PURE__*/ l.typedUnion(
      [/*#__PURE__*/ l.typedRef<ThemeColor.Rgb>((() => ThemeColor.rgb) as any)],
      false,
    ),
    background: /*#__PURE__*/ l.typedUnion(
      [/*#__PURE__*/ l.typedRef<ThemeColor.Rgb>((() => ThemeColor.rgb) as any)],
      false,
    ),
    foreground: /*#__PURE__*/ l.typedUnion(
      [/*#__PURE__*/ l.typedRef<ThemeColor.Rgb>((() => ThemeColor.rgb) as any)],
      false,
    ),
    accentForeground: /*#__PURE__*/ l.typedUnion(
      [/*#__PURE__*/ l.typedRef<ThemeColor.Rgb>((() => ThemeColor.rgb) as any)],
      false,
    ),
  }),
)

export { main }

export const $type = $nsid
export const $isTypeOf = /*#__PURE__*/ main.isTypeOf.bind(main)
export const $build = /*#__PURE__*/ main.build.bind(main)
export const $assert = /*#__PURE__*/ main.assert.bind(main)
export const $check = /*#__PURE__*/ main.check.bind(main)
export const $cast = /*#__PURE__*/ main.cast.bind(main)
export const $ifMatches = /*#__PURE__*/ main.ifMatches.bind(main)
export const $matches = /*#__PURE__*/ main.matches.bind(main)
export const $parse = /*#__PURE__*/ main.parse.bind(main)
export const $safeParse = /*#__PURE__*/ main.safeParse.bind(main)
export const $validate = /*#__PURE__*/ main.validate.bind(main)
export const $safeValidate = /*#__PURE__*/ main.safeValidate.bind(main)
