@sonny-ui/core 0.1.0-alpha.16 → 0.1.0-alpha.17

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sonny-ui-core.mjs","sources":["../../../projects/core/src/lib/core/utils/cn.ts","../../../projects/core/src/lib/core/providers/theme.service.ts","../../../projects/core/src/lib/core/providers/sonny-config.ts","../../../projects/core/src/lib/button/button.variants.ts","../../../projects/core/src/lib/button/button.directive.ts","../../../projects/core/src/lib/card/card.variants.ts","../../../projects/core/src/lib/card/card.directives.ts","../../../projects/core/src/lib/input/input.variants.ts","../../../projects/core/src/lib/input/input.directive.ts","../../../projects/core/src/lib/input/label.directive.ts","../../../projects/core/src/lib/toast/toast.service.ts","../../../projects/core/src/lib/toast/toast.variants.ts","../../../projects/core/src/lib/toast/toaster.component.ts","../../../projects/core/src/lib/modal/dialog-ref.ts","../../../projects/core/src/lib/modal/dialog.types.ts","../../../projects/core/src/lib/modal/dialog.service.ts","../../../projects/core/src/lib/modal/dialog.directives.ts","../../../projects/core/src/lib/accordion/accordion.directives.ts","../../../projects/core/src/lib/avatar/avatar.variants.ts","../../../projects/core/src/lib/avatar/avatar.component.ts","../../../projects/core/src/lib/badge/badge.variants.ts","../../../projects/core/src/lib/badge/badge.directive.ts","../../../projects/core/src/lib/breadcrumb/breadcrumb.directives.ts","../../../projects/core/src/lib/button-group/button-group.variants.ts","../../../projects/core/src/lib/button-group/button-group.directive.ts","../../../projects/core/src/lib/checkbox/checkbox.variants.ts","../../../projects/core/src/lib/checkbox/checkbox.directive.ts","../../../projects/core/src/lib/combobox/combobox.variants.ts","../../../projects/core/src/lib/combobox/combobox.component.ts","../../../projects/core/src/lib/skeleton/skeleton.variants.ts","../../../projects/core/src/lib/skeleton/skeleton.directive.ts","../../../projects/core/src/lib/radio/radio.variants.ts","../../../projects/core/src/lib/radio/radio.directive.ts","../../../projects/core/src/lib/switch/switch.variants.ts","../../../projects/core/src/lib/switch/switch.component.ts","../../../projects/core/src/lib/toggle/toggle.variants.ts","../../../projects/core/src/lib/toggle/toggle.directive.ts","../../../projects/core/src/lib/slider/slider.variants.ts","../../../projects/core/src/lib/slider/slider.component.ts","../../../projects/core/src/lib/loader/loader.variants.ts","../../../projects/core/src/lib/loader/loader.component.ts","../../../projects/core/src/lib/tabs/tabs.directives.ts","../../../projects/core/src/lib/tabs/tabs.variants.ts","../../../projects/core/src/lib/select/select.variants.ts","../../../projects/core/src/lib/select/select.component.ts","../../../projects/core/src/lib/table/table.variants.ts","../../../projects/core/src/lib/table/table.directives.ts","../../../projects/core/src/lib/pagination/pagination.variants.ts","../../../projects/core/src/lib/pagination/pagination.component.ts","../../../projects/core/src/lib/dropdown/dropdown.variants.ts","../../../projects/core/src/lib/dropdown/dropdown.directives.ts","../../../projects/core/src/lib/data-table/data-table.directives.ts","../../../projects/core/src/lib/data-table/data-table.component.ts","../../../projects/core/src/lib/sheet/sheet-ref.ts","../../../projects/core/src/lib/sheet/sheet.types.ts","../../../projects/core/src/lib/sheet/sheet.service.ts","../../../projects/core/src/lib/sheet/sheet.directives.ts","../../../projects/core/src/lib/alert/alert.variants.ts","../../../projects/core/src/lib/alert/alert.directives.ts","../../../projects/core/src/lib/textarea/textarea.variants.ts","../../../projects/core/src/lib/textarea/textarea.directive.ts","../../../projects/core/src/lib/progress/progress.variants.ts","../../../projects/core/src/lib/progress/progress.component.ts","../../../projects/core/src/lib/tooltip/tooltip.variants.ts","../../../projects/core/src/lib/tooltip/tooltip.directive.ts","../../../projects/core/src/lib/file-input/file-input.variants.ts","../../../projects/core/src/lib/file-input/file-input.component.ts","../../../projects/core/src/lib/fieldset/fieldset.variants.ts","../../../projects/core/src/lib/fieldset/fieldset.directives.ts","../../../projects/core/src/lib/rating/rating.variants.ts","../../../projects/core/src/lib/rating/rating.component.ts","../../../projects/core/src/lib/navbar/navbar.directives.ts","../../../projects/core/src/lib/drawer/drawer.directives.ts","../../../projects/core/src/lib/divider/divider.variants.ts","../../../projects/core/src/lib/divider/divider.component.ts","../../../projects/core/src/lib/steps/steps.directives.ts","../../../projects/core/src/lib/stat/stat.directives.ts","../../../projects/core/src/lib/timeline/timeline.directives.ts","../../../projects/core/src/lib/kbd/kbd.variants.ts","../../../projects/core/src/lib/kbd/kbd.directive.ts","../../../projects/core/src/lib/list/list.directives.ts","../../../projects/core/src/lib/status/status.variants.ts","../../../projects/core/src/lib/status/status.directive.ts","../../../projects/core/src/lib/indicator/indicator.directives.ts","../../../projects/core/src/lib/chat-bubble/chat-bubble.directives.ts","../../../projects/core/src/lib/carousel/carousel.directives.ts","../../../projects/core/src/lib/dock/dock.directives.ts","../../../projects/core/src/lib/fab/fab.directives.ts","../../../projects/core/src/lib/radial-progress/radial-progress.component.ts","../../../projects/core/src/lib/diff/diff.component.ts","../../../projects/core/src/lib/link/link.variants.ts","../../../projects/core/src/lib/link/link.directive.ts","../../../projects/core/src/lib/calendar/calendar.component.ts","../../../projects/core/src/lib/date-picker/date-picker.variants.ts","../../../projects/core/src/lib/date-picker/date-picker.component.ts","../../../projects/core/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/core/src/lib/color-picker/color-picker.utils.ts","../../../projects/core/src/lib/color-picker/color-picker.variants.ts","../../../projects/core/src/lib/color-picker/color-picker.component.ts","../../../projects/core/src/lib/otp-input/otp-input.variants.ts","../../../projects/core/src/lib/otp-input/otp-input.component.ts","../../../projects/core/src/lib/command-palette/command-palette.component.ts","../../../projects/core/src/lib/command-palette/command-palette.service.ts","../../../projects/core/src/lib/validator/validator.directives.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/sonny-ui-core.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { Injectable, signal, computed, inject, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { SNY_CONFIG } from './sonny-config';\n\nexport type Theme = 'light' | 'dark' | 'corporate';\n\nconst STORAGE_KEY = 'sny-theme';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly config = inject(SNY_CONFIG);\n\n private readonly _theme = signal<Theme>('light');\n\n readonly theme = this._theme.asReadonly();\n readonly isDark = computed(() => this._theme() === 'dark');\n\n constructor() {\n this.setTheme(this.resolveInitialTheme());\n }\n\n setTheme(theme: Theme): void {\n this._theme.set(theme);\n\n if (!this.isBrowser) return;\n\n localStorage.setItem(STORAGE_KEY, theme);\n\n const root = this.document.documentElement;\n root.classList.remove('dark');\n root.removeAttribute('data-theme');\n\n if (theme === 'dark') {\n root.classList.add('dark');\n root.setAttribute('data-theme', 'dark');\n } else if (theme !== 'light') {\n root.setAttribute('data-theme', theme);\n }\n }\n\n toggleDark(): void {\n this.setTheme(this._theme() === 'dark' ? 'light' : 'dark');\n }\n\n private resolveInitialTheme(): Theme {\n if (this.isBrowser) {\n const stored = localStorage.getItem(STORAGE_KEY) as Theme | null;\n if (stored) return stored;\n }\n\n const defaultTheme = this.config.defaultTheme ?? 'light';\n\n if (defaultTheme === 'system') {\n if (this.isBrowser && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return 'light';\n }\n\n return defaultTheme;\n }\n}\n","import {\n type EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { ThemeService } from './theme.service';\n\nexport interface SonnyConfig {\n prefix?: string;\n defaultTheme?: 'light' | 'dark' | 'corporate' | 'system';\n}\n\nconst DEFAULT_CONFIG: SonnyConfig = { prefix: 'sny', defaultTheme: 'light' };\n\nexport const SNY_CONFIG = new InjectionToken<SonnyConfig>('SNY_CONFIG', {\n providedIn: 'root',\n factory: () => DEFAULT_CONFIG,\n});\n\nexport function provideSonnyUI(config: Partial<SonnyConfig> = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: SNY_CONFIG, useValue: { ...DEFAULT_CONFIG, ...config } },\n provideEnvironmentInitializer(() => inject(ThemeService)),\n ]);\n}\n","import { cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-border bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n sm: 'h-9 rounded-sm px-3',\n md: 'h-10 px-4 py-2',\n lg: 'h-11 rounded-sm px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\nexport type ButtonSize = 'sm' | 'md' | 'lg' | 'icon';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { buttonVariants, type ButtonVariant, type ButtonSize } from './button.variants';\n\n@Directive({\n selector: 'button[snyBtn], a[snyBtn]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-disabled]': 'disabled() || loading() || null',\n '[attr.disabled]': 'disabled() || loading() || null',\n '[attr.tabindex]': '(disabled() || loading()) ? -1 : null',\n },\n})\nexport class SnyButtonDirective {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('md');\n readonly disabled = input(false);\n readonly loading = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.loading() && 'cursor-wait opacity-70',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const cardVariants = cva(\n 'rounded-sm text-card-foreground',\n {\n variants: {\n variant: {\n default: 'bg-card border border-border',\n outline: 'border-2 border-border bg-transparent',\n elevated: 'bg-card shadow-lg',\n ghost: 'bg-transparent',\n },\n padding: {\n none: '',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'none',\n },\n }\n);\n\nexport type CardVariant = 'default' | 'outline' | 'elevated' | 'ghost';\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { cardVariants, type CardVariant, type CardPadding } from './card.variants';\n\n@Directive({\n selector: '[snyCard]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardDirective {\n readonly variant = input<CardVariant>('default');\n readonly padding = input<CardPadding>('none');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(cardVariants({ variant: this.variant(), padding: this.padding() }), this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-1.5 p-6', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-2xl font-semibold leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('p-6 pt-0', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex items-center p-6 pt-0', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const inputVariants = cva(\n 'flex w-full rounded-sm border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-green-500 focus-visible:ring-green-500',\n },\n inputSize: {\n sm: 'h-9 text-xs',\n md: 'h-10',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n inputSize: 'md',\n },\n }\n);\n\nexport const labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n {\n variants: {\n variant: {\n default: '',\n error: 'text-destructive',\n success: 'text-green-600',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type InputVariant = 'default' | 'error' | 'success';\nexport type InputSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { inputVariants, type InputVariant, type InputSize } from './input.variants';\n\n@Directive({\n selector: 'input[snyInput], textarea[snyInput]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\n '[attr.aria-describedby]': 'ariaDescribedBy() || null',\n },\n})\nexport class SnyInputDirective {\n readonly variant = input<InputVariant>('default');\n readonly inputSize = input<InputSize>('md');\n readonly class = input<string>('');\n readonly ariaDescribedBy = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n inputVariants({ variant: this.variant(), inputSize: this.inputSize() }),\n this.class()\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { labelVariants, type InputVariant } from './input.variants';\n\n@Directive({\n selector: 'label[snyLabel]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyLabelDirective {\n readonly variant = input<InputVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(labelVariants({ variant: this.variant() }), this.class())\n );\n}\n","import { Injectable, signal, computed } from '@angular/core';\nimport type { ToastConfig, ToastData } from './toast.variants';\n\n@Injectable({ providedIn: 'root' })\nexport class SnyToastService {\n private readonly _toasts = signal<ToastData[]>([]);\n private readonly _timers = new Map<string, ReturnType<typeof setTimeout>>();\n private _idCounter = 0;\n\n readonly toasts = this._toasts.asReadonly();\n readonly count = computed(() => this._toasts().length);\n\n show(config: ToastConfig): string {\n const id = `sny-toast-${++this._idCounter}`;\n const toast: ToastData = {\n id,\n variant: 'default',\n duration: 5000,\n ...config,\n };\n\n this._toasts.update(toasts => [...toasts, toast]);\n\n if (toast.duration && toast.duration > 0) {\n const timer = setTimeout(() => this.dismiss(id), toast.duration);\n this._timers.set(id, timer);\n }\n\n return id;\n }\n\n dismiss(id: string): void {\n const timer = this._timers.get(id);\n if (timer) {\n clearTimeout(timer);\n this._timers.delete(id);\n }\n this._toasts.update(toasts => toasts.filter(t => t.id !== id));\n }\n\n dismissAll(): void {\n for (const timer of this._timers.values()) {\n clearTimeout(timer);\n }\n this._timers.clear();\n this._toasts.set([]);\n }\n\n success(title: string, description?: string): string {\n return this.show({ title, description, variant: 'success' });\n }\n\n error(title: string, description?: string): string {\n return this.show({ title, description, variant: 'destructive' });\n }\n\n warning(title: string, description?: string): string {\n return this.show({ title, description, variant: 'warning' });\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-sm border p-6 pr-8 shadow-lg transition-all',\n {\n variants: {\n variant: {\n default: 'bg-background border-border text-foreground',\n destructive: 'bg-destructive border-destructive text-destructive-foreground',\n success: 'bg-green-600 border-green-600 text-white',\n warning: 'bg-yellow-500 border-yellow-500 text-white',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type ToastVariant = 'default' | 'destructive' | 'success' | 'warning';\nexport type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface ToastConfig {\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: ToastAction;\n}\n\nexport interface ToastData extends ToastConfig {\n id: string;\n}\n","import { ChangeDetectionStrategy, Component, inject, input, computed } from '@angular/core';\nimport { SnyToastService } from './toast.service';\nimport { toastVariants, type ToastPosition, type ToastVariant } from './toast.variants';\nimport { cn } from '../core/utils/cn';\n\n@Component({\n selector: 'sny-toaster',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"containerClass()\" role=\"region\" aria-label=\"Notifications\" tabindex=\"-1\">\n @for (toast of visibleToasts(); track toast.id) {\n <div\n [class]=\"toastClasses[toast.variant ?? 'default']\"\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n <div class=\"grid gap-1\">\n <div class=\"text-sm font-semibold\">{{ toast.title }}</div>\n @if (toast.description) {\n <div class=\"text-sm opacity-90\">{{ toast.description }}</div>\n }\n </div>\n <div class=\"flex items-center gap-2\">\n @if (toast.action) {\n <button\n class=\"inline-flex h-8 shrink-0 items-center justify-center rounded-sm border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary\"\n (click)=\"toast.action!.onClick()\"\n >\n {{ toast.action!.label }}\n </button>\n }\n <button\n class=\"absolute right-2 top-2 rounded-sm p-1 opacity-0 transition-opacity hover:opacity-100 group-hover:opacity-100 focus:opacity-100\"\n aria-label=\"Close\"\n (click)=\"dismiss(toast.id)\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n </div>\n </div>\n }\n </div>\n `,\n})\nexport class SnyToasterComponent {\n private readonly toastService = inject(SnyToastService);\n\n readonly position = input<ToastPosition>('bottom-right');\n readonly maxToasts = input(5);\n\n readonly visibleToasts = computed(() =>\n this.toastService.toasts().slice(-this.maxToasts())\n );\n\n readonly containerClass = computed(() => {\n const pos = this.position();\n const base = 'fixed z-[100] flex max-h-screen w-full flex-col-reverse gap-2 p-4 sm:max-w-[420px]';\n const posMap: Record<ToastPosition, string> = {\n 'top-right': 'top-0 right-0',\n 'top-left': 'top-0 left-0',\n 'bottom-right': 'bottom-0 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n };\n return cn(base, posMap[pos]);\n });\n\n /** Pre-computed toast classes by variant — avoids method calls in the template. */\n readonly toastClasses: Record<ToastVariant, string> = {\n default: cn(toastVariants({ variant: 'default' })),\n destructive: cn(toastVariants({ variant: 'destructive' })),\n success: cn(toastVariants({ variant: 'success' })),\n warning: cn(toastVariants({ variant: 'warning' })),\n };\n\n dismiss(id: string): void {\n this.toastService.dismiss(id);\n }\n}\n","import type { Observable } from 'rxjs';\n\n/** Structural interface for the subset of CDK DialogRef we consume. */\ninterface CdkDialogRefLike<R> {\n close(result?: R): void;\n readonly closed: Observable<R | undefined>;\n}\n\nexport class SnyDialogRef<R = unknown> {\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\n\n close(result?: R): void {\n this.cdkRef.close(result);\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n}\n","export interface SnyDialogConfig {\n width?: string;\n maxWidth?: string;\n closeOnBackdrop?: boolean;\n closeOnEsc?: boolean;\n data?: unknown;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport const DEFAULT_DIALOG_CONFIG: SnyDialogConfig = {\n width: '28rem',\n maxWidth: '90vw',\n closeOnBackdrop: true,\n closeOnEsc: true,\n};\n","import { Injectable, inject, InjectionToken } from '@angular/core';\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport type { ComponentType } from '@angular/cdk/overlay';\nimport { SnyDialogRef } from './dialog-ref';\nimport { DEFAULT_DIALOG_CONFIG, type SnyDialogConfig } from './dialog.types';\n\nexport const SNY_DIALOG_DATA = new InjectionToken<unknown>('SNY_DIALOG_DATA');\n\n@Injectable({ providedIn: 'root' })\nexport class SnyDialogService {\n private readonly cdkDialog = inject(Dialog);\n\n open<T, R = unknown>(\n component: ComponentType<T>,\n config: SnyDialogConfig = {}\n ): SnyDialogRef<R> {\n const merged = { ...DEFAULT_DIALOG_CONFIG, ...config };\n\n // CDK's disableClose controls both backdrop and ESC together.\n // To support independent closeOnBackdrop / closeOnEsc, we disable both\n // at the CDK level and handle them manually.\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\n\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\n width: merged.width,\n maxWidth: merged.maxWidth,\n disableClose,\n hasBackdrop: true,\n backdropClass: 'sny-dialog-backdrop',\n panelClass: 'sny-dialog-panel',\n ariaLabelledBy: merged.ariaLabelledBy,\n ariaDescribedBy: merged.ariaDescribedBy,\n data: merged.data,\n providers: merged.data != null\n ? [{ provide: SNY_DIALOG_DATA, useValue: merged.data }]\n : [],\n });\n\n // When CDK disableClose is true, manually handle backdrop/ESC based on config\n if (disableClose) {\n if (merged.closeOnBackdrop) {\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n if (merged.closeOnEsc) {\n const sub = cdkRef.keydownEvents.subscribe(event => {\n if (event.key === 'Escape') {\n cdkRef.close();\n }\n });\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n }\n\n return new SnyDialogRef<R>(cdkRef);\n }\n\n closeAll(): void {\n this.cdkDialog.closeAll();\n }\n}\n","import { Directive, computed, input, inject } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: '[snyDialogHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-1.5 text-center sm:text-left', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-lg font-semibold leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'relative bg-background rounded-sm border border-border shadow-lg p-6 w-full max-w-lg mx-auto',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyDialogFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogClose]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnyDialogCloseDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n this.class()\n )\n );\n\n private readonly dialogRef = inject(DialogRef, { optional: true });\n\n onClick(): void {\n this.dialogRef?.close();\n }\n}\n","import { Directive, ElementRef, computed, inject, input, signal, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_ACCORDION = new InjectionToken<SnyAccordionDirective>('SnyAccordion');\nexport const SNY_ACCORDION_ITEM = new InjectionToken<SnyAccordionItemDirective>('SnyAccordionItem');\n\n@Directive({\n selector: '[snyAccordion]',\n standalone: true,\n exportAs: 'snyAccordion',\n providers: [{ provide: SNY_ACCORDION, useExisting: SnyAccordionDirective }],\n host: {\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyAccordionDirective {\n readonly multi = input(false);\n readonly class = input<string>('');\n\n private readonly elRef = inject(ElementRef);\n private readonly _openItems = signal(new Set<string>());\n\n protected readonly computedClass = computed(() =>\n cn('divide-y divide-border', this.class())\n );\n\n isOpen(id: string): boolean {\n return this._openItems().has(id);\n }\n\n toggle(id: string): void {\n this._openItems.update(set => {\n const next = new Set(set);\n if (next.has(id)) {\n next.delete(id);\n } else {\n if (!this.multi()) next.clear();\n next.add(id);\n }\n return next;\n });\n }\n\n onKeydown(event: KeyboardEvent): void {\n const target = event.target as HTMLElement;\n if (!target.hasAttribute('snyaccordiontrigger') && !target.closest('[snyAccordionTrigger]')) return;\n\n const triggers = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[snyAccordionTrigger]')\n );\n if (triggers.length === 0) return;\n\n const currentIndex = triggers.indexOf(target.closest('[snyAccordionTrigger]') as HTMLElement || target);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % triggers.length;\n break;\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = triggers.length - 1;\n break;\n }\n if (nextIndex !== null) {\n triggers[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyAccordionItem]',\n standalone: true,\n exportAs: 'snyAccordionItem',\n providers: [{ provide: SNY_ACCORDION_ITEM, useExisting: SnyAccordionItemDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyAccordionItemDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n private readonly accordion = inject(SNY_ACCORDION);\n\n readonly isOpen = computed(() => this.accordion.isOpen(this.value()));\n\n protected readonly computedClass = computed(() =>\n cn('', this.class())\n );\n\n toggle(): void {\n this.accordion.toggle(this.value());\n }\n}\n\n@Directive({\n selector: '[snyAccordionTrigger]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-expanded]': 'item.isOpen()',\n 'tabindex': '0',\n '(click)': 'item.toggle()',\n },\n})\nexport class SnyAccordionTriggerDirective {\n readonly class = input<string>('');\n readonly item = inject(SNY_ACCORDION_ITEM);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline cursor-pointer [&>svg]:transition-transform',\n this.item.isOpen() && '[&>svg]:rotate-180',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyAccordionContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n role: 'region',\n },\n})\nexport class SnyAccordionContentDirective {\n readonly class = input<string>('');\n readonly item = inject(SNY_ACCORDION_ITEM);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'grid transition-all duration-200',\n this.item.isOpen() ? 'grid-rows-[1fr] opacity-100 pb-4' : 'grid-rows-[0fr] opacity-0 overflow-hidden',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const avatarVariants = cva(\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden bg-muted',\n {\n variants: {\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n variant: {\n circle: 'rounded-full',\n rounded: 'rounded-md',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'circle',\n },\n }\n);\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type AvatarVariant = 'circle' | 'rounded';\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { avatarVariants, type AvatarSize, type AvatarVariant } from './avatar.variants';\n\n@Component({\n selector: 'sny-avatar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'computedClass()' },\n template: `\n @if (src() && !error()) {\n <img\n [src]=\"src()\"\n [alt]=\"alt()\"\n class=\"aspect-square h-full w-full object-cover\"\n (error)=\"error.set(true)\"\n />\n } @else {\n <span class=\"font-medium text-muted-foreground\">{{ fallbackText() }}</span>\n }\n `,\n})\nexport class SnyAvatarComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('');\n readonly fallback = input<string>('');\n readonly size = input<AvatarSize>('md');\n readonly variant = input<AvatarVariant>('circle');\n readonly class = input<string>('');\n\n readonly error = signal(false);\n\n protected readonly fallbackText = computed(() => {\n const fb = this.fallback();\n if (fb) return fb;\n const a = this.alt();\n if (a) return a.split(' ').map(w => w[0]).join('').toUpperCase().slice(0, 2);\n return '?';\n });\n\n protected readonly computedClass = computed(() =>\n cn(avatarVariants({ size: this.size(), variant: this.variant() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n 'inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground',\n secondary: 'border-transparent bg-secondary text-secondary-foreground',\n outline: 'border-border text-foreground',\n destructive: 'border-transparent bg-destructive text-destructive-foreground',\n success: 'border-transparent bg-green-600 text-white dark:bg-green-500',\n warning: 'border-transparent bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\n },\n size: {\n sm: 'px-2 py-0.5 text-[10px]',\n md: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive' | 'success' | 'warning';\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { badgeVariants, type BadgeVariant, type BadgeSize } from './badge.variants';\n\n@Directive({\n selector: '[snyBadge]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBadgeDirective {\n readonly variant = input<BadgeVariant>('default');\n readonly size = input<BadgeSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(badgeVariants({ variant: this.variant(), size: this.size() }), this.class())\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: 'nav[snyBreadcrumb]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n 'aria-label': 'Breadcrumb',\n },\n})\nexport class SnyBreadcrumbDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('', this.class()));\n}\n\n@Directive({\n selector: 'ol[snyBreadcrumbList]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbListDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class())\n );\n}\n\n@Directive({\n selector: 'li[snyBreadcrumbItem]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbItemDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbLink]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbLinkDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('transition-colors hover:text-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbSeparator]',\n standalone: true,\n host: {\n role: 'presentation',\n '[aria-hidden]': 'true',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyBreadcrumbSeparatorDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('[&>svg]:size-3.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbPage]',\n standalone: true,\n host: {\n role: 'link',\n 'aria-disabled': 'true',\n '[attr.aria-current]': '\"page\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyBreadcrumbPageDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('font-normal text-foreground', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const buttonGroupVariants = cva(\n 'inline-flex [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-r-none [&>*:last-child:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:-ml-px',\n {\n variants: {\n orientation: {\n horizontal: 'flex-row',\n vertical: 'flex-col [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-b-none [&>*:first-child:not(:last-child)]:rounded-r-sm [&>*:last-child:not(:first-child)]:rounded-t-none [&>*:last-child:not(:first-child)]:rounded-l-sm [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:ml-0',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { buttonGroupVariants, type ButtonGroupOrientation } from './button-group.variants';\n\n@Directive({\n selector: '[snyButtonGroup]',\n standalone: true,\n host: {\n role: 'group',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyButtonGroupDirective {\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(buttonGroupVariants({ orientation: this.orientation() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const checkboxVariants = cva(\n 'peer appearance-none shrink-0 rounded-sm border border-border bg-background transition-colors checked:bg-primary checked:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type CheckboxSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { checkboxVariants, type CheckboxSize } from './checkbox.variants';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][snyCheckbox]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCheckboxDirective {\n readonly size = input<CheckboxSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(checkboxVariants({ size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const comboboxTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { comboboxTriggerVariants, type ComboboxSize } from './combobox.variants';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'sny-combobox',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'relative inline-block w-full',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyComboboxComponent), multi: true },\n ],\n template: `\n <!-- Trigger button -->\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\n {{ selectedLabel() || placeholder() }}\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\n </button>\n\n <!-- Dropdown popover -->\n @if (open()) {\n <div\n #dropdownEl\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <!-- Search input -->\n <div class=\"flex items-center border-b border-border px-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"mr-2 shrink-0 opacity-50\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\n <input\n #searchEl\n type=\"text\"\n class=\"flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground\"\n [placeholder]=\"searchPlaceholder()\"\n [value]=\"query()\"\n (input)=\"onSearchInput($event)\"\n (keydown)=\"onKeydown($event)\"\n />\n </div>\n\n <!-- Options list -->\n @if (filtered().length > 0) {\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 sny-scrollbar\">\n @for (opt of filtered(); track opt.value; let i = $index) {\n <li\n role=\"option\"\n [id]=\"'sny-cb-opt-' + opt.value\"\n [attr.aria-selected]=\"value() === opt.value\"\n [class]=\"optionClass(i)\"\n (mousedown)=\"select(opt); $event.preventDefault()\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\n {{ opt.label }}\n </li>\n }\n </ul>\n } @else {\n <div class=\"py-6 text-center text-sm text-muted-foreground\">No results found.</div>\n }\n </div>\n }\n `,\n})\nexport class SnyComboboxComponent implements ControlValueAccessor, OnDestroy {\n readonly options = input<ComboboxOption[]>([]);\n readonly placeholder = input('Select...');\n readonly searchPlaceholder = input('Search...');\n readonly size = input<ComboboxSize>('md');\n readonly class = input<string>('');\n readonly value = model<string>('');\n\n readonly open = signal(false);\n readonly query = signal('');\n readonly activeIndex = signal(0);\n\n private readonly _disabledByCva = signal(false);\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly searchRef = viewChild<ElementRef<HTMLInputElement>>('searchEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: string): void {\n this.value.set(val ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(_isDisabled: boolean): void {\n this._disabledByCva.set(_isDisabled);\n }\n\n readonly selectedLabel = computed(() => {\n const v = this.value();\n if (!v) return '';\n const opt = this.options().find(o => o.value === v);\n return opt?.label ?? '';\n });\n\n readonly filtered = computed(() => {\n const q = this.query().toLowerCase();\n if (!q) return this.options();\n return this.options().filter(o => o.label.toLowerCase().includes(q));\n });\n\n protected readonly triggerClass = computed(() =>\n cn(comboboxTriggerVariants({ size: this.size() }), this.class())\n );\n\n optionClass(index: number): string {\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\n return cn(base, active);\n }\n\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n dropdown.style.width = `${rect.width}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.updateDropdownPosition();\n this.open.set(true);\n this.query.set('');\n this.activeIndex.set(0);\n this.addGlobalListeners();\n setTimeout(() => {\n this.updateDropdownPosition();\n this.searchRef()?.nativeElement.focus();\n });\n }\n }\n\n close(): void {\n this.open.set(false);\n this.query.set('');\n this.removeGlobalListeners();\n }\n\n onSearchInput(event: Event): void {\n const val = (event.target as HTMLInputElement).value;\n this.query.set(val);\n this.activeIndex.set(0);\n }\n\n select(opt: ComboboxOption): void {\n this.value.set(opt.value);\n this._onChange(opt.value);\n this.close();\n }\n\n onKeydown(event: KeyboardEvent): void {\n const items = this.filtered();\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => Math.max(i - 1, 0));\n break;\n case 'Enter':\n event.preventDefault();\n if (items[this.activeIndex()]) {\n this.select(items[this.activeIndex()]);\n }\n break;\n case 'Escape':\n this.close();\n break;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const skeletonVariants = cva(\n 'animate-pulse bg-muted block',\n {\n variants: {\n variant: {\n line: 'rounded-sm',\n circular: 'rounded-full aspect-square',\n rounded: 'rounded-lg',\n },\n size: {\n sm: 'h-4',\n md: 'h-6',\n lg: 'h-8',\n xl: 'h-12',\n },\n },\n defaultVariants: {\n variant: 'line',\n size: 'md',\n },\n }\n);\n\nexport type SkeletonVariant = 'line' | 'circular' | 'rounded';\nexport type SkeletonSize = 'sm' | 'md' | 'lg' | 'xl';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { skeletonVariants, type SkeletonVariant, type SkeletonSize } from './skeleton.variants';\n\n@Directive({\n selector: '[snySkeleton]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n 'aria-busy': 'true',\n 'aria-hidden': 'true',\n },\n})\nexport class SnySkeletonDirective {\n readonly variant = input<SkeletonVariant>('line');\n readonly size = input<SkeletonSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(skeletonVariants({ variant: this.variant(), size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const radioVariants = cva(\n 'appearance-none rounded-full border border-border bg-background transition-colors checked:border-primary checked:shadow-[inset_0_0_0_3px] checked:shadow-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type RadioSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { radioVariants, type RadioSize } from './radio.variants';\n\n@Directive({\n selector: 'input[type=\"radio\"][snyRadio]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyRadioDirective {\n readonly size = input<RadioSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(radioVariants({ size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const switchTrackVariants = cva(\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const switchThumbSize: Record<string, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\nexport const switchThumbTranslate: Record<string, string> = {\n sm: 'translate-x-4',\n md: 'translate-x-5',\n lg: 'translate-x-7',\n};\n\nexport type SwitchSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { switchTrackVariants, switchThumbSize, switchThumbTranslate, type SwitchSize } from './switch.variants';\n\n@Component({\n selector: 'sny-switch',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'inline-flex' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySwitchComponent), multi: true },\n ],\n template: `\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"thumbClass()\"></span>\n </button>\n `,\n})\nexport class SnySwitchComponent implements ControlValueAccessor {\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly size = input<SwitchSize>('md');\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private _onChange: (value: boolean) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: boolean): void {\n this.checked.set(val ?? false);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n toggle(): void {\n const newVal = !this.checked();\n this.checked.set(newVal);\n this._onChange(newVal);\n }\n\n protected readonly trackClass = computed(() =>\n cn(\n switchTrackVariants({ size: this.size() }),\n this.checked() ? 'bg-primary' : 'bg-input',\n this.class()\n )\n );\n\n protected readonly thumbClass = computed(() =>\n cn(\n 'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform',\n switchThumbSize[this.size()],\n this.checked() ? switchThumbTranslate[this.size()] : 'translate-x-0'\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n 'inline-flex items-center justify-center rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-transparent hover:bg-muted hover:text-muted-foreground',\n outline: 'border border-border bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n sm: 'h-9 px-2.5',\n md: 'h-10 px-3',\n lg: 'h-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type ToggleVariant = 'default' | 'outline';\nexport type ToggleSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { toggleVariants, type ToggleVariant, type ToggleSize } from './toggle.variants';\n\n@Directive({\n selector: 'button[snyToggle]',\n standalone: true,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyToggleDirective), multi: true },\n ],\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.disabled]': 'isDisabled() || null',\n '(click)': 'toggle()',\n '(blur)': 'onTouched()',\n },\n})\nexport class SnyToggleDirective implements ControlValueAccessor {\n readonly variant = input<ToggleVariant>('default');\n readonly size = input<ToggleSize>('md');\n readonly pressed = model(false);\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this._disabledByCva());\n\n private _onChange: (value: boolean) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: boolean): void {\n this.pressed.set(val ?? false);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n protected toggle(): void {\n if (this.isDisabled()) return;\n const newVal = !this.pressed();\n this.pressed.set(newVal);\n this._onChange(newVal);\n }\n\n protected readonly computedClass = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n this.pressed() ? 'bg-accent text-accent-foreground' : '',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const sliderTrackVariants = cva(\n 'relative w-full rounded-full bg-secondary cursor-pointer',\n {\n variants: {\n size: {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const sliderThumbSize: Record<string, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\nexport type SliderSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, model, OnDestroy, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { sliderTrackVariants, sliderThumbSize, type SliderSize } from './slider.variants';\n\n@Component({\n selector: 'sny-slider',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block',\n '(keydown)': 'onKeydown($event)',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySliderComponent), multi: true },\n ],\n template: `\n <div\n #trackEl\n [class]=\"trackClass()\"\n (mousedown)=\"onTrackMousedown($event)\"\n (touchstart)=\"onTrackTouchstart($event)\"\n >\n <div class=\"absolute h-full rounded-full bg-primary\" [style.width.%]=\"percentage()\"></div>\n <button\n type=\"button\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [disabled]=\"isDisabled()\"\n [class]=\"thumbClass()\"\n [style.left.%]=\"percentage()\"\n tabindex=\"0\"\n (blur)=\"onTouched()\"\n ></button>\n </div>\n `,\n})\nexport class SnySliderComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model(0);\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly disabled = input(false);\n readonly size = input<SliderSize>('md');\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly trackRef = viewChild<ElementRef<HTMLDivElement>>('trackEl');\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\n private upHandler: (() => void) | null = null;\n\n private _onChange: (value: number) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: number): void {\n this.value.set(val ?? 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n protected readonly percentage = computed(() => {\n const range = this.max() - this.min();\n if (range <= 0) return 0;\n return ((this.value() - this.min()) / range) * 100;\n });\n\n protected readonly trackClass = computed(() =>\n cn(sliderTrackVariants({ size: this.size() }), this.isDisabled() && 'opacity-50 cursor-not-allowed', this.class())\n );\n\n protected readonly thumbClass = computed(() =>\n cn(\n 'absolute top-1/2 -translate-x-1/2 -translate-y-1/2 block rounded-full border-2 border-primary bg-background shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n sliderThumbSize[this.size()]\n )\n );\n\n private updateValueFromPosition(clientX: number): void {\n if (this.isDisabled()) return;\n const track = this.trackRef()?.nativeElement;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const raw = this.min() + percent * (this.max() - this.min());\n const stepped = Math.round(raw / this.step()) * this.step();\n const clamped = Math.max(this.min(), Math.min(this.max(), stepped));\n this.value.set(clamped);\n this._onChange(clamped);\n }\n\n onTrackMousedown(event: MouseEvent): void {\n if (this.isDisabled()) return;\n event.preventDefault();\n this.updateValueFromPosition(event.clientX);\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateValueFromPosition(clientX);\n };\n this.upHandler = () => {\n this.onTouched();\n this.removeListeners();\n };\n document.addEventListener('mousemove', this.moveHandler as EventListener);\n document.addEventListener('mouseup', this.upHandler);\n }\n\n onTrackTouchstart(event: TouchEvent): void {\n if (this.isDisabled()) return;\n this.updateValueFromPosition(event.touches[0].clientX);\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateValueFromPosition(clientX);\n };\n this.upHandler = () => {\n this.onTouched();\n this.removeListeners();\n };\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\n document.addEventListener('touchend', this.upHandler);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.isDisabled()) return;\n const step = this.step();\n let newVal: number | undefined;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newVal = Math.min(this.max(), this.value() + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newVal = Math.max(this.min(), this.value() - step);\n break;\n case 'Home':\n event.preventDefault();\n newVal = this.min();\n break;\n case 'End':\n event.preventDefault();\n newVal = this.max();\n break;\n }\n if (newVal !== undefined) {\n this.value.set(newVal);\n this._onChange(newVal);\n }\n }\n\n private removeListeners(): void {\n if (this.moveHandler) {\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\n this.moveHandler = null;\n }\n if (this.upHandler) {\n document.removeEventListener('mouseup', this.upHandler);\n document.removeEventListener('touchend', this.upHandler);\n this.upHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeListeners();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const loaderVariants = cva(\n 'inline-flex items-center justify-center text-current',\n {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type LoaderSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type LoaderVariant = 'spinner' | 'dots' | 'bars';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { loaderVariants, type LoaderSize, type LoaderVariant } from './loader.variants';\n\n@Component({\n selector: 'sny-loader',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'computedClass()',\n role: 'status',\n '[attr.aria-label]': '\"Loading\"',\n },\n template: `\n @switch (variant()) {\n @case ('spinner') {\n <svg class=\"animate-spin h-full w-full\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n }\n @case ('dots') {\n <span class=\"flex items-center gap-1\">\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.3s]\"></span>\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.15s]\"></span>\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce\"></span>\n </span>\n }\n @case ('bars') {\n <span class=\"flex items-end gap-0.5 h-full\">\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.3s]\" style=\"height:60%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.15s]\" style=\"height:100%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm\" style=\"height:40%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.2s]\" style=\"height:80%\"></span>\n </span>\n }\n }\n `,\n})\nexport class SnyLoaderComponent {\n readonly variant = input<LoaderVariant>('spinner');\n readonly size = input<LoaderSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(loaderVariants({ size: this.size() }), this.class())\n );\n}\n","import { Directive, ElementRef, computed, inject, input, model, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_TABS = new InjectionToken<SnyTabsDirective>('SnyTabs');\n\n@Directive({\n selector: '[snyTabs]',\n standalone: true,\n exportAs: 'snyTabs',\n providers: [{ provide: SNY_TABS, useExisting: SnyTabsDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTabsDirective {\n readonly value = model<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('', this.class())\n );\n\n select(value: string): void {\n this.value.set(value);\n }\n}\n\n@Directive({\n selector: '[snyTabsList]',\n standalone: true,\n host: {\n role: 'tablist',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyTabsListDirective {\n readonly class = input<string>('');\n private readonly elRef = inject(ElementRef);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\n this.class()\n )\n );\n\n onKeydown(event: KeyboardEvent): void {\n const triggers = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[role=\"tab\"]')\n );\n if (triggers.length === 0) return;\n\n const currentIndex = triggers.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % triggers.length;\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = triggers.length - 1;\n break;\n }\n if (nextIndex !== null) {\n triggers[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyTabsTrigger]',\n standalone: true,\n host: {\n role: 'tab',\n '[class]': 'computedClass()',\n '[attr.aria-selected]': 'isActive()',\n '[attr.tabindex]': 'isActive() ? 0 : -1',\n '(click)': 'tabs.select(value())',\n },\n})\nexport class SnyTabsTriggerDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n readonly tabs = inject(SNY_TABS);\n\n readonly isActive = computed(() => this.tabs.value() === this.value());\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer',\n this.isActive()\n ? 'bg-background text-foreground shadow-sm'\n : 'hover:bg-background/50',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyTabsContent]',\n standalone: true,\n host: {\n role: 'tabpanel',\n '[class]': 'computedClass()',\n '[style.display]': 'isActive() ? null : \"none\"',\n },\n})\nexport class SnyTabsContentDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n private readonly tabs = inject(SNY_TABS);\n\n readonly isActive = computed(() => this.tabs.value() === this.value());\n\n protected readonly computedClass = computed(() =>\n cn('mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tabsListVariants = cva(\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport const tabsTriggerVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n","import { cva } from 'class-variance-authority';\n\nexport const selectTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type SelectSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { selectTriggerVariants, type SelectSize } from './select.variants';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'sny-select',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'relative inline-block w-full',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySelectComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\n {{ selectedLabel() || placeholder() }}\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m6 9 6 6 6-6\"/></svg>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 sny-scrollbar\">\n @for (opt of options(); track opt.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"value() === opt.value\"\n [class]=\"optionClass(i)\"\n (mousedown)=\"select(opt); $event.preventDefault()\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\n {{ opt.label }}\n </li>\n }\n </ul>\n </div>\n }\n `,\n})\nexport class SnySelectComponent implements ControlValueAccessor, OnDestroy {\n readonly options = input<SelectOption[]>([]);\n readonly placeholder = input('Select...');\n readonly size = input<SelectSize>('md');\n readonly disabled = input(false);\n readonly class = input<string>('');\n readonly value = model<string>('');\n\n readonly open = signal(false);\n readonly activeIndex = signal(0);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: string): void {\n this.value.set(val ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly selectedLabel = computed(() => {\n const v = this.value();\n if (!v) return '';\n const opt = this.options().find(o => o.value === v);\n return opt?.label ?? '';\n });\n\n protected readonly triggerClass = computed(() =>\n cn(selectTriggerVariants({ size: this.size() }), this.class())\n );\n\n optionClass(index: number): string {\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\n return cn(base, active);\n }\n\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n dropdown.style.width = `${rect.width}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.open.set(true);\n this.activeIndex.set(\n Math.max(0, this.options().findIndex(o => o.value === this.value()))\n );\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n select(opt: SelectOption): void {\n this.value.set(opt.value);\n this._onChange(opt.value);\n this.close();\n }\n\n onTriggerKeydown(event: KeyboardEvent): void {\n const items = this.options();\n if (!this.open()) {\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggle();\n }\n return;\n }\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => Math.max(i - 1, 0));\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (items[this.activeIndex()]) {\n this.select(items[this.activeIndex()]);\n }\n break;\n case 'Escape':\n this.close();\n break;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tableVariants = cva(\n 'w-full caption-bottom text-sm border-collapse',\n {\n variants: {\n variant: {\n default: '',\n striped: '[&_tbody_tr:nth-child(even)]:bg-muted/50',\n bordered: 'border border-border [&_th]:border [&_th]:border-border [&_td]:border [&_td]:border-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport const tableCellVariants = cva(\n '',\n {\n variants: {\n density: {\n compact: 'px-2 py-1 text-xs',\n normal: 'px-4 py-3 text-sm',\n comfortable: 'px-6 py-4 text-base',\n },\n },\n defaultVariants: {\n density: 'normal',\n },\n }\n);\n\nexport type TableVariant = 'default' | 'striped' | 'bordered';\nexport type TableDensity = 'compact' | 'normal' | 'comfortable';\n","import { Directive, computed, inject, input, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { tableVariants, tableCellVariants, type TableVariant, type TableDensity } from './table.variants';\n\nexport const SNY_TABLE = new InjectionToken<SnyTableDirective>('SnyTable');\n\n@Directive({\n selector: 'table[snyTable]',\n standalone: true,\n providers: [{ provide: SNY_TABLE, useExisting: SnyTableDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableDirective {\n readonly variant = input<TableVariant>('default');\n readonly density = input<TableDensity>('normal');\n readonly hoverable = input(false);\n readonly stickyHeader = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(tableVariants({ variant: this.variant() }), this.class())\n );\n}\n\n@Directive({\n selector: 'thead[snyTableHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableHeaderDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n '[&_tr]:border-b',\n this.table?.stickyHeader() ? 'sticky top-0 z-10 bg-background' : '',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'tbody[snyTableBody]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableBodyDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('[&_tr:last-child]:border-0', this.class())\n );\n}\n\n@Directive({\n selector: 'tr[snyTableRow]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableRowDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'border-b border-border transition-colors data-[state=selected]:bg-muted',\n this.table?.hoverable() ? 'hover:bg-muted/50' : '',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'th[snyTableHead]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableHeadDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'text-left font-medium text-muted-foreground [&[align=center]]:text-center [&[align=right]]:text-right',\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'td[snyTableCell]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableCellDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n '[&[align=center]]:text-center [&[align=right]]:text-right',\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'tfoot[snyTableFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableFooterDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('border-t border-border font-medium [&>tr]:last:border-b-0', this.class())\n );\n}\n\n@Directive({\n selector: 'caption[snyTableCaption]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableCaptionDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const paginationItemVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-background hover:bg-accent hover:text-accent-foreground',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-9 w-9',\n lg: 'h-10 w-10',\n },\n active: {\n true: 'bg-primary text-primary-foreground hover:bg-primary/90 hover:text-primary-foreground',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n active: false,\n },\n }\n);\n\nexport type PaginationVariant = 'default' | 'outline' | 'ghost';\nexport type PaginationSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n paginationItemVariants,\n type PaginationVariant,\n type PaginationSize,\n} from './pagination.variants';\n\nfunction computePageRange(\n totalPages: number,\n currentPage: number,\n siblingCount: number,\n boundaryCount: number\n): (number | 'ellipsis')[] {\n const range = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\n const startPages = range(1, Math.min(boundaryCount, totalPages));\n const endPages = range(Math.max(totalPages - boundaryCount + 1, boundaryCount + 1), totalPages);\n\n const siblingsStart = Math.max(\n Math.min(currentPage - siblingCount, totalPages - boundaryCount - siblingCount * 2 - 1),\n boundaryCount + 2\n );\n const siblingsEnd = Math.min(\n Math.max(currentPage + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : totalPages - 1\n );\n\n const result: (number | 'ellipsis')[] = [...startPages];\n\n if (siblingsStart > boundaryCount + 2) {\n result.push('ellipsis');\n } else if (boundaryCount + 1 < totalPages - boundaryCount) {\n result.push(boundaryCount + 1);\n }\n\n result.push(...range(siblingsStart, siblingsEnd));\n\n if (siblingsEnd < totalPages - boundaryCount - 1) {\n result.push('ellipsis');\n } else if (totalPages - boundaryCount > boundaryCount) {\n result.push(totalPages - boundaryCount);\n }\n\n result.push(...endPages);\n\n return [...new Set(result)].sort((a, b) => {\n if (a === 'ellipsis') return 0;\n if (b === 'ellipsis') return 0;\n return a - b;\n });\n}\n\n@Component({\n selector: 'sny-pagination',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'navigation',\n 'aria-label': 'Pagination',\n },\n template: `\n <div class=\"flex items-center gap-1\">\n <button\n [class]=\"navBtnClass()\"\n [disabled]=\"!hasPrev()\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"prev()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n\n @for (page of pages(); track $index) {\n @if (page === 'ellipsis') {\n <span class=\"flex h-9 w-9 items-center justify-center\" aria-hidden=\"true\">...</span>\n } @else {\n <button\n [class]=\"pageClass(page)\"\n [attr.aria-label]=\"'Page ' + page\"\n [attr.aria-current]=\"page === currentPage() ? 'page' : null\"\n (click)=\"goToPage(page)\"\n >\n {{ page }}\n </button>\n }\n }\n\n <button\n [class]=\"navBtnClass()\"\n [disabled]=\"!hasNext()\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"next()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n `,\n})\nexport class SnyPaginationComponent {\n readonly currentPage = model(1);\n readonly totalPages = input.required<number>();\n readonly siblingCount = input(1);\n readonly boundaryCount = input(1);\n readonly size = input<PaginationSize>('md');\n readonly variant = input<PaginationVariant>('default');\n readonly class = input<string>('');\n\n readonly pages = computed(() =>\n computePageRange(this.totalPages(), this.currentPage(), this.siblingCount(), this.boundaryCount())\n );\n\n readonly hasPrev = computed(() => this.currentPage() > 1);\n readonly hasNext = computed(() => this.currentPage() < this.totalPages());\n\n goToPage(page: number | 'ellipsis'): void {\n if (page === 'ellipsis') return;\n this.currentPage.set(page);\n }\n\n prev(): void {\n if (this.hasPrev()) this.currentPage.update((p) => p - 1);\n }\n\n next(): void {\n if (this.hasNext()) this.currentPage.update((p) => p + 1);\n }\n\n pageClass(page: number): string {\n return cn(\n paginationItemVariants({\n variant: this.variant(),\n size: this.size(),\n active: page === this.currentPage(),\n })\n );\n }\n\n navBtnClass(): string {\n return cn(\n paginationItemVariants({ variant: this.variant(), size: this.size(), active: false })\n );\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const dropdownContentVariants = cva(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport const dropdownItemVariants = cva(\n 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[active]:bg-accent data-[active]:text-accent-foreground',\n {\n variants: {\n variant: {\n default: '',\n destructive:\n 'text-destructive data-[active]:bg-destructive/10 data-[active]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type DropdownItemVariant = 'default' | 'destructive';\n","import { Directive, ElementRef, HostListener, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n dropdownContentVariants,\n dropdownItemVariants,\n type DropdownItemVariant,\n} from './dropdown.variants';\n\nexport const SNY_DROPDOWN = new InjectionToken<SnyDropdownDirective>('SnyDropdown');\n\n@Directive({\n selector: '[snyDropdown]',\n standalone: true,\n exportAs: 'snyDropdown',\n providers: [{ provide: SNY_DROPDOWN, useExisting: SnyDropdownDirective }],\n host: {\n '[class]': '\"relative inline-block\"',\n },\n})\nexport class SnyDropdownDirective {\n private readonly elementRef = inject(ElementRef);\n readonly isOpen = signal(false);\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n\n@Directive({\n selector: '[snyDropdownTrigger]',\n standalone: true,\n host: {\n '(click)': 'dropdown.toggle()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '[attr.aria-haspopup]': '\"menu\"',\n },\n})\nexport class SnyDropdownTriggerDirective {\n readonly dropdown = inject(SNY_DROPDOWN);\n}\n\n@Directive({\n selector: '[snyDropdownContent]',\n standalone: true,\n host: {\n 'role': 'menu',\n '[class]': 'computedClass()',\n '[style.display]': 'dropdown.isOpen() ? \"\" : \"none\"',\n },\n})\nexport class SnyDropdownContentDirective {\n readonly dropdown = inject(SNY_DROPDOWN);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n dropdownContentVariants(),\n 'absolute mt-1 left-0 animate-in fade-in-0 zoom-in-95',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyMenuContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuContentDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(dropdownContentVariants(), this.class())\n );\n}\n\n@Directive({\n selector: '[snyMenuItem]',\n standalone: true,\n host: {\n 'role': 'menuitem',\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnyMenuItemDirective {\n private readonly dropdown = inject(SNY_DROPDOWN, { optional: true });\n readonly variant = input<DropdownItemVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(dropdownItemVariants({ variant: this.variant() }), 'cursor-pointer hover:bg-accent hover:text-accent-foreground', this.class())\n );\n\n onClick(): void {\n this.dropdown?.close();\n }\n}\n\n@Directive({\n selector: '[snyMenuSeparator]',\n standalone: true,\n host: {\n 'role': 'separator',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuSeparatorDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('-mx-1 my-1 h-px bg-muted', this.class())\n );\n}\n\n@Directive({\n selector: '[snyMenuLabel]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuLabelDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('px-2 py-1.5 text-sm font-semibold', this.class())\n );\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[snyCell]',\n standalone: true,\n})\nexport class SnyCellDefDirective {\n readonly snyCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyHeaderCell]',\n standalone: true,\n})\nexport class SnyHeaderCellDefDirective {\n readonly snyHeaderCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyBulkActions]',\n standalone: true,\n})\nexport class SnyBulkActionsDefDirective {\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyRowExpand]',\n standalone: true,\n})\nexport class SnyRowExpandDefDirective {\n readonly template = inject(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n computed,\n contentChild,\n contentChildren,\n effect,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n SnyTableDirective,\n SnyTableHeaderDirective,\n SnyTableBodyDirective,\n SnyTableRowDirective,\n SnyTableHeadDirective,\n SnyTableCellDirective,\n} from '../table/table.directives';\nimport type { TableVariant, TableDensity } from '../table/table.variants';\nimport { SnyPaginationComponent } from '../pagination/pagination.component';\nimport { SnyCheckboxDirective } from '../checkbox/checkbox.directive';\nimport { SnyInputDirective } from '../input/input.directive';\nimport { SnyButtonDirective } from '../button/button.directive';\nimport { SnySelectComponent, type SelectOption } from '../select/select.component';\nimport { SnySkeletonDirective } from '../skeleton/skeleton.directive';\nimport {\n SnyDropdownDirective,\n SnyDropdownTriggerDirective,\n SnyDropdownContentDirective,\n SnyMenuItemDirective,\n} from '../dropdown/dropdown.directives';\nimport {\n SnyCellDefDirective,\n SnyHeaderCellDefDirective,\n SnyBulkActionsDefDirective,\n SnyRowExpandDefDirective,\n} from './data-table.directives';\nimport type {\n DataTableColumn,\n DataTablePaginationConfig,\n SortState,\n SortDirection,\n} from './data-table.types';\n\nconst DEFAULT_PAGINATION: DataTablePaginationConfig = {\n pageSize: 10,\n pageSizeOptions: [5, 10, 25, 50],\n};\n\n@Component({\n selector: 'sny-data-table',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n SnyTableDirective,\n SnyTableHeaderDirective,\n SnyTableBodyDirective,\n SnyTableRowDirective,\n SnyTableHeadDirective,\n SnyTableCellDirective,\n SnyPaginationComponent,\n SnyCheckboxDirective,\n SnyInputDirective,\n SnyButtonDirective,\n SnySelectComponent,\n SnySkeletonDirective,\n SnyDropdownDirective,\n SnyDropdownTriggerDirective,\n SnyDropdownContentDirective,\n SnyMenuItemDirective,\n ],\n template: `\n <!-- Toolbar -->\n @if (filterable() || showExport() || showColumnToggle()) {\n <div class=\"flex items-center justify-between gap-4 mb-4 flex-wrap\">\n @if (filterable()) {\n <input\n snyInput\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n placeholder=\"Filter...\"\n class=\"w-full sm:max-w-sm\"\n />\n }\n <div class=\"flex items-center gap-2\">\n @if (showExport()) {\n <button snyBtn variant=\"outline\" size=\"sm\" (click)=\"onExport()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\"/><path d=\"M14 2v6h6\"/><path d=\"M12 18v-6\"/><path d=\"m9 15 3-3 3 3\"/></svg>\n <span class=\"hidden sm:inline\">Export</span>\n </button>\n }\n @if (showColumnToggle()) {\n <div snyDropdown class=\"relative\">\n <button snyBtn variant=\"outline\" size=\"sm\" snyDropdownTrigger>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M12 3v18\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M3 9h18\"/><path d=\"M3 15h18\"/></svg>\n <span class=\"hidden sm:inline\">Columns</span>\n </button>\n <div snyDropdownContent class=\"w-48 right-0 left-auto\">\n @for (col of columns(); track col.key) {\n <label snyMenuItem class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"!hiddenColumns().has(col.key)\"\n (change)=\"toggleColumnVisibility(col.key)\"\n (click)=\"$event.stopPropagation()\"\n />\n {{ col.label }}\n </label>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Bulk Actions Bar -->\n @if (showBulkActions()) {\n @let selected = selectedRows();\n <div class=\"flex items-center gap-2 mb-4 p-3 bg-muted/50 rounded-sm border border-border flex-wrap\">\n <span class=\"text-sm font-medium text-muted-foreground mr-2\">\n {{ selected.length }} selected\n </span>\n <ng-container\n [ngTemplateOutlet]=\"bulkActionsDef()!.template\"\n [ngTemplateOutletContext]=\"{ $implicit: selected }\"\n />\n <button\n snyBtn variant=\"ghost\" size=\"sm\" class=\"ml-auto\"\n (click)=\"selectedRows.set([])\"\n >\n Clear\n </button>\n </div>\n }\n\n <!-- Table -->\n <div class=\"overflow-auto border border-border rounded-sm\">\n <table\n snyTable\n [variant]=\"variant()\"\n [density]=\"density()\"\n [hoverable]=\"hoverable()\"\n [stickyHeader]=\"stickyHeader()\"\n >\n <thead snyTableHeader>\n <tr snyTableRow>\n @if (selectable()) {\n <th snyTableHead class=\"w-12\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"someSelected() && !allSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </th>\n }\n @if (expandable()) {\n <th snyTableHead class=\"w-10\"></th>\n }\n @let sort = sortState();\n @let headerDefs = headerCellDefMap();\n @for (col of visibleColumns(); track col.key) {\n <th\n snyTableHead\n [style.width]=\"col.width ?? null\"\n [class]=\"col.sortable ? 'cursor-pointer select-none' : ''\"\n (click)=\"col.sortable ? toggleSort(col.key) : null\"\n >\n @if (headerDefs.has(col.key)) {\n <ng-container\n [ngTemplateOutlet]=\"headerDefs.get(col.key)!\"\n [ngTemplateOutletContext]=\"{ $implicit: col }\"\n />\n } @else {\n <div class=\"flex items-center gap-1\">\n <span>{{ col.label }}</span>\n @if (col.sortable) {\n @let isActive = sort.key === col.key;\n @if (isActive && sort.direction === 'asc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m5 12 7-7 7 7\"/></svg>\n } @else if (isActive && sort.direction === 'desc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m19 12-7 7-7-7\"/></svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"opacity-30\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\n }\n }\n </div>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody snyTableBody>\n @if (loading()) {\n @for (i of skeletonRows(); track i) {\n <tr snyTableRow>\n @if (selectable()) {\n <td snyTableCell class=\"w-12\"><div snySkeleton class=\"w-4 h-4 rounded\"></div></td>\n }\n @if (expandable()) {\n <td snyTableCell class=\"w-10\"><div snySkeleton class=\"w-4 h-4 rounded\"></div></td>\n }\n @for (col of visibleColumns(); track col.key) {\n <td snyTableCell [style.width]=\"col.width ?? null\">\n <div snySkeleton class=\"w-full h-4 rounded\"></div>\n </td>\n }\n </tr>\n }\n } @else if (paginatedData().length === 0) {\n <tr snyTableRow>\n <td\n snyTableCell\n [attr.colspan]=\"totalColSpan()\"\n class=\"text-center text-muted-foreground py-8\"\n >\n {{ noDataText() }}\n </td>\n </tr>\n } @else {\n @let cellDefs = cellDefMap();\n @let cols = visibleColumns();\n @let expandTpl = rowExpandDef();\n @for (row of paginatedData(); track trackByFn(row, $index)) {\n <tr\n snyTableRow\n [attr.data-state]=\"isSelected(row) ? 'selected' : null\"\n (click)=\"onRowClick(row)\"\n class=\"cursor-pointer\"\n >\n @if (selectable()) {\n <td snyTableCell class=\"w-12\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"isSelected(row)\"\n (change)=\"toggleRowSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n }\n @if (expandable()) {\n <td snyTableCell class=\"w-10\">\n <button\n class=\"p-0.5 rounded hover:bg-accent transition-transform duration-150\"\n [class.rotate-90]=\"isExpanded(row)\"\n (click)=\"toggleRowExpansion(row); $event.stopPropagation()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </td>\n }\n @for (col of cols; track col.key) {\n <td snyTableCell [style.width]=\"col.width ?? null\">\n @if (cellDefs.has(col.key)) {\n <ng-container\n [ngTemplateOutlet]=\"cellDefs.get(col.key)!\"\n [ngTemplateOutletContext]=\"{ $implicit: row[col.key], row: row }\"\n />\n } @else {\n {{ row[col.key] }}\n }\n </td>\n }\n </tr>\n @if (expandable() && isExpanded(row) && expandTpl) {\n <tr snyTableRow>\n <td snyTableCell [attr.colspan]=\"totalColSpan()\" class=\"bg-muted/30\">\n <ng-container\n [ngTemplateOutlet]=\"expandTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\"\n />\n </td>\n </tr>\n }\n }\n }\n </tbody>\n </table>\n </div>\n\n <!-- Footer -->\n @if (paginated()) {\n <div class=\"flex flex-col sm:flex-row items-start sm:items-center justify-between mt-4 gap-3 sm:gap-4\">\n <span class=\"text-sm text-muted-foreground\">\n @if (selectable()) {\n {{ selectedRows().length }} of {{ filteredData().length }} row(s) selected\n } @else {\n {{ filteredData().length }} row(s)\n }\n </span>\n <div class=\"flex items-center gap-3 sm:gap-4 flex-wrap\">\n <div class=\"flex items-center gap-2\">\n <span class=\"hidden sm:inline text-sm text-muted-foreground whitespace-nowrap\">Rows per page</span>\n <sny-select\n [options]=\"pageSizeOptions()\"\n [value]=\"pageSizeValue()\"\n (valueChange)=\"onPageSizeChange($event)\"\n size=\"sm\"\n class=\"w-20\"\n />\n </div>\n <sny-pagination\n [currentPage]=\"currentPage()\"\n (currentPageChange)=\"currentPage.set($event)\"\n [totalPages]=\"totalPages()\"\n />\n </div>\n </div>\n }\n `,\n})\nexport class SnyDataTableComponent {\n // Inputs\n readonly columns = input.required<DataTableColumn[]>();\n readonly data = input.required<Record<string, unknown>[]>();\n readonly variant = input<TableVariant>('default');\n readonly density = input<TableDensity>('normal');\n readonly hoverable = input(true);\n readonly stickyHeader = input(false);\n readonly selectable = input(false);\n readonly paginated = input(true);\n readonly filterable = input(true);\n readonly showExport = input(false);\n readonly showColumnToggle = input(false);\n readonly expandable = input(false);\n readonly loading = input(false);\n readonly loadingRows = input(5);\n readonly paginationConfig = input<DataTablePaginationConfig>(DEFAULT_PAGINATION);\n readonly trackBy = input('');\n readonly noDataText = input('No data available');\n\n // Model\n readonly selectedRows = model<Record<string, unknown>[]>([]);\n\n // Outputs\n readonly sortChanged = output<SortState>();\n readonly rowClicked = output<Record<string, unknown>>();\n readonly dataExported = output<Record<string, unknown>[]>();\n\n // Content queries\n readonly cellDefs = contentChildren(SnyCellDefDirective);\n readonly headerCellDefs = contentChildren(SnyHeaderCellDefDirective);\n readonly bulkActionsDef = contentChild(SnyBulkActionsDefDirective);\n readonly rowExpandDef = contentChild(SnyRowExpandDefDirective);\n\n // Internal state\n readonly sortState = signal<SortState>({ key: '', direction: null });\n readonly filterText = signal('');\n readonly currentPage = signal(1);\n readonly pageSize = signal(10);\n readonly hiddenColumns = signal<Set<string>>(new Set());\n readonly expandedRows = signal<Set<unknown>>(new Set());\n\n // Template def maps\n readonly cellDefMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) {\n map.set(def.snyCell(), def.template);\n }\n return map;\n });\n\n readonly headerCellDefMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.headerCellDefs()) {\n map.set(def.snyHeaderCell(), def.template);\n }\n return map;\n });\n\n // Visible columns\n readonly visibleColumns = computed(() =>\n this.columns().filter(\n (col) => col.visible !== false && !this.hiddenColumns().has(col.key)\n )\n );\n\n // Page size options\n readonly pageSizeOptions = computed<SelectOption[]>(() =>\n this.paginationConfig().pageSizeOptions.map((n) => ({\n value: String(n),\n label: String(n),\n }))\n );\n\n readonly pageSizeValue = computed(() => String(this.pageSize()));\n\n // Skeleton rows\n readonly skeletonRows = computed(() =>\n Array.from({ length: this.loadingRows() }, (_, i) => i)\n );\n\n // Bulk actions visibility\n readonly showBulkActions = computed(\n () =>\n this.selectable() &&\n this.selectedRows().length > 0 &&\n this.bulkActionsDef() != null\n );\n\n // Data pipeline (filter uses all columns, not just visible)\n readonly filteredData = computed(() => {\n const text = this.filterText().toLowerCase().trim();\n const rows = this.data();\n if (!text) return rows;\n const cols = this.columns().filter((c) => c.filterable !== false);\n return rows.filter((row) =>\n cols.some((col) =>\n String(row[col.key] ?? '').toLowerCase().includes(text)\n )\n );\n });\n\n readonly sortedData = computed(() => {\n const { key, direction } = this.sortState();\n const rows = this.filteredData();\n if (!key || !direction) return rows;\n return [...rows].sort((a, b) => {\n const aVal = a[key];\n const bVal = b[key];\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return direction === 'asc' ? -1 : 1;\n if (bVal == null) return direction === 'asc' ? 1 : -1;\n if (typeof aVal === 'number' && typeof bVal === 'number') {\n return direction === 'asc' ? aVal - bVal : bVal - aVal;\n }\n const cmp = String(aVal).localeCompare(String(bVal));\n return direction === 'asc' ? cmp : -cmp;\n });\n });\n\n readonly totalPages = computed(() =>\n Math.max(1, Math.ceil(this.filteredData().length / this.pageSize()))\n );\n\n readonly paginatedData = computed(() => {\n if (!this.paginated()) return this.sortedData();\n const start = (this.currentPage() - 1) * this.pageSize();\n return this.sortedData().slice(start, start + this.pageSize());\n });\n\n readonly totalColSpan = computed(\n () =>\n this.visibleColumns().length +\n (this.selectable() ? 1 : 0) +\n (this.expandable() ? 1 : 0)\n );\n\n // Selection computed\n readonly allSelected = computed(() => {\n const page = this.paginatedData();\n if (page.length === 0) return false;\n const selected = this.selectedRows();\n return page.every((row) => this.isRowInList(row, selected));\n });\n\n readonly someSelected = computed(() => {\n const page = this.paginatedData();\n const selected = this.selectedRows();\n return page.some((row) => this.isRowInList(row, selected));\n });\n\n constructor() {\n effect(() => {\n const config = this.paginationConfig();\n untracked(() => this.pageSize.set(config.pageSize));\n });\n\n effect(() => {\n this.filterText();\n this.pageSize();\n this.data();\n untracked(() => this.currentPage.set(1));\n });\n }\n\n // Sort\n toggleSort(key: string): void {\n const current = this.sortState();\n let direction: SortDirection;\n if (current.key !== key) {\n direction = 'asc';\n } else if (current.direction === 'asc') {\n direction = 'desc';\n } else if (current.direction === 'desc') {\n direction = null;\n } else {\n direction = 'asc';\n }\n const next: SortState = { key: direction ? key : '', direction };\n this.sortState.set(next);\n this.sortChanged.emit(next);\n }\n\n // Filter\n onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n }\n\n // Page size\n onPageSizeChange(value: string): void {\n this.pageSize.set(Number(value));\n }\n\n // Selection\n toggleSelectAll(): void {\n if (this.allSelected()) {\n const page = this.paginatedData();\n this.selectedRows.update((sel) =>\n sel.filter((r) => !page.some((p) => this.rowsEqual(r, p)))\n );\n } else {\n const page = this.paginatedData();\n this.selectedRows.update((sel) => {\n const newSel = [...sel];\n for (const row of page) {\n if (!this.isRowInList(row, newSel)) newSel.push(row);\n }\n return newSel;\n });\n }\n }\n\n toggleRowSelection(row: Record<string, unknown>): void {\n this.selectedRows.update((sel) =>\n this.isRowInList(row, sel)\n ? sel.filter((r) => !this.rowsEqual(r, row))\n : [...sel, row]\n );\n }\n\n // Row click\n onRowClick(row: Record<string, unknown>): void {\n this.rowClicked.emit(row);\n }\n\n // Export\n onExport(): void {\n this.dataExported.emit(this.filteredData());\n }\n\n // Column visibility\n toggleColumnVisibility(key: string): void {\n this.hiddenColumns.update((set) => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }\n\n // Expansion\n toggleRowExpansion(row: Record<string, unknown>): void {\n const key = this.trackBy() ? row[this.trackBy()] : row;\n this.expandedRows.update((set) => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }\n\n isExpanded(row: Record<string, unknown>): boolean {\n const key = this.trackBy() ? row[this.trackBy()] : row;\n return this.expandedRows().has(key);\n }\n\n // Helpers\n isSelected(row: Record<string, unknown>): boolean {\n return this.isRowInList(row, this.selectedRows());\n }\n\n trackByFn(row: Record<string, unknown>, index: number): unknown {\n const key = this.trackBy();\n return key ? row[key] : index;\n }\n\n private isRowInList(\n row: Record<string, unknown>,\n list: Record<string, unknown>[]\n ): boolean {\n return list.some((r) => this.rowsEqual(r, row));\n }\n\n private rowsEqual(\n a: Record<string, unknown>,\n b: Record<string, unknown>\n ): boolean {\n const key = this.trackBy();\n if (key) return a[key] === b[key];\n return a === b;\n }\n}\n","import type { Observable } from 'rxjs';\n\ninterface CdkDialogRefLike<R> {\n close(result?: R): void;\n readonly closed: Observable<R | undefined>;\n}\n\nexport class SnySheetRef<R = unknown> {\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\n\n close(result?: R): void {\n this.cdkRef.close(result);\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n}\n","export type SheetSide = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface SnySheetConfig {\n side?: SheetSide;\n closeOnBackdrop?: boolean;\n closeOnEsc?: boolean;\n data?: unknown;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport const DEFAULT_SHEET_CONFIG: SnySheetConfig = {\n side: 'right',\n closeOnBackdrop: true,\n closeOnEsc: true,\n};\n\nexport const SHEET_PANEL_CLASS: Record<SheetSide, string> = {\n right: 'sny-sheet-right',\n left: 'sny-sheet-left',\n top: 'sny-sheet-top',\n bottom: 'sny-sheet-bottom',\n};\n","import { Injectable, inject, InjectionToken, Injector } from '@angular/core';\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { type ComponentType, createGlobalPositionStrategy, type GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { SnySheetRef } from './sheet-ref';\nimport { DEFAULT_SHEET_CONFIG, SHEET_PANEL_CLASS, type SheetSide, type SnySheetConfig } from './sheet.types';\n\nexport const SNY_SHEET_DATA = new InjectionToken<unknown>('SNY_SHEET_DATA');\n\ninterface SheetOverlayConfig {\n positionStrategy: GlobalPositionStrategy;\n width?: string;\n maxWidth?: string;\n height?: string;\n maxHeight?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SnySheetService {\n private readonly cdkDialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T, R = unknown>(component: ComponentType<T>, config: SnySheetConfig = {}): SnySheetRef<R> {\n const merged = { ...DEFAULT_SHEET_CONFIG, ...config };\n const side = merged.side ?? 'right';\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\n const overlay = this._getOverlayConfig(side);\n\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\n disableClose,\n hasBackdrop: true,\n backdropClass: 'sny-dialog-backdrop',\n panelClass: ['sny-sheet-panel', SHEET_PANEL_CLASS[side]],\n positionStrategy: overlay.positionStrategy,\n width: overlay.width,\n maxWidth: overlay.maxWidth,\n height: overlay.height,\n maxHeight: overlay.maxHeight,\n ariaLabelledBy: merged.ariaLabelledBy,\n ariaDescribedBy: merged.ariaDescribedBy,\n data: merged.data,\n providers: merged.data != null\n ? [{ provide: SNY_SHEET_DATA, useValue: merged.data }]\n : [],\n });\n\n if (disableClose) {\n if (merged.closeOnBackdrop) {\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n if (merged.closeOnEsc) {\n const sub = cdkRef.keydownEvents.subscribe(event => {\n if (event.key === 'Escape') cdkRef.close();\n });\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n }\n\n return new SnySheetRef<R>(cdkRef);\n }\n\n closeAll(): void {\n this.cdkDialog.closeAll();\n }\n\n private _getOverlayConfig(side: SheetSide): SheetOverlayConfig {\n const strategy = createGlobalPositionStrategy(this.injector);\n\n switch (side) {\n case 'right':\n return {\n positionStrategy: strategy.top('0').right('0'),\n width: '75%',\n maxWidth: '24rem',\n height: '100vh',\n maxHeight: '100vh',\n };\n case 'left':\n return {\n positionStrategy: strategy.top('0').left('0'),\n width: '75%',\n maxWidth: '24rem',\n height: '100vh',\n maxHeight: '100vh',\n };\n case 'top':\n return {\n positionStrategy: strategy.top('0').centerHorizontally(),\n width: '100vw',\n maxWidth: '100vw',\n };\n case 'bottom':\n return {\n positionStrategy: strategy.bottom('0').centerHorizontally(),\n width: '100vw',\n maxWidth: '100vw',\n };\n }\n }\n}\n","import { Directive, computed, input, inject } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: '[snySheetHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-2', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-lg font-semibold text-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('py-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetClose]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnySheetCloseDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n this.class()\n )\n );\n\n private readonly dialogRef = inject(DialogRef, { optional: true });\n\n onClick(): void {\n this.dialogRef?.close();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n {\n variants: {\n variant: {\n default:\n 'bg-background text-foreground border-border',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive bg-destructive/10',\n success:\n 'border-green-500/50 text-green-700 dark:text-green-400 dark:border-green-500 [&>svg]:text-green-600 bg-green-50 dark:bg-green-950/30',\n warning:\n 'border-yellow-500/50 text-yellow-700 dark:text-yellow-400 dark:border-yellow-500 [&>svg]:text-yellow-600 bg-yellow-50 dark:bg-yellow-950/30',\n info: 'border-blue-500/50 text-blue-700 dark:text-blue-400 dark:border-blue-500 [&>svg]:text-blue-600 bg-blue-50 dark:bg-blue-950/30',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type AlertVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info';\n","import { Directive, computed, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { alertVariants, type AlertVariant } from './alert.variants';\n\n@Directive({\n selector: '[snyAlert]',\n exportAs: 'snyAlert',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.role]': 'role()',\n '[attr.aria-live]': 'ariaLive()',\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class SnyAlertDirective {\n readonly variant = input<AlertVariant>('default');\n readonly dismissible = input(false);\n readonly class = input<string>('');\n\n readonly visible = signal(true);\n\n protected readonly role = computed(() => {\n const v = this.variant();\n return v === 'destructive' || v === 'warning' || v === 'info' ? 'alert' : 'status';\n });\n\n protected readonly ariaLive = computed(() => {\n const v = this.variant();\n return v === 'destructive' || v === 'warning' ? 'assertive' : 'polite';\n });\n\n protected readonly computedClass = computed(() =>\n cn(alertVariants({ variant: this.variant() }), this.class())\n );\n\n dismiss(): void {\n this.visible.set(false);\n }\n}\n\n@Directive({\n selector: '[snyAlertTitle]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyAlertTitleDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('mb-1 font-medium leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyAlertDescription]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyAlertDescriptionDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('text-sm [&_p]:leading-relaxed', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const textareaVariants = cva(\n 'flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error:\n 'border-destructive focus-visible:ring-destructive text-destructive placeholder:text-destructive/60',\n },\n textareaSize: {\n sm: 'min-h-[60px] text-xs',\n md: 'min-h-[80px] text-sm',\n lg: 'min-h-[120px] text-base',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n },\n defaultVariants: {\n variant: 'default',\n textareaSize: 'md',\n resize: 'vertical',\n },\n }\n);\n\nexport type TextareaVariant = 'default' | 'error';\nexport type TextareaSize = 'sm' | 'md' | 'lg';\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\n","import {\n Directive,\n computed,\n input,\n effect,\n inject,\n ElementRef,\n afterNextRender,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n textareaVariants,\n type TextareaVariant,\n type TextareaSize,\n type TextareaResize,\n} from './textarea.variants';\n\n@Directive({\n selector: 'textarea[snyTextarea]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\n '(input)': 'onInput()',\n },\n})\nexport class SnyTextareaDirective {\n readonly variant = input<TextareaVariant>('default');\n readonly textareaSize = input<TextareaSize>('md');\n readonly resize = input<TextareaResize>('vertical');\n readonly autoResize = input(false);\n readonly class = input<string>('');\n\n private readonly el = inject(ElementRef<HTMLTextAreaElement>);\n\n protected readonly computedClass = computed(() =>\n cn(\n textareaVariants({\n variant: this.variant(),\n textareaSize: this.textareaSize(),\n resize: this.autoResize() ? 'none' : this.resize(),\n }),\n this.class()\n )\n );\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n });\n\n effect(() => {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n });\n }\n\n protected onInput(): void {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n }\n\n private adjustHeight(): void {\n const textarea = this.el.nativeElement;\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const progressTrackVariants = cva(\n 'relative w-full overflow-hidden rounded-full bg-secondary',\n {\n variants: {\n size: {\n sm: 'h-1.5',\n md: 'h-2.5',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const progressBarVariants = cva(\n 'h-full rounded-full transition-all duration-300 ease-in-out',\n {\n variants: {\n variant: {\n default: 'bg-primary',\n success: 'bg-green-600 dark:bg-green-500',\n warning: 'bg-yellow-500 dark:bg-yellow-400',\n error: 'bg-destructive',\n info: 'bg-blue-600 dark:bg-blue-500',\n },\n indeterminate: {\n true: 'animate-progress-indeterminate w-1/3',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n indeterminate: false,\n },\n }\n);\n\nexport type ProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\nexport type ProgressSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n progressTrackVariants,\n progressBarVariants,\n type ProgressVariant,\n type ProgressSize,\n} from './progress.variants';\n\n@Component({\n selector: 'sny-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'progressbar',\n '[attr.aria-valuenow]': 'indeterminate() ? null : value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': 'label()',\n '[class]': '\"w-full\"',\n },\n template: `\n <div [class]=\"trackClass()\">\n <div\n [class]=\"barClass()\"\n [style.width.%]=\"indeterminate() ? null : percentage()\"\n ></div>\n </div>\n `,\n styles: `\n @keyframes progress-indeterminate {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(400%); }\n }\n :host .animate-progress-indeterminate {\n animation: progress-indeterminate 1.5s ease-in-out infinite;\n }\n `,\n})\nexport class SnyProgressComponent {\n readonly value = input(0);\n readonly max = input(100);\n readonly variant = input<ProgressVariant>('default');\n readonly size = input<ProgressSize>('md');\n readonly indeterminate = input(false);\n readonly label = input('Progress');\n readonly class = input<string>('');\n\n readonly percentage = computed(() =>\n Math.min(100, (this.value() / this.max()) * 100)\n );\n\n protected readonly trackClass = computed(() =>\n cn(progressTrackVariants({ size: this.size() }), this.class())\n );\n\n protected readonly barClass = computed(() =>\n cn(\n progressBarVariants({\n variant: this.variant(),\n indeterminate: this.indeterminate(),\n })\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tooltipVariants = cva(\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95',\n {\n variants: {\n position: {\n top: 'slide-in-from-bottom-2',\n bottom: 'slide-in-from-top-2',\n left: 'slide-in-from-right-2',\n right: 'slide-in-from-left-2',\n },\n },\n defaultVariants: {\n position: 'top',\n },\n }\n);\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n Renderer2,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { tooltipVariants, type TooltipPosition } from './tooltip.variants';\n\nlet tooltipIdCounter = 0;\n\n@Directive({\n selector: '[snyTooltip]',\n standalone: true,\n exportAs: 'snyTooltip',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(keydown.escape)': 'hide()',\n '[attr.aria-describedby]': 'isOpen() ? tooltipId : null',\n },\n})\nexport class SnyTooltipDirective implements OnDestroy {\n readonly snyTooltip = input.required<string>();\n readonly tooltipPosition = input<TooltipPosition>('top');\n readonly tooltipDelay = input(300);\n readonly tooltipDisabled = input(false);\n readonly class = input<string>('');\n\n readonly isOpen = signal(false);\n readonly tooltipId = `sny-tooltip-${++tooltipIdCounter}`;\n\n private readonly el = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n private showTimeout: ReturnType<typeof setTimeout> | null = null;\n private tooltipEl: HTMLElement | null = null;\n\n constructor() {\n afterNextRender(() => {\n // cleanup handled in ngOnDestroy\n });\n }\n\n show(): void {\n if (this.tooltipDisabled()) return;\n this.showTimeout = setTimeout(() => {\n this.createTooltip();\n this.isOpen.set(true);\n }, this.tooltipDelay());\n }\n\n hide(): void {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n this.destroyTooltip();\n this.isOpen.set(false);\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private createTooltip(): void {\n if (this.tooltipEl) return;\n\n const tooltip = this.renderer.createElement('div') as HTMLElement;\n tooltip.id = this.tooltipId;\n tooltip.setAttribute('role', 'tooltip');\n tooltip.className = cn(\n tooltipVariants({ position: this.tooltipPosition() }),\n 'fixed pointer-events-none',\n this.class()\n );\n tooltip.textContent = this.snyTooltip();\n\n this.renderer.appendChild(document.body, tooltip);\n this.tooltipEl = tooltip;\n\n this.positionTooltip();\n }\n\n private positionTooltip(): void {\n if (!this.tooltipEl) return;\n\n const hostRect = this.el.nativeElement.getBoundingClientRect();\n const tooltipRect = this.tooltipEl.getBoundingClientRect();\n const position = this.tooltipPosition();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (position) {\n case 'top':\n top = hostRect.top - tooltipRect.height - gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'bottom':\n top = hostRect.bottom + gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'left':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left - tooltipRect.width - gap;\n break;\n case 'right':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + gap;\n break;\n }\n\n this.tooltipEl.style.top = `${top}px`;\n this.tooltipEl.style.left = `${left}px`;\n }\n\n private destroyTooltip(): void {\n if (this.tooltipEl) {\n this.tooltipEl.remove();\n this.tooltipEl = null;\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const fileInputVariants = cva(\n 'flex w-full cursor-pointer items-center gap-2 rounded-md border bg-background px-3 py-2 text-sm ring-offset-background transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error: 'border-destructive focus-visible:ring-destructive',\n },\n size: {\n sm: 'h-8 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-12 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type FileInputVariant = 'default' | 'error';\nexport type FileInputSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n viewChild,\n ElementRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport {\n fileInputVariants,\n type FileInputVariant,\n type FileInputSize,\n} from './file-input.variants';\n\n@Component({\n selector: 'sny-file-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '\"w-full\"',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyFileInputComponent), multi: true },\n ],\n template: `\n <label\n [class]=\"labelClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"sr-only\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"placeholder()\"\n [attr.aria-invalid]=\"variant() === 'error' || null\"\n (change)=\"onFileSelected($event)\"\n (blur)=\"onTouched()\"\n />\n <span class=\"truncate text-muted-foreground\">{{ fileName() }}</span>\n </label>\n `,\n})\nexport class SnyFileInputComponent implements ControlValueAccessor {\n readonly accept = input('');\n readonly multiple = input(false);\n readonly disabled = input(false);\n readonly placeholder = input('Choose file...');\n readonly variant = input<FileInputVariant>('default');\n readonly size = input<FileInputSize>('md');\n readonly maxSize = input(0);\n readonly class = input<string>('');\n\n readonly value = model<FileList | null>(null);\n readonly fileChange = output<FileList>();\n readonly error = output<string>();\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly fileInputRef = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n readonly isDragOver = signal(false);\n\n private _onChange: (value: FileList | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: FileList | null): void {\n this.value.set(val ?? null);\n }\n\n registerOnChange(fn: (value: FileList | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly fileName = computed(() => {\n const files = this.value();\n if (!files || files.length === 0) return this.placeholder();\n if (files.length === 1) return files[0].name;\n return `${files.length} files selected`;\n });\n\n protected readonly labelClass = computed(() =>\n cn(\n fileInputVariants({ variant: this.variant(), size: this.size() }),\n this.isDragOver() && 'ring-2 ring-ring',\n this.class()\n )\n );\n\n onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n this.processFiles(input.files);\n }\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.isDisabled()) {\n this.isDragOver.set(true);\n }\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.isDragOver.set(false);\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragOver.set(false);\n if (!this.isDisabled() && event.dataTransfer?.files) {\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n clear(): void {\n this.value.set(null);\n this._onChange(null);\n const inputEl = this.fileInputRef()?.nativeElement;\n if (inputEl) inputEl.value = '';\n }\n\n private processFiles(files: FileList): void {\n const maxSize = this.maxSize();\n if (maxSize > 0) {\n for (let i = 0; i < files.length; i++) {\n if (files[i].size > maxSize) {\n this.error.emit(`File \"${files[i].name}\" exceeds maximum size of ${maxSize} bytes`);\n return;\n }\n }\n }\n this.value.set(files);\n this._onChange(files);\n this.fileChange.emit(files);\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const fieldsetVariants = cva('space-y-4', {\n variants: {\n variant: {\n default: '',\n bordered: 'rounded-lg border border-border p-4',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport type FieldsetVariant = 'default' | 'bordered';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { fieldsetVariants, type FieldsetVariant } from './fieldset.variants';\n\n@Directive({\n selector: 'fieldset[snyFieldset]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.disabled]': 'disabled() || null',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class SnyFieldsetDirective {\n readonly variant = input<FieldsetVariant>('default');\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(fieldsetVariants({ variant: this.variant() }), this.class())\n );\n}\n\n@Directive({\n selector: 'legend[snyFieldsetLegend]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFieldsetLegendDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('text-sm font-medium leading-none', this.class())\n );\n}\n\n@Directive({\n selector: '[snyFieldsetContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFieldsetContentDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('space-y-2', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const ratingVariants = cva(\n 'inline-flex items-center gap-0.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\n {\n variants: {\n size: {\n sm: '[&_svg]:w-4 [&_svg]:h-4',\n md: '[&_svg]:w-5 [&_svg]:h-5',\n lg: '[&_svg]:w-7 [&_svg]:h-7',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type RatingSize = 'sm' | 'md' | 'lg';\nexport type RatingVariant = 'star' | 'heart';\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { ratingVariants, type RatingSize, type RatingVariant } from './rating.variants';\n\ninterface StarState {\n index: number;\n fill: 'full' | 'half' | 'empty';\n}\n\n@Component({\n selector: 'sny-rating',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'slider',\n 'tabindex': '0',\n '[attr.aria-valuenow]': 'value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': '\"Rating\"',\n '[attr.aria-readonly]': 'readonly() || null',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n '(mouseleave)': 'onMouseLeave()',\n '(blur)': 'onTouched()',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyRatingComponent), multi: true },\n ],\n template: `\n @for (star of stars(); track star.index) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n [class]=\"starClass(star)\"\n (click)=\"onStarClick(star.index + 1)\"\n (mouseenter)=\"onStarHover(star.index + 1)\"\n >\n @if (ratingVariant() === 'star') {\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\" />\n } @else {\n <path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\" />\n }\n </svg>\n }\n `,\n})\nexport class SnyRatingComponent implements ControlValueAccessor {\n readonly value = model(0);\n readonly max = input(5);\n readonly readonly = input(false);\n readonly size = input<RatingSize>('md');\n readonly ratingVariant = input<RatingVariant>('star');\n readonly half = input(false);\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.readonly() || this._disabledByCva());\n\n readonly hoverValue = signal<number | null>(null);\n\n private _onChange: (value: number) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: number): void {\n this.value.set(val ?? 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly displayValue = computed(() => this.hoverValue() ?? this.value());\n\n readonly stars = computed<StarState[]>(() => {\n const display = this.displayValue();\n const m = this.max();\n return Array.from({ length: m }, (_, i) => {\n let fill: 'full' | 'half' | 'empty';\n if (i + 1 <= display) {\n fill = 'full';\n } else if (this.half() && i + 0.5 <= display) {\n fill = 'half';\n } else {\n fill = 'empty';\n }\n return { index: i, fill };\n });\n });\n\n protected readonly computedClass = computed(() =>\n cn(\n ratingVariants({ size: this.size() }),\n this.isDisabled() && 'pointer-events-none',\n this.class()\n )\n );\n\n starClass(star: StarState): string {\n const base = 'cursor-pointer transition-colors';\n switch (star.fill) {\n case 'full':\n return cn(base, 'fill-yellow-400 stroke-yellow-400');\n case 'half':\n return cn(base, 'fill-yellow-400/50 stroke-yellow-400');\n case 'empty':\n return cn(base, 'fill-none stroke-muted-foreground');\n }\n }\n\n onStarClick(index: number): void {\n if (this.isDisabled()) return;\n this.value.set(index);\n this._onChange(index);\n }\n\n onStarHover(index: number): void {\n if (this.isDisabled()) return;\n this.hoverValue.set(index);\n }\n\n onMouseLeave(): void {\n this.hoverValue.set(null);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.isDisabled()) return;\n const step = this.half() ? 0.5 : 1;\n let newVal: number | undefined;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newVal = Math.min(this.max(), this.value() + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newVal = Math.max(0, this.value() - step);\n break;\n case 'Home':\n event.preventDefault();\n newVal = 0;\n break;\n case 'End':\n event.preventDefault();\n newVal = this.max();\n break;\n }\n if (newVal !== undefined) {\n this.value.set(newVal);\n this._onChange(newVal);\n }\n }\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type NavbarVariant = 'default' | 'bordered' | 'floating';\n\n@Directive({\n selector: '[snyNavbar]',\n standalone: true,\n host: {\n 'role': 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyNavbarDirective {\n readonly variant = input<NavbarVariant>('default');\n readonly sticky = input(false);\n readonly ariaLabel = input<string>('Main navigation');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const base = 'flex items-center justify-between px-4 py-2 w-full bg-background';\n const variantClass =\n v === 'bordered' ? 'border-b border-border' :\n v === 'floating' ? 'mx-4 mt-2 rounded-lg border border-border shadow-sm' :\n '';\n const stickyClass = this.sticky() ? 'sticky top-0 z-50' : '';\n return cn(base, variantClass, stickyClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyNavbarBrand]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarBrandDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 font-bold text-lg', this.class()));\n}\n\n@Directive({\n selector: '[snyNavbarContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-1', this.class()));\n}\n\n@Directive({\n selector: '[snyNavbarEnd]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarEndDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 ml-auto', this.class()));\n}\n","import { ChangeDetectionStrategy, Component, Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_DRAWER = new InjectionToken<SnyDrawerLayoutComponent>('SnyDrawer');\n\n@Component({\n selector: '[snyDrawerLayout]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'snyDrawerLayout',\n providers: [{ provide: SNY_DRAWER, useExisting: SnyDrawerLayoutComponent }],\n host: {\n '[class]': 'computedClass()',\n },\n template: `\n <ng-content />\n @if (isOpen() && overlay()) {\n <div\n class=\"fixed inset-0 z-30 bg-black/50 transition-opacity\"\n (click)=\"close()\"\n ></div>\n }\n `,\n})\nexport class SnyDrawerLayoutComponent {\n readonly class = input<string>('');\n readonly overlay = input(true);\n readonly isOpen = signal(false);\n\n protected readonly computedClass = computed(() =>\n cn('relative flex h-full w-full overflow-hidden', this.class())\n );\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n}\n\n/** @deprecated Use SnyDrawerLayoutComponent instead */\nexport const SnyDrawerLayoutDirective = SnyDrawerLayoutComponent;\n\n@Directive({\n selector: '[snyDrawerContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyDrawerContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 overflow-auto', this.class())\n );\n}\n\nexport type DrawerSide = 'left' | 'right';\n\n@Directive({\n selector: '[snyDrawerSide]',\n standalone: true,\n host: {\n 'role': 'navigation',\n 'aria-label': 'Sidebar navigation',\n '[attr.aria-modal]': 'drawer.overlay() && drawer.isOpen() || null',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyDrawerSideDirective {\n protected readonly drawer = inject(SNY_DRAWER);\n readonly side = input<DrawerSide>('left');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const isOpen = this.drawer.isOpen();\n const s = this.side();\n const base = 'fixed inset-y-0 z-40 w-64 bg-background border-r border-border transition-transform duration-300 ease-in-out';\n const sideClass = s === 'left' ? 'left-0' : 'right-0 border-l border-r-0';\n const transformClass = isOpen\n ? 'translate-x-0'\n : s === 'left' ? '-translate-x-full' : 'translate-x-full';\n return cn(base, sideClass, transformClass, this.class());\n });\n}\n","import { cva } from 'class-variance-authority';\n\nexport const dividerVariants = cva('shrink-0 bg-border', {\n variants: {\n orientation: {\n horizontal: 'h-[1px] w-full',\n vertical: 'h-full w-[1px]',\n },\n variant: {\n solid: '',\n dashed: 'border-dashed',\n dotted: 'border-dotted',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n variant: 'solid',\n },\n});\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n dividerVariants,\n type DividerOrientation,\n type DividerVariant,\n} from './divider.variants';\n\n@Component({\n selector: 'sny-divider',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'separator',\n '[attr.aria-orientation]': 'orientation()',\n },\n template: `\n @if (hasLabel()) {\n <div [class]=\"labelContainerClass()\">\n <div [class]=\"lineClass()\"></div>\n <span class=\"px-2 text-xs text-muted-foreground\">{{ label() }}</span>\n <div [class]=\"lineClass()\"></div>\n </div>\n } @else {\n <div [class]=\"dividerClass()\"></div>\n }\n `,\n})\nexport class SnyDividerComponent {\n readonly orientation = input<DividerOrientation>('horizontal');\n readonly variant = input<DividerVariant>('solid');\n readonly label = input<string>('');\n readonly class = input<string>('');\n\n readonly hasLabel = computed(() => !!this.label());\n\n protected readonly dividerClass = computed(() =>\n cn(dividerVariants({ orientation: this.orientation(), variant: this.variant() }), this.class())\n );\n\n protected readonly lineClass = computed(() =>\n cn('flex-1 bg-border', this.orientation() === 'horizontal' ? 'h-[1px]' : 'w-[1px]')\n );\n\n protected readonly labelContainerClass = computed(() =>\n cn(\n 'flex items-center',\n this.orientation() === 'horizontal' ? 'flex-row' : 'flex-col',\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, contentChildren, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_STEPS = new InjectionToken<SnyStepsDirective>('SnySteps');\n\nexport type StepStatus = 'default' | 'active' | 'completed' | 'error';\nexport type StepsOrientation = 'horizontal' | 'vertical';\nexport type StepsSize = 'sm' | 'md' | 'lg';\n\n@Directive({\n selector: '[snyStep]',\n standalone: true,\n host: {\n 'role': 'listitem',\n '[class]': 'computedClass()',\n '[attr.aria-current]': 'status() === \"active\" ? \"step\" : null',\n },\n})\nexport class SnyStepDirective {\n readonly status = input<StepStatus>('default');\n readonly icon = input<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const s = this.status();\n const base = 'flex items-center gap-2';\n\n // Step indicator via before: pseudo-element\n const indicatorBase = 'before:flex before:items-center before:justify-center before:w-8 before:h-8 before:rounded-full before:border-2 before:text-xs before:shrink-0';\n\n const statusIndicator =\n s === 'completed' ? 'before:bg-primary before:border-primary before:text-primary-foreground before:content-[\"✓\"]' :\n s === 'active' ? 'before:border-primary before:text-primary before:content-[\"●\"]' :\n s === 'error' ? 'before:border-destructive before:text-destructive before:content-[\"!\"]' :\n 'before:border-muted-foreground/30 before:text-muted-foreground before:content-[\"○\"]';\n\n const statusClass =\n s === 'completed' ? 'text-primary' :\n s === 'active' ? 'text-primary font-medium' :\n s === 'error' ? 'text-destructive' :\n 'text-muted-foreground';\n\n return cn(base, indicatorBase, statusIndicator, statusClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snySteps]',\n standalone: true,\n exportAs: 'snySteps',\n providers: [{ provide: SNY_STEPS, useExisting: SnyStepsDirective }],\n host: {\n 'role': 'list',\n 'aria-label': 'Progress steps',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyStepsDirective {\n readonly orientation = input<StepsOrientation>('horizontal');\n readonly size = input<StepsSize>('md');\n readonly class = input<string>('');\n\n readonly steps = contentChildren(SnyStepDirective);\n\n readonly activeIndex = computed(() => {\n const s = this.steps();\n return s.findIndex((step) => step.status() === 'active');\n });\n\n protected readonly computedClass = computed(() => {\n const o = this.orientation();\n const s = this.size();\n const base = 'flex';\n const orientationClass = o === 'horizontal'\n ? 'flex-row items-center gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:flex-1 [&>*+*]:before:h-px [&>*+*]:before:bg-border [&>*+*]:before:mx-2 [&>*+*]:before:min-w-[2rem]'\n : 'flex-col gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:w-px [&>*+*]:before:h-4 [&>*+*]:before:bg-border [&>*+*]:before:ml-4';\n const sizeClass = s === 'sm' ? 'text-xs' : s === 'lg' ? 'text-base' : 'text-sm';\n return cn(base, orientationClass, sizeClass, this.class());\n });\n}\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_STAT = new InjectionToken<SnyStatDirective>('SnyStat');\n\nlet statIdCounter = 0;\n\n@Directive({\n selector: '[snyStat]',\n standalone: true,\n providers: [{ provide: SNY_STAT, useExisting: SnyStatDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatDirective {\n readonly class = input<string>('');\n readonly titleId = `sny-stat-title-${++statIdCounter}`;\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-0.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyStatTitle]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[id]': 'stat.titleId',\n },\n})\nexport class SnyStatTitleDirective {\n readonly class = input<string>('');\n readonly stat = inject(SNY_STAT);\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyStatValue]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-labelledby]': 'stat.titleId',\n },\n})\nexport class SnyStatValueDirective {\n readonly class = input<string>('');\n readonly stat = inject(SNY_STAT);\n protected readonly computedClass = computed(() =>\n cn('text-2xl font-bold', this.class())\n );\n}\n\nexport type StatDescriptionVariant = 'default' | 'success' | 'error';\n\n@Directive({\n selector: '[snyStatDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatDescriptionDirective {\n readonly variant = input<StatDescriptionVariant>('default');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'success' ? 'text-green-600 dark:text-green-400' :\n v === 'error' ? 'text-destructive' :\n 'text-muted-foreground';\n return cn('text-xs', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyStatFigure]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatFigureDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-muted-foreground', this.class())\n );\n}\n","import { Directive, InjectionToken, computed, contentChildren, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_TIMELINE = new InjectionToken<SnyTimelineDirective>('SnyTimeline');\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineConnect = 'start' | 'end' | 'both' | 'none';\nexport type TimelineMiddleVariant = 'default' | 'primary' | 'success' | 'error';\n\n@Directive({\n selector: '[snyTimelineItem]',\n standalone: true,\n host: { 'role': 'listitem', '[class]': 'computedClass()' },\n})\nexport class SnyTimelineItemDirective {\n readonly connect = input<TimelineConnect>('both');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('relative flex gap-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimelineStart]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTimelineStartDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground min-w-[80px] text-right', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimelineMiddle]',\n standalone: true,\n host: { '[class]': 'computedClass()', 'aria-hidden': 'true' },\n})\nexport class SnyTimelineMiddleDirective {\n readonly variant = input<TimelineMiddleVariant>('default');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'primary' ? 'bg-primary' :\n v === 'success' ? 'bg-green-600 dark:bg-green-500' :\n v === 'error' ? 'bg-destructive' :\n 'bg-border';\n return cn('flex flex-col items-center', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyTimelineEnd]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTimelineEndDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 pb-8', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimeline]',\n standalone: true,\n exportAs: 'snyTimeline',\n providers: [{ provide: SNY_TIMELINE, useExisting: SnyTimelineDirective }],\n host: {\n 'role': 'list',\n 'aria-label': 'Timeline',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyTimelineDirective {\n readonly orientation = input<TimelineOrientation>('vertical');\n readonly class = input<string>('');\n\n readonly items = contentChildren(SnyTimelineItemDirective);\n\n protected readonly computedClass = computed(() => {\n const o = this.orientation();\n return cn(\n 'relative',\n o === 'vertical' ? 'flex flex-col' : 'flex flex-row',\n this.class()\n );\n });\n}\n","import { cva } from 'class-variance-authority';\n\nexport const kbdVariants = cva(\n 'pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium text-muted-foreground',\n {\n variants: {\n size: {\n sm: 'h-5 text-[10px]',\n md: 'h-6 text-xs',\n lg: 'h-7 text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type KbdSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { kbdVariants, type KbdSize } from './kbd.variants';\n\n@Directive({\n selector: 'kbd[snyKbd]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyKbdDirective {\n readonly size = input<KbdSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(kbdVariants({ size: this.size() }), this.class())\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type ListVariant = 'default' | 'bordered' | 'hover';\n\n@Directive({\n selector: '[snyList]',\n standalone: true,\n host: {\n 'role': 'list',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyListDirective {\n readonly variant = input<ListVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'bordered' ? 'divide-y divide-border border rounded-md' :\n v === 'hover' ? '[&>[snyListItem]]:hover:bg-accent' :\n '';\n return cn('flex flex-col', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyListItem]',\n standalone: true,\n host: {\n 'role': 'listitem',\n '[class]': 'computedClass()',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class SnyListItemDirective {\n readonly active = input(false);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-3 px-3 py-2 transition-colors',\n this.active() && 'bg-accent text-accent-foreground',\n this.disabled() && 'opacity-50 pointer-events-none',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyListItemIcon]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemIconDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0 text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyListItemContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 min-w-0', this.class())\n );\n}\n\n@Directive({\n selector: '[snyListItemAction]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemActionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const statusVariants = cva('inline-block rounded-full', {\n variants: {\n variant: {\n default: 'bg-primary',\n success: 'bg-green-500',\n warning: 'bg-yellow-500',\n error: 'bg-destructive',\n info: 'bg-blue-500',\n neutral: 'bg-muted-foreground',\n },\n size: {\n xs: 'h-1.5 w-1.5',\n sm: 'h-2 w-2',\n md: 'h-2.5 w-2.5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\nexport type StatusVariant = 'default' | 'success' | 'warning' | 'error' | 'info' | 'neutral';\nexport type StatusSize = 'xs' | 'sm' | 'md';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { statusVariants, type StatusVariant, type StatusSize } from './status.variants';\n\nconst variantLabels: Record<StatusVariant, string> = {\n default: 'Active',\n success: 'Online',\n warning: 'Away',\n error: 'Error',\n info: 'Info',\n neutral: 'Offline',\n};\n\n@Directive({\n selector: '[snyStatus]',\n standalone: true,\n host: {\n 'role': 'status',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyStatusDirective {\n readonly variant = input<StatusVariant>('default');\n readonly size = input<StatusSize>('md');\n readonly pulse = input(false);\n readonly class = input<string>('');\n\n protected readonly ariaLabel = computed(() => variantLabels[this.variant()]);\n\n protected readonly computedClass = computed(() =>\n cn(\n statusVariants({ variant: this.variant(), size: this.size() }),\n this.pulse() && 'animate-pulse',\n this.class()\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type IndicatorPosition = 'top-start' | 'top-center' | 'top-end' | 'middle-start' | 'middle-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';\nexport type IndicatorVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n\nconst positionMap: Record<IndicatorPosition, string> = {\n 'top-start': 'top-0 left-0 -translate-x-1/2 -translate-y-1/2',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 -translate-y-1/2',\n 'top-end': 'top-0 right-0 translate-x-1/2 -translate-y-1/2',\n 'middle-start': 'top-1/2 left-0 -translate-x-1/2 -translate-y-1/2',\n 'middle-end': 'top-1/2 right-0 translate-x-1/2 -translate-y-1/2',\n 'bottom-start': 'bottom-0 left-0 -translate-x-1/2 translate-y-1/2',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2',\n 'bottom-end': 'bottom-0 right-0 translate-x-1/2 translate-y-1/2',\n};\n\nconst variantMap: Record<IndicatorVariant, string> = {\n default: 'bg-primary text-primary-foreground',\n primary: 'bg-primary text-primary-foreground',\n secondary: 'bg-secondary text-secondary-foreground',\n success: 'bg-green-600 text-white dark:bg-green-500',\n warning: 'bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\n error: 'bg-destructive text-destructive-foreground',\n};\n\n@Directive({\n selector: '[snyIndicator]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyIndicatorDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('relative inline-flex', this.class())\n );\n}\n\n@Directive({\n selector: '[snyIndicatorBadge]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-label]': 'ariaLabel() || null',\n },\n})\nexport class SnyIndicatorBadgeDirective {\n readonly position = input<IndicatorPosition>('top-end');\n readonly variant = input<IndicatorVariant>('default');\n readonly ariaLabel = input<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute z-10 inline-flex items-center justify-center rounded-full text-xs font-bold min-w-[1.25rem] h-5 px-1',\n positionMap[this.position()],\n variantMap[this.variant()],\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type ChatBubbleAlign = 'start' | 'end';\nexport type ChatBubbleContentVariant = 'default' | 'primary' | 'secondary' | 'accent';\n\nexport const SNY_CHAT_BUBBLE = new InjectionToken<SnyChatBubbleDirective>('SnyChatBubble');\n\n@Directive({\n selector: '[snyChatBubble]',\n standalone: true,\n providers: [{ provide: SNY_CHAT_BUBBLE, useExisting: SnyChatBubbleDirective }],\n host: {\n 'role': 'article',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyChatBubbleDirective {\n readonly align = input<ChatBubbleAlign>('start');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex gap-3 mb-4',\n this.align() === 'end' && 'flex-row-reverse',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleAvatar]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleAvatarDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0 w-10 h-10 rounded-full overflow-hidden', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-xs text-muted-foreground mb-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleContentDirective {\n readonly variant = input<ChatBubbleContentVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'primary' ? 'bg-primary text-primary-foreground' :\n v === 'secondary' ? 'bg-blue-100 text-blue-900 dark:bg-blue-900 dark:text-blue-100' :\n v === 'accent' ? 'bg-violet-100 text-violet-900 dark:bg-violet-900 dark:text-violet-100' :\n 'bg-muted';\n return cn('rounded-lg px-3 py-2 text-sm max-w-[80%]', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyChatBubbleFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-xs text-muted-foreground mt-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleBody]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleBodyDirective {\n private readonly chatBubble = inject(SNY_CHAT_BUBBLE);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col',\n this.chatBubble.align() === 'end' && 'items-end',\n this.class()\n )\n );\n}\n","import {\n Directive, InjectionToken, computed, contentChildren, inject, input, signal, effect, OnDestroy,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_CAROUSEL = new InjectionToken<SnyCarouselDirective>('SnyCarousel');\n\n@Directive({\n selector: '[snyCarouselItem]',\n standalone: true,\n host: {\n 'role': 'group',\n '[attr.aria-roledescription]': '\"slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselItemDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('min-w-0 shrink-0 grow-0 basis-full pl-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[style.transform]': 'transformStyle()',\n },\n})\nexport class SnyCarouselContentDirective {\n private readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('flex -ml-4 transition-transform duration-300 ease-in-out', this.class())\n );\n\n protected readonly transformStyle = computed(() =>\n `translateX(-${this.carousel.currentIndex() * 100}%)`\n );\n}\n\n@Directive({\n selector: '[snyCarousel]',\n standalone: true,\n exportAs: 'snyCarousel',\n providers: [{ provide: SNY_CAROUSEL, useExisting: SnyCarouselDirective }],\n host: {\n 'role': 'region',\n '[attr.aria-roledescription]': '\"carousel\"',\n 'aria-label': 'Carousel',\n 'tabindex': '0',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyCarouselDirective implements OnDestroy {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly loop = input(false);\n readonly autoplay = input(0);\n readonly class = input<string>('');\n\n readonly items = contentChildren(SnyCarouselItemDirective, { descendants: true });\n readonly currentIndex = signal(0);\n readonly totalItems = computed(() => this.items().length);\n\n private autoplayInterval: ReturnType<typeof setInterval> | null = null;\n\n constructor() {\n effect(() => {\n const ms = this.autoplay();\n this.clearAutoplay();\n if (ms > 0) {\n this.autoplayInterval = setInterval(() => this.next(), ms);\n }\n });\n }\n\n next(): void {\n const total = this.totalItems();\n if (total === 0) return;\n this.currentIndex.update((i) => {\n if (i >= total - 1) return this.loop() ? 0 : i;\n return i + 1;\n });\n }\n\n prev(): void {\n const total = this.totalItems();\n if (total === 0) return;\n this.currentIndex.update((i) => {\n if (i <= 0) return this.loop() ? total - 1 : i;\n return i - 1;\n });\n }\n\n goTo(index: number): void {\n this.currentIndex.set(Math.max(0, Math.min(index, this.totalItems() - 1)));\n }\n\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.prev();\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.next();\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.clearAutoplay();\n }\n\n private clearAutoplay(): void {\n if (this.autoplayInterval) {\n clearInterval(this.autoplayInterval);\n this.autoplayInterval = null;\n }\n }\n\n protected readonly computedClass = computed(() =>\n cn('relative overflow-hidden', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselPrev]',\n standalone: true,\n host: {\n '(click)': 'carousel.prev()',\n '[attr.aria-label]': '\"Previous slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselPrevDirective {\n readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('absolute left-2 top-1/2 -translate-y-1/2 z-10', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselNext]',\n standalone: true,\n host: {\n '(click)': 'carousel.next()',\n '[attr.aria-label]': '\"Next slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselNextDirective {\n readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('absolute right-2 top-1/2 -translate-y-1/2 z-10', this.class())\n );\n}\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type DockPosition = 'bottom' | 'top';\n\n@Directive({\n selector: '[snyDock]',\n standalone: true,\n host: {\n 'role': 'toolbar',\n 'aria-label': 'Dock',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyDockDirective {\n readonly position = input<DockPosition>('bottom');\n readonly class = input<string>('');\n\n private readonly elRef = inject(ElementRef);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'fixed left-1/2 -translate-x-1/2 z-50 flex items-center gap-1 rounded-full border bg-background/80 backdrop-blur-sm px-3 py-2 shadow-lg',\n this.position() === 'bottom' ? 'bottom-4' : 'top-4',\n this.class()\n )\n );\n\n onKeydown(event: KeyboardEvent): void {\n const items = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[snyDockItem]')\n );\n if (items.length === 0) return;\n\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % items.length;\n break;\n case 'ArrowLeft':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + items.length) % items.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n }\n if (nextIndex !== null) {\n items[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyDockItem]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n },\n})\nexport class SnyDockItemDirective {\n readonly active = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full p-2 transition-all hover:scale-110',\n this.active() && 'bg-primary text-primary-foreground',\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_FAB = new InjectionToken<SnyFabDirective>('SnyFab');\nexport type FabPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\nexport type FabDirection = 'up' | 'down' | 'left' | 'right';\n\nconst positionMap: Record<FabPosition, string> = {\n 'bottom-right': 'fixed bottom-6 right-6',\n 'bottom-left': 'fixed bottom-6 left-6',\n 'top-right': 'fixed top-6 right-6',\n 'top-left': 'fixed top-6 left-6',\n};\n\n@Directive({\n selector: '[snyFab]',\n standalone: true,\n exportAs: 'snyFab',\n providers: [{ provide: SNY_FAB, useExisting: SnyFabDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyFabDirective {\n readonly position = input<FabPosition>('bottom-right');\n readonly direction = input<FabDirection>('up');\n readonly class = input<string>('');\n readonly isOpen = signal(false);\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n\n protected readonly computedClass = computed(() =>\n cn('z-50 flex flex-col items-center gap-2', positionMap[this.position()], this.class())\n );\n}\n\n@Directive({\n selector: '[snyFabTrigger]',\n standalone: true,\n host: {\n '(click)': 'fab.toggle()',\n '[attr.aria-expanded]': 'fab.isOpen()',\n '[attr.aria-haspopup]': '\"menu\"',\n 'aria-label': 'Quick actions',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFabTriggerDirective {\n readonly fab = inject(SNY_FAB);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg h-14 w-14 hover:bg-primary/90 transition-transform',\n this.fab.isOpen() && 'rotate-45',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyFabAction]',\n standalone: true,\n host: {\n 'role': 'menuitem',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFabActionDirective {\n readonly fab = inject(SNY_FAB);\n readonly ariaLabel = input<string>('');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-secondary text-secondary-foreground shadow-md h-10 w-10 transition-all',\n this.fab.isOpen() ? 'scale-100 opacity-100' : 'scale-0 opacity-0',\n this.class()\n )\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type RadialProgressSize = 'sm' | 'md' | 'lg';\nexport type RadialProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\nconst sizeMap: Record<RadialProgressSize, number> = { sm: 48, md: 72, lg: 96 };\n\nconst variantColorMap: Record<RadialProgressVariant, string> = {\n default: 'stroke-primary',\n success: 'stroke-green-600 dark:stroke-green-500',\n warning: 'stroke-yellow-500',\n error: 'stroke-destructive',\n info: 'stroke-blue-600 dark:stroke-blue-500',\n};\n\n@Component({\n selector: 'sny-radial-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'progressbar',\n '[attr.aria-valuenow]': 'value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[class]': '\"inline-flex items-center justify-center\"',\n },\n template: `\n <div class=\"relative\" [style.width.px]=\"svgSize()\" [style.height.px]=\"svgSize()\">\n <svg [attr.width]=\"svgSize()\" [attr.height]=\"svgSize()\" class=\"-rotate-90\">\n <circle\n [attr.cx]=\"svgSize() / 2\"\n [attr.cy]=\"svgSize() / 2\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n class=\"stroke-muted\"\n [attr.stroke-width]=\"thickness()\"\n />\n <circle\n [attr.cx]=\"svgSize() / 2\"\n [attr.cy]=\"svgSize() / 2\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n [class]=\"strokeClass()\"\n [attr.stroke-width]=\"thickness()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"offset()\"\n stroke-linecap=\"round\"\n class=\"transition-all duration-300\"\n />\n </svg>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <ng-content />\n </div>\n </div>\n `,\n})\nexport class SnyRadialProgressComponent {\n readonly value = input(0);\n readonly size = input<RadialProgressSize>('md');\n readonly thickness = input(4);\n readonly variant = input<RadialProgressVariant>('default');\n readonly class = input<string>('');\n\n readonly svgSize = computed(() => sizeMap[this.size()]);\n readonly radius = computed(() => (this.svgSize() - this.thickness()) / 2);\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\n readonly offset = computed(() => this.circumference() - (this.value() / 100) * this.circumference());\n\n readonly strokeClass = computed(() => variantColorMap[this.variant()]);\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\n@Component({\n selector: 'sny-diff',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '\"relative overflow-hidden select-none w-full\"',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'onPointerUp()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n <div class=\"relative w-full\" [style.aspect-ratio]=\"'16/9'\">\n <div class=\"absolute inset-0\">\n <ng-content select=\"[snyDiffAfter]\" />\n </div>\n <div class=\"absolute inset-0 overflow-hidden\" [style.width.%]=\"value()\">\n <ng-content select=\"[snyDiffBefore]\" />\n </div>\n <div\n class=\"absolute top-0 bottom-0 w-1 bg-foreground cursor-col-resize z-10\"\n [style.left.%]=\"value()\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuenow]=\"value()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-label=\"Comparison slider\"\n >\n <div class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-foreground/80 flex items-center justify-center text-background text-xs\">\n ⇔\n </div>\n </div>\n </div>\n `,\n})\nexport class SnyDiffComponent {\n readonly value = model(50);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly class = input<string>('');\n\n readonly isDragging = signal(false);\n\n onPointerDown(event: PointerEvent): void {\n this.isDragging.set(true);\n (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n this.updateValue(event);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (!this.isDragging()) return;\n this.updateValue(event);\n }\n\n onPointerUp(): void {\n this.isDragging.set(false);\n }\n\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.value.update((v) => Math.max(0, v - 5));\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.value.update((v) => Math.min(100, v + 5));\n break;\n }\n }\n\n private updateValue(event: PointerEvent): void {\n const target = (event.currentTarget as HTMLElement).closest('sny-diff');\n if (!target) return;\n const rect = target.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const pct = Math.max(0, Math.min(100, (x / rect.width) * 100));\n this.value.set(Math.round(pct));\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const linkVariants = cva(\n 'inline-flex items-center gap-1 underline-offset-4 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\n {\n variants: {\n variant: {\n default: 'text-foreground underline hover:text-foreground/80',\n primary: 'text-primary underline hover:text-primary/80',\n secondary: 'text-muted-foreground underline hover:text-foreground',\n hover: 'text-foreground no-underline hover:underline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type LinkVariant = 'default' | 'primary' | 'secondary' | 'hover';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { linkVariants, type LinkVariant } from './link.variants';\n\n@Directive({\n selector: 'a[snyLink]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyLinkDirective {\n readonly variant = input<LinkVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(linkVariants({ variant: this.variant() }), this.class())\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport type { CalendarDay, CalendarMode, DateRange } from './calendar.types';\n\n@Component({\n selector: 'sny-calendar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClass()',\n '(keydown)': 'onKeydown($event)',\n 'role': 'application',\n 'aria-label': 'Calendar',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyCalendarComponent), multi: true },\n ],\n template: `\n @if (showNavigation()) {\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"prevMonth()\"\n aria-label=\"Previous month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n <span class=\"text-sm font-semibold tracking-tight\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"nextMonth()\"\n aria-label=\"Next month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n }\n\n <div role=\"grid\" class=\"grid grid-cols-7 gap-1\">\n @for (dayName of weekDays; track dayName) {\n <div class=\"text-center text-xs text-muted-foreground font-medium h-9 flex items-center justify-center\" role=\"columnheader\">{{ dayName }}</div>\n }\n @for (day of days(); track day.date.getTime()) {\n <button\n type=\"button\"\n [class]=\"dayClass(day)\"\n [disabled]=\"day.isDisabled\"\n [attr.aria-selected]=\"day.isSelected || day.isRangeStart || day.isRangeEnd || null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n [attr.aria-label]=\"day.date.toLocaleDateString(locale(), { month: 'long', day: 'numeric', year: 'numeric' })\"\n role=\"gridcell\"\n (click)=\"onDayClick(day.date)\"\n (mouseenter)=\"onDayHover(day.date)\"\n (mouseleave)=\"onDayHover(null)\"\n >\n {{ day.day }}\n </button>\n }\n </div>\n `,\n})\nexport class SnyCalendarComponent implements ControlValueAccessor {\n // Existing inputs (backwards compatible)\n readonly value = model<Date | null>(null);\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly locale = input('en-US');\n readonly class = input<string>('');\n\n // Range mode inputs\n readonly mode = input<CalendarMode>('single');\n readonly rangeValue = model<DateRange | null>(null);\n readonly showNavigation = input(true);\n readonly initialViewDate = input<Date | undefined>(undefined);\n readonly borderless = input(false);\n\n readonly hostClass = computed(() =>\n this.borderless()\n ? 'inline-block p-3 bg-background'\n : 'inline-block p-4 rounded-md border border-border bg-background'\n );\n\n // Internal state\n private readonly _disabledByCva = signal(false);\n readonly hoveredDate = signal<Date | null>(null);\n readonly viewDate = linkedSignal(() => this.initialViewDate() ?? new Date());\n readonly weekDays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n // CVA\n private _onChange: (value: unknown) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: unknown): void {\n if (this.mode() === 'range') {\n this.rangeValue.set((val as DateRange) ?? null);\n const range = val as DateRange | null;\n if (range?.start) {\n this.viewDate.set(new Date(range.start.getFullYear(), range.start.getMonth(), 1));\n }\n } else {\n this.value.set((val as Date) ?? null);\n if (val) {\n const d = val as Date;\n this.viewDate.set(new Date(d.getFullYear(), d.getMonth(), 1));\n }\n }\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Computed\n readonly monthYearLabel = computed(() => {\n const d = this.viewDate();\n return d.toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' });\n });\n\n readonly days = computed<CalendarDay[]>(() => {\n const view = this.viewDate();\n const year = view.getFullYear();\n const month = view.getMonth();\n const today = new Date();\n const selected = this.value();\n const rangeVal = this.mode() === 'range' ? this.rangeValue() : null;\n const hovered = this.hoveredDate();\n const minDate = this.min();\n const maxDate = this.max();\n\n const firstDay = new Date(year, month, 1);\n const startDay = firstDay.getDay();\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const daysInPrevMonth = new Date(year, month, 0).getDate();\n\n const days: CalendarDay[] = [];\n\n for (let i = startDay - 1; i >= 0; i--) {\n const date = new Date(year, month - 1, daysInPrevMonth - i);\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n for (let d = 1; d <= daysInMonth; d++) {\n const date = new Date(year, month, d);\n days.push(this.createDay(date, true, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n const remaining = 42 - days.length;\n for (let d = 1; d <= remaining; d++) {\n const date = new Date(year, month + 1, d);\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n return days;\n });\n\n // Navigation\n prevMonth(): void {\n this.viewDate.set(new Date(\n this.viewDate().getFullYear(),\n this.viewDate().getMonth() - 1,\n 1,\n ));\n }\n\n nextMonth(): void {\n this.viewDate.set(new Date(\n this.viewDate().getFullYear(),\n this.viewDate().getMonth() + 1,\n 1,\n ));\n }\n\n // Click handler\n onDayClick(date: Date): void {\n if (this.mode() === 'single') {\n this.value.set(date);\n this._onChange(date);\n this.onTouched();\n return;\n }\n\n // Range mode\n const current = this.rangeValue();\n if (!current?.start || (current.start && current.end)) {\n this.rangeValue.set({ start: date, end: null });\n } else {\n const start = current.start;\n if (date < start) {\n this.rangeValue.set({ start: date, end: start });\n } else if (this.isSameDay(date, start)) {\n this.rangeValue.set({ start: date, end: date });\n } else {\n this.rangeValue.set({ start, end: date });\n }\n }\n this._onChange(this.rangeValue());\n this.onTouched();\n }\n\n // Hover handler\n onDayHover(date: Date | null): void {\n if (this.mode() === 'range') {\n this.hoveredDate.set(date);\n }\n }\n\n // Keyboard\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.navigateDays(-1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.navigateDays(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.navigateDays(-7);\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.navigateDays(7);\n break;\n }\n }\n\n // Styling\n dayClass(day: CalendarDay): string {\n const isEndpoint = day.isRangeStart || day.isRangeEnd;\n return cn(\n 'inline-flex items-center justify-center text-sm h-9 w-9 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n // Shape\n day.isRangeStart && !day.isRangeEnd ? 'rounded-l-md rounded-r-none' :\n day.isRangeEnd && !day.isRangeStart ? 'rounded-r-md rounded-l-none' :\n day.isInRange || day.isRangePreview ? 'rounded-none' :\n 'rounded-md',\n // Base text color\n !day.isCurrentMonth && 'text-muted-foreground/40',\n day.isCurrentMonth && !day.isSelected && !isEndpoint && 'text-foreground',\n // Today indicator\n day.isToday && !day.isSelected && !isEndpoint && 'bg-accent text-accent-foreground font-semibold',\n // Single selected\n day.isSelected && this.mode() === 'single' && 'bg-primary text-primary-foreground font-semibold shadow-sm',\n // Range endpoints\n isEndpoint && 'bg-primary text-primary-foreground font-semibold shadow-sm',\n // Range band\n day.isInRange && 'bg-primary/10 text-foreground',\n day.isRangePreview && 'bg-primary/5 text-foreground',\n // States\n day.isDisabled && 'opacity-40 cursor-not-allowed pointer-events-none',\n !day.isDisabled && !day.isSelected && !isEndpoint && 'hover:bg-accent hover:text-accent-foreground cursor-pointer',\n );\n }\n\n // Private helpers\n private navigateDays(offset: number): void {\n const current = this.value() ?? new Date();\n const next = new Date(current);\n next.setDate(next.getDate() + offset);\n this.value.set(next);\n this._onChange(next);\n this.viewDate.set(new Date(next.getFullYear(), next.getMonth(), 1));\n }\n\n private createDay(\n date: Date,\n isCurrentMonth: boolean,\n today: Date,\n selected: Date | null,\n rangeVal: DateRange | null,\n hoveredDate: Date | null,\n minDate: Date | undefined,\n maxDate: Date | undefined,\n ): CalendarDay {\n const isToday = this.isSameDay(date, today);\n const isSelected = selected ? this.isSameDay(date, selected) : false;\n const isDisabled =\n this._disabledByCva() ||\n (minDate ? date < minDate : false) ||\n (maxDate ? date > maxDate : false);\n\n let isRangeStart = false;\n let isRangeEnd = false;\n let isInRange = false;\n let isRangePreview = false;\n\n if (rangeVal) {\n const { start, end } = rangeVal;\n if (start) isRangeStart = this.isSameDay(date, start);\n if (end) isRangeEnd = this.isSameDay(date, end);\n if (start && end) {\n isInRange = date > start && date < end && !isRangeStart && !isRangeEnd;\n }\n // Preview: start set, no end yet, user hovering\n if (start && !end && hoveredDate && !this.isSameDay(hoveredDate, start)) {\n const previewStart = hoveredDate > start ? start : hoveredDate;\n const previewEnd = hoveredDate > start ? hoveredDate : start;\n if (date > previewStart && date < previewEnd) {\n isRangePreview = true;\n }\n if (this.isSameDay(date, hoveredDate) && !isRangeStart) {\n isRangePreview = true;\n }\n }\n }\n\n return {\n date, day: date.getDate(), isCurrentMonth, isToday, isSelected, isDisabled,\n isRangeStart, isRangeEnd, isInRange, isRangePreview,\n };\n }\n\n private isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const datePickerTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { SnyCalendarComponent } from '../calendar/calendar.component';\nimport { datePickerTriggerVariants, type DatePickerSize } from './date-picker.variants';\n\n@Component({\n selector: 'sny-date-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyCalendarComponent],\n host: { class: 'relative inline-block w-full' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyDatePickerComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\n {{ displayValue() || placeholder() }}\n </span>\n <div class=\"flex items-center gap-1 shrink-0\">\n @if (clearable() && value()) {\n <button\n type=\"button\"\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\n </div>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose date\"\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\n >\n <sny-calendar\n [(value)]=\"internalValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n (valueChange)=\"onDateSelected($event)\"\n />\n </div>\n }\n `,\n})\nexport class SnyDatePickerComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model<Date | null>(null);\n readonly placeholder = input('Pick a date...');\n readonly size = input<DatePickerSize>('md');\n readonly locale = input('en-US');\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly clearable = input(true);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n readonly open = signal(false);\n readonly internalValue = signal<Date | null>(null);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: Date | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n // CVA\n writeValue(val: Date | null): void {\n this.value.set(val ?? null);\n this.internalValue.set(val ?? null);\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Display\n readonly displayValue = computed(() => {\n const d = this.value();\n if (!d) return '';\n return d.toLocaleDateString(this.locale(), this.dateFormat());\n });\n\n protected readonly triggerClass = computed(() =>\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n // Actions\n onDateSelected(date: Date | null): void {\n this.value.set(date);\n this._onChange(date);\n this.close();\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n this.value.set(null);\n this.internalValue.set(null);\n this._onChange(null);\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.internalValue.set(this.value());\n this.updateDropdownPosition();\n this.open.set(true);\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n // Positioning (combobox pattern)\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { SnyCalendarComponent } from '../calendar/calendar.component';\nimport type { DateRange, DatePickerPreset } from '../calendar/calendar.types';\nimport { datePickerTriggerVariants, type DatePickerSize } from '../date-picker/date-picker.variants';\n\n@Component({\n selector: 'sny-date-range-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyCalendarComponent],\n host: { class: 'relative inline-block w-full' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyDateRangePickerComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\n {{ displayValue() || placeholder() }}\n </span>\n <div class=\"flex items-center gap-1 shrink-0\">\n @if (clearable() && value()?.start) {\n <button\n type=\"button\"\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date range\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\n </div>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose date range\"\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\n >\n <div class=\"flex flex-col sm:flex-row\">\n <!-- Presets sidebar -->\n @if (presets().length > 0) {\n <div class=\"border-b sm:border-b-0 sm:border-r border-border p-3 space-y-0.5 sm:min-w-[150px]\">\n <p class=\"px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">Presets</p>\n @for (preset of presets(); track preset.label) {\n <button\n type=\"button\"\n class=\"w-full text-left px-3 py-2 text-sm rounded-md hover:bg-accent hover:text-accent-foreground transition-colors cursor-pointer\"\n (mousedown)=\"selectPreset(preset); $event.preventDefault()\"\n >\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <!-- Calendar(s) -->\n <div class=\"flex flex-col sm:flex-row\">\n @if (dualCalendar()) {\n <!-- Left calendar -->\n <div class=\"p-1\">\n <div class=\"flex items-center justify-between px-3 py-2\">\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"prevMonth()\"\n aria-label=\"Previous month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n <span class=\"text-sm font-semibold tracking-tight\">{{ leftMonthLabel() }}</span>\n <div class=\"w-8\"></div>\n </div>\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n [showNavigation]=\"false\"\n [borderless]=\"true\"\n [initialViewDate]=\"leftViewDate()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n </div>\n <div class=\"border-t sm:border-t-0 sm:border-l border-border\"></div>\n <!-- Right calendar -->\n <div class=\"p-1\">\n <div class=\"flex items-center justify-between px-3 py-2\">\n <div class=\"w-8\"></div>\n <span class=\"text-sm font-semibold tracking-tight\">{{ rightMonthLabel() }}</span>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"nextMonth()\"\n aria-label=\"Next month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n [showNavigation]=\"false\"\n [borderless]=\"true\"\n [initialViewDate]=\"rightViewDate()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n </div>\n } @else {\n <!-- Single calendar -->\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n }\n </div>\n </div>\n </div>\n }\n `,\n})\nexport class SnyDateRangePickerComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model<DateRange | null>(null);\n readonly placeholder = input('Pick a date range...');\n readonly size = input<DatePickerSize>('md');\n readonly locale = input('en-US');\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n readonly separator = input(' \\u2014 ');\n readonly dualCalendar = input(false);\n readonly presets = input<DatePickerPreset[]>([]);\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly clearable = input(true);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n readonly open = signal(false);\n readonly internalRange = signal<DateRange | null>(null);\n readonly leftViewDate = signal(new Date());\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: DateRange | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n // Computed\n readonly rightViewDate = computed(() => {\n const d = this.leftViewDate();\n return new Date(d.getFullYear(), d.getMonth() + 1, 1);\n });\n\n readonly leftMonthLabel = computed(() =>\n this.leftViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\n );\n\n readonly rightMonthLabel = computed(() =>\n this.rightViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\n );\n\n readonly displayValue = computed(() => {\n const r = this.value();\n if (!r?.start) return '';\n const fmt = (d: Date) => d.toLocaleDateString(this.locale(), this.dateFormat());\n if (!r.end) return fmt(r.start) + this.separator() + '...';\n return fmt(r.start) + this.separator() + fmt(r.end);\n });\n\n protected readonly triggerClass = computed(() =>\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n // CVA\n writeValue(val: DateRange | null): void {\n this.value.set(val ?? null);\n this.internalRange.set(val ?? null);\n if (val?.start) {\n this.leftViewDate.set(new Date(val.start.getFullYear(), val.start.getMonth(), 1));\n }\n }\n\n registerOnChange(fn: (value: DateRange | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Actions\n onRangeChanged(range: DateRange | null): void {\n this.internalRange.set(range);\n if (range?.start && range?.end) {\n this.value.set(range);\n this._onChange(range);\n setTimeout(() => this.close(), 150);\n }\n }\n\n selectPreset(preset: DatePickerPreset): void {\n this.value.set(preset.range);\n this.internalRange.set(preset.range);\n this._onChange(preset.range);\n this.close();\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n this.value.set(null);\n this.internalRange.set(null);\n this._onChange(null);\n }\n\n prevMonth(): void {\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() - 1, 1));\n }\n\n nextMonth(): void {\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() + 1, 1));\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.internalRange.set(this.value());\n this.updateDropdownPosition();\n this.open.set(true);\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n // Positioning\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n","import type { RGB, HSL, HSV, ColorFormat } from './color-picker.types';\n\nexport function hexToRgb(hex: string): RGB | null {\n const clean = hex.replace(/^#/, '');\n if (!/^[0-9a-fA-F]+$/.test(clean)) return null;\n if (clean.length === 3) {\n const r = parseInt(clean[0] + clean[0], 16);\n const g = parseInt(clean[1] + clean[1], 16);\n const b = parseInt(clean[2] + clean[2], 16);\n return { r, g, b };\n }\n if (clean.length === 6) {\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n return { r, g, b };\n }\n return null;\n}\n\nexport function rgbToHex(rgb: RGB): string {\n const toHex = (n: number) => Math.round(Math.max(0, Math.min(255, n))).toString(16).padStart(2, '0');\n return `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`;\n}\n\nexport function rgbToHsl(rgb: RGB): HSL {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n case g: h = ((b - r) / d + 2) / 6; break;\n case b: h = ((r - g) / d + 4) / 6; break;\n }\n }\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n };\n}\n\nexport function hslToRgb(hsl: HSL): RGB {\n const h = hsl.h / 360;\n const s = hsl.s / 100;\n const l = hsl.l / 100;\n\n if (s === 0) {\n const v = Math.round(l * 255);\n return { r: v, g: v, b: v };\n }\n\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n return {\n r: Math.round(hue2rgb(p, q, h + 1 / 3) * 255),\n g: Math.round(hue2rgb(p, q, h) * 255),\n b: Math.round(hue2rgb(p, q, h - 1 / 3) * 255),\n };\n}\n\nexport function rgbToHsv(rgb: RGB): HSV {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h = 0;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\n switch (max) {\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n case g: h = ((b - r) / d + 2) / 6; break;\n case b: h = ((r - g) / d + 4) / 6; break;\n }\n }\n\n return { h: Math.round(h * 360), s, v };\n}\n\nexport function hsvToRgb(hsv: HSV): RGB {\n const h = hsv.h / 360;\n const s = hsv.s;\n const v = hsv.v;\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n let r: number, g: number, b: number;\n switch (i % 6) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n}\n\nexport function parseColor(input: string): RGB | null {\n const trimmed = input.trim().toLowerCase();\n\n // HEX\n if (trimmed.startsWith('#')) {\n return hexToRgb(trimmed);\n }\n\n // rgb(r, g, b)\n const rgbMatch = trimmed.match(/^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/);\n if (rgbMatch) {\n return {\n r: Math.min(255, parseInt(rgbMatch[1])),\n g: Math.min(255, parseInt(rgbMatch[2])),\n b: Math.min(255, parseInt(rgbMatch[3])),\n };\n }\n\n // hsl(h, s%, l%)\n const hslMatch = trimmed.match(/^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/);\n if (hslMatch) {\n return hslToRgb({\n h: Math.min(360, parseInt(hslMatch[1])),\n s: Math.min(100, parseInt(hslMatch[2])),\n l: Math.min(100, parseInt(hslMatch[3])),\n });\n }\n\n return null;\n}\n\nexport function formatColor(rgb: RGB, format: ColorFormat, alpha?: number): string {\n switch (format) {\n case 'hex':\n return rgbToHex(rgb);\n case 'rgb':\n if (alpha !== undefined && alpha < 1) {\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha.toFixed(2)})`;\n }\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n case 'hsl': {\n const hsl = rgbToHsl(rgb);\n if (alpha !== undefined && alpha < 1) {\n return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${alpha.toFixed(2)})`;\n }\n return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;\n }\n }\n}\n\nexport function isValidColor(input: string): boolean {\n return parseColor(input) !== null;\n}\n","import { cva } from 'class-variance-authority';\n\nexport const colorPickerTriggerVariants = cva(\n 'inline-flex w-full items-center gap-2 whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport type { ColorFormat, ColorPickerPreset, HSV, RGB } from './color-picker.types';\nimport {\n rgbToHex,\n rgbToHsv,\n hsvToRgb,\n parseColor,\n formatColor,\n isValidColor,\n} from './color-picker.utils';\nimport { colorPickerTriggerVariants, type ColorPickerSize } from './color-picker.variants';\n\n@Component({\n selector: 'sny-color-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'relative inline-block' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyColorPickerComponent), multi: true },\n ],\n template: `\n <!-- Trigger -->\n @if (!inline()) {\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <div\n class=\"h-5 w-5 rounded-sm border border-border shrink-0\"\n [style.backgroundColor]=\"displayValue()\"\n ></div>\n <span class=\"truncate\">{{ displayValue() || placeholder() }}</span>\n </button>\n }\n\n <!-- Panel -->\n @if (open() || inline()) {\n <div\n #panelEl\n [class]=\"panelClass()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Color picker\"\n >\n <!-- Saturation/Brightness Panel -->\n <div\n #satPanel\n class=\"relative h-36 w-full rounded-md cursor-crosshair overflow-hidden\"\n [style.background]=\"saturationBg()\"\n (mousedown)=\"onSatPanelDown($event)\"\n (touchstart)=\"onSatPanelTouch($event)\"\n >\n <div class=\"absolute inset-0 bg-gradient-to-t from-black to-transparent\"></div>\n <div\n class=\"absolute h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\n [style.left.%]=\"hsv().s * 100\"\n [style.top.%]=\"(1 - hsv().v) * 100\"\n ></div>\n </div>\n\n <!-- Hue Slider -->\n <div\n #hueTrack\n class=\"relative h-3 w-full rounded-full cursor-pointer mt-3\"\n style=\"background: linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%))\"\n (mousedown)=\"onHueDown($event)\"\n (touchstart)=\"onHueTouch($event)\"\n >\n <div\n class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\n [style.left.%]=\"hsv().h / 360 * 100\"\n [style.backgroundColor]=\"'hsl(' + hsv().h + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <!-- Input + Format + Copy + Actions -->\n @if (showInput()) {\n <div class=\"mt-3 flex items-center gap-1.5\">\n <div\n class=\"h-8 w-8 rounded-sm border border-border shrink-0\"\n [style.backgroundColor]=\"displayValue()\"\n ></div>\n <input\n class=\"flex-1 min-w-0 h-8 rounded-sm border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-ring\"\n [value]=\"inputValue()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"commitInput()\"\n (keydown.enter)=\"commitInput()\"\n />\n <button\n type=\"button\"\n class=\"h-8 px-1.5 rounded-sm border border-border text-[10px] font-semibold uppercase hover:bg-accent transition-colors shrink-0\"\n (click)=\"cycleFormat()\"\n title=\"Switch format\"\n >\n {{ currentFormat() }}\n </button>\n <button\n type=\"button\"\n class=\"h-8 w-8 inline-flex items-center justify-center rounded-sm border border-border hover:bg-accent transition-colors shrink-0\"\n (click)=\"copyColor()\"\n [title]=\"copied() ? 'Copied!' : 'Copy color'\"\n >\n @if (copied()) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"/></svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>\n }\n </button>\n </div>\n <!-- Secondary actions row -->\n <div class=\"mt-2 flex items-center gap-1.5\">\n @if (showEyeDropper() && hasEyeDropper) {\n <button\n type=\"button\"\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\n (click)=\"pickFromScreen()\"\n title=\"Pick from screen\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m2 22 1-1h3l9-9\"/><path d=\"M3 21v-3l9-9\"/><path d=\"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z\"/></svg>\n Pick\n </button>\n }\n @if (showFavorites()) {\n <button\n type=\"button\"\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\n (click)=\"addFavorite()\"\n title=\"Save to favorites\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"/></svg>\n Save\n </button>\n }\n </div>\n }\n\n <!-- Presets -->\n @for (preset of presets(); track $index) {\n <div class=\"mt-3\">\n @if (preset.label) {\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">{{ preset.label }}</p>\n }\n <div class=\"flex flex-wrap gap-1.5\">\n @for (color of preset.colors; track color) {\n <button\n type=\"button\"\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\n [style.backgroundColor]=\"color\"\n [title]=\"color\"\n (click)=\"selectColor(color)\"\n ></button>\n }\n </div>\n </div>\n }\n\n <!-- Favorites -->\n @if (showFavorites() && favorites().length > 0) {\n <div class=\"mt-3\">\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">Favorites</p>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (fav of favorites(); track fav) {\n <div class=\"relative group\">\n <button\n type=\"button\"\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\n [style.backgroundColor]=\"fav\"\n [title]=\"fav\"\n (click)=\"selectColor(fav)\"\n ></button>\n <button\n type=\"button\"\n class=\"absolute -top-1 -right-1 h-3.5 w-3.5 rounded-full bg-destructive text-destructive-foreground text-[8px] leading-none items-center justify-center hidden group-hover:inline-flex\"\n (click)=\"removeFavorite(fav); $event.stopPropagation()\"\n >×</button>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n `,\n})\nexport class SnyColorPickerComponent implements ControlValueAccessor, OnDestroy {\n // Public API\n readonly value = model('#000000');\n readonly format = input<ColorFormat>('hex');\n readonly presets = input<ColorPickerPreset[]>([]);\n readonly showInput = input(true);\n readonly showEyeDropper = input(true);\n readonly showFavorites = input(false);\n readonly inline = input(false);\n readonly disabled = input(false);\n readonly placeholder = input('Pick a color...');\n readonly size = input<ColorPickerSize>('md');\n readonly class = input<string>('');\n\n readonly colorChange = output<string>();\n readonly formatChange = output<ColorFormat>();\n\n // Internal state\n readonly hsv = signal<HSV>({ h: 0, s: 0, v: 0 });\n readonly currentFormat = signal<ColorFormat>('hex');\n readonly inputValue = signal('');\n readonly open = signal(false);\n readonly favorites = signal<string[]>([]);\n readonly copied = signal(false);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly panelRef = viewChild<ElementRef<HTMLDivElement>>('panelEl');\n private readonly satPanelRef = viewChild<ElementRef<HTMLDivElement>>('satPanel');\n private readonly hueTrackRef = viewChild<ElementRef<HTMLDivElement>>('hueTrack');\n private readonly elRef = inject(ElementRef);\n\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\n private upHandler: (() => void) | null = null;\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n readonly hasEyeDropper = typeof window !== 'undefined' && 'EyeDropper' in window;\n\n // Computed\n readonly rgb = computed<RGB>(() => hsvToRgb(this.hsv()));\n readonly displayValue = computed(() =>\n formatColor(this.rgb(), this.currentFormat())\n );\n\n readonly saturationBg = computed(() =>\n `linear-gradient(to right, #fff, hsl(${this.hsv().h}, 100%, 50%))`\n );\n\n protected readonly triggerClass = computed(() =>\n cn(colorPickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n protected readonly panelClass = computed(() =>\n this.inline()\n ? 'inline-block p-3 rounded-md border border-border bg-popover text-popover-foreground w-60'\n : 'fixed z-50 p-3 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95 w-60'\n );\n\n constructor() {\n // Sync format input\n effect(() => {\n const fmt = this.format();\n untracked(() => this.currentFormat.set(fmt));\n });\n\n // Sync value → HSV when value changes externally\n effect(() => {\n const val = this.value();\n untracked(() => {\n const rgb = parseColor(val);\n if (rgb) {\n this.hsv.set(rgbToHsv(rgb));\n this.inputValue.set(this.displayValue());\n }\n });\n });\n }\n\n // CVA\n writeValue(val: string): void {\n this.value.set(val ?? '#000000');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Emit helper\n private emitColor(): void {\n const formatted = this.displayValue();\n this.value.set(formatted);\n this.inputValue.set(formatted);\n this._onChange(formatted);\n this.colorChange.emit(formatted);\n }\n\n // Saturation panel\n onSatPanelDown(event: MouseEvent): void {\n event.preventDefault();\n this.updateSatFromPosition(event.clientX, event.clientY);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\n this.updateSatFromPosition(x, y);\n });\n }\n\n onSatPanelTouch(event: TouchEvent): void {\n this.updateSatFromPosition(event.touches[0].clientX, event.touches[0].clientY);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\n this.updateSatFromPosition(x, y);\n }, true);\n }\n\n private updateSatFromPosition(clientX: number, clientY: number): void {\n const panel = this.satPanelRef()?.nativeElement;\n if (!panel) return;\n const rect = panel.getBoundingClientRect();\n const s = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const v = Math.max(0, Math.min(1, 1 - (clientY - rect.top) / rect.height));\n this.hsv.update((prev) => ({ ...prev, s, v }));\n this.emitColor();\n }\n\n // Hue slider\n onHueDown(event: MouseEvent): void {\n event.preventDefault();\n this.updateHueFromPosition(event.clientX);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateHueFromPosition(x);\n });\n }\n\n onHueTouch(event: TouchEvent): void {\n this.updateHueFromPosition(event.touches[0].clientX);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateHueFromPosition(x);\n }, true);\n }\n\n private updateHueFromPosition(clientX: number): void {\n const track = this.hueTrackRef()?.nativeElement;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const h = Math.round(percent * 360);\n this.hsv.update((prev) => ({ ...prev, h }));\n this.emitColor();\n }\n\n // Drag helpers (same pattern as slider component)\n private startDrag(handler: (e: MouseEvent | TouchEvent) => void, touch = false): void {\n this.removeDragListeners();\n this.moveHandler = handler;\n this.upHandler = () => {\n this.onTouched();\n this.removeDragListeners();\n };\n if (touch) {\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\n document.addEventListener('touchend', this.upHandler);\n } else {\n document.addEventListener('mousemove', this.moveHandler as EventListener);\n document.addEventListener('mouseup', this.upHandler);\n }\n }\n\n private removeDragListeners(): void {\n if (this.moveHandler) {\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\n this.moveHandler = null;\n }\n if (this.upHandler) {\n document.removeEventListener('mouseup', this.upHandler);\n document.removeEventListener('touchend', this.upHandler);\n this.upHandler = null;\n }\n }\n\n // Input\n onInputChange(event: Event): void {\n this.inputValue.set((event.target as HTMLInputElement).value);\n }\n\n commitInput(): void {\n const val = this.inputValue().trim();\n if (isValidColor(val)) {\n const rgb = parseColor(val)!;\n this.hsv.set(rgbToHsv(rgb));\n this.emitColor();\n } else {\n this.inputValue.set(this.displayValue());\n }\n }\n\n // Format\n cycleFormat(): void {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsl'];\n const idx = formats.indexOf(this.currentFormat());\n const next = formats[(idx + 1) % formats.length];\n this.currentFormat.set(next);\n this.inputValue.set(this.displayValue());\n this.formatChange.emit(next);\n }\n\n // Copy\n copyColor(): void {\n navigator.clipboard.writeText(this.displayValue());\n this.copied.set(true);\n setTimeout(() => this.copied.set(false), 2000);\n }\n\n // Presets & favorites\n selectColor(color: string): void {\n const rgb = parseColor(color);\n if (rgb) {\n this.hsv.set(rgbToHsv(rgb));\n this.emitColor();\n }\n }\n\n addFavorite(): void {\n const hex = rgbToHex(this.rgb());\n this.favorites.update((favs) =>\n favs.includes(hex) ? favs : [...favs, hex]\n );\n }\n\n removeFavorite(color: string): void {\n this.favorites.update((favs) => favs.filter((f) => f !== color));\n }\n\n // EyeDropper\n async pickFromScreen(): Promise<void> {\n if (!this.hasEyeDropper) return;\n try {\n const dropper = new (window as any).EyeDropper();\n const result = await dropper.open();\n this.selectColor(result.sRGBHex);\n } catch {\n // User cancelled\n }\n }\n\n // Popover\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.open.set(true);\n this.addPositionListeners();\n setTimeout(() => this.updatePanelPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removePositionListeners();\n }\n\n private updatePanelPosition(): void {\n if (this.inline()) return;\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const panel = this.panelRef()?.nativeElement;\n if (panel) {\n panel.style.top = `${rect.bottom + 4}px`;\n panel.style.left = `${rect.left}px`;\n }\n }\n\n private addPositionListeners(): void {\n this.removePositionListeners();\n this.scrollHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\n this.resizeHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removePositionListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n\n ngOnDestroy(): void {\n this.removeDragListeners();\n this.removePositionListeners();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const otpCellVariants = cva(\n 'text-center font-mono font-semibold border border-border bg-background rounded-md transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed',\n {\n variants: {\n size: {\n sm: 'h-9 w-9 text-sm',\n md: 'h-11 w-11 text-lg',\n lg: 'h-14 w-14 text-2xl',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type OtpInputSize = 'sm' | 'md' | 'lg';\nexport type OtpInputType = 'number' | 'alphanumeric';\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n linkedSignal,\n model,\n output,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { otpCellVariants, type OtpInputSize, type OtpInputType } from './otp-input.variants';\n\n@Component({\n selector: 'sny-otp-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyOtpInputComponent), multi: true },\n ],\n template: `\n <div\n role=\"group\"\n [attr.aria-label]=\"'OTP input, ' + length() + ' digits'\"\n class=\"flex items-center gap-2\"\n >\n @for (digit of digits(); track $index; let i = $index) {\n @if (separator() !== null && i === separator() && i > 0) {\n <span class=\"text-muted-foreground text-lg select-none\" aria-hidden=\"true\">—</span>\n }\n <input\n #inputEl\n [type]=\"mask() ? 'password' : 'text'\"\n [inputMode]=\"type() === 'number' ? 'numeric' : 'text'\"\n [attr.pattern]=\"type() === 'number' ? '[0-9]' : '[a-zA-Z0-9]'\"\n maxlength=\"1\"\n autocomplete=\"one-time-code\"\n [value]=\"digit\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [class]=\"cellClass(i)\"\n [attr.aria-label]=\"'Digit ' + (i + 1) + ' of ' + length()\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeydown($event, i)\"\n (paste)=\"onPaste($event, i)\"\n (focus)=\"focusedIndex.set(i)\"\n (blur)=\"onBlur()\"\n />\n }\n </div>\n `,\n})\nexport class SnyOtpInputComponent implements ControlValueAccessor {\n // Public API\n readonly length = input(6);\n readonly type = input<OtpInputType>('number');\n readonly size = input<OtpInputSize>('md');\n readonly disabled = input(false);\n readonly mask = input(false);\n readonly autoFocus = input(true);\n readonly placeholder = input('');\n readonly separator = input<number | null>(null);\n readonly status = input<'idle' | 'loading' | 'success' | 'error'>('idle');\n readonly value = model('');\n\n readonly completed = output<string>();\n\n // Internal state\n readonly digits = linkedSignal<string[]>(() => Array(this.length()).fill(''));\n readonly focusedIndex = signal(-1);\n readonly inputRefs = viewChildren<ElementRef<HTMLInputElement>>('inputEl');\n\n private readonly _disabledByCva = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva() || this.status() === 'loading');\n\n private _onChange: (value: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n // Computed\n readonly fullValue = computed(() => this.digits().join(''));\n readonly isComplete = computed(() => {\n const d = this.digits();\n return d.length === this.length() && d.every((c) => c !== '');\n });\n\n constructor() {\n // Sync value → digits when value changes externally (e.g. reset)\n effect(() => {\n const val = this.value();\n untracked(() => {\n const chars = val.split('').slice(0, this.length());\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\n const current = this.digits();\n if (padded.join('') !== current.join('')) {\n this.digits.set(padded);\n }\n });\n });\n\n afterNextRender(() => {\n if (this.autoFocus()) {\n this.focusInput(0);\n }\n });\n }\n\n // CVA\n writeValue(val: string): void {\n const str = val ?? '';\n this.value.set(str);\n const chars = str.split('').slice(0, this.length());\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\n this.digits.set(padded);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Cell class\n cellClass(index: number): string {\n const isFocused = this.focusedIndex() === index;\n const hasValue = this.digits()[index] !== '';\n const st = this.status();\n return cn(\n otpCellVariants({ size: this.size() }),\n st === 'idle' && isFocused && 'border-primary ring-2 ring-ring',\n st === 'idle' && hasValue && !isFocused && 'border-primary/50',\n st === 'loading' && 'border-muted-foreground/30 opacity-70',\n st === 'success' && 'border-green-500 bg-green-500/5',\n st === 'error' && 'border-destructive bg-destructive/5 animate-shake',\n );\n }\n\n // Input handler\n onInput(event: Event, index: number): void {\n const input = event.target as HTMLInputElement;\n const char = input.value.slice(-1);\n\n if (!this.isValidChar(char)) {\n input.value = this.digits()[index];\n return;\n }\n\n this.setDigit(index, char);\n\n if (index < this.length() - 1) {\n this.focusInput(index + 1);\n }\n\n this.emitValue();\n }\n\n // Keyboard handler\n onKeydown(event: KeyboardEvent, index: number): void {\n switch (event.key) {\n case 'Backspace':\n event.preventDefault();\n if (this.digits()[index] !== '') {\n this.setDigit(index, '');\n this.emitValue();\n } else if (index > 0) {\n this.setDigit(index - 1, '');\n this.focusInput(index - 1);\n this.emitValue();\n }\n break;\n\n case 'Delete':\n event.preventDefault();\n this.setDigit(index, '');\n this.emitValue();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (index > 0) this.focusInput(index - 1);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (index < this.length() - 1) this.focusInput(index + 1);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusInput(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.focusInput(this.length() - 1);\n break;\n }\n }\n\n // Paste handler\n onPaste(event: ClipboardEvent, index: number): void {\n event.preventDefault();\n const text = event.clipboardData?.getData('text') ?? '';\n const chars = text.split('').filter((c) => this.isValidChar(c));\n\n if (chars.length === 0) return;\n\n const newDigits = [...this.digits()];\n let lastFilledIndex = index;\n\n for (let i = 0; i < chars.length && index + i < this.length(); i++) {\n newDigits[index + i] = chars[i];\n lastFilledIndex = index + i;\n }\n\n this.digits.set(newDigits);\n\n const nextIndex = Math.min(lastFilledIndex + 1, this.length() - 1);\n this.focusInput(nextIndex);\n this.emitValue();\n }\n\n // Blur\n onBlur(): void {\n this.focusedIndex.set(-1);\n this._onTouched();\n }\n\n // Helpers\n private setDigit(index: number, char: string): void {\n this.digits.update((d) => {\n const next = [...d];\n next[index] = char;\n return next;\n });\n }\n\n private emitValue(): void {\n const val = this.fullValue();\n this.value.set(val);\n this._onChange(val);\n\n if (this.isComplete()) {\n this.completed.emit(val);\n }\n }\n\n private focusInput(index: number): void {\n const refs = this.inputRefs();\n if (refs[index]) {\n const el = refs[index].nativeElement;\n el.focus();\n el.select();\n }\n }\n\n private isValidChar(char: string): boolean {\n if (!char || char.length !== 1) return false;\n if (this.type() === 'number') return /^[0-9]$/.test(char);\n return /^[a-zA-Z0-9]$/.test(char);\n }\n\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { SnyInputDirective } from '../input/input.directive';\nimport { SNY_DIALOG_DATA } from '../modal/dialog.service';\nimport type { Command, CommandGroup, CommandPaletteConfig } from './command-palette.types';\n\n@Component({\n selector: 'sny-command-palette',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyInputDirective],\n host: {\n '(keydown)': 'onKeydown($event)',\n 'class': 'block',\n },\n styles: `\n :host {\n display: block;\n background-color: var(--sny-background);\n border: 1px solid var(--sny-border);\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n overflow: hidden;\n }\n `,\n template: `\n <!-- Search -->\n <div class=\"flex items-center gap-2 border-b border-border px-4 py-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"text-muted-foreground shrink-0\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\n <input\n #searchInput\n snyInput\n class=\"border-none shadow-none h-8 px-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n [placeholder]=\"config.placeholder ?? 'Type a command...'\"\n [value]=\"query()\"\n (input)=\"onQueryChange(searchInput.value)\"\n />\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">Esc</kbd>\n </div>\n\n <!-- Results -->\n <div class=\"max-h-[300px] overflow-y-auto p-2 sny-scrollbar\">\n @if (flatResults().length === 0) {\n <p class=\"py-6 text-center text-sm text-muted-foreground\">\n {{ config.emptyText ?? 'No results found.' }}\n </p>\n } @else {\n @for (group of filteredGroups(); track group.name) {\n @if (group.name) {\n <p class=\"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">{{ group.name }}</p>\n }\n @for (cmd of group.commands; track cmd.id) {\n @let idx = flatIndex(cmd);\n <button\n [attr.data-cmd-idx]=\"idx\"\n [class]=\"\n 'w-full text-left rounded-sm px-3 py-2 text-sm transition-colors flex items-center gap-3 cursor-pointer ' +\n (idx === activeIndex()\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent/50')\n \"\n (click)=\"execute(cmd)\"\n (mouseenter)=\"activeIndex.set(idx)\"\n >\n @if (cmd.icon) {\n <span class=\"shrink-0 w-5 text-center text-muted-foreground\" [innerHTML]=\"cmd.icon\"></span>\n }\n <div class=\"flex-1 min-w-0\">\n <span class=\"block truncate font-medium\">{{ cmd.label }}</span>\n @if (cmd.description) {\n <span class=\"block text-xs text-muted-foreground truncate\">{{ cmd.description }}</span>\n }\n </div>\n @if (cmd.shortcut) {\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">{{ cmd.shortcut }}</kbd>\n }\n </button>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n <div class=\"border-t border-border px-4 py-2\">\n <div class=\"flex items-center gap-3 text-xs text-muted-foreground\">\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&uarr;&darr;</kbd>\n Navigate\n </span>\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&crarr;</kbd>\n Execute\n </span>\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">Esc</kbd>\n Close\n </span>\n </div>\n </div>\n `,\n})\nexport class SnyCommandPaletteComponent {\n readonly config = inject<CommandPaletteConfig>(SNY_DIALOG_DATA);\n private readonly dialogRef = inject(DialogRef);\n private readonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\n readonly query = signal('');\n readonly activeIndex = signal(0);\n\n readonly filteredGroups = computed<CommandGroup[]>(() => {\n const q = this.query().toLowerCase().trim();\n const commands = this.config.commands.filter((cmd) => {\n if (cmd.disabled) return false;\n if (!q) return true;\n return (\n cmd.label.toLowerCase().includes(q) ||\n cmd.description?.toLowerCase().includes(q) ||\n cmd.keywords?.some((k) => k.toLowerCase().includes(q))\n );\n });\n\n const groups = new Map<string, Command[]>();\n for (const cmd of commands) {\n const group = cmd.group ?? '';\n if (!groups.has(group)) groups.set(group, []);\n groups.get(group)!.push(cmd);\n }\n\n return [...groups.entries()].map(([name, cmds]) => ({ name, commands: cmds }));\n });\n\n readonly flatResults = computed(() =>\n this.filteredGroups().flatMap((g) => g.commands)\n );\n\n constructor() {\n afterNextRender(() => {\n this.searchInput()?.nativeElement.focus();\n });\n }\n\n onQueryChange(value: string): void {\n this.query.set(value);\n this.activeIndex.set(0);\n }\n\n flatIndex(cmd: Command): number {\n return this.flatResults().indexOf(cmd);\n }\n\n execute(cmd: Command): void {\n this.dialogRef.close();\n cmd.action();\n }\n\n onKeydown(event: KeyboardEvent): void {\n const results = this.flatResults();\n const len = results.length;\n if (len === 0 && event.key !== 'Escape') return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update((i) => (i + 1) % len);\n this.scrollActiveIntoView();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update((i) => (i - 1 + len) % len);\n this.scrollActiveIntoView();\n break;\n case 'Enter':\n event.preventDefault();\n const active = results[this.activeIndex()];\n if (active) this.execute(active);\n break;\n }\n }\n\n private scrollActiveIntoView(): void {\n requestAnimationFrame(() => {\n const el = document.querySelector(`[data-cmd-idx=\"${this.activeIndex()}\"]`);\n el?.scrollIntoView({ block: 'nearest' });\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SnyDialogService } from '../modal/dialog.service';\nimport type { SnyDialogRef } from '../modal/dialog-ref';\nimport { SnyCommandPaletteComponent } from './command-palette.component';\nimport type { CommandPaletteConfig } from './command-palette.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SnyCommandPaletteService {\n private readonly dialogService = inject(SnyDialogService);\n private isOpen = false;\n\n open(config: CommandPaletteConfig): SnyDialogRef<void> | null {\n if (this.isOpen) return null;\n this.isOpen = true;\n\n const ref = this.dialogService.open<SnyCommandPaletteComponent, void>(\n SnyCommandPaletteComponent,\n {\n width: config.width ?? '32rem',\n data: config,\n }\n );\n\n ref.closed.subscribe(() => {\n this.isOpen = false;\n });\n\n return ref;\n }\n\n close(): void {\n if (this.isOpen) {\n this.dialogService.closeAll();\n }\n }\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport type { AbstractControl } from '@angular/forms';\n\nexport type ValidatorHintVariant = 'error' | 'success' | 'warning' | 'info';\n\n@Directive({\n selector: '[snyValidator]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyValidatorDirective {\n readonly control = input<AbstractControl | null>(null);\n readonly state = input<'default' | 'error' | 'success' | 'warning'>('default');\n readonly class = input<string>('');\n\n readonly errors = computed(() => this.control()?.errors ?? null);\n readonly showErrors = computed(() => {\n const c = this.control();\n return c ? c.touched && c.invalid : false;\n });\n\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-1 mt-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyValidatorHint]',\n standalone: true,\n host: {\n 'role': 'alert',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyValidatorHintDirective {\n readonly when = input<string>('');\n readonly type = input<ValidatorHintVariant>('error');\n /** @deprecated Use `type` instead */\n readonly variant = input<ValidatorHintVariant | undefined>(undefined);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant() ?? this.type();\n const variantClass =\n v === 'success' ? 'text-green-600 dark:text-green-400' :\n v === 'warning' ? 'text-amber-600 dark:text-amber-400' :\n v === 'info' ? 'text-blue-600 dark:text-blue-400' :\n 'text-destructive';\n return cn('text-xs', variantClass, this.class());\n });\n}\n","/*\n * Public API Surface of @sonny-ui/core\n */\n\n// Utils\nexport { cn } from './lib/core/utils/cn';\nexport { cva, type VariantProps } from './lib/core/utils/cva-types';\n\n// Providers\nexport { provideSonnyUI, SNY_CONFIG, type SonnyConfig } from './lib/core/providers/sonny-config';\nexport { ThemeService, type Theme } from './lib/core/providers/theme.service';\n\n// Button\nexport * from './lib/button';\n\n// Card\nexport * from './lib/card';\n\n// Input\nexport * from './lib/input';\n\n// Toast\nexport * from './lib/toast';\n\n// Modal/Dialog\nexport * from './lib/modal';\n\n// Accordion\nexport * from './lib/accordion';\n\n// Avatar\nexport * from './lib/avatar';\n\n// Badge\nexport * from './lib/badge';\n\n// Breadcrumb\nexport * from './lib/breadcrumb';\n\n// Button Group\nexport * from './lib/button-group';\n\n// Checkbox\nexport * from './lib/checkbox';\n\n// Combobox\nexport * from './lib/combobox';\n\n// Skeleton\nexport * from './lib/skeleton';\n\n// Radio\nexport * from './lib/radio';\n\n// Switch\nexport * from './lib/switch';\n\n// Toggle\nexport * from './lib/toggle';\n\n// Slider\nexport * from './lib/slider';\n\n// Loader\nexport * from './lib/loader';\n\n// Tabs\nexport * from './lib/tabs';\n\n// Select\nexport * from './lib/select';\n\n// Table\nexport * from './lib/table';\n\n// Data Table\nexport * from './lib/data-table';\n\n// Sheet\nexport * from './lib/sheet';\n\n// Alert\nexport * from './lib/alert';\n\n// Textarea\nexport * from './lib/textarea';\n\n// Progress\nexport * from './lib/progress';\n\n// Tooltip\nexport * from './lib/tooltip';\n\n// Dropdown/Menu\nexport * from './lib/dropdown';\n\n// File Input\nexport * from './lib/file-input';\n\n// Fieldset\nexport * from './lib/fieldset';\n\n// Rating\nexport * from './lib/rating';\n\n// Navbar\nexport * from './lib/navbar';\n\n// Drawer\nexport * from './lib/drawer';\n\n// Pagination\nexport * from './lib/pagination';\n\n// Divider\nexport * from './lib/divider';\n\n// Steps\nexport * from './lib/steps';\n\n// Stat\nexport * from './lib/stat';\n\n// Timeline\nexport * from './lib/timeline';\n\n// Kbd\nexport * from './lib/kbd';\n\n// List\nexport * from './lib/list';\n\n// Status\nexport * from './lib/status';\n\n// Indicator\nexport * from './lib/indicator';\n\n// Chat Bubble\nexport * from './lib/chat-bubble';\n\n// Carousel\nexport * from './lib/carousel';\n\n// Dock\nexport * from './lib/dock';\n\n// FAB\nexport * from './lib/fab';\n\n// Radial Progress\nexport * from './lib/radial-progress';\n\n// Diff\nexport * from './lib/diff';\n\n// Link\nexport * from './lib/link';\n\n// Calendar\nexport * from './lib/calendar';\n\n// Date Picker\nexport * from './lib/date-picker';\n\n// Date Range Picker\nexport * from './lib/date-range-picker';\n\n// Color Picker\nexport * from './lib/color-picker';\n\n// OTP Input\nexport * from './lib/otp-input';\n\n// Command Palette\nexport * from './lib/command-palette';\n\n// Validator\nexport * from './lib/validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["positionMap"],"mappings":"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"}
1
+ {"version":3,"file":"sonny-ui-core.mjs","sources":["../../../projects/core/src/lib/core/utils/cn.ts","../../../projects/core/src/lib/core/providers/theme.service.ts","../../../projects/core/src/lib/core/providers/sonny-config.ts","../../../projects/core/src/lib/button/button.variants.ts","../../../projects/core/src/lib/button/button.directive.ts","../../../projects/core/src/lib/card/card.variants.ts","../../../projects/core/src/lib/card/card.directives.ts","../../../projects/core/src/lib/input/input.variants.ts","../../../projects/core/src/lib/input/input.directive.ts","../../../projects/core/src/lib/input/label.directive.ts","../../../projects/core/src/lib/toast/toast.service.ts","../../../projects/core/src/lib/toast/toast.variants.ts","../../../projects/core/src/lib/toast/toaster.component.ts","../../../projects/core/src/lib/modal/dialog-ref.ts","../../../projects/core/src/lib/modal/dialog.types.ts","../../../projects/core/src/lib/modal/dialog.service.ts","../../../projects/core/src/lib/modal/dialog.directives.ts","../../../projects/core/src/lib/accordion/accordion.directives.ts","../../../projects/core/src/lib/avatar/avatar.variants.ts","../../../projects/core/src/lib/avatar/avatar.component.ts","../../../projects/core/src/lib/badge/badge.variants.ts","../../../projects/core/src/lib/badge/badge.directive.ts","../../../projects/core/src/lib/breadcrumb/breadcrumb.directives.ts","../../../projects/core/src/lib/button-group/button-group.variants.ts","../../../projects/core/src/lib/button-group/button-group.directive.ts","../../../projects/core/src/lib/checkbox/checkbox.variants.ts","../../../projects/core/src/lib/checkbox/checkbox.directive.ts","../../../projects/core/src/lib/combobox/combobox.variants.ts","../../../projects/core/src/lib/combobox/combobox.component.ts","../../../projects/core/src/lib/skeleton/skeleton.variants.ts","../../../projects/core/src/lib/skeleton/skeleton.directive.ts","../../../projects/core/src/lib/radio/radio.variants.ts","../../../projects/core/src/lib/radio/radio.directive.ts","../../../projects/core/src/lib/switch/switch.variants.ts","../../../projects/core/src/lib/switch/switch.component.ts","../../../projects/core/src/lib/toggle/toggle.variants.ts","../../../projects/core/src/lib/toggle/toggle.directive.ts","../../../projects/core/src/lib/slider/slider.variants.ts","../../../projects/core/src/lib/slider/slider.component.ts","../../../projects/core/src/lib/loader/loader.variants.ts","../../../projects/core/src/lib/loader/loader.component.ts","../../../projects/core/src/lib/tabs/tabs.directives.ts","../../../projects/core/src/lib/tabs/tabs.variants.ts","../../../projects/core/src/lib/select/select.variants.ts","../../../projects/core/src/lib/select/select.component.ts","../../../projects/core/src/lib/table/table.variants.ts","../../../projects/core/src/lib/table/table.directives.ts","../../../projects/core/src/lib/pagination/pagination.variants.ts","../../../projects/core/src/lib/pagination/pagination.component.ts","../../../projects/core/src/lib/dropdown/dropdown.variants.ts","../../../projects/core/src/lib/dropdown/dropdown.directives.ts","../../../projects/core/src/lib/data-table/data-table.directives.ts","../../../projects/core/src/lib/data-table/data-table.component.ts","../../../projects/core/src/lib/sheet/sheet-ref.ts","../../../projects/core/src/lib/sheet/sheet.types.ts","../../../projects/core/src/lib/sheet/sheet.service.ts","../../../projects/core/src/lib/sheet/sheet.directives.ts","../../../projects/core/src/lib/alert/alert.variants.ts","../../../projects/core/src/lib/alert/alert.directives.ts","../../../projects/core/src/lib/textarea/textarea.variants.ts","../../../projects/core/src/lib/textarea/textarea.directive.ts","../../../projects/core/src/lib/progress/progress.variants.ts","../../../projects/core/src/lib/progress/progress.component.ts","../../../projects/core/src/lib/tooltip/tooltip.variants.ts","../../../projects/core/src/lib/tooltip/tooltip.directive.ts","../../../projects/core/src/lib/file-input/file-input.variants.ts","../../../projects/core/src/lib/file-input/file-input.component.ts","../../../projects/core/src/lib/fieldset/fieldset.variants.ts","../../../projects/core/src/lib/fieldset/fieldset.directives.ts","../../../projects/core/src/lib/rating/rating.variants.ts","../../../projects/core/src/lib/rating/rating.component.ts","../../../projects/core/src/lib/navbar/navbar.directives.ts","../../../projects/core/src/lib/drawer/drawer.directives.ts","../../../projects/core/src/lib/divider/divider.variants.ts","../../../projects/core/src/lib/divider/divider.component.ts","../../../projects/core/src/lib/steps/steps.directives.ts","../../../projects/core/src/lib/stat/stat.directives.ts","../../../projects/core/src/lib/timeline/timeline.directives.ts","../../../projects/core/src/lib/kbd/kbd.variants.ts","../../../projects/core/src/lib/kbd/kbd.directive.ts","../../../projects/core/src/lib/list/list.directives.ts","../../../projects/core/src/lib/status/status.variants.ts","../../../projects/core/src/lib/status/status.directive.ts","../../../projects/core/src/lib/indicator/indicator.directives.ts","../../../projects/core/src/lib/chat-bubble/chat-bubble.directives.ts","../../../projects/core/src/lib/carousel/carousel.directives.ts","../../../projects/core/src/lib/dock/dock.directives.ts","../../../projects/core/src/lib/fab/fab.directives.ts","../../../projects/core/src/lib/radial-progress/radial-progress.component.ts","../../../projects/core/src/lib/diff/diff.component.ts","../../../projects/core/src/lib/link/link.variants.ts","../../../projects/core/src/lib/link/link.directive.ts","../../../projects/core/src/lib/calendar/calendar.component.ts","../../../projects/core/src/lib/date-picker/date-picker.variants.ts","../../../projects/core/src/lib/date-picker/date-picker.component.ts","../../../projects/core/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/core/src/lib/color-picker/color-picker.utils.ts","../../../projects/core/src/lib/color-picker/color-picker.variants.ts","../../../projects/core/src/lib/color-picker/color-picker.component.ts","../../../projects/core/src/lib/otp-input/otp-input.variants.ts","../../../projects/core/src/lib/otp-input/otp-input.component.ts","../../../projects/core/src/lib/command-palette/command-palette.component.ts","../../../projects/core/src/lib/command-palette/command-palette.service.ts","../../../projects/core/src/lib/number-input/number-input.variants.ts","../../../projects/core/src/lib/number-input/number-input.component.ts","../../../projects/core/src/lib/avatar-group/avatar-group.component.ts","../../../projects/core/src/lib/tag-input/tag-input.variants.ts","../../../projects/core/src/lib/tag-input/tag-input.component.ts","../../../projects/core/src/lib/popover/popover.directives.ts","../../../projects/core/src/lib/validator/validator.directives.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/sonny-ui-core.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { Injectable, signal, computed, inject, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { SNY_CONFIG } from './sonny-config';\n\nexport type Theme = 'light' | 'dark' | 'corporate';\n\nconst STORAGE_KEY = 'sny-theme';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly config = inject(SNY_CONFIG);\n\n private readonly _theme = signal<Theme>('light');\n\n readonly theme = this._theme.asReadonly();\n readonly isDark = computed(() => this._theme() === 'dark');\n\n constructor() {\n this.setTheme(this.resolveInitialTheme());\n }\n\n setTheme(theme: Theme): void {\n this._theme.set(theme);\n\n if (!this.isBrowser) return;\n\n localStorage.setItem(STORAGE_KEY, theme);\n\n const root = this.document.documentElement;\n root.classList.remove('dark');\n root.removeAttribute('data-theme');\n\n if (theme === 'dark') {\n root.classList.add('dark');\n root.setAttribute('data-theme', 'dark');\n } else if (theme !== 'light') {\n root.setAttribute('data-theme', theme);\n }\n }\n\n toggleDark(): void {\n this.setTheme(this._theme() === 'dark' ? 'light' : 'dark');\n }\n\n private resolveInitialTheme(): Theme {\n if (this.isBrowser) {\n const stored = localStorage.getItem(STORAGE_KEY) as Theme | null;\n if (stored) return stored;\n }\n\n const defaultTheme = this.config.defaultTheme ?? 'light';\n\n if (defaultTheme === 'system') {\n if (this.isBrowser && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return 'light';\n }\n\n return defaultTheme;\n }\n}\n","import {\n type EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { ThemeService } from './theme.service';\n\nexport interface SonnyConfig {\n prefix?: string;\n defaultTheme?: 'light' | 'dark' | 'corporate' | 'system';\n}\n\nconst DEFAULT_CONFIG: SonnyConfig = { prefix: 'sny', defaultTheme: 'light' };\n\nexport const SNY_CONFIG = new InjectionToken<SonnyConfig>('SNY_CONFIG', {\n providedIn: 'root',\n factory: () => DEFAULT_CONFIG,\n});\n\nexport function provideSonnyUI(config: Partial<SonnyConfig> = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: SNY_CONFIG, useValue: { ...DEFAULT_CONFIG, ...config } },\n provideEnvironmentInitializer(() => inject(ThemeService)),\n ]);\n}\n","import { cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-border bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n sm: 'h-9 rounded-sm px-3',\n md: 'h-10 px-4 py-2',\n lg: 'h-11 rounded-sm px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\nexport type ButtonSize = 'sm' | 'md' | 'lg' | 'icon';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { buttonVariants, type ButtonVariant, type ButtonSize } from './button.variants';\n\n@Directive({\n selector: 'button[snyBtn], a[snyBtn]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-disabled]': 'disabled() || loading() || null',\n '[attr.disabled]': 'disabled() || loading() || null',\n '[attr.tabindex]': '(disabled() || loading()) ? -1 : null',\n },\n})\nexport class SnyButtonDirective {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('md');\n readonly disabled = input(false);\n readonly loading = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.loading() && 'cursor-wait opacity-70',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const cardVariants = cva(\n 'rounded-sm text-card-foreground',\n {\n variants: {\n variant: {\n default: 'bg-card border border-border',\n outline: 'border-2 border-border bg-transparent',\n elevated: 'bg-card shadow-lg',\n ghost: 'bg-transparent',\n },\n padding: {\n none: '',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'none',\n },\n }\n);\n\nexport type CardVariant = 'default' | 'outline' | 'elevated' | 'ghost';\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { cardVariants, type CardVariant, type CardPadding } from './card.variants';\n\n@Directive({\n selector: '[snyCard]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardDirective {\n readonly variant = input<CardVariant>('default');\n readonly padding = input<CardPadding>('none');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(cardVariants({ variant: this.variant(), padding: this.padding() }), this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-1.5 p-6', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-2xl font-semibold leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('p-6 pt-0', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCardFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCardFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex items-center p-6 pt-0', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const inputVariants = cva(\n 'flex w-full rounded-sm border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-green-500 focus-visible:ring-green-500',\n },\n inputSize: {\n sm: 'h-9 text-xs',\n md: 'h-10',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n inputSize: 'md',\n },\n }\n);\n\nexport const labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n {\n variants: {\n variant: {\n default: '',\n error: 'text-destructive',\n success: 'text-green-600',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type InputVariant = 'default' | 'error' | 'success';\nexport type InputSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { inputVariants, type InputVariant, type InputSize } from './input.variants';\n\n@Directive({\n selector: 'input[snyInput], textarea[snyInput]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\n '[attr.aria-describedby]': 'ariaDescribedBy() || null',\n },\n})\nexport class SnyInputDirective {\n readonly variant = input<InputVariant>('default');\n readonly inputSize = input<InputSize>('md');\n readonly class = input<string>('');\n readonly ariaDescribedBy = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n inputVariants({ variant: this.variant(), inputSize: this.inputSize() }),\n this.class()\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { labelVariants, type InputVariant } from './input.variants';\n\n@Directive({\n selector: 'label[snyLabel]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyLabelDirective {\n readonly variant = input<InputVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(labelVariants({ variant: this.variant() }), this.class())\n );\n}\n","import { Injectable, signal, computed } from '@angular/core';\nimport type { ToastConfig, ToastData } from './toast.variants';\n\n@Injectable({ providedIn: 'root' })\nexport class SnyToastService {\n private readonly _toasts = signal<ToastData[]>([]);\n private readonly _timers = new Map<string, ReturnType<typeof setTimeout>>();\n private _idCounter = 0;\n\n readonly toasts = this._toasts.asReadonly();\n readonly count = computed(() => this._toasts().length);\n\n show(config: ToastConfig): string {\n const id = `sny-toast-${++this._idCounter}`;\n const toast: ToastData = {\n id,\n variant: 'default',\n duration: 5000,\n ...config,\n };\n\n this._toasts.update(toasts => [...toasts, toast]);\n\n if (toast.duration && toast.duration > 0) {\n const timer = setTimeout(() => this.dismiss(id), toast.duration);\n this._timers.set(id, timer);\n }\n\n return id;\n }\n\n dismiss(id: string): void {\n const timer = this._timers.get(id);\n if (timer) {\n clearTimeout(timer);\n this._timers.delete(id);\n }\n this._toasts.update(toasts => toasts.filter(t => t.id !== id));\n }\n\n dismissAll(): void {\n for (const timer of this._timers.values()) {\n clearTimeout(timer);\n }\n this._timers.clear();\n this._toasts.set([]);\n }\n\n success(title: string, description?: string): string {\n return this.show({ title, description, variant: 'success' });\n }\n\n error(title: string, description?: string): string {\n return this.show({ title, description, variant: 'destructive' });\n }\n\n warning(title: string, description?: string): string {\n return this.show({ title, description, variant: 'warning' });\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-sm border p-6 pr-8 shadow-lg transition-all',\n {\n variants: {\n variant: {\n default: 'bg-background border-border text-foreground',\n destructive: 'bg-destructive border-destructive text-destructive-foreground',\n success: 'bg-green-600 border-green-600 text-white',\n warning: 'bg-yellow-500 border-yellow-500 text-white',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type ToastVariant = 'default' | 'destructive' | 'success' | 'warning';\nexport type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface ToastConfig {\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: ToastAction;\n}\n\nexport interface ToastData extends ToastConfig {\n id: string;\n}\n","import { ChangeDetectionStrategy, Component, inject, input, computed } from '@angular/core';\nimport { SnyToastService } from './toast.service';\nimport { toastVariants, type ToastPosition, type ToastVariant } from './toast.variants';\nimport { cn } from '../core/utils/cn';\n\n@Component({\n selector: 'sny-toaster',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"containerClass()\" role=\"region\" aria-label=\"Notifications\" tabindex=\"-1\">\n @for (toast of visibleToasts(); track toast.id) {\n <div\n [class]=\"toastClasses[toast.variant ?? 'default']\"\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n <div class=\"grid gap-1\">\n <div class=\"text-sm font-semibold\">{{ toast.title }}</div>\n @if (toast.description) {\n <div class=\"text-sm opacity-90\">{{ toast.description }}</div>\n }\n </div>\n <div class=\"flex items-center gap-2\">\n @if (toast.action) {\n <button\n class=\"inline-flex h-8 shrink-0 items-center justify-center rounded-sm border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary\"\n (click)=\"toast.action!.onClick()\"\n >\n {{ toast.action!.label }}\n </button>\n }\n <button\n class=\"absolute right-2 top-2 rounded-sm p-1 opacity-0 transition-opacity hover:opacity-100 group-hover:opacity-100 focus:opacity-100\"\n aria-label=\"Close\"\n (click)=\"dismiss(toast.id)\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n </div>\n </div>\n }\n </div>\n `,\n})\nexport class SnyToasterComponent {\n private readonly toastService = inject(SnyToastService);\n\n readonly position = input<ToastPosition>('bottom-right');\n readonly maxToasts = input(5);\n\n readonly visibleToasts = computed(() =>\n this.toastService.toasts().slice(-this.maxToasts())\n );\n\n readonly containerClass = computed(() => {\n const pos = this.position();\n const base = 'fixed z-[100] flex max-h-screen w-full flex-col-reverse gap-2 p-4 sm:max-w-[420px]';\n const posMap: Record<ToastPosition, string> = {\n 'top-right': 'top-0 right-0',\n 'top-left': 'top-0 left-0',\n 'bottom-right': 'bottom-0 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n };\n return cn(base, posMap[pos]);\n });\n\n /** Pre-computed toast classes by variant — avoids method calls in the template. */\n readonly toastClasses: Record<ToastVariant, string> = {\n default: cn(toastVariants({ variant: 'default' })),\n destructive: cn(toastVariants({ variant: 'destructive' })),\n success: cn(toastVariants({ variant: 'success' })),\n warning: cn(toastVariants({ variant: 'warning' })),\n };\n\n dismiss(id: string): void {\n this.toastService.dismiss(id);\n }\n}\n","import type { Observable } from 'rxjs';\n\n/** Structural interface for the subset of CDK DialogRef we consume. */\ninterface CdkDialogRefLike<R> {\n close(result?: R): void;\n readonly closed: Observable<R | undefined>;\n}\n\nexport class SnyDialogRef<R = unknown> {\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\n\n close(result?: R): void {\n this.cdkRef.close(result);\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n}\n","export interface SnyDialogConfig {\n width?: string;\n maxWidth?: string;\n closeOnBackdrop?: boolean;\n closeOnEsc?: boolean;\n data?: unknown;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport const DEFAULT_DIALOG_CONFIG: SnyDialogConfig = {\n width: '28rem',\n maxWidth: '90vw',\n closeOnBackdrop: true,\n closeOnEsc: true,\n};\n","import { Injectable, inject, InjectionToken } from '@angular/core';\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport type { ComponentType } from '@angular/cdk/overlay';\nimport { SnyDialogRef } from './dialog-ref';\nimport { DEFAULT_DIALOG_CONFIG, type SnyDialogConfig } from './dialog.types';\n\nexport const SNY_DIALOG_DATA = new InjectionToken<unknown>('SNY_DIALOG_DATA');\n\n@Injectable({ providedIn: 'root' })\nexport class SnyDialogService {\n private readonly cdkDialog = inject(Dialog);\n\n open<T, R = unknown>(\n component: ComponentType<T>,\n config: SnyDialogConfig = {}\n ): SnyDialogRef<R> {\n const merged = { ...DEFAULT_DIALOG_CONFIG, ...config };\n\n // CDK's disableClose controls both backdrop and ESC together.\n // To support independent closeOnBackdrop / closeOnEsc, we disable both\n // at the CDK level and handle them manually.\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\n\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\n width: merged.width,\n maxWidth: merged.maxWidth,\n disableClose,\n hasBackdrop: true,\n backdropClass: 'sny-dialog-backdrop',\n panelClass: 'sny-dialog-panel',\n ariaLabelledBy: merged.ariaLabelledBy,\n ariaDescribedBy: merged.ariaDescribedBy,\n data: merged.data,\n providers: merged.data != null\n ? [{ provide: SNY_DIALOG_DATA, useValue: merged.data }]\n : [],\n });\n\n // When CDK disableClose is true, manually handle backdrop/ESC based on config\n if (disableClose) {\n if (merged.closeOnBackdrop) {\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n if (merged.closeOnEsc) {\n const sub = cdkRef.keydownEvents.subscribe(event => {\n if (event.key === 'Escape') {\n cdkRef.close();\n }\n });\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n }\n\n return new SnyDialogRef<R>(cdkRef);\n }\n\n closeAll(): void {\n this.cdkDialog.closeAll();\n }\n}\n","import { Directive, computed, input, inject } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: '[snyDialogHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-1.5 text-center sm:text-left', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-lg font-semibold leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'relative bg-background rounded-sm border border-border shadow-lg p-6 w-full max-w-lg mx-auto',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyDialogFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyDialogFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.class())\n );\n}\n\n@Directive({\n selector: '[snyDialogClose]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnyDialogCloseDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n this.class()\n )\n );\n\n private readonly dialogRef = inject(DialogRef, { optional: true });\n\n onClick(): void {\n this.dialogRef?.close();\n }\n}\n","import { Directive, ElementRef, computed, inject, input, signal, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_ACCORDION = new InjectionToken<SnyAccordionDirective>('SnyAccordion');\nexport const SNY_ACCORDION_ITEM = new InjectionToken<SnyAccordionItemDirective>('SnyAccordionItem');\n\n@Directive({\n selector: '[snyAccordion]',\n standalone: true,\n exportAs: 'snyAccordion',\n providers: [{ provide: SNY_ACCORDION, useExisting: SnyAccordionDirective }],\n host: {\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyAccordionDirective {\n readonly multi = input(false);\n readonly class = input<string>('');\n\n private readonly elRef = inject(ElementRef);\n private readonly _openItems = signal(new Set<string>());\n\n protected readonly computedClass = computed(() =>\n cn('divide-y divide-border', this.class())\n );\n\n isOpen(id: string): boolean {\n return this._openItems().has(id);\n }\n\n toggle(id: string): void {\n this._openItems.update(set => {\n const next = new Set(set);\n if (next.has(id)) {\n next.delete(id);\n } else {\n if (!this.multi()) next.clear();\n next.add(id);\n }\n return next;\n });\n }\n\n onKeydown(event: KeyboardEvent): void {\n const target = event.target as HTMLElement;\n if (!target.hasAttribute('snyaccordiontrigger') && !target.closest('[snyAccordionTrigger]')) return;\n\n const triggers = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[snyAccordionTrigger]')\n );\n if (triggers.length === 0) return;\n\n const currentIndex = triggers.indexOf(target.closest('[snyAccordionTrigger]') as HTMLElement || target);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % triggers.length;\n break;\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = triggers.length - 1;\n break;\n }\n if (nextIndex !== null) {\n triggers[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyAccordionItem]',\n standalone: true,\n exportAs: 'snyAccordionItem',\n providers: [{ provide: SNY_ACCORDION_ITEM, useExisting: SnyAccordionItemDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyAccordionItemDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n private readonly accordion = inject(SNY_ACCORDION);\n\n readonly isOpen = computed(() => this.accordion.isOpen(this.value()));\n\n protected readonly computedClass = computed(() =>\n cn('', this.class())\n );\n\n toggle(): void {\n this.accordion.toggle(this.value());\n }\n}\n\n@Directive({\n selector: '[snyAccordionTrigger]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-expanded]': 'item.isOpen()',\n 'tabindex': '0',\n '(click)': 'item.toggle()',\n },\n})\nexport class SnyAccordionTriggerDirective {\n readonly class = input<string>('');\n readonly item = inject(SNY_ACCORDION_ITEM);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline cursor-pointer [&>svg]:transition-transform',\n this.item.isOpen() && '[&>svg]:rotate-180',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyAccordionContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n role: 'region',\n },\n})\nexport class SnyAccordionContentDirective {\n readonly class = input<string>('');\n readonly item = inject(SNY_ACCORDION_ITEM);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'grid transition-all duration-200',\n this.item.isOpen() ? 'grid-rows-[1fr] opacity-100 pb-4' : 'grid-rows-[0fr] opacity-0 overflow-hidden',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const avatarVariants = cva(\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden bg-muted',\n {\n variants: {\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n variant: {\n circle: 'rounded-full',\n rounded: 'rounded-md',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'circle',\n },\n }\n);\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type AvatarVariant = 'circle' | 'rounded';\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { avatarVariants, type AvatarSize, type AvatarVariant } from './avatar.variants';\n\n@Component({\n selector: 'sny-avatar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'computedClass()' },\n template: `\n @if (src() && !error()) {\n <img\n [src]=\"src()\"\n [alt]=\"alt()\"\n class=\"aspect-square h-full w-full object-cover\"\n (error)=\"error.set(true)\"\n />\n } @else {\n <span class=\"font-medium text-muted-foreground\">{{ fallbackText() }}</span>\n }\n `,\n})\nexport class SnyAvatarComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('');\n readonly fallback = input<string>('');\n readonly size = input<AvatarSize>('md');\n readonly variant = input<AvatarVariant>('circle');\n readonly class = input<string>('');\n\n readonly error = signal(false);\n\n protected readonly fallbackText = computed(() => {\n const fb = this.fallback();\n if (fb) return fb;\n const a = this.alt();\n if (a) return a.split(' ').map(w => w[0]).join('').toUpperCase().slice(0, 2);\n return '?';\n });\n\n protected readonly computedClass = computed(() =>\n cn(avatarVariants({ size: this.size(), variant: this.variant() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n 'inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground',\n secondary: 'border-transparent bg-secondary text-secondary-foreground',\n outline: 'border-border text-foreground',\n destructive: 'border-transparent bg-destructive text-destructive-foreground',\n success: 'border-transparent bg-green-600 text-white dark:bg-green-500',\n warning: 'border-transparent bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\n },\n size: {\n sm: 'px-2 py-0.5 text-[10px]',\n md: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive' | 'success' | 'warning';\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { badgeVariants, type BadgeVariant, type BadgeSize } from './badge.variants';\n\n@Directive({\n selector: '[snyBadge]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBadgeDirective {\n readonly variant = input<BadgeVariant>('default');\n readonly size = input<BadgeSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(badgeVariants({ variant: this.variant(), size: this.size() }), this.class())\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: 'nav[snyBreadcrumb]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n 'aria-label': 'Breadcrumb',\n },\n})\nexport class SnyBreadcrumbDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('', this.class()));\n}\n\n@Directive({\n selector: 'ol[snyBreadcrumbList]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbListDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class())\n );\n}\n\n@Directive({\n selector: 'li[snyBreadcrumbItem]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbItemDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbLink]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyBreadcrumbLinkDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('transition-colors hover:text-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbSeparator]',\n standalone: true,\n host: {\n role: 'presentation',\n '[aria-hidden]': 'true',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyBreadcrumbSeparatorDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('[&>svg]:size-3.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyBreadcrumbPage]',\n standalone: true,\n host: {\n role: 'link',\n 'aria-disabled': 'true',\n '[attr.aria-current]': '\"page\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyBreadcrumbPageDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('font-normal text-foreground', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const buttonGroupVariants = cva(\n 'inline-flex [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-r-none [&>*:last-child:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:-ml-px',\n {\n variants: {\n orientation: {\n horizontal: 'flex-row',\n vertical: 'flex-col [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-b-none [&>*:first-child:not(:last-child)]:rounded-r-sm [&>*:last-child:not(:first-child)]:rounded-t-none [&>*:last-child:not(:first-child)]:rounded-l-sm [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:ml-0',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { buttonGroupVariants, type ButtonGroupOrientation } from './button-group.variants';\n\n@Directive({\n selector: '[snyButtonGroup]',\n standalone: true,\n host: {\n role: 'group',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyButtonGroupDirective {\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(buttonGroupVariants({ orientation: this.orientation() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const checkboxVariants = cva(\n 'peer appearance-none shrink-0 rounded-sm border border-border bg-background transition-colors checked:bg-primary checked:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type CheckboxSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { checkboxVariants, type CheckboxSize } from './checkbox.variants';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][snyCheckbox]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyCheckboxDirective {\n readonly size = input<CheckboxSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(checkboxVariants({ size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const comboboxTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { comboboxTriggerVariants, type ComboboxSize } from './combobox.variants';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'sny-combobox',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'relative inline-block w-full',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyComboboxComponent), multi: true },\n ],\n template: `\n <!-- Trigger button -->\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\n {{ selectedLabel() || placeholder() }}\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\n </button>\n\n <!-- Dropdown popover -->\n @if (open()) {\n <div\n #dropdownEl\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <!-- Search input -->\n <div class=\"flex items-center border-b border-border px-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"mr-2 shrink-0 opacity-50\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\n <input\n #searchEl\n type=\"text\"\n class=\"flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground\"\n [placeholder]=\"searchPlaceholder()\"\n [value]=\"query()\"\n (input)=\"onSearchInput($event)\"\n (keydown)=\"onKeydown($event)\"\n />\n </div>\n\n <!-- Options list -->\n @if (filtered().length > 0) {\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 sny-scrollbar\">\n @for (opt of filtered(); track opt.value; let i = $index) {\n <li\n role=\"option\"\n [id]=\"'sny-cb-opt-' + opt.value\"\n [attr.aria-selected]=\"value() === opt.value\"\n [class]=\"optionClass(i)\"\n (mousedown)=\"select(opt); $event.preventDefault()\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\n {{ opt.label }}\n </li>\n }\n </ul>\n } @else {\n <div class=\"py-6 text-center text-sm text-muted-foreground\">No results found.</div>\n }\n </div>\n }\n `,\n})\nexport class SnyComboboxComponent implements ControlValueAccessor, OnDestroy {\n readonly options = input<ComboboxOption[]>([]);\n readonly placeholder = input('Select...');\n readonly searchPlaceholder = input('Search...');\n readonly size = input<ComboboxSize>('md');\n readonly class = input<string>('');\n readonly value = model<string>('');\n\n readonly open = signal(false);\n readonly query = signal('');\n readonly activeIndex = signal(0);\n\n private readonly _disabledByCva = signal(false);\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly searchRef = viewChild<ElementRef<HTMLInputElement>>('searchEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: string): void {\n this.value.set(val ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(_isDisabled: boolean): void {\n this._disabledByCva.set(_isDisabled);\n }\n\n readonly selectedLabel = computed(() => {\n const v = this.value();\n if (!v) return '';\n const opt = this.options().find(o => o.value === v);\n return opt?.label ?? '';\n });\n\n readonly filtered = computed(() => {\n const q = this.query().toLowerCase();\n if (!q) return this.options();\n return this.options().filter(o => o.label.toLowerCase().includes(q));\n });\n\n protected readonly triggerClass = computed(() =>\n cn(comboboxTriggerVariants({ size: this.size() }), this.class())\n );\n\n optionClass(index: number): string {\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\n return cn(base, active);\n }\n\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n dropdown.style.width = `${rect.width}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.updateDropdownPosition();\n this.open.set(true);\n this.query.set('');\n this.activeIndex.set(0);\n this.addGlobalListeners();\n setTimeout(() => {\n this.updateDropdownPosition();\n this.searchRef()?.nativeElement.focus();\n });\n }\n }\n\n close(): void {\n this.open.set(false);\n this.query.set('');\n this.removeGlobalListeners();\n }\n\n onSearchInput(event: Event): void {\n const val = (event.target as HTMLInputElement).value;\n this.query.set(val);\n this.activeIndex.set(0);\n }\n\n select(opt: ComboboxOption): void {\n this.value.set(opt.value);\n this._onChange(opt.value);\n this.close();\n }\n\n onKeydown(event: KeyboardEvent): void {\n const items = this.filtered();\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => Math.max(i - 1, 0));\n break;\n case 'Enter':\n event.preventDefault();\n if (items[this.activeIndex()]) {\n this.select(items[this.activeIndex()]);\n }\n break;\n case 'Escape':\n this.close();\n break;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const skeletonVariants = cva(\n 'animate-pulse bg-muted block',\n {\n variants: {\n variant: {\n line: 'rounded-sm',\n circular: 'rounded-full aspect-square',\n rounded: 'rounded-lg',\n },\n size: {\n sm: 'h-4',\n md: 'h-6',\n lg: 'h-8',\n xl: 'h-12',\n },\n },\n defaultVariants: {\n variant: 'line',\n size: 'md',\n },\n }\n);\n\nexport type SkeletonVariant = 'line' | 'circular' | 'rounded';\nexport type SkeletonSize = 'sm' | 'md' | 'lg' | 'xl';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { skeletonVariants, type SkeletonVariant, type SkeletonSize } from './skeleton.variants';\n\n@Directive({\n selector: '[snySkeleton]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n 'aria-busy': 'true',\n 'aria-hidden': 'true',\n },\n})\nexport class SnySkeletonDirective {\n readonly variant = input<SkeletonVariant>('line');\n readonly size = input<SkeletonSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(skeletonVariants({ variant: this.variant(), size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const radioVariants = cva(\n 'appearance-none rounded-full border border-border bg-background transition-colors checked:border-primary checked:shadow-[inset_0_0_0_3px] checked:shadow-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type RadioSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { radioVariants, type RadioSize } from './radio.variants';\n\n@Directive({\n selector: 'input[type=\"radio\"][snyRadio]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyRadioDirective {\n readonly size = input<RadioSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(radioVariants({ size: this.size() }), this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const switchTrackVariants = cva(\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const switchThumbSize: Record<string, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\nexport const switchThumbTranslate: Record<string, string> = {\n sm: 'translate-x-4',\n md: 'translate-x-5',\n lg: 'translate-x-7',\n};\n\nexport type SwitchSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { switchTrackVariants, switchThumbSize, switchThumbTranslate, type SwitchSize } from './switch.variants';\n\n@Component({\n selector: 'sny-switch',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'inline-flex' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySwitchComponent), multi: true },\n ],\n template: `\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"thumbClass()\"></span>\n </button>\n `,\n})\nexport class SnySwitchComponent implements ControlValueAccessor {\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly size = input<SwitchSize>('md');\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private _onChange: (value: boolean) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: boolean): void {\n this.checked.set(val ?? false);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n toggle(): void {\n const newVal = !this.checked();\n this.checked.set(newVal);\n this._onChange(newVal);\n }\n\n protected readonly trackClass = computed(() =>\n cn(\n switchTrackVariants({ size: this.size() }),\n this.checked() ? 'bg-primary' : 'bg-input',\n this.class()\n )\n );\n\n protected readonly thumbClass = computed(() =>\n cn(\n 'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform',\n switchThumbSize[this.size()],\n this.checked() ? switchThumbTranslate[this.size()] : 'translate-x-0'\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n 'inline-flex items-center justify-center rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-transparent hover:bg-muted hover:text-muted-foreground',\n outline: 'border border-border bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n sm: 'h-9 px-2.5',\n md: 'h-10 px-3',\n lg: 'h-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type ToggleVariant = 'default' | 'outline';\nexport type ToggleSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { toggleVariants, type ToggleVariant, type ToggleSize } from './toggle.variants';\n\n@Directive({\n selector: 'button[snyToggle]',\n standalone: true,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyToggleDirective), multi: true },\n ],\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.disabled]': 'isDisabled() || null',\n '(click)': 'toggle()',\n '(blur)': 'onTouched()',\n },\n})\nexport class SnyToggleDirective implements ControlValueAccessor {\n readonly variant = input<ToggleVariant>('default');\n readonly size = input<ToggleSize>('md');\n readonly pressed = model(false);\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this._disabledByCva());\n\n private _onChange: (value: boolean) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: boolean): void {\n this.pressed.set(val ?? false);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n protected toggle(): void {\n if (this.isDisabled()) return;\n const newVal = !this.pressed();\n this.pressed.set(newVal);\n this._onChange(newVal);\n }\n\n protected readonly computedClass = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n this.pressed() ? 'bg-accent text-accent-foreground' : '',\n this.class()\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const sliderTrackVariants = cva(\n 'relative w-full rounded-full bg-secondary cursor-pointer',\n {\n variants: {\n size: {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const sliderThumbSize: Record<string, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\nexport type SliderSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, model, OnDestroy, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { sliderTrackVariants, sliderThumbSize, type SliderSize } from './slider.variants';\n\n@Component({\n selector: 'sny-slider',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block',\n '(keydown)': 'onKeydown($event)',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySliderComponent), multi: true },\n ],\n template: `\n <div\n #trackEl\n [class]=\"trackClass()\"\n (mousedown)=\"onTrackMousedown($event)\"\n (touchstart)=\"onTrackTouchstart($event)\"\n >\n <div class=\"absolute h-full rounded-full bg-primary\" [style.width.%]=\"percentage()\"></div>\n <button\n type=\"button\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [disabled]=\"isDisabled()\"\n [class]=\"thumbClass()\"\n [style.left.%]=\"percentage()\"\n tabindex=\"0\"\n (blur)=\"onTouched()\"\n ></button>\n </div>\n `,\n})\nexport class SnySliderComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model(0);\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly disabled = input(false);\n readonly size = input<SliderSize>('md');\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly trackRef = viewChild<ElementRef<HTMLDivElement>>('trackEl');\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\n private upHandler: (() => void) | null = null;\n\n private _onChange: (value: number) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: number): void {\n this.value.set(val ?? 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n protected readonly percentage = computed(() => {\n const range = this.max() - this.min();\n if (range <= 0) return 0;\n return ((this.value() - this.min()) / range) * 100;\n });\n\n protected readonly trackClass = computed(() =>\n cn(sliderTrackVariants({ size: this.size() }), this.isDisabled() && 'opacity-50 cursor-not-allowed', this.class())\n );\n\n protected readonly thumbClass = computed(() =>\n cn(\n 'absolute top-1/2 -translate-x-1/2 -translate-y-1/2 block rounded-full border-2 border-primary bg-background shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n sliderThumbSize[this.size()]\n )\n );\n\n private updateValueFromPosition(clientX: number): void {\n if (this.isDisabled()) return;\n const track = this.trackRef()?.nativeElement;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const raw = this.min() + percent * (this.max() - this.min());\n const stepped = Math.round(raw / this.step()) * this.step();\n const clamped = Math.max(this.min(), Math.min(this.max(), stepped));\n this.value.set(clamped);\n this._onChange(clamped);\n }\n\n onTrackMousedown(event: MouseEvent): void {\n if (this.isDisabled()) return;\n event.preventDefault();\n this.updateValueFromPosition(event.clientX);\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateValueFromPosition(clientX);\n };\n this.upHandler = () => {\n this.onTouched();\n this.removeListeners();\n };\n document.addEventListener('mousemove', this.moveHandler as EventListener);\n document.addEventListener('mouseup', this.upHandler);\n }\n\n onTrackTouchstart(event: TouchEvent): void {\n if (this.isDisabled()) return;\n this.updateValueFromPosition(event.touches[0].clientX);\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateValueFromPosition(clientX);\n };\n this.upHandler = () => {\n this.onTouched();\n this.removeListeners();\n };\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\n document.addEventListener('touchend', this.upHandler);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.isDisabled()) return;\n const step = this.step();\n let newVal: number | undefined;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newVal = Math.min(this.max(), this.value() + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newVal = Math.max(this.min(), this.value() - step);\n break;\n case 'Home':\n event.preventDefault();\n newVal = this.min();\n break;\n case 'End':\n event.preventDefault();\n newVal = this.max();\n break;\n }\n if (newVal !== undefined) {\n this.value.set(newVal);\n this._onChange(newVal);\n }\n }\n\n private removeListeners(): void {\n if (this.moveHandler) {\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\n this.moveHandler = null;\n }\n if (this.upHandler) {\n document.removeEventListener('mouseup', this.upHandler);\n document.removeEventListener('touchend', this.upHandler);\n this.upHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeListeners();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const loaderVariants = cva(\n 'inline-flex items-center justify-center text-current',\n {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type LoaderSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type LoaderVariant = 'spinner' | 'dots' | 'bars';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { loaderVariants, type LoaderSize, type LoaderVariant } from './loader.variants';\n\n@Component({\n selector: 'sny-loader',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'computedClass()',\n role: 'status',\n '[attr.aria-label]': '\"Loading\"',\n },\n template: `\n @switch (variant()) {\n @case ('spinner') {\n <svg class=\"animate-spin h-full w-full\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n }\n @case ('dots') {\n <span class=\"flex items-center gap-1\">\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.3s]\"></span>\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.15s]\"></span>\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce\"></span>\n </span>\n }\n @case ('bars') {\n <span class=\"flex items-end gap-0.5 h-full\">\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.3s]\" style=\"height:60%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.15s]\" style=\"height:100%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm\" style=\"height:40%\"></span>\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.2s]\" style=\"height:80%\"></span>\n </span>\n }\n }\n `,\n})\nexport class SnyLoaderComponent {\n readonly variant = input<LoaderVariant>('spinner');\n readonly size = input<LoaderSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(loaderVariants({ size: this.size() }), this.class())\n );\n}\n","import { Directive, ElementRef, computed, inject, input, model, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_TABS = new InjectionToken<SnyTabsDirective>('SnyTabs');\n\n@Directive({\n selector: '[snyTabs]',\n standalone: true,\n exportAs: 'snyTabs',\n providers: [{ provide: SNY_TABS, useExisting: SnyTabsDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTabsDirective {\n readonly value = model<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('', this.class())\n );\n\n select(value: string): void {\n this.value.set(value);\n }\n}\n\n@Directive({\n selector: '[snyTabsList]',\n standalone: true,\n host: {\n role: 'tablist',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyTabsListDirective {\n readonly class = input<string>('');\n private readonly elRef = inject(ElementRef);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\n this.class()\n )\n );\n\n onKeydown(event: KeyboardEvent): void {\n const triggers = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[role=\"tab\"]')\n );\n if (triggers.length === 0) return;\n\n const currentIndex = triggers.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % triggers.length;\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = triggers.length - 1;\n break;\n }\n if (nextIndex !== null) {\n triggers[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyTabsTrigger]',\n standalone: true,\n host: {\n role: 'tab',\n '[class]': 'computedClass()',\n '[attr.aria-selected]': 'isActive()',\n '[attr.tabindex]': 'isActive() ? 0 : -1',\n '(click)': 'tabs.select(value())',\n },\n})\nexport class SnyTabsTriggerDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n readonly tabs = inject(SNY_TABS);\n\n readonly isActive = computed(() => this.tabs.value() === this.value());\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer',\n this.isActive()\n ? 'bg-background text-foreground shadow-sm'\n : 'hover:bg-background/50',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyTabsContent]',\n standalone: true,\n host: {\n role: 'tabpanel',\n '[class]': 'computedClass()',\n '[style.display]': 'isActive() ? null : \"none\"',\n },\n})\nexport class SnyTabsContentDirective {\n readonly value = input.required<string>();\n readonly class = input<string>('');\n private readonly tabs = inject(SNY_TABS);\n\n readonly isActive = computed(() => this.tabs.value() === this.value());\n\n protected readonly computedClass = computed(() =>\n cn('mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tabsListVariants = cva(\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport const tabsTriggerVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n","import { cva } from 'class-variance-authority';\n\nexport const selectTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type SelectSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { selectTriggerVariants, type SelectSize } from './select.variants';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'sny-select',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'relative inline-block w-full',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnySelectComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\n {{ selectedLabel() || placeholder() }}\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m6 9 6 6 6-6\"/></svg>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 sny-scrollbar\">\n @for (opt of options(); track opt.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"value() === opt.value\"\n [class]=\"optionClass(i)\"\n (mousedown)=\"select(opt); $event.preventDefault()\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\n {{ opt.label }}\n </li>\n }\n </ul>\n </div>\n }\n `,\n})\nexport class SnySelectComponent implements ControlValueAccessor, OnDestroy {\n readonly options = input<SelectOption[]>([]);\n readonly placeholder = input('Select...');\n readonly size = input<SelectSize>('md');\n readonly disabled = input(false);\n readonly class = input<string>('');\n readonly value = model<string>('');\n\n readonly open = signal(false);\n readonly activeIndex = signal(0);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: string): void {\n this.value.set(val ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly selectedLabel = computed(() => {\n const v = this.value();\n if (!v) return '';\n const opt = this.options().find(o => o.value === v);\n return opt?.label ?? '';\n });\n\n protected readonly triggerClass = computed(() =>\n cn(selectTriggerVariants({ size: this.size() }), this.class())\n );\n\n optionClass(index: number): string {\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\n return cn(base, active);\n }\n\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n dropdown.style.width = `${rect.width}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.open.set(true);\n this.activeIndex.set(\n Math.max(0, this.options().findIndex(o => o.value === this.value()))\n );\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n select(opt: SelectOption): void {\n this.value.set(opt.value);\n this._onChange(opt.value);\n this.close();\n }\n\n onTriggerKeydown(event: KeyboardEvent): void {\n const items = this.options();\n if (!this.open()) {\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggle();\n }\n return;\n }\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => Math.max(i - 1, 0));\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (items[this.activeIndex()]) {\n this.select(items[this.activeIndex()]);\n }\n break;\n case 'Escape':\n this.close();\n break;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tableVariants = cva(\n 'w-full caption-bottom text-sm border-collapse',\n {\n variants: {\n variant: {\n default: '',\n striped: '[&_tbody_tr:nth-child(even)]:bg-muted/50',\n bordered: 'border border-border [&_th]:border [&_th]:border-border [&_td]:border [&_td]:border-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport const tableCellVariants = cva(\n '',\n {\n variants: {\n density: {\n compact: 'px-2 py-1 text-xs',\n normal: 'px-4 py-3 text-sm',\n comfortable: 'px-6 py-4 text-base',\n },\n },\n defaultVariants: {\n density: 'normal',\n },\n }\n);\n\nexport type TableVariant = 'default' | 'striped' | 'bordered';\nexport type TableDensity = 'compact' | 'normal' | 'comfortable';\n","import { Directive, computed, inject, input, InjectionToken } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { tableVariants, tableCellVariants, type TableVariant, type TableDensity } from './table.variants';\n\nexport const SNY_TABLE = new InjectionToken<SnyTableDirective>('SnyTable');\n\n@Directive({\n selector: 'table[snyTable]',\n standalone: true,\n providers: [{ provide: SNY_TABLE, useExisting: SnyTableDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableDirective {\n readonly variant = input<TableVariant>('default');\n readonly density = input<TableDensity>('normal');\n readonly hoverable = input(false);\n readonly stickyHeader = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(tableVariants({ variant: this.variant() }), this.class())\n );\n}\n\n@Directive({\n selector: 'thead[snyTableHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableHeaderDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n '[&_tr]:border-b',\n this.table?.stickyHeader() ? 'sticky top-0 z-10 bg-background' : '',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'tbody[snyTableBody]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableBodyDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('[&_tr:last-child]:border-0', this.class())\n );\n}\n\n@Directive({\n selector: 'tr[snyTableRow]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableRowDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'border-b border-border transition-colors data-[state=selected]:bg-muted',\n this.table?.hoverable() ? 'hover:bg-muted/50' : '',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'th[snyTableHead]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableHeadDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'text-left font-medium text-muted-foreground [&[align=center]]:text-center [&[align=right]]:text-right',\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'td[snyTableCell]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableCellDirective {\n readonly class = input<string>('');\n private readonly table = inject(SNY_TABLE, { optional: true });\n\n protected readonly computedClass = computed(() =>\n cn(\n '[&[align=center]]:text-center [&[align=right]]:text-right',\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\n this.class()\n )\n );\n}\n\n@Directive({\n selector: 'tfoot[snyTableFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableFooterDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('border-t border-border font-medium [&>tr]:last:border-b-0', this.class())\n );\n}\n\n@Directive({\n selector: 'caption[snyTableCaption]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTableCaptionDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const paginationItemVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-background hover:bg-accent hover:text-accent-foreground',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-9 w-9',\n lg: 'h-10 w-10',\n },\n active: {\n true: 'bg-primary text-primary-foreground hover:bg-primary/90 hover:text-primary-foreground',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n active: false,\n },\n }\n);\n\nexport type PaginationVariant = 'default' | 'outline' | 'ghost';\nexport type PaginationSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n paginationItemVariants,\n type PaginationVariant,\n type PaginationSize,\n} from './pagination.variants';\n\nfunction computePageRange(\n totalPages: number,\n currentPage: number,\n siblingCount: number,\n boundaryCount: number\n): (number | 'ellipsis')[] {\n const range = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\n const startPages = range(1, Math.min(boundaryCount, totalPages));\n const endPages = range(Math.max(totalPages - boundaryCount + 1, boundaryCount + 1), totalPages);\n\n const siblingsStart = Math.max(\n Math.min(currentPage - siblingCount, totalPages - boundaryCount - siblingCount * 2 - 1),\n boundaryCount + 2\n );\n const siblingsEnd = Math.min(\n Math.max(currentPage + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : totalPages - 1\n );\n\n const result: (number | 'ellipsis')[] = [...startPages];\n\n if (siblingsStart > boundaryCount + 2) {\n result.push('ellipsis');\n } else if (boundaryCount + 1 < totalPages - boundaryCount) {\n result.push(boundaryCount + 1);\n }\n\n result.push(...range(siblingsStart, siblingsEnd));\n\n if (siblingsEnd < totalPages - boundaryCount - 1) {\n result.push('ellipsis');\n } else if (totalPages - boundaryCount > boundaryCount) {\n result.push(totalPages - boundaryCount);\n }\n\n result.push(...endPages);\n\n return [...new Set(result)].sort((a, b) => {\n if (a === 'ellipsis') return 0;\n if (b === 'ellipsis') return 0;\n return a - b;\n });\n}\n\n@Component({\n selector: 'sny-pagination',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'navigation',\n 'aria-label': 'Pagination',\n },\n template: `\n <div class=\"flex items-center gap-1\">\n <button\n [class]=\"navBtnClass()\"\n [disabled]=\"!hasPrev()\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"prev()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n\n @for (page of pages(); track $index) {\n @if (page === 'ellipsis') {\n <span class=\"flex h-9 w-9 items-center justify-center\" aria-hidden=\"true\">...</span>\n } @else {\n <button\n [class]=\"pageClass(page)\"\n [attr.aria-label]=\"'Page ' + page\"\n [attr.aria-current]=\"page === currentPage() ? 'page' : null\"\n (click)=\"goToPage(page)\"\n >\n {{ page }}\n </button>\n }\n }\n\n <button\n [class]=\"navBtnClass()\"\n [disabled]=\"!hasNext()\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"next()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n `,\n})\nexport class SnyPaginationComponent {\n readonly currentPage = model(1);\n readonly totalPages = input.required<number>();\n readonly siblingCount = input(1);\n readonly boundaryCount = input(1);\n readonly size = input<PaginationSize>('md');\n readonly variant = input<PaginationVariant>('default');\n readonly class = input<string>('');\n\n readonly pages = computed(() =>\n computePageRange(this.totalPages(), this.currentPage(), this.siblingCount(), this.boundaryCount())\n );\n\n readonly hasPrev = computed(() => this.currentPage() > 1);\n readonly hasNext = computed(() => this.currentPage() < this.totalPages());\n\n goToPage(page: number | 'ellipsis'): void {\n if (page === 'ellipsis') return;\n this.currentPage.set(page);\n }\n\n prev(): void {\n if (this.hasPrev()) this.currentPage.update((p) => p - 1);\n }\n\n next(): void {\n if (this.hasNext()) this.currentPage.update((p) => p + 1);\n }\n\n pageClass(page: number): string {\n return cn(\n paginationItemVariants({\n variant: this.variant(),\n size: this.size(),\n active: page === this.currentPage(),\n })\n );\n }\n\n navBtnClass(): string {\n return cn(\n paginationItemVariants({ variant: this.variant(), size: this.size(), active: false })\n );\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const dropdownContentVariants = cva(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport const dropdownItemVariants = cva(\n 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[active]:bg-accent data-[active]:text-accent-foreground',\n {\n variants: {\n variant: {\n default: '',\n destructive:\n 'text-destructive data-[active]:bg-destructive/10 data-[active]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type DropdownItemVariant = 'default' | 'destructive';\n","import { Directive, ElementRef, HostListener, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n dropdownContentVariants,\n dropdownItemVariants,\n type DropdownItemVariant,\n} from './dropdown.variants';\n\nexport const SNY_DROPDOWN = new InjectionToken<SnyDropdownDirective>('SnyDropdown');\n\n@Directive({\n selector: '[snyDropdown]',\n standalone: true,\n exportAs: 'snyDropdown',\n providers: [{ provide: SNY_DROPDOWN, useExisting: SnyDropdownDirective }],\n host: {\n '[class]': '\"relative inline-block\"',\n },\n})\nexport class SnyDropdownDirective {\n private readonly elementRef = inject(ElementRef);\n readonly isOpen = signal(false);\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n\n@Directive({\n selector: '[snyDropdownTrigger]',\n standalone: true,\n host: {\n '(click)': 'dropdown.toggle()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '[attr.aria-haspopup]': '\"menu\"',\n },\n})\nexport class SnyDropdownTriggerDirective {\n readonly dropdown = inject(SNY_DROPDOWN);\n}\n\n@Directive({\n selector: '[snyDropdownContent]',\n standalone: true,\n host: {\n 'role': 'menu',\n '[class]': 'computedClass()',\n '[style.display]': 'dropdown.isOpen() ? \"\" : \"none\"',\n },\n})\nexport class SnyDropdownContentDirective {\n readonly dropdown = inject(SNY_DROPDOWN);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n dropdownContentVariants(),\n 'absolute mt-1 left-0 animate-in fade-in-0 zoom-in-95',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyMenuContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuContentDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(dropdownContentVariants(), this.class())\n );\n}\n\n@Directive({\n selector: '[snyMenuItem]',\n standalone: true,\n host: {\n 'role': 'menuitem',\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnyMenuItemDirective {\n private readonly dropdown = inject(SNY_DROPDOWN, { optional: true });\n readonly variant = input<DropdownItemVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(dropdownItemVariants({ variant: this.variant() }), 'cursor-pointer hover:bg-accent hover:text-accent-foreground', this.class())\n );\n\n onClick(): void {\n this.dropdown?.close();\n }\n}\n\n@Directive({\n selector: '[snyMenuSeparator]',\n standalone: true,\n host: {\n 'role': 'separator',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuSeparatorDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('-mx-1 my-1 h-px bg-muted', this.class())\n );\n}\n\n@Directive({\n selector: '[snyMenuLabel]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyMenuLabelDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('px-2 py-1.5 text-sm font-semibold', this.class())\n );\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[snyCell]',\n standalone: true,\n})\nexport class SnyCellDefDirective {\n readonly snyCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyHeaderCell]',\n standalone: true,\n})\nexport class SnyHeaderCellDefDirective {\n readonly snyHeaderCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyBulkActions]',\n standalone: true,\n})\nexport class SnyBulkActionsDefDirective {\n readonly template = inject(TemplateRef);\n}\n\n@Directive({\n selector: '[snyRowExpand]',\n standalone: true,\n})\nexport class SnyRowExpandDefDirective {\n readonly template = inject(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n computed,\n contentChild,\n contentChildren,\n effect,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n SnyTableDirective,\n SnyTableHeaderDirective,\n SnyTableBodyDirective,\n SnyTableRowDirective,\n SnyTableHeadDirective,\n SnyTableCellDirective,\n} from '../table/table.directives';\nimport type { TableVariant, TableDensity } from '../table/table.variants';\nimport { SnyPaginationComponent } from '../pagination/pagination.component';\nimport { SnyCheckboxDirective } from '../checkbox/checkbox.directive';\nimport { SnyInputDirective } from '../input/input.directive';\nimport { SnyButtonDirective } from '../button/button.directive';\nimport { SnySelectComponent, type SelectOption } from '../select/select.component';\nimport { SnySkeletonDirective } from '../skeleton/skeleton.directive';\nimport {\n SnyDropdownDirective,\n SnyDropdownTriggerDirective,\n SnyDropdownContentDirective,\n SnyMenuItemDirective,\n} from '../dropdown/dropdown.directives';\nimport {\n SnyCellDefDirective,\n SnyHeaderCellDefDirective,\n SnyBulkActionsDefDirective,\n SnyRowExpandDefDirective,\n} from './data-table.directives';\nimport type {\n DataTableColumn,\n DataTablePaginationConfig,\n SortState,\n SortDirection,\n} from './data-table.types';\n\nconst DEFAULT_PAGINATION: DataTablePaginationConfig = {\n pageSize: 10,\n pageSizeOptions: [5, 10, 25, 50],\n};\n\n@Component({\n selector: 'sny-data-table',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n SnyTableDirective,\n SnyTableHeaderDirective,\n SnyTableBodyDirective,\n SnyTableRowDirective,\n SnyTableHeadDirective,\n SnyTableCellDirective,\n SnyPaginationComponent,\n SnyCheckboxDirective,\n SnyInputDirective,\n SnyButtonDirective,\n SnySelectComponent,\n SnySkeletonDirective,\n SnyDropdownDirective,\n SnyDropdownTriggerDirective,\n SnyDropdownContentDirective,\n SnyMenuItemDirective,\n ],\n template: `\n <!-- Toolbar -->\n @if (filterable() || showExport() || showColumnToggle()) {\n <div class=\"flex items-center justify-between gap-4 mb-4 flex-wrap\">\n @if (filterable()) {\n <input\n snyInput\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n placeholder=\"Filter...\"\n class=\"w-full sm:max-w-sm\"\n />\n }\n <div class=\"flex items-center gap-2\">\n @if (showExport()) {\n <button snyBtn variant=\"outline\" size=\"sm\" (click)=\"onExport()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\"/><path d=\"M14 2v6h6\"/><path d=\"M12 18v-6\"/><path d=\"m9 15 3-3 3 3\"/></svg>\n <span class=\"hidden sm:inline\">Export</span>\n </button>\n }\n @if (showColumnToggle()) {\n <div snyDropdown class=\"relative\">\n <button snyBtn variant=\"outline\" size=\"sm\" snyDropdownTrigger>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M12 3v18\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M3 9h18\"/><path d=\"M3 15h18\"/></svg>\n <span class=\"hidden sm:inline\">Columns</span>\n </button>\n <div snyDropdownContent class=\"w-48 right-0 left-auto\">\n @for (col of columns(); track col.key) {\n <label snyMenuItem class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"!hiddenColumns().has(col.key)\"\n (change)=\"toggleColumnVisibility(col.key)\"\n (click)=\"$event.stopPropagation()\"\n />\n {{ col.label }}\n </label>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Bulk Actions Bar -->\n @if (showBulkActions()) {\n @let selected = selectedRows();\n <div class=\"flex items-center gap-2 mb-4 p-3 bg-muted/50 rounded-sm border border-border flex-wrap\">\n <span class=\"text-sm font-medium text-muted-foreground mr-2\">\n {{ selected.length }} selected\n </span>\n <ng-container\n [ngTemplateOutlet]=\"bulkActionsDef()!.template\"\n [ngTemplateOutletContext]=\"{ $implicit: selected }\"\n />\n <button\n snyBtn variant=\"ghost\" size=\"sm\" class=\"ml-auto\"\n (click)=\"selectedRows.set([])\"\n >\n Clear\n </button>\n </div>\n }\n\n <!-- Table -->\n <div class=\"overflow-auto border border-border rounded-sm\">\n <table\n snyTable\n [variant]=\"variant()\"\n [density]=\"density()\"\n [hoverable]=\"hoverable()\"\n [stickyHeader]=\"stickyHeader()\"\n >\n <thead snyTableHeader>\n <tr snyTableRow>\n @if (selectable()) {\n <th snyTableHead class=\"w-12\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"someSelected() && !allSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </th>\n }\n @if (expandable()) {\n <th snyTableHead class=\"w-10\"></th>\n }\n @let sort = sortState();\n @let headerDefs = headerCellDefMap();\n @for (col of visibleColumns(); track col.key) {\n <th\n snyTableHead\n [style.width]=\"col.width ?? null\"\n [class]=\"col.sortable ? 'cursor-pointer select-none' : ''\"\n (click)=\"col.sortable ? toggleSort(col.key) : null\"\n >\n @if (headerDefs.has(col.key)) {\n <ng-container\n [ngTemplateOutlet]=\"headerDefs.get(col.key)!\"\n [ngTemplateOutletContext]=\"{ $implicit: col }\"\n />\n } @else {\n <div class=\"flex items-center gap-1\">\n <span>{{ col.label }}</span>\n @if (col.sortable) {\n @let isActive = sort.key === col.key;\n @if (isActive && sort.direction === 'asc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m5 12 7-7 7 7\"/></svg>\n } @else if (isActive && sort.direction === 'desc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m19 12-7 7-7-7\"/></svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"opacity-30\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\n }\n }\n </div>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody snyTableBody>\n @if (loading()) {\n @for (i of skeletonRows(); track i) {\n <tr snyTableRow>\n @if (selectable()) {\n <td snyTableCell class=\"w-12\"><div snySkeleton class=\"w-4 h-4 rounded\"></div></td>\n }\n @if (expandable()) {\n <td snyTableCell class=\"w-10\"><div snySkeleton class=\"w-4 h-4 rounded\"></div></td>\n }\n @for (col of visibleColumns(); track col.key) {\n <td snyTableCell [style.width]=\"col.width ?? null\">\n <div snySkeleton class=\"w-full h-4 rounded\"></div>\n </td>\n }\n </tr>\n }\n } @else if (paginatedData().length === 0) {\n <tr snyTableRow>\n <td\n snyTableCell\n [attr.colspan]=\"totalColSpan()\"\n class=\"text-center text-muted-foreground py-8\"\n >\n {{ noDataText() }}\n </td>\n </tr>\n } @else {\n @let cellDefs = cellDefMap();\n @let cols = visibleColumns();\n @let expandTpl = rowExpandDef();\n @for (row of paginatedData(); track trackByFn(row, $index)) {\n <tr\n snyTableRow\n [attr.data-state]=\"isSelected(row) ? 'selected' : null\"\n (click)=\"onRowClick(row)\"\n class=\"cursor-pointer\"\n >\n @if (selectable()) {\n <td snyTableCell class=\"w-12\">\n <input\n type=\"checkbox\"\n snyCheckbox\n [checked]=\"isSelected(row)\"\n (change)=\"toggleRowSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n }\n @if (expandable()) {\n <td snyTableCell class=\"w-10\">\n <button\n class=\"p-0.5 rounded hover:bg-accent transition-transform duration-150\"\n [class.rotate-90]=\"isExpanded(row)\"\n (click)=\"toggleRowExpansion(row); $event.stopPropagation()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </td>\n }\n @for (col of cols; track col.key) {\n <td snyTableCell [style.width]=\"col.width ?? null\">\n @if (cellDefs.has(col.key)) {\n <ng-container\n [ngTemplateOutlet]=\"cellDefs.get(col.key)!\"\n [ngTemplateOutletContext]=\"{ $implicit: row[col.key], row: row }\"\n />\n } @else {\n {{ row[col.key] }}\n }\n </td>\n }\n </tr>\n @if (expandable() && isExpanded(row) && expandTpl) {\n <tr snyTableRow>\n <td snyTableCell [attr.colspan]=\"totalColSpan()\" class=\"bg-muted/30\">\n <ng-container\n [ngTemplateOutlet]=\"expandTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\"\n />\n </td>\n </tr>\n }\n }\n }\n </tbody>\n </table>\n </div>\n\n <!-- Footer -->\n @if (paginated()) {\n <div class=\"flex flex-col sm:flex-row items-start sm:items-center justify-between mt-4 gap-3 sm:gap-4\">\n <span class=\"text-sm text-muted-foreground\">\n @if (selectable()) {\n {{ selectedRows().length }} of {{ filteredData().length }} row(s) selected\n } @else {\n {{ filteredData().length }} row(s)\n }\n </span>\n <div class=\"flex items-center gap-3 sm:gap-4 flex-wrap\">\n <div class=\"flex items-center gap-2\">\n <span class=\"hidden sm:inline text-sm text-muted-foreground whitespace-nowrap\">Rows per page</span>\n <sny-select\n [options]=\"pageSizeOptions()\"\n [value]=\"pageSizeValue()\"\n (valueChange)=\"onPageSizeChange($event)\"\n size=\"sm\"\n class=\"w-20\"\n />\n </div>\n <sny-pagination\n [currentPage]=\"currentPage()\"\n (currentPageChange)=\"currentPage.set($event)\"\n [totalPages]=\"totalPages()\"\n />\n </div>\n </div>\n }\n `,\n})\nexport class SnyDataTableComponent {\n // Inputs\n readonly columns = input.required<DataTableColumn[]>();\n readonly data = input.required<Record<string, unknown>[]>();\n readonly variant = input<TableVariant>('default');\n readonly density = input<TableDensity>('normal');\n readonly hoverable = input(true);\n readonly stickyHeader = input(false);\n readonly selectable = input(false);\n readonly paginated = input(true);\n readonly filterable = input(true);\n readonly showExport = input(false);\n readonly showColumnToggle = input(false);\n readonly expandable = input(false);\n readonly loading = input(false);\n readonly loadingRows = input(5);\n readonly paginationConfig = input<DataTablePaginationConfig>(DEFAULT_PAGINATION);\n readonly trackBy = input('');\n readonly noDataText = input('No data available');\n\n // Model\n readonly selectedRows = model<Record<string, unknown>[]>([]);\n\n // Outputs\n readonly sortChanged = output<SortState>();\n readonly rowClicked = output<Record<string, unknown>>();\n readonly dataExported = output<Record<string, unknown>[]>();\n\n // Content queries\n readonly cellDefs = contentChildren(SnyCellDefDirective);\n readonly headerCellDefs = contentChildren(SnyHeaderCellDefDirective);\n readonly bulkActionsDef = contentChild(SnyBulkActionsDefDirective);\n readonly rowExpandDef = contentChild(SnyRowExpandDefDirective);\n\n // Internal state\n readonly sortState = signal<SortState>({ key: '', direction: null });\n readonly filterText = signal('');\n readonly currentPage = signal(1);\n readonly pageSize = signal(10);\n readonly hiddenColumns = signal<Set<string>>(new Set());\n readonly expandedRows = signal<Set<unknown>>(new Set());\n\n // Template def maps\n readonly cellDefMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) {\n map.set(def.snyCell(), def.template);\n }\n return map;\n });\n\n readonly headerCellDefMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.headerCellDefs()) {\n map.set(def.snyHeaderCell(), def.template);\n }\n return map;\n });\n\n // Visible columns\n readonly visibleColumns = computed(() =>\n this.columns().filter(\n (col) => col.visible !== false && !this.hiddenColumns().has(col.key)\n )\n );\n\n // Page size options\n readonly pageSizeOptions = computed<SelectOption[]>(() =>\n this.paginationConfig().pageSizeOptions.map((n) => ({\n value: String(n),\n label: String(n),\n }))\n );\n\n readonly pageSizeValue = computed(() => String(this.pageSize()));\n\n // Skeleton rows\n readonly skeletonRows = computed(() =>\n Array.from({ length: this.loadingRows() }, (_, i) => i)\n );\n\n // Bulk actions visibility\n readonly showBulkActions = computed(\n () =>\n this.selectable() &&\n this.selectedRows().length > 0 &&\n this.bulkActionsDef() != null\n );\n\n // Data pipeline (filter uses all columns, not just visible)\n readonly filteredData = computed(() => {\n const text = this.filterText().toLowerCase().trim();\n const rows = this.data();\n if (!text) return rows;\n const cols = this.columns().filter((c) => c.filterable !== false);\n return rows.filter((row) =>\n cols.some((col) =>\n String(row[col.key] ?? '').toLowerCase().includes(text)\n )\n );\n });\n\n readonly sortedData = computed(() => {\n const { key, direction } = this.sortState();\n const rows = this.filteredData();\n if (!key || !direction) return rows;\n return [...rows].sort((a, b) => {\n const aVal = a[key];\n const bVal = b[key];\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return direction === 'asc' ? -1 : 1;\n if (bVal == null) return direction === 'asc' ? 1 : -1;\n if (typeof aVal === 'number' && typeof bVal === 'number') {\n return direction === 'asc' ? aVal - bVal : bVal - aVal;\n }\n const cmp = String(aVal).localeCompare(String(bVal));\n return direction === 'asc' ? cmp : -cmp;\n });\n });\n\n readonly totalPages = computed(() =>\n Math.max(1, Math.ceil(this.filteredData().length / this.pageSize()))\n );\n\n readonly paginatedData = computed(() => {\n if (!this.paginated()) return this.sortedData();\n const start = (this.currentPage() - 1) * this.pageSize();\n return this.sortedData().slice(start, start + this.pageSize());\n });\n\n readonly totalColSpan = computed(\n () =>\n this.visibleColumns().length +\n (this.selectable() ? 1 : 0) +\n (this.expandable() ? 1 : 0)\n );\n\n // Selection computed\n readonly allSelected = computed(() => {\n const page = this.paginatedData();\n if (page.length === 0) return false;\n const selected = this.selectedRows();\n return page.every((row) => this.isRowInList(row, selected));\n });\n\n readonly someSelected = computed(() => {\n const page = this.paginatedData();\n const selected = this.selectedRows();\n return page.some((row) => this.isRowInList(row, selected));\n });\n\n constructor() {\n effect(() => {\n const config = this.paginationConfig();\n untracked(() => this.pageSize.set(config.pageSize));\n });\n\n effect(() => {\n this.filterText();\n this.pageSize();\n this.data();\n untracked(() => this.currentPage.set(1));\n });\n }\n\n // Sort\n toggleSort(key: string): void {\n const current = this.sortState();\n let direction: SortDirection;\n if (current.key !== key) {\n direction = 'asc';\n } else if (current.direction === 'asc') {\n direction = 'desc';\n } else if (current.direction === 'desc') {\n direction = null;\n } else {\n direction = 'asc';\n }\n const next: SortState = { key: direction ? key : '', direction };\n this.sortState.set(next);\n this.sortChanged.emit(next);\n }\n\n // Filter\n onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n }\n\n // Page size\n onPageSizeChange(value: string): void {\n this.pageSize.set(Number(value));\n }\n\n // Selection\n toggleSelectAll(): void {\n if (this.allSelected()) {\n const page = this.paginatedData();\n this.selectedRows.update((sel) =>\n sel.filter((r) => !page.some((p) => this.rowsEqual(r, p)))\n );\n } else {\n const page = this.paginatedData();\n this.selectedRows.update((sel) => {\n const newSel = [...sel];\n for (const row of page) {\n if (!this.isRowInList(row, newSel)) newSel.push(row);\n }\n return newSel;\n });\n }\n }\n\n toggleRowSelection(row: Record<string, unknown>): void {\n this.selectedRows.update((sel) =>\n this.isRowInList(row, sel)\n ? sel.filter((r) => !this.rowsEqual(r, row))\n : [...sel, row]\n );\n }\n\n // Row click\n onRowClick(row: Record<string, unknown>): void {\n this.rowClicked.emit(row);\n }\n\n // Export\n onExport(): void {\n this.dataExported.emit(this.filteredData());\n }\n\n // Column visibility\n toggleColumnVisibility(key: string): void {\n this.hiddenColumns.update((set) => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }\n\n // Expansion\n toggleRowExpansion(row: Record<string, unknown>): void {\n const key = this.trackBy() ? row[this.trackBy()] : row;\n this.expandedRows.update((set) => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }\n\n isExpanded(row: Record<string, unknown>): boolean {\n const key = this.trackBy() ? row[this.trackBy()] : row;\n return this.expandedRows().has(key);\n }\n\n // Helpers\n isSelected(row: Record<string, unknown>): boolean {\n return this.isRowInList(row, this.selectedRows());\n }\n\n trackByFn(row: Record<string, unknown>, index: number): unknown {\n const key = this.trackBy();\n return key ? row[key] : index;\n }\n\n private isRowInList(\n row: Record<string, unknown>,\n list: Record<string, unknown>[]\n ): boolean {\n return list.some((r) => this.rowsEqual(r, row));\n }\n\n private rowsEqual(\n a: Record<string, unknown>,\n b: Record<string, unknown>\n ): boolean {\n const key = this.trackBy();\n if (key) return a[key] === b[key];\n return a === b;\n }\n}\n","import type { Observable } from 'rxjs';\n\ninterface CdkDialogRefLike<R> {\n close(result?: R): void;\n readonly closed: Observable<R | undefined>;\n}\n\nexport class SnySheetRef<R = unknown> {\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\n\n close(result?: R): void {\n this.cdkRef.close(result);\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n}\n","export type SheetSide = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface SnySheetConfig {\n side?: SheetSide;\n closeOnBackdrop?: boolean;\n closeOnEsc?: boolean;\n data?: unknown;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport const DEFAULT_SHEET_CONFIG: SnySheetConfig = {\n side: 'right',\n closeOnBackdrop: true,\n closeOnEsc: true,\n};\n\nexport const SHEET_PANEL_CLASS: Record<SheetSide, string> = {\n right: 'sny-sheet-right',\n left: 'sny-sheet-left',\n top: 'sny-sheet-top',\n bottom: 'sny-sheet-bottom',\n};\n","import { Injectable, inject, InjectionToken, Injector } from '@angular/core';\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { type ComponentType, createGlobalPositionStrategy, type GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { SnySheetRef } from './sheet-ref';\nimport { DEFAULT_SHEET_CONFIG, SHEET_PANEL_CLASS, type SheetSide, type SnySheetConfig } from './sheet.types';\n\nexport const SNY_SHEET_DATA = new InjectionToken<unknown>('SNY_SHEET_DATA');\n\ninterface SheetOverlayConfig {\n positionStrategy: GlobalPositionStrategy;\n width?: string;\n maxWidth?: string;\n height?: string;\n maxHeight?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SnySheetService {\n private readonly cdkDialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T, R = unknown>(component: ComponentType<T>, config: SnySheetConfig = {}): SnySheetRef<R> {\n const merged = { ...DEFAULT_SHEET_CONFIG, ...config };\n const side = merged.side ?? 'right';\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\n const overlay = this._getOverlayConfig(side);\n\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\n disableClose,\n hasBackdrop: true,\n backdropClass: 'sny-dialog-backdrop',\n panelClass: ['sny-sheet-panel', SHEET_PANEL_CLASS[side]],\n positionStrategy: overlay.positionStrategy,\n width: overlay.width,\n maxWidth: overlay.maxWidth,\n height: overlay.height,\n maxHeight: overlay.maxHeight,\n ariaLabelledBy: merged.ariaLabelledBy,\n ariaDescribedBy: merged.ariaDescribedBy,\n data: merged.data,\n providers: merged.data != null\n ? [{ provide: SNY_SHEET_DATA, useValue: merged.data }]\n : [],\n });\n\n if (disableClose) {\n if (merged.closeOnBackdrop) {\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n if (merged.closeOnEsc) {\n const sub = cdkRef.keydownEvents.subscribe(event => {\n if (event.key === 'Escape') cdkRef.close();\n });\n cdkRef.closed.subscribe(() => sub.unsubscribe());\n }\n }\n\n return new SnySheetRef<R>(cdkRef);\n }\n\n closeAll(): void {\n this.cdkDialog.closeAll();\n }\n\n private _getOverlayConfig(side: SheetSide): SheetOverlayConfig {\n const strategy = createGlobalPositionStrategy(this.injector);\n\n switch (side) {\n case 'right':\n return {\n positionStrategy: strategy.top('0').right('0'),\n width: '75%',\n maxWidth: '24rem',\n height: '100vh',\n maxHeight: '100vh',\n };\n case 'left':\n return {\n positionStrategy: strategy.top('0').left('0'),\n width: '75%',\n maxWidth: '24rem',\n height: '100vh',\n maxHeight: '100vh',\n };\n case 'top':\n return {\n positionStrategy: strategy.top('0').centerHorizontally(),\n width: '100vw',\n maxWidth: '100vw',\n };\n case 'bottom':\n return {\n positionStrategy: strategy.bottom('0').centerHorizontally(),\n width: '100vw',\n maxWidth: '100vw',\n };\n }\n }\n}\n","import { Directive, computed, input, inject } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { cn } from '../core/utils/cn';\n\n@Directive({\n selector: '[snySheetHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex flex-col space-y-2', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetTitle]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetTitleDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-lg font-semibold text-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetDescriptionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnySheetContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('py-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snySheetClose]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '(click)': 'onClick()',\n },\n})\nexport class SnySheetCloseDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n this.class()\n )\n );\n\n private readonly dialogRef = inject(DialogRef, { optional: true });\n\n onClick(): void {\n this.dialogRef?.close();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n {\n variants: {\n variant: {\n default:\n 'bg-background text-foreground border-border',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive bg-destructive/10',\n success:\n 'border-green-500/50 text-green-700 dark:text-green-400 dark:border-green-500 [&>svg]:text-green-600 bg-green-50 dark:bg-green-950/30',\n warning:\n 'border-yellow-500/50 text-yellow-700 dark:text-yellow-400 dark:border-yellow-500 [&>svg]:text-yellow-600 bg-yellow-50 dark:bg-yellow-950/30',\n info: 'border-blue-500/50 text-blue-700 dark:text-blue-400 dark:border-blue-500 [&>svg]:text-blue-600 bg-blue-50 dark:bg-blue-950/30',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type AlertVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info';\n","import { Directive, computed, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { alertVariants, type AlertVariant } from './alert.variants';\n\n@Directive({\n selector: '[snyAlert]',\n exportAs: 'snyAlert',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.role]': 'role()',\n '[attr.aria-live]': 'ariaLive()',\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class SnyAlertDirective {\n readonly variant = input<AlertVariant>('default');\n readonly dismissible = input(false);\n readonly class = input<string>('');\n\n readonly visible = signal(true);\n\n protected readonly role = computed(() => {\n const v = this.variant();\n return v === 'destructive' || v === 'warning' || v === 'info' ? 'alert' : 'status';\n });\n\n protected readonly ariaLive = computed(() => {\n const v = this.variant();\n return v === 'destructive' || v === 'warning' ? 'assertive' : 'polite';\n });\n\n protected readonly computedClass = computed(() =>\n cn(alertVariants({ variant: this.variant() }), this.class())\n );\n\n dismiss(): void {\n this.visible.set(false);\n }\n}\n\n@Directive({\n selector: '[snyAlertTitle]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyAlertTitleDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('mb-1 font-medium leading-none tracking-tight', this.class())\n );\n}\n\n@Directive({\n selector: '[snyAlertDescription]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyAlertDescriptionDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('text-sm [&_p]:leading-relaxed', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const textareaVariants = cva(\n 'flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error:\n 'border-destructive focus-visible:ring-destructive text-destructive placeholder:text-destructive/60',\n },\n textareaSize: {\n sm: 'min-h-[60px] text-xs',\n md: 'min-h-[80px] text-sm',\n lg: 'min-h-[120px] text-base',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n },\n defaultVariants: {\n variant: 'default',\n textareaSize: 'md',\n resize: 'vertical',\n },\n }\n);\n\nexport type TextareaVariant = 'default' | 'error';\nexport type TextareaSize = 'sm' | 'md' | 'lg';\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\n","import {\n Directive,\n computed,\n input,\n effect,\n inject,\n ElementRef,\n afterNextRender,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n textareaVariants,\n type TextareaVariant,\n type TextareaSize,\n type TextareaResize,\n} from './textarea.variants';\n\n@Directive({\n selector: 'textarea[snyTextarea]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\n '(input)': 'onInput()',\n },\n})\nexport class SnyTextareaDirective {\n readonly variant = input<TextareaVariant>('default');\n readonly textareaSize = input<TextareaSize>('md');\n readonly resize = input<TextareaResize>('vertical');\n readonly autoResize = input(false);\n readonly class = input<string>('');\n\n private readonly el = inject(ElementRef<HTMLTextAreaElement>);\n\n protected readonly computedClass = computed(() =>\n cn(\n textareaVariants({\n variant: this.variant(),\n textareaSize: this.textareaSize(),\n resize: this.autoResize() ? 'none' : this.resize(),\n }),\n this.class()\n )\n );\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n });\n\n effect(() => {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n });\n }\n\n protected onInput(): void {\n if (this.autoResize()) {\n this.adjustHeight();\n }\n }\n\n private adjustHeight(): void {\n const textarea = this.el.nativeElement;\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const progressTrackVariants = cva(\n 'relative w-full overflow-hidden rounded-full bg-secondary',\n {\n variants: {\n size: {\n sm: 'h-1.5',\n md: 'h-2.5',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport const progressBarVariants = cva(\n 'h-full rounded-full transition-all duration-300 ease-in-out',\n {\n variants: {\n variant: {\n default: 'bg-primary',\n success: 'bg-green-600 dark:bg-green-500',\n warning: 'bg-yellow-500 dark:bg-yellow-400',\n error: 'bg-destructive',\n info: 'bg-blue-600 dark:bg-blue-500',\n },\n indeterminate: {\n true: 'animate-progress-indeterminate w-1/3',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n indeterminate: false,\n },\n }\n);\n\nexport type ProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\nexport type ProgressSize = 'sm' | 'md' | 'lg';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n progressTrackVariants,\n progressBarVariants,\n type ProgressVariant,\n type ProgressSize,\n} from './progress.variants';\n\n@Component({\n selector: 'sny-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'progressbar',\n '[attr.aria-valuenow]': 'indeterminate() ? null : value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': 'label()',\n '[class]': '\"w-full\"',\n },\n template: `\n <div [class]=\"trackClass()\">\n <div\n [class]=\"barClass()\"\n [style.width.%]=\"indeterminate() ? null : percentage()\"\n ></div>\n </div>\n `,\n styles: `\n @keyframes progress-indeterminate {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(400%); }\n }\n :host .animate-progress-indeterminate {\n animation: progress-indeterminate 1.5s ease-in-out infinite;\n }\n `,\n})\nexport class SnyProgressComponent {\n readonly value = input(0);\n readonly max = input(100);\n readonly variant = input<ProgressVariant>('default');\n readonly size = input<ProgressSize>('md');\n readonly indeterminate = input(false);\n readonly label = input('Progress');\n readonly class = input<string>('');\n\n readonly percentage = computed(() =>\n Math.min(100, (this.value() / this.max()) * 100)\n );\n\n protected readonly trackClass = computed(() =>\n cn(progressTrackVariants({ size: this.size() }), this.class())\n );\n\n protected readonly barClass = computed(() =>\n cn(\n progressBarVariants({\n variant: this.variant(),\n indeterminate: this.indeterminate(),\n })\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tooltipVariants = cva(\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95',\n {\n variants: {\n position: {\n top: 'slide-in-from-bottom-2',\n bottom: 'slide-in-from-top-2',\n left: 'slide-in-from-right-2',\n right: 'slide-in-from-left-2',\n },\n },\n defaultVariants: {\n position: 'top',\n },\n }\n);\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n Renderer2,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { tooltipVariants, type TooltipPosition } from './tooltip.variants';\n\nlet tooltipIdCounter = 0;\n\n@Directive({\n selector: '[snyTooltip]',\n standalone: true,\n exportAs: 'snyTooltip',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(keydown.escape)': 'hide()',\n '[attr.aria-describedby]': 'isOpen() ? tooltipId : null',\n },\n})\nexport class SnyTooltipDirective implements OnDestroy {\n readonly snyTooltip = input.required<string>();\n readonly tooltipPosition = input<TooltipPosition>('top');\n readonly tooltipDelay = input(300);\n readonly tooltipDisabled = input(false);\n readonly class = input<string>('');\n\n readonly isOpen = signal(false);\n readonly tooltipId = `sny-tooltip-${++tooltipIdCounter}`;\n\n private readonly el = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n private showTimeout: ReturnType<typeof setTimeout> | null = null;\n private tooltipEl: HTMLElement | null = null;\n\n constructor() {\n afterNextRender(() => {\n // cleanup handled in ngOnDestroy\n });\n }\n\n show(): void {\n if (this.tooltipDisabled()) return;\n this.showTimeout = setTimeout(() => {\n this.createTooltip();\n this.isOpen.set(true);\n }, this.tooltipDelay());\n }\n\n hide(): void {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n this.destroyTooltip();\n this.isOpen.set(false);\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private createTooltip(): void {\n if (this.tooltipEl) return;\n\n const tooltip = this.renderer.createElement('div') as HTMLElement;\n tooltip.id = this.tooltipId;\n tooltip.setAttribute('role', 'tooltip');\n tooltip.className = cn(\n tooltipVariants({ position: this.tooltipPosition() }),\n 'fixed pointer-events-none',\n this.class()\n );\n tooltip.textContent = this.snyTooltip();\n\n this.renderer.appendChild(document.body, tooltip);\n this.tooltipEl = tooltip;\n\n this.positionTooltip();\n }\n\n private positionTooltip(): void {\n if (!this.tooltipEl) return;\n\n const hostRect = this.el.nativeElement.getBoundingClientRect();\n const tooltipRect = this.tooltipEl.getBoundingClientRect();\n const position = this.tooltipPosition();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (position) {\n case 'top':\n top = hostRect.top - tooltipRect.height - gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'bottom':\n top = hostRect.bottom + gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'left':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left - tooltipRect.width - gap;\n break;\n case 'right':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + gap;\n break;\n }\n\n this.tooltipEl.style.top = `${top}px`;\n this.tooltipEl.style.left = `${left}px`;\n }\n\n private destroyTooltip(): void {\n if (this.tooltipEl) {\n this.tooltipEl.remove();\n this.tooltipEl = null;\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const fileInputVariants = cva(\n 'flex w-full cursor-pointer items-center gap-2 rounded-md border bg-background px-3 py-2 text-sm ring-offset-background transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-input',\n error: 'border-destructive focus-visible:ring-destructive',\n },\n size: {\n sm: 'h-8 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-12 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport type FileInputVariant = 'default' | 'error';\nexport type FileInputSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n viewChild,\n ElementRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport {\n fileInputVariants,\n type FileInputVariant,\n type FileInputSize,\n} from './file-input.variants';\n\n@Component({\n selector: 'sny-file-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '\"w-full\"',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyFileInputComponent), multi: true },\n ],\n template: `\n <label\n [class]=\"labelClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"sr-only\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"placeholder()\"\n [attr.aria-invalid]=\"variant() === 'error' || null\"\n (change)=\"onFileSelected($event)\"\n (blur)=\"onTouched()\"\n />\n <span class=\"truncate text-muted-foreground\">{{ fileName() }}</span>\n </label>\n `,\n})\nexport class SnyFileInputComponent implements ControlValueAccessor {\n readonly accept = input('');\n readonly multiple = input(false);\n readonly disabled = input(false);\n readonly placeholder = input('Choose file...');\n readonly variant = input<FileInputVariant>('default');\n readonly size = input<FileInputSize>('md');\n readonly maxSize = input(0);\n readonly class = input<string>('');\n\n readonly value = model<FileList | null>(null);\n readonly fileChange = output<FileList>();\n readonly error = output<string>();\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly fileInputRef = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n readonly isDragOver = signal(false);\n\n private _onChange: (value: FileList | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: FileList | null): void {\n this.value.set(val ?? null);\n }\n\n registerOnChange(fn: (value: FileList | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly fileName = computed(() => {\n const files = this.value();\n if (!files || files.length === 0) return this.placeholder();\n if (files.length === 1) return files[0].name;\n return `${files.length} files selected`;\n });\n\n protected readonly labelClass = computed(() =>\n cn(\n fileInputVariants({ variant: this.variant(), size: this.size() }),\n this.isDragOver() && 'ring-2 ring-ring',\n this.class()\n )\n );\n\n onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n this.processFiles(input.files);\n }\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.isDisabled()) {\n this.isDragOver.set(true);\n }\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.isDragOver.set(false);\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragOver.set(false);\n if (!this.isDisabled() && event.dataTransfer?.files) {\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n clear(): void {\n this.value.set(null);\n this._onChange(null);\n const inputEl = this.fileInputRef()?.nativeElement;\n if (inputEl) inputEl.value = '';\n }\n\n private processFiles(files: FileList): void {\n const maxSize = this.maxSize();\n if (maxSize > 0) {\n for (let i = 0; i < files.length; i++) {\n if (files[i].size > maxSize) {\n this.error.emit(`File \"${files[i].name}\" exceeds maximum size of ${maxSize} bytes`);\n return;\n }\n }\n }\n this.value.set(files);\n this._onChange(files);\n this.fileChange.emit(files);\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const fieldsetVariants = cva('space-y-4', {\n variants: {\n variant: {\n default: '',\n bordered: 'rounded-lg border border-border p-4',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport type FieldsetVariant = 'default' | 'bordered';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { fieldsetVariants, type FieldsetVariant } from './fieldset.variants';\n\n@Directive({\n selector: 'fieldset[snyFieldset]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.disabled]': 'disabled() || null',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class SnyFieldsetDirective {\n readonly variant = input<FieldsetVariant>('default');\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(fieldsetVariants({ variant: this.variant() }), this.class())\n );\n}\n\n@Directive({\n selector: 'legend[snyFieldsetLegend]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFieldsetLegendDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('text-sm font-medium leading-none', this.class())\n );\n}\n\n@Directive({\n selector: '[snyFieldsetContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFieldsetContentDirective {\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('space-y-2', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const ratingVariants = cva(\n 'inline-flex items-center gap-0.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\n {\n variants: {\n size: {\n sm: '[&_svg]:w-4 [&_svg]:h-4',\n md: '[&_svg]:w-5 [&_svg]:h-5',\n lg: '[&_svg]:w-7 [&_svg]:h-7',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type RatingSize = 'sm' | 'md' | 'lg';\nexport type RatingVariant = 'star' | 'heart';\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { ratingVariants, type RatingSize, type RatingVariant } from './rating.variants';\n\ninterface StarState {\n index: number;\n fill: 'full' | 'half' | 'empty';\n}\n\n@Component({\n selector: 'sny-rating',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'slider',\n 'tabindex': '0',\n '[attr.aria-valuenow]': 'value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-label]': '\"Rating\"',\n '[attr.aria-readonly]': 'readonly() || null',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n '(mouseleave)': 'onMouseLeave()',\n '(blur)': 'onTouched()',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyRatingComponent), multi: true },\n ],\n template: `\n @for (star of stars(); track star.index) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n [class]=\"starClass(star)\"\n (click)=\"onStarClick(star.index + 1)\"\n (mouseenter)=\"onStarHover(star.index + 1)\"\n >\n @if (ratingVariant() === 'star') {\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\" />\n } @else {\n <path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\" />\n }\n </svg>\n }\n `,\n})\nexport class SnyRatingComponent implements ControlValueAccessor {\n readonly value = model(0);\n readonly max = input(5);\n readonly readonly = input(false);\n readonly size = input<RatingSize>('md');\n readonly ratingVariant = input<RatingVariant>('star');\n readonly half = input(false);\n readonly class = input<string>('');\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.readonly() || this._disabledByCva());\n\n readonly hoverValue = signal<number | null>(null);\n\n private _onChange: (value: number) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: number): void {\n this.value.set(val ?? 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n readonly displayValue = computed(() => this.hoverValue() ?? this.value());\n\n readonly stars = computed<StarState[]>(() => {\n const display = this.displayValue();\n const m = this.max();\n return Array.from({ length: m }, (_, i) => {\n let fill: 'full' | 'half' | 'empty';\n if (i + 1 <= display) {\n fill = 'full';\n } else if (this.half() && i + 0.5 <= display) {\n fill = 'half';\n } else {\n fill = 'empty';\n }\n return { index: i, fill };\n });\n });\n\n protected readonly computedClass = computed(() =>\n cn(\n ratingVariants({ size: this.size() }),\n this.isDisabled() && 'pointer-events-none',\n this.class()\n )\n );\n\n starClass(star: StarState): string {\n const base = 'cursor-pointer transition-colors';\n switch (star.fill) {\n case 'full':\n return cn(base, 'fill-yellow-400 stroke-yellow-400');\n case 'half':\n return cn(base, 'fill-yellow-400/50 stroke-yellow-400');\n case 'empty':\n return cn(base, 'fill-none stroke-muted-foreground');\n }\n }\n\n onStarClick(index: number): void {\n if (this.isDisabled()) return;\n this.value.set(index);\n this._onChange(index);\n }\n\n onStarHover(index: number): void {\n if (this.isDisabled()) return;\n this.hoverValue.set(index);\n }\n\n onMouseLeave(): void {\n this.hoverValue.set(null);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.isDisabled()) return;\n const step = this.half() ? 0.5 : 1;\n let newVal: number | undefined;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newVal = Math.min(this.max(), this.value() + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newVal = Math.max(0, this.value() - step);\n break;\n case 'Home':\n event.preventDefault();\n newVal = 0;\n break;\n case 'End':\n event.preventDefault();\n newVal = this.max();\n break;\n }\n if (newVal !== undefined) {\n this.value.set(newVal);\n this._onChange(newVal);\n }\n }\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type NavbarVariant = 'default' | 'bordered' | 'floating';\n\n@Directive({\n selector: '[snyNavbar]',\n standalone: true,\n host: {\n 'role': 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyNavbarDirective {\n readonly variant = input<NavbarVariant>('default');\n readonly sticky = input(false);\n readonly ariaLabel = input<string>('Main navigation');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const base = 'flex items-center justify-between px-4 py-2 w-full bg-background';\n const variantClass =\n v === 'bordered' ? 'border-b border-border' :\n v === 'floating' ? 'mx-4 mt-2 rounded-lg border border-border shadow-sm' :\n '';\n const stickyClass = this.sticky() ? 'sticky top-0 z-50' : '';\n return cn(base, variantClass, stickyClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyNavbarBrand]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarBrandDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 font-bold text-lg', this.class()));\n}\n\n@Directive({\n selector: '[snyNavbarContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-1', this.class()));\n}\n\n@Directive({\n selector: '[snyNavbarEnd]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyNavbarEndDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 ml-auto', this.class()));\n}\n","import { ChangeDetectionStrategy, Component, Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_DRAWER = new InjectionToken<SnyDrawerLayoutComponent>('SnyDrawer');\n\n@Component({\n selector: '[snyDrawerLayout]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'snyDrawerLayout',\n providers: [{ provide: SNY_DRAWER, useExisting: SnyDrawerLayoutComponent }],\n host: {\n '[class]': 'computedClass()',\n },\n template: `\n <ng-content />\n @if (isOpen() && overlay()) {\n <div\n class=\"fixed inset-0 z-30 bg-black/50 transition-opacity\"\n (click)=\"close()\"\n ></div>\n }\n `,\n})\nexport class SnyDrawerLayoutComponent {\n readonly class = input<string>('');\n readonly overlay = input(true);\n readonly isOpen = signal(false);\n\n protected readonly computedClass = computed(() =>\n cn('relative flex h-full w-full overflow-hidden', this.class())\n );\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n}\n\n/** @deprecated Use SnyDrawerLayoutComponent instead */\nexport const SnyDrawerLayoutDirective = SnyDrawerLayoutComponent;\n\n@Directive({\n selector: '[snyDrawerContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyDrawerContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 overflow-auto', this.class())\n );\n}\n\nexport type DrawerSide = 'left' | 'right';\n\n@Directive({\n selector: '[snyDrawerSide]',\n standalone: true,\n host: {\n 'role': 'navigation',\n 'aria-label': 'Sidebar navigation',\n '[attr.aria-modal]': 'drawer.overlay() && drawer.isOpen() || null',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyDrawerSideDirective {\n protected readonly drawer = inject(SNY_DRAWER);\n readonly side = input<DrawerSide>('left');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const isOpen = this.drawer.isOpen();\n const s = this.side();\n const base = 'fixed inset-y-0 z-40 w-64 bg-background border-r border-border transition-transform duration-300 ease-in-out';\n const sideClass = s === 'left' ? 'left-0' : 'right-0 border-l border-r-0';\n const transformClass = isOpen\n ? 'translate-x-0'\n : s === 'left' ? '-translate-x-full' : 'translate-x-full';\n return cn(base, sideClass, transformClass, this.class());\n });\n}\n","import { cva } from 'class-variance-authority';\n\nexport const dividerVariants = cva('shrink-0 bg-border', {\n variants: {\n orientation: {\n horizontal: 'h-[1px] w-full',\n vertical: 'h-full w-[1px]',\n },\n variant: {\n solid: '',\n dashed: 'border-dashed',\n dotted: 'border-dotted',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n variant: 'solid',\n },\n});\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport {\n dividerVariants,\n type DividerOrientation,\n type DividerVariant,\n} from './divider.variants';\n\n@Component({\n selector: 'sny-divider',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'separator',\n '[attr.aria-orientation]': 'orientation()',\n },\n template: `\n @if (hasLabel()) {\n <div [class]=\"labelContainerClass()\">\n <div [class]=\"lineClass()\"></div>\n <span class=\"px-2 text-xs text-muted-foreground\">{{ label() }}</span>\n <div [class]=\"lineClass()\"></div>\n </div>\n } @else {\n <div [class]=\"dividerClass()\"></div>\n }\n `,\n})\nexport class SnyDividerComponent {\n readonly orientation = input<DividerOrientation>('horizontal');\n readonly variant = input<DividerVariant>('solid');\n readonly label = input<string>('');\n readonly class = input<string>('');\n\n readonly hasLabel = computed(() => !!this.label());\n\n protected readonly dividerClass = computed(() =>\n cn(dividerVariants({ orientation: this.orientation(), variant: this.variant() }), this.class())\n );\n\n protected readonly lineClass = computed(() =>\n cn('flex-1 bg-border', this.orientation() === 'horizontal' ? 'h-[1px]' : 'w-[1px]')\n );\n\n protected readonly labelContainerClass = computed(() =>\n cn(\n 'flex items-center',\n this.orientation() === 'horizontal' ? 'flex-row' : 'flex-col',\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, contentChildren, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_STEPS = new InjectionToken<SnyStepsDirective>('SnySteps');\n\nexport type StepStatus = 'default' | 'active' | 'completed' | 'error';\nexport type StepsOrientation = 'horizontal' | 'vertical';\nexport type StepsSize = 'sm' | 'md' | 'lg';\n\n@Directive({\n selector: '[snyStep]',\n standalone: true,\n host: {\n 'role': 'listitem',\n '[class]': 'computedClass()',\n '[attr.aria-current]': 'status() === \"active\" ? \"step\" : null',\n },\n})\nexport class SnyStepDirective {\n readonly status = input<StepStatus>('default');\n readonly icon = input<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const s = this.status();\n const base = 'flex items-center gap-2';\n\n // Step indicator via before: pseudo-element\n const indicatorBase = 'before:flex before:items-center before:justify-center before:w-8 before:h-8 before:rounded-full before:border-2 before:text-xs before:shrink-0';\n\n const statusIndicator =\n s === 'completed' ? 'before:bg-primary before:border-primary before:text-primary-foreground before:content-[\"✓\"]' :\n s === 'active' ? 'before:border-primary before:text-primary before:content-[\"●\"]' :\n s === 'error' ? 'before:border-destructive before:text-destructive before:content-[\"!\"]' :\n 'before:border-muted-foreground/30 before:text-muted-foreground before:content-[\"○\"]';\n\n const statusClass =\n s === 'completed' ? 'text-primary' :\n s === 'active' ? 'text-primary font-medium' :\n s === 'error' ? 'text-destructive' :\n 'text-muted-foreground';\n\n return cn(base, indicatorBase, statusIndicator, statusClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snySteps]',\n standalone: true,\n exportAs: 'snySteps',\n providers: [{ provide: SNY_STEPS, useExisting: SnyStepsDirective }],\n host: {\n 'role': 'list',\n 'aria-label': 'Progress steps',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyStepsDirective {\n readonly orientation = input<StepsOrientation>('horizontal');\n readonly size = input<StepsSize>('md');\n readonly class = input<string>('');\n\n readonly steps = contentChildren(SnyStepDirective);\n\n readonly activeIndex = computed(() => {\n const s = this.steps();\n return s.findIndex((step) => step.status() === 'active');\n });\n\n protected readonly computedClass = computed(() => {\n const o = this.orientation();\n const s = this.size();\n const base = 'flex';\n const orientationClass = o === 'horizontal'\n ? 'flex-row items-center gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:flex-1 [&>*+*]:before:h-px [&>*+*]:before:bg-border [&>*+*]:before:mx-2 [&>*+*]:before:min-w-[2rem]'\n : 'flex-col gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:w-px [&>*+*]:before:h-4 [&>*+*]:before:bg-border [&>*+*]:before:ml-4';\n const sizeClass = s === 'sm' ? 'text-xs' : s === 'lg' ? 'text-base' : 'text-sm';\n return cn(base, orientationClass, sizeClass, this.class());\n });\n}\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_STAT = new InjectionToken<SnyStatDirective>('SnyStat');\n\nlet statIdCounter = 0;\n\n@Directive({\n selector: '[snyStat]',\n standalone: true,\n providers: [{ provide: SNY_STAT, useExisting: SnyStatDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatDirective {\n readonly class = input<string>('');\n readonly titleId = `sny-stat-title-${++statIdCounter}`;\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-0.5', this.class())\n );\n}\n\n@Directive({\n selector: '[snyStatTitle]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[id]': 'stat.titleId',\n },\n})\nexport class SnyStatTitleDirective {\n readonly class = input<string>('');\n readonly stat = inject(SNY_STAT);\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyStatValue]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-labelledby]': 'stat.titleId',\n },\n})\nexport class SnyStatValueDirective {\n readonly class = input<string>('');\n readonly stat = inject(SNY_STAT);\n protected readonly computedClass = computed(() =>\n cn('text-2xl font-bold', this.class())\n );\n}\n\nexport type StatDescriptionVariant = 'default' | 'success' | 'error';\n\n@Directive({\n selector: '[snyStatDescription]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatDescriptionDirective {\n readonly variant = input<StatDescriptionVariant>('default');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'success' ? 'text-green-600 dark:text-green-400' :\n v === 'error' ? 'text-destructive' :\n 'text-muted-foreground';\n return cn('text-xs', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyStatFigure]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyStatFigureDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-muted-foreground', this.class())\n );\n}\n","import { Directive, InjectionToken, computed, contentChildren, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_TIMELINE = new InjectionToken<SnyTimelineDirective>('SnyTimeline');\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineConnect = 'start' | 'end' | 'both' | 'none';\nexport type TimelineMiddleVariant = 'default' | 'primary' | 'success' | 'error';\n\n@Directive({\n selector: '[snyTimelineItem]',\n standalone: true,\n host: { 'role': 'listitem', '[class]': 'computedClass()' },\n})\nexport class SnyTimelineItemDirective {\n readonly connect = input<TimelineConnect>('both');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('relative flex gap-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimelineStart]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTimelineStartDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground min-w-[80px] text-right', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimelineMiddle]',\n standalone: true,\n host: { '[class]': 'computedClass()', 'aria-hidden': 'true' },\n})\nexport class SnyTimelineMiddleDirective {\n readonly variant = input<TimelineMiddleVariant>('default');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'primary' ? 'bg-primary' :\n v === 'success' ? 'bg-green-600 dark:bg-green-500' :\n v === 'error' ? 'bg-destructive' :\n 'bg-border';\n return cn('flex flex-col items-center', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyTimelineEnd]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyTimelineEndDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 pb-8', this.class())\n );\n}\n\n@Directive({\n selector: '[snyTimeline]',\n standalone: true,\n exportAs: 'snyTimeline',\n providers: [{ provide: SNY_TIMELINE, useExisting: SnyTimelineDirective }],\n host: {\n 'role': 'list',\n 'aria-label': 'Timeline',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyTimelineDirective {\n readonly orientation = input<TimelineOrientation>('vertical');\n readonly class = input<string>('');\n\n readonly items = contentChildren(SnyTimelineItemDirective);\n\n protected readonly computedClass = computed(() => {\n const o = this.orientation();\n return cn(\n 'relative',\n o === 'vertical' ? 'flex flex-col' : 'flex flex-row',\n this.class()\n );\n });\n}\n","import { cva } from 'class-variance-authority';\n\nexport const kbdVariants = cva(\n 'pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium text-muted-foreground',\n {\n variants: {\n size: {\n sm: 'h-5 text-[10px]',\n md: 'h-6 text-xs',\n lg: 'h-7 text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport type KbdSize = 'sm' | 'md' | 'lg';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { kbdVariants, type KbdSize } from './kbd.variants';\n\n@Directive({\n selector: 'kbd[snyKbd]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyKbdDirective {\n readonly size = input<KbdSize>('md');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(kbdVariants({ size: this.size() }), this.class())\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type ListVariant = 'default' | 'bordered' | 'hover';\n\n@Directive({\n selector: '[snyList]',\n standalone: true,\n host: {\n 'role': 'list',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyListDirective {\n readonly variant = input<ListVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'bordered' ? 'divide-y divide-border border rounded-md' :\n v === 'hover' ? '[&>[snyListItem]]:hover:bg-accent' :\n '';\n return cn('flex flex-col', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyListItem]',\n standalone: true,\n host: {\n 'role': 'listitem',\n '[class]': 'computedClass()',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class SnyListItemDirective {\n readonly active = input(false);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-3 px-3 py-2 transition-colors',\n this.active() && 'bg-accent text-accent-foreground',\n this.disabled() && 'opacity-50 pointer-events-none',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyListItemIcon]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemIconDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0 text-muted-foreground', this.class())\n );\n}\n\n@Directive({\n selector: '[snyListItemContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemContentDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-1 min-w-0', this.class())\n );\n}\n\n@Directive({\n selector: '[snyListItemAction]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyListItemActionDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0', this.class())\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const statusVariants = cva('inline-block rounded-full', {\n variants: {\n variant: {\n default: 'bg-primary',\n success: 'bg-green-500',\n warning: 'bg-yellow-500',\n error: 'bg-destructive',\n info: 'bg-blue-500',\n neutral: 'bg-muted-foreground',\n },\n size: {\n xs: 'h-1.5 w-1.5',\n sm: 'h-2 w-2',\n md: 'h-2.5 w-2.5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\nexport type StatusVariant = 'default' | 'success' | 'warning' | 'error' | 'info' | 'neutral';\nexport type StatusSize = 'xs' | 'sm' | 'md';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { statusVariants, type StatusVariant, type StatusSize } from './status.variants';\n\nconst variantLabels: Record<StatusVariant, string> = {\n default: 'Active',\n success: 'Online',\n warning: 'Away',\n error: 'Error',\n info: 'Info',\n neutral: 'Offline',\n};\n\n@Directive({\n selector: '[snyStatus]',\n standalone: true,\n host: {\n 'role': 'status',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyStatusDirective {\n readonly variant = input<StatusVariant>('default');\n readonly size = input<StatusSize>('md');\n readonly pulse = input(false);\n readonly class = input<string>('');\n\n protected readonly ariaLabel = computed(() => variantLabels[this.variant()]);\n\n protected readonly computedClass = computed(() =>\n cn(\n statusVariants({ variant: this.variant(), size: this.size() }),\n this.pulse() && 'animate-pulse',\n this.class()\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type IndicatorPosition = 'top-start' | 'top-center' | 'top-end' | 'middle-start' | 'middle-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';\nexport type IndicatorVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n\nconst positionMap: Record<IndicatorPosition, string> = {\n 'top-start': 'top-0 left-0 -translate-x-1/2 -translate-y-1/2',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 -translate-y-1/2',\n 'top-end': 'top-0 right-0 translate-x-1/2 -translate-y-1/2',\n 'middle-start': 'top-1/2 left-0 -translate-x-1/2 -translate-y-1/2',\n 'middle-end': 'top-1/2 right-0 translate-x-1/2 -translate-y-1/2',\n 'bottom-start': 'bottom-0 left-0 -translate-x-1/2 translate-y-1/2',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2',\n 'bottom-end': 'bottom-0 right-0 translate-x-1/2 translate-y-1/2',\n};\n\nconst variantMap: Record<IndicatorVariant, string> = {\n default: 'bg-primary text-primary-foreground',\n primary: 'bg-primary text-primary-foreground',\n secondary: 'bg-secondary text-secondary-foreground',\n success: 'bg-green-600 text-white dark:bg-green-500',\n warning: 'bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\n error: 'bg-destructive text-destructive-foreground',\n};\n\n@Directive({\n selector: '[snyIndicator]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyIndicatorDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('relative inline-flex', this.class())\n );\n}\n\n@Directive({\n selector: '[snyIndicatorBadge]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.aria-label]': 'ariaLabel() || null',\n },\n})\nexport class SnyIndicatorBadgeDirective {\n readonly position = input<IndicatorPosition>('top-end');\n readonly variant = input<IndicatorVariant>('default');\n readonly ariaLabel = input<string>('');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute z-10 inline-flex items-center justify-center rounded-full text-xs font-bold min-w-[1.25rem] h-5 px-1',\n positionMap[this.position()],\n variantMap[this.variant()],\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type ChatBubbleAlign = 'start' | 'end';\nexport type ChatBubbleContentVariant = 'default' | 'primary' | 'secondary' | 'accent';\n\nexport const SNY_CHAT_BUBBLE = new InjectionToken<SnyChatBubbleDirective>('SnyChatBubble');\n\n@Directive({\n selector: '[snyChatBubble]',\n standalone: true,\n providers: [{ provide: SNY_CHAT_BUBBLE, useExisting: SnyChatBubbleDirective }],\n host: {\n 'role': 'article',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyChatBubbleDirective {\n readonly align = input<ChatBubbleAlign>('start');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex gap-3 mb-4',\n this.align() === 'end' && 'flex-row-reverse',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleAvatar]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleAvatarDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('flex-shrink-0 w-10 h-10 rounded-full overflow-hidden', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleHeader]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleHeaderDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-xs text-muted-foreground mb-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleContent]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleContentDirective {\n readonly variant = input<ChatBubbleContentVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant();\n const variantClass =\n v === 'primary' ? 'bg-primary text-primary-foreground' :\n v === 'secondary' ? 'bg-blue-100 text-blue-900 dark:bg-blue-900 dark:text-blue-100' :\n v === 'accent' ? 'bg-violet-100 text-violet-900 dark:bg-violet-900 dark:text-violet-100' :\n 'bg-muted';\n return cn('rounded-lg px-3 py-2 text-sm max-w-[80%]', variantClass, this.class());\n });\n}\n\n@Directive({\n selector: '[snyChatBubbleFooter]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleFooterDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('text-xs text-muted-foreground mt-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyChatBubbleBody]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyChatBubbleBodyDirective {\n private readonly chatBubble = inject(SNY_CHAT_BUBBLE);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col',\n this.chatBubble.align() === 'end' && 'items-end',\n this.class()\n )\n );\n}\n","import {\n Directive, InjectionToken, computed, contentChildren, inject, input, signal, effect, OnDestroy,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_CAROUSEL = new InjectionToken<SnyCarouselDirective>('SnyCarousel');\n\n@Directive({\n selector: '[snyCarouselItem]',\n standalone: true,\n host: {\n 'role': 'group',\n '[attr.aria-roledescription]': '\"slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselItemDirective {\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('min-w-0 shrink-0 grow-0 basis-full pl-4', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselContent]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[style.transform]': 'transformStyle()',\n },\n})\nexport class SnyCarouselContentDirective {\n private readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn('flex -ml-4 transition-transform duration-300 ease-in-out', this.class())\n );\n\n protected readonly transformStyle = computed(() =>\n `translateX(-${this.carousel.currentIndex() * 100}%)`\n );\n}\n\n@Directive({\n selector: '[snyCarousel]',\n standalone: true,\n exportAs: 'snyCarousel',\n providers: [{ provide: SNY_CAROUSEL, useExisting: SnyCarouselDirective }],\n host: {\n 'role': 'region',\n '[attr.aria-roledescription]': '\"carousel\"',\n 'aria-label': 'Carousel',\n 'tabindex': '0',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyCarouselDirective implements OnDestroy {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly loop = input(false);\n readonly autoplay = input(0);\n readonly class = input<string>('');\n\n readonly items = contentChildren(SnyCarouselItemDirective, { descendants: true });\n readonly currentIndex = signal(0);\n readonly totalItems = computed(() => this.items().length);\n\n private autoplayInterval: ReturnType<typeof setInterval> | null = null;\n\n constructor() {\n effect(() => {\n const ms = this.autoplay();\n this.clearAutoplay();\n if (ms > 0) {\n this.autoplayInterval = setInterval(() => this.next(), ms);\n }\n });\n }\n\n next(): void {\n const total = this.totalItems();\n if (total === 0) return;\n this.currentIndex.update((i) => {\n if (i >= total - 1) return this.loop() ? 0 : i;\n return i + 1;\n });\n }\n\n prev(): void {\n const total = this.totalItems();\n if (total === 0) return;\n this.currentIndex.update((i) => {\n if (i <= 0) return this.loop() ? total - 1 : i;\n return i - 1;\n });\n }\n\n goTo(index: number): void {\n this.currentIndex.set(Math.max(0, Math.min(index, this.totalItems() - 1)));\n }\n\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.prev();\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.next();\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.clearAutoplay();\n }\n\n private clearAutoplay(): void {\n if (this.autoplayInterval) {\n clearInterval(this.autoplayInterval);\n this.autoplayInterval = null;\n }\n }\n\n protected readonly computedClass = computed(() =>\n cn('relative overflow-hidden', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselPrev]',\n standalone: true,\n host: {\n '(click)': 'carousel.prev()',\n '[attr.aria-label]': '\"Previous slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselPrevDirective {\n readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('absolute left-2 top-1/2 -translate-y-1/2 z-10', this.class())\n );\n}\n\n@Directive({\n selector: '[snyCarouselNext]',\n standalone: true,\n host: {\n '(click)': 'carousel.next()',\n '[attr.aria-label]': '\"Next slide\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyCarouselNextDirective {\n readonly carousel = inject(SNY_CAROUSEL);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn('absolute right-2 top-1/2 -translate-y-1/2 z-10', this.class())\n );\n}\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type DockPosition = 'bottom' | 'top';\n\n@Directive({\n selector: '[snyDock]',\n standalone: true,\n host: {\n 'role': 'toolbar',\n 'aria-label': 'Dock',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SnyDockDirective {\n readonly position = input<DockPosition>('bottom');\n readonly class = input<string>('');\n\n private readonly elRef = inject(ElementRef);\n\n protected readonly computedClass = computed(() =>\n cn(\n 'fixed left-1/2 -translate-x-1/2 z-50 flex items-center gap-1 rounded-full border bg-background/80 backdrop-blur-sm px-3 py-2 shadow-lg',\n this.position() === 'bottom' ? 'bottom-4' : 'top-4',\n this.class()\n )\n );\n\n onKeydown(event: KeyboardEvent): void {\n const items = Array.from(\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[snyDockItem]')\n );\n if (items.length === 0) return;\n\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n nextIndex = (currentIndex + 1) % items.length;\n break;\n case 'ArrowLeft':\n event.preventDefault();\n nextIndex = (currentIndex - 1 + items.length) % items.length;\n break;\n case 'Home':\n event.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n }\n if (nextIndex !== null) {\n items[nextIndex].focus();\n }\n }\n}\n\n@Directive({\n selector: '[snyDockItem]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n },\n})\nexport class SnyDockItemDirective {\n readonly active = input(false);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full p-2 transition-all hover:scale-110',\n this.active() && 'bg-primary text-primary-foreground',\n this.class()\n )\n );\n}\n","import { Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_FAB = new InjectionToken<SnyFabDirective>('SnyFab');\nexport type FabPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\nexport type FabDirection = 'up' | 'down' | 'left' | 'right';\n\nconst positionMap: Record<FabPosition, string> = {\n 'bottom-right': 'fixed bottom-6 right-6',\n 'bottom-left': 'fixed bottom-6 left-6',\n 'top-right': 'fixed top-6 right-6',\n 'top-left': 'fixed top-6 left-6',\n};\n\n@Directive({\n selector: '[snyFab]',\n standalone: true,\n exportAs: 'snyFab',\n providers: [{ provide: SNY_FAB, useExisting: SnyFabDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyFabDirective {\n readonly position = input<FabPosition>('bottom-right');\n readonly direction = input<FabDirection>('up');\n readonly class = input<string>('');\n readonly isOpen = signal(false);\n\n toggle(): void { this.isOpen.update((v) => !v); }\n open(): void { this.isOpen.set(true); }\n close(): void { this.isOpen.set(false); }\n\n protected readonly computedClass = computed(() =>\n cn('z-50 flex flex-col items-center gap-2', positionMap[this.position()], this.class())\n );\n}\n\n@Directive({\n selector: '[snyFabTrigger]',\n standalone: true,\n host: {\n '(click)': 'fab.toggle()',\n '[attr.aria-expanded]': 'fab.isOpen()',\n '[attr.aria-haspopup]': '\"menu\"',\n 'aria-label': 'Quick actions',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFabTriggerDirective {\n readonly fab = inject(SNY_FAB);\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg h-14 w-14 hover:bg-primary/90 transition-transform',\n this.fab.isOpen() && 'rotate-45',\n this.class()\n )\n );\n}\n\n@Directive({\n selector: '[snyFabAction]',\n standalone: true,\n host: {\n 'role': 'menuitem',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyFabActionDirective {\n readonly fab = inject(SNY_FAB);\n readonly ariaLabel = input<string>('');\n readonly class = input<string>('');\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-secondary text-secondary-foreground shadow-md h-10 w-10 transition-all',\n this.fab.isOpen() ? 'scale-100 opacity-100' : 'scale-0 opacity-0',\n this.class()\n )\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport type RadialProgressSize = 'sm' | 'md' | 'lg';\nexport type RadialProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\nconst sizeMap: Record<RadialProgressSize, number> = { sm: 48, md: 72, lg: 96 };\n\nconst variantColorMap: Record<RadialProgressVariant, string> = {\n default: 'stroke-primary',\n success: 'stroke-green-600 dark:stroke-green-500',\n warning: 'stroke-yellow-500',\n error: 'stroke-destructive',\n info: 'stroke-blue-600 dark:stroke-blue-500',\n};\n\n@Component({\n selector: 'sny-radial-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'progressbar',\n '[attr.aria-valuenow]': 'value()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[class]': '\"inline-flex items-center justify-center\"',\n },\n template: `\n <div class=\"relative\" [style.width.px]=\"svgSize()\" [style.height.px]=\"svgSize()\">\n <svg [attr.width]=\"svgSize()\" [attr.height]=\"svgSize()\" class=\"-rotate-90\">\n <circle\n [attr.cx]=\"svgSize() / 2\"\n [attr.cy]=\"svgSize() / 2\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n class=\"stroke-muted\"\n [attr.stroke-width]=\"thickness()\"\n />\n <circle\n [attr.cx]=\"svgSize() / 2\"\n [attr.cy]=\"svgSize() / 2\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n [class]=\"strokeClass()\"\n [attr.stroke-width]=\"thickness()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"offset()\"\n stroke-linecap=\"round\"\n class=\"transition-all duration-300\"\n />\n </svg>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <ng-content />\n </div>\n </div>\n `,\n})\nexport class SnyRadialProgressComponent {\n readonly value = input(0);\n readonly size = input<RadialProgressSize>('md');\n readonly thickness = input(4);\n readonly variant = input<RadialProgressVariant>('default');\n readonly class = input<string>('');\n\n readonly svgSize = computed(() => sizeMap[this.size()]);\n readonly radius = computed(() => (this.svgSize() - this.thickness()) / 2);\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\n readonly offset = computed(() => this.circumference() - (this.value() / 100) * this.circumference());\n\n readonly strokeClass = computed(() => variantColorMap[this.variant()]);\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal } from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\n@Component({\n selector: 'sny-diff',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '\"relative overflow-hidden select-none w-full\"',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'onPointerUp()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n <div class=\"relative w-full\" [style.aspect-ratio]=\"'16/9'\">\n <div class=\"absolute inset-0\">\n <ng-content select=\"[snyDiffAfter]\" />\n </div>\n <div class=\"absolute inset-0 overflow-hidden\" [style.width.%]=\"value()\">\n <ng-content select=\"[snyDiffBefore]\" />\n </div>\n <div\n class=\"absolute top-0 bottom-0 w-1 bg-foreground cursor-col-resize z-10\"\n [style.left.%]=\"value()\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuenow]=\"value()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-label=\"Comparison slider\"\n >\n <div class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-foreground/80 flex items-center justify-center text-background text-xs\">\n ⇔\n </div>\n </div>\n </div>\n `,\n})\nexport class SnyDiffComponent {\n readonly value = model(50);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly class = input<string>('');\n\n readonly isDragging = signal(false);\n\n onPointerDown(event: PointerEvent): void {\n this.isDragging.set(true);\n (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n this.updateValue(event);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (!this.isDragging()) return;\n this.updateValue(event);\n }\n\n onPointerUp(): void {\n this.isDragging.set(false);\n }\n\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.value.update((v) => Math.max(0, v - 5));\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.value.update((v) => Math.min(100, v + 5));\n break;\n }\n }\n\n private updateValue(event: PointerEvent): void {\n const target = (event.currentTarget as HTMLElement).closest('sny-diff');\n if (!target) return;\n const rect = target.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const pct = Math.max(0, Math.min(100, (x / rect.width) * 100));\n this.value.set(Math.round(pct));\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const linkVariants = cva(\n 'inline-flex items-center gap-1 underline-offset-4 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\n {\n variants: {\n variant: {\n default: 'text-foreground underline hover:text-foreground/80',\n primary: 'text-primary underline hover:text-primary/80',\n secondary: 'text-muted-foreground underline hover:text-foreground',\n hover: 'text-foreground no-underline hover:underline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type LinkVariant = 'default' | 'primary' | 'secondary' | 'hover';\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport { linkVariants, type LinkVariant } from './link.variants';\n\n@Directive({\n selector: 'a[snyLink]',\n standalone: true,\n host: {\n '[class]': 'computedClass()',\n },\n})\nexport class SnyLinkDirective {\n readonly variant = input<LinkVariant>('default');\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(linkVariants({ variant: this.variant() }), this.class())\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport type { CalendarDay, CalendarMode, DateRange } from './calendar.types';\n\n@Component({\n selector: 'sny-calendar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClass()',\n '(keydown)': 'onKeydown($event)',\n 'role': 'application',\n 'aria-label': 'Calendar',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyCalendarComponent), multi: true },\n ],\n template: `\n @if (showNavigation()) {\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"prevMonth()\"\n aria-label=\"Previous month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n <span class=\"text-sm font-semibold tracking-tight\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"nextMonth()\"\n aria-label=\"Next month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n }\n\n <div role=\"grid\" class=\"grid grid-cols-7 gap-1\">\n @for (dayName of weekDays; track dayName) {\n <div class=\"text-center text-xs text-muted-foreground font-medium h-9 flex items-center justify-center\" role=\"columnheader\">{{ dayName }}</div>\n }\n @for (day of days(); track day.date.getTime()) {\n <button\n type=\"button\"\n [class]=\"dayClass(day)\"\n [disabled]=\"day.isDisabled\"\n [attr.aria-selected]=\"day.isSelected || day.isRangeStart || day.isRangeEnd || null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n [attr.aria-label]=\"day.date.toLocaleDateString(locale(), { month: 'long', day: 'numeric', year: 'numeric' })\"\n role=\"gridcell\"\n (click)=\"onDayClick(day.date)\"\n (mouseenter)=\"onDayHover(day.date)\"\n (mouseleave)=\"onDayHover(null)\"\n >\n {{ day.day }}\n </button>\n }\n </div>\n `,\n})\nexport class SnyCalendarComponent implements ControlValueAccessor {\n // Existing inputs (backwards compatible)\n readonly value = model<Date | null>(null);\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly locale = input('en-US');\n readonly class = input<string>('');\n\n // Range mode inputs\n readonly mode = input<CalendarMode>('single');\n readonly rangeValue = model<DateRange | null>(null);\n readonly showNavigation = input(true);\n readonly initialViewDate = input<Date | undefined>(undefined);\n readonly borderless = input(false);\n\n readonly hostClass = computed(() =>\n this.borderless()\n ? 'inline-block p-3 bg-background'\n : 'inline-block p-4 rounded-md border border-border bg-background'\n );\n\n // Internal state\n private readonly _disabledByCva = signal(false);\n readonly hoveredDate = signal<Date | null>(null);\n readonly viewDate = linkedSignal(() => this.initialViewDate() ?? new Date());\n readonly weekDays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n // CVA\n private _onChange: (value: unknown) => void = () => {};\n protected onTouched: () => void = () => {};\n\n writeValue(val: unknown): void {\n if (this.mode() === 'range') {\n this.rangeValue.set((val as DateRange) ?? null);\n const range = val as DateRange | null;\n if (range?.start) {\n this.viewDate.set(new Date(range.start.getFullYear(), range.start.getMonth(), 1));\n }\n } else {\n this.value.set((val as Date) ?? null);\n if (val) {\n const d = val as Date;\n this.viewDate.set(new Date(d.getFullYear(), d.getMonth(), 1));\n }\n }\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Computed\n readonly monthYearLabel = computed(() => {\n const d = this.viewDate();\n return d.toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' });\n });\n\n readonly days = computed<CalendarDay[]>(() => {\n const view = this.viewDate();\n const year = view.getFullYear();\n const month = view.getMonth();\n const today = new Date();\n const selected = this.value();\n const rangeVal = this.mode() === 'range' ? this.rangeValue() : null;\n const hovered = this.hoveredDate();\n const minDate = this.min();\n const maxDate = this.max();\n\n const firstDay = new Date(year, month, 1);\n const startDay = firstDay.getDay();\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const daysInPrevMonth = new Date(year, month, 0).getDate();\n\n const days: CalendarDay[] = [];\n\n for (let i = startDay - 1; i >= 0; i--) {\n const date = new Date(year, month - 1, daysInPrevMonth - i);\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n for (let d = 1; d <= daysInMonth; d++) {\n const date = new Date(year, month, d);\n days.push(this.createDay(date, true, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n const remaining = 42 - days.length;\n for (let d = 1; d <= remaining; d++) {\n const date = new Date(year, month + 1, d);\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\n }\n\n return days;\n });\n\n // Navigation\n prevMonth(): void {\n this.viewDate.set(new Date(\n this.viewDate().getFullYear(),\n this.viewDate().getMonth() - 1,\n 1,\n ));\n }\n\n nextMonth(): void {\n this.viewDate.set(new Date(\n this.viewDate().getFullYear(),\n this.viewDate().getMonth() + 1,\n 1,\n ));\n }\n\n // Click handler\n onDayClick(date: Date): void {\n if (this.mode() === 'single') {\n this.value.set(date);\n this._onChange(date);\n this.onTouched();\n return;\n }\n\n // Range mode\n const current = this.rangeValue();\n if (!current?.start || (current.start && current.end)) {\n this.rangeValue.set({ start: date, end: null });\n } else {\n const start = current.start;\n if (date < start) {\n this.rangeValue.set({ start: date, end: start });\n } else if (this.isSameDay(date, start)) {\n this.rangeValue.set({ start: date, end: date });\n } else {\n this.rangeValue.set({ start, end: date });\n }\n }\n this._onChange(this.rangeValue());\n this.onTouched();\n }\n\n // Hover handler\n onDayHover(date: Date | null): void {\n if (this.mode() === 'range') {\n this.hoveredDate.set(date);\n }\n }\n\n // Keyboard\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.navigateDays(-1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n this.navigateDays(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.navigateDays(-7);\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.navigateDays(7);\n break;\n }\n }\n\n // Styling\n dayClass(day: CalendarDay): string {\n const isEndpoint = day.isRangeStart || day.isRangeEnd;\n return cn(\n 'inline-flex items-center justify-center text-sm h-9 w-9 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n // Shape\n day.isRangeStart && !day.isRangeEnd ? 'rounded-l-md rounded-r-none' :\n day.isRangeEnd && !day.isRangeStart ? 'rounded-r-md rounded-l-none' :\n day.isInRange || day.isRangePreview ? 'rounded-none' :\n 'rounded-md',\n // Base text color\n !day.isCurrentMonth && 'text-muted-foreground/40',\n day.isCurrentMonth && !day.isSelected && !isEndpoint && 'text-foreground',\n // Today indicator\n day.isToday && !day.isSelected && !isEndpoint && 'bg-accent text-accent-foreground font-semibold',\n // Single selected\n day.isSelected && this.mode() === 'single' && 'bg-primary text-primary-foreground font-semibold shadow-sm',\n // Range endpoints\n isEndpoint && 'bg-primary text-primary-foreground font-semibold shadow-sm',\n // Range band\n day.isInRange && 'bg-primary/10 text-foreground',\n day.isRangePreview && 'bg-primary/5 text-foreground',\n // States\n day.isDisabled && 'opacity-40 cursor-not-allowed pointer-events-none',\n !day.isDisabled && !day.isSelected && !isEndpoint && 'hover:bg-accent hover:text-accent-foreground cursor-pointer',\n );\n }\n\n // Private helpers\n private navigateDays(offset: number): void {\n const current = this.value() ?? new Date();\n const next = new Date(current);\n next.setDate(next.getDate() + offset);\n this.value.set(next);\n this._onChange(next);\n this.viewDate.set(new Date(next.getFullYear(), next.getMonth(), 1));\n }\n\n private createDay(\n date: Date,\n isCurrentMonth: boolean,\n today: Date,\n selected: Date | null,\n rangeVal: DateRange | null,\n hoveredDate: Date | null,\n minDate: Date | undefined,\n maxDate: Date | undefined,\n ): CalendarDay {\n const isToday = this.isSameDay(date, today);\n const isSelected = selected ? this.isSameDay(date, selected) : false;\n const isDisabled =\n this._disabledByCva() ||\n (minDate ? date < minDate : false) ||\n (maxDate ? date > maxDate : false);\n\n let isRangeStart = false;\n let isRangeEnd = false;\n let isInRange = false;\n let isRangePreview = false;\n\n if (rangeVal) {\n const { start, end } = rangeVal;\n if (start) isRangeStart = this.isSameDay(date, start);\n if (end) isRangeEnd = this.isSameDay(date, end);\n if (start && end) {\n isInRange = date > start && date < end && !isRangeStart && !isRangeEnd;\n }\n // Preview: start set, no end yet, user hovering\n if (start && !end && hoveredDate && !this.isSameDay(hoveredDate, start)) {\n const previewStart = hoveredDate > start ? start : hoveredDate;\n const previewEnd = hoveredDate > start ? hoveredDate : start;\n if (date > previewStart && date < previewEnd) {\n isRangePreview = true;\n }\n if (this.isSameDay(date, hoveredDate) && !isRangeStart) {\n isRangePreview = true;\n }\n }\n }\n\n return {\n date, day: date.getDate(), isCurrentMonth, isToday, isSelected, isDisabled,\n isRangeStart, isRangeEnd, isInRange, isRangePreview,\n };\n }\n\n private isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const datePickerTriggerVariants = cva(\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { SnyCalendarComponent } from '../calendar/calendar.component';\nimport { datePickerTriggerVariants, type DatePickerSize } from './date-picker.variants';\n\n@Component({\n selector: 'sny-date-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyCalendarComponent],\n host: { class: 'relative inline-block w-full' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyDatePickerComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\n {{ displayValue() || placeholder() }}\n </span>\n <div class=\"flex items-center gap-1 shrink-0\">\n @if (clearable() && value()) {\n <button\n type=\"button\"\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\n </div>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose date\"\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\n >\n <sny-calendar\n [(value)]=\"internalValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n (valueChange)=\"onDateSelected($event)\"\n />\n </div>\n }\n `,\n})\nexport class SnyDatePickerComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model<Date | null>(null);\n readonly placeholder = input('Pick a date...');\n readonly size = input<DatePickerSize>('md');\n readonly locale = input('en-US');\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly clearable = input(true);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n readonly open = signal(false);\n readonly internalValue = signal<Date | null>(null);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: Date | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n // CVA\n writeValue(val: Date | null): void {\n this.value.set(val ?? null);\n this.internalValue.set(val ?? null);\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Display\n readonly displayValue = computed(() => {\n const d = this.value();\n if (!d) return '';\n return d.toLocaleDateString(this.locale(), this.dateFormat());\n });\n\n protected readonly triggerClass = computed(() =>\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n // Actions\n onDateSelected(date: Date | null): void {\n this.value.set(date);\n this._onChange(date);\n this.close();\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n this.value.set(null);\n this.internalValue.set(null);\n this._onChange(null);\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.internalValue.set(this.value());\n this.updateDropdownPosition();\n this.open.set(true);\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n // Positioning (combobox pattern)\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { SnyCalendarComponent } from '../calendar/calendar.component';\nimport type { DateRange, DatePickerPreset } from '../calendar/calendar.types';\nimport { datePickerTriggerVariants, type DatePickerSize } from '../date-picker/date-picker.variants';\n\n@Component({\n selector: 'sny-date-range-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyCalendarComponent],\n host: { class: 'relative inline-block w-full' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyDateRangePickerComponent), multi: true },\n ],\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\n {{ displayValue() || placeholder() }}\n </span>\n <div class=\"flex items-center gap-1 shrink-0\">\n @if (clearable() && value()?.start) {\n <button\n type=\"button\"\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date range\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\n </div>\n </button>\n\n @if (open()) {\n <div\n #dropdownEl\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose date range\"\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\n >\n <div class=\"flex flex-col sm:flex-row\">\n <!-- Presets sidebar -->\n @if (presets().length > 0) {\n <div class=\"border-b sm:border-b-0 sm:border-r border-border p-3 space-y-0.5 sm:min-w-[150px]\">\n <p class=\"px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">Presets</p>\n @for (preset of presets(); track preset.label) {\n <button\n type=\"button\"\n class=\"w-full text-left px-3 py-2 text-sm rounded-md hover:bg-accent hover:text-accent-foreground transition-colors cursor-pointer\"\n (mousedown)=\"selectPreset(preset); $event.preventDefault()\"\n >\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <!-- Calendar(s) -->\n <div class=\"flex flex-col sm:flex-row\">\n @if (dualCalendar()) {\n <!-- Left calendar -->\n <div class=\"p-1\">\n <div class=\"flex items-center justify-between px-3 py-2\">\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"prevMonth()\"\n aria-label=\"Previous month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\n </button>\n <span class=\"text-sm font-semibold tracking-tight\">{{ leftMonthLabel() }}</span>\n <div class=\"w-8\"></div>\n </div>\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n [showNavigation]=\"false\"\n [borderless]=\"true\"\n [initialViewDate]=\"leftViewDate()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n </div>\n <div class=\"border-t sm:border-t-0 sm:border-l border-border\"></div>\n <!-- Right calendar -->\n <div class=\"p-1\">\n <div class=\"flex items-center justify-between px-3 py-2\">\n <div class=\"w-8\"></div>\n <span class=\"text-sm font-semibold tracking-tight\">{{ rightMonthLabel() }}</span>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\n (click)=\"nextMonth()\"\n aria-label=\"Next month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\n </button>\n </div>\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n [showNavigation]=\"false\"\n [borderless]=\"true\"\n [initialViewDate]=\"rightViewDate()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n </div>\n } @else {\n <!-- Single calendar -->\n <sny-calendar\n mode=\"range\"\n [(rangeValue)]=\"internalRange\"\n [min]=\"min()\"\n [max]=\"max()\"\n [locale]=\"locale()\"\n (rangeValueChange)=\"onRangeChanged($event)\"\n />\n }\n </div>\n </div>\n </div>\n }\n `,\n})\nexport class SnyDateRangePickerComponent implements ControlValueAccessor, OnDestroy {\n readonly value = model<DateRange | null>(null);\n readonly placeholder = input('Pick a date range...');\n readonly size = input<DatePickerSize>('md');\n readonly locale = input('en-US');\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n readonly separator = input(' \\u2014 ');\n readonly dualCalendar = input(false);\n readonly presets = input<DatePickerPreset[]>([]);\n readonly min = input<Date | undefined>(undefined);\n readonly max = input<Date | undefined>(undefined);\n readonly clearable = input(true);\n readonly disabled = input(false);\n readonly class = input<string>('');\n\n readonly open = signal(false);\n readonly internalRange = signal<DateRange | null>(null);\n readonly leftViewDate = signal(new Date());\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\n private readonly elRef = inject(ElementRef);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: DateRange | null) => void = () => {};\n protected onTouched: () => void = () => {};\n\n // Computed\n readonly rightViewDate = computed(() => {\n const d = this.leftViewDate();\n return new Date(d.getFullYear(), d.getMonth() + 1, 1);\n });\n\n readonly leftMonthLabel = computed(() =>\n this.leftViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\n );\n\n readonly rightMonthLabel = computed(() =>\n this.rightViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\n );\n\n readonly displayValue = computed(() => {\n const r = this.value();\n if (!r?.start) return '';\n const fmt = (d: Date) => d.toLocaleDateString(this.locale(), this.dateFormat());\n if (!r.end) return fmt(r.start) + this.separator() + '...';\n return fmt(r.start) + this.separator() + fmt(r.end);\n });\n\n protected readonly triggerClass = computed(() =>\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n // CVA\n writeValue(val: DateRange | null): void {\n this.value.set(val ?? null);\n this.internalRange.set(val ?? null);\n if (val?.start) {\n this.leftViewDate.set(new Date(val.start.getFullYear(), val.start.getMonth(), 1));\n }\n }\n\n registerOnChange(fn: (value: DateRange | null) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Actions\n onRangeChanged(range: DateRange | null): void {\n this.internalRange.set(range);\n if (range?.start && range?.end) {\n this.value.set(range);\n this._onChange(range);\n setTimeout(() => this.close(), 150);\n }\n }\n\n selectPreset(preset: DatePickerPreset): void {\n this.value.set(preset.range);\n this.internalRange.set(preset.range);\n this._onChange(preset.range);\n this.close();\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n this.value.set(null);\n this.internalRange.set(null);\n this._onChange(null);\n }\n\n prevMonth(): void {\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() - 1, 1));\n }\n\n nextMonth(): void {\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() + 1, 1));\n }\n\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.internalRange.set(this.value());\n this.updateDropdownPosition();\n this.open.set(true);\n this.addGlobalListeners();\n setTimeout(() => this.updateDropdownPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removeGlobalListeners();\n }\n\n // Positioning\n private updateDropdownPosition(): void {\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const dropdown = this.dropdownRef()?.nativeElement;\n if (dropdown) {\n dropdown.style.top = `${rect.bottom + 4}px`;\n dropdown.style.left = `${rect.left}px`;\n }\n }\n\n private addGlobalListeners(): void {\n this.removeGlobalListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updateDropdownPosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeGlobalListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n ngOnDestroy(): void {\n this.removeGlobalListeners();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n}\n","import type { RGB, HSL, HSV, ColorFormat } from './color-picker.types';\n\nexport function hexToRgb(hex: string): RGB | null {\n const clean = hex.replace(/^#/, '');\n if (!/^[0-9a-fA-F]+$/.test(clean)) return null;\n if (clean.length === 3) {\n const r = parseInt(clean[0] + clean[0], 16);\n const g = parseInt(clean[1] + clean[1], 16);\n const b = parseInt(clean[2] + clean[2], 16);\n return { r, g, b };\n }\n if (clean.length === 6) {\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n return { r, g, b };\n }\n return null;\n}\n\nexport function rgbToHex(rgb: RGB): string {\n const toHex = (n: number) => Math.round(Math.max(0, Math.min(255, n))).toString(16).padStart(2, '0');\n return `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`;\n}\n\nexport function rgbToHsl(rgb: RGB): HSL {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n case g: h = ((b - r) / d + 2) / 6; break;\n case b: h = ((r - g) / d + 4) / 6; break;\n }\n }\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n };\n}\n\nexport function hslToRgb(hsl: HSL): RGB {\n const h = hsl.h / 360;\n const s = hsl.s / 100;\n const l = hsl.l / 100;\n\n if (s === 0) {\n const v = Math.round(l * 255);\n return { r: v, g: v, b: v };\n }\n\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n return {\n r: Math.round(hue2rgb(p, q, h + 1 / 3) * 255),\n g: Math.round(hue2rgb(p, q, h) * 255),\n b: Math.round(hue2rgb(p, q, h - 1 / 3) * 255),\n };\n}\n\nexport function rgbToHsv(rgb: RGB): HSV {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h = 0;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\n switch (max) {\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n case g: h = ((b - r) / d + 2) / 6; break;\n case b: h = ((r - g) / d + 4) / 6; break;\n }\n }\n\n return { h: Math.round(h * 360), s, v };\n}\n\nexport function hsvToRgb(hsv: HSV): RGB {\n const h = hsv.h / 360;\n const s = hsv.s;\n const v = hsv.v;\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n let r: number, g: number, b: number;\n switch (i % 6) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n}\n\nexport function parseColor(input: string): RGB | null {\n const trimmed = input.trim().toLowerCase();\n\n // HEX\n if (trimmed.startsWith('#')) {\n return hexToRgb(trimmed);\n }\n\n // rgb(r, g, b)\n const rgbMatch = trimmed.match(/^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/);\n if (rgbMatch) {\n return {\n r: Math.min(255, parseInt(rgbMatch[1])),\n g: Math.min(255, parseInt(rgbMatch[2])),\n b: Math.min(255, parseInt(rgbMatch[3])),\n };\n }\n\n // hsl(h, s%, l%)\n const hslMatch = trimmed.match(/^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/);\n if (hslMatch) {\n return hslToRgb({\n h: Math.min(360, parseInt(hslMatch[1])),\n s: Math.min(100, parseInt(hslMatch[2])),\n l: Math.min(100, parseInt(hslMatch[3])),\n });\n }\n\n return null;\n}\n\nexport function formatColor(rgb: RGB, format: ColorFormat, alpha?: number): string {\n switch (format) {\n case 'hex':\n return rgbToHex(rgb);\n case 'rgb':\n if (alpha !== undefined && alpha < 1) {\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha.toFixed(2)})`;\n }\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n case 'hsl': {\n const hsl = rgbToHsl(rgb);\n if (alpha !== undefined && alpha < 1) {\n return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${alpha.toFixed(2)})`;\n }\n return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;\n }\n }\n}\n\nexport function isValidColor(input: string): boolean {\n return parseColor(input) !== null;\n}\n","import { cva } from 'class-variance-authority';\n\nexport const colorPickerTriggerVariants = cva(\n 'inline-flex w-full items-center gap-2 whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport type { ColorFormat, ColorPickerPreset, HSV, RGB } from './color-picker.types';\nimport {\n rgbToHex,\n rgbToHsv,\n hsvToRgb,\n parseColor,\n formatColor,\n isValidColor,\n} from './color-picker.utils';\nimport { colorPickerTriggerVariants, type ColorPickerSize } from './color-picker.variants';\n\n@Component({\n selector: 'sny-color-picker',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'relative inline-block' },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyColorPickerComponent), multi: true },\n ],\n template: `\n <!-- Trigger -->\n @if (!inline()) {\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"dialog\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <div\n class=\"h-5 w-5 rounded-sm border border-border shrink-0\"\n [style.backgroundColor]=\"displayValue()\"\n ></div>\n <span class=\"truncate\">{{ displayValue() || placeholder() }}</span>\n </button>\n }\n\n <!-- Panel -->\n @if (open() || inline()) {\n <div\n #panelEl\n [class]=\"panelClass()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Color picker\"\n >\n <!-- Saturation/Brightness Panel -->\n <div\n #satPanel\n class=\"relative h-36 w-full rounded-md cursor-crosshair overflow-hidden\"\n [style.background]=\"saturationBg()\"\n (mousedown)=\"onSatPanelDown($event)\"\n (touchstart)=\"onSatPanelTouch($event)\"\n >\n <div class=\"absolute inset-0 bg-gradient-to-t from-black to-transparent\"></div>\n <div\n class=\"absolute h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\n [style.left.%]=\"hsv().s * 100\"\n [style.top.%]=\"(1 - hsv().v) * 100\"\n ></div>\n </div>\n\n <!-- Hue Slider -->\n <div\n #hueTrack\n class=\"relative h-3 w-full rounded-full cursor-pointer mt-3\"\n style=\"background: linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%))\"\n (mousedown)=\"onHueDown($event)\"\n (touchstart)=\"onHueTouch($event)\"\n >\n <div\n class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\n [style.left.%]=\"hsv().h / 360 * 100\"\n [style.backgroundColor]=\"'hsl(' + hsv().h + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <!-- Input + Format + Copy + Actions -->\n @if (showInput()) {\n <div class=\"mt-3 flex items-center gap-1.5\">\n <div\n class=\"h-8 w-8 rounded-sm border border-border shrink-0\"\n [style.backgroundColor]=\"displayValue()\"\n ></div>\n <input\n class=\"flex-1 min-w-0 h-8 rounded-sm border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-ring\"\n [value]=\"inputValue()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"commitInput()\"\n (keydown.enter)=\"commitInput()\"\n />\n <button\n type=\"button\"\n class=\"h-8 px-1.5 rounded-sm border border-border text-[10px] font-semibold uppercase hover:bg-accent transition-colors shrink-0\"\n (click)=\"cycleFormat()\"\n title=\"Switch format\"\n >\n {{ currentFormat() }}\n </button>\n <button\n type=\"button\"\n class=\"h-8 w-8 inline-flex items-center justify-center rounded-sm border border-border hover:bg-accent transition-colors shrink-0\"\n (click)=\"copyColor()\"\n [title]=\"copied() ? 'Copied!' : 'Copy color'\"\n >\n @if (copied()) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"/></svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>\n }\n </button>\n </div>\n <!-- Secondary actions row -->\n <div class=\"mt-2 flex items-center gap-1.5\">\n @if (showEyeDropper() && hasEyeDropper) {\n <button\n type=\"button\"\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\n (click)=\"pickFromScreen()\"\n title=\"Pick from screen\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m2 22 1-1h3l9-9\"/><path d=\"M3 21v-3l9-9\"/><path d=\"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z\"/></svg>\n Pick\n </button>\n }\n @if (showFavorites()) {\n <button\n type=\"button\"\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\n (click)=\"addFavorite()\"\n title=\"Save to favorites\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"/></svg>\n Save\n </button>\n }\n </div>\n }\n\n <!-- Presets -->\n @for (preset of presets(); track $index) {\n <div class=\"mt-3\">\n @if (preset.label) {\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">{{ preset.label }}</p>\n }\n <div class=\"flex flex-wrap gap-1.5\">\n @for (color of preset.colors; track color) {\n <button\n type=\"button\"\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\n [style.backgroundColor]=\"color\"\n [title]=\"color\"\n (click)=\"selectColor(color)\"\n ></button>\n }\n </div>\n </div>\n }\n\n <!-- Favorites -->\n @if (showFavorites() && favorites().length > 0) {\n <div class=\"mt-3\">\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">Favorites</p>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (fav of favorites(); track fav) {\n <div class=\"relative group\">\n <button\n type=\"button\"\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\n [style.backgroundColor]=\"fav\"\n [title]=\"fav\"\n (click)=\"selectColor(fav)\"\n ></button>\n <button\n type=\"button\"\n class=\"absolute -top-1 -right-1 h-3.5 w-3.5 rounded-full bg-destructive text-destructive-foreground text-[8px] leading-none items-center justify-center hidden group-hover:inline-flex\"\n (click)=\"removeFavorite(fav); $event.stopPropagation()\"\n >×</button>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n `,\n})\nexport class SnyColorPickerComponent implements ControlValueAccessor, OnDestroy {\n // Public API\n readonly value = model('#000000');\n readonly format = input<ColorFormat>('hex');\n readonly presets = input<ColorPickerPreset[]>([]);\n readonly showInput = input(true);\n readonly showEyeDropper = input(true);\n readonly showFavorites = input(false);\n readonly inline = input(false);\n readonly disabled = input(false);\n readonly placeholder = input('Pick a color...');\n readonly size = input<ColorPickerSize>('md');\n readonly class = input<string>('');\n\n readonly colorChange = output<string>();\n readonly formatChange = output<ColorFormat>();\n\n // Internal state\n readonly hsv = signal<HSV>({ h: 0, s: 0, v: 0 });\n readonly currentFormat = signal<ColorFormat>('hex');\n readonly inputValue = signal('');\n readonly open = signal(false);\n readonly favorites = signal<string[]>([]);\n readonly copied = signal(false);\n\n private readonly _disabledByCva = signal(false);\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n private readonly panelRef = viewChild<ElementRef<HTMLDivElement>>('panelEl');\n private readonly satPanelRef = viewChild<ElementRef<HTMLDivElement>>('satPanel');\n private readonly hueTrackRef = viewChild<ElementRef<HTMLDivElement>>('hueTrack');\n private readonly elRef = inject(ElementRef);\n\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\n private upHandler: (() => void) | null = null;\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n private _onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n readonly hasEyeDropper = typeof window !== 'undefined' && 'EyeDropper' in window;\n\n // Computed\n readonly rgb = computed<RGB>(() => hsvToRgb(this.hsv()));\n readonly displayValue = computed(() =>\n formatColor(this.rgb(), this.currentFormat())\n );\n\n readonly saturationBg = computed(() =>\n `linear-gradient(to right, #fff, hsl(${this.hsv().h}, 100%, 50%))`\n );\n\n protected readonly triggerClass = computed(() =>\n cn(colorPickerTriggerVariants({ size: this.size() }), this.class())\n );\n\n protected readonly panelClass = computed(() =>\n this.inline()\n ? 'inline-block p-3 rounded-md border border-border bg-popover text-popover-foreground w-60'\n : 'fixed z-50 p-3 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95 w-60'\n );\n\n constructor() {\n // Sync format input\n effect(() => {\n const fmt = this.format();\n untracked(() => this.currentFormat.set(fmt));\n });\n\n // Sync value → HSV when value changes externally\n effect(() => {\n const val = this.value();\n untracked(() => {\n const rgb = parseColor(val);\n if (rgb) {\n this.hsv.set(rgbToHsv(rgb));\n this.inputValue.set(this.displayValue());\n }\n });\n });\n }\n\n // CVA\n writeValue(val: string): void {\n this.value.set(val ?? '#000000');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Emit helper\n private emitColor(): void {\n const formatted = this.displayValue();\n this.value.set(formatted);\n this.inputValue.set(formatted);\n this._onChange(formatted);\n this.colorChange.emit(formatted);\n }\n\n // Saturation panel\n onSatPanelDown(event: MouseEvent): void {\n event.preventDefault();\n this.updateSatFromPosition(event.clientX, event.clientY);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\n this.updateSatFromPosition(x, y);\n });\n }\n\n onSatPanelTouch(event: TouchEvent): void {\n this.updateSatFromPosition(event.touches[0].clientX, event.touches[0].clientY);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\n this.updateSatFromPosition(x, y);\n }, true);\n }\n\n private updateSatFromPosition(clientX: number, clientY: number): void {\n const panel = this.satPanelRef()?.nativeElement;\n if (!panel) return;\n const rect = panel.getBoundingClientRect();\n const s = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const v = Math.max(0, Math.min(1, 1 - (clientY - rect.top) / rect.height));\n this.hsv.update((prev) => ({ ...prev, s, v }));\n this.emitColor();\n }\n\n // Hue slider\n onHueDown(event: MouseEvent): void {\n event.preventDefault();\n this.updateHueFromPosition(event.clientX);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateHueFromPosition(x);\n });\n }\n\n onHueTouch(event: TouchEvent): void {\n this.updateHueFromPosition(event.touches[0].clientX);\n this.startDrag((e) => {\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\n this.updateHueFromPosition(x);\n }, true);\n }\n\n private updateHueFromPosition(clientX: number): void {\n const track = this.hueTrackRef()?.nativeElement;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const h = Math.round(percent * 360);\n this.hsv.update((prev) => ({ ...prev, h }));\n this.emitColor();\n }\n\n // Drag helpers (same pattern as slider component)\n private startDrag(handler: (e: MouseEvent | TouchEvent) => void, touch = false): void {\n this.removeDragListeners();\n this.moveHandler = handler;\n this.upHandler = () => {\n this.onTouched();\n this.removeDragListeners();\n };\n if (touch) {\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\n document.addEventListener('touchend', this.upHandler);\n } else {\n document.addEventListener('mousemove', this.moveHandler as EventListener);\n document.addEventListener('mouseup', this.upHandler);\n }\n }\n\n private removeDragListeners(): void {\n if (this.moveHandler) {\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\n this.moveHandler = null;\n }\n if (this.upHandler) {\n document.removeEventListener('mouseup', this.upHandler);\n document.removeEventListener('touchend', this.upHandler);\n this.upHandler = null;\n }\n }\n\n // Input\n onInputChange(event: Event): void {\n this.inputValue.set((event.target as HTMLInputElement).value);\n }\n\n commitInput(): void {\n const val = this.inputValue().trim();\n if (isValidColor(val)) {\n const rgb = parseColor(val)!;\n this.hsv.set(rgbToHsv(rgb));\n this.emitColor();\n } else {\n this.inputValue.set(this.displayValue());\n }\n }\n\n // Format\n cycleFormat(): void {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsl'];\n const idx = formats.indexOf(this.currentFormat());\n const next = formats[(idx + 1) % formats.length];\n this.currentFormat.set(next);\n this.inputValue.set(this.displayValue());\n this.formatChange.emit(next);\n }\n\n // Copy\n copyColor(): void {\n navigator.clipboard.writeText(this.displayValue());\n this.copied.set(true);\n setTimeout(() => this.copied.set(false), 2000);\n }\n\n // Presets & favorites\n selectColor(color: string): void {\n const rgb = parseColor(color);\n if (rgb) {\n this.hsv.set(rgbToHsv(rgb));\n this.emitColor();\n }\n }\n\n addFavorite(): void {\n const hex = rgbToHex(this.rgb());\n this.favorites.update((favs) =>\n favs.includes(hex) ? favs : [...favs, hex]\n );\n }\n\n removeFavorite(color: string): void {\n this.favorites.update((favs) => favs.filter((f) => f !== color));\n }\n\n // EyeDropper\n async pickFromScreen(): Promise<void> {\n if (!this.hasEyeDropper) return;\n try {\n const dropper = new (window as any).EyeDropper();\n const result = await dropper.open();\n this.selectColor(result.sRGBHex);\n } catch {\n // User cancelled\n }\n }\n\n // Popover\n toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.open.set(true);\n this.addPositionListeners();\n setTimeout(() => this.updatePanelPosition());\n }\n }\n\n close(): void {\n this.open.set(false);\n this.removePositionListeners();\n }\n\n private updatePanelPosition(): void {\n if (this.inline()) return;\n const trigger = this.triggerRef()?.nativeElement;\n if (!trigger) return;\n const rect = trigger.getBoundingClientRect();\n const panel = this.panelRef()?.nativeElement;\n if (panel) {\n panel.style.top = `${rect.bottom + 4}px`;\n panel.style.left = `${rect.left}px`;\n }\n }\n\n private addPositionListeners(): void {\n this.removePositionListeners();\n this.scrollHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\n this.resizeHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removePositionListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n this.close();\n }\n\n ngOnDestroy(): void {\n this.removeDragListeners();\n this.removePositionListeners();\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const otpCellVariants = cva(\n 'text-center font-mono font-semibold border border-border bg-background rounded-md transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed',\n {\n variants: {\n size: {\n sm: 'h-9 w-9 text-sm',\n md: 'h-11 w-11 text-lg',\n lg: 'h-14 w-14 text-2xl',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type OtpInputSize = 'sm' | 'md' | 'lg';\nexport type OtpInputType = 'number' | 'alphanumeric';\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n linkedSignal,\n model,\n output,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { otpCellVariants, type OtpInputSize, type OtpInputType } from './otp-input.variants';\n\n@Component({\n selector: 'sny-otp-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyOtpInputComponent), multi: true },\n ],\n template: `\n <div\n role=\"group\"\n [attr.aria-label]=\"'OTP input, ' + length() + ' digits'\"\n class=\"flex items-center gap-2\"\n >\n @for (digit of digits(); track $index; let i = $index) {\n @if (separator() !== null && i === separator() && i > 0) {\n <span class=\"text-muted-foreground text-lg select-none\" aria-hidden=\"true\">—</span>\n }\n <input\n #inputEl\n [type]=\"mask() ? 'password' : 'text'\"\n [inputMode]=\"type() === 'number' ? 'numeric' : 'text'\"\n [attr.pattern]=\"type() === 'number' ? '[0-9]' : '[a-zA-Z0-9]'\"\n maxlength=\"1\"\n autocomplete=\"one-time-code\"\n [value]=\"digit\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [class]=\"cellClass(i)\"\n [attr.aria-label]=\"'Digit ' + (i + 1) + ' of ' + length()\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeydown($event, i)\"\n (paste)=\"onPaste($event, i)\"\n (focus)=\"focusedIndex.set(i)\"\n (blur)=\"onBlur()\"\n />\n }\n </div>\n `,\n})\nexport class SnyOtpInputComponent implements ControlValueAccessor {\n // Public API\n readonly length = input(6);\n readonly type = input<OtpInputType>('number');\n readonly size = input<OtpInputSize>('md');\n readonly disabled = input(false);\n readonly mask = input(false);\n readonly autoFocus = input(true);\n readonly placeholder = input('');\n readonly separator = input<number | null>(null);\n readonly status = input<'idle' | 'loading' | 'success' | 'error'>('idle');\n readonly value = model('');\n\n readonly completed = output<string>();\n\n // Internal state\n readonly digits = linkedSignal<string[]>(() => Array(this.length()).fill(''));\n readonly focusedIndex = signal(-1);\n readonly inputRefs = viewChildren<ElementRef<HTMLInputElement>>('inputEl');\n\n private readonly _disabledByCva = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva() || this.status() === 'loading');\n\n private _onChange: (value: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n // Computed\n readonly fullValue = computed(() => this.digits().join(''));\n readonly isComplete = computed(() => {\n const d = this.digits();\n return d.length === this.length() && d.every((c) => c !== '');\n });\n\n constructor() {\n // Sync value → digits when value changes externally (e.g. reset)\n effect(() => {\n const val = this.value();\n untracked(() => {\n const chars = val.split('').slice(0, this.length());\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\n const current = this.digits();\n if (padded.join('') !== current.join('')) {\n this.digits.set(padded);\n }\n });\n });\n\n afterNextRender(() => {\n if (this.autoFocus()) {\n this.focusInput(0);\n }\n });\n }\n\n // CVA\n writeValue(val: string): void {\n const str = val ?? '';\n this.value.set(str);\n const chars = str.split('').slice(0, this.length());\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\n this.digits.set(padded);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n // Cell class\n cellClass(index: number): string {\n const isFocused = this.focusedIndex() === index;\n const hasValue = this.digits()[index] !== '';\n const st = this.status();\n return cn(\n otpCellVariants({ size: this.size() }),\n st === 'idle' && isFocused && 'border-primary ring-2 ring-ring',\n st === 'idle' && hasValue && !isFocused && 'border-primary/50',\n st === 'loading' && 'border-muted-foreground/30 opacity-70',\n st === 'success' && 'border-green-500 bg-green-500/5',\n st === 'error' && 'border-destructive bg-destructive/5 animate-shake',\n );\n }\n\n // Input handler\n onInput(event: Event, index: number): void {\n const input = event.target as HTMLInputElement;\n const char = input.value.slice(-1);\n\n if (!this.isValidChar(char)) {\n input.value = this.digits()[index];\n return;\n }\n\n this.setDigit(index, char);\n\n if (index < this.length() - 1) {\n this.focusInput(index + 1);\n }\n\n this.emitValue();\n }\n\n // Keyboard handler\n onKeydown(event: KeyboardEvent, index: number): void {\n switch (event.key) {\n case 'Backspace':\n event.preventDefault();\n if (this.digits()[index] !== '') {\n this.setDigit(index, '');\n this.emitValue();\n } else if (index > 0) {\n this.setDigit(index - 1, '');\n this.focusInput(index - 1);\n this.emitValue();\n }\n break;\n\n case 'Delete':\n event.preventDefault();\n this.setDigit(index, '');\n this.emitValue();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (index > 0) this.focusInput(index - 1);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (index < this.length() - 1) this.focusInput(index + 1);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusInput(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.focusInput(this.length() - 1);\n break;\n }\n }\n\n // Paste handler\n onPaste(event: ClipboardEvent, index: number): void {\n event.preventDefault();\n const text = event.clipboardData?.getData('text') ?? '';\n const chars = text.split('').filter((c) => this.isValidChar(c));\n\n if (chars.length === 0) return;\n\n const newDigits = [...this.digits()];\n let lastFilledIndex = index;\n\n for (let i = 0; i < chars.length && index + i < this.length(); i++) {\n newDigits[index + i] = chars[i];\n lastFilledIndex = index + i;\n }\n\n this.digits.set(newDigits);\n\n const nextIndex = Math.min(lastFilledIndex + 1, this.length() - 1);\n this.focusInput(nextIndex);\n this.emitValue();\n }\n\n // Blur\n onBlur(): void {\n this.focusedIndex.set(-1);\n this._onTouched();\n }\n\n // Helpers\n private setDigit(index: number, char: string): void {\n this.digits.update((d) => {\n const next = [...d];\n next[index] = char;\n return next;\n });\n }\n\n private emitValue(): void {\n const val = this.fullValue();\n this.value.set(val);\n this._onChange(val);\n\n if (this.isComplete()) {\n this.completed.emit(val);\n }\n }\n\n private focusInput(index: number): void {\n const refs = this.inputRefs();\n if (refs[index]) {\n const el = refs[index].nativeElement;\n el.focus();\n el.select();\n }\n }\n\n private isValidChar(char: string): boolean {\n if (!char || char.length !== 1) return false;\n if (this.type() === 'number') return /^[0-9]$/.test(char);\n return /^[a-zA-Z0-9]$/.test(char);\n }\n\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { SnyInputDirective } from '../input/input.directive';\nimport { SNY_DIALOG_DATA } from '../modal/dialog.service';\nimport type { Command, CommandGroup, CommandPaletteConfig } from './command-palette.types';\n\n@Component({\n selector: 'sny-command-palette',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SnyInputDirective],\n host: {\n '(keydown)': 'onKeydown($event)',\n 'class': 'block',\n },\n styles: `\n :host {\n display: block;\n background-color: var(--sny-background);\n border: 1px solid var(--sny-border);\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n overflow: hidden;\n }\n `,\n template: `\n <!-- Search -->\n <div class=\"flex items-center gap-2 border-b border-border px-4 py-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"text-muted-foreground shrink-0\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\n <input\n #searchInput\n snyInput\n class=\"border-none shadow-none h-8 px-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n [placeholder]=\"config.placeholder ?? 'Type a command...'\"\n [value]=\"query()\"\n (input)=\"onQueryChange(searchInput.value)\"\n />\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">Esc</kbd>\n </div>\n\n <!-- Results -->\n <div class=\"max-h-[300px] overflow-y-auto p-2 sny-scrollbar\">\n @if (flatResults().length === 0) {\n <p class=\"py-6 text-center text-sm text-muted-foreground\">\n {{ config.emptyText ?? 'No results found.' }}\n </p>\n } @else {\n @for (group of filteredGroups(); track group.name) {\n @if (group.name) {\n <p class=\"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">{{ group.name }}</p>\n }\n @for (cmd of group.commands; track cmd.id) {\n @let idx = flatIndex(cmd);\n <button\n [attr.data-cmd-idx]=\"idx\"\n [class]=\"\n 'w-full text-left rounded-sm px-3 py-2 text-sm transition-colors flex items-center gap-3 cursor-pointer ' +\n (idx === activeIndex()\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent/50')\n \"\n (click)=\"execute(cmd)\"\n (mouseenter)=\"activeIndex.set(idx)\"\n >\n @if (cmd.icon) {\n <span class=\"shrink-0 w-5 text-center text-muted-foreground\" [innerHTML]=\"cmd.icon\"></span>\n }\n <div class=\"flex-1 min-w-0\">\n <span class=\"block truncate font-medium\">{{ cmd.label }}</span>\n @if (cmd.description) {\n <span class=\"block text-xs text-muted-foreground truncate\">{{ cmd.description }}</span>\n }\n </div>\n @if (cmd.shortcut) {\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">{{ cmd.shortcut }}</kbd>\n }\n </button>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n <div class=\"border-t border-border px-4 py-2\">\n <div class=\"flex items-center gap-3 text-xs text-muted-foreground\">\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&uarr;&darr;</kbd>\n Navigate\n </span>\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&crarr;</kbd>\n Execute\n </span>\n <span class=\"flex items-center gap-1\">\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">Esc</kbd>\n Close\n </span>\n </div>\n </div>\n `,\n})\nexport class SnyCommandPaletteComponent {\n readonly config = inject<CommandPaletteConfig>(SNY_DIALOG_DATA);\n private readonly dialogRef = inject(DialogRef);\n private readonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\n readonly query = signal('');\n readonly activeIndex = signal(0);\n\n readonly filteredGroups = computed<CommandGroup[]>(() => {\n const q = this.query().toLowerCase().trim();\n const commands = this.config.commands.filter((cmd) => {\n if (cmd.disabled) return false;\n if (!q) return true;\n return (\n cmd.label.toLowerCase().includes(q) ||\n cmd.description?.toLowerCase().includes(q) ||\n cmd.keywords?.some((k) => k.toLowerCase().includes(q))\n );\n });\n\n const groups = new Map<string, Command[]>();\n for (const cmd of commands) {\n const group = cmd.group ?? '';\n if (!groups.has(group)) groups.set(group, []);\n groups.get(group)!.push(cmd);\n }\n\n return [...groups.entries()].map(([name, cmds]) => ({ name, commands: cmds }));\n });\n\n readonly flatResults = computed(() =>\n this.filteredGroups().flatMap((g) => g.commands)\n );\n\n constructor() {\n afterNextRender(() => {\n this.searchInput()?.nativeElement.focus();\n });\n }\n\n onQueryChange(value: string): void {\n this.query.set(value);\n this.activeIndex.set(0);\n }\n\n flatIndex(cmd: Command): number {\n return this.flatResults().indexOf(cmd);\n }\n\n execute(cmd: Command): void {\n this.dialogRef.close();\n cmd.action();\n }\n\n onKeydown(event: KeyboardEvent): void {\n const results = this.flatResults();\n const len = results.length;\n if (len === 0 && event.key !== 'Escape') return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update((i) => (i + 1) % len);\n this.scrollActiveIntoView();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update((i) => (i - 1 + len) % len);\n this.scrollActiveIntoView();\n break;\n case 'Enter':\n event.preventDefault();\n const active = results[this.activeIndex()];\n if (active) this.execute(active);\n break;\n }\n }\n\n private scrollActiveIntoView(): void {\n requestAnimationFrame(() => {\n const el = document.querySelector(`[data-cmd-idx=\"${this.activeIndex()}\"]`);\n el?.scrollIntoView({ block: 'nearest' });\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SnyDialogService } from '../modal/dialog.service';\nimport type { SnyDialogRef } from '../modal/dialog-ref';\nimport { SnyCommandPaletteComponent } from './command-palette.component';\nimport type { CommandPaletteConfig } from './command-palette.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SnyCommandPaletteService {\n private readonly dialogService = inject(SnyDialogService);\n private isOpen = false;\n\n open(config: CommandPaletteConfig): SnyDialogRef<void> | null {\n if (this.isOpen) return null;\n this.isOpen = true;\n\n const ref = this.dialogService.open<SnyCommandPaletteComponent, void>(\n SnyCommandPaletteComponent,\n {\n width: config.width ?? '32rem',\n data: config,\n }\n );\n\n ref.closed.subscribe(() => {\n this.isOpen = false;\n });\n\n return ref;\n }\n\n close(): void {\n if (this.isOpen) {\n this.dialogService.closeAll();\n }\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const numberInputVariants = cva(\n 'inline-flex items-center border border-border rounded-md bg-background transition-colors focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',\n {\n variants: {\n size: {\n sm: 'h-9 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-11 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type NumberInputSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { numberInputVariants, type NumberInputSize } from './number-input.variants';\n\n@Component({\n selector: 'sny-number-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyNumberInputComponent), multi: true },\n ],\n template: `\n <div [class]=\"containerClass()\">\n <button\n type=\"button\"\n class=\"px-2.5 hover:bg-accent transition-colors border-r border-border disabled:opacity-40 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || atMin()\"\n (click)=\"decrement()\"\n aria-label=\"Decrease\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14\"/></svg>\n </button>\n <input\n #inputEl\n type=\"text\"\n inputmode=\"decimal\"\n class=\"flex-1 w-14 text-center outline-none bg-transparent font-medium\"\n [value]=\"inputValue()\"\n [disabled]=\"isDisabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"'Number input'\"\n [attr.aria-valuemin]=\"min() ?? null\"\n [attr.aria-valuemax]=\"max() ?? null\"\n [attr.aria-valuenow]=\"value()\"\n role=\"spinbutton\"\n (input)=\"onInput($event)\"\n (blur)=\"commitValue()\"\n (keydown)=\"onKeydown($event)\"\n />\n <button\n type=\"button\"\n class=\"px-2.5 hover:bg-accent transition-colors border-l border-border disabled:opacity-40 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || atMax()\"\n (click)=\"increment()\"\n aria-label=\"Increase\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14\"/><path d=\"M12 5v14\"/></svg>\n </button>\n </div>\n `,\n})\nexport class SnyNumberInputComponent implements ControlValueAccessor {\n readonly value = model(0);\n readonly min = input<number | null>(null);\n readonly max = input<number | null>(null);\n readonly step = input(1);\n readonly disabled = input(false);\n readonly size = input<NumberInputSize>('md');\n readonly placeholder = input('');\n readonly class = input<string>('');\n\n readonly inputValue = signal('0');\n private readonly _disabledByCva = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n\n readonly atMin = computed(() => this.min() !== null && this.value() <= this.min()!);\n readonly atMax = computed(() => this.max() !== null && this.value() >= this.max()!);\n\n readonly containerClass = computed(() =>\n cn(numberInputVariants({ size: this.size() }), this.isDisabled() && 'opacity-50', this.class())\n );\n\n private _onChange: (value: number) => void = () => {};\n private _onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n const val = this.value();\n untracked(() => this.inputValue.set(String(val)));\n });\n }\n\n writeValue(val: number): void {\n this.value.set(val ?? 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n increment(): void {\n this.setValue(this.value() + this.step());\n }\n\n decrement(): void {\n this.setValue(this.value() - this.step());\n }\n\n onInput(event: Event): void {\n this.inputValue.set((event.target as HTMLInputElement).value);\n }\n\n commitValue(): void {\n const parsed = parseFloat(this.inputValue());\n if (isNaN(parsed)) {\n this.inputValue.set(String(this.value()));\n } else {\n this.setValue(parsed);\n }\n this._onTouched();\n }\n\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.increment();\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.decrement();\n break;\n }\n }\n\n private setValue(raw: number): void {\n let clamped = raw;\n if (this.min() !== null) clamped = Math.max(this.min()!, clamped);\n if (this.max() !== null) clamped = Math.min(this.max()!, clamped);\n const rounded = parseFloat(clamped.toFixed(10));\n this.value.set(rounded);\n this._onChange(rounded);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport interface AvatarGroupItem {\n src?: string;\n alt?: string;\n fallback?: string;\n}\n\nconst sizeMap = {\n sm: { avatar: 'h-7 w-7 text-xs', counter: 'h-7 w-7 text-[10px]' },\n md: { avatar: 'h-9 w-9 text-sm', counter: 'h-9 w-9 text-xs' },\n lg: { avatar: 'h-11 w-11 text-base', counter: 'h-11 w-11 text-sm' },\n};\n\nconst spacingMap = {\n tight: '-space-x-3',\n normal: '-space-x-2',\n};\n\nexport type AvatarGroupSize = 'sm' | 'md' | 'lg';\nexport type AvatarGroupSpacing = 'tight' | 'normal';\n\n@Component({\n selector: 'sny-avatar-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"containerClass()\" role=\"group\" [attr.aria-label]=\"'Group of ' + items().length + ' users'\">\n @for (item of visibleItems(); track $index) {\n @if (item.src) {\n <img\n [src]=\"item.src\"\n [alt]=\"item.alt ?? ''\"\n [class]=\"avatarClass()\"\n />\n } @else {\n <div [class]=\"fallbackClass()\">\n {{ item.fallback ?? '?' }}\n </div>\n }\n }\n @if (overflowCount() > 0) {\n <div [class]=\"counterClass()\" [title]=\"overflowCount() + ' more'\">\n +{{ overflowCount() }}\n </div>\n }\n </div>\n `,\n})\nexport class SnyAvatarGroupComponent {\n readonly items = input.required<AvatarGroupItem[]>();\n readonly max = input(3);\n readonly size = input<AvatarGroupSize>('md');\n readonly spacing = input<AvatarGroupSpacing>('normal');\n\n readonly visibleItems = computed(() => this.items().slice(0, this.max()));\n readonly overflowCount = computed(() => Math.max(0, this.items().length - this.max()));\n\n readonly containerClass = computed(() =>\n cn('flex items-center', spacingMap[this.spacing()])\n );\n\n readonly avatarClass = computed(() =>\n cn(\n 'inline-block rounded-full object-cover ring-2 ring-background',\n sizeMap[this.size()].avatar\n )\n );\n\n readonly fallbackClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-muted text-muted-foreground font-medium ring-2 ring-background',\n sizeMap[this.size()].avatar\n )\n );\n\n readonly counterClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center rounded-full bg-muted text-muted-foreground font-semibold ring-2 ring-background',\n sizeMap[this.size()].counter\n )\n );\n}\n","import { cva } from 'class-variance-authority';\n\nexport const tagInputContainerVariants = cva(\n 'flex flex-wrap gap-1.5 border border-border rounded-md bg-background px-2 cursor-text transition-colors focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',\n {\n variants: {\n size: {\n sm: 'min-h-[36px] py-1 text-xs',\n md: 'min-h-[40px] py-1.5 text-sm',\n lg: 'min-h-[44px] py-2 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport const tagVariants = cva(\n 'inline-flex items-center gap-1 rounded-md font-medium',\n {\n variants: {\n size: {\n sm: 'px-1.5 py-0.5 text-xs',\n md: 'px-2 py-0.5 text-sm',\n lg: 'px-2.5 py-1 text-sm',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nexport type TagInputSize = 'sm' | 'md' | 'lg';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '../core/utils/cn';\nimport { tagInputContainerVariants, tagVariants, type TagInputSize } from './tag-input.variants';\n\n@Component({\n selector: 'sny-tag-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SnyTagInputComponent), multi: true },\n ],\n template: `\n <div [class]=\"containerClass()\" (click)=\"focusInput()\">\n @for (tag of value(); track tag; let i = $index) {\n <span [class]=\"tagClass()\">\n {{ tag }}\n @if (removable() && !isDisabled()) {\n <button\n type=\"button\"\n class=\"hover:text-destructive transition-colors leading-none\"\n (click)=\"removeTag(i); $event.stopPropagation()\"\n [attr.aria-label]=\"'Remove ' + tag\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n }\n </span>\n }\n @if (!atMax()) {\n <input\n #inputEl\n type=\"text\"\n class=\"flex-1 min-w-[80px] outline-none bg-transparent\"\n [placeholder]=\"value().length === 0 ? placeholder() : ''\"\n [disabled]=\"isDisabled()\"\n [value]=\"inputValue()\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n [attr.aria-label]=\"'Add tag'\"\n />\n }\n </div>\n `,\n})\nexport class SnyTagInputComponent implements ControlValueAccessor {\n readonly value = model<string[]>([]);\n readonly placeholder = input('Add tag...');\n readonly maxTags = input<number | null>(null);\n readonly allowDuplicates = input(false);\n readonly removable = input(true);\n readonly addOnBlur = input(true);\n readonly separators = input<string[]>(['Enter', ',']);\n readonly validate = input<((tag: string) => boolean) | null>(null);\n readonly disabled = input(false);\n readonly size = input<TagInputSize>('md');\n readonly class = input<string>('');\n\n readonly tagAdded = output<string>();\n readonly tagRemoved = output<string>();\n\n readonly inputValue = signal('');\n private readonly _disabledByCva = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\n readonly atMax = computed(() => this.maxTags() !== null && this.value().length >= this.maxTags()!);\n\n readonly containerClass = computed(() =>\n cn(tagInputContainerVariants({ size: this.size() }), this.isDisabled() && 'opacity-50 cursor-not-allowed', this.class())\n );\n\n readonly tagClass = computed(() =>\n cn(tagVariants({ size: this.size() }), 'bg-secondary text-secondary-foreground')\n );\n\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n\n private _onChange: (value: string[]) => void = () => {};\n private _onTouched: () => void = () => {};\n\n writeValue(val: string[]): void {\n this.value.set(val ?? []);\n }\n\n registerOnChange(fn: (value: string[]) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByCva.set(isDisabled);\n }\n\n focusInput(): void {\n this.inputRef()?.nativeElement.focus();\n }\n\n onInput(event: Event): void {\n const val = (event.target as HTMLInputElement).value;\n // Check if separator character was typed (e.g. comma)\n const seps = this.separators().filter((s) => s.length === 1);\n for (const sep of seps) {\n if (val.includes(sep)) {\n const parts = val.split(sep);\n for (const part of parts) {\n this.addTag(part);\n }\n this.inputValue.set('');\n return;\n }\n }\n this.inputValue.set(val);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.separators().includes(event.key) && event.key !== ',') {\n event.preventDefault();\n this.addTag(this.inputValue());\n this.inputValue.set('');\n return;\n }\n\n if (event.key === 'Backspace' && this.inputValue() === '') {\n const tags = this.value();\n if (tags.length > 0) {\n this.removeTag(tags.length - 1);\n }\n }\n }\n\n onBlur(): void {\n if (this.addOnBlur() && this.inputValue().trim()) {\n this.addTag(this.inputValue());\n this.inputValue.set('');\n }\n this._onTouched();\n }\n\n addTag(raw: string): void {\n const tag = raw.trim();\n if (!tag) return;\n if (this.atMax()) return;\n if (!this.allowDuplicates() && this.value().includes(tag)) return;\n\n const validateFn = this.validate();\n if (validateFn && !validateFn(tag)) return;\n\n this.value.update((tags) => [...tags, tag]);\n this._onChange(this.value());\n this.tagAdded.emit(tag);\n }\n\n removeTag(index: number): void {\n const removed = this.value()[index];\n this.value.update((tags) => tags.filter((_, i) => i !== index));\n this._onChange(this.value());\n this.tagRemoved.emit(removed);\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n InjectionToken,\n OnDestroy,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { cn } from '../core/utils/cn';\n\nexport const SNY_POPOVER = new InjectionToken<SnyPopoverDirective>('SnyPopover');\n\n@Directive({\n selector: '[snyPopover]',\n standalone: true,\n exportAs: 'snyPopover',\n providers: [{ provide: SNY_POPOVER, useExisting: SnyPopoverDirective }],\n host: {\n '[class]': '\"relative inline-block\"',\n },\n})\nexport class SnyPopoverDirective implements OnDestroy {\n private readonly elRef = inject(ElementRef);\n\n readonly matchWidth = input(false);\n readonly offset = input(4);\n readonly closeOnOutside = input(true);\n readonly closeOnEscape = input(true);\n\n readonly isOpen = signal(false);\n readonly triggerEl = signal<HTMLElement | null>(null);\n readonly panelEl = signal<HTMLElement | null>(null);\n\n private scrollHandler: (() => void) | null = null;\n private resizeHandler: (() => void) | null = null;\n\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n this.isOpen.set(true);\n this.addListeners();\n setTimeout(() => this.updatePosition());\n }\n\n close(): void {\n this.isOpen.set(false);\n this.removeListeners();\n }\n\n updatePosition(): void {\n const trigger = this.triggerEl();\n const panel = this.panelEl();\n if (!trigger || !panel) return;\n const rect = trigger.getBoundingClientRect();\n panel.style.top = `${rect.bottom + this.offset()}px`;\n panel.style.left = `${rect.left}px`;\n if (this.matchWidth()) {\n panel.style.width = `${rect.width}px`;\n }\n }\n\n private addListeners(): void {\n this.removeListeners();\n this.scrollHandler = () => {\n requestAnimationFrame(() => this.updatePosition());\n };\n this.resizeHandler = () => {\n requestAnimationFrame(() => this.updatePosition());\n };\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n\n private removeListeners(): void {\n if (this.scrollHandler) {\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\n this.scrollHandler = null;\n }\n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (this.closeOnOutside() && this.isOpen() && !this.elRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n @HostListener('keydown.escape')\n onEscape(): void {\n if (this.closeOnEscape() && this.isOpen()) {\n this.close();\n }\n }\n\n ngOnDestroy(): void {\n this.removeListeners();\n }\n}\n\n@Directive({\n selector: '[snyPopoverTrigger]',\n standalone: true,\n host: {\n '(click)': 'popover.toggle()',\n '[attr.aria-expanded]': 'popover.isOpen()',\n 'aria-haspopup': 'dialog',\n },\n})\nexport class SnyPopoverTriggerDirective {\n protected readonly popover = inject(SNY_POPOVER);\n private readonly elRef = inject(ElementRef);\n\n constructor() {\n this.popover.triggerEl.set(this.elRef.nativeElement);\n }\n}\n\n@Directive({\n selector: '[snyPopoverContent]',\n standalone: true,\n host: {\n 'role': 'dialog',\n '[style.display]': 'popover.isOpen() ? \"\" : \"none\"',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyPopoverContentDirective {\n protected readonly popover = inject(SNY_POPOVER);\n private readonly elRef = inject(ElementRef);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() =>\n cn(\n 'fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95',\n this.class()\n )\n );\n\n constructor() {\n this.popover.panelEl.set(this.elRef.nativeElement);\n }\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { cn } from '../core/utils/cn';\nimport type { AbstractControl } from '@angular/forms';\n\nexport type ValidatorHintVariant = 'error' | 'success' | 'warning' | 'info';\n\n@Directive({\n selector: '[snyValidator]',\n standalone: true,\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyValidatorDirective {\n readonly control = input<AbstractControl | null>(null);\n readonly state = input<'default' | 'error' | 'success' | 'warning'>('default');\n readonly class = input<string>('');\n\n readonly errors = computed(() => this.control()?.errors ?? null);\n readonly showErrors = computed(() => {\n const c = this.control();\n return c ? c.touched && c.invalid : false;\n });\n\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-1 mt-1', this.class())\n );\n}\n\n@Directive({\n selector: '[snyValidatorHint]',\n standalone: true,\n host: {\n 'role': 'alert',\n '[class]': 'computedClass()',\n },\n})\nexport class SnyValidatorHintDirective {\n readonly when = input<string>('');\n readonly type = input<ValidatorHintVariant>('error');\n /** @deprecated Use `type` instead */\n readonly variant = input<ValidatorHintVariant | undefined>(undefined);\n readonly class = input<string>('');\n\n protected readonly computedClass = computed(() => {\n const v = this.variant() ?? this.type();\n const variantClass =\n v === 'success' ? 'text-green-600 dark:text-green-400' :\n v === 'warning' ? 'text-amber-600 dark:text-amber-400' :\n v === 'info' ? 'text-blue-600 dark:text-blue-400' :\n 'text-destructive';\n return cn('text-xs', variantClass, this.class());\n });\n}\n","/*\n * Public API Surface of @sonny-ui/core\n */\n\n// Utils\nexport { cn } from './lib/core/utils/cn';\nexport { cva, type VariantProps } from './lib/core/utils/cva-types';\n\n// Providers\nexport { provideSonnyUI, SNY_CONFIG, type SonnyConfig } from './lib/core/providers/sonny-config';\nexport { ThemeService, type Theme } from './lib/core/providers/theme.service';\n\n// Button\nexport * from './lib/button';\n\n// Card\nexport * from './lib/card';\n\n// Input\nexport * from './lib/input';\n\n// Toast\nexport * from './lib/toast';\n\n// Modal/Dialog\nexport * from './lib/modal';\n\n// Accordion\nexport * from './lib/accordion';\n\n// Avatar\nexport * from './lib/avatar';\n\n// Badge\nexport * from './lib/badge';\n\n// Breadcrumb\nexport * from './lib/breadcrumb';\n\n// Button Group\nexport * from './lib/button-group';\n\n// Checkbox\nexport * from './lib/checkbox';\n\n// Combobox\nexport * from './lib/combobox';\n\n// Skeleton\nexport * from './lib/skeleton';\n\n// Radio\nexport * from './lib/radio';\n\n// Switch\nexport * from './lib/switch';\n\n// Toggle\nexport * from './lib/toggle';\n\n// Slider\nexport * from './lib/slider';\n\n// Loader\nexport * from './lib/loader';\n\n// Tabs\nexport * from './lib/tabs';\n\n// Select\nexport * from './lib/select';\n\n// Table\nexport * from './lib/table';\n\n// Data Table\nexport * from './lib/data-table';\n\n// Sheet\nexport * from './lib/sheet';\n\n// Alert\nexport * from './lib/alert';\n\n// Textarea\nexport * from './lib/textarea';\n\n// Progress\nexport * from './lib/progress';\n\n// Tooltip\nexport * from './lib/tooltip';\n\n// Dropdown/Menu\nexport * from './lib/dropdown';\n\n// File Input\nexport * from './lib/file-input';\n\n// Fieldset\nexport * from './lib/fieldset';\n\n// Rating\nexport * from './lib/rating';\n\n// Navbar\nexport * from './lib/navbar';\n\n// Drawer\nexport * from './lib/drawer';\n\n// Pagination\nexport * from './lib/pagination';\n\n// Divider\nexport * from './lib/divider';\n\n// Steps\nexport * from './lib/steps';\n\n// Stat\nexport * from './lib/stat';\n\n// Timeline\nexport * from './lib/timeline';\n\n// Kbd\nexport * from './lib/kbd';\n\n// List\nexport * from './lib/list';\n\n// Status\nexport * from './lib/status';\n\n// Indicator\nexport * from './lib/indicator';\n\n// Chat Bubble\nexport * from './lib/chat-bubble';\n\n// Carousel\nexport * from './lib/carousel';\n\n// Dock\nexport * from './lib/dock';\n\n// FAB\nexport * from './lib/fab';\n\n// Radial Progress\nexport * from './lib/radial-progress';\n\n// Diff\nexport * from './lib/diff';\n\n// Link\nexport * from './lib/link';\n\n// Calendar\nexport * from './lib/calendar';\n\n// Date Picker\nexport * from './lib/date-picker';\n\n// Date Range Picker\nexport * from './lib/date-range-picker';\n\n// Color Picker\nexport * from './lib/color-picker';\n\n// OTP Input\nexport * from './lib/otp-input';\n\n// Command Palette\nexport * from './lib/command-palette';\n\n// Number Input\nexport * from './lib/number-input';\n\n// Avatar Group\nexport * from './lib/avatar-group';\n\n// Tag Input\nexport * from './lib/tag-input';\n\n// Popover\nexport * from './lib/popover';\n\n// Validator\nexport * from './lib/validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["positionMap","sizeMap"],"mappings":"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"}