@sonny-ui/core 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonny-ui-core.mjs","sources":["../../../projects/core/src/lib/core/utils/cn.ts","../../../projects/core/src/lib/core/providers/sonny-config.ts","../../../projects/core/src/lib/core/providers/theme.service.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/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/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 { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nexport interface SonnyConfig {\n prefix?: string;\n defaultTheme?: 'light' | 'dark' | 'corporate';\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 ]);\n}\n","import { Injectable, signal, computed, inject, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\nexport type Theme = 'light' | 'dark' | 'corporate';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n private readonly _theme = signal<Theme>('light');\n\n readonly theme = this._theme.asReadonly();\n readonly isDark = computed(() => this._theme() === 'dark');\n\n setTheme(theme: Theme): void {\n this._theme.set(theme);\n\n if (!this.isBrowser) return;\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","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() && 'relative cursor-wait',\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 { 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 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 >\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, 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 providers: [{ provide: SNY_ACCORDION, useExisting: SnyAccordionDirective }],\n host: { '[class]': 'computedClass()' },\n})\nexport class SnyAccordionDirective {\n readonly multi = input(false);\n readonly class = input<string>('');\n\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\n@Directive({\n selector: '[snyAccordionItem]',\n standalone: true,\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 '(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 { 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 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 Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\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 host: {\n class: 'relative inline-block w-full',\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 >\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\">\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 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 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 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.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: { '[class]': 'computedClass()' },\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 { Component, computed, input, model } from '@angular/core';\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 host: { class: 'inline-flex' },\n template: `\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [class]=\"trackClass()\"\n (click)=\"checked.set(!checked())\"\n >\n <span [class]=\"thumbClass()\"></span>\n </button>\n `,\n})\nexport class SnySwitchComponent {\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly size = input<SwitchSize>('md');\n readonly class = input<string>('');\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, input, model } from '@angular/core';\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 host: {\n '[class]': 'computedClass()',\n '[attr.aria-pressed]': 'pressed()',\n '(click)': 'pressed.set(!pressed())',\n },\n})\nexport class SnyToggleDirective {\n readonly variant = input<ToggleVariant>('default');\n readonly size = input<ToggleSize>('md');\n readonly pressed = model(false);\n readonly class = input<string>('');\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 { Component, computed, ElementRef, inject, input, model, OnDestroy, viewChild } from '@angular/core';\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 host: {\n class: 'block',\n '(keydown)': 'onKeydown($event)',\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]=\"disabled()\"\n [class]=\"thumbClass()\"\n [style.left.%]=\"percentage()\"\n tabindex=\"0\"\n ></button>\n </div>\n `,\n})\nexport class SnySliderComponent implements 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 trackRef = viewChild<ElementRef<HTMLDivElement>>('trackEl');\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\n private upHandler: (() => void) | null = null;\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.disabled() && '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.disabled()) 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 this.value.set(Math.max(this.min(), Math.min(this.max(), stepped)));\n }\n\n onTrackMousedown(event: MouseEvent): void {\n if (this.disabled()) 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 = () => this.removeListeners();\n document.addEventListener('mousemove', this.moveHandler as EventListener);\n document.addEventListener('mouseup', this.upHandler);\n }\n\n onTrackTouchstart(event: TouchEvent): void {\n if (this.disabled()) 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 = () => this.removeListeners();\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.disabled()) return;\n const step = this.step();\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n this.value.set(Math.min(this.max(), this.value() + step));\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n this.value.set(Math.max(this.min(), this.value() - step));\n break;\n case 'Home':\n event.preventDefault();\n this.value.set(this.min());\n break;\n case 'End':\n event.preventDefault();\n this.value.set(this.max());\n break;\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 { 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 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, 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 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 },\n})\nexport class SnyTabsListDirective {\n readonly class = input<string>('');\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\n@Directive({\n selector: '[snyTabsTrigger]',\n standalone: true,\n host: {\n role: 'tab',\n '[class]': 'computedClass()',\n '[attr.aria-selected]': 'isActive()',\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 Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\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 host: {\n class: 'relative inline-block w-full',\n },\n template: `\n <button\n #triggerEl\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class]=\"triggerClass()\"\n (click)=\"toggle()\"\n (keydown)=\"onTriggerKeydown($event)\"\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\">\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 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 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 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.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 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","/*\r\n * Public API Surface of @sonny-ui/core\r\n */\r\n\r\n// Utils\r\nexport { cn } from './lib/core/utils/cn';\r\nexport { cva, type VariantProps } from './lib/core/utils/cva-types';\r\n\r\n// Providers\r\nexport { provideSonnyUI, SNY_CONFIG, type SonnyConfig } from './lib/core/providers/sonny-config';\r\nexport { ThemeService, type Theme } from './lib/core/providers/theme.service';\r\n\r\n// Button\r\nexport * from './lib/button';\r\n\r\n// Card\r\nexport * from './lib/card';\r\n\r\n// Input\r\nexport * from './lib/input';\r\n\r\n// Toast\r\nexport * from './lib/toast';\r\n\r\n// Modal/Dialog\r\nexport * from './lib/modal';\r\n\r\n// Accordion\r\nexport * from './lib/accordion';\r\n\r\n// Avatar\r\nexport * from './lib/avatar';\r\n\r\n// Badge\r\nexport * from './lib/badge';\r\n\r\n// Breadcrumb\r\nexport * from './lib/breadcrumb';\r\n\r\n// Button Group\r\nexport * from './lib/button-group';\r\n\r\n// Checkbox\r\nexport * from './lib/checkbox';\r\n\r\n// Combobox\r\nexport * from './lib/combobox';\r\n\r\n// Skeleton\r\nexport * from './lib/skeleton';\r\n\r\n// Radio\r\nexport * from './lib/radio';\r\n\r\n// Switch\r\nexport * from './lib/switch';\r\n\r\n// Toggle\r\nexport * from './lib/toggle';\r\n\r\n// Slider\r\nexport * from './lib/slider';\r\n\r\n// Loader\r\nexport * from './lib/loader';\r\n\r\n// Tabs\r\nexport * from './lib/tabs';\r\n\r\n// Select\r\nexport * from './lib/select';\r\n\r\n// Table\r\nexport * from './lib/table';\r\n\r\n// Sheet\r\nexport * from './lib/sheet';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@sonny-ui/core",
3
+ "version": "0.1.0-alpha.1",
4
+ "description": "Angular UI component library inspired by shadcn/ui — signals, zoneless, Tailwind CSS v4",
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0",
8
+ "@angular/cdk": "^21.0.0"
9
+ },
10
+ "dependencies": {
11
+ "tslib": "^2.3.0",
12
+ "class-variance-authority": "^0.7.0",
13
+ "clsx": "^2.0.0",
14
+ "tailwind-merge": "^3.0.0"
15
+ },
16
+ "schematics": "./schematics/collection.json",
17
+ "ng-add": {
18
+ "save": "dependencies"
19
+ },
20
+ "sideEffects": false,
21
+ "keywords": [
22
+ "angular",
23
+ "ui",
24
+ "components",
25
+ "tailwind",
26
+ "shadcn",
27
+ "signals",
28
+ "zoneless"
29
+ ],
30
+ "license": "MIT",
31
+ "author": "coci_dev",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/coci-dev/sonny-ui.git"
35
+ },
36
+ "homepage": "https://github.com/coci-dev/sonny-ui#readme",
37
+ "bugs": {
38
+ "url": "https://github.com/coci-dev/sonny-ui/issues"
39
+ },
40
+ "module": "fesm2022/sonny-ui-core.mjs",
41
+ "typings": "types/sonny-ui-core.d.ts",
42
+ "exports": {
43
+ "./package.json": {
44
+ "default": "./package.json"
45
+ },
46
+ ".": {
47
+ "types": "./types/sonny-ui-core.d.ts",
48
+ "default": "./fesm2022/sonny-ui-core.mjs"
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Add SonnyUI to a project",
6
+ "factory": "./ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json"
8
+ },
9
+ "component": {
10
+ "description": "Copy a SonnyUI component source to your project (shadcn-style)",
11
+ "factory": "./ng-generate/component/index#generateComponent",
12
+ "schema": "./ng-generate/component/schema.json",
13
+ "aliases": ["c"]
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare function ngAdd(options: {
3
+ project?: string;
4
+ theme?: string;
5
+ }): Rule;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ngAdd = ngAdd;
4
+ function ngAdd(options) {
5
+ return (tree, context) => {
6
+ context.logger.info('Adding SonnyUI to your project...');
7
+ // Create .postcssrc.json if it doesn't exist
8
+ if (!tree.exists('.postcssrc.json')) {
9
+ tree.create('.postcssrc.json', JSON.stringify({ plugins: { '@tailwindcss/postcss': {} } }, null, 2));
10
+ context.logger.info('Created .postcssrc.json');
11
+ }
12
+ // Add theme import to styles.css
13
+ const stylesPath = 'src/styles.css';
14
+ if (tree.exists(stylesPath)) {
15
+ const content = tree.read(stylesPath).toString('utf-8');
16
+ const themeImport = '@import "@sonny-ui/core/styles/sonny-theme.css";';
17
+ const sourceDirective = '@source "../node_modules/@sonny-ui/core";';
18
+ if (!content.includes(themeImport)) {
19
+ const newContent = `${themeImport}\n${sourceDirective}\n\n${content}`;
20
+ tree.overwrite(stylesPath, newContent);
21
+ context.logger.info('Added SonnyUI theme import to styles.css');
22
+ }
23
+ }
24
+ return tree;
25
+ };
26
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "id": "SonnyUIAddSchema",
4
+ "title": "SonnyUI ng-add schematic",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "The project to add SonnyUI to."
10
+ },
11
+ "theme": {
12
+ "type": "string",
13
+ "default": "light",
14
+ "enum": ["light", "dark", "corporate"],
15
+ "description": "Default theme to configure."
16
+ }
17
+ },
18
+ "required": []
19
+ }
@@ -0,0 +1,9 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ interface Schema {
3
+ name: string;
4
+ path: string;
5
+ prefix: string;
6
+ skipTests: boolean;
7
+ }
8
+ export declare function generateComponent(options: Schema): Rule;
9
+ export {};