@thl-ui/angular 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +65 -2
- package/fesm2022/thl-ui-angular.mjs +6840 -0
- package/fesm2022/thl-ui-angular.mjs.map +1 -0
- package/package.json +50 -4
- package/types/thl-ui-angular.d.ts +1665 -0
- package/types/thl-ui-angular.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thl-ui-angular.mjs","sources":["../../src/lib/core.ts","../../src/lib/basic.ts","../../src/lib/overlay.ts","../../src/lib/nav.ts","../../src/lib/form.ts","../../src/lib/data.ts","../../src/lib/layout.ts","../../src/public-api.ts","../../src/thl-ui-angular.ts"],"sourcesContent":["import {\n Injectable,\n InjectionToken,\n Pipe,\n PipeTransform,\n inject,\n signal,\n computed,\n makeEnvironmentProviders,\n DestroyRef,\n Component,\n ChangeDetectionStrategy,\n input,\n ViewEncapsulation,\n type Signal,\n type EnvironmentProviders,\n} from '@angular/core';\nimport { DomSanitizer, type SafeHtml } from '@angular/platform-browser';\nimport {\n createThl,\n createToastManager,\n bem,\n type ThlInstance,\n type ThlUserConfig,\n type ThlConfig,\n type Store,\n type TParams,\n type ToastManager,\n type Toast,\n type ThlComponentDefaults,\n type Modifiers,\n} from '@thl-ui/core';\nimport { registerIcons, resolveIcon, iconToSvg, type IconRegistry } from '@thl-ui/icons';\n\nexport const THL_CONFIG = new InjectionToken<ThlUserConfig & { icons?: IconRegistry; instance?: ThlInstance }>('THL_CONFIG');\n\n/** Bridge a core Store to an Angular signal. */\nexport function storeSignal<T>(store: Store<T>, destroyRef?: DestroyRef): Signal<T> {\n const s = signal(store.get());\n const off = store.subscribe((v) => s.set(v));\n destroyRef?.onDestroy(off);\n return s.asReadonly();\n}\n\n/** Global config service (signals). */\n@Injectable({ providedIn: 'root' })\nexport class ThlConfigService {\n private readonly opts = inject(THL_CONFIG, { optional: true }) ?? {};\n readonly instance: ThlInstance;\n private readonly _config: ReturnType<typeof signal<ThlConfig>>;\n readonly config: Signal<ThlConfig>;\n readonly prefix: Signal<string>;\n readonly toast: ToastManager;\n readonly toasts: Signal<Toast[]>;\n\n constructor() {\n const { icons, instance, ...cfg } = this.opts;\n if (icons) registerIcons(icons);\n this.instance = instance ?? createThl(cfg);\n this._config = signal(this.instance.get());\n this.instance.subscribe((c) => this._config.set(c));\n this.config = this._config.asReadonly();\n this.prefix = computed(() => this._config().prefix);\n const t = this.instance.get().components.Toast ?? {};\n this.toast = createToastManager({ duration: t.duration, max: t.max, position: t.position });\n this.toasts = storeSignal(this.toast.state);\n inject(DestroyRef).onDestroy(() => this.instance.destroy());\n }\n set(patch: Partial<ThlConfig>) {\n this.instance.set(patch);\n }\n /** BEM class builder bound to current prefix. */\n bem(block: string) {\n return bem(block, this.prefix());\n }\n defaults<K extends keyof ThlComponentDefaults>(name: K, props: Record<string, unknown> = {}): NonNullable<ThlComponentDefaults[K]> {\n const out: Record<string, unknown> = { ...((this._config().components[name] ?? {}) as object) };\n for (const k in props) if (props[k] !== undefined) out[k] = props[k];\n return out as NonNullable<ThlComponentDefaults[K]>;\n }\n}\n\n/** i18n service — `t()` is signal-tracked so templates/computed re-evaluate on locale change. */\n@Injectable({ providedIn: 'root' })\nexport class ThlI18nService {\n private readonly cfg = inject(ThlConfigService);\n private readonly rev = signal(0);\n readonly locale = signal(this.cfg.instance.i18n.getLocale());\n constructor() {\n const off = this.cfg.instance.i18n.subscribe((l) => {\n this.locale.set(l);\n this.rev.update((r) => r + 1);\n });\n inject(DestroyRef).onDestroy(off);\n }\n t(key: string, params?: TParams): string {\n this.rev();\n return this.cfg.instance.i18n.t(key, params);\n }\n te(key: string): boolean {\n this.rev();\n return this.cfg.instance.i18n.te(key);\n }\n n(v: number, o?: Intl.NumberFormatOptions) {\n this.locale();\n return this.cfg.instance.i18n.n(v, o);\n }\n d(v: Date | number | string, o?: Intl.DateTimeFormatOptions) {\n this.locale();\n return this.cfg.instance.i18n.d(v, o);\n }\n intlLocale() {\n this.locale();\n return this.cfg.instance.i18n.intlLocale();\n }\n setLocale(l: string) {\n this.cfg.set({ locale: l });\n }\n}\n\n/** `{{ 'common.ok' | thlT }}` / `{{ 'pagination.total' | thlT: { count: 5 } }}` */\n@Pipe({ name: 'thlT', pure: false })\nexport class ThlTranslatePipe implements PipeTransform {\n private readonly i18n = inject(ThlI18nService);\n transform(key: string, params?: TParams): string {\n return this.i18n.t(key, params);\n }\n}\n\n/** `[class]=\"'btn' | thlBem: { primary: true }\"` */\n@Pipe({ name: 'thlBem', pure: false })\nexport class ThlBemPipe implements PipeTransform {\n private readonly cfg = inject(ThlConfigService);\n transform(block: string, modsOrEl?: Modifiers | string, mods?: Modifiers): string {\n const b = this.cfg.bem(block);\n return typeof modsOrEl === 'string' ? b(modsOrEl, mods) : b(modsOrEl);\n }\n}\n\n/** Toast service. Render <thl-toaster/> once (included in <thl-app-layout/>). */\n@Injectable({ providedIn: 'root' })\nexport class ThlToastService {\n private readonly cfg = inject(ThlConfigService);\n show = (...a: Parameters<ToastManager['show']>) => this.cfg.toast.show(...a);\n success = (...a: Parameters<ToastManager['success']>) => this.cfg.toast.success(...a);\n info = (...a: Parameters<ToastManager['info']>) => this.cfg.toast.info(...a);\n warning = (...a: Parameters<ToastManager['warning']>) => this.cfg.toast.warning(...a);\n error = (...a: Parameters<ToastManager['error']>) => this.cfg.toast.error(...a);\n dismiss = (id: string) => this.cfg.toast.dismiss(id);\n}\n\n/** Standalone providers: `bootstrapApplication(App, { providers: [provideThlUI({ locale: 'vi', theme: 'green-dark' })] })` */\nexport function provideThlUI(config: ThlUserConfig & { icons?: IconRegistry; instance?: ThlInstance } = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: THL_CONFIG, useValue: config }]);\n}\n\n/** <thl-icon name=\"bell\" /> */\n@Component({\n selector: 'thl-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { style: 'display:inline-flex;line-height:0', '[innerHTML]': 'svg()' },\n template: '',\n})\nexport class ThlIconComponent {\n private readonly san = inject(DomSanitizer);\n readonly name = input.required<string>();\n readonly size = input<number | string>('1em');\n readonly label = input<string>();\n readonly strokeWidth = input(2);\n readonly svg = computed<SafeHtml>(() => {\n const def = resolveIcon(this.name());\n return def ? this.san.bypassSecurityTrustHtml(iconToSvg(def, { size: this.size(), label: this.label(), strokeWidth: this.strokeWidth() })) : '';\n });\n}\n","import {\n Component,\n Directive,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n output,\n computed,\n signal,\n inject,\n booleanAttribute,\n ElementRef,\n contentChild,\n} from '@angular/core';\nimport { cx, type ThlSemanticColor } from '@thl-ui/core';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe } from './core';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\n\n/** <button thl-button variant=\"primary\"> or <a thl-button href=...> — attribute component keeps native semantics. */\n@Component({\n ...base,\n selector: 'button[thl-button], a[thl-button]',\n imports: [ThlIconComponent],\n host: {\n '[class]': 'cls()',\n '[attr.aria-busy]': 'loading() || null',\n '[attr.disabled]': 'isButton && (disabled() || loading()) ? \"\" : null',\n '[attr.aria-disabled]': '!isButton && disabled() || null',\n '(click)': 'ripple($any($event))',\n },\n template: `@if (label()) {\n <span [class]=\"b('label')\">{{ label() }}</span>\n }\n @if (loading()) {\n <span [class]=\"b('spinner')\" aria-hidden=\"true\"></span>\n } @else if (icon()) {\n <thl-icon [name]=\"icon()!\" [class]=\"b('icon')\" />\n }\n <ng-content />\n @if (iconRight()) {\n <thl-icon [name]=\"iconRight()!\" [class]=\"b('icon')\" />\n }`,\n})\nexport class ThlButtonComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly el = inject(ElementRef<HTMLElement>);\n readonly isButton = this.el.nativeElement.tagName === 'BUTTON';\n readonly variant = input<string>();\n readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>();\n readonly outline = input(undefined, { transform: booleanAttribute });\n readonly rounded = input(undefined, { transform: booleanAttribute });\n readonly circle = input(false, { transform: booleanAttribute });\n readonly block = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly noRipple = input(false, { transform: booleanAttribute });\n readonly icon = input<string>();\n readonly iconRight = input<string>();\n readonly label = input<string>();\n readonly b = (el: string) => this.cfg.bem('btn')(el);\n readonly cls = computed(() => {\n const d = this.cfg.defaults('Button', { variant: this.variant(), size: this.size(), outline: this.outline(), rounded: this.rounded() });\n return cx(\n this.cfg.bem('btn')({\n [(d.variant as string) ?? 'default']: true,\n outline: d.outline,\n rounded: d.rounded,\n circle: this.circle(),\n block: this.block(),\n size: d.size && d.size !== 'md' ? d.size : undefined,\n }),\n { 'is-loading': this.loading() },\n );\n });\n ripple(e: MouseEvent) {\n if (this.noRipple() || this.disabled()) return;\n const el = this.el.nativeElement,\n r = el.getBoundingClientRect(),\n s = document.createElement('span'),\n d = Math.max(r.width, r.height);\n s.className = `${this.cfg.prefix()}-btn__ripple`;\n Object.assign(s.style, { width: `${d}px`, height: `${d}px`, left: `${e.clientX - r.left - d / 2}px`, top: `${e.clientY - r.top - d / 2}px` });\n el.appendChild(s);\n setTimeout(() => s.remove(), 600);\n }\n}\n\n@Component({ ...base, selector: 'thl-button-group', host: { role: 'group', '[class]': 'cls()' }, template: '<ng-content />' })\nexport class ThlButtonGroupComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly vertical = input(false, { transform: booleanAttribute });\n readonly justified = input(false, { transform: booleanAttribute });\n readonly cls = computed(() => this.cfg.bem('btn-group')({ vertical: this.vertical(), justified: this.justified() }));\n}\n\n@Component({\n ...base,\n selector: 'thl-badge',\n host: { '[class]': 'cls()' },\n template: `@if (!dot()) {\n <ng-content />\n }`,\n})\nexport class ThlBadgeComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly color = input<ThlSemanticColor>('default');\n readonly size = input<'xs' | 'sm' | 'md'>('md');\n readonly dot = input(false, { transform: booleanAttribute });\n readonly pill = input(true, { transform: booleanAttribute });\n readonly cls = computed(() =>\n this.cfg.bem('badge')({ [this.color()]: true, size: this.size() !== 'md' ? this.size() : undefined, dot: this.dot(), square: !this.pill() }),\n );\n}\n\n@Component({\n ...base,\n selector: 'thl-label',\n imports: [ThlTranslatePipe],\n host: { '[class]': 'cls()' },\n template: `<ng-content />\n @if (closable()) {\n <button type=\"button\" [class]=\"b('close')\" [attr.aria-label]=\"'common.remove' | thlT\" (click)=\"closed.emit()\">×</button>\n }`,\n})\nexport class ThlLabelComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly color = input<string>('default');\n readonly rounded = input(false, { transform: booleanAttribute });\n readonly outline = input(false, { transform: booleanAttribute });\n readonly closable = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n readonly b = (e: string) => this.cfg.bem('label')(e);\n readonly cls = computed(() => this.cfg.bem('label')({ [this.color()]: true, rounded: this.rounded(), outline: this.outline() }));\n}\n\n@Component({\n ...base,\n selector: 'thl-avatar',\n imports: [ThlTranslatePipe],\n host: { '[class]': 'cls()', '[style.--_size]': 'px()', '[attr.title]': 'name()' },\n template: `@if (src()) {\n <img [src]=\"src()\" [alt]=\"name() ?? ''\" />\n } @else {\n {{ initials() }}\n }\n @if (status()) {\n <span [class]=\"statusCls()\" role=\"img\" [attr.aria-label]=\"'layout.' + status() | thlT\"></span>\n }`,\n})\nexport class ThlAvatarComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly src = input<string>();\n readonly name = input<string>();\n readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl' | number>('md');\n readonly status = input<'online' | 'offline' | 'away' | 'busy'>();\n readonly shape = input<'circle' | 'rounded' | 'square'>('circle');\n readonly initials = computed(\n () =>\n this.name()\n ?.split(/\\s+/)\n .map((w) => w[0])\n .slice(0, 2)\n .join('') ?? '',\n );\n readonly px = computed(() => (typeof this.size() === 'number' ? `${this.size()}px` : null));\n readonly cls = computed(() => {\n const s = this.size();\n return this.cfg.bem('avatar')({\n size: typeof s === 'string' && s !== 'md' ? s : undefined,\n rounded: this.shape() === 'rounded',\n square: this.shape() === 'square',\n });\n });\n readonly statusCls = computed(() => this.cfg.bem('avatar')('status', { [this.status() ?? '']: true }));\n}\n\n@Component({ ...base, selector: 'thl-spinner', host: { role: 'status', '[class]': 'cls()', '[attr.aria-label]': 'aria()' }, template: '' })\nexport class ThlSpinnerComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly aria = computed(() => this.label() ?? this.i18n.t('common.loading'));\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly label = input<string>();\n readonly cls = computed(() => this.cfg.bem('spinner')({ [this.size()]: this.size() !== 'md' }));\n}\n\n/* ---------------- Card / Panel / Well / Ribbon / Alert ---------------- */\n/** Marker for <div thlCardActions> projected into the card header. */\n@Directive({ selector: '[thlCardActions]', standalone: true })\nexport class ThlCardActionsDirective {}\n\n@Component({\n ...base,\n selector: 'thl-card',\n host: { '[class]': 'cls()' },\n template: `<ng-content select=\"[thlCardMedia]\" />\n @if (title() || actions()) {\n <div [class]=\"b('header')\">\n <div>\n <h2 [class]=\"b('title')\">{{ title() }}</h2>\n @if (subtitle()) {\n <p [class]=\"b('subtitle')\">{{ subtitle() }}</p>\n }\n </div>\n <div [class]=\"b('actions')\"><ng-content select=\"[thlCardActions]\" /></div>\n </div>\n }\n <div [class]=\"b('body')\"><ng-content /></div>\n <ng-content select=\"[thlCardFooter]\" />`,\n})\nexport class ThlCardComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly title = input<string>();\n readonly subtitle = input<string>();\n readonly shadow = input(undefined, { transform: booleanAttribute });\n readonly bordered = input(undefined, { transform: booleanAttribute });\n readonly flush = input(false, { transform: booleanAttribute });\n readonly actions = contentChild(ThlCardActionsDirective);\n readonly b = (e: string) => this.cfg.bem('card')(e);\n readonly cls = computed(() => {\n const d = this.cfg.defaults('Card', { shadow: this.shadow(), bordered: this.bordered() });\n return this.cfg.bem('card')({ shadow: d.shadow, borderless: d.bordered === false, flush: this.flush() });\n });\n}\n\n@Component({\n ...base,\n selector: 'thl-panel',\n imports: [ThlIconComponent, ThlTranslatePipe, ThlSpinnerComponent],\n host: { '[class]': 'cls()', '[style.display]': 'gone() ? \"none\" : null' },\n template: `@if (title() || collapsible() || dismissible()) {\n <div [class]=\"b('heading')\">\n <span>{{ title() }}</span>\n <div [class]=\"b('actions')\">\n <ng-content select=\"[thlPanelActions]\" />\n @if (expandable()) {\n <button type=\"button\" (click)=\"full.set(!full())\" [attr.aria-label]=\"(full() ? 'common.collapse' : 'common.expand') | thlT\">\n <thl-icon [name]=\"full() ? 'minimize-2' : 'maximize-2'\" />\n </button>\n }\n @if (collapsible()) {\n <button\n type=\"button\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed()\"\n [attr.aria-label]=\"(isCollapsed() ? 'common.expand' : 'common.collapse') | thlT\"\n >\n <thl-icon [name]=\"isCollapsed() ? 'plus' : 'minus'\" />\n </button>\n }\n @if (dismissible()) {\n <button type=\"button\" (click)=\"gone.set(true); dismissed.emit()\" [attr.aria-label]=\"'common.close' | thlT\"><thl-icon name=\"x\" /></button>\n }\n </div>\n </div>\n }\n <div [class]=\"b('wrapper')\">\n <div>\n <div [class]=\"b('body')\"><ng-content /></div>\n <ng-content select=\"[thlPanelFooter]\" />\n </div>\n </div>\n @if (loading()) {\n <div [class]=\"prefix() + '-block-overlay'\" aria-busy=\"true\">\n <thl-spinner />\n @if (loadingText()) {\n <span>{{ loadingText() }}</span>\n }\n </div>\n }`,\n})\nexport class ThlPanelComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly prefix = this.cfg.prefix;\n readonly title = input<string>();\n readonly color = input<string>('default');\n readonly collapsible = input(false, { transform: booleanAttribute });\n readonly collapsed = input<boolean | undefined>(undefined);\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly expandable = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly loadingText = input<string>();\n readonly collapsedChange = output<boolean>();\n readonly dismissed = output<void>();\n readonly inner = signal(false);\n readonly gone = signal(false);\n readonly full = signal(false);\n readonly isCollapsed = computed(() => this.collapsed() ?? this.inner());\n readonly b = (e: string) => this.cfg.bem('panel')(e);\n readonly cls = computed(() => cx(this.cfg.bem('panel')({ [this.color()]: true }), { 'is-collapsed': this.isCollapsed(), 'is-fullscreen': this.full() }));\n toggle() {\n this.inner.set(!this.isCollapsed());\n this.collapsedChange.emit(this.inner());\n }\n}\n\n@Component({ ...base, selector: 'thl-well', host: { '[class]': 'cls()' }, template: '<ng-content />' })\nexport class ThlWellComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly size = input<'sm' | 'lg'>();\n readonly cls = computed(() => this.cfg.bem('well')({ [this.size() ?? '']: !!this.size() }));\n}\n\n@Component({\n ...base,\n selector: 'thl-ribbon',\n host: { '[class]': 'wrap()' },\n template: `<div [class]=\"rib()\">{{ text() }}</div>\n <div [class]=\"prefix() + '-ribbon__content'\"><ng-content /></div>`,\n})\nexport class ThlRibbonComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly prefix = this.cfg.prefix;\n readonly text = input.required<string>();\n readonly color = input<string>('primary');\n readonly variant = input<'default' | 'bookmark' | 'corner' | 'vertical-left' | 'vertical-right' | 'badge'>('default');\n readonly position = input<'left' | 'right'>('left');\n readonly placement = input<'top' | 'bottom'>('top');\n private readonly vert = computed(() => this.variant() === 'vertical-left' || this.variant() === 'vertical-right');\n readonly wrap = computed(() =>\n this.cfg.bem('ribbon-wrapper')({ reverse: this.position() === 'right', bottom: this.placement() === 'bottom', vertical: this.vert() }),\n );\n readonly rib = computed(() =>\n this.cfg.bem('ribbon')({\n [this.color()]: true,\n [this.variant()]: this.variant() !== 'default',\n right: this.position() === 'right' && !this.vert(),\n left: this.position() === 'left' && this.variant() === 'badge',\n bottom: this.placement() === 'bottom',\n }),\n );\n}\n\nconst alertIcons: Record<string, string> = { success: 'circle-check', danger: 'circle-x', warning: 'triangle-alert', info: 'info', primary: 'info' };\n@Component({\n ...base,\n selector: 'thl-alert',\n imports: [ThlIconComponent, ThlTranslatePipe],\n host: { '[class]': 'cls()', '[attr.role]': 'role()', '[style.display]': 'open() ? null : \"none\"' },\n template: `@if (image()) {\n <img [class]=\"b('img')\" [src]=\"image()\" alt=\"\" />\n }\n @if (iconName()) {\n <span [class]=\"b('icon')\"><thl-icon [name]=\"iconName()!\" /></span>\n }\n <div [class]=\"b('content')\">\n @if (title()) {\n <h2 [class]=\"b('title')\">{{ title() }}</h2>\n }\n <ng-content />\n </div>\n @if (dismissible()) {\n <button type=\"button\" [class]=\"b('close')\" [attr.aria-label]=\"'common.close' | thlT\" (click)=\"open.set(false); closed.emit()\">×</button>\n }`,\n})\nexport class ThlAlertComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly type = input<ThlSemanticColor>('info');\n readonly title = input<string>();\n readonly icon = input<string | boolean>();\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly soft = input(false, { transform: booleanAttribute });\n readonly image = input<string>();\n readonly closed = output<void>();\n readonly open = signal(true);\n readonly b = (e: string) => this.cfg.bem('alert')(e);\n readonly role = computed(() => (this.type() === 'danger' || this.type() === 'warning' ? 'alert' : 'status'));\n readonly iconName = computed(() => {\n const i = this.icon();\n return i === true || (i as unknown) === '' ? (alertIcons[this.type()] ?? 'info') : typeof i === 'string' ? i : undefined;\n });\n readonly cls = computed(() => this.cfg.bem('alert')({ [this.type()]: true, soft: this.soft() }));\n}\n","import {\n Component,\n Directive,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Injectable,\n input,\n output,\n model,\n computed,\n signal,\n inject,\n booleanAttribute,\n effect,\n ElementRef,\n DestroyRef,\n viewChild,\n Injector,\n type TemplateRef,\n} from '@angular/core';\nimport { NgTemplateOutlet, DecimalPipe } from '@angular/common';\nimport { cx, focusTrap, scrollLock, clickOutside, computePosition, uid, type Placement, type ThlSemanticColor } from '@thl-ui/core';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe } from './core';\nimport { ThlButtonComponent } from './basic';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\n\n/** Moves the host element to <body> while alive (Teleport). */\nfunction portal(el: HTMLElement, destroyRef: DestroyRef) {\n const marker = document.createComment('thl-portal');\n el.parentNode?.insertBefore(marker, el);\n document.body.appendChild(el);\n destroyRef.onDestroy(() => el.remove());\n}\n\n/* ---------------- Modal ---------------- */\n@Component({\n ...base,\n selector: 'thl-modal',\n imports: [ThlTranslatePipe],\n template: `@if (open()) {\n <div [class]=\"backdropCls()\" (mousedown)=\"onBackdrop($event)\">\n <div #dlg role=\"dialog\" aria-modal=\"true\" [attr.aria-labelledby]=\"title() ? titleId : null\" tabindex=\"-1\" [class]=\"dialogCls()\">\n @if (title() || !hideClose()) {\n <div [class]=\"b('header')\">\n <h2 [id]=\"titleId\" [class]=\"b('title')\">{{ title() }}<ng-content select=\"[thlModalTitle]\" /></h2>\n @if (!hideClose()) {\n <button type=\"button\" [class]=\"b('close')\" [attr.aria-label]=\"'modal.close' | thlT\" (click)=\"close()\">×</button>\n }\n </div>\n }\n <div [class]=\"b('body')\"><ng-content /></div>\n <ng-content select=\"[thlModalFooter]\" />\n </div>\n </div>\n }`,\n})\nexport class ThlModalComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly injector = inject(Injector);\n readonly open = model(false);\n readonly title = input<string>();\n readonly size = input<'sm' | 'md' | 'lg' | 'xl' | 'full'>();\n readonly closeOnBackdrop = input<boolean | undefined>(undefined);\n readonly closeOnEsc = input<boolean | undefined>(undefined);\n readonly centered = input<boolean | undefined>(undefined);\n readonly scrollable = input(false, { transform: booleanAttribute });\n readonly hideClose = input(false, { transform: booleanAttribute });\n readonly modalClass = input<string>();\n readonly closed = output<void>();\n readonly dlg = viewChild<ElementRef<HTMLElement>>('dlg');\n readonly titleId = uid('modal-title');\n readonly d = computed(() =>\n this.cfg.defaults('Modal', { size: this.size(), closeOnBackdrop: this.closeOnBackdrop(), closeOnEsc: this.closeOnEsc(), centered: this.centered() }),\n );\n readonly b = (e: string) => this.cfg.bem('modal')(e);\n readonly backdropCls = computed(() => this.cfg.bem('modal-backdrop')({ centered: this.d().centered }));\n readonly dialogCls = computed(() => {\n const s = this.d().size ?? 'md';\n return cx(this.cfg.bem('modal')({ [s]: s !== 'md', scrollable: this.scrollable() }), this.modalClass());\n });\n private release: (() => void) | null = null;\n private onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this.d().closeOnEsc !== false) {\n e.stopPropagation();\n this.close();\n }\n };\n constructor() {\n portal(this.host.nativeElement, inject(DestroyRef));\n effect(\n () => {\n const el = this.dlg()?.nativeElement;\n this.teardown();\n if (this.open() && el) {\n const rel = focusTrap(el),\n unlock = scrollLock();\n document.addEventListener('keydown', this.onKey);\n this.release = () => {\n rel();\n unlock();\n document.removeEventListener('keydown', this.onKey);\n };\n }\n },\n { injector: this.injector },\n );\n inject(DestroyRef).onDestroy(() => this.teardown());\n }\n private teardown() {\n this.release?.();\n this.release = null;\n }\n onBackdrop(e: MouseEvent) {\n if (e.target === e.currentTarget && this.d().closeOnBackdrop !== false) this.close();\n }\n close() {\n this.open.set(false);\n this.closed.emit();\n }\n}\n\n/* ---------------- Confirm dialog ---------------- */\nexport interface ConfirmOptions {\n title?: string;\n text?: string;\n icon?: 'warning' | 'danger' | 'success' | 'info' | 'question';\n confirmText?: string;\n cancelText?: string;\n confirmVariant?: ThlSemanticColor;\n showCancel?: boolean;\n}\n@Injectable({ providedIn: 'root' })\nexport class ThlModalService {\n readonly state = signal<(ConfirmOptions & { resolve: (v: boolean) => void }) | null>(null);\n hosts = 0;\n confirm(opts: ConfirmOptions = {}): Promise<boolean> {\n return new Promise((resolve) => {\n if (!this.hosts) {\n resolve(window.confirm(opts.title ?? ''));\n return;\n }\n this.state.set({ ...opts, resolve });\n });\n }\n}\n@Component({\n ...base,\n selector: 'thl-confirm-host',\n imports: [ThlModalComponent, ThlButtonComponent, ThlIconComponent, ThlTranslatePipe],\n template: `<thl-modal [open]=\"!!svc.state()\" (openChange)=\"!$event && done(false)\" [hideClose]=\"true\" [modalClass]=\"prefix() + '-modal--confirm'\">\n <div [class]=\"iconCls()\"><thl-icon [name]=\"iconName()\" /></div>\n <h2>{{ svc.state()?.title ?? ('modal.confirmTitle' | thlT) }}</h2>\n <p>{{ svc.state()?.text ?? ('modal.confirmText' | thlT) }}</p>\n <div thlModalFooter [class]=\"prefix() + '-modal__footer'\">\n @if (svc.state()?.showCancel !== false) {\n <button thl-button (click)=\"done(false)\">{{ svc.state()?.cancelText ?? ('common.cancel' | thlT) }}</button>\n }\n <button thl-button [variant]=\"confirmVariant()\" (click)=\"done(true)\">{{ svc.state()?.confirmText ?? ('common.ok' | thlT) }}</button>\n </div>\n </thl-modal>`,\n})\nexport class ThlConfirmHostComponent {\n readonly svc = inject(ThlModalService);\n private readonly cfg = inject(ThlConfigService);\n readonly prefix = this.cfg.prefix;\n readonly ic = computed(() => this.svc.state()?.icon ?? 'warning');\n readonly iconName = computed(() => ({ warning: 'triangle-alert', danger: 'circle-x', success: 'check', info: 'info', question: 'circle-help' })[this.ic()]);\n readonly iconCls = computed(() => this.cfg.bem('modal')('confirm-icon', { [this.ic()]: true }));\n readonly confirmVariant = computed(() => this.svc.state()?.confirmVariant ?? (this.ic() === 'danger' || this.ic() === 'warning' ? 'danger' : 'primary'));\n constructor() {\n this.svc.hosts++;\n inject(DestroyRef).onDestroy(() => this.svc.hosts--);\n }\n done(v: boolean) {\n this.svc.state()?.resolve(v);\n this.svc.state.set(null);\n }\n}\n\n/* ---------------- Drawer ---------------- */\n@Component({\n ...base,\n selector: 'thl-drawer',\n imports: [ThlTranslatePipe],\n template: `@if (open()) {\n <div [class]=\"prefix() + '-drawer-backdrop'\" (click)=\"close()\"></div>\n }\n <aside\n #panel\n tabindex=\"-1\"\n role=\"dialog\"\n [attr.aria-modal]=\"open()\"\n [attr.aria-hidden]=\"!open()\"\n [attr.aria-label]=\"title()\"\n [attr.inert]=\"open() ? null : ''\"\n [class]=\"cls()\"\n >\n <div [class]=\"b('header')\">\n <span>{{ title() }}</span\n ><button type=\"button\" [class]=\"b('close')\" (click)=\"close()\" [attr.aria-label]=\"'common.close' | thlT\">×</button>\n </div>\n <div [class]=\"b('body')\"><ng-content /></div>\n </aside>`,\n})\nexport class ThlDrawerComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly prefix = this.cfg.prefix;\n readonly open = model(false);\n readonly title = input<string>();\n readonly side = input<'start' | 'end'>('end');\n readonly wide = input(false, { transform: booleanAttribute });\n readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n readonly b = (e: string) => this.cfg.bem('drawer')(e);\n readonly cls = computed(() => cx(this.cfg.bem('drawer')({ start: this.side() === 'start', wide: this.wide() }), { 'is-open': this.open() }));\n private onKey = (e: KeyboardEvent) => e.key === 'Escape' && this.close();\n constructor() {\n portal(inject(ElementRef).nativeElement, inject(DestroyRef));\n effect(() => {\n if (this.open()) {\n document.addEventListener('keydown', this.onKey);\n queueMicrotask(() => this.panel()?.nativeElement.focus());\n } else document.removeEventListener('keydown', this.onKey);\n });\n inject(DestroyRef).onDestroy(() => document.removeEventListener('keydown', this.onKey));\n }\n close() {\n this.open.set(false);\n }\n}\n\n/* ---------------- Tooltip / Popover (wrap content) ---------------- */\n@Directive()\nabstract class FloatingBase {\n protected readonly cfg = inject(ThlConfigService);\n protected readonly host = inject(ElementRef<HTMLElement>);\n readonly placement = input<Placement>('top');\n readonly visible = signal(false);\n readonly pos = signal<{ top: string; left: string }>({ top: '-9999px', left: '-9999px' });\n readonly id = uid('float');\n readonly float = viewChild<ElementRef<HTMLElement>>('float');\n protected update = () => {\n const f = this.float()?.nativeElement;\n const a = (this.host.nativeElement.firstElementChild as HTMLElement) ?? this.host.nativeElement;\n if (!f) return;\n const r = f.getBoundingClientRect();\n const p = computePosition(a.getBoundingClientRect(), { width: r.width, height: r.height }, this.placement());\n this.pos.set({ top: `${p.top}px`, left: `${p.left}px` });\n };\n constructor() {\n effect(() => {\n const el = this.float()?.nativeElement;\n if (this.visible() && el) {\n document.body.appendChild(el);\n requestAnimationFrame(this.update);\n window.addEventListener('scroll', this.update, true);\n window.addEventListener('resize', this.update);\n } else {\n window.removeEventListener('scroll', this.update, true);\n window.removeEventListener('resize', this.update);\n }\n });\n inject(DestroyRef).onDestroy(() => {\n this.float()?.nativeElement.remove();\n window.removeEventListener('scroll', this.update, true);\n window.removeEventListener('resize', this.update);\n });\n }\n}\n@Component({\n ...base,\n selector: 'thl-tooltip',\n host: {\n style: 'display:inline-flex',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focusin)': 'show()',\n '(focusout)': 'hide()',\n '[attr.aria-describedby]': 'visible() ? id : null',\n },\n template: `<ng-content />\n @if (visible()) {\n <div #float [id]=\"id\" role=\"tooltip\" [class]=\"cls()\" [style.position]=\"'absolute'\" [style.top]=\"pos().top\" [style.left]=\"pos().left\">{{ content() }}</div>\n }`,\n})\nexport class ThlTooltipComponent extends FloatingBase {\n readonly content = input.required<string>();\n readonly color = input<ThlSemanticColor>();\n readonly delay = input<number>();\n private timer?: ReturnType<typeof setTimeout>;\n readonly cls = computed(() => this.cfg.bem('tooltip')({ [this.color() ?? '']: !!this.color() }));\n show() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => this.visible.set(true), (this.cfg.defaults('Tooltip', { delay: this.delay() }).delay as number) ?? 100);\n }\n hide() {\n clearTimeout(this.timer);\n this.visible.set(false);\n }\n}\n@Component({\n ...base,\n selector: 'thl-popover',\n imports: [NgTemplateOutlet],\n host: {\n style: 'display:inline-flex',\n '(click)': 'trigger() === \"click\" && toggle()',\n '(mouseenter)': 'trigger() === \"hover\" && visible.set(true)',\n '(mouseleave)': 'trigger() === \"hover\" && visible.set(false)',\n },\n template: `<ng-content />\n @if (visible()) {\n <div\n #float\n [id]=\"id\"\n role=\"dialog\"\n [class]=\"cls()\"\n [style.position]=\"'absolute'\"\n [style.top]=\"pos().top\"\n [style.left]=\"pos().left\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (title()) {\n <div [class]=\"b('title')\">{{ title() }}</div>\n }\n <div [class]=\"b('body')\">\n @if (contentTpl()) {\n <ng-container [ngTemplateOutlet]=\"contentTpl()!\" />\n } @else {\n {{ content() }}\n }\n </div>\n </div>\n }`,\n})\nexport class ThlPopoverComponent extends FloatingBase {\n override readonly placement = input<Placement>('bottom');\n readonly title = input<string>();\n readonly content = input<string>();\n readonly contentTpl = input<TemplateRef<unknown>>();\n readonly color = input<ThlSemanticColor>();\n readonly trigger = input<'click' | 'hover'>('click');\n readonly b = (e: string) => this.cfg.bem('popover')(e);\n readonly cls = computed(() => this.cfg.bem('popover')({ [this.color() ?? '']: !!this.color() }));\n private off: (() => void) | null = null;\n constructor() {\n super();\n effect(() => {\n const t = this.host.nativeElement.firstElementChild as HTMLElement | null;\n const v = this.visible();\n if (!t || t.getAttribute('role') === 'dialog') return;\n t.setAttribute('aria-haspopup', 'dialog');\n t.setAttribute('aria-expanded', String(v));\n if (v) t.setAttribute('aria-controls', this.id);\n else t.removeAttribute('aria-controls');\n });\n effect(() => {\n this.off?.();\n this.off = null;\n if (this.visible() && this.trigger() === 'click')\n setTimeout(() => (this.off = clickOutside([this.host.nativeElement, this.float()?.nativeElement], () => this.visible.set(false))));\n });\n inject(DestroyRef).onDestroy(() => this.off?.());\n }\n toggle() {\n this.visible.update((v) => !v);\n }\n}\n\n/* ---------------- Dropdown ---------------- */\nexport interface DropdownItem {\n key: string;\n label?: string;\n icon?: string;\n href?: string;\n disabled?: boolean;\n danger?: boolean;\n divider?: boolean;\n header?: boolean;\n}\n@Component({\n ...base,\n selector: 'thl-dropdown',\n imports: [ThlIconComponent],\n host: { '[class]': 'prefix() + \"-dropdown\"', '(document:keydown)': 'onKey($event)' },\n template: `<span #trig style=\"display:contents\" (click)=\"open.set(!open())\"><ng-content select=\"[thlDropdownTrigger]\" /></span>\n @if (open()) {\n <div role=\"menu\" [id]=\"menuId\" [class]=\"menuCls()\">\n <ng-content />\n @for (it of items(); track it.key) {\n @if (it.divider) {\n <div [class]=\"m('divider')\" role=\"separator\"></div>\n } @else if (it.header) {\n <div [class]=\"m('header')\">{{ it.label }}</div>\n } @else if (it.href) {\n <a role=\"menuitem\" [href]=\"it.href\" [class]=\"itemCls(it)\" (click)=\"choose(it)\">\n @if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n {{ it.label }}</a\n >\n } @else {\n <button\n role=\"menuitem\"\n type=\"button\"\n [class]=\"itemCls(it)\"\n [disabled]=\"it.disabled\"\n (click)=\"choose(it)\"\n (mouseenter)=\"hi.set(enabled().indexOf(it))\"\n >\n @if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n {{ it.label }}\n </button>\n }\n }\n </div>\n }`,\n})\nexport class ThlDropdownComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly prefix = this.cfg.prefix;\n readonly items = input<DropdownItem[]>([]);\n readonly align = input<'start' | 'end'>('start');\n readonly placement = input<'top' | 'bottom'>('bottom');\n readonly menuClass = input<string>();\n readonly animation = input<string>();\n readonly selected = output<string>();\n readonly open = signal(false);\n readonly hi = signal(-1);\n readonly enabled = computed(() => this.items().filter((i) => !i.divider && !i.header && !i.disabled));\n readonly m = (e: string, mods?: Record<string, unknown>) => this.cfg.bem('menu')(e, mods);\n readonly menuCls = computed(() =>\n cx(this.cfg.bem('menu')({ end: this.align() === 'end', start: this.align() === 'start', [this.placement()]: true }), this.animation(), this.menuClass()),\n );\n itemCls(it: DropdownItem) {\n return cx(this.m('item', { danger: it.danger }), { 'is-highlighted': this.enabled().indexOf(it) === this.hi(), 'is-disabled': it.disabled });\n }\n private off: (() => void) | null = null;\n readonly menuId = uid('menu');\n readonly trig = viewChild<ElementRef<HTMLElement>>('trig');\n /** ARIA belongs on the actual trigger element (first projected child), not on the wrapper. */\n private triggerEl() {\n return this.trig()?.nativeElement.firstElementChild as HTMLElement | null;\n }\n constructor() {\n effect(() => {\n const t = this.triggerEl();\n if (!t) return;\n t.setAttribute('aria-haspopup', 'menu');\n t.setAttribute('aria-expanded', String(this.open()));\n if (this.open()) t.setAttribute('aria-controls', this.menuId);\n else t.removeAttribute('aria-controls');\n });\n effect(() => {\n this.off?.();\n this.off = null;\n if (this.open()) setTimeout(() => (this.off = clickOutside([this.host.nativeElement], () => this.close())));\n });\n inject(DestroyRef).onDestroy(() => this.off?.());\n }\n close() {\n this.open.set(false);\n this.hi.set(-1);\n }\n choose(it: DropdownItem) {\n this.selected.emit(it.key);\n this.close();\n }\n onKey(e: KeyboardEvent) {\n if (!this.open()) return;\n const n = this.enabled().length;\n if (e.key === 'Escape') {\n this.close();\n this.triggerEl()?.focus();\n } else if (e.key === 'ArrowDown' && n) {\n e.preventDefault();\n this.hi.update((h) => (h + 1) % n);\n } else if (e.key === 'ArrowUp' && n) {\n e.preventDefault();\n this.hi.update((h) => (h - 1 + n) % n);\n } else if (e.key === 'Enter' && this.hi() >= 0) {\n e.preventDefault();\n this.choose(this.enabled()[this.hi()]);\n }\n }\n}\n\n/* ---------------- Toaster ---------------- */\nconst toastIcons: Record<string, string> = { success: 'circle-check', info: 'info', warning: 'triangle-alert', error: 'circle-x' };\n@Component({\n ...base,\n selector: 'thl-toaster',\n imports: [ThlIconComponent, ThlTranslatePipe],\n template: `@for (g of groups(); track g[0]) {\n <div [class]=\"groupCls(g[0])\" aria-live=\"polite\">\n @for (it of g[1]; track it.id) {\n <div [attr.role]=\"it.type === 'error' ? 'alert' : 'status'\" [class]=\"toastCls(it.type)\">\n @if (it.icon ?? icons[it.type]) {\n <span [class]=\"cfg.bem('toast')('icon')\"><thl-icon [name]=\"(it.icon ?? icons[it.type])!\" /></span>\n }\n <div [class]=\"cfg.bem('toast')('body')\">\n @if (it.title) {\n <div [class]=\"cfg.bem('toast')('title')\">{{ it.title }}</div>\n }\n <div [class]=\"cfg.bem('toast')('message')\">{{ it.message }}</div>\n </div>\n @if (it.closable) {\n <button type=\"button\" [class]=\"cfg.bem('toast')('close')\" [attr.aria-label]=\"'common.close' | thlT\" (click)=\"cfg.toast.dismiss(it.id)\">×</button>\n }\n @if (it.duration > 0) {\n <span [class]=\"cfg.bem('toast')('progress')\" [style.animation-duration.ms]=\"it.duration\"></span>\n }\n </div>\n }\n </div>\n }`,\n})\nexport class ThlToasterComponent {\n readonly cfg = inject(ThlConfigService);\n readonly icons = toastIcons;\n readonly groups = computed(() => Object.entries(this.cfg.toast.byPosition(this.cfg.toasts())));\n groupCls(pos: string) {\n return this.cfg.bem('toaster')({ [pos]: true });\n }\n toastCls(type: string) {\n return this.cfg.bem('toast')({ [type]: true });\n }\n constructor() {\n portal(inject(ElementRef).nativeElement, inject(DestroyRef));\n }\n}\n\n/* ---------------- Progress ---------------- */\n@Component({\n ...base,\n selector: 'thl-progress',\n host: {\n role: 'progressbar',\n '[class]': 'cls()',\n '[attr.aria-valuenow]': 'value()',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': 'aria()',\n },\n template: `<div [class]=\"bar\" [style.width.%]=\"vertical() ? null : pct()\" [style.height.%]=\"vertical() ? pct() : null\">\n @if (d().size === 'lg') {\n {{ text() }}\n }\n </div>`,\n})\nexport class ThlProgressComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly value = input.required<number>();\n readonly max = input(100);\n readonly color = input<string>('primary');\n readonly size = input<'xs' | 'sm' | 'md' | 'lg'>();\n readonly striped = input(undefined, { transform: booleanAttribute });\n readonly animated = input(undefined, { transform: booleanAttribute });\n readonly vertical = input(false, { transform: booleanAttribute });\n readonly label = input<boolean | string>();\n readonly bar = `${this.cfg.prefix()}-progress__bar`;\n readonly d = computed(() => this.cfg.defaults('Progress', { size: this.size(), striped: this.striped(), animated: this.animated() }));\n readonly pct = computed(() => Math.max(0, Math.min(100, (this.value() / (this.max() || 1)) * 100)));\n readonly text = computed(() => (this.label() === true ? `${Math.round(this.pct())}%` : (this.label() as string) || ''));\n readonly aria = computed(() => this.text() || this.i18n.t('layout.complete', { percent: Math.round(this.pct()) }));\n readonly cls = computed(() => {\n const d = this.d();\n return this.cfg.bem('progress')({ [this.color()]: true, size: d.size, striped: d.striped || d.animated, animated: d.animated, vertical: this.vertical() });\n });\n}\n@Component({\n ...base,\n selector: 'thl-progress-circle',\n host: {\n role: 'progressbar',\n '[class]': 'b()',\n '[style.width.px]': 'size()',\n '[style.height.px]': 'size()',\n '[attr.aria-valuenow]': 'value()',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': 'ariaLabel() ?? label() ?? i18n.t(\"common.progress\")',\n },\n template: `<svg [attr.width]=\"size()\" [attr.height]=\"size()\">\n <circle [attr.class]=\"b('track')\" [attr.cx]=\"size() / 2\" [attr.cy]=\"size() / 2\" [attr.r]=\"r()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" />\n <circle\n [attr.class]=\"b('value')\"\n [attr.cx]=\"size() / 2\"\n [attr.cy]=\"size() / 2\"\n [attr.r]=\"r()\"\n fill=\"none\"\n [attr.stroke]=\"'var(--' + cfg.prefix() + '-color-' + color() + ')'\"\n [attr.stroke-width]=\"stroke()\"\n stroke-linecap=\"round\"\n [attr.stroke-dasharray]=\"c()\"\n [attr.stroke-dashoffset]=\"c() * (1 - pct())\"\n />\n </svg>\n <span [class]=\"b('label')\"><ng-content />{{ label() ?? (pct() * 100 | number: '1.0-0') + '%' }}</span>`,\n imports: [DecimalPipe],\n})\nexport class ThlProgressCircleComponent {\n readonly cfg = inject(ThlConfigService);\n readonly value = input.required<number>();\n readonly max = input(100);\n readonly size = input(120);\n readonly stroke = input(8);\n readonly color = input('primary');\n readonly label = input<string>();\n readonly ariaLabel = input<string>();\n readonly i18n = inject(ThlI18nService);\n readonly r = computed(() => (this.size() - this.stroke()) / 2);\n readonly c = computed(() => 2 * Math.PI * this.r());\n readonly pct = computed(() => Math.max(0, Math.min(1, this.value() / this.max())));\n readonly b = (e?: string) => this.cfg.bem('progress-circle')(e);\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n model,\n computed,\n signal,\n inject,\n booleanAttribute,\n effect,\n ElementRef,\n DestroyRef,\n viewChild,\n contentChildren,\n Directive,\n TemplateRef,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { cx, createTabs, createCarousel, paginate, uid, type TabsItem, type BreadcrumbItem, type StepItem, type TimelineItem } from '@thl-ui/core';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe, storeSignal } from './core';\nimport { ThlBadgeComponent } from './basic';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\n\n/** <ng-template thlTab=\"key\">…</ng-template> provides a tab panel. */\n@Directive({ selector: 'ng-template[thlTab]', standalone: true })\nexport class ThlTabPanelDirective {\n readonly key = input.required<string>({ alias: 'thlTab' });\n readonly tpl = inject(TemplateRef);\n}\n\n@Component({\n ...base,\n selector: 'thl-tabs',\n imports: [NgTemplateOutlet, ThlIconComponent, ThlBadgeComponent],\n host: { '[class]': 'cls()' },\n template: `<div #list role=\"tablist\" [attr.aria-orientation]=\"vertical() ? 'vertical' : 'horizontal'\" [class]=\"b('list')\" (keydown)=\"onKey($event)\">\n @for (it of items(); track it.key) {\n <button\n [id]=\"ids(it.key).tab\"\n role=\"tab\"\n type=\"button\"\n [attr.aria-selected]=\"it.key === current()\"\n [attr.aria-controls]=\"ids(it.key).panel\"\n [tabIndex]=\"it.key === current() ? 0 : -1\"\n [disabled]=\"it.disabled\"\n [class]=\"tabCls(it.key)\"\n (click)=\"api.select(it.key)\"\n >\n @if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n {{ it.label }}\n @if (it.badge !== undefined) {\n <thl-badge color=\"danger\">{{ it.badge }}</thl-badge>\n }\n </button>\n }\n </div>\n @for (p of panels(); track p.key()) {\n @if (p.key() === current() || keepMounted()) {\n <div\n [id]=\"ids(p.key()).panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"ids(p.key()).tab\"\n [hidden]=\"p.key() !== current()\"\n tabindex=\"0\"\n [class]=\"b('panel')\"\n >\n <ng-container [ngTemplateOutlet]=\"p.tpl\" />\n </div>\n }\n }`,\n})\nexport class ThlTabsComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly items = input.required<TabsItem[]>();\n readonly active = model<string>();\n readonly variant = input<'default' | 'underline' | 'filled' | 'pills' | 'pills-rounded' | 'vertical' | 'line'>();\n readonly justified = input(false, { transform: booleanAttribute });\n readonly keepMounted = input(false, { transform: booleanAttribute });\n readonly panels = contentChildren(ThlTabPanelDirective);\n readonly list = viewChild<ElementRef<HTMLElement>>('list');\n private readonly baseId = uid('tabs');\n readonly api = createTabs({ items: [], onChange: (k) => this.active.set(k) });\n readonly current = storeSignal(this.api.state, inject(DestroyRef));\n readonly v = computed(() => (this.cfg.defaults('Tabs', { variant: this.variant() }).variant as string) ?? 'default');\n readonly vertical = computed(() => this.v() === 'vertical');\n readonly cls = computed(() => this.cfg.bem('tabs')({ [this.v()]: this.v() !== 'default', justified: this.justified() }));\n readonly b = (e: string) => this.cfg.bem('tabs')(e);\n constructor() {\n effect(() => {\n const items = this.items();\n this.api.setItems(items);\n const a = this.active();\n if (a && a !== this.api.active()) this.api.state.set(a);\n else if (!this.api.active()) this.api.state.set(items.find((i) => !i.disabled)?.key ?? '');\n });\n }\n ids(k: string) {\n return this.api.ids(this.baseId, k);\n }\n tabCls(k: string) {\n return cx(this.b('tab'), { 'is-active': k === this.current() });\n }\n onKey(e: KeyboardEvent) {\n if (this.api.onKeyDown(e, this.vertical() ? 'vertical' : 'horizontal'))\n requestAnimationFrame(() => this.list()?.nativeElement.querySelector<HTMLElement>('[aria-selected=\"true\"]')?.focus());\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-breadcrumb',\n imports: [ThlIconComponent],\n template: `<nav aria-label=\"breadcrumb\">\n <ol [class]=\"b()\">\n @for (it of items(); track $index; let last = $last) {\n <li [class]=\"itemCls(last)\" [attr.aria-current]=\"last ? 'page' : null\">\n @if (!last && it.href) {\n <a [href]=\"it.href\">\n @if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n {{ it.label }}</a\n >\n } @else {\n @if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n {{ it.label }}\n }\n </li>\n }\n </ol>\n </nav>`,\n})\nexport class ThlBreadcrumbComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly items = input.required<BreadcrumbItem[]>();\n readonly b = (e?: string) => this.cfg.bem('breadcrumb')(e);\n itemCls(last: boolean) {\n return cx(this.b('item'), { 'is-active': last });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-pagination',\n imports: [ThlIconComponent, ThlTranslatePipe],\n template: `<nav [attr.aria-label]=\"ariaLabel() ?? ('pagination.goto' | thlT)\" [class]=\"cfg.prefix() + '-flex'\">\n @if (showTotalD()) {\n <span [class]=\"b('total')\">{{ 'pagination.total' | thlT: { count: total() } }}</span>\n }\n <ul [class]=\"listCls()\">\n @if (showFirstLast()) {\n <li>\n <button type=\"button\" [class]=\"b('item')\" [disabled]=\"!m().hasPrev\" (click)=\"go(1)\" [attr.aria-label]=\"'pagination.first' | thlT\">\n <thl-icon name=\"chevrons-left\" />\n </button>\n </li>\n }\n <li>\n <button type=\"button\" [class]=\"b('item')\" [disabled]=\"!m().hasPrev\" (click)=\"go(m().page - 1)\" [attr.aria-label]=\"'pagination.prev' | thlT\">\n <thl-icon name=\"chevron-left\" />\n </button>\n </li>\n @for (it of m().items; track $index) {\n @if (it.type === 'ellipsis') {\n <li><span [class]=\"b('item', { ellipsis: true })\">…</span></li>\n } @else {\n <li>\n <button\n type=\"button\"\n [class]=\"pageCls(it.active)\"\n [attr.aria-current]=\"it.active ? 'page' : null\"\n (click)=\"go(it.page)\"\n [attr.aria-label]=\"'pagination.page' | thlT: { page: it.page }\"\n >\n {{ it.page }}\n </button>\n </li>\n }\n }\n <li>\n <button type=\"button\" [class]=\"b('item')\" [disabled]=\"!m().hasNext\" (click)=\"go(m().page + 1)\" [attr.aria-label]=\"'pagination.next' | thlT\">\n <thl-icon name=\"chevron-right\" />\n </button>\n </li>\n @if (showFirstLast()) {\n <li>\n <button type=\"button\" [class]=\"b('item')\" [disabled]=\"!m().hasNext\" (click)=\"go(m().pageCount)\" [attr.aria-label]=\"'pagination.last' | thlT\">\n <thl-icon name=\"chevrons-right\" />\n </button>\n </li>\n }\n </ul>\n @if (pageSizes()) {\n <select\n [class]=\"cfg.prefix() + '-input ' + cfg.prefix() + '-input--size-sm ' + b('size')\"\n style=\"width:auto\"\n [value]=\"pageSize()\"\n (change)=\"pageSize.set(+$any($event.target).value)\"\n >\n @for (s of pageSizes(); track s) {\n <option [value]=\"s\" [selected]=\"s === pageSize()\">{{ 'pagination.pageSize' | thlT: { size: s } }}</option>\n }\n </select>\n }\n </nav>`,\n})\nexport class ThlPaginationComponent {\n readonly cfg = inject(ThlConfigService);\n readonly page = model.required<number>();\n readonly pageSize = model(10);\n readonly total = input.required<number>();\n readonly ariaLabel = input<string>();\n readonly maxPages = input<number>();\n readonly size = input<'sm' | 'md' | 'lg'>();\n readonly showTotal = input<boolean | undefined>(undefined);\n readonly showFirstLast = input(false, { transform: booleanAttribute });\n readonly split = input(false, { transform: booleanAttribute });\n readonly rounded = input(false, { transform: booleanAttribute });\n readonly pageSizes = input<number[]>();\n readonly d = computed(() => this.cfg.defaults('Pagination', { maxPages: this.maxPages(), showTotal: this.showTotal() }));\n readonly showTotalD = computed(() => !!this.d().showTotal);\n readonly m = computed(() => paginate({ page: this.page(), total: this.total(), pageSize: this.pageSize(), maxPages: this.d().maxPages as number }));\n readonly b = (e?: string, mods?: Record<string, unknown>) => this.cfg.bem('pagination')(e, mods);\n readonly listCls = computed(() =>\n this.cfg.bem('pagination')({ split: this.split(), rounded: this.rounded(), size: this.size() && this.size() !== 'md' ? this.size() : undefined }),\n );\n pageCls(active: boolean) {\n return cx(this.b('item'), { 'is-active': active });\n }\n go(p: number) {\n this.page.set(p);\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-steps',\n imports: [ThlIconComponent, ThlTranslatePipe],\n template: `<ol [class]=\"cls()\">\n @for (it of items(); track $index; let i = $index) {\n <li style=\"display:contents\">\n <div\n [attr.role]=\"clickable() ? 'button' : null\"\n [tabIndex]=\"clickable() ? 0 : -1\"\n [attr.aria-current]=\"status(i) === 'active' ? 'step' : null\"\n [class]=\"itemCls(i)\"\n (click)=\"clickable() && current.set(i)\"\n (keydown.enter)=\"clickable() && current.set(i)\"\n >\n <span [class]=\"b('number')\">\n @if (status(i) === 'done') {\n <thl-icon [name]=\"it.icon ?? 'check'\" />\n } @else if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n } @else {\n {{ i + 1 }}\n }\n </span>\n <span\n ><span [class]=\"b('title')\" style=\"display:block\">{{ it.title }}</span>\n @if (it.description) {\n <span [class]=\"b('desc')\">{{ it.description }}</span>\n }\n <span [class]=\"cfg.prefix() + '-sr-only'\">{{ status(i) === 'done' ? ('steps.completed' | thlT) : ('steps.step' | thlT: { n: i + 1 }) }}</span></span\n >\n </div>\n </li>\n }\n </ol>`,\n})\nexport class ThlStepsComponent {\n readonly cfg = inject(ThlConfigService);\n readonly items = input.required<StepItem[]>();\n readonly current = model(0);\n readonly variant = input<'default' | 'no-bg' | 'thin' | 'line'>('default');\n readonly clickable = input(false, { transform: booleanAttribute });\n readonly vertical = input(false, { transform: booleanAttribute });\n readonly b = (e: string) => this.cfg.bem('steps')(e);\n readonly cls = computed(() => this.cfg.bem('steps')({ [this.variant()]: this.variant() !== 'default', vertical: this.vertical() }));\n status(i: number) {\n return i < this.current() ? 'done' : i === this.current() ? 'active' : 'pending';\n }\n itemCls(i: number) {\n return cx(this.b('item'), `is-${this.status(i)}`, { 'is-clickable': this.clickable() });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-timeline',\n imports: [ThlIconComponent],\n template: `<ul [class]=\"cls()\">\n @for (it of items(); track $index; let i = $index) {\n <li [class]=\"b('item', { inverted: variant() === 'alternate' && i % 2 === 1 })\">\n <div [class]=\"badgeCls(it.color)\">\n @if (it.image) {\n <img [src]=\"it.image\" alt=\"\" />\n } @else if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n </div>\n <div [class]=\"b('panel')\">\n <div [class]=\"b('title')\" role=\"heading\" [attr.aria-level]=\"headingLevel()\">{{ it.title }}</div>\n @if (it.time) {\n <small [class]=\"b('time')\"><thl-icon name=\"clock\" /> {{ it.time }}</small>\n }\n <div>{{ it.content }}</div>\n </div>\n </li>\n }\n </ul>`,\n})\nexport class ThlTimelineComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly items = input.required<TimelineItem[]>();\n readonly variant = input<'alternate' | 'left'>('alternate');\n /** heading level of item titles (match the surrounding outline) */\n readonly headingLevel = input<2 | 3 | 4 | 5 | 6>(3);\n readonly b = (e: string, m?: Record<string, unknown>) => this.cfg.bem('timeline')(e, m);\n readonly cls = computed(() => this.cfg.bem('timeline')({ left: this.variant() === 'left' }));\n badgeCls(c?: string) {\n return this.b('badge', { [c ?? 'inverse']: true });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-activity-feed',\n imports: [ThlIconComponent],\n template: `<div [class]=\"b()\">\n @for (it of items(); track $index) {\n <div [class]=\"b('item')\">\n <div [class]=\"b('left')\" [style.background]=\"it.color ? 'var(--' + cfg.prefix() + '-color-' + it.color + ')' : null\">\n @if (it.avatar) {\n <img [src]=\"it.avatar\" alt=\"\" />\n } @else if (it.icon) {\n <thl-icon [name]=\"it.icon\" />\n }\n </div>\n <div [class]=\"b('right')\">\n <div>\n <strong>{{ it.title }}</strong>\n @if (it.time) {\n <span [class]=\"b('time')\">{{ it.time }}</span>\n }\n </div>\n <div>{{ it.content }}</div>\n </div>\n </div>\n }\n </div>`,\n})\nexport class ThlActivityFeedComponent {\n readonly cfg = inject(ThlConfigService);\n readonly items = input.required<Array<{ avatar?: string; icon?: string; title: string; time?: string; content?: string; color?: string }>>();\n readonly b = (e?: string) => this.cfg.bem('activity-feed')(e);\n}\n\n@Component({\n ...base,\n selector: 'thl-horizontal-timeline',\n imports: [ThlTranslatePipe],\n template: `<div [class]=\"b()\">\n <div [class]=\"b('track')\" role=\"tablist\">\n @for (it of items(); track $index; let k = $index) {\n <button type=\"button\" role=\"tab\" [attr.aria-selected]=\"k === i()\" [class]=\"dotCls(k)\" (click)=\"i.set(k)\">{{ it.date }}</button>\n }\n </div>\n <div [class]=\"b('content')\" role=\"tabpanel\">\n <div [class]=\"b('heading')\" role=\"heading\" [attr.aria-level]=\"headingLevel()\">{{ items()[i()]?.title }}</div>\n <div>{{ items()[i()]?.content }}</div>\n </div>\n <div [class]=\"b('nav')\">\n <button type=\"button\" [class]=\"btn\" [disabled]=\"i() === 0\" (click)=\"i.set(i() - 1)\">{{ 'common.previous' | thlT }}</button>\n <button type=\"button\" [class]=\"btn\" [disabled]=\"i() === items().length - 1\" (click)=\"i.set(i() + 1)\">{{ 'common.next' | thlT }}</button>\n </div>\n </div>`,\n})\nexport class ThlHorizontalTimelineComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly items = input.required<Array<{ date: string; title: string; content?: string }>>();\n readonly headingLevel = input<2 | 3 | 4 | 5 | 6>(3);\n readonly i = signal(0);\n readonly btn = `${this.cfg.prefix()}-btn ${this.cfg.prefix()}-btn--size-sm`;\n readonly b = (e?: string) => this.cfg.bem('htimeline')(e);\n dotCls(k: number) {\n return cx(this.b('dot'), { 'is-active': k === this.i(), 'is-done': k < this.i() });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-carousel',\n imports: [ThlIconComponent, ThlTranslatePipe],\n host: {\n '[class]': 'cls()',\n role: 'region',\n 'aria-roledescription': 'carousel',\n '[attr.aria-label]': 'ariaLabel() ?? (i18n.t(\"common.carousel\") + \" (\" + slides().length + \")\")',\n '(mouseenter)': 'api.pause()',\n '(mouseleave)': 'api.play()',\n '(focusin)': 'api.pause()',\n '(focusout)': 'api.play()',\n },\n template: `<div [class]=\"b('track')\" [style.transform]=\"fade() ? null : 'translateX(-' + idx() * 100 + '%)'\">\n @for (s of slides(); track $index; let i = $index) {\n <div [class]=\"slideCls(i)\" role=\"group\" aria-roledescription=\"slide\" [attr.aria-hidden]=\"i !== idx()\" [style.height]=\"height()\">\n @if (s.image) {\n <img [src]=\"s.image\" [alt]=\"s.alt ?? ''\" [style.height]=\"height() ? '100%' : null\" [style.object-fit]=\"height() ? 'cover' : null\" />\n }\n @if (s.caption) {\n <div [class]=\"b('caption')\">{{ s.caption }}</div>\n }\n </div>\n }\n </div>\n @if (arrows() && slides().length > 1) {\n <button type=\"button\" [class]=\"b('arrow', { prev: true })\" (click)=\"api.prev()\" [attr.aria-label]=\"'common.previous' | thlT\">\n <thl-icon name=\"chevron-left\" />\n </button>\n <button type=\"button\" [class]=\"b('arrow', { next: true })\" (click)=\"api.next()\" [attr.aria-label]=\"'common.next' | thlT\">\n <thl-icon name=\"chevron-right\" />\n </button>\n }\n @if (dots() && slides().length > 1) {\n <div [class]=\"b('dots')\">\n @for (s of slides(); track $index; let i = $index) {\n <button\n type=\"button\"\n [class]=\"i === idx() ? 'is-active' : ''\"\n (click)=\"api.goTo(i)\"\n [attr.aria-label]=\"i + 1\"\n [attr.aria-current]=\"i === idx()\"\n ></button>\n }\n </div>\n }`,\n})\nexport class ThlCarouselComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly slides = input.required<Array<{ image?: string; caption?: string; alt?: string }>>();\n readonly ariaLabel = input<string>();\n readonly i18n = inject(ThlI18nService);\n readonly interval = input(5000);\n readonly fade = input(false, { transform: booleanAttribute });\n readonly arrows = input(true, { transform: booleanAttribute });\n readonly dots = input(true, { transform: booleanAttribute });\n readonly height = input<string>();\n readonly api = createCarousel({ count: 0, interval: 5000, loop: true });\n readonly idx = storeSignal(this.api.state, inject(DestroyRef));\n readonly b = (e?: string, m?: Record<string, unknown>) => this.cfg.bem('carousel')(e, m);\n readonly cls = computed(() => this.cfg.bem('carousel')({ fade: this.fade() }));\n slideCls(i: number) {\n return cx(this.b('slide'), { 'is-active': i === this.idx() });\n }\n constructor() {\n effect(() => this.api.setCount(this.slides().length));\n queueMicrotask(() => this.api.play());\n inject(DestroyRef).onDestroy(() => this.api.destroy());\n }\n}\n","import {\n Component,\n Directive,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n output,\n model,\n computed,\n signal,\n inject,\n booleanAttribute,\n effect,\n ElementRef,\n DestroyRef,\n forwardRef,\n viewChild,\n afterEveryRender,\n type Provider,\n type Type,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor, type AbstractControl, type ValidationErrors, type ValidatorFn } from '@angular/forms';\nimport {\n cx,\n uid,\n clickOutside,\n createSelect,\n createUpload,\n formatBytes,\n clamp,\n stepValue,\n valueFromPosition,\n percentOf,\n roundToStep,\n monthGrid,\n weekdayNames,\n isSameDay,\n isBetween,\n addMonths,\n presetRanges,\n toISODate,\n parseISODate,\n linkFieldLabel,\n type Rule,\n type SelectOption,\n type UploadFile,\n} from '@thl-ui/core';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe, storeSignal } from './core';\nimport { ThlButtonComponent } from './basic';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\nconst cva = (t: () => Type<unknown>): Provider => ({ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(t), multi: true });\n\n/** Base for components implementing ControlValueAccessor with a `value` model signal. */\n@Directive()\nabstract class CvaBase<T> implements ControlValueAccessor {\n abstract readonly value: ReturnType<typeof model<T>>;\n readonly disabledByForm = signal(false);\n protected onChange: (v: T) => void = () => {};\n protected onTouched: () => void = () => {};\n writeValue(v: T) {\n this.value.set(v);\n }\n registerOnChange(fn: (v: T) => void) {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n setDisabledState(d: boolean) {\n this.disabledByForm.set(d);\n }\n protected emit(v: T) {\n this.value.set(v);\n this.onChange(v);\n }\n}\n\n/** Adapt thl-ui core rules (returning i18n keys) to Angular ValidatorFn: `new FormControl('', thlValidators(rules.required(), rules.email()))` */\nexport function thlValidators(...list: Rule[]): ValidatorFn {\n return (c: AbstractControl): ValidationErrors | null => {\n for (const r of list) {\n const res = r(c.value, c.parent?.value);\n if (res) return { thl: res };\n }\n return null;\n };\n}\n\n/* ---------------- Field ---------------- */\n@Component({\n ...base,\n selector: 'thl-field',\n host: { '[class]': 'cls()' },\n template: `@if (label()) {\n <label #lab [class]=\"b('label') + (required() ? ' ' + b('label') + '--required' : '')\" [attr.for]=\"for() ?? null\">{{ label() }}</label>\n }\n <div #box>\n <ng-content />\n @if (errorText()) {\n <div [id]=\"id + '-err'\" [class]=\"b('error')\" role=\"alert\">{{ errorText() }}</div>\n } @else if (help()) {\n <div [id]=\"id + '-help'\" [class]=\"b('help')\">{{ help() }}</div>\n }\n </div>`,\n})\nexport class ThlFieldComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly label = input<string>();\n readonly help = input<string>();\n readonly error = input<string>();\n readonly for = input<string>();\n readonly required = input(false, { transform: booleanAttribute });\n readonly status = input<'success' | 'warning' | 'error'>();\n /** Reactive-forms control: shows localized error from thlValidators / built-in validators once touched. */\n readonly control = input<AbstractControl | null>();\n private readonly tick = signal(0);\n readonly id = uid('field');\n private readonly lab = viewChild<ElementRef<HTMLElement>>('lab');\n private readonly box = viewChild<ElementRef<HTMLElement>>('box');\n constructor() {\n // link <label>/help/error to the projected control (adds id / aria-labelledby / aria-describedby when missing)\n afterEveryRender(() => {\n const err = this.errorText();\n linkFieldLabel(this.box()?.nativeElement, this.lab()?.nativeElement, {\n id: this.for() ?? `${this.id}-input`,\n describedBy: err ? `${this.id}-err` : this.help() ? `${this.id}-help` : undefined,\n invalid: !!err,\n });\n });\n effect((onCleanup) => {\n const c = this.control();\n if (!c) return;\n const sub = c.events.subscribe(() => this.tick.update((x) => x + 1));\n onCleanup(() => sub.unsubscribe());\n });\n }\n readonly errorText = computed(() => {\n this.tick();\n if (this.error()) return this.error();\n const c = this.control();\n if (!c || !c.errors || !(c.touched || c.dirty)) return undefined;\n const e = c.errors;\n if (e['thl']) return this.i18n.t(e['thl'].key, e['thl'].params);\n if (e['required']) return this.i18n.t('validation.required');\n if (e['email']) return this.i18n.t('validation.email');\n if (e['minlength']) return this.i18n.t('validation.minLength', { min: e['minlength'].requiredLength });\n if (e['maxlength']) return this.i18n.t('validation.maxLength', { max: e['maxlength'].requiredLength });\n if (e['min']) return this.i18n.t('validation.min', { min: e['min'].min });\n if (e['max']) return this.i18n.t('validation.max', { max: e['max'].max });\n if (e['pattern']) return this.i18n.t('validation.pattern');\n return undefined;\n });\n readonly b = (e: string) => this.cfg.bem('field')(e);\n readonly cls = computed(() =>\n cx(this.cfg.bem('field')(), {\n 'has-error': !!this.errorText() || this.status() === 'error',\n 'has-success': this.status() === 'success',\n 'has-warning': this.status() === 'warning',\n }),\n );\n}\n\n/* ---------------- Input directives (style native elements) ---------------- */\n@Directive({ selector: 'input[thlInput], textarea[thlInput], select[thlInput]', standalone: true, host: { '[class]': 'cls()' } })\nexport class ThlInputDirective {\n private readonly cfg = inject(ThlConfigService);\n private readonly el = inject(ElementRef<HTMLElement>);\n readonly size = input<'sm' | 'md' | 'lg'>();\n readonly variant = input<'default' | 'material' | 'line'>();\n readonly rounded = input(false, { transform: booleanAttribute });\n readonly cls = computed(() => {\n const d = this.cfg.defaults('Input', { size: this.size(), variant: this.variant() });\n const v = (d.variant as string) ?? 'default';\n return this.cfg.bem('input')({\n size: d.size && d.size !== 'md' ? d.size : undefined,\n [v]: v !== 'default',\n rounded: this.rounded(),\n textarea: this.el.nativeElement.tagName === 'TEXTAREA',\n });\n });\n}\n@Component({\n ...base,\n selector: 'thl-input-group',\n host: { '[class]': 'cfg.prefix() + \"-input-group\"' },\n template: `@if (prepend()) {\n <span [class]=\"cfg.prefix() + '-input-group__addon'\">{{ prepend() }}</span>\n }\n <ng-content select=\"[thlPrepend]\" /><ng-content /><ng-content select=\"[thlAppend]\" />\n @if (append()) {\n <span [class]=\"cfg.prefix() + '-input-group__addon'\">{{ append() }}</span>\n }`,\n})\nexport class ThlInputGroupComponent {\n readonly cfg = inject(ThlConfigService);\n readonly prepend = input<string>();\n readonly append = input<string>();\n}\n\n/* ---------------- Checkbox / Radio / Switch ---------------- */\n@Component({\n ...base,\n selector: 'thl-checkbox',\n providers: [cva(() => ThlCheckboxComponent)],\n host: { '[class]': 'cls()', '(click)': 'onHostClick($event)' },\n template: `<input\n #box\n type=\"checkbox\"\n [class]=\"b('input')\"\n [checked]=\"value()\"\n [disabled]=\"disabled() || disabledByForm()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"ariaLabel() ? null : lid\"\n (change)=\"toggle($any($event.target).checked)\"\n (blur)=\"onTouched()\"\n />\n <span [class]=\"b('box')\" aria-hidden=\"true\"></span\n ><span [id]=\"lid\">\n @if (label()) {\n {{ label() }}\n }\n <ng-content\n /></span>`,\n})\nexport class ThlCheckboxComponent extends CvaBase<boolean> {\n private readonly cfg = inject(ThlConfigService);\n readonly value = model(false, { alias: 'checked' });\n readonly label = input<string>();\n readonly color = input<string>();\n readonly skin = input<'default' | 'flat' | 'square' | 'circle'>('default');\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string>();\n readonly changed = output<boolean>();\n readonly box = viewChild<ElementRef<HTMLInputElement>>('box');\n readonly lid = uid('check-label');\n constructor() {\n super();\n effect(() => {\n const el = this.box()?.nativeElement;\n if (el) el.indeterminate = this.indeterminate();\n });\n }\n /** host is not a <label>: clicking the text toggles like a native label would */\n onHostClick(e: MouseEvent) {\n const el = this.box()?.nativeElement;\n if (el && e.target !== el && !el.disabled) el.click();\n }\n readonly b = (e: string) => this.cfg.bem('check')(e);\n readonly cls = computed(() =>\n cx(this.cfg.bem('check')({ [this.color() ?? '']: !!this.color(), [this.skin()]: this.skin() !== 'default' }), {\n 'is-disabled': this.disabled() || this.disabledByForm(),\n }),\n );\n toggle(c: boolean) {\n this.emit(c);\n this.changed.emit(c);\n }\n}\n@Component({\n ...base,\n selector: 'thl-radio-group',\n providers: [cva(() => ThlRadioGroupComponent)],\n host: { role: 'radiogroup', '[class]': 'cls()' },\n template: `@for (o of options(); track o.value) {\n <label [class]=\"itemCls(o.disabled)\">\n <input\n type=\"radio\"\n [name]=\"name\"\n [class]=\"b('input')\"\n [checked]=\"o.value === value()\"\n [disabled]=\"o.disabled || disabledByForm()\"\n (change)=\"emit(o.value)\"\n (blur)=\"onTouched()\"\n />\n <span [class]=\"b('box')\" aria-hidden=\"true\"></span><span>{{ o.label }}</span></label\n >\n }`,\n})\nexport class ThlRadioGroupComponent extends CvaBase<unknown> {\n private readonly cfg = inject(ThlConfigService);\n readonly value = model<unknown>(undefined);\n readonly options = input.required<Array<{ label: string; value: unknown; disabled?: boolean }>>();\n readonly color = input<string>();\n readonly vertical = input(false, { transform: booleanAttribute });\n readonly name = uid('radio');\n readonly b = (e: string) => this.cfg.bem('check')(e);\n readonly cls = computed(() => this.cfg.bem('check-group')({ vertical: this.vertical() }));\n itemCls(dis?: boolean) {\n return cx(this.cfg.bem('check')({ radio: true, [this.color() ?? '']: !!this.color() }), { 'is-disabled': dis });\n }\n}\n@Component({\n ...base,\n selector: 'thl-checkbox-group',\n providers: [cva(() => ThlCheckboxGroupComponent)],\n host: { role: 'group', '[class]': 'cls()' },\n template: `@for (o of options(); track o.value) {\n <label [class]=\"itemCls(o.disabled)\">\n <input\n type=\"checkbox\"\n [class]=\"b('input')\"\n [checked]=\"(value() ?? []).includes(o.value)\"\n [disabled]=\"o.disabled || disabledByForm()\"\n (change)=\"toggle(o.value, $any($event.target).checked)\"\n (blur)=\"onTouched()\"\n />\n <span [class]=\"b('box')\" aria-hidden=\"true\"></span><span>{{ o.label }}</span></label\n >\n }`,\n})\nexport class ThlCheckboxGroupComponent extends CvaBase<unknown[] | null> {\n private readonly cfg = inject(ThlConfigService);\n /** null when a FormControl is reset without a default */\n readonly value = model<unknown[] | null>([]);\n readonly options = input.required<Array<{ label: string; value: unknown; disabled?: boolean }>>();\n readonly color = input<string>();\n readonly vertical = input(false, { transform: booleanAttribute });\n readonly b = (e: string) => this.cfg.bem('check')(e);\n readonly cls = computed(() => this.cfg.bem('check-group')({ vertical: this.vertical() }));\n itemCls(dis?: boolean) {\n return cx(this.cfg.bem('check')({ [this.color() ?? '']: !!this.color() }), { 'is-disabled': dis });\n }\n toggle(v: unknown, c: boolean) {\n const cur = this.value() ?? [];\n this.emit(c ? [...cur, v] : cur.filter((x) => x !== v));\n }\n}\n@Component({\n ...base,\n selector: 'thl-switch',\n providers: [cva(() => ThlSwitchComponent)],\n host: { '[class]': 'cls()', '(click)': 'onHostClick($event)' },\n template: `<input\n #box\n type=\"checkbox\"\n role=\"switch\"\n [class]=\"b('input')\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"ariaLabel() || !label() ? null : lid\"\n [checked]=\"value()\"\n [disabled]=\"disabled() || disabledByForm()\"\n (change)=\"emit($any($event.target).checked)\"\n (blur)=\"onTouched()\"\n />\n <span [class]=\"b('track')\" aria-hidden=\"true\"></span>\n @if (label()) {\n <span [id]=\"lid\">{{ label() }}</span>\n }`,\n})\nexport class ThlSwitchComponent extends CvaBase<boolean> {\n private readonly cfg = inject(ThlConfigService);\n readonly value = model(false, { alias: 'checked' });\n readonly label = input<string>();\n readonly ariaLabel = input<string>();\n readonly color = input<string>();\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly lid = uid('switch-label');\n readonly box = viewChild<ElementRef<HTMLInputElement>>('box');\n onHostClick(e: MouseEvent) {\n const el = this.box()?.nativeElement;\n if (el && e.target !== el && !el.disabled) el.click();\n }\n readonly b = (e: string) => this.cfg.bem('switch')(e);\n readonly cls = computed(() => this.cfg.bem('switch')({ [this.color() ?? '']: !!this.color(), size: this.size() !== 'md' ? this.size() : undefined }));\n}\n\n/* ---------------- NumberInput / Slider ---------------- */\n@Component({\n ...base,\n selector: 'thl-number-input',\n imports: [ThlIconComponent, ThlTranslatePipe],\n providers: [cva(() => ThlNumberInputComponent)],\n host: { '[class]': 'cfg.bem(\"number\")()' },\n template: `@if (prefix()) {\n <span [class]=\"cfg.prefix() + '-input-group__addon'\">{{ prefix() }}</span>\n }\n <button\n type=\"button\"\n [class]=\"b('btn')\"\n tabindex=\"-1\"\n aria-label=\"-\"\n [disabled]=\"dis() || (min() !== undefined && (value() ?? 0) <= min()!)\"\n (click)=\"step(-1)\"\n >\n <thl-icon name=\"minus\" />\n </button>\n <input\n type=\"number\"\n inputmode=\"decimal\"\n [attr.id]=\"inputId() ?? null\"\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"value() ?? ''\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"stepSize()\"\n [disabled]=\"dis()\"\n [attr.aria-label]=\"'validation.number' | thlT\"\n (input)=\"onInput($any($event.target).value)\"\n (blur)=\"onBlur()\"\n (keydown.arrowup)=\"$event.preventDefault(); step(1)\"\n (keydown.arrowdown)=\"$event.preventDefault(); step(-1)\"\n />\n <button\n type=\"button\"\n [class]=\"b('btn')\"\n tabindex=\"-1\"\n aria-label=\"+\"\n [disabled]=\"dis() || (max() !== undefined && (value() ?? 0) >= max()!)\"\n (click)=\"step(1)\"\n >\n <thl-icon name=\"plus\" />\n </button>\n @if (suffix()) {\n <span [class]=\"cfg.prefix() + '-input-group__addon'\">{{ suffix() }}</span>\n }`,\n})\nexport class ThlNumberInputComponent extends CvaBase<number | null> {\n readonly cfg = inject(ThlConfigService);\n readonly value = model<number | null>(null);\n readonly min = input<number>();\n readonly max = input<number>();\n readonly stepSize = input(1, { alias: 'step' });\n readonly prefix = input<string>();\n readonly suffix = input<string>();\n readonly inputId = input<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly dis = computed(() => this.disabled() || this.disabledByForm());\n readonly b = (e: string) => this.cfg.bem('number')(e);\n step(d: 1 | -1) {\n this.emit(clamp(stepValue(this.value() ?? 0, d, { step: this.stepSize(), min: this.min(), max: this.max() }), this.min(), this.max()));\n }\n onInput(s: string) {\n this.emit(s === '' ? null : Number(s));\n }\n onBlur() {\n const v = this.value();\n if (v != null) this.emit(clamp(roundToStep(v, this.stepSize(), this.min() ?? 0), this.min(), this.max()));\n this.onTouched();\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-slider',\n providers: [cva(() => ThlSliderComponent)],\n host: { '[class]': 'cls()' },\n template: `<div #rail [class]=\"b('rail')\" (pointerdown)=\"railDown($event)\">\n <div [class]=\"b('fill')\" [style.inset-inline-start.%]=\"lo()\" [style.width.%]=\"hi() - lo()\"></div>\n @for (v of vals(); track $index; let i = $index) {\n <div\n role=\"slider\"\n [tabIndex]=\"dis() ? -1 : 0\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"v\"\n [attr.aria-valuetext]=\"fmt(v)\"\n [attr.aria-label]=\"thumbLabel(i)\"\n [class]=\"b('thumb')\"\n [style.inset-inline-start.%]=\"pct(v)\"\n (pointerdown)=\"drag(i, $event)\"\n (keydown)=\"key(i, v, $event)\"\n >\n @if (showTip()) {\n <span [class]=\"b('tip')\">{{ fmt(v) }}</span>\n }\n </div>\n }\n </div>\n @if (showScale()) {\n <div [class]=\"b('scale')\">\n <span>{{ fmt(min()) }}</span\n ><span>{{ fmt(mid()) }}</span\n ><span>{{ fmt(max()) }}</span>\n </div>\n }`,\n})\nexport class ThlSliderComponent extends CvaBase<number | [number, number]> {\n private readonly cfg = inject(ThlConfigService);\n readonly value = model<number | [number, number]>(0);\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly color = input<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly showTip = input(true, { transform: booleanAttribute });\n readonly showScale = input(false, { transform: booleanAttribute });\n readonly format = input<(n: number) => string>(String);\n readonly ariaLabel = input<string>();\n private readonly i18n = inject(ThlI18nService);\n thumbLabel(i: number) {\n return this.ariaLabel() ?? (this.vals().length > 1 ? this.i18n.t(i === 0 ? 'common.min' : 'common.max') : this.i18n.t('common.value'));\n }\n readonly rail = viewChild.required<ElementRef<HTMLElement>>('rail');\n readonly dis = computed(() => this.disabled() || this.disabledByForm());\n readonly vals = computed(() => {\n const v = this.value();\n return Array.isArray(v) ? v : [v ?? 0];\n });\n readonly lo = computed(() => (Array.isArray(this.value()) ? this.pct(this.vals()[0]) : 0));\n readonly hi = computed(() => this.pct(this.vals()[this.vals().length - 1]));\n readonly mid = computed(() => Math.round((this.min() + this.max()) / 2));\n readonly b = (e: string) => this.cfg.bem('slider')(e);\n readonly cls = computed(() => cx(this.cfg.bem('slider')({ [this.color() ?? '']: !!this.color() }), { 'is-disabled': this.dis() }));\n pct(v: number) {\n return percentOf(v, this.min(), this.max());\n }\n fmt(v: number) {\n return this.format()(v);\n }\n private fromX(x: number) {\n const el = this.rail().nativeElement;\n const r = el.getBoundingClientRect();\n const ratio = (x - r.left) / r.width;\n const rtl = getComputedStyle(el).direction === 'rtl';\n return valueFromPosition(rtl ? 1 - ratio : ratio, { min: this.min(), max: this.max(), step: this.step() });\n }\n private update(i: number, v: number) {\n const cur = this.value();\n if (!Array.isArray(cur)) return this.emit(v);\n const n: [number, number] = [...cur];\n n[i] = v;\n if (n[0] > n[1]) n.reverse();\n this.emit(n);\n }\n railDown(e: PointerEvent) {\n if (this.dis() || e.target !== e.currentTarget) return;\n const v = this.fromX(e.clientX);\n const vs = this.vals();\n this.update(vs.length > 1 && Math.abs(v - vs[0]) > Math.abs(v - vs[1]) ? 1 : 0, v);\n }\n drag(i: number, e: PointerEvent) {\n if (this.dis()) return;\n (e.target as HTMLElement).setPointerCapture?.(e.pointerId);\n const move = (ev: PointerEvent) => this.update(i, this.fromX(ev.clientX));\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n this.onTouched();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n key(i: number, v: number, e: KeyboardEvent) {\n const s = this.step();\n let n = v;\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n n = v + s;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n n = v - s;\n break;\n case 'Home':\n n = this.min();\n break;\n case 'End':\n n = this.max();\n break;\n case 'PageUp':\n n = v + s * 10;\n break;\n case 'PageDown':\n n = v - s * 10;\n break;\n default:\n return;\n }\n e.preventDefault();\n this.update(i, clamp(n, this.min(), this.max()));\n }\n}\n\n/* ---------------- Select ---------------- */\n@Component({\n ...base,\n selector: 'thl-select',\n imports: [ThlIconComponent, ThlTranslatePipe],\n providers: [cva(() => ThlSelectComponent)],\n host: { '[class]': 'cls()' },\n template: `<div [class]=\"ctrlCls()\" (click)=\"openIt()\">\n @if (multiple()) {\n @for (o of selected(); track o.value) {\n <span [class]=\"b('tag')\"\n >{{ o.label\n }}<button type=\"button\" [attr.aria-label]=\"('common.remove' | thlT) + ' ' + o.label\" (click)=\"$event.stopPropagation(); api.remove(o.value)\">\n ×\n </button></span\n >\n }\n }\n @if (!multiple() && selected()[0] && !st().query) {\n <span [class]=\"b('value')\">{{ selected()[0].label }}</span>\n }\n @if (!selected().length && !st().query && !canType()) {\n <span [class]=\"b('placeholder')\">{{ ph() }}</span>\n }\n @if (canType()) {\n <input\n #search\n [attr.id]=\"inputId() ?? null\"\n [class]=\"b('search')\"\n [value]=\"st().query\"\n [disabled]=\"dis()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"st().open\"\n [attr.aria-controls]=\"listId\"\n aria-autocomplete=\"list\"\n [attr.aria-activedescendant]=\"st().open && st().highlighted >= 0 ? listId + '-' + st().highlighted : null\"\n [placeholder]=\"selected().length ? '' : ph()\"\n (input)=\"api.setQuery($any($event.target).value)\"\n (keydown)=\"api.onKeyDown($event)\"\n (blur)=\"onTouched()\"\n />\n } @else {\n <button\n type=\"button\"\n [attr.id]=\"inputId() ?? null\"\n [class]=\"cfg.prefix() + '-sr-only'\"\n role=\"combobox\"\n [attr.aria-expanded]=\"st().open\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-label]=\"selected()[0]?.label ?? ph()\"\n data-thl-auto-label=\"\"\n (keydown)=\"api.onKeyDown($event)\"\n >\n {{ selected()[0]?.label ?? ph() }}\n </button>\n }\n <span [class]=\"b('indicators')\">\n @if (clearableD() && selected().length) {\n <button type=\"button\" [attr.aria-label]=\"'common.clear' | thlT\" (click)=\"$event.stopPropagation(); api.clear()\"><thl-icon name=\"x\" /></button>\n }\n <thl-icon name=\"chevron-down\"\n /></span>\n </div>\n @if (st().open) {\n <ul [id]=\"listId\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple() || null\" [class]=\"b('menu')\">\n @if (!filtered().length) {\n @if (creatable() && st().query) {\n <li [class]=\"b('option')\" (click)=\"api.create()\">{{ 'select.addTag' | thlT }}: “{{ st().query }}”</li>\n } @else {\n <li [class]=\"b('empty')\">{{ 'select.noOptions' | thlT }}</li>\n }\n }\n @for (o of filtered(); track o.value; let i = $index) {\n @if (o.group && o.group !== filtered()[i - 1]?.group) {\n <li [class]=\"b('group')\" role=\"presentation\">{{ o.group }}</li>\n }\n <li\n [id]=\"listId + '-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"api.isSelected(o.value)\"\n [attr.aria-disabled]=\"o.disabled || null\"\n [class]=\"optCls(o, i)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"api.select(o.value)\"\n >\n {{ o.label }}\n @if (api.isSelected(o.value)) {\n <thl-icon name=\"check\" />\n }\n </li>\n }\n </ul>\n }`,\n})\nexport class ThlSelectComponent extends CvaBase<unknown> {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly value = model<unknown>(null);\n readonly options = input.required<SelectOption<any>[]>();\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly searchable = input<boolean | undefined>(undefined);\n readonly clearable = input<boolean | undefined>(undefined);\n readonly creatable = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly inputId = input<string>();\n readonly search = viewChild<ElementRef<HTMLInputElement>>('search');\n readonly listId = uid('listbox');\n readonly api = createSelect<any>({\n options: [],\n value: null,\n onChange: (v) => {\n this.value.set(v);\n this.onChange(v);\n },\n });\n readonly st = storeSignal(this.api.state, inject(DestroyRef));\n readonly dis = computed(() => this.disabled() || this.disabledByForm());\n readonly d = computed(() => this.cfg.defaults('Select', { searchable: this.searchable(), clearable: this.clearable() }));\n readonly canType = computed(() => !!this.d().searchable || this.multiple() || this.creatable());\n readonly clearableD = computed(() => !!this.d().clearable);\n readonly ph = computed(() => this.placeholder() ?? this.i18n.t('select.placeholder'));\n readonly selected = computed(() => {\n this.st();\n return this.api.selectedOptions();\n });\n readonly filtered = computed(() => {\n this.st();\n return this.api.filtered();\n });\n readonly b = (e: string) => this.cfg.bem('select')(e);\n readonly cls = computed(() => cx(this.cfg.bem('select')(), { 'is-disabled': this.dis() }));\n readonly ctrlCls = computed(() => cx(this.b('control'), { 'is-focused': this.st().open }));\n optCls(o: SelectOption<any>, i: number) {\n return cx(this.b('option'), { 'is-highlighted': i === this.st().highlighted, 'is-selected': this.api.isSelected(o.value), 'is-disabled': o.disabled });\n }\n private off: (() => void) | null = null;\n constructor() {\n super();\n effect(() => this.api.configure({ multiple: this.multiple(), creatable: this.creatable() }));\n effect(() => {\n this.api.setOptions(this.options());\n });\n effect(() => {\n const v = this.value();\n if (this.api.state.get().value !== v) this.api.setValue(v as any);\n });\n effect(() => {\n this.off?.();\n this.off = null;\n if (this.st().open) this.off = clickOutside([this.host.nativeElement], () => this.api.close());\n });\n inject(DestroyRef).onDestroy(() => this.off?.());\n }\n openIt() {\n if (this.dis()) return;\n this.api.open();\n this.search()?.nativeElement.focus();\n }\n}\n\n/* ---------------- Pickers ---------------- */\n@Directive()\nabstract class PopBase {\n protected readonly host = inject(ElementRef<HTMLElement>);\n readonly open = signal(false);\n private off: (() => void) | null = null;\n private onKey = (e: KeyboardEvent) => e.key === 'Escape' && this.open.set(false);\n constructor() {\n effect(() => {\n this.off?.();\n this.off = null;\n document.removeEventListener('keydown', this.onKey);\n if (this.open())\n setTimeout(() => {\n this.off = clickOutside([this.host.nativeElement], () => this.open.set(false));\n document.addEventListener('keydown', this.onKey);\n });\n });\n inject(DestroyRef).onDestroy(() => {\n this.off?.();\n document.removeEventListener('keydown', this.onKey);\n });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-calendar-grid',\n imports: [ThlIconComponent, ThlTranslatePipe],\n host: { '[class]': 'b()' },\n template: `<div [class]=\"b('head')\">\n <button type=\"button\" (click)=\"monthChange.emit(shift(-1))\" [attr.aria-label]=\"'common.previous' | thlT\"><thl-icon name=\"chevron-left\" /></button>\n <span aria-live=\"polite\">{{ title() }}</span\n ><button type=\"button\" (click)=\"monthChange.emit(shift(1))\" [attr.aria-label]=\"'common.next' | thlT\"><thl-icon name=\"chevron-right\" /></button>\n </div>\n <table role=\"grid\">\n <thead>\n <tr>\n @for (n of names(); track n) {\n <th scope=\"col\">{{ n }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (w of weeks(); track $index) {\n <tr>\n @for (c of w; track c.key) {\n <td>\n <button\n type=\"button\"\n [disabled]=\"isDis(c.date)\"\n [attr.aria-pressed]=\"isSel(c.date)\"\n [attr.aria-label]=\"full(c.date)\"\n [class]=\"dayCls(c)\"\n (click)=\"pick.emit(c.date)\"\n (mouseenter)=\"hoverDay.emit(c.date)\"\n >\n {{ c.date.getDate() }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>`,\n})\nexport class ThlCalendarGridComponent {\n private readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly month = input.required<Date>();\n readonly selected = input<Date | null>();\n readonly rangeStart = input<Date | null>();\n readonly rangeEnd = input<Date | null>();\n readonly hover = input<Date | null>();\n readonly min = input<Date | null>();\n readonly max = input<Date | null>();\n readonly monthChange = output<Date>();\n readonly pick = output<Date>();\n readonly hoverDay = output<Date>();\n readonly ws = computed(() => ((this.cfg.config().components.DatePicker?.weekStartsOn as number) ?? 1) as 0 | 1);\n readonly names = computed(() => weekdayNames(this.i18n.intlLocale(), this.ws(), 'short'));\n readonly weeks = computed(() => monthGrid(this.month().getFullYear(), this.month().getMonth(), this.ws()));\n readonly title = computed(() => new Intl.DateTimeFormat(this.i18n.intlLocale(), { month: 'long', year: 'numeric' }).format(this.month()));\n readonly b = (e?: string) => this.cfg.bem('calendar-grid')(e);\n shift(n: number) {\n return addMonths(this.month(), n);\n }\n full(d: Date) {\n return this.i18n.d(d, { dateStyle: 'full' });\n }\n isDis(d: Date) {\n return !!((this.min() && d < this.min()!) || (this.max() && d > this.max()!));\n }\n isSel(d: Date) {\n return isSameDay(d, this.selected()) || isSameDay(d, this.rangeStart()) || isSameDay(d, this.rangeEnd());\n }\n dayCls(c: { date: Date; inMonth: boolean; today: boolean }) {\n const sel = this.isSel(c.date);\n return cx(this.b('day'), {\n 'is-outside': !c.inMonth,\n 'is-today': c.today,\n 'is-selected': sel,\n 'is-in-range': !sel && !!this.rangeStart() && isBetween(c.date, this.rangeStart(), this.rangeEnd() ?? this.hover()),\n });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-date-picker',\n imports: [ThlCalendarGridComponent, ThlIconComponent, ThlTranslatePipe, ThlButtonComponent],\n providers: [cva(() => ThlDatePickerComponent)],\n host: { '[class]': 'cfg.prefix() + \"-picker\"' },\n template: `<div [class]=\"cfg.prefix() + '-input-group'\">\n <input\n readonly\n [attr.id]=\"inputId() ?? null\"\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"display()\"\n [placeholder]=\"placeholder() ?? ('datepicker.selectDate' | thlT)\"\n [attr.aria-label]=\"placeholder() ?? ('datepicker.selectDate' | thlT)\"\n [disabled]=\"dis()\"\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"!dis() && open.set(true)\"\n (blur)=\"onTouched()\"\n />\n <button thl-button type=\"button\" [disabled]=\"dis()\" [attr.aria-label]=\"'datepicker.selectDate' | thlT\" (click)=\"open.set(!open())\">\n <thl-icon name=\"calendar\" />\n </button>\n </div>\n @if (open()) {\n <div [class]=\"cfg.prefix() + '-picker__panel'\" role=\"dialog\" style=\"flex-direction:column\">\n <thl-calendar-grid [month]=\"month()\" [selected]=\"date()\" [min]=\"minD()\" [max]=\"maxD()\" (monthChange)=\"month.set($event)\" (pick)=\"choose($event)\" />\n <div [class]=\"cfg.prefix() + '-picker__footer'\">\n <button thl-button size=\"sm\" (click)=\"choose(today())\">{{ 'datepicker.today' | thlT }}</button>\n @if (clearable()) {\n <button thl-button size=\"sm\" variant=\"link\" (click)=\"emit(null); open.set(false)\">{{ 'datepicker.clear' | thlT }}</button>\n }\n </div>\n </div>\n }`,\n})\nexport class ThlDatePickerComponent extends PopBase implements ControlValueAccessor {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly value = model<string | null>(null);\n readonly placeholder = input<string>();\n readonly min = input<string>();\n readonly max = input<string>();\n readonly inputId = input<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly clearable = input(true, { transform: booleanAttribute });\n readonly disabledByForm = signal(false);\n readonly dis = computed(() => this.disabled() || this.disabledByForm());\n readonly date = computed(() => parseISODate(this.value()));\n readonly minD = computed(() => parseISODate(this.min()));\n readonly maxD = computed(() => parseISODate(this.max()));\n readonly month = signal(new Date());\n readonly display = computed(() => {\n const d = this.date();\n return d ? this.i18n.d(d) : '';\n });\n onChange: (v: string | null) => void = () => {};\n onTouched: () => void = () => {};\n constructor() {\n super();\n effect(() => {\n const d = this.date();\n if (d) this.month.set(d);\n });\n }\n today() {\n return new Date();\n }\n emit(v: string | null) {\n this.value.set(v);\n this.onChange(v);\n }\n choose(d: Date) {\n this.emit(toISODate(d));\n this.open.set(false);\n }\n writeValue(v: string | null) {\n this.value.set(v);\n }\n registerOnChange(fn: (v: string | null) => void) {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n setDisabledState(d: boolean) {\n this.disabledByForm.set(d);\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-date-range-picker',\n imports: [ThlCalendarGridComponent, ThlIconComponent, ThlTranslatePipe],\n providers: [cva(() => ThlDateRangePickerComponent)],\n host: { '[class]': 'cfg.prefix() + \"-picker\"' },\n template: `<div [class]=\"cfg.prefix() + '-input-group'\">\n <span [class]=\"cfg.prefix() + '-input-group__addon'\"><thl-icon name=\"calendar\" /></span>\n <input\n readonly\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"display()\"\n [placeholder]=\"('datepicker.startDate' | thlT) + ' – ' + ('datepicker.endDate' | thlT)\"\n [attr.aria-label]=\"('datepicker.startDate' | thlT) + ' – ' + ('datepicker.endDate' | thlT)\"\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(true)\"\n />\n </div>\n @if (open()) {\n <div [class]=\"cfg.prefix() + '-picker__panel'\" role=\"dialog\">\n @if (presets()) {\n <ul [class]=\"cfg.prefix() + '-picker__ranges'\">\n @for (r of ranges; track r[0]) {\n <li>\n <button type=\"button\" [class]=\"isPreset(r[1]) ? 'is-active' : ''\" (click)=\"set(r[1][0], r[1][1])\">\n {{ 'datepicker.ranges.' + r[0] | thlT }}\n </button>\n </li>\n }\n </ul>\n }\n <div style=\"display:flex;gap:16px;flex-wrap:wrap\">\n <thl-calendar-grid\n [month]=\"month()\"\n [rangeStart]=\"pending() ?? start()\"\n [rangeEnd]=\"pending() ? null : end()\"\n [hover]=\"pending() ? hover() : null\"\n (monthChange)=\"month.set($event)\"\n (pick)=\"pick($event)\"\n (hoverDay)=\"hover.set($event)\"\n />\n <thl-calendar-grid\n [month]=\"next()\"\n [rangeStart]=\"pending() ?? start()\"\n [rangeEnd]=\"pending() ? null : end()\"\n [hover]=\"pending() ? hover() : null\"\n (monthChange)=\"month.set(prev($event))\"\n (pick)=\"pick($event)\"\n (hoverDay)=\"hover.set($event)\"\n />\n </div>\n </div>\n }`,\n})\nexport class ThlDateRangePickerComponent extends PopBase implements ControlValueAccessor {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly value = model<[string | null, string | null]>([null, null]);\n readonly presets = input(true, { transform: booleanAttribute });\n readonly ranges = Object.entries(presetRanges());\n readonly start = computed(() => parseISODate(this.value()?.[0]));\n readonly end = computed(() => parseISODate(this.value()?.[1]));\n readonly month = signal(new Date());\n readonly next = computed(() => addMonths(this.month(), 1));\n readonly pending = signal<Date | null>(null);\n readonly hover = signal<Date | null>(null);\n readonly display = computed(() => (this.start() && this.end() ? `${this.i18n.d(this.start()!)} – ${this.i18n.d(this.end()!)}` : ''));\n onChange: (v: [string | null, string | null]) => void = () => {};\n prev(d: Date) {\n return addMonths(d, -1);\n }\n isPreset(r: [Date, Date]) {\n return isSameDay(r[0], this.start()) && isSameDay(r[1], this.end());\n }\n set(a: Date, b: Date) {\n const v: [string, string] = [toISODate(a), toISODate(b)];\n this.value.set(v);\n this.onChange(v);\n this.open.set(false);\n }\n pick(d: Date) {\n const p = this.pending();\n if (!p) {\n this.pending.set(d);\n return;\n }\n this.pending.set(null);\n d < p ? this.set(d, p) : this.set(p, d);\n }\n writeValue(v: [string | null, string | null]) {\n this.value.set(v ?? [null, null]);\n }\n registerOnChange(fn: (v: [string | null, string | null]) => void) {\n this.onChange = fn;\n }\n registerOnTouched() {}\n}\n\n@Component({\n ...base,\n selector: 'thl-time-picker',\n imports: [ThlIconComponent, ThlTranslatePipe, ThlButtonComponent],\n providers: [cva(() => ThlTimePickerComponent)],\n host: { '[class]': 'cfg.prefix() + \"-picker\"' },\n template: `<div [class]=\"cfg.prefix() + '-input-group'\">\n <input\n readonly\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"display()\"\n [placeholder]=\"'datepicker.selectTime' | thlT\"\n [attr.aria-label]=\"'datepicker.selectTime' | thlT\"\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(true)\"\n />\n <button thl-button type=\"button\" [attr.aria-label]=\"'datepicker.selectTime' | thlT\" (click)=\"open.set(!open())\"><thl-icon name=\"clock\" /></button>\n </div>\n @if (open()) {\n <div [class]=\"cfg.prefix() + '-picker__panel'\" style=\"min-width:0;flex-direction:column\">\n <div [class]=\"cfg.prefix() + '-time-list'\">\n <ul aria-label=\"hours\">\n @for (h of hours; track h) {\n <li>\n <button type=\"button\" [class]=\"h === hh() ? 'is-selected' : ''\" (click)=\"set(h, mm() ?? 0)\">{{ pad(h) }}</button>\n </li>\n }\n </ul>\n <ul aria-label=\"minutes\">\n @for (m of minutes(); track m) {\n <li>\n <button type=\"button\" [class]=\"m === mm() ? 'is-selected' : ''\" (click)=\"set(hh() ?? 0, m); open.set(false)\">{{ pad(m) }}</button>\n </li>\n }\n </ul>\n </div>\n <div [class]=\"cfg.prefix() + '-picker__footer'\">\n <button thl-button size=\"sm\" (click)=\"now()\">{{ 'datepicker.now' | thlT }}</button>\n </div>\n </div>\n }`,\n})\nexport class ThlTimePickerComponent extends PopBase implements ControlValueAccessor {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly value = model<string | null>(null);\n readonly step = input(5);\n readonly hours = Array.from({ length: 24 }, (_, i) => i);\n readonly minutes = computed(() => Array.from({ length: 60 / this.step() }, (_, i) => i * this.step()));\n readonly hh = computed(() => {\n const v = this.value();\n return v ? Number(v.split(':')[0]) : null;\n });\n readonly mm = computed(() => {\n const v = this.value();\n return v ? Number(v.split(':')[1]) : null;\n });\n readonly display = computed(() => (this.value() ? this.i18n.d(new Date(2000, 0, 1, this.hh()!, this.mm()!), { hour: 'numeric', minute: '2-digit' }) : ''));\n onChange: (v: string | null) => void = () => {};\n pad(n: number) {\n return String(n).padStart(2, '0');\n }\n set(h: number, m: number) {\n const v = `${this.pad(h)}:${this.pad(m)}`;\n this.value.set(v);\n this.onChange(v);\n }\n now() {\n const d = new Date();\n this.set(d.getHours(), d.getMinutes());\n this.open.set(false);\n }\n writeValue(v: string | null) {\n this.value.set(v);\n }\n registerOnChange(fn: (v: string | null) => void) {\n this.onChange = fn;\n }\n registerOnTouched() {}\n}\n\nconst PALETTE = [\n '#0283cc',\n '#00bbd9',\n '#2ecc71',\n '#ffb136',\n '#e74a25',\n '#4a23ad',\n '#282f32',\n '#8d9498',\n '#0078bc',\n '#25bf67',\n '#f2a225',\n '#d93c17',\n '#693fd5',\n '#4b555b',\n '#e5ebec',\n '#ffffff',\n];\n@Component({\n ...base,\n selector: 'thl-color-picker',\n imports: [ThlTranslatePipe],\n providers: [cva(() => ThlColorPickerComponent)],\n host: { '[class]': 'cfg.prefix() + \"-picker\"' },\n template: `<div [class]=\"cfg.prefix() + '-input-group'\">\n <span [class]=\"cfg.prefix() + '-input-group__addon'\"><span [class]=\"cfg.prefix() + '-color-swatch'\" [style.background]=\"value()\"></span></span>\n <input\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"value()\"\n [attr.aria-label]=\"'common.color' | thlT\"\n spellcheck=\"false\"\n (input)=\"emit($any($event.target).value)\"\n (focus)=\"open.set(true)\"\n />\n <input\n type=\"color\"\n [attr.aria-label]=\"'common.color' | thlT\"\n [value]=\"value()\"\n (input)=\"emit($any($event.target).value)\"\n style=\"width:44px;height:auto;border:1px solid var(--thl-border-color);padding:2px;background:var(--thl-surface)\"\n />\n </div>\n @if (open()) {\n <div [class]=\"cfg.prefix() + '-picker__panel'\" style=\"min-width:0\">\n <div [class]=\"cfg.prefix() + '-color-palette'\">\n @for (c of palette(); track c) {\n <button\n type=\"button\"\n [attr.aria-label]=\"c\"\n [class]=\"c.toLowerCase() === value().toLowerCase() ? 'is-selected' : ''\"\n [style.background]=\"c\"\n (click)=\"emit(c); open.set(false)\"\n ></button>\n }\n </div>\n </div>\n }`,\n})\nexport class ThlColorPickerComponent extends PopBase implements ControlValueAccessor {\n readonly cfg = inject(ThlConfigService);\n readonly value = model('#0283cc');\n readonly palette = input(PALETTE);\n onChange: (v: string) => void = () => {};\n emit(v: string) {\n this.value.set(v);\n this.onChange(v);\n }\n writeValue(v: string) {\n if (v) this.value.set(v);\n }\n registerOnChange(fn: (v: string) => void) {\n this.onChange = fn;\n }\n registerOnTouched() {}\n}\n\n/* ---------------- Upload ---------------- */\n@Component({\n ...base,\n selector: 'thl-upload',\n imports: [ThlIconComponent, ThlTranslatePipe, ThlButtonComponent],\n host: { '[class]': 'b()' },\n template: `<div\n role=\"button\"\n tabindex=\"0\"\n [class]=\"zoneCls()\"\n (click)=\"file.click()\"\n (keydown.enter)=\"file.click()\"\n (keydown.space)=\"$event.preventDefault(); file.click()\"\n (dragenter)=\"api.dragHandlers.onDragEnter($event)\"\n (dragover)=\"api.dragHandlers.onDragOver($event)\"\n (dragleave)=\"api.dragHandlers.onDragLeave($event)\"\n (drop)=\"api.dragHandlers.onDrop($event)\"\n >\n @if (single(); as f) {\n <div [class]=\"b('preview')\">\n @if (f.preview) {\n <img [src]=\"f.preview\" [alt]=\"f.name\" />\n } @else {\n <thl-icon name=\"file\" [class]=\"b('icon')\" />\n }\n <div [class]=\"b('name')\">{{ f.name }}</div>\n <small>{{ 'upload.replace' | thlT }}</small>\n </div>\n } @else {\n <thl-icon name=\"cloud-upload\" [class]=\"b('icon')\" />\n <div>{{ (variant() === 'single' ? 'upload.dropHere' : 'upload.dropMultiple') | thlT }}</div>\n @if (hint()) {\n <small>{{ hint() }}</small>\n }\n }\n <input\n #file\n type=\"file\"\n [class]=\"b('input')\"\n [attr.accept]=\"accept() ?? null\"\n [multiple]=\"multi()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n (change)=\"onFiles(file)\"\n />\n </div>\n @if (st().errors.length) {\n <div [class]=\"b('errors')\" role=\"alert\">\n @for (e of st().errors; track $index) {\n <div>{{ e.key | thlT: e.params }}</div>\n }\n </div>\n }\n @if (variant() === 'list' && st().files.length) {\n <ul [class]=\"b('list')\">\n @for (f of st().files; track f.id) {\n <li [class]=\"fileCls(f)\">\n @if (f.preview) {\n <img [src]=\"f.preview\" alt=\"\" />\n } @else {\n <thl-icon name=\"file-text\" [size]=\"40\" />\n }\n <div [class]=\"b('name')\" [title]=\"f.name\">{{ f.name }}</div>\n <div [class]=\"b('meta')\">{{ size(f.size) }} · {{ status(f) }}</div>\n @if (f.status === 'uploading') {\n <div [class]=\"cfg.prefix() + '-progress ' + cfg.prefix() + '-progress--size-xs'\" style=\"margin:6px 0 0\">\n <div [class]=\"cfg.prefix() + '-progress__bar'\" [style.width.%]=\"f.progress\"></div>\n </div>\n }\n <button type=\"button\" [class]=\"b('remove')\" (click)=\"api.remove(f.id)\" [attr.aria-label]=\"('upload.remove' | thlT) + ' ' + f.name\">×</button>\n </li>\n }\n </ul>\n }\n @if (single()) {\n <div [class]=\"cfg.prefix() + '-mt-2'\">\n <button thl-button size=\"sm\" variant=\"danger\" outline (click)=\"api.clear()\">{{ 'upload.remove' | thlT }}</button>\n </div>\n }`,\n})\nexport class ThlUploadComponent {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly accept = input<string>();\n readonly maxSize = input<number>();\n readonly multiple = input<boolean | undefined>(undefined);\n readonly maxFiles = input<number>();\n readonly request = input<(file: File, onProgress: (p: number) => void) => Promise<unknown>>();\n readonly variant = input<'list' | 'single'>('list');\n readonly hint = input<string>();\n readonly filesChange = output<UploadFile[]>();\n readonly multi = computed(() => this.multiple() ?? this.variant() === 'list');\n readonly api = createUpload({ onChange: (f) => this.filesChange.emit(f) });\n readonly st = storeSignal(this.api.state, inject(DestroyRef));\n readonly single = computed(() => (this.variant() === 'single' ? this.st().files[0] : undefined));\n readonly b = (e?: string) => this.cfg.bem('upload')(e);\n readonly zoneCls = computed(() => cx(this.b('zone'), { 'is-dragging': this.st().dragging }));\n constructor() {\n effect(() => {\n const d = this.cfg.defaults('Upload', { accept: this.accept(), maxSize: this.maxSize(), multiple: this.multi() });\n this.api.configure({\n accept: d.accept as string,\n maxSize: d.maxSize as number,\n multiple: this.multi(),\n maxFiles: this.maxFiles(),\n request: this.request(),\n });\n });\n }\n fileCls(f: UploadFile) {\n return cx(this.b('file'), { 'is-error': f.status === 'error' });\n }\n size(n: number) {\n return formatBytes(n);\n }\n status(f: UploadFile) {\n return f.status === 'uploading'\n ? `${f.progress}%`\n : f.status === 'done'\n ? this.i18n.t('upload.uploaded')\n : f.status === 'error'\n ? this.i18n.t('upload.failed')\n : '';\n }\n onFiles(el: HTMLInputElement) {\n if (el.files) this.api.add(el.files);\n el.value = '';\n }\n}\n\n/* ---------------- Editor (html5-editor replacement) ---------------- */\n@Component({\n ...base,\n selector: 'thl-editor',\n imports: [ThlIconComponent, ThlTranslatePipe],\n providers: [cva(() => ThlEditorComponent)],\n host: { '[class]': 'b()' },\n template: `<div [class]=\"b('toolbar')\" role=\"toolbar\" [attr.aria-label]=\"'common.editor' | thlT\">\n @for (tool of tools; track tool[1] + (tool[2] ?? '')) {\n <button type=\"button\" [attr.aria-label]=\"tool[1]\" (mousedown)=\"$event.preventDefault()\" (click)=\"cmd(tool[1], tool[2])\">\n <thl-icon [name]=\"tool[0]\" />\n </button>\n }\n </div>\n <div\n #area\n [class]=\"b('content')\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-multiline=\"true\"\n [attr.aria-label]=\"ariaLabel() ?? placeholder() ?? ('common.editor' | thlT)\"\n [attr.data-placeholder]=\"placeholder()\"\n [style.min-height.px]=\"minHeight()\"\n (input)=\"onInput()\"\n (blur)=\"onTouched()\"\n ></div>`,\n})\nexport class ThlEditorComponent extends CvaBase<string> {\n private readonly cfg = inject(ThlConfigService);\n readonly value = model('');\n readonly placeholder = input<string>();\n readonly minHeight = input<number>();\n readonly ariaLabel = input<string>();\n readonly area = viewChild.required<ElementRef<HTMLElement>>('area');\n readonly tools: Array<[string, string, string?]> = [\n ['bold', 'bold'],\n ['italic', 'italic'],\n ['underline', 'underline'],\n ['list', 'insertUnorderedList'],\n ['list-ordered', 'insertOrderedList'],\n ['quote', 'formatBlock', 'blockquote'],\n ['link', 'createLink'],\n ['undo-2', 'undo'],\n ['redo-2', 'redo'],\n ];\n readonly b = (e?: string) => this.cfg.bem('editor')(e);\n constructor() {\n super();\n effect(() => {\n const el = this.area().nativeElement;\n const v = this.value() ?? '';\n if (el.innerHTML !== v) el.innerHTML = v;\n });\n }\n cmd(c: string, arg?: string) {\n document.execCommand(c, false, c === 'createLink' ? (window.prompt('URL') ?? undefined) : arg);\n this.area().nativeElement.focus();\n this.onInput();\n }\n onInput() {\n this.emit(this.area().nativeElement.innerHTML);\n }\n}\n","import {\n Component,\n Directive,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n output,\n computed,\n signal,\n inject,\n booleanAttribute,\n effect,\n ElementRef,\n DestroyRef,\n contentChildren,\n TemplateRef,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { cx, createTable, monthGrid, weekdayNames, addMonths, toISODate, type ColumnDef, type ThlSemanticColor } from '@thl-ui/core';\nimport { pageSizeOptions } from '@thl-ui/core';\nimport { lineChart, barChart, pieChart, sparkline, formatTick, colorAt, type Series } from '@thl-ui/charts';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe, storeSignal } from './core';\nimport { ThlButtonComponent, ThlLabelComponent } from './basic';\nimport { ThlCheckboxComponent } from './form';\nimport { ThlPaginationComponent } from './nav';\nimport { ThlProgressComponent } from './overlay';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\n\n/* ---------------- Table (styling directive on native <table>) ---------------- */\n@Directive({ selector: 'table[thlTable]', standalone: true, host: { '[class]': 'cls()' } })\nexport class ThlTableDirective {\n private readonly cfg = inject(ThlConfigService);\n readonly striped = input(false, { transform: booleanAttribute });\n readonly hover = input(false, { transform: booleanAttribute });\n readonly bordered = input<boolean | string | undefined>(false);\n readonly compact = input(false, { transform: booleanAttribute });\n readonly color = input<string>();\n readonly full = input<string>();\n readonly cls = computed(() => {\n const bd = this.bordered();\n return this.cfg.bem('table')({\n striped: this.striped(),\n hover: this.hover(),\n bordered: bd === true || bd === '',\n compact: this.compact(),\n [`color-${this.color()}`]: !!this.color(),\n [`full-${this.full()}`]: !!this.full(),\n [`bordered-${bd}`]: typeof bd === 'string' && bd !== '',\n });\n });\n}\n\n/** <ng-template thlCell=\"name\" let-row let-value=\"value\">…</ng-template> */\n@Directive({ selector: 'ng-template[thlCell]', standalone: true })\nexport class ThlCellDirective {\n readonly key = input.required<string>({ alias: 'thlCell' });\n readonly tpl = inject(TemplateRef);\n}\n\n@Component({\n ...base,\n selector: 'thl-data-table',\n imports: [NgTemplateOutlet, ThlCheckboxComponent, ThlPaginationComponent, ThlTranslatePipe],\n template: `<div [class]=\"p() + '-table-toolbar'\">\n @if (paginate()) {\n <label\n >{{ showParts()[0]\n }}<select\n [class]=\"p() + '-input ' + p() + '-input--size-sm'\"\n [value]=\"st().pageSize\"\n (change)=\"api.setPageSize(+$any($event.target).value)\"\n [attr.aria-label]=\"'pagination.pageSize' | thlT: { size: st().pageSize }\"\n >\n @for (n of sizes(); track n) {\n <option [value]=\"n\" [selected]=\"n === st().pageSize\">{{ n }}</option>\n }</select\n >{{ showParts()[1] }}</label\n >\n } @else {\n <span></span>\n }\n <div [class]=\"p() + '-flex'\">\n <ng-content select=\"[thlToolbar]\" />\n @if (searchable()) {\n <label\n >{{ 'table.search' | thlT\n }}<input\n type=\"search\"\n [class]=\"p() + '-input ' + p() + '-input--size-sm'\"\n [value]=\"st().search\"\n (input)=\"api.setSearch($any($event.target).value)\"\n [attr.aria-label]=\"'common.search' | thlT\"\n /></label>\n }\n </div>\n </div>\n <div [class]=\"p() + '-table-wrap'\">\n <table [class]=\"tableCls()\">\n <thead>\n <tr>\n @if (selectable()) {\n <th [class]=\"b('check')\">\n <thl-checkbox\n [checked]=\"all() === true\"\n [indeterminate]=\"all() === 'indeterminate'\"\n [ariaLabel]=\"'common.selectAll' | thlT\"\n (changed)=\"api.toggleAll()\"\n />\n </th>\n }\n @for (c of columns(); track c.key) {\n <th [style.width]=\"c.width\" [style.text-align]=\"c.align\" [attr.aria-sort]=\"ariaSort(c.key)\" [class]=\"hide(c)\">\n @if (c.sortable) {\n <button type=\"button\" [class]=\"sortCls(c.key)\" (click)=\"api.toggleSort(c.key)\">\n {{ c.title ?? c.key }}<span [class]=\"b('sort-icon')\" aria-hidden=\"true\"><span>▲</span><span>▼</span></span>\n </button>\n } @else {\n {{ c.title ?? c.key }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!view().rows.length) {\n <tr [class]=\"b('empty')\">\n <td [attr.colspan]=\"columns().length + (selectable() ? 1 : 0)\">\n {{ loading() ? ('common.loading' | thlT) : (emptyText() ?? ('table.empty' | thlT)) }}\n </td>\n </tr>\n }\n @for (r of view().rows; track r.key; let i = $index) {\n <tr [class]=\"api.isSelected(r.key) ? 'is-selected' : ''\">\n @if (selectable()) {\n <td [class]=\"b('check')\">\n <thl-checkbox [checked]=\"api.isSelected(r.key)\" [ariaLabel]=\"'common.selectRow' | thlT: { n: '' + r.key }\" (changed)=\"api.toggleRow(r.key)\" />\n </td>\n }\n @for (c of columns(); track c.key) {\n <td [attr.data-label]=\"c.title ?? c.key\" [style.text-align]=\"c.align\" [class]=\"hide(c)\">\n @if (isEditing(r.key, c.key)) {\n <input\n [class]=\"p() + '-input ' + p() + '-input--size-sm ' + b('edit-input')\"\n [value]=\"editing()!.value\"\n (input)=\"editValue($any($event.target).value)\"\n (blur)=\"commit()\"\n (keydown.enter)=\"commit()\"\n (keydown.escape)=\"editing.set(null)\"\n #ed\n [attr.autofocus]=\"true\"\n />\n } @else if (c.editable) {\n <span\n role=\"button\"\n tabindex=\"0\"\n [class]=\"b('editable')\"\n (click)=\"startEdit(r.key, c.key, r.row)\"\n (keydown.enter)=\"startEdit(r.key, c.key, r.row)\"\n >{{ api.value(c, r.row) }}</span\n >\n } @else if (tpl(c.key); as t) {\n <ng-container [ngTemplateOutlet]=\"t\" [ngTemplateOutletContext]=\"{ $implicit: r.row, value: api.value(c, r.row), index: i }\" />\n } @else {\n {{ api.value(c, r.row) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n @if (paginate()) {\n <div [class]=\"p() + '-table-footer'\">\n <span\n >{{ 'pagination.showing' | thlT: { from: from(), to: to(), total: total() } }}\n @if (st().selected.size) {\n · {{ 'table.selected' | thlT: { count: st().selected.size } }}\n }\n </span>\n <thl-pagination [page]=\"st().page\" (pageChange)=\"api.setPage($event)\" [total]=\"total()\" [pageSize]=\"st().pageSize\" size=\"sm\" />\n </div>\n }`,\n})\nexport class ThlDataTableComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly p = this.cfg.prefix;\n readonly data = input.required<any[]>();\n readonly columns = input.required<ColumnDef<any>[]>();\n readonly rowKey = input<string | ((r: any) => string | number)>();\n readonly pageSize = input<number>();\n readonly paginate = input(true, { transform: booleanAttribute });\n readonly searchable = input(true, { transform: booleanAttribute });\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly striped = input<boolean | undefined>(undefined);\n readonly hover = input<boolean | undefined>(undefined);\n readonly bordered = input<boolean | undefined>(undefined);\n readonly compact = input(false, { transform: booleanAttribute });\n readonly stack = input(false, { transform: booleanAttribute });\n readonly color = input<ThlSemanticColor>();\n readonly emptyText = input<string>();\n readonly loading = input(false, { transform: booleanAttribute });\n readonly selectionChange = output<any[]>();\n readonly cellEdit = output<{ rowKey: string | number; key: string; value: unknown; data: any[] }>();\n readonly cells = contentChildren(ThlCellDirective);\n readonly api = createTable<any>({\n data: [],\n columns: [],\n rowKey: (r: any) => {\n const k = this.rowKey();\n return typeof k === 'function' ? k(r) : k ? r[k] : this.data().indexOf(r);\n },\n pageSize: 10,\n });\n readonly st = storeSignal(this.api.state, inject(DestroyRef));\n readonly view = computed(() => {\n this.st();\n return this.api.view();\n });\n readonly total = computed(() => this.view().total);\n readonly from = computed(() => (this.total() === 0 ? 0 : (this.st().page - 1) * this.st().pageSize + 1));\n readonly to = computed(() => Math.min(this.total(), this.st().page * this.st().pageSize));\n readonly all = computed(() => {\n this.st();\n return this.api.allSelected();\n });\n readonly d = computed(() =>\n this.cfg.defaults('Table', { pageSize: this.pageSize(), striped: this.striped(), hover: this.hover(), bordered: this.bordered() }),\n );\n private readonly i18n = inject(ThlI18nService);\n readonly showParts = computed(() => this.i18n.t('table.show', { n: '\\u0000' }).split('\\u0000'));\n readonly sizes = computed(() => pageSizeOptions(this.d().pageSizes as number[] | undefined, this.st().pageSize));\n readonly b = (e?: string) => this.cfg.bem('table')(e);\n readonly tableCls = computed(() => {\n const d = this.d();\n return this.cfg.bem('table')({\n striped: d.striped,\n hover: d.hover,\n bordered: d.bordered,\n compact: this.compact(),\n stack: this.stack(),\n [`color-${this.color()}`]: !!this.color(),\n });\n });\n readonly editing = signal<{ row: string | number; key: string; value: string } | null>(null);\n private sizeInit = false;\n constructor() {\n effect(() => this.api.setData(this.data()));\n effect(() => this.api.setColumns(this.columns()));\n effect(() => {\n const ps = this.d().pageSize as number | undefined;\n if (ps && !this.sizeInit) {\n this.sizeInit = true;\n this.api.setPageSize(ps);\n }\n });\n let first = true;\n effect(() => {\n const s = this.st().selected;\n if (first) {\n first = false;\n return;\n }\n void s;\n this.selectionChange.emit(this.api.selectedRows());\n });\n }\n tpl(key: string) {\n return this.cells().find((c) => c.key() === key)?.tpl;\n }\n hide(c: ColumnDef) {\n return c.hideBelow ? `${this.p()}-col-hidden-${c.hideBelow >= 1170 ? 'lg' : c.hideBelow >= 1024 ? 'md' : 'sm'}` : '';\n }\n ariaSort(k: string) {\n const d = this.api.sortDir(k);\n return d ? (d === 'asc' ? 'ascending' : 'descending') : null;\n }\n sortCls(k: string) {\n const d = this.api.sortDir(k);\n return cx(this.b('sort'), d && `is-${d}`);\n }\n isEditing(r: string | number, k: string) {\n const e = this.editing();\n return !!e && e.row === r && e.key === k;\n }\n startEdit(r: string | number, k: string, row: any) {\n this.editing.set({ row: r, key: k, value: String(row[k] ?? '') });\n }\n editValue(v: string) {\n const e = this.editing();\n if (e) this.editing.set({ ...e, value: v });\n }\n commit() {\n const e = this.editing();\n if (!e) return;\n const data = this.api.updateCell(e.row, e.key, e.value);\n this.cellEdit.emit({ rowKey: e.row, key: e.key, value: e.value, data });\n this.editing.set(null);\n }\n}\n\n/* ---------------- List / Gallery ---------------- */\n@Component({\n ...base,\n selector: 'thl-list',\n imports: [ThlIconComponent],\n template: `<ul [class]=\"cls()\">\n @for (it of items(); track $index) {\n <li [class]=\"b('item')\" [tabIndex]=\"hover() ? 0 : -1\" (click)=\"itemClick.emit(it)\" (keydown.enter)=\"itemClick.emit(it)\">\n @if (it.avatar) {\n <span [class]=\"p() + '-avatar'\"><img [src]=\"it.avatar\" alt=\"\" /></span>\n }\n @if (it.icon) {\n <span [class]=\"iconCls(it.iconColor)\"><thl-icon [name]=\"it.icon\" /></span>\n }\n <div [class]=\"b('body')\">\n <p [class]=\"b('title')\">{{ it.title }}</p>\n @if (it.description) {\n <p [class]=\"b('desc')\">{{ it.description }}</p>\n }\n </div>\n @if (it.meta) {\n <span [class]=\"b('meta')\">{{ it.meta }}</span>\n }\n </li>\n }\n </ul>`,\n})\nexport class ThlListComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly p = this.cfg.prefix;\n readonly items = input.required<Array<{ avatar?: string; icon?: string; iconColor?: string; title: string; description?: string; meta?: string }>>();\n readonly hover = input(false, { transform: booleanAttribute });\n readonly itemClick = output<any>();\n readonly b = (e: string) => this.cfg.bem('list')(e);\n readonly cls = computed(() => this.cfg.bem('list')({ hover: this.hover() }));\n iconCls(c?: string) {\n return this.cfg.bem('list')('icon', { [c ?? 'primary']: true });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-gallery',\n imports: [ThlIconComponent, ThlTranslatePipe],\n host: { '(document:keydown)': 'onKey($event)' },\n template: `<div [class]=\"g()\">\n @for (im of images(); track $index; let i = $index) {\n <button type=\"button\" [class]=\"g('item')\" (click)=\"idx.set(i)\"><img [src]=\"im.thumb ?? im.src\" [alt]=\"im.alt ?? ''\" loading=\"lazy\" /></button>\n }\n </div>\n @if (idx() !== null) {\n <div [class]=\"l()\" role=\"dialog\" aria-modal=\"true\" (click)=\"$event.target === $event.currentTarget && idx.set(null)\">\n <img [src]=\"images()[idx()!].src\" [alt]=\"images()[idx()!].alt ?? ''\" />\n <button type=\"button\" [class]=\"l('close')\" (click)=\"idx.set(null)\" [attr.aria-label]=\"'common.close' | thlT\">×</button>\n <button type=\"button\" [class]=\"l('nav') + ' ' + l('nav') + '--prev'\" (click)=\"move(-1)\" [attr.aria-label]=\"'common.previous' | thlT\">\n <thl-icon name=\"chevron-left\" />\n </button>\n <button type=\"button\" [class]=\"l('nav') + ' ' + l('nav') + '--next'\" (click)=\"move(1)\" [attr.aria-label]=\"'common.next' | thlT\">\n <thl-icon name=\"chevron-right\" />\n </button>\n @if (images()[idx()!].caption) {\n <div [class]=\"l('caption')\">{{ images()[idx()!].caption }}</div>\n }\n </div>\n }`,\n})\nexport class ThlGalleryComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly images = input.required<Array<{ src: string; thumb?: string; alt?: string; caption?: string }>>();\n readonly idx = signal<number | null>(null);\n readonly g = (e?: string) => this.cfg.bem('gallery')(e);\n readonly l = (e?: string) => this.cfg.bem('lightbox')(e);\n move(d: number) {\n const n = this.images().length;\n this.idx.update((i) => ((i ?? 0) + d + n) % n);\n }\n onKey(e: KeyboardEvent) {\n if (this.idx() === null) return;\n if (e.key === 'Escape') this.idx.set(null);\n if (e.key === 'ArrowRight') this.move(1);\n if (e.key === 'ArrowLeft') this.move(-1);\n }\n}\n\n/* ---------------- Widgets ---------------- */\n@Component({\n ...base,\n selector: 'thl-info-box',\n imports: [ThlIconComponent],\n host: { '[class]': 'cls()' },\n template: `@if (icon()) {\n <span [class]=\"b('icon')\"><thl-icon [name]=\"icon()!\" /></span>\n }\n <div [class]=\"b('body')\">\n <div [class]=\"b('value')\">{{ value() }}</div>\n <p [class]=\"b('title')\">{{ title() }}</p>\n <span [class]=\"b('line')\"></span>\n <div [class]=\"b('foot')\"><ng-content /></div>\n </div>`,\n})\nexport class ThlInfoBoxComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly icon = input<string>();\n readonly value = input<string | number>();\n readonly title = input<string>();\n readonly color = input<string>('primary');\n readonly filled = input(false, { transform: booleanAttribute });\n readonly soft = input(false, { transform: booleanAttribute });\n readonly b = (e: string) => this.cfg.bem('info-box')(e);\n readonly cls = computed(() => this.cfg.bem('info-box')({ [this.color()]: true, filled: this.filled(), soft: this.soft() }));\n}\n@Component({\n ...base,\n selector: 'thl-stat-box',\n imports: [ThlIconComponent, ThlProgressComponent],\n host: { '[class]': 'cls()' },\n template: `<div [class]=\"b('head')\">\n <h2 [class]=\"b('title')\">{{ title() }}</h2>\n @if (icon()) {\n <span [class]=\"b('icon')\"><thl-icon [name]=\"icon()!\" /></span>\n }\n </div>\n <div [class]=\"b('value')\">\n {{ value() }}\n @if (delta()) {\n <span [class]=\"deltaCls()\"><thl-icon [name]=\"trend() === 'down' ? 'trending-down' : 'trending-up'\" /> {{ delta() }}</span>\n }\n </div>\n @if (progress() !== undefined) {\n <thl-progress [value]=\"progress()!\" [color]=\"color()\" size=\"sm\" />\n }\n <ng-content />`,\n})\nexport class ThlStatBoxComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly title = input<string>();\n readonly value = input<string | number>();\n readonly icon = input<string>();\n readonly color = input<string>('primary');\n readonly trend = input<'up' | 'down'>('up');\n readonly delta = input<string>();\n readonly progress = input<number>();\n readonly b = (e: string) => this.cfg.bem('stat')(e);\n readonly cls = computed(() => this.cfg.bem('stat')({ [this.color()]: true }));\n readonly deltaCls = computed(() => this.cfg.bem('stat')('delta', { [this.trend()]: true }));\n}\n@Component({\n ...base,\n selector: 'thl-color-box',\n imports: [ThlIconComponent],\n host: { '[class]': 'cls()' },\n template: `@if (label()) {\n <div [class]=\"b('label')\">{{ label() }}</div>\n }\n @if (value() !== undefined) {\n <div [class]=\"b('value')\">{{ value() }}</div>\n }\n <ng-content />\n @if (icon()) {\n <span [class]=\"b('icon')\"><thl-icon [name]=\"icon()!\" /></span>\n }`,\n})\nexport class ThlColorBoxComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly color = input('primary');\n readonly icon = input<string>();\n readonly label = input<string>();\n readonly value = input<string | number>();\n readonly b = (e: string) => this.cfg.bem('color-box')(e);\n readonly cls = computed(() => this.cfg.bem('color-box')({ [this.color()]: true }));\n}\n@Component({\n ...base,\n selector: 'thl-stats-row',\n host: { '[class]': 'b()' },\n template: `@for (it of items(); track $index) {\n <div [class]=\"b('item')\">\n <div [class]=\"b('label')\">{{ it.label }}</div>\n <b>{{ it.value }}</b>\n </div>\n }`,\n})\nexport class ThlStatsRowComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly items = input.required<Array<{ label: string; value: string | number }>>();\n readonly b = (e?: string) => this.cfg.bem('stats-row')(e);\n}\n\nexport interface PricingPlanData {\n name: string;\n price: string | number;\n currency?: string;\n period?: string;\n features: Array<{ icon?: string; text: string }>;\n featured?: boolean;\n tag?: string;\n cta?: string;\n ctaVariant?: string;\n}\n@Component({\n ...base,\n selector: 'thl-pricing-table',\n imports: [ThlIconComponent, ThlButtonComponent, ThlTranslatePipe],\n host: { '[class]': 'cfg.prefix() + \"-pricing-wrap\"' },\n template: `<div [class]=\"cfg.prefix() + '-pricing'\" [style.--_n]=\"plans().length\">\n @for (pl of plans(); track $index; let i = $index) {\n <div [class]=\"planCls(pl.featured)\">\n @if (pl.tag) {\n <div [class]=\"b('tag')\">{{ pl.tag }}</div>\n }\n <div [class]=\"b('header')\">\n <h2>{{ pl.name }}</h2>\n <div [class]=\"b('price')\">\n <sup>{{ pl.currency ?? '$' }}</sup\n >{{ pl.price }}\n </div>\n <p [class]=\"b('period')\">{{ pl.period ?? ('pages.pricing.perMonth' | thlT) }}</p>\n </div>\n <ul [class]=\"b('features')\">\n @for (f of pl.features; track $index) {\n <li [class]=\"b('feature')\">\n @if (f.icon) {\n <thl-icon [name]=\"f.icon\" />\n }\n {{ f.text }}\n </li>\n }\n </ul>\n <div [class]=\"b('action')\">\n <button\n thl-button\n [variant]=\"pl.ctaVariant ?? (pl.featured ? 'danger' : 'success')\"\n [size]=\"pl.featured ? 'lg' : undefined\"\n (click)=\"selected.emit(pl)\"\n >\n {{ pl.cta ?? ('pages.pricing.signUp' | thlT) }}\n </button>\n </div>\n </div>\n }\n </div>`,\n})\nexport class ThlPricingTableComponent {\n readonly cfg = inject(ThlConfigService);\n readonly plans = input.required<PricingPlanData[]>();\n readonly selected = output<PricingPlanData>();\n readonly b = (e: string) => this.cfg.bem('pricing-plan')(e);\n planCls(f?: boolean) {\n return this.cfg.bem('pricing-plan')({ featured: f });\n }\n}\n@Component({\n ...base,\n selector: 'thl-user-card',\n host: { '[class]': 'b()' },\n template: `<div [class]=\"b('media')\" tabindex=\"0\">\n <img [src]=\"image()\" alt=\"\" />\n <div [class]=\"b('overlay')\"><ng-content select=\"[thlActions]\" /></div>\n </div>\n <div [class]=\"b('content')\">\n <h2>{{ name() }}</h2>\n @if (subtitle()) {\n <small>{{ subtitle() }}</small>\n }\n </div>`,\n})\nexport class ThlUserCardComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly image = input.required<string>();\n readonly name = input<string>();\n readonly subtitle = input<string>();\n readonly b = (e?: string) => this.cfg.bem('user-card')(e);\n}\n@Component({\n ...base,\n selector: 'thl-profile-card',\n host: { '[class]': 'b()' },\n template: `<div [class]=\"b('cover')\">\n @if (cover()) {\n <img [src]=\"cover()\" alt=\"\" />\n }\n <div [class]=\"b('overlay')\">\n @if (avatar()) {\n <img [src]=\"avatar()\" alt=\"\" style=\"width:80px;height:80px;border-radius:50%;border:3px solid #fff;object-fit:cover\" />\n }\n <h2>{{ name() }}</h2>\n @if (email()) {\n <div>{{ email() }}</div>\n }\n </div>\n </div>\n @if (stats()) {\n <div [class]=\"b('stats')\">\n @for (s of stats(); track $index) {\n <div>\n <b>{{ s.value }}</b\n ><small>{{ s.label }}</small>\n </div>\n }\n </div>\n }\n <div [class]=\"b('body')\"><ng-content /></div>`,\n})\nexport class ThlProfileCardComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly cover = input<string>();\n readonly avatar = input<string>();\n readonly name = input<string>();\n readonly email = input<string>();\n readonly stats = input<Array<{ label: string; value: string | number }>>();\n readonly b = (e?: string) => this.cfg.bem('profile-card')(e);\n}\n@Component({\n ...base,\n selector: 'thl-chat',\n imports: [ThlIconComponent, ThlButtonComponent, ThlTranslatePipe],\n template: `<ul [class]=\"b()\" aria-live=\"polite\">\n @for (m of messages(); track m.id) {\n <li [class]=\"msgCls(m.me)\">\n @if (m.avatar) {\n <img [src]=\"m.avatar\" alt=\"\" style=\"width:36px;height:36px;border-radius:50%;object-fit:cover\" />\n }\n <div>\n @if (!m.me) {\n <div [class]=\"b('name')\">{{ m.from }}</div>\n }\n <div [class]=\"b('bubble')\">{{ m.text }}</div>\n @if (m.time) {\n <div [class]=\"b('time')\">{{ m.time }}</div>\n }\n </div>\n </li>\n }\n </ul>\n @if (composer()) {\n <form [class]=\"b('composer')\" (submit)=\"$event.preventDefault(); submit(box)\">\n <input #box [class]=\"cfg.prefix() + '-input'\" [placeholder]=\"('layout.messages' | thlT) + '...'\" [attr.aria-label]=\"'layout.messages' | thlT\" />\n <button thl-button type=\"submit\" variant=\"primary\" circle [attr.aria-label]=\"'pages.inbox.send' | thlT\"><thl-icon name=\"send\" /></button>\n </form>\n }`,\n})\nexport class ThlChatComponent {\n readonly cfg = inject(ThlConfigService);\n readonly messages = input.required<Array<{ id: string | number; from: string; avatar?: string; text: string; time?: string; me?: boolean }>>();\n readonly composer = input(false, { transform: booleanAttribute });\n readonly send = output<string>();\n readonly b = (e?: string) => this.cfg.bem('chat')(e);\n msgCls(me?: boolean) {\n return this.cfg.bem('chat')('msg', { me });\n }\n submit(el: HTMLInputElement) {\n const v = el.value.trim();\n if (v) {\n this.send.emit(v);\n el.value = '';\n }\n }\n}\n@Component({\n ...base,\n selector: 'thl-todo-list',\n imports: [ThlIconComponent, ThlLabelComponent, ThlButtonComponent, ThlTranslatePipe],\n template: `<ul [class]=\"b()\">\n @for (it of items(); track it.id) {\n <li [class]=\"itemCls(it.done)\">\n <label [class]=\"cfg.prefix() + '-check'\" style=\"margin:0\"\n ><input\n type=\"checkbox\"\n [class]=\"cfg.prefix() + '-check__input'\"\n [checked]=\"!!it.done\"\n [attr.aria-label]=\"('common.toggleDone' | thlT) + ': ' + it.text\"\n (change)=\"toggle.emit(it.id)\" /><span [class]=\"cfg.prefix() + '-check__box'\"></span\n ></label>\n <span [class]=\"b('text')\">{{ it.text }}</span>\n @if (it.badge) {\n <thl-label [color]=\"it.badge.color ?? 'info'\" rounded>{{ it.badge.text }}</thl-label>\n }\n <button type=\"button\" [class]=\"b('remove')\" (click)=\"remove.emit(it.id)\" [attr.aria-label]=\"'common.delete' | thlT\">\n <thl-icon name=\"trash-2\" />\n </button>\n </li>\n }\n </ul>\n @if (addable()) {\n <form [class]=\"cfg.prefix() + '-flex ' + cfg.prefix() + '-mt-3'\" style=\"flex-wrap:nowrap\" (submit)=\"$event.preventDefault(); submit(box)\">\n <input #box [class]=\"cfg.prefix() + '-input'\" [placeholder]=\"('common.add' | thlT) + '...'\" [attr.aria-label]=\"'common.add' | thlT\" /><button\n thl-button\n type=\"submit\"\n variant=\"success\"\n >\n {{ 'common.add' | thlT }}\n </button>\n </form>\n }`,\n})\nexport class ThlTodoListComponent {\n readonly cfg = inject(ThlConfigService);\n readonly items = input.required<Array<{ id: string | number; text: string; done?: boolean; badge?: { text: string; color?: string } }>>();\n readonly addable = input(false, { transform: booleanAttribute });\n readonly toggle = output<string | number>();\n readonly remove = output<string | number>();\n readonly add = output<string>();\n readonly b = (e?: string) => this.cfg.bem('todo')(e);\n itemCls(done?: boolean) {\n return cx(this.b('item'), { 'is-done': done });\n }\n submit(el: HTMLInputElement) {\n const v = el.value.trim();\n if (v) {\n this.add.emit(v);\n el.value = '';\n }\n }\n}\n@Component({\n ...base,\n selector: 'thl-weather',\n imports: [ThlIconComponent],\n host: { '[class]': 'b()' },\n template: `<div [class]=\"cfg.prefix() + '-flex-between'\">\n <div>\n <div [class]=\"b('temp')\">{{ temp() }}<sup>°</sup></div>\n <div>{{ condition() }}</div>\n <small style=\"opacity:.85\"><thl-icon name=\"map-pin\" /> {{ city() }}</small>\n </div>\n <span [class]=\"b('icon')\"><thl-icon [name]=\"icon()\" [strokeWidth]=\"1.5\" /></span>\n </div>\n @if (days()) {\n <div [class]=\"b('days')\">\n @for (d of days(); track $index) {\n <div>\n <div>{{ d.day }}</div>\n @if (d.icon) {\n <thl-icon [name]=\"d.icon\" />\n }\n <b>{{ d.temp }}°</b>\n </div>\n }\n </div>\n }`,\n})\nexport class ThlWeatherComponent {\n readonly cfg = inject(ThlConfigService);\n readonly city = input<string>();\n readonly temp = input<number>();\n readonly condition = input<string>();\n readonly icon = input('cloud-sun');\n readonly days = input<Array<{ day: string; temp: number; icon?: string }>>();\n readonly b = (e?: string) => this.cfg.bem('weather')(e);\n}\n\n/* ---------------- Charts ---------------- */\n@Directive()\nabstract class ResponsiveChart {\n protected readonly cfg = inject(ThlConfigService);\n protected readonly i18n = inject(ThlI18nService);\n readonly width = signal(600);\n constructor() {\n const el = inject(ElementRef).nativeElement as HTMLElement;\n if (typeof ResizeObserver !== 'undefined') {\n const ro = new ResizeObserver(([e]) => this.width.set(Math.max(200, Math.round(e.contentRect.width))));\n ro.observe(el);\n inject(DestroyRef).onDestroy(() => ro.disconnect());\n }\n }\n fmt(v: number) {\n return formatTick(v, this.i18n.intlLocale());\n }\n}\n@Component({\n ...base,\n selector: 'thl-line-chart',\n host: { '[class]': 'cfg.prefix() + \"-chart\"', style: 'display:block' },\n template: `@if (legend()) {\n <ul [class]=\"cfg.prefix() + '-chart-legend'\">\n @for (s of c().series; track s.name) {\n <li><i [style.background]=\"s.color\"></i>{{ s.name }}</li>\n }\n </ul>\n }\n <svg [attr.width]=\"width()\" [attr.height]=\"height()\" role=\"img\" [attr.aria-label]=\"aria()\" (mouseleave)=\"hover.set(null)\">\n @for (tk of c().yTicks; track tk.value) {\n <line [attr.x1]=\"c().plot.x\" [attr.x2]=\"c().plot.x + c().plot.width\" [attr.y1]=\"tk.y\" [attr.y2]=\"tk.y\" stroke=\"var(--thl-border-color)\" />\n <text [attr.x]=\"c().plot.x - 8\" [attr.y]=\"tk.y + 4\" text-anchor=\"end\" font-size=\"11\" fill=\"var(--thl-text)\">{{ fmt(tk.value) }}</text>\n }\n @for (l of c().xLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"height() - 8\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--thl-text)\">{{ l.label }}</text>\n }\n @for (s of c().series; track s.name) {\n @if (area()) {\n <path [attr.d]=\"s.area\" [attr.fill]=\"s.color\" opacity=\"0.15\" />\n }\n <path [attr.d]=\"s.line\" fill=\"none\" [attr.stroke]=\"s.color\" stroke-width=\"2.5\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n @for (pt of s.points; track $index; let i = $index) {\n <circle [attr.cx]=\"pt.x\" [attr.cy]=\"pt.y\" [attr.r]=\"hover() === i ? 5 : 3\" fill=\"var(--thl-surface)\" [attr.stroke]=\"s.color\" stroke-width=\"2\">\n <title>{{ s.name }} · {{ pt.label }}: {{ fmt(pt.value) }}</title>\n </circle>\n }\n }\n @for (l of c().xLabels; track $index; let i = $index) {\n <rect\n [attr.x]=\"l.x - band() / 2\"\n [attr.y]=\"c().plot.y\"\n [attr.width]=\"band()\"\n [attr.height]=\"c().plot.height\"\n fill=\"transparent\"\n (mouseenter)=\"hover.set(i)\"\n />\n }\n </svg>`,\n})\nexport class ThlLineChartComponent extends ResponsiveChart {\n override readonly cfg = inject(ThlConfigService);\n readonly series = input.required<Series[]>();\n readonly labels = input.required<string[]>();\n readonly height = input(280);\n readonly area = input(false, { transform: booleanAttribute });\n readonly smooth = input(true, { transform: booleanAttribute });\n readonly legend = input(true, { transform: booleanAttribute });\n readonly hover = signal<number | null>(null);\n readonly c = computed(() => lineChart(this.series(), this.labels(), { width: this.width(), height: this.height() }, { smooth: this.smooth() }));\n readonly band = computed(() => this.c().plot.width / Math.max(1, this.labels().length - 1));\n readonly aria = computed(() =>\n this.series()\n .map((s) => s.name)\n .join(', '),\n );\n}\n@Component({\n ...base,\n selector: 'thl-bar-chart',\n host: { '[class]': 'cfg.prefix() + \"-chart\"', style: 'display:block' },\n template: `@if (legend()) {\n <ul [class]=\"cfg.prefix() + '-chart-legend'\">\n @for (s of series(); track s.name; let i = $index) {\n <li><i [style.background]=\"color(i, s)\"></i>{{ s.name }}</li>\n }\n </ul>\n }\n <svg [attr.width]=\"width()\" [attr.height]=\"height()\" role=\"img\" [attr.aria-label]=\"aria()\">\n @for (tk of c().yTicks; track tk.value) {\n <line [attr.x1]=\"c().plot.x\" [attr.x2]=\"c().plot.x + c().plot.width\" [attr.y1]=\"tk.y\" [attr.y2]=\"tk.y\" stroke=\"var(--thl-border-color)\" />\n <text [attr.x]=\"c().plot.x - 8\" [attr.y]=\"tk.y + 4\" text-anchor=\"end\" font-size=\"11\" fill=\"var(--thl-text)\">{{ fmt(tk.value) }}</text>\n }\n @for (l of c().xLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"height() - 8\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--thl-text)\">{{ l.label }}</text>\n }\n @for (b of c().bars; track $index) {\n <rect [attr.x]=\"b.x\" [attr.y]=\"b.y\" [attr.width]=\"b.width\" [attr.height]=\"b.height\" [attr.fill]=\"b.color\" rx=\"2\">\n <title>{{ b.series }} · {{ b.label }}: {{ fmt(b.value) }}</title>\n </rect>\n }\n </svg>`,\n})\nexport class ThlBarChartComponent extends ResponsiveChart {\n override readonly cfg = inject(ThlConfigService);\n readonly series = input.required<Series[]>();\n readonly labels = input.required<string[]>();\n readonly height = input(280);\n readonly stacked = input(false, { transform: booleanAttribute });\n readonly legend = input(true, { transform: booleanAttribute });\n readonly c = computed(() => barChart(this.series(), this.labels(), { width: this.width(), height: this.height() }, { stacked: this.stacked() }));\n readonly aria = computed(() =>\n this.series()\n .map((s) => s.name)\n .join(', '),\n );\n color(i: number, s: Series) {\n return colorAt(i, s);\n }\n}\n@Component({\n ...base,\n selector: 'thl-pie-chart',\n host: { '[class]': 'cfg.prefix() + \"-chart\"', style: 'display:flex;flex-direction:column;align-items:center' },\n template: `<div [style.position]=\"'relative'\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <svg [attr.width]=\"size()\" [attr.height]=\"size()\" role=\"img\" [attr.aria-label]=\"aria()\">\n @for (s of slices(); track $index; let i = $index) {\n <path\n [attr.d]=\"s.path\"\n [attr.fill]=\"s.color\"\n stroke=\"var(--thl-surface)\"\n stroke-width=\"2\"\n [attr.opacity]=\"hover() === null || hover() === i ? 1 : 0.55\"\n (mouseenter)=\"hover.set(i)\"\n (mouseleave)=\"hover.set(null)\"\n >\n <title>{{ s.label }}: {{ s.value }} ({{ s.percent.toFixed(1) }}%)</title>\n </path>\n }\n </svg>\n <div style=\"position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;text-align:center\">\n @if (hover() !== null) {\n <b style=\"font-size:22px;color:var(--thl-heading)\">{{ slices()[hover()!].percent.toFixed(0) }}%</b><small>{{ slices()[hover()!].label }}</small>\n } @else {\n <ng-content />\n }\n </div>\n </div>\n @if (legend()) {\n <ul [class]=\"cfg.prefix() + '-chart-legend ' + cfg.prefix() + '-mt-3'\">\n @for (s of slices(); track $index) {\n <li><i [style.background]=\"s.color\"></i>{{ s.label }}</li>\n }\n </ul>\n }`,\n})\nexport class ThlPieChartComponent {\n readonly cfg = inject(ThlConfigService);\n readonly data = input.required<Array<{ label: string; value: number; color?: string }>>();\n readonly size = input(220);\n readonly donut = input(0.6);\n readonly legend = input(true, { transform: booleanAttribute });\n readonly hover = signal<number | null>(null);\n readonly slices = computed(() => pieChart(this.data(), this.size(), { donut: this.donut() }));\n readonly aria = computed(() =>\n this.data()\n .map((d) => `${d.label} ${d.value}`)\n .join(', '),\n );\n}\n@Component({\n ...base,\n selector: 'thl-sparkline',\n host: { style: 'display:inline-block;line-height:0' },\n template: `<svg\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n role=\"img\"\n [attr.aria-label]=\"data().join(', ')\"\n style=\"overflow:visible;max-width:100%;height:auto\"\n >\n @if (type() === 'bar') {\n @for (b of s().bars; track $index) {\n <rect [attr.x]=\"b.x\" [attr.y]=\"b.y\" [attr.width]=\"b.width\" [attr.height]=\"b.height\" [attr.fill]=\"c()\" rx=\"1\" />\n }\n } @else {\n @if (type() === 'area') {\n <path [attr.d]=\"s().area\" [attr.fill]=\"c()\" opacity=\"0.2\" />\n }\n <path [attr.d]=\"s().line\" fill=\"none\" [attr.stroke]=\"c()\" stroke-width=\"2\" stroke-linejoin=\"round\" />\n @if (s().last; as l) {\n <circle [attr.cx]=\"l[0]\" [attr.cy]=\"l[1]\" r=\"3\" [attr.fill]=\"c()\" />\n }\n }\n </svg>`,\n})\nexport class ThlSparklineComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly data = input.required<number[]>();\n readonly width = input(120);\n readonly height = input(36);\n readonly type = input<'line' | 'bar' | 'area'>('line');\n readonly color = input('primary');\n readonly s = computed(() => sparkline(this.data(), this.width(), this.height(), this.type() === 'bar' ? 'bar' : 'line'));\n readonly c = computed(() => `var(--${this.cfg.prefix()}-color-${this.color()})`);\n}\n\n/* ---------------- Calendar ---------------- */\nexport interface CalendarEvent {\n id: string | number;\n title: string;\n date: string;\n color?: string;\n}\n@Component({\n ...base,\n selector: 'thl-calendar',\n imports: [ThlIconComponent, ThlButtonComponent, ThlTranslatePipe],\n host: { '[class]': 'b()' },\n template: `<div [class]=\"b('toolbar')\">\n <div [class]=\"cfg.prefix() + '-btn-group'\">\n <button thl-button size=\"sm\" (click)=\"shift(-1)\" [attr.aria-label]=\"'common.previous' | thlT\"><thl-icon name=\"chevron-left\" /></button\n ><button thl-button size=\"sm\" (click)=\"shift(1)\" [attr.aria-label]=\"'common.next' | thlT\"><thl-icon name=\"chevron-right\" /></button>\n </div>\n <h2 aria-live=\"polite\">{{ title() }}</h2>\n <button thl-button size=\"sm\" variant=\"primary\" (click)=\"today()\">{{ 'datepicker.today' | thlT }}</button>\n </div>\n <div [class]=\"b('grid')\">\n @for (n of names(); track n) {\n <div [class]=\"b('dow')\" aria-hidden=\"true\">{{ n }}</div>\n }\n @for (c of cells(); track c.key) {\n <div\n role=\"group\"\n [attr.aria-label]=\"fullDate(c.date)\"\n [class]=\"cellCls(c)\"\n (click)=\"dateClick.emit(iso(c.date))\"\n (dragover)=\"$event.preventDefault(); drop.set(iso(c.date))\"\n (dragleave)=\"drop.set(null)\"\n (drop)=\"onDrop($event, iso(c.date))\"\n >\n <span [class]=\"b('date')\" aria-hidden=\"true\">{{ c.date.getDate() }}</span>\n @for (ev of byDate()[iso(c.date)] ?? []; track ev.id) {\n <button\n type=\"button\"\n draggable=\"true\"\n [class]=\"evCls(ev.color)\"\n [title]=\"ev.title\"\n (dragstart)=\"$any($event).dataTransfer.setData('text/thl-event', '' + ev.id)\"\n (click)=\"$event.stopPropagation(); eventClick.emit(ev)\"\n >\n {{ ev.title }}\n </button>\n }\n </div>\n }\n </div>`,\n})\nexport class ThlCalendarComponent {\n readonly cfg = inject(ThlConfigService);\n private readonly i18n = inject(ThlI18nService);\n readonly events = input.required<CalendarEvent[]>();\n readonly eventMove = output<{ id: string | number; date: string }>();\n readonly dateClick = output<string>();\n readonly eventClick = output<CalendarEvent>();\n readonly month = signal(new Date(new Date().getFullYear(), new Date().getMonth(), 1));\n readonly drop = signal<string | null>(null);\n readonly ws = computed(() => ((this.cfg.config().components.DatePicker?.weekStartsOn as number) ?? 1) as 0 | 1);\n readonly names = computed(() => weekdayNames(this.i18n.intlLocale(), this.ws(), 'short'));\n readonly cells = computed(() => monthGrid(this.month().getFullYear(), this.month().getMonth(), this.ws()).flat());\n readonly title = computed(() => new Intl.DateTimeFormat(this.i18n.intlLocale(), { month: 'long', year: 'numeric' }).format(this.month()));\n fullDate(d: Date) {\n return this.i18n.d(d, { dateStyle: 'full' });\n }\n readonly byDate = computed(() => {\n const m: Partial<Record<string, CalendarEvent[]>> = {};\n this.events().forEach((e) => (m[e.date] ??= []).push(e));\n return m;\n });\n readonly b = (e?: string) => this.cfg.bem('calendar')(e);\n iso(d: Date) {\n return toISODate(d);\n }\n shift(n: number) {\n this.month.set(addMonths(this.month(), n));\n }\n today() {\n const d = new Date();\n this.month.set(new Date(d.getFullYear(), d.getMonth(), 1));\n }\n cellCls(c: { date: Date; inMonth: boolean; today: boolean }) {\n return cx(this.b('cell'), { 'is-outside': !c.inMonth, 'is-today': c.today, 'is-drop': this.drop() === this.iso(c.date) });\n }\n evCls(color?: string) {\n return this.cfg.bem('calendar')('event', { [color ?? 'primary']: true });\n }\n onDrop(e: DragEvent, date: string) {\n e.preventDefault();\n this.drop.set(null);\n const id = e.dataTransfer?.getData('text/thl-event');\n if (id) this.eventMove.emit({ id: isNaN(Number(id)) ? id : Number(id), date });\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n output,\n model,\n computed,\n signal,\n inject,\n booleanAttribute,\n effect,\n DestroyRef,\n TemplateRef,\n contentChild,\n Directive,\n ElementRef,\n afterRenderEffect,\n untracked,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n cx,\n createSidebar,\n findActiveTrail,\n observeMenuOverflow,\n skins,\n localeInfo,\n type MenuItem,\n type ThlSkin,\n type LayoutMode,\n type ColorMode,\n} from '@thl-ui/core';\nimport { ThlConfigService, ThlI18nService, ThlIconComponent, ThlTranslatePipe, storeSignal } from './core';\nimport { ThlButtonComponent, ThlButtonGroupComponent, ThlLabelComponent, ThlBadgeComponent } from './basic';\nimport { ThlDrawerComponent, ThlDropdownComponent, ThlToasterComponent, ThlConfirmHostComponent, type DropdownItem } from './overlay';\nimport { ThlBreadcrumbComponent } from './nav';\nimport { ThlSwitchComponent } from './form';\n\nconst base = { standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None } as const;\n\n/** Custom link rendering (e.g. routerLink): <ng-template thlMenuLink let-item let-cls=\"cls\">…</ng-template> */\n@Directive({ selector: 'ng-template[thlMenuLink]', standalone: true })\nexport class ThlMenuLinkDirective {\n readonly tpl = inject(TemplateRef);\n}\n\n/* ---------------- SideMenu ---------------- */\n@Component({\n ...base,\n selector: 'thl-side-menu',\n imports: [NgTemplateOutlet, ThlIconComponent, ThlLabelComponent],\n template: `<ng-template #list let-items let-depth=\"depth\"\n ><ul [class]=\"depth ? b('sub') : b()\">\n @for (it of items; track it.key; let idx = $index) {\n @if (it.heading) {\n <li [class]=\"b('heading')\">{{ label(it.label) }}</li>\n } @else if (it.divider) {\n <li [class]=\"b('divider')\" role=\"separator\"></li>\n } @else {\n <li [class.is-overflow]=\"isHidden(depth, idx)\" [attr.aria-hidden]=\"isHidden(depth, idx) ? 'true' : null\">\n <ng-template #content>\n @if (it.icon) {\n <span [class]=\"b('icon')\"><thl-icon [name]=\"it.icon\" /></span>\n }\n <span [class]=\"b('label')\">{{ label(it.label) }}</span>\n @if (it.badge) {\n <thl-label [class]=\"b('badge')\" [color]=\"it.badge.color ?? 'danger'\" rounded>{{ it.badge.text }}</thl-label>\n }\n @if (it.children) {\n <thl-icon name=\"chevron-right\" [class]=\"b('arrow')\" />\n }\n </ng-template>\n @if (it.children) {\n <button\n type=\"button\"\n [class]=\"linkCls(it.key)\"\n [attr.aria-expanded]=\"isOpen(it.key)\"\n [attr.title]=\"depth ? null : label(it.label)\"\n (click)=\"toggle(it.key, items)\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </button>\n <div [class]=\"collapseCls(it.key)\">\n <div><ng-container [ngTemplateOutlet]=\"list\" [ngTemplateOutletContext]=\"{ $implicit: it.children, depth: depth + 1 }\" /></div>\n </div>\n } @else if (linkTpl()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTpl()!.tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: it, cls: linkCls(it.key), content: content, current: isCurrent(it.key) }\"\n />\n } @else {\n <a\n [href]=\"it.href\"\n [class]=\"linkCls(it.key)\"\n [attr.aria-current]=\"isCurrent(it.key) ? 'page' : null\"\n [attr.title]=\"depth ? null : label(it.label)\"\n ><ng-container [ngTemplateOutlet]=\"content\"\n /></a>\n }\n </li>\n }\n }\n @if (!depth && overflow()) {\n <li data-thl-more=\"\" [class]=\"b('more')\">\n <button type=\"button\" [class]=\"moreCls()\" [attr.aria-expanded]=\"isOpen('__more')\" (click)=\"toggle('__more', [])\">\n <span [class]=\"b('icon')\"><thl-icon name=\"ellipsis\" /></span>\n <span [class]=\"b('label')\">{{ i18n.t('common.more') }}</span>\n <thl-icon name=\"chevron-right\" [class]=\"b('arrow')\" />\n </button>\n <div [class]=\"collapseCls('__more')\">\n <div><ng-container [ngTemplateOutlet]=\"list\" [ngTemplateOutletContext]=\"{ $implicit: rest(), depth: 1 }\" /></div>\n </div>\n </li>\n }</ul\n ></ng-template>\n <ng-container [ngTemplateOutlet]=\"list\" [ngTemplateOutletContext]=\"{ $implicit: items(), depth: 0 }\" />`,\n})\nexport class ThlSideMenuComponent {\n private readonly cfg = inject(ThlConfigService);\n protected readonly i18n = inject(ThlI18nService);\n readonly items = input.required<MenuItem[]>();\n readonly currentPath = input<string>();\n readonly accordion = input(true, { transform: booleanAttribute });\n /** One-row menu: top-level items that do not fit move into a \"More\" dropdown. */\n readonly horizontal = input(false, { transform: booleanAttribute });\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly visible = signal(Infinity);\n readonly overflow = computed(() => this.horizontal() && this.visible() < this.items().length);\n readonly rest = computed(() => this.items().slice(this.visible()));\n isHidden(depth: number, idx: number) {\n return !depth && this.overflow() && idx >= this.visible();\n }\n moreCls() {\n const t = this.trail();\n return cx(this.b('link'), { 'is-active': this.rest().some((i) => t.includes(i.key)) });\n }\n readonly linkTpl = contentChild(ThlMenuLinkDirective);\n readonly trail = computed(() => (this.currentPath() ? findActiveTrail(this.items(), this.currentPath()!) : []));\n readonly open = signal<string[]>([]);\n constructor() {\n // the top-level <ul> only exists after render, so watch it from an after-render effect\n afterRenderEffect((onCleanup) => {\n const hz = this.horizontal();\n const el = (this.host.nativeElement as HTMLElement).querySelector<HTMLElement>(':scope > ul');\n if (!hz || !el) {\n untracked(() => this.visible.set(Infinity));\n return;\n }\n onCleanup(observeMenuOverflow(el, (n) => this.visible.set(n)));\n });\n effect(() => {\n const t = this.trail();\n this.open.update((o) => Array.from(new Set([...(this.accordion() ? [] : o), ...t.slice(0, -1)])));\n });\n }\n readonly b = (e?: string) => this.cfg.bem('side-menu')(e);\n label(l: string) {\n return this.i18n.te(l) ? this.i18n.t(l) : l;\n }\n isOpen(k: string) {\n return this.open().includes(k);\n }\n isCurrent(k: string) {\n const t = this.trail();\n return t[t.length - 1] === k;\n }\n linkCls(k: string) {\n return cx(this.b('link'), { 'is-active': this.trail().includes(k), 'is-current': this.isCurrent(k) });\n }\n collapseCls(k: string) {\n return cx(this.b('collapse'), { 'is-open': this.isOpen(k) });\n }\n toggle(k: string, sib: MenuItem[]) {\n this.open.update((o) => (o.includes(k) ? o.filter((x) => x !== k) : this.accordion() ? [...o.filter((x) => !sib.some((s) => s.key === x)), k] : [...o, k]));\n }\n}\n\n/* ---------------- Settings panel ---------------- */\n@Component({\n ...base,\n selector: 'thl-settings-panel',\n imports: [ThlDrawerComponent, ThlSwitchComponent, ThlButtonComponent, ThlButtonGroupComponent, ThlTranslatePipe],\n template: `<thl-drawer [(open)]=\"open\" [title]=\"'layout.settings' | thlT\" wide\n ><div [class]=\"s()\">\n <section [class]=\"s('section')\">\n <h3>{{ 'layout.layoutOptions' | thlT }}</h3>\n <div [class]=\"cfg.prefix() + '-stack'\" style=\"gap:10px\">\n <thl-switch size=\"sm\" [checked]=\"c().fixedHeader\" (checkedChange)=\"cfg.set({ fixedHeader: $event })\" [label]=\"'layout.fixedHeader' | thlT\" />\n <thl-switch size=\"sm\" [checked]=\"c().fixedSidebar\" (checkedChange)=\"cfg.set({ fixedSidebar: $event })\" [label]=\"'layout.fixedSidebar' | thlT\" />\n </div>\n </section>\n <section [class]=\"s('section')\">\n <h3>{{ 'layout.layout' | thlT }}</h3>\n <thl-button-group justified>\n @for (l of layouts; track l) {\n <button\n thl-button\n size=\"sm\"\n [variant]=\"c().layout === l ? 'primary' : 'default'\"\n [attr.aria-pressed]=\"c().layout === l\"\n (click)=\"cfg.set({ layout: l })\"\n >\n {{ 'layout.' + l | thlT }}\n </button>\n }\n </thl-button-group>\n </section>\n <section [class]=\"s('section')\">\n <h3>{{ 'layout.colorMode' | thlT }}</h3>\n <thl-button-group justified>\n @for (m of modes; track m[0]) {\n <button\n thl-button\n size=\"sm\"\n [icon]=\"m[1]\"\n [variant]=\"c().colorMode === m[0] ? 'primary' : 'default'\"\n [attr.aria-pressed]=\"c().colorMode === m[0]\"\n (click)=\"cfg.set({ colorMode: m[0] })\"\n >\n {{ 'layout.' + m[0] | thlT }}\n </button>\n }\n </thl-button-group>\n </section>\n <section [class]=\"s('section')\">\n <h3>{{ 'layout.withLightSidebar' | thlT }}</h3>\n <ul [class]=\"s('skins')\">\n @for (k of bases; track k) {\n <li>\n <button\n type=\"button\"\n [attr.aria-label]=\"k\"\n [title]=\"k\"\n [attr.aria-pressed]=\"c().theme === k\"\n [class]=\"skinCls(k)\"\n [style.background]=\"grad(k)\"\n (click)=\"cfg.set({ theme: k })\"\n ></button>\n </li>\n }\n </ul>\n <h3>{{ 'layout.withDarkSidebar' | thlT }}</h3>\n <ul [class]=\"s('skins')\">\n @for (k of bases; track k) {\n <li>\n <button\n type=\"button\"\n [attr.aria-label]=\"k + '-dark'\"\n [title]=\"k + '-dark'\"\n [attr.aria-pressed]=\"c().theme === k + '-dark'\"\n [class]=\"skinCls(k + '-dark')\"\n [style.background]=\"grad(k)\"\n (click)=\"setDark(k)\"\n ></button>\n </li>\n }\n </ul>\n </section>\n <section [class]=\"s('section')\">\n <h3>{{ 'layout.language' | thlT }}</h3>\n <select\n [class]=\"cfg.prefix() + '-input'\"\n [value]=\"c().locale\"\n (change)=\"cfg.set({ locale: $any($event.target).value })\"\n [attr.aria-label]=\"'layout.language' | thlT\"\n >\n @for (l of c().locales; track l) {\n <option [value]=\"l\" [selected]=\"l === c().locale\">{{ name(l) }}</option>\n }\n </select>\n </section>\n </div></thl-drawer\n >`,\n})\nexport class ThlSettingsPanelComponent {\n readonly cfg = inject(ThlConfigService);\n readonly open = model(false);\n readonly c = this.cfg.config;\n readonly layouts: LayoutMode[] = ['vertical', 'mini', 'horizontal'];\n readonly modes: Array<[ColorMode, string]> = [\n ['light', 'sun'],\n ['dark', 'moon'],\n ['auto', 'monitor'],\n ];\n readonly bases = Object.keys(skins) as Array<keyof typeof skins>;\n readonly s = (e?: string) => this.cfg.bem('settings')(e);\n skinCls(k: string) {\n return cx(this.cfg.bem('settings')('skin', { dark: k.endsWith('-dark') }), { 'is-active': this.c().theme === k });\n }\n grad(k: keyof typeof skins) {\n return `linear-gradient(135deg, ${skins[k].topbar1}, ${skins[k].topbar2})`;\n }\n setDark(k: string) {\n this.cfg.set({ theme: `${k}-dark` as ThlSkin });\n }\n name(l: string) {\n return (localeInfo as Record<string, { name: string }>)[l]?.name ?? l;\n }\n}\n\n/* ---------------- Topbar messages / notifications dropdown ---------------- */\nexport interface ThlTopbarNotification {\n id: string | number;\n title: string;\n text?: string;\n time?: string;\n avatar?: string;\n icon?: string;\n status?: string;\n}\n@Component({\n ...base,\n selector: 'thl-topbar-messages',\n imports: [ThlIconComponent, ThlDropdownComponent, ThlTranslatePipe],\n host: { role: 'listitem', '[class]': 'tb(\"item\")' },\n template: `<thl-dropdown align=\"end\" [menuClass]=\"tb('dropdown')\" [animation]=\"cfg.prefix() + '-anim-bounce-in-down'\">\n <button thlDropdownTrigger type=\"button\" [class]=\"tb('btn')\" [attr.aria-label]=\"title() ?? ('layout.notifications' | thlT: { count: items().length })\">\n <thl-icon [name]=\"icon()\" [size]=\"18\" />\n @if (items().length) {\n <span [class]=\"tb('dot')\"></span>\n }\n </button>\n <div [class]=\"tb('drop-title')\">{{ title() ?? ('layout.notifications' | thlT: { count: items().length }) }}</div>\n <div [class]=\"mc()\">\n @for (m of items(); track m.id) {\n <a href=\"#\" [class]=\"mc('item')\" (click)=\"$event.preventDefault()\">\n @if (m.avatar) {\n <span [class]=\"cfg.prefix() + '-avatar'\"\n ><img [src]=\"m.avatar\" alt=\"\" />\n @if (m.status) {\n <span [class]=\"cfg.prefix() + '-avatar__status ' + cfg.prefix() + '-avatar__status--' + m.status\"></span>\n }\n </span>\n } @else {\n <span [class]=\"cfg.prefix() + '-list__icon'\"><thl-icon [name]=\"m.icon ?? 'bell'\" /></span>\n }\n <div [class]=\"mc('body')\">\n <div [class]=\"mc('body-title')\">{{ m.title }}</div>\n <span [class]=\"mc('desc')\">{{ m.text }}</span\n ><span [class]=\"mc('time')\">{{ m.time }}</span>\n </div></a\n >\n }\n </div>\n <a [class]=\"tb('drop-footer')\" [href]=\"footerHref()\">{{ footer() ?? ('layout.seeAllNotifications' | thlT) }} <thl-icon name=\"chevron-right\" /></a>\n </thl-dropdown>`,\n})\nexport class ThlTopbarMessagesComponent {\n readonly cfg = inject(ThlConfigService);\n readonly items = input.required<ThlTopbarNotification[]>();\n readonly icon = input('mail');\n readonly title = input<string>();\n readonly footer = input<string>();\n readonly footerHref = input('#');\n readonly tb = (e?: string) => this.cfg.bem('topbar')(e);\n readonly mc = (e?: string) => this.cfg.bem('message-center')(e);\n}\n\n/* ---------------- AppLayout ---------------- */\nexport interface ThlLayoutUser {\n name: string;\n avatar?: string;\n role?: string;\n menu?: DropdownItem[];\n}\n@Component({\n ...base,\n selector: 'thl-app-layout',\n imports: [\n ThlIconComponent,\n ThlTranslatePipe,\n ThlSideMenuComponent,\n ThlDropdownComponent,\n ThlSettingsPanelComponent,\n ThlToasterComponent,\n ThlConfirmHostComponent,\n ThlBadgeComponent,\n ],\n host: { '[class]': 'appCls()' },\n template: `<a href=\"#thl-main\" [class]=\"p() + '-sr-only'\">Skip to content</a>\n <header [class]=\"tb()\">\n <div [class]=\"tb('brand')\">\n <a [href]=\"brandHref()\"\n ><ng-content select=\"[thlBrandIcon]\" /><thl-icon name=\"thl-logo\" [size]=\"28\" [strokeWidth]=\"2.4\" /><span [class]=\"tb('brand-text')\">{{\n brand()\n }}</span></a\n >\n </div>\n <ul [class]=\"tb('left')\">\n <li [class]=\"tb('item') + ' ' + tb('toggler')\">\n <button\n type=\"button\"\n [class]=\"tb('btn')\"\n (click)=\"sidebar.toggle()\"\n [attr.aria-label]=\"'layout.toggleSidebar' | thlT\"\n [attr.aria-expanded]=\"sb().isMobile ? sb().mobileOpen : !sb().mini\"\n >\n <thl-icon name=\"menu\" [size]=\"20\" />\n </button>\n </li>\n @if (searchable()) {\n <li [class]=\"tb('search')\">\n <form role=\"search\" (submit)=\"$event.preventDefault(); search.emit(q.value)\">\n <input #q type=\"search\" [placeholder]=\"'common.searchPlaceholder' | thlT\" [attr.aria-label]=\"'common.search' | thlT\" />\n </form>\n </li>\n }\n <ng-content select=\"[thlTopbarLeft]\" />\n </ul>\n <ul [class]=\"tb('right')\">\n <ng-content select=\"[thlTopbarRight]\" />\n <li [class]=\"tb('item')\">\n <thl-dropdown align=\"end\" [items]=\"localeItems()\" (selected)=\"cfg.set({ locale: $event })\"\n ><button thlDropdownTrigger type=\"button\" [class]=\"tb('btn')\" [attr.aria-label]=\"i18n.locale().toUpperCase() + ' – ' + ('layout.language' | thlT)\">\n <thl-icon name=\"languages\" [size]=\"18\" /><span [class]=\"tb('btn-text')\">{{ i18n.locale() }}</span>\n </button></thl-dropdown\n >\n </li>\n <li [class]=\"tb('item')\">\n <button\n type=\"button\"\n [class]=\"tb('btn')\"\n [title]=\"'layout.' + c().colorMode | thlT\"\n [attr.aria-label]=\"('layout.colorMode' | thlT) + ': ' + ('layout.' + c().colorMode | thlT)\"\n (click)=\"cycleMode()\"\n >\n <thl-icon [name]=\"modeIcon()\" [size]=\"18\" />\n </button>\n </li>\n @if (user(); as u) {\n <li [class]=\"tb('item')\">\n <thl-dropdown align=\"end\" [items]=\"userItems()\" [animation]=\"p() + '-anim-flip-in-y'\" (selected)=\"userSelect.emit($event)\"\n ><button thlDropdownTrigger type=\"button\" [class]=\"tb('btn') + ' ' + tb('user')\">\n @if (u.avatar) {\n <img [src]=\"u.avatar\" alt=\"\" />\n }\n <b [class]=\"p() + '-col-hidden-sm'\">{{ u.name }}</b\n ><thl-icon name=\"chevron-down\" /></button\n ></thl-dropdown>\n </li>\n }\n @if (settings()) {\n <li [class]=\"tb('item')\">\n <button type=\"button\" [class]=\"tb('btn')\" (click)=\"panel.set(true)\" [attr.aria-label]=\"'layout.settings' | thlT\">\n <thl-icon name=\"settings\" [size]=\"18\" />\n </button>\n </li>\n }\n </ul>\n </header>\n @if (sb().mobileOpen) {\n <div [class]=\"p() + '-sidebar-backdrop'\" (click)=\"sidebar.closeMobile()\"></div>\n }\n <aside [class]=\"p() + '-sidebar'\" aria-label=\"sidebar\">\n <div [class]=\"p() + '-sidebar__scroll'\">\n @if (user() && !horizontal()) {\n <div [class]=\"p() + '-user-profile'\">\n @if (user()!.avatar) {\n <span [class]=\"p() + '-user-profile__avatar'\"\n ><img [src]=\"user()!.avatar\" alt=\"\" /><span [class]=\"p() + '-user-profile__badge'\"><thl-badge color=\"danger\" dot /></span\n ></span>\n }\n <div [class]=\"p() + '-user-profile__name'\">{{ user()!.name }}</div>\n @if (user()!.role) {\n <div [class]=\"p() + '-user-profile__role'\">{{ user()!.role }}</div>\n }\n </div>\n }\n <nav>\n <thl-side-menu [items]=\"menu()\" [currentPath]=\"currentPath()\" [horizontal]=\"horizontal()\"><ng-content select=\"[thlMenuLink]\" /></thl-side-menu>\n </nav>\n <div [class]=\"p() + '-sidebar__footer'\"><ng-content select=\"[thlSidebarFooter]\" /></div>\n </div>\n </aside>\n <div [class]=\"p() + '-page'\">\n <main id=\"thl-main\" style=\"flex:1;display:flex;flex-direction:column\"><ng-content /></main>\n @if (footer() !== false) {\n <footer [class]=\"p() + '-footer'\">{{ footer() || ('layout.copyright' | thlT: { year: year }) }}</footer>\n }\n </div>\n @if (settings()) {\n <thl-settings-panel [(open)]=\"panel\" />\n }\n <thl-toaster /><thl-confirm-host />`,\n})\nexport class ThlAppLayoutComponent {\n readonly cfg = inject(ThlConfigService);\n readonly i18n = inject(ThlI18nService);\n readonly p = this.cfg.prefix;\n readonly c = this.cfg.config;\n readonly menu = input.required<MenuItem[]>();\n readonly currentPath = input<string>();\n readonly brand = input('thl-ui');\n readonly brandHref = input('/');\n readonly user = input<ThlLayoutUser>();\n readonly searchable = input(false, { transform: booleanAttribute });\n readonly settings = input(true, { transform: booleanAttribute });\n readonly footer = input<string | false>();\n readonly search = output<string>();\n readonly userSelect = output<string>();\n readonly year = new Date().getFullYear();\n readonly panel = signal(false);\n readonly sidebar = createSidebar({ mini: this.c().layout === 'mini', breakpoint: this.c().components.Sidebar?.breakpoint as number | undefined });\n readonly sb = storeSignal(this.sidebar.state, inject(DestroyRef));\n readonly horizontal = computed(() => this.c().layout === 'horizontal');\n readonly appCls = computed(() =>\n this.cfg.bem('app')({ mini: !this.horizontal() && this.sb().mini, horizontal: this.horizontal(), 'mobile-open': this.sb().mobileOpen }),\n );\n readonly tb = (e?: string) => this.cfg.bem('topbar')(e);\n readonly modeIcon = computed(() => (this.c().colorMode === 'dark' ? 'moon' : this.c().colorMode === 'auto' ? 'monitor' : 'sun'));\n readonly localeItems = computed(() => this.c().locales.map((l) => ({ key: l, label: (localeInfo as Record<string, { name: string }>)[l]?.name ?? l })));\n readonly userItems = computed<DropdownItem[]>(\n () =>\n this.user()?.menu ?? [\n { key: 'profile', label: this.i18n.t('layout.myProfile'), icon: 'user' },\n { key: 'balance', label: this.i18n.t('layout.myBalance'), icon: 'credit-card' },\n { key: 'inbox', label: this.i18n.t('layout.inbox'), icon: 'inbox' },\n { key: 'd1', divider: true },\n { key: 'settings', label: this.i18n.t('layout.accountSetting'), icon: 'settings' },\n { key: 'd2', divider: true },\n { key: 'logout', label: this.i18n.t('layout.logout'), icon: 'log-out' },\n ],\n );\n constructor() {\n inject(DestroyRef).onDestroy(() => this.sidebar.destroy());\n effect(() => this.sidebar.setMini(this.c().layout === 'mini'));\n effect(() => {\n this.currentPath();\n this.sidebar.closeMobile();\n });\n }\n cycleMode() {\n const n: Record<ColorMode, ColorMode> = { light: 'dark', dark: 'auto', auto: 'light' };\n this.cfg.set({ colorMode: n[this.c().colorMode] });\n }\n}\n\n@Component({\n ...base,\n selector: 'thl-page',\n imports: [ThlBreadcrumbComponent],\n host: { style: 'display:contents' },\n template: `@if (title() || breadcrumb()) {\n <div [class]=\"p() + '-page-header'\">\n <h1 [class]=\"p() + '-page-header__title'\">{{ title() }}</h1>\n <div [class]=\"p() + '-page-header__actions'\">\n <ng-content select=\"[thlPageActions]\" />\n @if (breadcrumb()) {\n <thl-breadcrumb [items]=\"breadcrumb()!\" />\n }\n </div>\n </div>\n }\n <div [class]=\"p() + '-page__content'\"><ng-content /></div>`,\n})\nexport class ThlPageComponent {\n readonly p = inject(ThlConfigService).prefix;\n readonly title = input<string>();\n readonly breadcrumb = input<Array<{ label: string; href?: string }>>();\n}\n\n@Component({\n ...base,\n selector: 'thl-auth-layout',\n imports: [ThlIconComponent, ThlToasterComponent, ThlTranslatePipe],\n host: { role: 'main', '[class]': 'b()' },\n template: `<div [class]=\"b('lang')\">\n <select\n [class]=\"cfg.prefix() + '-input ' + cfg.prefix() + '-input--size-sm'\"\n [value]=\"cfg.config().locale\"\n (change)=\"cfg.set({ locale: $any($event.target).value })\"\n [attr.aria-label]=\"'layout.language' | thlT\"\n >\n @for (l of cfg.config().locales; track l) {\n <option [value]=\"l\" [selected]=\"l === cfg.config().locale\">{{ name(l) }}</option>\n }\n </select>\n </div>\n <div [class]=\"b('box')\">\n <div [class]=\"b('logo')\"><thl-icon name=\"thl-logo\" [strokeWidth]=\"2.4\" /> thl-ui</div>\n @if (avatar()) {\n <img [class]=\"b('avatar')\" [src]=\"avatar()\" alt=\"\" />\n }\n @if (title()) {\n <h1 [class]=\"b('title')\">{{ title() }}</h1>\n }\n <ng-content />\n <div [class]=\"b('foot')\"><ng-content select=\"[thlAuthFooter]\" /></div>\n </div>\n <thl-toaster />`,\n})\nexport class ThlAuthLayoutComponent {\n readonly cfg = inject(ThlConfigService);\n readonly title = input<string>();\n readonly avatar = input<string>();\n readonly b = (e?: string) => this.cfg.bem('auth')(e);\n name(l: string) {\n return (localeInfo as Record<string, { name: string }>)[l]?.name ?? l;\n }\n}\n@Component({\n ...base,\n selector: 'thl-error-layout',\n imports: [ThlButtonComponent, ThlTranslatePipe],\n host: { role: 'main', '[class]': 'b()' },\n template: `<h1 [class]=\"b('code')\">{{ code() }}</h1>\n <h2 [class]=\"b('title')\">{{ title() ?? (known() ? ('pages.error.' + code() + '.title' | thlT) : '') }}</h2>\n <p [class]=\"b('text')\">{{ text() ?? (known() ? ('pages.error.' + code() + '.text' | thlT) : '') }}</p>\n <a thl-button [href]=\"homeHref()\" variant=\"danger\" rounded size=\"lg\">{{ 'pages.error.backHome' | thlT }}</a>\n <p [class]=\"b('footer')\">{{ 'layout.copyright' | thlT: { year: year } }}</p>`,\n})\nexport class ThlErrorLayoutComponent {\n private readonly cfg = inject(ThlConfigService);\n readonly code = input.required<number>();\n readonly title = input<string>();\n readonly text = input<string>();\n readonly homeHref = input('/');\n readonly known = computed(() => [400, 403, 404, 500, 503].includes(this.code()));\n readonly year = new Date().getFullYear();\n readonly b = (e?: string) => this.cfg.bem('error')(e);\n}\n","import { ThlTranslatePipe, ThlBemPipe, ThlIconComponent } from './lib/core';\nimport * as basic from './lib/basic';\nimport * as overlay from './lib/overlay';\nimport * as nav from './lib/nav';\nimport * as form from './lib/form';\nimport * as data from './lib/data';\nimport * as layout from './lib/layout';\n\nexport * from './lib/core';\nexport * from './lib/basic';\nexport * from './lib/overlay';\nexport * from './lib/nav';\nexport * from './lib/form';\nexport * from './lib/data';\nexport * from './lib/layout';\nexport { rules, createThl, type ThlUserConfig, type ThlConfig, type MenuItem } from '@thl-ui/core';\n\n/** Every standalone component/directive/pipe — `imports: [THL_UI]` for convenience. */\nexport const THL_UI = [\n ThlTranslatePipe,\n ThlBemPipe,\n ThlIconComponent,\n ...[basic, overlay, nav, form, data, layout]\n .flatMap((m) => Object.values(m))\n .filter((v): v is any => typeof v === 'function' && /^Thl.*(Component|Directive)$/.test((v as { name: string }).name)),\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["base"],"mappings":"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"}
|