{"version":3,"file":"taiga-ui-core-directives-appearance.mjs","sources":["../../../projects/core/directives/appearance/appearance.options.ts","../../../projects/core/directives/appearance/appearance.directive.ts","../../../projects/core/directives/appearance/appearance.bindings.ts","../../../projects/core/directives/appearance/with-appearance.ts","../../../projects/core/directives/appearance/taiga-ui-core-directives-appearance.ts"],"sourcesContent":["import {type ExistingProvider, InjectionToken, type ProviderToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\n/**\n * Bundled appearances for autocomplete purposes, not exported on purpose\n */\ntype Appearance =\n    | string\n    | 'accent'\n    | 'action-destructive'\n    | 'action-grayscale'\n    | 'action'\n    | 'flat-destructive'\n    | 'flat-grayscale'\n    | 'flat'\n    | 'floating'\n    | 'icon'\n    | 'info'\n    | 'negative'\n    | 'neutral'\n    | 'outline-destructive'\n    | 'outline-grayscale'\n    | 'outline'\n    | 'positive'\n    | 'primary-destructive'\n    | 'primary-grayscale'\n    | 'primary'\n    | 'secondary-destructive'\n    | 'secondary-grayscale'\n    | 'secondary'\n    | 'textfield'\n    | 'warning';\n\nexport interface TuiAppearanceOptions {\n    readonly appearance: Appearance | '';\n}\n\nexport const TUI_APPEARANCE_DEFAULT_OPTIONS: TuiAppearanceOptions = {appearance: ''};\n\nexport const TUI_APPEARANCE_OPTIONS = new InjectionToken(\n    ngDevMode ? 'TUI_APPEARANCE_OPTIONS' : '',\n    {factory: () => TUI_APPEARANCE_DEFAULT_OPTIONS},\n);\n\nexport function tuiAppearanceOptionsProvider(\n    token: ProviderToken<TuiAppearanceOptions>,\n): ExistingProvider {\n    return tuiProvide(TUI_APPEARANCE_OPTIONS, token);\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    Directive,\n    inject,\n    input,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TUI_APPEARANCE_OPTIONS} from './appearance.options';\n\n@Component({\n    template: '',\n    styles: `\n        [data-tui-version='${TUI_VERSION}'] {\n            @import '@taiga-ui/styles/components/appearance.less';\n        }\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: `tui-appearance-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n    selector: '[tuiAppearance]',\n    hostDirectives: [TuiTransitioned],\n    host: {\n        'data-tui-version': TUI_VERSION,\n        tuiAppearance: '',\n        '[attr.data-appearance]': 'tuiAppearance()',\n        '[attr.data-focus]': 'tuiAppearanceFocus()',\n        '[attr.data-mode]': 'modes()',\n        '[attr.data-state]': 'tuiAppearanceState()',\n    },\n})\nexport class TuiAppearance {\n    protected readonly nothing = tuiWithStyles(Styles);\n\n    protected readonly modes = computed((mode = this.tuiAppearanceMode()) =>\n        !mode || tuiIsString(mode) ? mode : mode.join(' '),\n    );\n\n    public readonly tuiAppearance = input(inject(TUI_APPEARANCE_OPTIONS).appearance);\n    public readonly tuiAppearanceState = input<TuiInteractiveState | null>(null);\n    public readonly tuiAppearanceFocus = input<boolean | null>(null);\n    public readonly tuiAppearanceMode = input<string | readonly string[] | null>(null);\n}\n","import {type InjectOptions, type Signal, type WritableSignal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TuiAppearance} from './appearance.directive';\n\ntype A = string;\n\ntype S = TuiInteractiveState | null;\n\ntype F = boolean | null;\n\ntype M = string | readonly string[] | null;\n\nexport function tuiAppearance(\n    value: A | WritableSignal<A>,\n    options?: InjectOptions,\n): WritableSignal<A>;\nexport function tuiAppearance(value: Signal<A>, options?: InjectOptions): Signal<A>;\nexport function tuiAppearance(\n    value: A | Signal<A>,\n    options: InjectOptions = {},\n): Signal<A> {\n    return tuiDirectiveBinding(TuiAppearance, 'tuiAppearance', value, options);\n}\n\nexport function tuiAppearanceState(\n    value: S | WritableSignal<S>,\n    options?: InjectOptions,\n): WritableSignal<S>;\nexport function tuiAppearanceState(value: Signal<S>, options?: InjectOptions): Signal<S>;\nexport function tuiAppearanceState(\n    value: S | Signal<S>,\n    options: InjectOptions = {},\n): Signal<S> {\n    return tuiDirectiveBinding(TuiAppearance, 'tuiAppearanceState', value, options);\n}\n\nexport function tuiAppearanceFocus(\n    value: F | WritableSignal<F>,\n    options?: InjectOptions,\n): WritableSignal<F>;\nexport function tuiAppearanceFocus(value: Signal<F>, options?: InjectOptions): Signal<F>;\nexport function tuiAppearanceFocus(\n    value: F | Signal<F>,\n    options: InjectOptions = {},\n): Signal<F> {\n    return tuiDirectiveBinding(TuiAppearance, 'tuiAppearanceFocus', value, options);\n}\n\nexport function tuiAppearanceMode(\n    value: M | WritableSignal<M>,\n    options?: InjectOptions,\n): WritableSignal<M>;\nexport function tuiAppearanceMode(value: Signal<M>, options?: InjectOptions): Signal<M>;\nexport function tuiAppearanceMode(\n    value: M | Signal<M>,\n    options: InjectOptions = {},\n): Signal<M> {\n    return tuiDirectiveBinding(TuiAppearance, 'tuiAppearanceMode', value, options);\n}\n","import {Directive} from '@angular/core';\n\nimport {TuiAppearance} from './appearance.directive';\n\n@Directive({\n    hostDirectives: [\n        {\n            directive: TuiAppearance,\n            inputs: [\n                'tuiAppearance: appearance',\n                'tuiAppearanceState',\n                'tuiAppearanceFocus',\n                'tuiAppearanceMode',\n            ],\n        },\n    ],\n})\nexport class TuiWithAppearance {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiAppearance"],"mappings":"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"}