{"version":3,"file":"taiga-ui-core-tokens.mjs","sources":["../../../projects/core/tokens/anchor-support.ts","../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/assets-path.ts","../../../projects/core/tokens/auxiliary.ts","../../../projects/core/tokens/media.ts","../../../projects/core/tokens/breakpoint.ts","../../../projects/core/tokens/common-icons.ts","../../../projects/core/tokens/dark-mode.ts","../../../projects/core/tokens/date-format.ts","../../../projects/core/tokens/i18n.ts","../../../projects/core/tokens/icon.ts","../../../projects/core/tokens/icons.ts","../../../projects/core/tokens/icon-resolver.ts","../../../projects/core/tokens/number-format.ts","../../../projects/core/tokens/selection-stream.ts","../../../projects/core/tokens/textfield.ts","../../../projects/core/tokens/timeline-support.ts","../../../projects/core/tokens/validation-errors.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WA_CSS} from '@ng-web-apis/common';\n\nexport const TUI_ANCHOR_SUPPORT = new InjectionToken<boolean>(\n    ngDevMode ? 'TUI_ANCHOR_SUPPORT' : '',\n    {factory: () => inject(WA_CSS)?.supports('anchor-name', '--my-anchor')},\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_REDUCED_MOTION = new InjectionToken(\n    ngDevMode ? 'TUI_REDUCED_MOTION' : '',\n    {\n        factory: () =>\n            inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\n                .matches ?? false,\n    },\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_REDUCED_MOTION} from './reduced-motion';\n\n/**\n * Speed of all Taiga UI animations. 1 equals 300ms.\n */\nexport const TUI_ANIMATIONS_SPEED = new InjectionToken<number>(\n    ngDevMode ? 'TUI_ANIMATIONS_SPEED' : '',\n    {factory: () => (inject(TUI_REDUCED_MOTION) ? 0 : 1)},\n);\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_ASSETS_PATH = new InjectionToken(ngDevMode ? 'TUI_ASSETS_PATH' : '', {\n    factory: () => 'assets/taiga-ui/icons',\n});\n\nexport function tuiAssetsPathProvider(useValue: string): ValueProvider {\n    return {\n        provide: TUI_ASSETS_PATH,\n        useValue,\n    };\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport const TUI_AUXILIARY = new InjectionToken(ngDevMode ? 'TUI_AUXILIARY' : '', {\n    factory: () => null,\n});\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n    return tuiProvide(TUI_AUXILIARY, x);\n}\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiMedia {\n    readonly desktopLarge: number;\n    readonly desktopSmall: number;\n    readonly mobile: number;\n    readonly tablet?: number;\n}\n\n/**\n * Token for media constant\n */\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>(ngDevMode ? 'TUI_MEDIA' : '', {\n    factory: () => ({\n        mobile: 768,\n        desktopSmall: 1280,\n        desktopLarge: Infinity,\n    }),\n});\n","import {computed, inject, InjectionToken, type Signal} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiWindowSize} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_MEDIA, type TuiMedia} from './media';\n\nexport type TuiBreakpointMediaKey = keyof Omit<TuiMedia, 'tablet'>;\n\nexport const TUI_BREAKPOINT = new InjectionToken<Signal<TuiBreakpointMediaKey>>(\n    ngDevMode ? 'TUI_BREAKPOINT' : '',\n    {\n        factory: () => {\n            const size = tuiWindowSize(inject(WA_WINDOW));\n            const media = inject(TUI_MEDIA);\n            const sorted: number[] = Object.values(media).sort((a, b) => a - b);\n\n            const invert: Record<number, TuiBreakpointMediaKey> = Object.keys(\n                media,\n            ).reduce(\n                (ret, key) => ({\n                    ...ret,\n                    [media[key as TuiBreakpointMediaKey]]: key,\n                }),\n                {},\n            );\n\n            return computed(() => {\n                const {width} = size();\n                const key = sorted.find((size) => size > width);\n                const index = key || sorted[sorted.length - 1] || 0;\n\n                return invert[index] ?? 'desktopLarge';\n            });\n        },\n    },\n);\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\n// TODO: Rename `ellipsis` to `more` in the next major version\nconst COMMON_ICONS: TuiCommonIcons = {\n    check: '@tui.check',\n    close: '@tui.x',\n    error: '@tui.circle-alert',\n    more: '@tui.chevron-right',\n    search: '@tui.search',\n    ellipsis: '@tui.ellipsis',\n    decrement: '@tui.chevron-left',\n    increment: '@tui.chevron-right',\n};\n\nexport interface TuiCommonIcons {\n    readonly check: string;\n    readonly close: string;\n    readonly error: string;\n    readonly more: string;\n    readonly search: string;\n    readonly ellipsis: string;\n    readonly decrement: string;\n    readonly increment: string;\n}\n\nexport const [TUI_COMMON_ICONS, tuiCommonIconsProvider] = tuiCreateOptions(COMMON_ICONS);\n","import {inject, InjectionToken, signal, type WritableSignal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE, WA_WINDOW} from '@ng-web-apis/common';\nimport {filter, fromEvent} from 'rxjs';\n\nexport const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';\n\nexport const TUI_DARK_MODE_KEY = new InjectionToken(\n    ngDevMode ? 'TUI_DARK_MODE_KEY' : '',\n    {factory: () => TUI_DARK_MODE_DEFAULT_KEY},\n);\n\nexport const TUI_DARK_MODE = new InjectionToken<\n    WritableSignal<boolean> & {reset(): void}\n>(ngDevMode ? 'TUI_DARK_MODE' : '', {\n    factory: () => {\n        const storage = inject(WA_LOCAL_STORAGE);\n        const key = inject(TUI_DARK_MODE_KEY);\n        const saved = storage?.getItem(key);\n        const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n        const result = signal(saved ? saved === 'true' : media.matches);\n        // Raw setter that does not persist — used for machine-driven changes.\n        const set = result.set.bind(result);\n\n        // Persist an explicit choice and pin it, even when the value is\n        // unchanged (e.g. picking dark while the system is already dark).\n        const pin = (value: boolean): void => {\n            storage?.setItem(key, String(value));\n            set(value);\n        };\n\n        // Follow the system theme while it has not been pinned (storage empty).\n        fromEvent(media, 'change')\n            .pipe(\n                filter(() => !storage?.getItem(key)),\n                takeUntilDestroyed(),\n            )\n            .subscribe(() => set(media.matches));\n\n        return Object.assign(result, {\n            set: pin,\n            update: (updater: (value: boolean) => boolean) => pin(updater(result())),\n            reset: () => {\n                storage?.removeItem(key);\n                set(media.matches);\n            },\n        });\n    },\n});\n","import {\n    computed,\n    inject,\n    InjectionToken,\n    type Provider,\n    type Signal,\n    signal,\n} from '@angular/core';\nimport {type TuiDateMode} from '@taiga-ui/cdk/date-time';\n\n/**\n * Formatting configuration for displayed dates\n * TODO(v6): move to @taiga-ui/kit and refactor to\n * ```ts\n * import {type MaskitoDateParams} from '@maskito/kit';\n *\n * export type TuiDateFormatSettings = Pick<\n *  Required<MaskitoDateParams>,\n *  'mode' | 'separator'\n * >;\n * ```\n */\nexport interface TuiDateFormatSettings {\n    /**\n     * Date format mode.\n     */\n    readonly mode: TuiDateMode;\n    /**\n     * Separator between date segments\n     * @example 10.02 ('.' by default)\n     */\n    readonly separator: string;\n}\n\n// TODO(v6): delete\nexport const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings = {\n    mode: 'dd/mm/yyyy',\n    separator: '.',\n};\n\n/**\n * Formatting configuration for displayed dates\n * TODO(v6): move to @taiga-ui/kit and refactor to\n * ```ts\n * import {maskitoWithDateDefaults} from '@maskito/kit';\n * import {LOCALE_ID} from '@angular/core';\n *\n * export const TUI_DATE_FORMAT = new InjectionToken<Signal<TuiDateFormatSettings>>(\n *  ngDevMode ? 'TUI_DATE_FORMAT' : '',\n *  {factory: () => signal(maskitoWithDateDefaults({locale: inject(LOCALE_ID)}))}\n * );\n * ```\n */\nexport const TUI_DATE_FORMAT = new InjectionToken<Signal<TuiDateFormatSettings>>(\n    ngDevMode ? 'TUI_DATE_FORMAT' : '',\n    {factory: () => signal(TUI_DEFAULT_DATE_FORMAT)},\n);\n\nexport function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider {\n    return {\n        provide: TUI_DATE_FORMAT,\n        useFactory: (): Signal<TuiDateFormatSettings> => {\n            const parent = inject(TUI_DATE_FORMAT, {optional: true, skipSelf: true});\n\n            return computed(() => ({\n                ...(parent?.() || TUI_DEFAULT_DATE_FORMAT),\n                ...options,\n            }));\n        },\n    };\n}\n","import {InjectionToken} from '@angular/core';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\n\n/**\n * Localized months names\n */\nexport const TUI_MONTHS = new InjectionToken(ngDevMode ? 'TUI_MONTHS' : '', {\n    factory: tuiExtractI18n('months'),\n});\n\n/**\n * i18n 'close' word\n */\nexport const TUI_CLOSE_WORD = new InjectionToken(ngDevMode ? 'TUI_CLOSE_WORD' : '', {\n    factory: tuiExtractI18n('close'),\n});\n\n/**\n * i18n 'back' word\n */\nexport const TUI_BACK_WORD = new InjectionToken(ngDevMode ? 'TUI_BACK_WORD' : '', {\n    factory: tuiExtractI18n('back'),\n});\n\n/**\n * i18n 'clear' word\n */\nexport const TUI_CLEAR_WORD = new InjectionToken(ngDevMode ? 'TUI_CLEAR_WORD' : '', {\n    factory: tuiExtractI18n('clear'),\n});\n\n/**\n * i18n 'Nothing found' message\n */\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n    ngDevMode ? 'TUI_NOTHING_FOUND_MESSAGE' : '',\n    {factory: tuiExtractI18n('nothingFoundMessage')},\n);\n\n/**\n * i18n of error message\n */\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(\n    ngDevMode ? 'TUI_DEFAULT_ERROR_MESSAGE' : '',\n    {factory: tuiExtractI18n('defaultErrorMessage')},\n);\n\n/**\n * spin i18n texts\n */\nexport const TUI_SPIN_TEXTS = new InjectionToken(ngDevMode ? 'TUI_SPIN_TEXTS' : '', {\n    factory: tuiExtractI18n('spinTexts'),\n});\n\n/**\n * calendars i18n texts\n */\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken(\n    ngDevMode ? 'TUI_SHORT_WEEK_DAYS' : '',\n    {factory: tuiExtractI18n('shortWeekDays')},\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_START = new InjectionToken(ngDevMode ? 'TUI_ICON_START' : '', {\n    factory: () => '',\n});\n\nexport const TUI_ICON_END = new InjectionToken(ngDevMode ? 'TUI_ICON_END' : '', {\n    factory: () => '',\n});\n","import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_REGISTRY = new InjectionToken<Record<string, string>>(\n    ngDevMode ? 'TUI_ICON_REGISTRY' : '',\n    {factory: () => ({})},\n);\n\nexport function tuiIconsProvider(icons: Record<string, string>): FactoryProvider {\n    return {\n        provide: TUI_ICON_REGISTRY,\n        useFactory: () => ({\n            ...(inject(TUI_ICON_REGISTRY, {skipSelf: true, optional: true}) || {}),\n            ...Object.fromEntries(\n                Object.entries(icons).map(([key, value]) => [\n                    key,\n                    `\"data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}\"`,\n                ]),\n            ),\n        }),\n    };\n}\n","import {inject, InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\n\nimport {TUI_ASSETS_PATH} from './assets-path';\nimport {TUI_ICON_REGISTRY} from './icons';\n\nexport const TUI_ICON_RESOLVER = new InjectionToken<TuiStringHandler<string>>(\n    ngDevMode ? 'TUI_ICON_RESOLVER' : '',\n    {\n        factory: () => {\n            const path = inject(TUI_ASSETS_PATH);\n\n            // regex for @{any text}. used as a default fallback, returns path to svg from icon pack\n            return (icon) =>\n                `${path}/${icon.replace(/@[a-z]+\\./i, '').replaceAll('.', '/')}.svg`;\n        },\n    },\n);\n\nexport function tuiGetIconMode(icon?: string | null): string | undefined {\n    return icon?.match(/@([^.]*)\\./)?.[1] || icon || undefined;\n}\n\nexport function tuiInjectIconResolver(): TuiStringHandler<string> {\n    const icons = inject(TUI_ICON_REGISTRY);\n    const resolver = inject(TUI_ICON_RESOLVER);\n\n    return (icon) => {\n        if (!icon || icon.includes('/')) {\n            return icon.replace(/@[a-z]+\\./i, '');\n        }\n\n        return icon.startsWith('@font.')\n            ? icon.replace('@font.', '')\n            : (icons[icon] ?? resolver(icon));\n    };\n}\n\nexport function tuiIconResolverProvider(useValue: TuiStringHandler<string>): Provider {\n    return {provide: TUI_ICON_RESOLVER, useValue};\n}\n","import {\n    computed,\n    inject,\n    InjectionToken,\n    type Provider,\n    type Signal,\n    signal,\n} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {type TuiRounding} from '@taiga-ui/cdk/types';\n\nexport type TuiDecimalMode =\n    /**\n     * @deprecated use `TuiNumberFormatSettings[minimumFractionDigits]` instead\n     */\n    | 'always' // TODO(v6): delete\n    | 'not-zero'\n    | 'pad';\nexport type TuiDecimalSymbol = ',' | '.';\n\n/**\n * TODO(v6): use `MaskitoNumberParams` from `@maskito/kit`\n * ```ts\n * export interface TuiNumberFormatSettings extends Pick<\n *     Required<MaskitoNumberParams>,\n *     | 'decimalSeparator'\n *     | 'maximumFractionDigits'\n *     | 'minimumFractionDigits'\n *     | 'minusSign'\n *     | 'negativePattern'\n *     | 'thousandSeparator'\n *     | 'thousandSeparatorPattern'\n * > {...}\n * ```\n * It's a temporary workaround to preserve backward compatibility\n * while avoiding the need to add @maskito/kit as a peer-dependency of @taiga-ui/core.\n */\ninterface MaskitoNumberParams {\n    decimalSeparator: string;\n    thousandSeparator: string;\n    thousandSeparatorPattern?(digits: string): readonly string[];\n    minusSign?: string;\n    negativePattern?: 'minusFirst' | 'prefixFirst';\n    maximumFractionDigits?: number;\n    minimumFractionDigits?: number;\n}\n\n/**\n * Formatting configuration for displayed numbers\n * TODO(v6): move TuiNumberFormatSettings (and its dependants) to `@taiga-ui/kit`\n */\nexport interface TuiNumberFormatSettings extends MaskitoNumberParams {\n    /**\n     * @deprecated use `maximumFractionDigits` instead\n     */\n    readonly precision: number;\n    /**\n     * Rounding method.\n     */\n    readonly rounding: TuiRounding;\n    /**\n     * Decimal part display mode. ('pad' by default)\n     */\n    readonly decimalMode: TuiDecimalMode;\n}\n\n// TODO(v6): delete\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n    precision: Number.NaN,\n    decimalSeparator: '.',\n    thousandSeparator: CHAR_NO_BREAK_SPACE,\n    rounding: 'truncate',\n    decimalMode: 'pad',\n    negativePattern: 'prefixFirst',\n    thousandSeparatorPattern: (digits) => digits.match(/\\d{1,3}(?=(?:\\d{3})*$)/g) ?? [],\n};\n\n/**\n * Formatting configuration for displayed numbers\n * TODO(v6): move to @taiga-ui/kit and refactor to\n * ```ts\n * import {maskitoWithNumberDefaults} from '@maskito/kit';\n * import {LOCALE_ID} from '@angular/core';\n *\n * export const TUI_NUMBER_FORMAT = new InjectionToken<Signal<TuiNumberFormatSettings>>(\n *  ngDevMode ? 'TUI_NUMBER_FORMAT' : '',\n *  {\n *      factory: () =>\n *          signal({\n *              ...maskitoWithNumberDefaults({locale: inject(LOCALE_ID)}),\n *              maximumFractionDigits: Number.NaN,\n *              rounding: 'truncate',\n *              decimalMode: 'pad',\n *          })\n *  },\n);\n * ```\n */\nexport const TUI_NUMBER_FORMAT = new InjectionToken<Signal<TuiNumberFormatSettings>>(\n    ngDevMode ? 'TUI_NUMBER_FORMAT' : '',\n    {factory: () => signal(TUI_DEFAULT_NUMBER_FORMAT)},\n);\n\nexport function tuiNumberFormatProvider(\n    options: Partial<TuiNumberFormatSettings>,\n): Provider {\n    return {\n        provide: TUI_NUMBER_FORMAT,\n        useFactory: (): Signal<TuiNumberFormatSettings> => {\n            const parent = inject(TUI_NUMBER_FORMAT, {optional: true, skipSelf: true});\n\n            return computed(() => ({\n                ...(parent?.() || TUI_DEFAULT_NUMBER_FORMAT),\n                ...options,\n            }));\n        },\n    };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, type Observable, share, switchMap, takeUntil} from 'rxjs';\n\n/**\n * A stream of possible selection changes\n */\nexport const TUI_SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n    ngDevMode ? 'TUI_SELECTION_STREAM' : '',\n    {\n        factory: () => {\n            const doc = inject(DOCUMENT);\n\n            return merge(\n                tuiTypedFromEvent(doc, 'selectionchange'),\n                tuiTypedFromEvent(doc, 'mouseup'),\n                tuiTypedFromEvent(doc, 'mousedown').pipe(\n                    switchMap(() =>\n                        tuiTypedFromEvent(doc, 'mousemove').pipe(\n                            takeUntil(tuiTypedFromEvent(doc, 'mouseup')),\n                        ),\n                    ),\n                ),\n                tuiTypedFromEvent(doc, 'keydown'),\n                tuiTypedFromEvent(doc, 'keyup'),\n            ).pipe(share());\n        },\n    },\n);\n","import {InjectionToken, type WritableSignal} from '@angular/core';\n\nexport const TUI_TEXTFIELD_VALUE = new InjectionToken<WritableSignal<string>>(\n    ngDevMode ? 'TUI_TEXTFIELD_VALUE' : '',\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_CSS} from '@ng-web-apis/common';\n\nexport const TUI_TIMELINE_SUPPORT = new InjectionToken<boolean>(\n    ngDevMode ? 'TUI_TIMELINE_SUPPORT' : '',\n    {factory: () => inject(WA_CSS)?.supports('animation-timeline', '--name')},\n);\n","import {InjectionToken, type Provider, type Signal} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\ntype ValidationValue = Record<string, PolymorpheusContent | Signal<PolymorpheusContent>>;\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<ValidationValue>(\n    ngDevMode ? 'TUI_VALIDATION_ERRORS' : '',\n    {factory: () => ({})},\n);\n\nexport const tuiValidationErrorsProvider = (\n    valueOrFactory: ValidationValue | (() => ValidationValue),\n): Provider => tuiProvideOptions(TUI_VALIDATION_ERRORS, valueOrFactory, {});\n","import {inject, InjectionToken, type Provider, type Type} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiRectAccessor} from '@taiga-ui/core/classes';\n\n/**\n * Viewport accessor\n */\nexport const TUI_VIEWPORT = new InjectionToken<TuiRectAccessor>(\n    ngDevMode ? 'TUI_VIEWPORT' : '',\n    {\n        factory: () => {\n            const win = inject(WA_WINDOW);\n\n            return {\n                type: 'viewport',\n                getClientRect() {\n                    const {height = 0, offsetTop = 0} = win.visualViewport || {};\n\n                    const rect = {\n                        top: 0,\n                        left: 0,\n                        right: win.innerWidth,\n                        bottom: win.innerHeight,\n                        width: win.innerWidth,\n                        height: height + offsetTop || win.innerHeight,\n                        x: 0,\n                        y: 0,\n                    };\n\n                    return {\n                        ...rect,\n                        toJSON: () => JSON.stringify(rect),\n                    };\n                },\n            };\n        },\n    },\n);\n\nexport function tuiAsViewport(accessor: Type<TuiRectAccessor>): Provider {\n    return tuiProvide(TUI_VIEWPORT, accessor);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAGO,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAChD,SAAS,GAAG,oBAAoB,GAAG,EAAE,EACrC,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,EAAC;;ACFpE,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAChD,SAAS,GAAG,oBAAoB,GAAG,EAAE,EACrC;AACI,IAAA,OAAO,EAAE,MACL,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,UAAU,GAAG,kCAAkC;AACxE,SAAA,OAAO,IAAI,KAAK;AAC5B,CAAA;;ACLL;;AAEG;AACI,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC,EAAC,OAAO,EAAE,OAAO,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAC;;ACPlD,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAE;AAClF,IAAA,OAAO,EAAE,MAAM,uBAAuB;AACzC,CAAA;AAEK,SAAU,qBAAqB,CAAC,QAAgB,EAAA;IAClD,OAAO;AACH,QAAA,OAAO,EAAE,eAAe;QACxB,QAAQ;KACX;AACL;;ACRO,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;AAC9E,IAAA,OAAO,EAAE,MAAM,IAAI;AACtB,CAAA;AAEK,SAAU,cAAc,CAAC,CAAgB,EAAA;AAC3C,IAAA,OAAO,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACvC;;ACAA;;AAEG;AACI,MAAM,SAAS,GAAG,IAAI,cAAc,CAAW,SAAS,GAAG,WAAW,GAAG,EAAE,EAAE;AAChF,IAAA,OAAO,EAAE,OAAO;AACZ,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,YAAY,EAAE,QAAQ;KACzB,CAAC;AACL,CAAA;;ACVM,MAAM,cAAc,GAAG,IAAI,cAAc,CAC5C,SAAS,GAAG,gBAAgB,GAAG,EAAE,EACjC;IACI,OAAO,EAAE,MAAK;QACV,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,MAAM,MAAM,GAAa,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEnE,QAAA,MAAM,MAAM,GAA0C,MAAM,CAAC,IAAI,CAC7D,KAAK,CACR,CAAC,MAAM,CACJ,CAAC,GAAG,EAAE,GAAG,MAAM;AACX,YAAA,GAAG,GAAG;AACN,YAAA,CAAC,KAAK,CAAC,GAA4B,CAAC,GAAG,GAAG;SAC7C,CAAC,EACF,EAAE,CACL;QAED,OAAO,QAAQ,CAAC,MAAK;AACjB,YAAA,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC;AAC/C,YAAA,MAAM,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;AAEnD,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,cAAc;AAC1C,QAAA,CAAC,CAAC;IACN,CAAC;AACJ,CAAA;;AChCL;AACA,MAAM,YAAY,GAAmB;AACjC,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,SAAS,EAAE,oBAAoB;CAClC;AAaM,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,gBAAgB,CAAC,YAAY;;ACpBhF,MAAM,yBAAyB,GAAG;AAElC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAC/C,SAAS,GAAG,mBAAmB,GAAG,EAAE,EACpC,EAAC,OAAO,EAAE,MAAM,yBAAyB,EAAC;AAGvC,MAAM,aAAa,GAAG,IAAI,cAAc,CAE7C,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;IAChC,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,8BAA8B,CAAC;AAC1E,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;;QAE/D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;AAInC,QAAA,MAAM,GAAG,GAAG,CAAC,KAAc,KAAU;YACjC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC;AACd,QAAA,CAAC;;AAGD,QAAA,SAAS,CAAC,KAAK,EAAE,QAAQ;AACpB,aAAA,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EACpC,kBAAkB,EAAE;aAEvB,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAExC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACzB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,MAAM,EAAE,CAAC,OAAoC,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,KAAK,EAAE,MAAK;AACR,gBAAA,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;AACxB,gBAAA,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,CAAC;AACJ,SAAA,CAAC;IACN,CAAC;AACJ,CAAA;;ACdD;AACO,MAAM,uBAAuB,GAA0B;AAC1D,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,SAAS,EAAE,GAAG;;AAGlB;;;;;;;;;;;;AAYG;AACI,MAAM,eAAe,GAAG,IAAI,cAAc,CAC7C,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAClC,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,uBAAuB,CAAC,EAAC;AAG9C,SAAU,qBAAqB,CAAC,OAAuC,EAAA;IACzE,OAAO;AACH,QAAA,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,MAAoC;AAC5C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAExE,YAAA,OAAO,QAAQ,CAAC,OAAO;AACnB,gBAAA,IAAI,MAAM,IAAI,IAAI,uBAAuB,CAAC;AAC1C,gBAAA,GAAG,OAAO;AACb,aAAA,CAAC,CAAC;QACP,CAAC;KACJ;AACL;;ACnEA;;AAEG;AACI,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,EAAE;AACxE,IAAA,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;AACpC,CAAA;AAED;;AAEG;AACI,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,gBAAgB,GAAG,EAAE,EAAE;AAChF,IAAA,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;AACnC,CAAA;AAED;;AAEG;AACI,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;AAC9E,IAAA,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC;AAClC,CAAA;AAED;;AAEG;AACI,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,gBAAgB,GAAG,EAAE,EAAE;AAChF,IAAA,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;AACnC,CAAA;AAED;;AAEG;AACI,MAAM,yBAAyB,GAAG,IAAI,cAAc,CACvD,SAAS,GAAG,2BAA2B,GAAG,EAAE,EAC5C,EAAC,OAAO,EAAE,cAAc,CAAC,qBAAqB,CAAC,EAAC;AAGpD;;AAEG;AACI,MAAM,yBAAyB,GAAG,IAAI,cAAc,CACvD,SAAS,GAAG,2BAA2B,GAAG,EAAE,EAC5C,EAAC,OAAO,EAAE,cAAc,CAAC,qBAAqB,CAAC,EAAC;AAGpD;;AAEG;AACI,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,gBAAgB,GAAG,EAAE,EAAE;AAChF,IAAA,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC;AACvC,CAAA;AAED;;AAEG;AACI,MAAM,mBAAmB,GAAG,IAAI,cAAc,CACjD,SAAS,GAAG,qBAAqB,GAAG,EAAE,EACtC,EAAC,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,EAAC;;ACzDvC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,gBAAgB,GAAG,EAAE,EAAE;AAChF,IAAA,OAAO,EAAE,MAAM,EAAE;AACpB,CAAA;AAEM,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,cAAc,GAAG,EAAE,EAAE;AAC5E,IAAA,OAAO,EAAE,MAAM,EAAE;AACpB,CAAA;;ACNM,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAC/C,SAAS,GAAG,mBAAmB,GAAG,EAAE,EACpC,EAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAC;AAGnB,SAAU,gBAAgB,CAAC,KAA6B,EAAA;IAC1D,OAAO;AACH,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,OAAO;AACf,YAAA,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,EAAE,CAAC;YACtE,GAAG,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;gBACxC,GAAG;AACH,gBAAA,CAAA,kCAAA,EAAqC,kBAAkB,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG;AACpE,aAAA,CAAC,CACL;SACJ,CAAC;KACL;AACL;;ACdO,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAC/C,SAAS,GAAG,mBAAmB,GAAG,EAAE,EACpC;IACI,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;;QAGpC,OAAO,CAAC,IAAI,KACR,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,IAAA,CAAM;IAC5E,CAAC;AACJ,CAAA;AAGC,SAAU,cAAc,CAAC,IAAoB,EAAA;AAC/C,IAAA,OAAO,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS;AAC9D;SAEgB,qBAAqB,GAAA;AACjC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAE1C,OAAO,CAAC,IAAI,KAAI;QACZ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QACzC;AAEA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ;cACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AAC3B,eAAG,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,IAAA,CAAC;AACL;AAEM,SAAU,uBAAuB,CAAC,QAAkC,EAAA;AACtE,IAAA,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAC;AACjD;;AC0BA;AACO,MAAM,yBAAyB,GAA4B;IAC9D,SAAS,EAAE,MAAM,CAAC,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,eAAe,EAAE,aAAa;AAC9B,IAAA,wBAAwB,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE;;AAGvF;;;;;;;;;;;;;;;;;;;;AAoBG;AACI,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAC/C,SAAS,GAAG,mBAAmB,GAAG,EAAE,EACpC,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAC;AAGhD,SAAU,uBAAuB,CACnC,OAAyC,EAAA;IAEzC,OAAO;AACH,QAAA,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,MAAsC;AAC9C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAE1E,YAAA,OAAO,QAAQ,CAAC,OAAO;AACnB,gBAAA,IAAI,MAAM,IAAI,IAAI,yBAAyB,CAAC;AAC5C,gBAAA,GAAG,OAAO;AACb,aAAA,CAAC,CAAC;QACP,CAAC;KACJ;AACL;;AChHA;;AAEG;AACI,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC;IACI,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,OAAO,KAAK,CACR,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,EACzC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EACjC,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,MACN,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAC/C,CACJ,CACJ,EACD,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EACjC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAClC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACJ,CAAA;;AC1BE,MAAM,mBAAmB,GAAG,IAAI,cAAc,CACjD,SAAS,GAAG,qBAAqB,GAAG,EAAE;;ACAnC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EAAC;;ACCtE,MAAM,qBAAqB,GAAG,IAAI,cAAc,CACnD,SAAS,GAAG,uBAAuB,GAAG,EAAE,EACxC,EAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAC;AAGlB,MAAM,2BAA2B,GAAG,CACvC,cAAyD,KAC9C,iBAAiB,CAAC,qBAAqB,EAAE,cAAc,EAAE,EAAE;;ACR1E;;AAEG;AACI,MAAM,YAAY,GAAG,IAAI,cAAc,CAC1C,SAAS,GAAG,cAAc,GAAG,EAAE,EAC/B;IACI,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;QAE7B,OAAO;AACH,YAAA,IAAI,EAAE,UAAU;YAChB,aAAa,GAAA;AACT,gBAAA,MAAM,EAAC,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAC,GAAG,GAAG,CAAC,cAAc,IAAI,EAAE;AAE5D,gBAAA,MAAM,IAAI,GAAG;AACT,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,GAAG,CAAC,UAAU;oBACrB,MAAM,EAAE,GAAG,CAAC,WAAW;oBACvB,KAAK,EAAE,GAAG,CAAC,UAAU;AACrB,oBAAA,MAAM,EAAE,MAAM,GAAG,SAAS,IAAI,GAAG,CAAC,WAAW;AAC7C,oBAAA,CAAC,EAAE,CAAC;AACJ,oBAAA,CAAC,EAAE,CAAC;iBACP;gBAED,OAAO;AACH,oBAAA,GAAG,IAAI;oBACP,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBACrC;YACL,CAAC;SACJ;IACL,CAAC;AACJ,CAAA;AAGC,SAAU,aAAa,CAAC,QAA+B,EAAA;AACzD,IAAA,OAAO,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC7C;;AC1CA;;AAEG;;;;"}