ng-blatui 1.22.0 → 1.24.0

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":"ng-blatui.mjs","sources":["../../../projects/ng-blatui/src/lib/utils/cn.ts","../../../projects/ng-blatui/src/lib/button/button.ts","../../../projects/ng-blatui/src/lib/badge/badge.ts","../../../projects/ng-blatui/src/lib/label/label.ts","../../../projects/ng-blatui/src/lib/separator/separator.ts","../../../projects/ng-blatui/src/lib/skeleton/skeleton.ts","../../../projects/ng-blatui/src/lib/card/card.ts","../../../projects/ng-blatui/src/lib/alert/alert.ts","../../../projects/ng-blatui/src/lib/input/input.ts","../../../projects/ng-blatui/src/lib/textarea/textarea.ts","../../../projects/ng-blatui/src/lib/progress/progress.ts","../../../projects/ng-blatui/src/lib/avatar/avatar.ts","../../../projects/ng-blatui/src/lib/checkbox/checkbox.ts","../../../projects/ng-blatui/src/lib/switch/switch.ts","../../../projects/ng-blatui/src/lib/accordion/accordion.ts","../../../projects/ng-blatui/src/lib/tabs/tabs.ts","../../../projects/ng-blatui/src/lib/dialog/dialog.ts","../../../projects/ng-blatui/src/lib/theme/theme.ts","../../../projects/ng-blatui/src/lib/theme/theme-customizer.ts","../../../projects/ng-blatui/src/lib/radio-group/radio-group.ts","../../../projects/ng-blatui/src/lib/tooltip/tooltip.ts","../../../projects/ng-blatui/src/lib/breadcrumb/breadcrumb.ts","../../../projects/ng-blatui/src/lib/kbd/kbd.ts","../../../projects/ng-blatui/src/lib/aspect-ratio/aspect-ratio.ts","../../../projects/ng-blatui/src/lib/button-group/button-group.ts","../../../projects/ng-blatui/src/lib/empty/empty.ts","../../../projects/ng-blatui/src/lib/container/container.ts","../../../projects/ng-blatui/src/lib/field/field.ts","../../../projects/ng-blatui/src/lib/collapsible/collapsible.ts","../../../projects/ng-blatui/src/lib/toggle/toggle.ts","../../../projects/ng-blatui/src/lib/spinner/spinner.ts","../../../projects/ng-blatui/src/lib/copy-button/copy-button.ts","../../../projects/ng-blatui/src/lib/banner/banner.ts","../../../projects/ng-blatui/src/lib/table/table.ts","../../../projects/ng-blatui/src/lib/avatar-group/avatar-group.ts","../../../projects/ng-blatui/src/lib/pagination/pagination.ts","../../../projects/ng-blatui/src/lib/popover/popover.ts","../../../projects/ng-blatui/src/lib/item/item.ts","../../../projects/ng-blatui/src/lib/scroll-area/scroll-area.ts","../../../projects/ng-blatui/src/lib/input-group/input-group.ts","../../../projects/ng-blatui/src/lib/visually-hidden/visually-hidden.ts","../../../projects/ng-blatui/src/lib/meter/meter.ts","../../../projects/ng-blatui/src/lib/stat/stat.ts","../../../projects/ng-blatui/src/lib/hover-card/hover-card.ts","../../../projects/ng-blatui/src/lib/code-block/code-block.ts","../../../projects/ng-blatui/src/lib/slider/slider.ts","../../../projects/ng-blatui/src/lib/rating/rating.ts","../../../projects/ng-blatui/src/lib/quantity-selector/quantity-selector.ts","../../../projects/ng-blatui/src/lib/alert-dialog/alert-dialog.ts","../../../projects/ng-blatui/src/lib/autosize-textarea/autosize-textarea.ts","../../../projects/ng-blatui/src/lib/dropdown-menu/dropdown-menu.ts","../../../projects/ng-blatui/src/lib/menubar/menubar.ts","../../../projects/ng-blatui/src/lib/typography/typography.ts","../../../projects/ng-blatui/src/lib/dot-pattern/dot-pattern.ts","../../../projects/ng-blatui/src/lib/grid-pattern/grid-pattern.ts","../../../projects/ng-blatui/src/lib/segmented-control/segmented-control.ts","../../../projects/ng-blatui/src/lib/terminal/terminal.ts","../../../projects/ng-blatui/src/lib/comparison-table/comparison-table.ts","../../../projects/ng-blatui/src/lib/flip-card/flip-card.ts","../../../projects/ng-blatui/src/lib/spotlight-card/spotlight-card.ts","../../../projects/ng-blatui/src/lib/tilt-card/tilt-card.ts","../../../projects/ng-blatui/src/lib/select/select.ts","../../../projects/ng-blatui/src/lib/back-to-top/back-to-top.ts","../../../projects/ng-blatui/src/lib/combobox/combobox.ts","../../../projects/ng-blatui/src/lib/countdown/countdown.ts","../../../projects/ng-blatui/src/lib/number-ticker/number-ticker.ts","../../../projects/ng-blatui/src/public-api.ts","../../../projects/ng-blatui/src/ng-blatui.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merge class names with `clsx` semantics and resolve Tailwind conflicts with\n * `tailwind-merge`. The single utility every ng-blatui component uses to combine\n * its variant classes with consumer-provided ones.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n\nexport { type ClassValue } from 'clsx';\n","import { computed, Directive, input } from '@angular/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport const buttonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n xs: 'h-7 gap-1 rounded-md px-2.5 text-xs has-[>svg]:px-2 [&_svg:not([class*=size-])]:size-3.5',\n sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': 'size-7 [&_svg:not([class*=size-])]:size-3.5',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\n/**\n * Applies BlatUI button styling to a native `<button>` or `<a>`, keeping native\n * semantics, focus and keyboard behavior (accessibility for free).\n */\n@Directive({\n selector: 'button[buiButton], a[buiButton]',\n host: {\n 'data-slot': 'button',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiButton {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BASE =\n 'inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden';\n\nconst SIZES = {\n sm: 'px-1.5 py-px text-[0.625rem]',\n default: 'px-2 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm [&>svg]:size-3.5',\n} as const;\n\nconst VARIANTS = {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n} as const;\n\nconst TONES = {\n success: {\n soft: 'border-transparent bg-success/10 text-success dark:bg-success/15',\n solid: 'border-transparent bg-success text-success-foreground',\n outline: 'text-success border-success/40',\n },\n warning: {\n soft: 'border-transparent bg-warning/10 text-warning dark:bg-warning/15',\n solid: 'border-transparent bg-warning text-warning-foreground',\n outline: 'text-warning border-warning/40',\n },\n danger: {\n soft: 'border-transparent bg-destructive/10 text-destructive dark:bg-destructive/15',\n solid: 'border-transparent bg-destructive text-destructive-foreground',\n outline: 'text-destructive border-destructive/40',\n },\n info: {\n soft: 'border-transparent bg-info/10 text-info dark:bg-info/15',\n solid: 'border-transparent bg-info text-info-foreground',\n outline: 'text-info border-info/40',\n },\n neutral: {\n soft: 'border-transparent bg-muted text-muted-foreground',\n solid: 'border-transparent bg-foreground/85 text-background',\n outline: 'text-muted-foreground border-border',\n },\n} as const;\n\nexport type BadgeSize = keyof typeof SIZES;\nexport type BadgeVariant = keyof typeof VARIANTS | 'soft' | 'solid';\nexport type BadgeTone = keyof typeof TONES;\nexport type BadgeIntensity = keyof (typeof TONES)['success'];\n\nfunction brandClass(variant: BadgeVariant): string {\n switch (variant) {\n case 'secondary': {\n return VARIANTS.secondary;\n }\n case 'destructive': {\n return VARIANTS.destructive;\n }\n case 'outline': {\n return VARIANTS.outline;\n }\n default: {\n return VARIANTS.default;\n }\n }\n}\n\nfunction intensityFor(variant: BadgeVariant): BadgeIntensity {\n return variant === 'solid' || variant === 'outline' ? variant : 'soft';\n}\n\n/**\n * BlatUI badge. Brand variants (`default | secondary | destructive | outline`)\n * or semantic `tone` (`success | warning | danger | info | neutral`) where\n * `variant` then selects intensity (`soft | solid | outline`). Built on a native\n * element so it stays in the document flow and screen-reader friendly.\n */\n@Directive({\n selector: '[buiBadge]',\n host: {\n 'data-slot': 'badge',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiBadge {\n readonly variant = input<BadgeVariant>('default');\n readonly tone = input<BadgeTone | null>(null);\n readonly size = input<BadgeSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => {\n const tone = this.tone();\n const toneOrVariant =\n tone === null ? brandClass(this.variant()) : TONES[tone][intensityFor(this.variant())];\n return cn(BASE, SIZES[this.size()], toneOrVariant, this.userClass());\n });\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI label. Apply to a native `<label>` (use `for`/`id` to associate it with\n * a control) so the click-to-focus and screen-reader association work natively.\n */\n@Directive({\n selector: 'label[buiLabel]',\n host: {\n 'data-slot': 'label',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiLabel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport type SeparatorOrientation = 'horizontal' | 'vertical';\n\n/**\n * BlatUI separator. `decorative` (default) renders `role=\"none\"`; set\n * `[decorative]=\"false\"` for a semantic `role=\"separator\"` with `aria-orientation`.\n */\n@Directive({\n selector: '[buiSeparator]',\n host: {\n 'data-slot': 'separator',\n '[attr.role]': \"decorative() ? 'none' : 'separator'\",\n '[attr.aria-orientation]': 'decorative() ? null : orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiSeparator {\n readonly orientation = input<SeparatorOrientation>('horizontal');\n readonly decorative = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI skeleton placeholder. Marked `aria-hidden` so assistive tech ignores the\n * shimmering placeholder; announce real loading state separately (e.g. aria-busy).\n */\n@Directive({\n selector: '[buiSkeleton]',\n host: {\n 'data-slot': 'skeleton',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiSkeleton {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('animate-pulse rounded-md bg-accent', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst CARD_VARIANTS = {\n // Simple padded box — the dominant use case.\n default: 'bg-card text-card-foreground rounded-xl border p-6 shadow-sm',\n // Sectioned layout for card-header / card-content / card-footer (each supplies its own px-6).\n sectioned: 'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\n/** BlatUI card container. Use `variant=\"sectioned\"` with the header/content/footer parts. */\n@Directive({\n selector: '[buiCard]',\n host: { 'data-slot': 'card', '[class]': 'computedClass()' },\n})\nexport class BuiCard {\n readonly variant = input<CardVariant>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(CARD_VARIANTS[this.variant()], this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardHeader]',\n host: { 'data-slot': 'card-header', '[class]': 'computedClass()' },\n})\nexport class BuiCardHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiCardTitle]',\n host: { 'data-slot': 'card-title', '[class]': 'computedClass()' },\n})\nexport class BuiCardTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('leading-none font-semibold', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardDescription]',\n host: { 'data-slot': 'card-description', '[class]': 'computedClass()' },\n})\nexport class BuiCardDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardAction]',\n host: { 'data-slot': 'card-action', '[class]': 'computedClass()' },\n})\nexport class BuiCardAction {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardContent]',\n host: { 'data-slot': 'card-content', '[class]': 'computedClass()' },\n})\nexport class BuiCardContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => cn('px-6', this.userClass()));\n}\n\n@Directive({\n selector: '[buiCardFooter]',\n host: { 'data-slot': 'card-footer', '[class]': 'computedClass()' },\n})\nexport class BuiCardFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('flex items-center px-6 [.border-t]:pt-6', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst ALERT_BASE =\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current';\n\nconst ALERT_VARIANTS = {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive',\n} as const;\n\nconst ALERT_TONES = {\n success:\n 'border-success/20 bg-success/10 text-success [&>svg]:text-success *:data-[slot=alert-description]:text-success',\n warning:\n 'border-warning/20 bg-warning/10 text-warning [&>svg]:text-warning *:data-[slot=alert-description]:text-warning',\n danger:\n 'border-destructive/20 bg-destructive/10 text-destructive [&>svg]:text-destructive *:data-[slot=alert-description]:text-destructive',\n info: 'border-info/20 bg-info/10 text-info [&>svg]:text-info *:data-[slot=alert-description]:text-info',\n neutral:\n 'border-border bg-muted text-foreground [&>svg]:text-foreground *:data-[slot=alert-description]:text-muted-foreground',\n} as const;\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS;\nexport type AlertTone = keyof typeof ALERT_TONES;\n\n/**\n * BlatUI alert. `role=\"alert\"` for assistive tech. Brand `variant`\n * (`default | destructive`) or semantic `tone` (`success | warning | danger | info | neutral`).\n */\n@Directive({\n selector: '[buiAlert]',\n host: { 'data-slot': 'alert', role: 'alert', '[class]': 'computedClass()' },\n})\nexport class BuiAlert {\n readonly variant = input<AlertVariant>('default');\n readonly tone = input<AlertTone | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => {\n const tone = this.tone();\n const toneOrVariant = tone === null ? ALERT_VARIANTS[this.variant()] : ALERT_TONES[tone];\n return cn(ALERT_BASE, toneOrVariant, this.userClass());\n });\n}\n\n@Directive({\n selector: '[buiAlertTitle]',\n host: { 'data-slot': 'alert-title', '[class]': 'computedClass()' },\n})\nexport class BuiAlertTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDescription]',\n host: { 'data-slot': 'alert-description', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst INPUT_BASE =\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex w-full min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive';\n\nconst INPUT_SIZES = {\n sm: 'h-8 px-2.5 py-1 text-sm file:h-6 file:text-xs',\n default: 'h-9 px-3 py-1 text-base md:text-sm file:h-7 file:text-sm',\n lg: 'h-10 px-4 py-2 text-base file:h-8 file:text-sm',\n} as const;\n\nexport type InputSize = keyof typeof INPUT_SIZES;\n\n/** Applies BlatUI input styling to a native `<input>` (keeps native validation & a11y). */\n@Directive({\n selector: 'input[buiInput]',\n host: {\n 'data-slot': 'input',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiInput {\n readonly size = input<InputSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(INPUT_BASE, INPUT_SIZES[this.size()], this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TEXTAREA_BASE =\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content w-full rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\nconst TEXTAREA_SIZES = {\n sm: 'min-h-14 px-2.5 py-1.5 text-sm',\n default: 'min-h-16 px-3 py-2 text-base md:text-sm',\n lg: 'min-h-20 px-4 py-2.5 text-base',\n} as const;\n\nexport type TextareaSize = keyof typeof TEXTAREA_SIZES;\n\n/** Applies BlatUI textarea styling to a native `<textarea>` (auto-grows via field-sizing). */\n@Directive({\n selector: 'textarea[buiTextarea]',\n host: {\n 'data-slot': 'textarea',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTextarea {\n readonly size = input<TextareaSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(TEXTAREA_BASE, TEXTAREA_SIZES[this.size()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI linear progress bar. Exposes the full `progressbar` ARIA contract\n * (valuemin/max/now/text). Set `[indeterminate]=\"true\"` for an unknown-duration bar.\n */\n@Component({\n selector: 'bui-progress',\n host: {\n 'data-slot': 'progress',\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-valuenow]': 'indeterminate() ? null : rounded()',\n '[attr.aria-valuetext]': 'indeterminate() ? null : valueText()',\n '[class]': 'computedClass()',\n },\n template: `\n @if (indeterminate()) {\n <span\n data-slot=\"progress-indicator\"\n class=\"absolute inset-y-0 w-2/5 animate-progress-indeterminate rounded-full bg-primary\"\n ></span>\n } @else {\n <span\n data-slot=\"progress-indicator\"\n class=\"block h-full w-full rounded-full bg-primary transition-all\"\n [style.transform]=\"indicatorTransform()\"\n ></span>\n }\n `,\n})\nexport class BuiProgress {\n readonly value = input(0);\n readonly indeterminate = input(false);\n readonly ariaLabel = input('Progress');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly pct = computed(() => Math.max(0, Math.min(100, this.value())));\n protected readonly rounded = computed(() => Math.round(this.pct()));\n protected readonly valueText = computed(() => `${this.rounded()}%`);\n protected readonly indicatorTransform = computed(() => `translateX(-${100 - this.pct()}%)`);\n protected readonly computedClass = computed(() =>\n cn('relative block h-2 w-full overflow-hidden rounded-full bg-primary/20', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI avatar. Renders the image when `src` is set and loads; otherwise shows\n * the projected fallback (initials, icon). Falls back automatically on load error.\n */\n@Component({\n selector: 'bui-avatar',\n host: {\n 'data-slot': 'avatar',\n '[class]': 'computedClass()',\n },\n template: `\n @if (src() && !error()) {\n <img\n data-slot=\"avatar-image\"\n class=\"aspect-square size-full\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n (error)=\"error.set(true)\"\n />\n } @else {\n <span\n data-slot=\"avatar-fallback\"\n class=\"flex size-full items-center justify-center rounded-full bg-muted text-sm\"\n >\n <ng-content />\n </span>\n }\n `,\n})\nexport class BuiAvatar {\n readonly src = input<string | null>(null);\n readonly alt = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly error = signal(false);\n protected readonly computedClass = computed(() =>\n cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', this.userClass()),\n );\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst CHECKBOX_BASE =\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 flex items-center justify-center';\n\n/**\n * BlatUI checkbox. A native `<button role=\"checkbox\">` (Space/Enter toggle for free)\n * with `[(checked)]` two-way binding and tri-state `[(indeterminate)]`.\n */\n@Component({\n selector: 'button[buiCheckbox]',\n host: {\n type: 'button',\n role: 'checkbox',\n 'data-slot': 'checkbox',\n '[attr.aria-checked]': 'ariaChecked()',\n '[attr.data-state]': 'state()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `\n @if (checked() || indeterminate()) {\n <span data-slot=\"checkbox-indicator\" class=\"flex items-center justify-center text-current\">\n @if (indeterminate()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n }\n </span>\n }\n `,\n})\nexport class BuiCheckbox {\n readonly checked = model(false);\n readonly indeterminate = model(false);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly state = computed(() => {\n if (this.indeterminate()) {\n return 'indeterminate';\n }\n return this.checked() ? 'checked' : 'unchecked';\n });\n protected readonly ariaChecked = computed(() =>\n this.indeterminate() ? 'mixed' : String(this.checked()),\n );\n protected readonly computedClass = computed(() => cn(CHECKBOX_BASE, this.userClass()));\n\n protected toggle(): void {\n if (this.disabled()) {\n return;\n }\n if (this.indeterminate()) {\n this.indeterminate.set(false);\n this.checked.set(true);\n } else {\n this.checked.update((value) => !value);\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SWITCH_BASE =\n 'peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\nconst SWITCH_TRACK = {\n sm: 'h-4 w-7',\n default: 'h-[1.15rem] w-8',\n lg: 'h-6 w-10',\n} as const;\n\nconst SWITCH_THUMB = {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n} as const;\n\nconst THUMB_BASE =\n 'bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0';\n\nexport type SwitchSize = keyof typeof SWITCH_TRACK;\n\n/**\n * BlatUI switch. A native `<button role=\"switch\">` with `[(checked)]` two-way\n * binding; keyboard activation (Space/Enter) and focus come from the native button.\n */\n@Component({\n selector: 'button[buiSwitch]',\n host: {\n type: 'button',\n role: 'switch',\n 'data-slot': 'switch',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': 'state()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `\n <span data-slot=\"switch-thumb\" [attr.data-state]=\"state()\" [class]=\"thumbClass()\"></span>\n `,\n})\nexport class BuiSwitch {\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly size = input<SwitchSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly state = computed(() => (this.checked() ? 'checked' : 'unchecked'));\n protected readonly computedClass = computed(() =>\n cn(SWITCH_BASE, SWITCH_TRACK[this.size()], this.userClass()),\n );\n protected readonly thumbClass = computed(() => cn(THUMB_BASE, SWITCH_THUMB[this.size()]));\n\n protected toggle(): void {\n if (this.disabled()) {\n return;\n }\n this.checked.update((value) => !value);\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Behaviour + accessibility come from Angular Aria's accordion directives\n * (`ngAccordionGroup` / `ngAccordionTrigger` / `ngAccordionPanel` / `ngAccordionContent`):\n * they own `aria-expanded`, `aria-controls`, roving focus and keyboard navigation.\n * The `bui*` directives below only add BlatUI styling, so you compose both:\n *\n * ```html\n * <div ngAccordionGroup buiAccordion [multiExpandable]=\"false\">\n * <div buiAccordionItem>\n * <h3 class=\"flex\">\n * <button ngAccordionTrigger buiAccordionTrigger [panel]=\"p1\">Title <svg>…</svg></button>\n * </h3>\n * <div ngAccordionPanel #p1=\"ngAccordionPanel\" buiAccordionContent>\n * <ng-template ngAccordionContent><div class=\"pb-4\">Content</div></ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n */\nexport {\n AccordionContent,\n AccordionGroup,\n AccordionPanel,\n AccordionTrigger,\n // Re-exported so consumers importing the accordion from `ng-blatui` can resolve the\n // deferred-content symbols the Aria directives reference internally.\n ɵɵDeferredContent,\n ɵɵDeferredContentAware,\n} from '@angular/aria/accordion';\n\nconst TRIGGER =\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&>svg]:text-muted-foreground [&>svg]:pointer-events-none [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5 [&>svg]:transition-transform [&>svg]:duration-200 [&[aria-expanded=true]>svg]:rotate-180';\n\n@Directive({\n selector: '[buiAccordion]',\n host: { 'data-slot': 'accordion', '[class]': 'computedClass()' },\n})\nexport class BuiAccordion {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('w-full', this.userClass()));\n}\n\n@Directive({\n selector: '[buiAccordionItem]',\n host: { 'data-slot': 'accordion-item', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('border-b last:border-b-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'button[buiAccordionTrigger]',\n host: { 'data-slot': 'accordion-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(TRIGGER, this.userClass()));\n}\n\n@Directive({\n selector: '[buiAccordionContent]',\n host: { 'data-slot': 'accordion-content', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('overflow-hidden text-sm', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Behaviour + accessibility come from Angular Aria's tabs directives\n * (`ngTabs` / `ngTabList` / `ngTab` / `ngTabPanel` / `ngTabContent`): roles,\n * `aria-selected`, roving tabindex and arrow-key navigation. The `bui*` directives\n * add BlatUI's segmented styling (selected state keys off `aria-selected`):\n *\n * ```html\n * <div ngTabs buiTabs>\n * <div ngTabList buiTabList selectedTab=\"a\">\n * <div ngTab value=\"a\" buiTabTrigger>Account</div>\n * <div ngTab value=\"b\" buiTabTrigger>Password</div>\n * </div>\n * <div ngTabPanel value=\"a\" buiTabPanel><ng-template ngTabContent>…</ng-template></div>\n * <div ngTabPanel value=\"b\" buiTabPanel><ng-template ngTabContent>…</ng-template></div>\n * </div>\n * ```\n */\nexport { Tab, TabContent, TabList, TabPanel, Tabs } from '@angular/aria/tabs';\n\nconst TAB_TRIGGER =\n 'text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 cursor-default items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-selected:bg-background aria-selected:shadow-sm dark:aria-selected:text-foreground dark:aria-selected:border-input dark:aria-selected:bg-input/30';\n\n@Directive({\n selector: '[buiTabs]',\n host: { 'data-slot': 'tabs', '[class]': 'computedClass()' },\n})\nexport class BuiTabs {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('flex flex-col gap-2', this.userClass()));\n}\n\n@Directive({\n selector: '[buiTabList]',\n host: { 'data-slot': 'tabs-list', '[class]': 'computedClass()' },\n})\nexport class BuiTabList {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiTabTrigger]',\n host: { 'data-slot': 'tabs-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiTabTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(TAB_TRIGGER, this.userClass()));\n}\n\n@Directive({\n selector: '[buiTabPanel]',\n host: { 'data-slot': 'tabs-content', '[class]': 'computedClass()' },\n})\nexport class BuiTabPanel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('flex-1 outline-none', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Overlay, backdrop, focus-trap, scroll-block, Escape-to-close, `role=\"dialog\"`\n * and `aria-modal` all come from Angular CDK's `Dialog` service (re-exported below).\n * Open a `TemplateRef`/component whose root carries `buiDialogContent`:\n *\n * ```ts\n * private dialog = inject(Dialog);\n * open(tpl: TemplateRef<unknown>) { this.dialog.open(tpl); }\n * ```\n */\nexport { Dialog, DialogRef, DialogModule, DIALOG_DATA } from '@angular/cdk/dialog';\n\nconst DIALOG_CONTENT =\n 'bg-background relative grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg sm:max-w-lg';\n\n@Directive({\n selector: '[buiDialogContent]',\n host: { 'data-slot': 'dialog-content', '[class]': 'computedClass()' },\n})\nexport class BuiDialogContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(DIALOG_CONTENT, this.userClass()));\n}\n\n@Directive({\n selector: '[buiDialogHeader]',\n host: { 'data-slot': 'dialog-header', '[class]': 'computedClass()' },\n})\nexport class BuiDialogHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-2 text-center sm:text-left', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogTitle]',\n host: { 'data-slot': 'dialog-title', '[class]': 'computedClass()' },\n})\nexport class BuiDialogTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-lg leading-none font-semibold', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogDescription]',\n host: { 'data-slot': 'dialog-description', '[class]': 'computedClass()' },\n})\nexport class BuiDialogDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogFooter]',\n host: { 'data-slot': 'dialog-footer', '[class]': 'computedClass()' },\n})\nexport class BuiDialogFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.userClass()),\n );\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { computed, effect, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\n/** Every token the `@theme inline` mapping references — emitted into `:root` on export. */\nexport const THEME_TOKENS = [\n '--radius',\n '--spacing',\n '--tracking-normal',\n '--font-sans',\n '--font-serif',\n '--font-mono',\n '--shadow-2xs',\n '--shadow-xs',\n '--shadow-sm',\n '--shadow',\n '--shadow-md',\n '--shadow-lg',\n '--shadow-xl',\n '--shadow-2xl',\n '--background',\n '--foreground',\n '--card',\n '--card-foreground',\n '--popover',\n '--popover-foreground',\n '--primary',\n '--primary-foreground',\n '--secondary',\n '--secondary-foreground',\n '--muted',\n '--muted-foreground',\n '--accent',\n '--accent-foreground',\n '--destructive',\n '--destructive-foreground',\n '--border',\n '--input',\n '--ring',\n '--chart-1',\n '--chart-2',\n '--chart-3',\n '--chart-4',\n '--chart-5',\n '--sidebar',\n '--sidebar-foreground',\n '--sidebar-primary',\n '--sidebar-primary-foreground',\n '--sidebar-accent',\n '--sidebar-accent-foreground',\n '--sidebar-border',\n '--sidebar-ring',\n] as const;\n\nconst THEME_SCAFFOLD = `@import 'tailwindcss';\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n --font-sans: var(--font-sans);\n --font-serif: var(--font-serif);\n --font-mono: var(--font-mono);\n\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n\n --spacing: var(--spacing);\n\n --tracking-tighter: calc(var(--tracking-normal) - 0.05em);\n --tracking-tight: calc(var(--tracking-normal) - 0.025em);\n --tracking-normal: var(--tracking-normal);\n --tracking-wide: calc(var(--tracking-normal) + 0.025em);\n --tracking-wider: calc(var(--tracking-normal) + 0.05em);\n --tracking-widest: calc(var(--tracking-normal) + 0.1em);\n\n --shadow-2xs: var(--shadow-2xs);\n --shadow-xs: var(--shadow-xs);\n --shadow-sm: var(--shadow-sm);\n --shadow: var(--shadow);\n --shadow-md: var(--shadow-md);\n --shadow-lg: var(--shadow-lg);\n --shadow-xl: var(--shadow-xl);\n --shadow-2xl: var(--shadow-2xl);\n\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}`;\n\ninterface ThemeState {\n mode: ThemeMode;\n base: string;\n preset: string;\n radius: string;\n font: string;\n fontHeading: string;\n shadow: string;\n spacing: string;\n tracking: string;\n inputStyle: string;\n}\n\nconst DEFAULTS: ThemeState = {\n mode: 'light',\n base: 'neutral',\n preset: 'default',\n radius: '0.625',\n font: 'sans',\n fontHeading: 'sans',\n shadow: 'default',\n spacing: 'default',\n tracking: 'normal',\n inputStyle: 'outline',\n};\n\n/**\n * Live theme engine (the brain behind `<bui-theme-customizer>`). Mirrors BlatUI:\n * every dimension just toggles a `data-*` attribute / the `.dark` class on `<html>`,\n * and `blatui.css` holds all the token values. `exportCss()` serialises the active\n * theme to a paste-ready stylesheet. SSR-safe and persisted to localStorage.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemeStore {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n readonly mode = signal<ThemeMode>(DEFAULTS.mode);\n readonly base = signal(DEFAULTS.base);\n readonly preset = signal(DEFAULTS.preset);\n readonly radius = signal(DEFAULTS.radius);\n readonly font = signal(DEFAULTS.font);\n readonly fontHeading = signal(DEFAULTS.fontHeading);\n readonly shadow = signal(DEFAULTS.shadow);\n readonly spacing = signal(DEFAULTS.spacing);\n readonly tracking = signal(DEFAULTS.tracking);\n readonly inputStyle = signal(DEFAULTS.inputStyle);\n\n private readonly systemDark = signal(false);\n readonly isDark = computed(\n () => this.mode() === 'dark' || (this.mode() === 'system' && this.systemDark()),\n );\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n this.load();\n const mql =\n typeof globalThis.matchMedia === 'function'\n ? globalThis.matchMedia('(prefers-color-scheme: dark)')\n : null;\n if (mql) {\n this.systemDark.set(mql.matches);\n mql.addEventListener('change', (event) => {\n this.systemDark.set(event.matches);\n });\n }\n effect(() => {\n this.apply();\n });\n }\n\n setMode(value: ThemeMode): void {\n this.mode.set(value);\n }\n setBase(value: string): void {\n this.base.set(value);\n }\n setPreset(value: string): void {\n this.preset.set(value);\n }\n setRadius(value: string): void {\n this.radius.set(value);\n }\n setFont(value: string): void {\n this.font.set(value);\n }\n setFontHeading(value: string): void {\n this.fontHeading.set(value);\n }\n setShadow(value: string): void {\n this.shadow.set(value);\n }\n setSpacing(value: string): void {\n this.spacing.set(value);\n }\n setTracking(value: string): void {\n this.tracking.set(value);\n }\n setInputStyle(value: string): void {\n this.inputStyle.set(value);\n }\n\n toggle(): void {\n this.setMode(this.isDark() ? 'light' : 'dark');\n }\n\n reset(): void {\n this.mode.set(DEFAULTS.mode);\n this.base.set(DEFAULTS.base);\n this.preset.set(DEFAULTS.preset);\n this.radius.set(DEFAULTS.radius);\n this.font.set(DEFAULTS.font);\n this.fontHeading.set(DEFAULTS.fontHeading);\n this.shadow.set(DEFAULTS.shadow);\n this.spacing.set(DEFAULTS.spacing);\n this.tracking.set(DEFAULTS.tracking);\n this.inputStyle.set(DEFAULTS.inputStyle);\n }\n\n /** Serialise the active theme to a complete, paste-ready stylesheet. */\n exportCss(): string {\n if (!this.isBrowser) {\n return '';\n }\n const root = document.documentElement;\n const wasDark = root.classList.contains('dark');\n root.classList.remove('dark');\n const light = this.readTokens();\n root.classList.add('dark');\n const dark = this.readTokens();\n root.classList.toggle('dark', wasDark);\n\n const block = (source: Record<string, string>, keys: readonly string[]): string =>\n keys\n .filter((token) => source[token])\n .map((token) => ` ${token}: ${source[token] ?? ''};`)\n .join('\\n');\n const darkKeys = THEME_TOKENS.filter((token) => dark[token] && dark[token] !== light[token]);\n return `${THEME_SCAFFOLD}\\n\\n:root {\\n${block(light, THEME_TOKENS)}\\n}\\n\\n.dark {\\n${block(dark, darkKeys)}\\n}\\n`;\n }\n\n private readTokens(): Record<string, string> {\n const cs = getComputedStyle(document.documentElement);\n const out: Record<string, string> = {};\n for (const token of THEME_TOKENS) {\n out[token] = cs.getPropertyValue(token).trim();\n }\n return out;\n }\n\n private load(): void {\n const read = (key: string, fallback: string): string =>\n localStorage.getItem(`theme:${key}`) ?? fallback;\n this.mode.set(read('mode', DEFAULTS.mode) as ThemeMode);\n this.base.set(read('base', DEFAULTS.base));\n this.preset.set(read('preset', DEFAULTS.preset));\n this.radius.set(read('radius', DEFAULTS.radius));\n this.font.set(read('font', DEFAULTS.font));\n this.fontHeading.set(read('fontHeading', DEFAULTS.fontHeading));\n this.shadow.set(read('shadow', DEFAULTS.shadow));\n this.spacing.set(read('spacing', DEFAULTS.spacing));\n this.tracking.set(read('tracking', DEFAULTS.tracking));\n this.inputStyle.set(read('inputStyle', DEFAULTS.inputStyle));\n }\n\n private apply(): void {\n const root = document.documentElement;\n const state: ThemeState = {\n mode: this.mode(),\n base: this.base(),\n preset: this.preset(),\n radius: this.radius(),\n font: this.font(),\n fontHeading: this.fontHeading(),\n shadow: this.shadow(),\n spacing: this.spacing(),\n tracking: this.tracking(),\n inputStyle: this.inputStyle(),\n };\n root.classList.toggle('dark', this.isDark());\n this.attr(root, 'data-base', state.base, DEFAULTS.base);\n this.attr(root, 'data-theme', state.preset, DEFAULTS.preset);\n this.attr(root, 'data-font', state.font, DEFAULTS.font);\n this.attr(root, 'data-font-heading', state.fontHeading, DEFAULTS.fontHeading);\n this.attr(root, 'data-shadow', state.shadow, DEFAULTS.shadow);\n this.attr(root, 'data-spacing', state.spacing, DEFAULTS.spacing);\n this.attr(root, 'data-tracking', state.tracking, DEFAULTS.tracking);\n this.attr(root, 'data-input-style', state.inputStyle, DEFAULTS.inputStyle);\n root.setAttribute('data-radius', state.radius);\n\n for (const [key, value] of Object.entries(state) as [string, string][]) {\n localStorage.setItem(`theme:${key}`, value);\n }\n }\n\n private attr(root: HTMLElement, name: string, value: string, fallback: string): void {\n if (value && value !== fallback) {\n root.setAttribute(name, value);\n } else {\n root.removeAttribute(name);\n }\n }\n}\n","import { Component, computed, inject, signal } from '@angular/core';\n\nimport { BuiButton } from '../button/button';\n\nimport { type ThemeMode, ThemeStore } from './theme';\n\ninterface Option<T extends string = string> {\n readonly value: T;\n readonly label: string;\n}\ninterface Swatch {\n readonly value: string;\n readonly color: string;\n}\ninterface FontOption {\n readonly value: string;\n readonly label: string;\n readonly family: string;\n}\n\nconst FONTS: readonly FontOption[] = [\n { value: 'sans', label: 'Default', family: \"'Instrument Sans', sans-serif\" },\n { value: 'inter', label: 'Inter', family: \"'Inter', sans-serif\" },\n { value: 'geist', label: 'Geist', family: \"'Geist', sans-serif\" },\n { value: 'manrope', label: 'Manrope', family: \"'Manrope', sans-serif\" },\n { value: 'jakarta', label: 'Jakarta', family: \"'Plus Jakarta Sans', sans-serif\" },\n { value: 'space-grotesk', label: 'Grotesk', family: \"'Space Grotesk', sans-serif\" },\n { value: 'dm-sans', label: 'DM Sans', family: \"'DM Sans', sans-serif\" },\n { value: 'outfit', label: 'Outfit', family: \"'Outfit', sans-serif\" },\n { value: 'sora', label: 'Sora', family: \"'Sora', sans-serif\" },\n { value: 'system', label: 'System', family: 'system-ui, sans-serif' },\n { value: 'serif', label: 'Serif', family: 'ui-serif, Georgia, serif' },\n { value: 'mono', label: 'Mono', family: 'ui-monospace, monospace' },\n];\n\n/**\n * BlatUI's \"Customize\" toolbar, ported to Angular. Tunes every theme dimension\n * live (mode, base, accent, radius, input style, fonts, shadow, spacing, tracking)\n * through {@link ThemeStore}, then exports a paste-ready stylesheet via \"Copy CSS\".\n */\n@Component({\n selector: 'bui-theme-customizer',\n imports: [BuiButton],\n host: { 'data-slot': 'theme-customizer' },\n template: `\n <button\n buiButton\n variant=\"outline\"\n size=\"sm\"\n class=\"fixed right-4 bottom-4 z-50 shadow-md\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n {{ open() ? 'Close' : 'Customize' }}\n </button>\n\n @if (open()) {\n <div\n role=\"dialog\"\n aria-label=\"Theme customizer\"\n class=\"fixed right-4 bottom-16 z-50 max-h-[80vh] w-[340px] space-y-5 overflow-y-auto rounded-lg border bg-popover p-4 text-popover-foreground shadow-lg\"\n >\n <div class=\"flex items-center justify-between\">\n <div>\n <h4 class=\"text-sm font-semibold\">Customize</h4>\n <p class=\"text-xs text-muted-foreground\">\n Tune it live. Every preset is pure CSS variables.\n </p>\n </div>\n <button buiButton variant=\"ghost\" size=\"sm\" (click)=\"theme.reset()\">Reset</button>\n </div>\n\n <!-- Mode -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Mode</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (m of modes; track m.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.mode() === m.value\"\n (click)=\"theme.setMode(m.value)\"\n >\n {{ m.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Base color -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Base color</span>\n <div class=\"grid grid-cols-9 gap-2\">\n @for (b of bases; track b.value) {\n <button\n type=\"button\"\n class=\"flex h-8 items-center justify-center rounded-md border border-input ring-offset-2 ring-offset-background transition-all data-[active=true]:ring-2 data-[active=true]:ring-ring\"\n [style.background]=\"b.color\"\n [attr.data-active]=\"theme.base() === b.value\"\n (click)=\"theme.setBase(b.value)\"\n >\n <span class=\"sr-only\">{{ b.value }}</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Accent -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Accent</span>\n <div class=\"grid grid-cols-6 gap-2\">\n @for (a of accents; track a.value) {\n <button\n type=\"button\"\n class=\"flex h-8 items-center justify-center rounded-md border border-input ring-offset-2 ring-offset-background transition-all data-[active=true]:ring-2 data-[active=true]:ring-ring\"\n [style.background]=\"a.color\"\n [attr.data-active]=\"theme.preset() === a.value\"\n (click)=\"theme.setPreset(a.value)\"\n >\n <span class=\"sr-only\">{{ a.value }}</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Radius -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Radius</span>\n <div class=\"grid grid-cols-6 gap-2\">\n @for (r of radii; track r) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.radius() === r\"\n (click)=\"theme.setRadius(r)\"\n >\n {{ r }}\n </button>\n }\n </div>\n </div>\n\n <!-- Input style -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Input style</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (i of inputStyles; track i.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.inputStyle() === i.value\"\n (click)=\"theme.setInputStyle(i.value)\"\n >\n {{ i.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Body font -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Body font</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (f of fonts; track f.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [style.fontFamily]=\"f.family\"\n [attr.data-active]=\"theme.font() === f.value\"\n (click)=\"theme.setFont(f.value)\"\n >\n {{ f.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Heading font -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Heading font</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (f of fonts; track f.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [style.fontFamily]=\"f.family\"\n [attr.data-active]=\"theme.fontHeading() === f.value\"\n (click)=\"theme.setFontHeading(f.value)\"\n >\n {{ f.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Shadow -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Shadow</span>\n <div class=\"grid grid-cols-5 gap-2\">\n @for (s of shadows; track s.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.shadow() === s.value\"\n (click)=\"theme.setShadow(s.value)\"\n >\n {{ s.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Spacing + Tracking -->\n <div class=\"grid grid-cols-2 gap-4\">\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Spacing</span>\n <div class=\"grid grid-cols-3 gap-1.5\">\n @for (s of spacings; track s.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.spacing() === s.value\"\n (click)=\"theme.setSpacing(s.value)\"\n >\n {{ s.label }}\n </button>\n }\n </div>\n </div>\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Tracking</span>\n <div class=\"grid grid-cols-3 gap-1.5\">\n @for (t of trackings; track t.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.tracking() === t.value\"\n (click)=\"theme.setTracking(t.value)\"\n >\n {{ t.label }}\n </button>\n }\n </div>\n </div>\n </div>\n\n <!-- Export -->\n <div class=\"border-t pt-4\">\n <p class=\"mb-2.5 text-xs leading-relaxed text-muted-foreground\">\n Copy your complete theme and paste it as your app stylesheet — the Tailwind import,\n every token and the\n <code class=\"rounded bg-muted px-1 py-0.5 text-[11px]\">&#64;theme</code>\n mapping are included.\n </p>\n <button buiButton size=\"sm\" class=\"w-full\" (click)=\"copyCss()\">\n {{ copied() ? 'Copied to clipboard' : 'Copy theme CSS' }}\n </button>\n </div>\n </div>\n }\n `,\n})\nexport class BuiThemeCustomizer {\n protected readonly theme = inject(ThemeStore);\n protected readonly open = signal(false);\n protected readonly copied = signal(false);\n\n protected readonly modes: readonly Option<ThemeMode>[] = [\n { value: 'light', label: 'Light' },\n { value: 'dark', label: 'Dark' },\n { value: 'system', label: 'System' },\n ];\n protected readonly bases: readonly Swatch[] = [\n { value: 'neutral', color: 'oklch(0.205 0 0)' },\n { value: 'stone', color: 'oklch(0.216 0.006 56.043)' },\n { value: 'zinc', color: 'oklch(0.21 0.006 285.885)' },\n { value: 'slate', color: 'oklch(0.208 0.042 265.755)' },\n { value: 'gray', color: 'oklch(0.21 0.034 264.665)' },\n { value: 'mauve', color: 'oklch(0.212 0.019 322.12)' },\n { value: 'olive', color: 'oklch(0.228 0.013 107.4)' },\n { value: 'mist', color: 'oklch(0.218 0.008 223.9)' },\n { value: 'taupe', color: 'oklch(0.214 0.009 43.1)' },\n ];\n protected readonly accents: readonly Swatch[] = [\n { value: 'default', color: 'var(--primary)' },\n { value: 'blue', color: 'oklch(0.488 0.243 264.376)' },\n { value: 'indigo', color: 'oklch(0.457 0.24 277.023)' },\n { value: 'violet', color: 'oklch(0.491 0.27 292.581)' },\n { value: 'purple', color: 'oklch(0.496 0.265 301.924)' },\n { value: 'fuchsia', color: 'oklch(0.518 0.253 323.949)' },\n { value: 'pink', color: 'oklch(0.525 0.223 3.958)' },\n { value: 'rose', color: 'oklch(0.514 0.222 16.935)' },\n { value: 'red', color: 'oklch(0.505 0.213 27.518)' },\n { value: 'orange', color: 'oklch(0.553 0.195 38.402)' },\n { value: 'amber', color: 'oklch(0.555 0.163 48.998)' },\n { value: 'green', color: 'oklch(0.527 0.154 150.069)' },\n { value: 'emerald', color: 'oklch(0.508 0.118 165.612)' },\n { value: 'teal', color: 'oklch(0.511 0.096 186.391)' },\n { value: 'cyan', color: 'oklch(0.52 0.105 223.128)' },\n { value: 'sky', color: 'oklch(0.5 0.134 242.749)' },\n ];\n protected readonly radii: readonly string[] = ['0', '0.3', '0.5', '0.625', '0.75', '1'];\n protected readonly inputStyles: readonly Option[] = [\n { value: 'outline', label: 'Outline' },\n { value: 'fill', label: 'Fill' },\n { value: 'inset', label: 'Inset' },\n ];\n protected readonly fonts = FONTS;\n protected readonly shadows: readonly Option[] = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'SM' },\n { value: 'default', label: 'Base' },\n { value: 'lg', label: 'LG' },\n { value: 'xl', label: 'XL' },\n ];\n protected readonly spacings: readonly Option[] = [\n { value: 'compact', label: 'S' },\n { value: 'default', label: 'M' },\n { value: 'comfortable', label: 'L' },\n ];\n protected readonly trackings: readonly Option[] = [\n { value: 'tight', label: 'S' },\n { value: 'normal', label: 'M' },\n { value: 'wide', label: 'L' },\n ];\n\n protected readonly _hasClipboard = computed(\n () => typeof navigator !== 'undefined' && !!navigator.clipboard,\n );\n\n protected async copyCss(): Promise<void> {\n if (!this._hasClipboard()) {\n return;\n }\n try {\n await navigator.clipboard.writeText(this.theme.exportCss());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 2000);\n } catch {\n // Clipboard unavailable / permission denied — silently ignore.\n }\n }\n}\n","import { Component, computed, Directive, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI radio group. `role=\"radiogroup\"` with arrow-key roving focus across the\n * `buiRadioItem` buttons; `[(value)]` two-way binds the selected value.\n */\n@Directive({\n selector: '[buiRadioGroup]',\n exportAs: 'buiRadioGroup',\n host: {\n role: 'radiogroup',\n 'data-slot': 'radio-group',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class BuiRadioGroup {\n readonly value = model<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly computedClass = computed(() => cn('grid gap-3', this.userClass()));\n\n select(next: string): void {\n this.value.set(next);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!['ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'].includes(event.key)) {\n return;\n }\n event.preventDefault();\n const items = [\n ...this.host.nativeElement.querySelectorAll<HTMLButtonElement>(\n '[role=\"radio\"]:not([disabled])',\n ),\n ];\n if (items.length === 0) {\n return;\n }\n const current = items.indexOf(document.activeElement as HTMLButtonElement);\n const isForward = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const next = items[(current + (isForward ? 1 : -1) + items.length) % items.length];\n next.focus();\n next.click();\n }\n}\n\nconst ITEM =\n 'border-input text-primary dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\n@Component({\n selector: 'button[buiRadioItem]',\n host: {\n type: 'button',\n role: 'radio',\n 'data-slot': 'radio-group-item',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': \"checked() ? 'checked' : 'unchecked'\",\n '[attr.tabindex]': 'tabIndex()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'select()',\n },\n template: `\n @if (checked()) {\n <span data-slot=\"radio-group-indicator\" class=\"flex items-center justify-center\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-2\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n </svg>\n </span>\n }\n `,\n})\nexport class BuiRadioGroupItem {\n readonly value = input.required<string>();\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly group = inject(BuiRadioGroup);\n protected readonly checked = computed(() => this.group.value() === this.value());\n protected readonly tabIndex = computed(() =>\n this.checked() || this.group.value() === null ? 0 : -1,\n );\n protected readonly computedClass = computed(() => cn(ITEM, this.userClass()));\n\n protected select(): void {\n if (!this.disabled()) {\n this.group.select(this.value());\n }\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, Directive, ElementRef, inject, input, signal } from '@angular/core';\n\n/** Floating tooltip bubble rendered into a CDK overlay. */\n@Component({\n selector: 'bui-tooltip-content',\n host: {\n role: 'tooltip',\n class:\n 'bg-primary text-primary-foreground z-50 w-fit max-w-xs rounded-md px-3 py-1.5 text-xs shadow-md',\n },\n template: `{{ text() }}`,\n})\nexport class BuiTooltipContent {\n readonly text = input('');\n}\n\n/**\n * BlatUI tooltip. Shows an accessible `role=\"tooltip\"` bubble on hover/focus via the\n * Angular CDK overlay and wires `aria-describedby` on the host. SSR-safe (the overlay\n * is only created in the browser, on interaction).\n */\n@Directive({\n selector: '[buiTooltip]',\n host: {\n '[attr.aria-describedby]': 'describedBy()',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focusin)': 'show()',\n '(focusout)': 'hide()',\n },\n})\nexport class BuiTooltip {\n readonly text = input.required<string>({ alias: 'buiTooltip' });\n\n private readonly overlay = inject(Overlay);\n private readonly idGenerator = inject(_IdGenerator);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlayRef: OverlayRef | null = null;\n protected readonly describedBy = signal<string | null>(null);\n\n protected show(): void {\n if (this.overlayRef || !this.text()) {\n return;\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -6 },\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 6 },\n ]);\n this.overlayRef = this.overlay.create({ positionStrategy });\n const reference = this.overlayRef.attach(new ComponentPortal(BuiTooltipContent));\n reference.setInput('text', this.text());\n const id = this.idGenerator.getId('bui-tooltip-');\n (reference.location.nativeElement as HTMLElement).id = id;\n this.describedBy.set(id);\n }\n\n protected hide(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.describedBy.set(null);\n }\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Breadcrumb navigation landmark (`<nav aria-label=\"breadcrumb\">`). */\n@Directive({\n selector: 'nav[buiBreadcrumb]',\n host: { 'aria-label': 'breadcrumb', 'data-slot': 'breadcrumb' },\n})\nexport class BuiBreadcrumb {}\n\n@Directive({\n selector: 'ol[buiBreadcrumbList]',\n host: { 'data-slot': 'breadcrumb-list', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbList {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'li[buiBreadcrumbItem]',\n host: { 'data-slot': 'breadcrumb-item', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1.5', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'a[buiBreadcrumbLink]',\n host: { 'data-slot': 'breadcrumb-link', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbLink {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('transition-colors hover:text-foreground', this.userClass()),\n );\n}\n\n/** The current page in a breadcrumb — non-interactive, `aria-current=\"page\"`. */\n@Directive({\n selector: '[buiBreadcrumbPage]',\n host: {\n 'data-slot': 'breadcrumb-page',\n role: 'link',\n 'aria-disabled': 'true',\n 'aria-current': 'page',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiBreadcrumbPage {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('font-normal text-foreground', this.userClass()),\n );\n}\n\n/** Separator between breadcrumb items (defaults to a chevron). */\n@Component({\n selector: 'li[buiBreadcrumbSeparator]',\n host: {\n 'data-slot': 'breadcrumb-separator',\n role: 'presentation',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n template: `\n <ng-content>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-3.5\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </ng-content>\n `,\n})\nexport class BuiBreadcrumbSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('[&>svg]:size-3.5', this.userClass()));\n}\n\n/** Collapsed breadcrumb indicator (ellipsis). */\n@Component({\n selector: 'li[buiBreadcrumbEllipsis]',\n host: {\n 'data-slot': 'breadcrumb-ellipsis',\n role: 'presentation',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More</span>\n `,\n})\nexport class BuiBreadcrumbEllipsis {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex size-9 items-center justify-center', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Keyboard key styling, applied to a native `<kbd>` element. */\n@Directive({\n selector: 'kbd[buiKbd]',\n host: { 'data-slot': 'kbd', '[class]': 'computedClass()' },\n})\nexport class BuiKbd {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Constrains projected content to a given aspect ratio (e.g. `16 / 9`). */\n@Component({\n selector: 'bui-aspect-ratio',\n host: {\n 'data-slot': 'aspect-ratio',\n '[style.aspect-ratio]': 'ratio()',\n '[class]': 'computedClass()',\n },\n template: `<ng-content />`,\n})\nexport class BuiAspectRatio {\n readonly ratio = input('1 / 1');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Groups buttons (and inputs) into a single segmented control. */\n@Directive({\n selector: '[buiButtonGroup]',\n host: {\n role: 'group',\n 'data-slot': 'button-group',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiButtonGroup {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 data-[orientation=vertical]:flex-col [&>*]:focus-within:z-10 [&>*]:focus-visible:z-10 data-[orientation=horizontal]:[&>*:not(:first-child)]:rounded-l-none data-[orientation=horizontal]:[&>*:not(:first-child)]:border-l-0 data-[orientation=vertical]:[&>*:not(:first-child)]:rounded-t-none data-[orientation=vertical]:[&>*:not(:first-child)]:border-t-0 data-[orientation=horizontal]:[&>*:not(:last-child)]:rounded-r-none data-[orientation=vertical]:[&>*:not(:last-child)]:rounded-b-none',\n this.userClass(),\n ),\n );\n}\n\n/** A non-button text segment inside a button group. */\n@Directive({\n selector: '[buiButtonGroupText]',\n host: { 'data-slot': 'button-group-text', '[class]': 'computedClass()' },\n})\nexport class BuiButtonGroupText {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-2 rounded-md border bg-muted px-4 text-sm font-medium shadow-xs',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Empty-state container. */\n@Directive({\n selector: '[buiEmpty]',\n host: { 'data-slot': 'empty', '[class]': 'computedClass()' },\n})\nexport class BuiEmpty {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border border-dashed p-6 text-center text-balance md:p-12',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyHeader]',\n host: { 'data-slot': 'empty-header', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex max-w-sm flex-col items-center gap-2 text-center', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiEmptyMedia]',\n host: {\n 'data-slot': 'empty-media',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiEmptyMedia {\n readonly variant = input<'default' | 'icon'>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'mb-2 flex shrink-0 items-center justify-center',\n this.variant() === 'icon' &&\n \"size-10 rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6\",\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyTitle]',\n host: { 'data-slot': 'empty-title', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-lg font-medium tracking-tight', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiEmptyDescription]',\n host: { 'data-slot': 'empty-description', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyContent]',\n host: { 'data-slot': 'empty-content', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SIZES = {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-6xl',\n xl: 'max-w-7xl',\n prose: 'max-w-prose',\n full: 'max-w-full',\n} as const;\n\n/** Centered, padded page container with a max-width scale. */\n@Directive({\n selector: '[buiContainer]',\n host: { 'data-slot': 'container', '[class]': 'computedClass()' },\n})\nexport class BuiContainer {\n readonly size = input<keyof typeof SIZES>('lg');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mx-auto w-full px-4 sm:px-6 lg:px-8', SIZES[this.size()], this.userClass()),\n );\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst FIELD_ORIENT = {\n vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n horizontal: 'flex-row items-center [&>[data-slot=field-label]]:flex-auto',\n responsive:\n 'flex-col [&>*]:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto',\n} as const;\n\n/** A form field row grouping a label, control, description and error. */\n@Directive({\n selector: '[buiField]',\n host: {\n role: 'group',\n 'data-slot': 'field',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiField {\n readonly orientation = input<keyof typeof FIELD_ORIENT>('vertical');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'group/field flex w-full gap-2 data-[invalid=true]:text-destructive',\n FIELD_ORIENT[this.orientation()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'fieldset[buiFieldSet]',\n host: { 'data-slot': 'field-set', '[class]': 'computedClass()' },\n})\nexport class BuiFieldSet {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-6 has-[>[data-slot=radio-group]]:gap-3', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'legend[buiFieldLegend]',\n host: {\n 'data-slot': 'field-legend',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiFieldLegend {\n readonly variant = input<'legend' | 'label'>('legend');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiFieldGroup]',\n host: { 'data-slot': 'field-group', '[class]': 'computedClass()' },\n})\nexport class BuiFieldGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/field-group @container/field-group flex w-full flex-col gap-7', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'label[buiFieldLabel]',\n host: { 'data-slot': 'field-label', '[attr.for]': 'forId()', '[class]': 'computedClass()' },\n})\nexport class BuiFieldLabel {\n readonly forId = input<string | undefined>(undefined, { alias: 'for' });\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-fit gap-2 text-sm leading-snug font-medium select-none group-data-[disabled=true]/field:opacity-50',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiFieldTitle]',\n host: { 'data-slot': 'field-title', '[class]': 'computedClass()' },\n})\nexport class BuiFieldTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'p[buiFieldDescription]',\n host: { 'data-slot': 'field-description', '[class]': 'computedClass()' },\n})\nexport class BuiFieldDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm leading-normal font-normal text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiFieldContent]',\n host: { 'data-slot': 'field-content', '[class]': 'computedClass()' },\n})\nexport class BuiFieldContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/field-content flex flex-1 flex-col gap-1.5 leading-snug', this.userClass()),\n );\n}\n\n/** Field validation message (`role=\"alert\"`). */\n@Directive({\n selector: '[buiFieldError]',\n host: { role: 'alert', 'data-slot': 'field-error', '[class]': 'computedClass()' },\n})\nexport class BuiFieldError {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm font-normal text-destructive', this.userClass()),\n );\n}\n\n/** Labelled divider between fields. */\n@Component({\n selector: 'bui-field-separator',\n host: { 'data-slot': 'field-separator', '[class]': 'computedClass()' },\n template: `\n <div class=\"absolute inset-0 top-1/2 h-px bg-border\"></div>\n <span class=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\">\n <ng-content />\n </span>\n `,\n})\nexport class BuiFieldSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('relative -my-2 block h-5 text-sm', this.userClass()),\n );\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Directive, inject, model } from '@angular/core';\n\n/** Accessible disclosure: a trigger toggles the visibility of its content. */\n@Directive({\n selector: '[buiCollapsible]',\n exportAs: 'buiCollapsible',\n host: { 'data-slot': 'collapsible' },\n})\nexport class BuiCollapsible {\n readonly open = model(false);\n readonly contentId = inject(_IdGenerator).getId('bui-collapsible-');\n\n toggle(): void {\n this.open.update((value) => !value);\n }\n}\n\n@Directive({\n selector: 'button[buiCollapsibleTrigger]',\n host: {\n type: 'button',\n 'data-slot': 'collapsible-trigger',\n '[attr.aria-expanded]': 'collapsible.open()',\n '[attr.aria-controls]': 'collapsible.contentId',\n '[attr.data-state]': \"collapsible.open() ? 'open' : 'closed'\",\n '(click)': 'collapsible.toggle()',\n },\n})\nexport class BuiCollapsibleTrigger {\n protected readonly collapsible = inject(BuiCollapsible);\n}\n\n@Directive({\n selector: '[buiCollapsibleContent]',\n host: {\n 'data-slot': 'collapsible-content',\n '[id]': 'collapsible.contentId',\n '[hidden]': '!collapsible.open()',\n '[attr.data-state]': \"collapsible.open() ? 'open' : 'closed'\",\n },\n})\nexport class BuiCollapsibleContent {\n protected readonly collapsible = inject(BuiCollapsible);\n}\n","import { Component, computed, input, model } from '@angular/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport const toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline:\n 'border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-9 min-w-9 px-2',\n sm: 'h-8 min-w-8 px-1.5',\n lg: 'h-10 min-w-10 px-2.5',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n);\ntype ToggleVariants = VariantProps<typeof toggleVariants>;\n\n/** A two-state toggle button (`aria-pressed`). */\n@Component({\n selector: 'button[buiToggle]',\n host: {\n type: 'button',\n 'data-slot': 'toggle',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': \"pressed() ? 'on' : 'off'\",\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `<ng-content />`,\n})\nexport class BuiToggle {\n readonly pressed = model(false);\n readonly variant = input<ToggleVariants['variant']>('default');\n readonly size = input<ToggleVariants['size']>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(toggleVariants({ variant: this.variant(), size: this.size() }), this.userClass()),\n );\n\n protected toggle(): void {\n this.pressed.update((value) => !value);\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A spinning loading indicator (`role=\"status\"`). */\n@Component({\n selector: 'bui-spinner',\n host: {\n 'data-slot': 'spinner',\n role: 'status',\n 'aria-label': 'Loading',\n '[class]': 'computedClass()',\n },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-full\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n `,\n})\nexport class BuiSpinner {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('inline-block size-4 animate-spin', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Copy-to-clipboard button: copies `value`, flips to a check, announces \"Copied\". */\n@Component({\n selector: 'button[buiCopyButton]',\n host: {\n type: 'button',\n 'data-slot': 'copy-button',\n '[attr.aria-label]': \"copied() ? 'Copied' : label()\",\n '[class]': 'computedClass()',\n '(click)': 'copy()',\n },\n template: `\n <span class=\"grid size-4 place-items-center *:col-start-1 *:row-start-1\">\n @if (copied()) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4 text-success\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n } @else {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n }\n </span>\n <ng-content />\n <span class=\"sr-only\" aria-live=\"polite\">{{ copied() ? 'Copied' : '' }}</span>\n `,\n})\nexport class BuiCopyButton {\n readonly value = input('');\n readonly label = input('Copy');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly copied = signal(false);\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-8 items-center justify-center gap-1.5 rounded-md px-2 text-sm font-medium text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n this.userClass(),\n ),\n );\n\n protected async copy(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.value());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 1500);\n } catch {\n // Clipboard unavailable — ignore.\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n inject,\n input,\n type OnInit,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TONES = {\n default: 'bg-muted text-foreground border-border',\n primary: 'bg-primary text-primary-foreground border-transparent',\n info: 'bg-info/10 text-info border-info/25',\n success: 'bg-success/10 text-success border-success/25',\n warning: 'bg-warning/10 text-warning border-warning/25',\n danger: 'bg-destructive/10 text-destructive border-destructive/25',\n} as const;\n\n/**\n * Full-width announcement bar. Optionally dismissible and (with `persistKey`) remembers\n * the dismissal in localStorage. SSR-safe — localStorage is only touched in the browser.\n */\n@Component({\n selector: 'bui-banner',\n host: {\n 'data-slot': 'banner',\n role: 'region',\n 'aria-label': 'Announcement',\n '[hidden]': '!show()',\n '[class]': 'computedClass()',\n },\n template: `\n <div class=\"flex flex-1 flex-wrap items-center justify-center gap-x-3 gap-y-1\">\n <ng-content />\n </div>\n @if (dismissible()) {\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n class=\"shrink-0 rounded-md p-1 opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current/40\"\n (click)=\"dismiss()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n }\n `,\n})\nexport class BuiBanner implements OnInit {\n readonly tone = input<keyof typeof TONES>('default');\n readonly dismissible = input(true);\n readonly persistKey = input<string | undefined>(undefined);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly show = signal(true);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex w-full items-center gap-3 border-b px-4 py-2.5 text-sm',\n TONES[this.tone()],\n this.userClass(),\n ),\n );\n\n ngOnInit(): void {\n const key = this.persistKey();\n if (this.isBrowser && key && localStorage.getItem(`bui-banner-${key}`) === '1') {\n this.show.set(false);\n }\n }\n\n protected dismiss(): void {\n this.show.set(false);\n const key = this.persistKey();\n if (this.isBrowser && key) {\n localStorage.setItem(`bui-banner-${key}`, '1');\n }\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Scroll/border wrapper around a table. `variant=\"card\"` adds a bordered card. */\n@Directive({\n selector: '[buiTableContainer]',\n host: {\n 'data-slot': 'table-container',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTableContainer {\n readonly variant = input<'default' | 'card'>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative w-full overflow-x-auto',\n this.variant() === 'card' && 'rounded-lg border bg-card shadow-xs',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'table[buiTable]',\n host: { 'data-slot': 'table', '[class]': 'computedClass()' },\n})\nexport class BuiTable {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('w-full caption-bottom text-sm', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'thead[buiTableHeader]',\n host: { 'data-slot': 'table-header', '[class]': 'computedClass()' },\n})\nexport class BuiTableHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('[&_tr]:border-b', this.userClass()));\n}\n\n@Directive({\n selector: 'tbody[buiTableBody]',\n host: { 'data-slot': 'table-body', '[class]': 'computedClass()' },\n})\nexport class BuiTableBody {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('[&_tr:last-child]:border-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'tfoot[buiTableFooter]',\n host: { 'data-slot': 'table-footer', '[class]': 'computedClass()' },\n})\nexport class BuiTableFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'tr[buiTableRow]',\n host: { 'data-slot': 'table-row', '[class]': 'computedClass()' },\n})\nexport class BuiTableRow {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'th[buiTableHead]',\n host: { 'data-slot': 'table-head', scope: 'col', '[class]': 'computedClass()' },\n})\nexport class BuiTableHead {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'td[buiTableCell]',\n host: { 'data-slot': 'table-cell', '[class]': 'computedClass()' },\n})\nexport class BuiTableCell {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'caption[buiTableCaption]',\n host: { 'data-slot': 'table-caption', '[class]': 'computedClass()' },\n})\nexport class BuiTableCaption {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { BuiAvatar } from '../avatar/avatar';\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface GroupAvatar {\n src?: string;\n name?: string;\n}\n\nconst SIZES = {\n sm: { box: 'size-6', overlap: '-ms-2', ring: 'ring-1', text: 'text-xs' },\n default: { box: 'size-8', overlap: '-ms-2.5', ring: 'ring-2', text: 'text-sm' },\n lg: { box: 'size-12', overlap: '-ms-3', ring: 'ring-2', text: 'text-base' },\n} as const;\n\nfunction initials(name: string | undefined): string {\n const trimmed = (name ?? '').trim();\n if (trimmed === '') {\n return '?';\n }\n const parts = trimmed.split(/\\s+/);\n const first = parts[0].charAt(0);\n const last = parts.length > 1 ? (parts.at(-1)?.charAt(0) ?? '') : '';\n return (first + last).toUpperCase();\n}\n\n/** Overlapping stack of avatars with an optional \"+N\" overflow counter. */\n@Component({\n selector: 'bui-avatar-group',\n imports: [BuiAvatar],\n host: { 'data-slot': 'avatar-group', role: 'list', '[class]': 'computedClass()' },\n template: `\n @for (avatar of shown(); track $index) {\n <bui-avatar\n role=\"listitem\"\n [src]=\"avatar.src ?? null\"\n [alt]=\"avatar.name ?? 'User avatar'\"\n [class]=\"itemClass($index)\"\n >{{ toInitials(avatar.name) }}</bui-avatar\n >\n }\n @if (remaining() > 0) {\n <span\n role=\"listitem\"\n [attr.aria-label]=\"'and ' + remaining() + ' more'\"\n [class]=\"moreClass()\"\n >\n <span aria-hidden=\"true\">+{{ remaining() }}</span>\n </span>\n }\n `,\n})\nexport class BuiAvatarGroup {\n readonly avatars = input<readonly GroupAvatar[]>([]);\n readonly max = input(4);\n readonly size = input<keyof typeof SIZES>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly shown = computed(() => this.avatars().slice(0, Math.max(0, this.max())));\n protected readonly remaining = computed(() =>\n Math.max(0, this.avatars().length - this.shown().length),\n );\n protected readonly computedClass = computed(() => cn('flex items-center', this.userClass()));\n\n protected readonly toInitials = initials;\n\n protected itemClass(index: number): string {\n const size = SIZES[this.size()];\n return cn(size.box, size.ring, 'ring-background', index > 0 && size.overlap);\n }\n\n protected moreClass(): string {\n const size = SIZES[this.size()];\n return cn(\n 'relative z-10 flex shrink-0 items-center justify-center rounded-full bg-muted font-medium text-foreground',\n size.box,\n size.ring,\n 'ring-background',\n size.text,\n this.shown().length > 0 && size.overlap,\n );\n }\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Pagination navigation landmark. */\n@Directive({\n selector: 'nav[buiPagination]',\n host: {\n role: 'navigation',\n 'aria-label': 'pagination',\n 'data-slot': 'pagination',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPagination {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mx-auto flex w-full justify-center', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'ul[buiPaginationContent]',\n host: { 'data-slot': 'pagination-content', '[class]': 'computedClass()' },\n})\nexport class BuiPaginationContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-row items-center gap-1', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'li[buiPaginationItem]',\n host: { 'data-slot': 'pagination-item' },\n})\nexport class BuiPaginationItem {}\n\nconst LINK_BASE =\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\nconst LINK_SIZES = {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 gap-1.5 px-3',\n lg: 'h-10 px-6',\n icon: 'size-9',\n} as const;\n\n/** A pagination link; set `active` for the current page. */\n@Directive({\n selector: 'a[buiPaginationLink]',\n host: {\n 'data-slot': 'pagination-link',\n '[attr.aria-current]': \"active() ? 'page' : null\",\n '[attr.data-active]': \"active() ? 'true' : null\",\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPaginationLink {\n readonly active = input(false);\n readonly size = input<keyof typeof LINK_SIZES>('icon');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n LINK_BASE,\n this.active()\n ? 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground'\n : 'hover:bg-accent hover:text-accent-foreground',\n LINK_SIZES[this.size()],\n this.userClass(),\n ),\n );\n}\n\n/** Ellipsis indicator for skipped pages. */\n@Component({\n selector: 'bui-pagination-ellipsis',\n host: { 'data-slot': 'pagination-ellipsis', 'aria-hidden': 'true', '[class]': 'computedClass()' },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More pages</span>\n `,\n})\nexport class BuiPaginationEllipsis {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex size-9 items-center justify-center', this.userClass()),\n );\n}\n","import { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n signal,\n type TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Click-triggered popover on the Angular CDK overlay. Bind the content template:\n * `<button [buiPopover]=\"tpl\">…</button>` with `<ng-template #tpl><div buiPopoverContent>…`.\n * Closes on outside click and Escape. SSR-safe (the overlay is browser-only, on click).\n */\n@Directive({\n selector: '[buiPopover]',\n host: {\n 'aria-haspopup': 'dialog',\n '[attr.aria-expanded]': 'isOpen()',\n '(click)': 'toggle()',\n },\n})\nexport class BuiPopover implements OnDestroy {\n readonly content = input.required<TemplateRef<unknown>>({ alias: 'buiPopover' });\n\n private readonly overlay = inject(Overlay);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n protected readonly isOpen = signal(false);\n\n protected toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open(): void {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 },\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -4 },\n ]);\n const overlayReference = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n overlayReference.attach(new TemplatePortal(this.content(), this.viewContainerRef));\n overlayReference.outsidePointerEvents().subscribe((event) => {\n if (!this.host.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n });\n overlayReference.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n this.overlayRef = overlayReference;\n this.isOpen.set(true);\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.isOpen.set(false);\n }\n\n ngOnDestroy(): void {\n this.close();\n }\n}\n\n/** Styling + role for the popover content root (inside the bound template). */\n@Directive({\n selector: '[buiPopoverContent]',\n host: {\n 'data-slot': 'popover-content',\n role: 'dialog',\n tabindex: '-1',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPopoverContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst ITEM_BASE =\n 'group/item flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 [a&]:transition-colors [a&]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]';\nconst ITEM_VARIANTS = {\n default: 'bg-transparent',\n outline: 'border-border',\n muted: 'bg-muted/50',\n} as const;\nconst ITEM_SIZES = {\n default: 'gap-4 p-4',\n sm: 'gap-2.5 px-4 py-3',\n} as const;\n\n/** A list/row item; use on a `<div>` or an `<a>`. */\n@Directive({\n selector: '[buiItem]',\n host: {\n 'data-slot': 'item',\n '[attr.data-variant]': 'variant()',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiItem {\n readonly variant = input<keyof typeof ITEM_VARIANTS>('default');\n readonly size = input<keyof typeof ITEM_SIZES>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(ITEM_BASE, ITEM_VARIANTS[this.variant()], ITEM_SIZES[this.size()], this.userClass()),\n );\n}\n\nconst MEDIA_VARIANTS = {\n default: 'bg-transparent',\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image: 'size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover',\n} as const;\n\n@Directive({\n selector: '[buiItemMedia]',\n host: {\n 'data-slot': 'item-media',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiItemMedia {\n readonly variant = input<keyof typeof MEDIA_VARIANTS>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none',\n MEDIA_VARIANTS[this.variant()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiItemContent]',\n host: { 'data-slot': 'item-content', '[class]': 'computedClass()' },\n})\nexport class BuiItemContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiItemTitle]',\n host: { 'data-slot': 'item-title', '[class]': 'computedClass()' },\n})\nexport class BuiItemTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'p[buiItemDescription]',\n host: { 'data-slot': 'item-description', '[class]': 'computedClass()' },\n})\nexport class BuiItemDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'line-clamp-2 text-sm leading-normal font-normal text-balance text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiItemActions]',\n host: { 'data-slot': 'item-actions', '[class]': 'computedClass()' },\n})\nexport class BuiItemActions {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex items-center gap-2', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiItemGroup]',\n host: { 'data-slot': 'item-group', '[class]': 'computedClass()' },\n})\nexport class BuiItemGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/item-group flex flex-col', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A scrollable region with a thin, themed scrollbar and a focusable viewport. */\n@Component({\n selector: 'bui-scroll-area',\n host: { 'data-slot': 'scroll-area', '[class]': 'computedClass()' },\n template: `\n <div\n data-slot=\"scroll-area-viewport\"\n tabindex=\"0\"\n role=\"region\"\n class=\"size-full [scrollbar-width:thin] [scrollbar-color:var(--border)_transparent] overflow-auto rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiScrollArea {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A bordered group that composes inputs with addons (icons, text, buttons). */\n@Directive({\n selector: '[buiInputGroup]',\n host: { 'data-slot': 'input-group', role: 'group', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[>textarea]:h-auto dark:bg-input/30',\n this.userClass(),\n ),\n );\n}\n\nconst ADDON_ALIGN = {\n 'inline-start': 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n 'inline-end': 'order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]',\n 'block-start': 'order-first w-full justify-start px-3 pt-3',\n 'block-end': 'order-last w-full justify-start px-3 pb-3',\n} as const;\n\n@Directive({\n selector: '[buiInputGroupAddon]',\n host: {\n 'data-slot': 'input-group-addon',\n '[attr.data-align]': 'align()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiInputGroupAddon {\n readonly align = input<keyof typeof ADDON_ALIGN>('inline-start');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n ADDON_ALIGN[this.align()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'input[buiInputGroupInput], textarea[buiInputGroupInput]',\n host: { 'data-slot': 'input-group-control', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupInput {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'w-full min-w-0 flex-1 rounded-none border-0 bg-transparent px-3 py-1 text-base shadow-none outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiInputGroupText]',\n host: { 'data-slot': 'input-group-text', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupText {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4\",\n this.userClass(),\n ),\n );\n}\n\nconst IG_BUTTON_BASE =\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\nconst IG_BUTTON_VARIANTS = {\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n outline: 'bg-background hover:bg-accent hover:text-accent-foreground border shadow-xs',\n default: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs',\n} as const;\nconst IG_BUTTON_SIZES = {\n xs: 'h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 text-xs',\n sm: 'h-8 gap-1.5 px-2.5',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-5px)] p-0',\n 'icon-sm': 'size-8 p-0',\n} as const;\n\n@Directive({\n selector: 'button[buiInputGroupButton]',\n host: { type: 'button', 'data-slot': 'input-group-button', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupButton {\n readonly variant = input<keyof typeof IG_BUTTON_VARIANTS>('ghost');\n readonly size = input<keyof typeof IG_BUTTON_SIZES>('xs');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n IG_BUTTON_BASE,\n IG_BUTTON_VARIANTS[this.variant()],\n IG_BUTTON_SIZES[this.size()],\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Visually hides content while keeping it available to assistive tech (sr-only). */\n@Directive({\n selector: '[buiVisuallyHidden]',\n host: { 'data-slot': 'visually-hidden', '[class]': 'computedClass()' },\n})\nexport class BuiVisuallyHidden {\n readonly focusable = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'sr-only',\n this.focusable() &&\n 'focus:not-sr-only focus:fixed focus:start-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-primary focus:px-4 focus:py-2 focus:text-primary-foreground focus:shadow-md',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TONES = {\n good: 'bg-emerald-600',\n warning: 'bg-amber-500',\n danger: 'bg-destructive',\n default: 'bg-primary',\n} as const;\n\n/** A labelled meter (`role=\"meter\"`) for a measurement within a known range. */\n@Component({\n selector: 'bui-meter',\n host: { 'data-slot': 'meter', '[class]': 'computedClass()' },\n template: `\n @if (label() || showValue()) {\n <div class=\"flex items-center justify-between gap-2 text-sm\">\n @if (label()) {\n <span class=\"font-medium text-foreground\">{{ label() }}</span>\n } @else {\n <span aria-hidden=\"true\"></span>\n }\n @if (showValue()) {\n <span class=\"text-muted-foreground tabular-nums\">{{ valueText() }}</span>\n }\n </div>\n }\n <div\n role=\"meter\"\n [attr.aria-label]=\"label() ?? 'Meter'\"\n [attr.aria-valuenow]=\"clamped()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuetext]=\"valueText()\"\n class=\"relative h-2 w-full overflow-hidden rounded-full bg-muted\"\n >\n <div\n class=\"absolute inset-y-0 start-0 rounded-full transition-[width] duration-500 ease-out\"\n [class]=\"fillClass()\"\n [style.width.%]=\"pct()\"\n ></div>\n </div>\n `,\n})\nexport class BuiMeter {\n readonly value = input(0);\n readonly min = input(0);\n readonly max = input(100);\n readonly label = input<string | null>(null);\n readonly tone = input<keyof typeof TONES>('default');\n readonly showValue = input(true);\n readonly unit = input('%');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly clamped = computed(() =>\n Math.max(this.min(), Math.min(this.max(), this.value())),\n );\n protected readonly pct = computed(() => {\n const range = this.max() - this.min() || 1;\n return ((this.clamped() - this.min()) / range) * 100;\n });\n protected readonly valueText = computed(() => `${this.value()}${this.unit()}`);\n protected readonly fillClass = computed(() => TONES[this.tone()]);\n protected readonly computedClass = computed(() => cn('grid w-full gap-1.5', this.userClass()));\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TREND_CLASS = {\n up: 'text-emerald-600 font-medium',\n down: 'text-destructive font-medium',\n neutral: 'text-muted-foreground font-medium',\n} as const;\n\n/** A KPI / statistic card: label, big value, and a trend-coloured change. */\n@Component({\n selector: 'bui-stat',\n host: { 'data-slot': 'stat', '[class]': 'computedClass()' },\n template: `\n @if (label()) {\n <span class=\"text-sm font-medium text-muted-foreground\">{{ label() }}</span>\n }\n <span class=\"text-2xl font-semibold tabular-nums\">{{ value() }}</span>\n @if (change()) {\n <span class=\"flex items-center gap-1.5 text-sm\">\n <span [class]=\"trendClass()\">{{ change() }}</span>\n @if (caption()) {\n <span class=\"text-muted-foreground\">{{ caption() }}</span>\n }\n </span>\n }\n `,\n})\nexport class BuiStat {\n readonly label = input<string | null>(null);\n readonly value = input<string | number>('');\n readonly change = input<string | null>(null);\n readonly trend = input<'up' | 'down' | 'neutral' | null>(null);\n readonly caption = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly resolvedTrend = computed<'up' | 'down' | 'neutral'>(() => {\n const explicit = this.trend();\n if (explicit) {\n return explicit;\n }\n const change = (this.change() ?? '').trim();\n if (change.startsWith('+')) {\n return 'up';\n }\n if (change.startsWith('-') || change.startsWith('−')) {\n return 'down';\n }\n return 'neutral';\n });\n protected readonly trendClass = computed(() => TREND_CLASS[this.resolvedTrend()]);\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-1 rounded-lg border bg-card p-4', this.userClass()),\n );\n}\n","import { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n type TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Hover-triggered card on the Angular CDK overlay. Opens on hover/focus after a delay\n * and stays open while the pointer is over the card. SSR-safe (browser-only, on hover).\n */\n@Directive({\n selector: '[buiHoverCard]',\n host: {\n '(mouseenter)': 'scheduleOpen()',\n '(mouseleave)': 'scheduleClose()',\n '(focusin)': 'scheduleOpen()',\n '(focusout)': 'scheduleClose()',\n },\n})\nexport class BuiHoverCard implements OnDestroy {\n readonly content = input.required<TemplateRef<unknown>>({ alias: 'buiHoverCard' });\n readonly openDelay = input(400);\n readonly closeDelay = input(100);\n\n private readonly overlay = inject(Overlay);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n protected scheduleOpen(): void {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.open();\n }, this.openDelay());\n }\n\n protected scheduleClose(): void {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.close();\n }, this.closeDelay());\n }\n\n private clearTimer(): void {\n if (this.timer === undefined) {\n return;\n }\n\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n\n private open(): void {\n if (this.overlayRef) {\n return;\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 },\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -4 },\n ]);\n const overlayReference = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n overlayReference.attach(new TemplatePortal(this.content(), this.viewContainerRef));\n overlayReference.overlayElement.addEventListener('mouseenter', () => {\n this.clearTimer();\n });\n overlayReference.overlayElement.addEventListener('mouseleave', () => {\n this.scheduleClose();\n });\n this.overlayRef = overlayReference;\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n this.close();\n }\n}\n\n/** Styling for the hover-card content root (inside the bound template). */\n@Directive({\n selector: '[buiHoverCardContent]',\n host: { 'data-slot': 'hover-card-content', tabindex: '-1', '[class]': 'computedClass()' },\n})\nexport class BuiHoverCardContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A dark code panel with an optional filename header and a copy button. */\n@Component({\n selector: 'bui-code-block',\n host: { 'data-slot': 'code-block', '[class]': 'computedClass()' },\n template: `\n @if (filename()) {\n <div class=\"flex items-center justify-between border-b border-white/10 px-4 py-2\">\n <span class=\"font-mono text-xs text-zinc-400\">{{ filename() }}</span>\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n class=\"text-xs text-zinc-400 transition-colors hover:text-zinc-100\"\n (click)=\"copy()\"\n >\n {{ copied() ? 'Copied' : 'Copy' }}\n </button>\n </div>\n } @else {\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n class=\"absolute end-2 top-2 z-10 rounded-md px-1.5 py-1 text-xs text-zinc-400 opacity-0 transition-all group-hover/code-block:opacity-100 hover:bg-white/10 hover:text-zinc-100 focus-visible:opacity-100\"\n (click)=\"copy()\"\n >\n {{ copied() ? 'Copied' : 'Copy' }}\n </button>\n }\n <pre\n class=\"overflow-x-auto p-4 text-[13px] leading-relaxed\"\n ><code class=\"font-mono\">{{ code() }}</code></pre>\n `,\n})\nexport class BuiCodeBlock {\n readonly code = input('');\n readonly filename = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly copied = signal(false);\n protected readonly computedClass = computed(() =>\n cn(\n 'group/code-block relative block overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950 text-zinc-100',\n this.userClass(),\n ),\n );\n\n protected async copy(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.code());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 1600);\n } catch {\n // Clipboard unavailable — ignore.\n }\n }\n}\n","import { Component, computed, type ElementRef, input, model, viewChild } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A single-value slider (`role=\"slider\"`) with pointer drag and full keyboard support\n * (arrows, Home/End, PageUp/PageDown). Horizontal or vertical. SSR-safe — geometry is\n * only read inside browser event handlers.\n */\n@Component({\n selector: 'bui-slider',\n host: {\n 'data-slot': 'slider',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[class]': 'computedClass()',\n '(document:pointermove)': 'onMove($event)',\n '(document:pointerup)': 'onUp()',\n },\n template: `\n <span\n #track\n data-slot=\"slider-track\"\n class=\"relative grow overflow-hidden rounded-full bg-muted\"\n [class]=\"orientation() === 'vertical' ? 'h-full w-1.5' : 'h-1.5 w-full'\"\n (pointerdown)=\"onPointerDown($event)\"\n >\n <span\n data-slot=\"slider-range\"\n class=\"absolute bg-primary\"\n [class]=\"orientation() === 'vertical' ? 'bottom-0 w-full' : 'left-0 h-full'\"\n [style.height.%]=\"orientation() === 'vertical' ? pct() : null\"\n [style.width.%]=\"orientation() === 'vertical' ? null : pct()\"\n ></span>\n </span>\n <span\n data-slot=\"slider-thumb\"\n role=\"slider\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n class=\"absolute block size-4 shrink-0 rounded-full border border-primary bg-background shadow-sm ring-ring/50 transition-[color,box-shadow] outline-none hover:ring-4 focus-visible:ring-4\"\n [class]=\"\n orientation() === 'vertical'\n ? 'left-1/2 -translate-x-1/2 translate-y-1/2'\n : 'top-1/2 -translate-x-1/2 -translate-y-1/2'\n \"\n [style.bottom.%]=\"orientation() === 'vertical' ? pct() : null\"\n [style.left.%]=\"orientation() === 'vertical' ? null : pct()\"\n (keydown)=\"onKeydown($event)\"\n ></span>\n `,\n})\nexport class BuiSlider {\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 orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly ariaLabel = input('Value');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly track = viewChild.required<ElementRef<HTMLElement>>('track');\n private dragging = false;\n\n protected readonly pct = computed(() => {\n const range = this.max() - this.min() || 1;\n return ((this.value() - this.min()) / range) * 100;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex touch-none items-center select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n this.orientation() === 'vertical' ? 'h-40 w-fit flex-col' : 'w-full',\n this.userClass(),\n ),\n );\n\n protected onPointerDown(event: PointerEvent): void {\n if (this.disabled()) {\n return;\n }\n this.dragging = true;\n this.value.set(this.valueFromPointer(event));\n }\n\n protected onMove(event: PointerEvent): void {\n if (this.dragging) {\n this.value.set(this.valueFromPointer(event));\n }\n }\n\n protected onUp(): void {\n this.dragging = false;\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n const big = Math.max(this.step(), (this.max() - this.min()) / 10);\n let next: number;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp': {\n next = this.value() + this.step();\n break;\n }\n case 'ArrowLeft':\n case 'ArrowDown': {\n next = this.value() - this.step();\n break;\n }\n case 'Home': {\n next = this.min();\n break;\n }\n case 'End': {\n next = this.max();\n break;\n }\n case 'PageUp': {\n next = this.value() + big;\n break;\n }\n case 'PageDown': {\n next = this.value() - big;\n break;\n }\n default: {\n return;\n }\n }\n event.preventDefault();\n this.value.set(this.clamp(next));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n const rect = this.track().nativeElement.getBoundingClientRect();\n const ratioRaw =\n this.orientation() === 'vertical'\n ? 1 - (event.clientY - rect.top) / rect.height\n : (event.clientX - rect.left) / rect.width;\n const ratio = Math.max(0, Math.min(1, ratioRaw));\n return this.snap(this.min() + ratio * (this.max() - this.min()));\n }\n\n private snap(raw: number): number {\n return this.clamp(Math.round(raw / this.step()) * this.step());\n }\n\n private clamp(value: number): number {\n return Math.max(this.min(), Math.min(this.max(), value));\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst STAR_SIZE = { sm: 'size-4', default: 'size-5', lg: 'size-6' } as const;\n\n/** A star rating (`role=\"radiogroup\"`) with hover preview and keyboard support. */\n@Component({\n selector: 'bui-rating',\n host: {\n 'data-slot': 'rating',\n role: 'radiogroup',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n '(mouseleave)': 'hover.set(0)',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === star\"\n [attr.aria-label]=\"star + ' / ' + max()\"\n [attr.tabindex]=\"tabindexFor(star)\"\n [disabled]=\"readonly()\"\n class=\"rounded-sm transition-colors outline-none not-disabled:cursor-pointer focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [class]=\"current() >= star ? color() : 'text-muted-foreground/30'\"\n (click)=\"set(star)\"\n (mouseenter)=\"onHover(star)\"\n (focus)=\"onHover(star)\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n [class]=\"sizeClass()\"\n [attr.fill]=\"current() >= star ? 'currentColor' : 'none'\"\n >\n <polygon\n 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 />\n </svg>\n </button>\n }\n `,\n})\nexport class BuiRating {\n readonly value = model(0);\n readonly max = input(5);\n readonly readonly = input(false);\n readonly size = input<keyof typeof STAR_SIZE>('default');\n readonly color = input('text-amber-500');\n readonly ariaLabel = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly hover = signal(0);\n protected readonly current = computed(() => this.hover() || this.value());\n protected readonly stars = computed(() =>\n Array.from({ length: this.max() }, (_, index) => index + 1),\n );\n protected readonly sizeClass = computed(() => STAR_SIZE[this.size()]);\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-0.5', this.userClass()),\n );\n\n protected set(next: number): void {\n if (!this.readonly()) {\n this.value.set(next);\n }\n }\n protected onHover(next: number): void {\n if (!this.readonly()) {\n this.hover.set(next);\n }\n }\n protected tabindexFor(star: number): number {\n if (this.readonly()) {\n return -1;\n }\n return star === (this.value() || 1) ? 0 : -1;\n }\n protected onKeydown(event: KeyboardEvent): void {\n if (this.readonly()) {\n return;\n }\n if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.set(Math.min(this.max(), this.value() + 1));\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n event.preventDefault();\n this.set(Math.max(0, this.value() - 1));\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst FIELD_HEIGHT = { sm: 'h-7 text-xs', default: 'h-8 text-sm', lg: 'h-9 text-base' } as const;\nconst BTN_SIZE = {\n sm: 'w-7 [&_svg]:size-3',\n default: 'w-8 [&_svg]:size-3.5',\n lg: 'w-9 [&_svg]:size-4',\n} as const;\nconst FIELD_WIDTH = { sm: 'w-9', default: 'w-10', lg: 'w-12' } as const;\n\n/** A compact − [n] + quantity stepper (`role=\"group\"` with a `spinbutton` field). */\n@Component({\n selector: 'bui-quantity-selector',\n host: { 'data-slot': 'quantity-selector', role: 'group', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n aria-label=\"Decrease quantity\"\n [disabled]=\"disabled() || atMin()\"\n [class]=\"btnClass('e')\"\n (click)=\"dec()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n </button>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [class]=\"fieldClass()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n <button\n type=\"button\"\n aria-label=\"Increase quantity\"\n [disabled]=\"disabled() || atMax()\"\n [class]=\"btnClass('s')\"\n (click)=\"inc()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n </button>\n `,\n})\nexport class BuiQuantitySelector {\n readonly value = model(1);\n readonly min = input(1);\n readonly max = input<number | null>(null);\n readonly step = input(1);\n readonly size = input<keyof typeof FIELD_HEIGHT>('default');\n readonly disabled = input(false);\n readonly ariaLabel = input('Quantity');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly atMin = computed(() => this.value() <= this.min());\n protected readonly atMax = computed(() => {\n const max = this.max();\n return max !== null && this.value() >= max;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-stretch overflow-hidden rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-50 dark:bg-input/30',\n this.userClass(),\n ),\n );\n\n protected btnClass(side: 'e' | 's'): string {\n return cn(\n 'flex shrink-0 items-center justify-center text-muted-foreground transition-colors outline-none not-disabled:cursor-pointer hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',\n side === 'e' ? 'border-e' : 'border-s',\n 'border-input',\n BTN_SIZE[this.size()],\n FIELD_HEIGHT[this.size()],\n );\n }\n\n protected fieldClass(): string {\n return cn(\n 'min-w-0 border-0 bg-transparent text-center font-medium tabular-nums outline-none',\n FIELD_HEIGHT[this.size()],\n FIELD_WIDTH[this.size()],\n );\n }\n\n protected inc(): void {\n if (!this.disabled() && !this.atMax()) {\n this.value.set(this.clamp(this.value() + this.step()));\n }\n }\n\n protected dec(): void {\n if (!this.disabled() && !this.atMin()) {\n this.value.set(this.clamp(this.value() - this.step()));\n }\n }\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replaceAll(/[^\\d-]/g, '');\n this.value.set(raw === '' ? this.min() : Number(raw));\n }\n\n protected onBlur(): void {\n const current = this.value();\n this.value.set(this.clamp(Number.isNaN(current) ? this.min() : current));\n }\n\n private clamp(value: number): number {\n let result = Math.max(this.min(), value);\n const max = this.max();\n if (max !== null && result > max) {\n result = max;\n }\n return result;\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { buttonVariants } from '../button/button';\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Confirm dialog styling (`role=\"alertdialog\"`). Open it with the CDK `Dialog` service\n * (re-exported from `ng-blatui`) on a template whose root carries `buiAlertDialogContent`.\n */\n@Directive({\n selector: '[buiAlertDialogContent]',\n host: { 'data-slot': 'alert-dialog-content', role: 'alertdialog', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border bg-background p-6 shadow-lg sm:max-w-lg',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogHeader]',\n host: { 'data-slot': 'alert-dialog-header', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-2 text-center sm:text-left', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogTitle]',\n host: { 'data-slot': 'alert-dialog-title', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('text-lg font-semibold', this.userClass()));\n}\n\n@Directive({\n selector: '[buiAlertDialogDescription]',\n host: { 'data-slot': 'alert-dialog-description', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogFooter]',\n host: { 'data-slot': 'alert-dialog-footer', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.userClass()),\n );\n}\n\n/** Primary confirm action button. */\n@Directive({\n selector: 'button[buiAlertDialogAction]',\n host: { type: 'button', 'data-slot': 'alert-dialog-action', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogAction {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(buttonVariants(), this.userClass()));\n}\n\n/** Cancel (dismiss) button. */\n@Directive({\n selector: 'button[buiAlertDialogCancel]',\n host: { type: 'button', 'data-slot': 'alert-dialog-cancel', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogCancel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(buttonVariants({ variant: 'outline' }), this.userClass()),\n );\n}\n","import { afterNextRender, computed, Directive, ElementRef, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BASE =\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 flex w-full resize-none overflow-hidden rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\nconst SIZES = {\n sm: 'min-h-14 px-2.5 py-1.5 text-sm',\n default: 'min-h-16 px-3 py-2 text-base md:text-sm',\n lg: 'min-h-20 px-4 py-2.5 text-base',\n} as const;\n\n/**\n * A textarea that grows with its content. SSR-safe — the height is measured only in the\n * browser (via `afterNextRender` and the `input` event).\n */\n@Directive({\n selector: 'textarea[buiAutosizeTextarea]',\n host: {\n 'data-slot': 'autosize-textarea',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n '(input)': 'resize()',\n },\n})\nexport class BuiAutosizeTextarea {\n readonly size = input<keyof typeof SIZES>('default');\n readonly maxRows = input<number | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n protected readonly computedClass = computed(() => cn(BASE, SIZES[this.size()], this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.resize();\n });\n }\n\n protected resize(): void {\n const element = this.host.nativeElement;\n element.style.height = 'auto';\n let target = element.scrollHeight;\n const maxRows = this.maxRows();\n if (maxRows !== null) {\n const styles = getComputedStyle(element);\n let lineHeight = Number.parseFloat(styles.lineHeight);\n if (Number.isNaN(lineHeight)) {\n lineHeight = Number.parseFloat(styles.fontSize) * 1.2;\n }\n const padding =\n Number.parseFloat(styles.paddingTop) + Number.parseFloat(styles.paddingBottom);\n const border =\n Number.parseFloat(styles.borderTopWidth) + Number.parseFloat(styles.borderBottomWidth);\n const cap = lineHeight * maxRows + padding + border;\n if (target > cap) {\n target = cap;\n element.style.overflowY = 'auto';\n } else {\n element.style.overflowY = 'hidden';\n }\n }\n element.style.height = `${target}px`;\n }\n}\n","import { Menu } from '@angular/aria/menu';\nimport { computed, Directive, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Dropdown menu styling on top of Angular Aria's menu primitives (re-exported below).\n * Behaviour, roving focus, typeahead and ARIA roles come from `ngMenu` / `ngMenuItem` /\n * `ngMenuTrigger`. Wrap the trigger + menu in a `relative` element so the menu anchors.\n *\n * ```html\n * <div class=\"relative inline-block\">\n * <button buiButton ngMenuTrigger [menu]=\"m\">Open</button>\n * <div ngMenu #m=\"ngMenu\" buiDropdownMenu>\n * <div ngMenuItem value=\"edit\" buiDropdownMenuItem>Edit</div>\n * </div>\n * </div>\n * ```\n */\nexport { Menu, MenuBar, MenuContent, MenuItem, MenuTrigger } from '@angular/aria/menu';\n\n@Directive({\n selector: '[buiDropdownMenu]',\n host: {\n 'data-slot': 'dropdown-menu',\n '[hidden]': '!menu.visible()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiDropdownMenu {\n protected readonly menu = inject(Menu);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute z-50 mt-1 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuItem]',\n host: { 'data-slot': 'dropdown-menu-item', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuLabel]',\n host: { 'data-slot': 'dropdown-menu-label', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuLabel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('px-2 py-1.5 text-sm font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuSeparator]',\n host: { 'data-slot': 'dropdown-menu-separator', role: 'separator', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('-mx-1 my-1 h-px bg-border', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Application menu bar styling on Angular Aria's `ngMenuBar`. Each top-level entry is a\n * `ngMenuTrigger` opening a `ngMenu` (style the menus with `buiDropdownMenu` /\n * `buiDropdownMenuItem`). `MenuBar` is re-exported from `ng-blatui`.\n *\n * ```html\n * <div ngMenuBar buiMenubar>\n * <button ngMenuTrigger [menu]=\"file\" buiMenubarTrigger>File</button>\n * <div ngMenu #file=\"ngMenu\" buiDropdownMenu>\n * <div ngMenuItem value=\"new\" buiDropdownMenuItem>New</div>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[buiMenubar]',\n host: { 'data-slot': 'menubar', '[class]': 'computedClass()' },\n})\nexport class BuiMenubar {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiMenubarTrigger]',\n host: { 'data-slot': 'menubar-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiMenubarTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-none select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TYPOGRAPHY = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight text-balance',\n h2: 'scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n p: 'leading-7 [&:not(:first-child)]:mt-6',\n lead: 'text-muted-foreground text-xl',\n large: 'text-lg font-semibold',\n small: 'text-sm leading-none font-medium',\n muted: 'text-muted-foreground text-sm',\n blockquote: 'mt-6 border-l-2 pl-6 italic',\n 'inline-code':\n 'bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold',\n list: 'my-6 ml-6 list-disc [&>li]:mt-2',\n gradient:\n 'bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-4xl font-extrabold tracking-tight text-transparent',\n} as const;\n\n/** Applies a typographic style. Put it on the matching element (e.g. `<h1 buiTypography variant=\"h1\">`). */\n@Directive({\n selector: '[buiTypography]',\n host: {\n 'data-slot': 'typography',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTypography {\n readonly variant = input<keyof typeof TYPOGRAPHY>('p');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(TYPOGRAPHY[this.variant()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Decorative dotted background layer. Drop inside a `relative` container. */\n@Component({\n selector: 'bui-dot-pattern',\n host: {\n 'data-slot': 'dot-pattern',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n '[style.background-image]': 'bgImage()',\n '[style.background-size]': 'bgSize()',\n '[style.mask-image]': 'maskImage()',\n },\n template: '',\n})\nexport class BuiDotPattern {\n readonly size = input(1);\n readonly gap = input(16);\n readonly mask = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly bgImage = computed(\n () => `radial-gradient(currentColor ${this.size()}px, transparent 0)`,\n );\n protected readonly bgSize = computed(() => `${this.gap()}px ${this.gap()}px`);\n protected readonly maskImage = computed(() =>\n this.mask() ? 'radial-gradient(ellipse at center, #000 40%, transparent 75%)' : null,\n );\n protected readonly computedClass = computed(() =>\n cn('pointer-events-none absolute inset-0 block text-foreground/15', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Decorative grid background layer. Drop inside a `relative` container. */\n@Component({\n selector: 'bui-grid-pattern',\n host: {\n 'data-slot': 'grid-pattern',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n '[style.background-image]': 'bgImage()',\n '[style.background-size]': 'bgSize()',\n '[style.mask-image]': 'maskImage()',\n },\n template: '',\n})\nexport class BuiGridPattern {\n readonly gap = input(24);\n readonly lineWidth = input(1);\n readonly mask = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly bgImage = computed(() => {\n const width = this.lineWidth();\n return `linear-gradient(to right, currentColor ${width}px, transparent ${width}px), linear-gradient(to bottom, currentColor ${width}px, transparent ${width}px)`;\n });\n protected readonly bgSize = computed(() => `${this.gap()}px ${this.gap()}px`);\n protected readonly maskImage = computed(() =>\n this.mask() ? 'radial-gradient(ellipse at center, #000 0%, transparent 75%)' : null,\n );\n protected readonly computedClass = computed(() =>\n cn('pointer-events-none absolute inset-0 block text-foreground/10', this.userClass()),\n );\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SegmentOption {\n value: string;\n label: string;\n}\n\n/** A single-select segmented control (`role=\"radiogroup\"`) with arrow-key navigation. */\n@Component({\n selector: 'bui-segmented-control',\n host: {\n 'data-slot': 'segmented-control',\n role: 'radiogroup',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @for (option of normalized(); track option.value) {\n <button\n type=\"button\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === option.value\"\n [attr.tabindex]=\"tabindexFor(option.value)\"\n [disabled]=\"disabled()\"\n class=\"rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\"\n [class]=\"\n value() === option.value\n ? 'bg-background text-foreground shadow-sm'\n : 'text-muted-foreground hover:text-foreground'\n \"\n (click)=\"select(option.value)\"\n >\n {{ option.label }}\n </button>\n }\n `,\n})\nexport class BuiSegmentedControl {\n readonly value = model('');\n readonly options = input<readonly (SegmentOption | string)[]>([]);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly normalized = computed<SegmentOption[]>(() =>\n this.options().map((option) =>\n typeof option === 'string' ? { value: option, label: option } : option,\n ),\n );\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1 rounded-lg bg-muted p-1', this.userClass()),\n );\n\n protected select(next: string): void {\n if (!this.disabled()) {\n this.value.set(next);\n }\n }\n\n protected tabindexFor(optionValue: string): number {\n if (this.value() === optionValue) {\n return 0;\n }\n return this.value() === '' && this.normalized().at(0)?.value === optionValue ? 0 : -1;\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (\n this.disabled() ||\n !['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes(event.key)\n ) {\n return;\n }\n event.preventDefault();\n const items = this.normalized();\n if (items.length === 0) {\n return;\n }\n const current = Math.max(\n 0,\n items.findIndex((option) => option.value === this.value()),\n );\n const isForward = event.key === 'ArrowRight' || event.key === 'ArrowDown';\n const nextIndex = (current + (isForward ? 1 : -1) + items.length) % items.length;\n this.value.set(items[nextIndex].value);\n const buttons = this.host.nativeElement.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]');\n buttons[nextIndex].focus();\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A terminal / console window (always dark). Put prompt + output lines in the content;\n * helper classes `.prompt .ok .dim .path .warn` colour them.\n */\n@Component({\n selector: 'bui-terminal',\n host: { 'data-slot': 'terminal', '[class]': 'computedClass()' },\n template: `\n <div\n data-slot=\"terminal-bar\"\n class=\"flex items-center gap-2 border-b border-white/10 bg-zinc-900 px-3.5 py-2.5\"\n >\n @if (buttons()) {\n <span class=\"size-3 rounded-full\" style=\"background:#ff5f57\"></span>\n <span class=\"size-3 rounded-full\" style=\"background:#febc2e\"></span>\n <span class=\"size-3 rounded-full\" style=\"background:#28c840\"></span>\n }\n @if (title()) {\n <span\n data-slot=\"terminal-title\"\n class=\"truncate font-mono text-xs text-zinc-400\"\n [class.ml-2]=\"buttons()\"\n >{{ title() }}</span\n >\n }\n </div>\n <div\n data-slot=\"terminal-body\"\n class=\"overflow-x-auto p-4 font-mono text-[13px] leading-relaxed [&_.dim]:text-zinc-400 [&_.ok]:text-emerald-400 [&_.path]:text-cyan-400 [&_.prompt]:text-emerald-400 [&_.warn]:text-amber-400\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiTerminal {\n readonly title = input<string | null>(null);\n readonly buttons = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'block overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950 text-zinc-100 shadow-md',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ComparisonRow {\n feature: string;\n values: readonly (string | boolean | null)[];\n}\n\n/** A data-driven feature-comparison / pricing table. */\n@Component({\n selector: 'bui-comparison-table',\n host: { 'data-slot': 'comparison-table', '[class]': 'computedClass()' },\n template: `\n <table class=\"w-full text-sm\">\n <caption class=\"sr-only\">\n {{\n featureLabel()\n }}\n comparison\n </caption>\n <thead>\n <tr class=\"border-b bg-muted/40\">\n <th scope=\"col\" class=\"px-4 py-3 text-left font-medium text-muted-foreground\">\n {{ featureLabel() }}\n </th>\n @for (tier of tiers(); track tier) {\n <th\n scope=\"col\"\n class=\"px-4 py-3 text-center font-semibold\"\n [class]=\"$index === highlightIndex() ? 'text-primary' : ''\"\n >\n {{ tier }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track row.feature) {\n <tr class=\"border-b last:border-0\">\n <th scope=\"row\" class=\"px-4 py-3 text-left font-medium\">{{ row.feature }}</th>\n @for (value of row.values; track $index) {\n <td\n class=\"px-4 py-3 text-center\"\n [class]=\"$index === highlightIndex() ? 'bg-muted/30' : ''\"\n >\n @if (value === true) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-label=\"Included\"\n class=\"mx-auto size-4 text-primary\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n } @else if (value === false || value === null) {\n <span class=\"text-muted-foreground\" aria-label=\"Not included\">—</span>\n } @else {\n {{ value }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class BuiComparisonTable {\n readonly tiers = input<readonly string[]>([]);\n readonly rows = input<readonly ComparisonRow[]>([]);\n readonly highlight = input<number | string | null>(null);\n readonly featureLabel = input('Feature');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly highlightIndex = computed(() => {\n const highlight = this.highlight();\n if (typeof highlight === 'number') {\n return highlight;\n }\n return highlight === null ? -1 : this.tiers().indexOf(highlight);\n });\n protected readonly computedClass = computed(() =>\n cn('w-full overflow-x-auto rounded-xl border', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A card that flips to reveal its back. Default content is the front; project the back\n * with `[buiFlipBack]`. `trigger=\"hover\"` (default) or `\"click\"` (keyboard-accessible).\n */\n@Component({\n selector: 'bui-flip-card',\n host: {\n 'data-slot': 'flip-card',\n '[class]': 'computedClass()',\n '[style.perspective]': \"'1000px'\",\n '[style.height]': 'height()',\n '[attr.role]': \"trigger() === 'click' ? 'button' : null\",\n '[attr.tabindex]': \"trigger() === 'click' ? 0 : null\",\n '[attr.aria-pressed]': \"trigger() === 'click' ? flipped() : null\",\n '(mouseenter)': 'onHover(true)',\n '(mouseleave)': 'onHover(false)',\n '(focusin)': 'onHover(true)',\n '(focusout)': 'onHover(false)',\n '(click)': 'onClick()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n <div\n data-slot=\"flip-card-flipper\"\n class=\"relative block size-full rounded-xl transition-transform duration-500 [transform-style:preserve-3d]\"\n [class]=\"flipped() ? '[transform:rotateY(180deg)]' : ''\"\n >\n <div\n data-slot=\"flip-card-front\"\n class=\"absolute inset-0 flex flex-col overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm [backface-visibility:hidden]\"\n [attr.aria-hidden]=\"flipped()\"\n >\n <ng-content />\n </div>\n <div\n data-slot=\"flip-card-back\"\n class=\"absolute inset-0 flex [transform:rotateY(180deg)] flex-col overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm [backface-visibility:hidden]\"\n [attr.aria-hidden]=\"!flipped()\"\n >\n <ng-content select=\"[buiFlipBack]\" />\n </div>\n </div>\n `,\n})\nexport class BuiFlipCard {\n readonly trigger = input<'hover' | 'click'>('hover');\n readonly height = input('16rem');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly flipped = signal(false);\n protected readonly computedClass = computed(() => cn('relative block w-full', this.userClass()));\n\n protected onHover(shouldFlip: boolean): void {\n if (this.trigger() === 'hover') {\n this.flipped.set(shouldFlip);\n }\n }\n\n protected onClick(): void {\n if (this.trigger() === 'click') {\n this.flipped.update((value) => !value);\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!(this.trigger() === 'click' && (event.key === 'Enter' || event.key === ' '))) {\n return;\n }\n\n event.preventDefault();\n this.flipped.update((value) => !value);\n }\n}\n","import { Component, computed, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A card with a radial spotlight glow that follows the cursor on hover. */\n@Component({\n selector: 'bui-spotlight-card',\n host: {\n 'data-slot': 'spotlight-card',\n '[class]': 'computedClass()',\n '(mousemove)': 'track($event)',\n '(mouseenter)': 'hover.set(true)',\n '(mouseleave)': 'hover.set(false)',\n },\n template: `\n <div\n aria-hidden=\"true\"\n class=\"pointer-events-none absolute inset-0 rounded-[inherit] transition-opacity duration-300\"\n [style.opacity]=\"hover() ? 1 : 0\"\n [style.background]=\"glowStyle()\"\n ></div>\n <div class=\"relative z-10\"><ng-content /></div>\n `,\n})\nexport class BuiSpotlightCard {\n readonly color = input<string | null>(null);\n readonly size = input(350);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly hover = signal(false);\n protected readonly glowStyle = computed(() => {\n const glow = this.color() ?? 'color-mix(in oklab, var(--foreground) 14%, transparent)';\n return `radial-gradient(circle ${this.size()}px at var(--x, 50%) var(--y, 50%), ${glow}, transparent 80%)`;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm',\n this.userClass(),\n ),\n );\n\n protected track(event: MouseEvent): void {\n const element = this.host.nativeElement;\n const rect = element.getBoundingClientRect();\n element.style.setProperty('--x', `${event.clientX - rect.left}px`);\n element.style.setProperty('--y', `${event.clientY - rect.top}px`);\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A card that tilts in 3D toward the cursor. SSR-safe (geometry read on mousemove). */\n@Component({\n selector: 'bui-tilt-card',\n host: { 'data-slot': 'tilt-card', '[class]': 'computedClass()' },\n template: `\n <div\n class=\"relative block overflow-hidden rounded-xl border bg-card text-card-foreground shadow-sm [transform-style:preserve-3d]\"\n [class]=\"active() ? 'transition-none' : 'transition-transform duration-500 ease-out'\"\n [style.transform]=\"cardTransform()\"\n (mousemove)=\"move($event)\"\n (mouseleave)=\"leave()\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiTiltCard {\n readonly max = input(10);\n readonly scaleTo = input(1.05);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly active = signal(false);\n private readonly rx = signal(0);\n private readonly ry = signal(0);\n protected readonly cardTransform = computed(() => {\n const scale = this.active() ? this.scaleTo() : 1;\n return `rotateX(${this.rx()}deg) rotateY(${this.ry()}deg) scale(${scale})`;\n });\n protected readonly computedClass = computed(() =>\n cn('block [perspective:1000px]', this.userClass()),\n );\n\n protected move(event: MouseEvent): void {\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const px = (event.clientX - rect.left) / rect.width;\n const py = (event.clientY - rect.top) / rect.height;\n this.active.set(true);\n this.ry.set((px - 0.5) * 2 * this.max());\n this.rx.set(-(py - 0.5) * 2 * this.max());\n }\n\n protected leave(): void {\n this.active.set(false);\n this.rx.set(0);\n this.ry.set(0);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\n/**\n * An accessible select (combobox + listbox) using the `aria-activedescendant` pattern:\n * focus stays on the trigger while arrows move the active option. Full keyboard support\n * (arrows, Home/End, Enter, Escape) and outside-click close. SSR-safe.\n */\n@Component({\n selector: 'bui-select',\n host: {\n 'data-slot': 'select',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <button\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-activedescendant]=\"open() ? listId + '-' + active() : null\"\n [attr.data-placeholder]=\"selectedLabel() ? null : ''\"\n [disabled]=\"disabled()\"\n class=\"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground\"\n (click)=\"toggle()\"\n (keydown)=\"onKeydown($event)\"\n >\n <span class=\"truncate\">{{ selectedLabel() || placeholder() }}</span>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n @if (open()) {\n <ul\n [id]=\"listId\"\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n @for (option of options(); track option.value; let i = $index) {\n <li\n [id]=\"listId + '-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value()\"\n [attr.aria-disabled]=\"option.disabled ? true : null\"\n class=\"relative flex cursor-default items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n (mouseenter)=\"active.set(i)\"\n >\n <span class=\"truncate\">{{ option.label }}</span>\n @if (option.value === value()) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n }\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiSelect {\n readonly value = model('');\n readonly options = input<readonly SelectOption[]>([]);\n readonly placeholder = input('Select…');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly listId = inject(_IdGenerator).getId('bui-select-');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly selectedLabel = computed(\n () => this.options().find((option) => option.value === this.value())?.label ?? '',\n );\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.openList();\n }\n }\n\n protected select(option: SelectOption): void {\n if (option.disabled) {\n return;\n }\n this.value.set(option.value);\n this.close();\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if (!this.open()) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n this.openList();\n }\n return;\n }\n const options = this.options();\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n this.active.set(Math.min(options.length - 1, this.active() + 1));\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n break;\n }\n case 'Home': {\n event.preventDefault();\n this.active.set(0);\n break;\n }\n case 'End': {\n event.preventDefault();\n this.active.set(options.length - 1);\n break;\n }\n case 'Enter':\n case ' ': {\n event.preventDefault();\n if (options.length > 0) {\n this.select(options[this.active()]);\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n this.close();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n }\n\n private openList(): void {\n const current = this.options().findIndex((option) => option.value === this.value());\n this.active.set(current === -1 ? 0 : current);\n this.open.set(true);\n }\n\n private close(): void {\n this.open.set(false);\n }\n}\n","import { afterNextRender, Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n subtle: 'bg-card text-foreground hover:bg-accent hover:text-accent-foreground border',\n} as const;\n\n/**\n * A floating \"scroll to top\" button that reveals itself once the page scrolls past\n * `threshold` px. SSR-safe — the scroll position is only read in the browser.\n */\n@Component({\n selector: 'bui-back-to-top',\n host: {\n 'data-slot': 'back-to-top',\n '[hidden]': '!shown()',\n '[class]': 'computedClass()',\n '(window:scroll)': 'onScroll()',\n },\n template: `\n <button\n type=\"button\"\n aria-label=\"Back to top\"\n class=\"inline-flex size-10 items-center justify-center rounded-full shadow-md transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [class]=\"variantClass()\"\n (click)=\"toTop()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-5\"\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n </button>\n `,\n})\nexport class BuiBackToTop {\n readonly threshold = input(300);\n readonly variant = input<keyof typeof VARIANTS>('primary');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly shown = signal(false);\n protected readonly variantClass = computed(() => VARIANTS[this.variant()]);\n protected readonly computedClass = computed(() =>\n cn('fixed end-6 bottom-6 z-40 block', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.onScroll();\n });\n }\n\n protected onScroll(): void {\n this.shown.set(globalThis.scrollY > this.threshold());\n }\n\n protected toTop(): void {\n globalThis.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n/**\n * A filterable combobox: a text input (`role=\"combobox\"`, `aria-autocomplete=\"list\"`) over a\n * filtered listbox, using the `aria-activedescendant` pattern. Full keyboard + outside-click.\n */\n@Component({\n selector: 'bui-combobox',\n host: {\n 'data-slot': 'combobox',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <input\n type=\"text\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-activedescendant]=\"open() ? listId + '-' + active() : null\"\n [value]=\"display()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n class=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\"\n (input)=\"onInput($event)\"\n (focus)=\"openList()\"\n (keydown)=\"onKeydown($event)\"\n />\n @if (open() && filtered().length > 0) {\n <ul\n [id]=\"listId\"\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n @for (option of filtered(); track option.value; let i = $index) {\n <li\n [id]=\"listId + '-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value()\"\n class=\"relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n (mouseenter)=\"active.set(i)\"\n >\n {{ option.label }}\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiCombobox {\n readonly value = model('');\n readonly options = input<readonly ComboboxOption[]>([]);\n readonly placeholder = input('Search…');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly listId = inject(_IdGenerator).getId('bui-combobox-');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly query = signal('');\n protected readonly selectedLabel = computed(\n () => this.options().find((option) => option.value === this.value())?.label ?? '',\n );\n protected readonly display = computed(() => (this.open() ? this.query() : this.selectedLabel()));\n protected readonly filtered = computed(() => {\n const query = this.query().trim().toLowerCase();\n return query === ''\n ? this.options()\n : this.options().filter((option) => option.label.toLowerCase().includes(query));\n });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected onInput(event: Event): void {\n this.query.set((event.target as HTMLInputElement).value);\n this.active.set(0);\n this.open.set(true);\n }\n\n protected openList(): void {\n this.query.set('');\n this.active.set(0);\n this.open.set(true);\n }\n\n protected select(option: ComboboxOption): void {\n this.value.set(option.value);\n this.query.set('');\n this.open.set(false);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if (event.key === 'Escape') {\n this.open.set(false);\n return;\n }\n if (!this.open() && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {\n event.preventDefault();\n this.openList();\n return;\n }\n const items = this.filtered();\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n this.active.set(Math.min(items.length - 1, this.active() + 1));\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n break;\n }\n case 'Enter': {\n if (this.open() && items.length > 0) {\n event.preventDefault();\n this.select(items[this.active()]);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (!(this.open() && !this.host.nativeElement.contains(event.target as Node))) {\n return;\n }\n\n this.open.set(false);\n this.query.set('');\n }\n}\n","import { afterNextRender, Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A live countdown to a target time (`role=\"timer\"`). SSR-safe — ticks only in the browser. */\n@Component({\n selector: 'bui-countdown',\n host: {\n 'data-slot': 'countdown',\n role: 'timer',\n 'aria-live': 'off',\n '[class]': 'computedClass()',\n },\n template: `\n @if (done()) {\n <span data-slot=\"countdown-expired\" class=\"text-sm font-medium text-muted-foreground\">\n {{ expired() }}\n </span>\n } @else {\n <div class=\"flex items-center gap-2\">\n @for (unit of units(); track unit.key) {\n <div\n data-slot=\"countdown-unit\"\n class=\"flex min-w-[3.25rem] flex-col items-center rounded-lg border bg-card px-2 py-1.5 shadow-xs\"\n >\n <span class=\"text-xl font-bold tabular-nums\">{{ unit.value }}</span>\n <span class=\"text-[10px] font-medium tracking-wide text-muted-foreground uppercase\">\n {{ unit.label }}\n </span>\n </div>\n }\n </div>\n }\n `,\n})\nexport class BuiCountdown implements OnDestroy {\n readonly to = input.required<string | number | Date>();\n readonly expired = input('Expired');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly now = signal(Date.now());\n private timer: ReturnType<typeof setInterval> | undefined;\n private readonly targetMs = computed(() => new Date(this.to()).getTime());\n private readonly diff = computed(() => Math.max(0, this.targetMs() - this.now()));\n protected readonly done = computed(() => this.diff() <= 0);\n protected readonly units = computed(() => {\n const diff = this.diff();\n const pad = (value: number): string => String(value).padStart(2, '0');\n return [\n { key: 'days', label: 'Days', value: pad(Math.floor(diff / 86_400_000)) },\n { key: 'hours', label: 'Hrs', value: pad(Math.floor(diff / 3_600_000) % 24) },\n { key: 'minutes', label: 'Min', value: pad(Math.floor(diff / 60_000) % 60) },\n { key: 'seconds', label: 'Sec', value: pad(Math.floor(diff / 1000) % 60) },\n ];\n });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-2', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.timer = setInterval(() => {\n this.now.set(Date.now());\n }, 1000);\n });\n }\n\n ngOnDestroy(): void {\n if (this.timer !== undefined) {\n clearInterval(this.timer);\n }\n }\n}\n","import { afterNextRender, Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Animates a number counting up to its target on first render. The animated digits are\n * `aria-hidden`; an sr-only span carries the final value (SSR/no-JS read the real number).\n */\n@Component({\n selector: 'bui-number-ticker',\n host: { 'data-slot': 'number-ticker', '[class]': 'computedClass()' },\n template: `\n <span aria-hidden=\"true\">{{ format(current()) }}</span>\n <span class=\"sr-only\">{{ format(value()) }}</span>\n `,\n})\nexport class BuiNumberTicker {\n readonly value = input(0);\n readonly from = input(0);\n readonly duration = input(1500);\n readonly decimals = input(0);\n readonly prefix = input('');\n readonly suffix = input('');\n readonly separator = input(',');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly current = signal(0);\n protected readonly computedClass = computed(() => cn('tabular-nums', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.animate();\n });\n }\n\n protected format(value: number): string {\n const fixed = value.toFixed(Math.max(0, this.decimals()));\n const [integer, decimal] = fixed.split('.');\n const decimalPart = decimal ? `.${decimal}` : '';\n return this.prefix() + this.group(integer) + decimalPart + this.suffix();\n }\n\n private group(value: string): string {\n return value.length <= 3\n ? value\n : this.group(value.slice(0, -3)) + this.separator() + value.slice(-3);\n }\n\n private animate(): void {\n const start = this.from();\n const end = this.value();\n const duration = this.duration();\n if (duration <= 0) {\n this.current.set(end);\n return;\n }\n this.current.set(start);\n const startTime = performance.now();\n const step = (time: number): void => {\n const progress = Math.min(1, (time - startTime) / duration);\n this.current.set(start + (end - start) * progress);\n if (progress < 1) {\n requestAnimationFrame(step);\n }\n };\n requestAnimationFrame(step);\n }\n}\n","/*\n * Public API Surface of ng-blatui\n */\n\nexport * from './lib/utils/cn';\nexport * from './lib/button/button';\nexport * from './lib/badge/badge';\nexport * from './lib/label/label';\nexport * from './lib/separator/separator';\nexport * from './lib/skeleton/skeleton';\nexport * from './lib/card/card';\nexport * from './lib/alert/alert';\nexport * from './lib/input/input';\nexport * from './lib/textarea/textarea';\nexport * from './lib/progress/progress';\nexport * from './lib/avatar/avatar';\nexport * from './lib/checkbox/checkbox';\nexport * from './lib/switch/switch';\nexport * from './lib/accordion/accordion';\nexport * from './lib/tabs/tabs';\nexport * from './lib/dialog/dialog';\nexport * from './lib/theme/theme';\nexport * from './lib/theme/theme-customizer';\nexport * from './lib/radio-group/radio-group';\nexport * from './lib/tooltip/tooltip';\nexport * from './lib/breadcrumb/breadcrumb';\nexport * from './lib/kbd/kbd';\nexport * from './lib/aspect-ratio/aspect-ratio';\nexport * from './lib/button-group/button-group';\nexport * from './lib/empty/empty';\nexport * from './lib/container/container';\nexport * from './lib/field/field';\nexport * from './lib/collapsible/collapsible';\nexport * from './lib/toggle/toggle';\nexport * from './lib/spinner/spinner';\nexport * from './lib/copy-button/copy-button';\nexport * from './lib/banner/banner';\nexport * from './lib/table/table';\nexport * from './lib/avatar-group/avatar-group';\nexport * from './lib/pagination/pagination';\nexport * from './lib/popover/popover';\nexport * from './lib/item/item';\nexport * from './lib/scroll-area/scroll-area';\nexport * from './lib/input-group/input-group';\nexport * from './lib/visually-hidden/visually-hidden';\nexport * from './lib/meter/meter';\nexport * from './lib/stat/stat';\nexport * from './lib/hover-card/hover-card';\nexport * from './lib/code-block/code-block';\nexport * from './lib/slider/slider';\nexport * from './lib/rating/rating';\nexport * from './lib/quantity-selector/quantity-selector';\nexport * from './lib/alert-dialog/alert-dialog';\nexport * from './lib/autosize-textarea/autosize-textarea';\nexport * from './lib/dropdown-menu/dropdown-menu';\nexport * from './lib/menubar/menubar';\nexport * from './lib/typography/typography';\nexport * from './lib/dot-pattern/dot-pattern';\nexport * from './lib/grid-pattern/grid-pattern';\nexport * from './lib/segmented-control/segmented-control';\nexport * from './lib/terminal/terminal';\nexport * from './lib/comparison-table/comparison-table';\nexport * from './lib/flip-card/flip-card';\nexport * from './lib/spotlight-card/spotlight-card';\nexport * from './lib/tilt-card/tilt-card';\nexport * from './lib/select/select';\nexport * from './lib/back-to-top/back-to-top';\nexport * from './lib/combobox/combobox';\nexport * from './lib/countdown/countdown';\nexport * from './lib/number-ticker/number-ticker';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BASE","SIZES","VARIANTS","TONES"],"mappings":"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"}
1
+ {"version":3,"file":"ng-blatui.mjs","sources":["../../../projects/ng-blatui/src/lib/utils/cn.ts","../../../projects/ng-blatui/src/lib/button/button.ts","../../../projects/ng-blatui/src/lib/badge/badge.ts","../../../projects/ng-blatui/src/lib/label/label.ts","../../../projects/ng-blatui/src/lib/separator/separator.ts","../../../projects/ng-blatui/src/lib/skeleton/skeleton.ts","../../../projects/ng-blatui/src/lib/card/card.ts","../../../projects/ng-blatui/src/lib/alert/alert.ts","../../../projects/ng-blatui/src/lib/input/input.ts","../../../projects/ng-blatui/src/lib/textarea/textarea.ts","../../../projects/ng-blatui/src/lib/progress/progress.ts","../../../projects/ng-blatui/src/lib/avatar/avatar.ts","../../../projects/ng-blatui/src/lib/checkbox/checkbox.ts","../../../projects/ng-blatui/src/lib/switch/switch.ts","../../../projects/ng-blatui/src/lib/accordion/accordion.ts","../../../projects/ng-blatui/src/lib/tabs/tabs.ts","../../../projects/ng-blatui/src/lib/dialog/dialog.ts","../../../projects/ng-blatui/src/lib/theme/theme.ts","../../../projects/ng-blatui/src/lib/theme/theme-customizer.ts","../../../projects/ng-blatui/src/lib/radio-group/radio-group.ts","../../../projects/ng-blatui/src/lib/tooltip/tooltip.ts","../../../projects/ng-blatui/src/lib/breadcrumb/breadcrumb.ts","../../../projects/ng-blatui/src/lib/kbd/kbd.ts","../../../projects/ng-blatui/src/lib/aspect-ratio/aspect-ratio.ts","../../../projects/ng-blatui/src/lib/button-group/button-group.ts","../../../projects/ng-blatui/src/lib/empty/empty.ts","../../../projects/ng-blatui/src/lib/container/container.ts","../../../projects/ng-blatui/src/lib/field/field.ts","../../../projects/ng-blatui/src/lib/collapsible/collapsible.ts","../../../projects/ng-blatui/src/lib/toggle/toggle.ts","../../../projects/ng-blatui/src/lib/spinner/spinner.ts","../../../projects/ng-blatui/src/lib/copy-button/copy-button.ts","../../../projects/ng-blatui/src/lib/banner/banner.ts","../../../projects/ng-blatui/src/lib/table/table.ts","../../../projects/ng-blatui/src/lib/avatar-group/avatar-group.ts","../../../projects/ng-blatui/src/lib/pagination/pagination.ts","../../../projects/ng-blatui/src/lib/popover/popover.ts","../../../projects/ng-blatui/src/lib/item/item.ts","../../../projects/ng-blatui/src/lib/scroll-area/scroll-area.ts","../../../projects/ng-blatui/src/lib/input-group/input-group.ts","../../../projects/ng-blatui/src/lib/visually-hidden/visually-hidden.ts","../../../projects/ng-blatui/src/lib/meter/meter.ts","../../../projects/ng-blatui/src/lib/stat/stat.ts","../../../projects/ng-blatui/src/lib/hover-card/hover-card.ts","../../../projects/ng-blatui/src/lib/code-block/code-block.ts","../../../projects/ng-blatui/src/lib/slider/slider.ts","../../../projects/ng-blatui/src/lib/rating/rating.ts","../../../projects/ng-blatui/src/lib/quantity-selector/quantity-selector.ts","../../../projects/ng-blatui/src/lib/alert-dialog/alert-dialog.ts","../../../projects/ng-blatui/src/lib/autosize-textarea/autosize-textarea.ts","../../../projects/ng-blatui/src/lib/dropdown-menu/dropdown-menu.ts","../../../projects/ng-blatui/src/lib/menubar/menubar.ts","../../../projects/ng-blatui/src/lib/typography/typography.ts","../../../projects/ng-blatui/src/lib/dot-pattern/dot-pattern.ts","../../../projects/ng-blatui/src/lib/grid-pattern/grid-pattern.ts","../../../projects/ng-blatui/src/lib/segmented-control/segmented-control.ts","../../../projects/ng-blatui/src/lib/terminal/terminal.ts","../../../projects/ng-blatui/src/lib/comparison-table/comparison-table.ts","../../../projects/ng-blatui/src/lib/flip-card/flip-card.ts","../../../projects/ng-blatui/src/lib/spotlight-card/spotlight-card.ts","../../../projects/ng-blatui/src/lib/tilt-card/tilt-card.ts","../../../projects/ng-blatui/src/lib/select/select.ts","../../../projects/ng-blatui/src/lib/back-to-top/back-to-top.ts","../../../projects/ng-blatui/src/lib/combobox/combobox.ts","../../../projects/ng-blatui/src/lib/countdown/countdown.ts","../../../projects/ng-blatui/src/lib/number-ticker/number-ticker.ts","../../../projects/ng-blatui/src/lib/link/link.ts","../../../projects/ng-blatui/src/lib/gradient-text/gradient-text.ts","../../../projects/ng-blatui/src/lib/page-header/page-header.ts","../../../projects/ng-blatui/src/lib/quote/quote.ts","../../../projects/ng-blatui/src/lib/price/price.ts","../../../projects/ng-blatui/src/lib/stack/stack.ts","../../../projects/ng-blatui/src/lib/accent/accent.ts","../../../projects/ng-blatui/src/lib/kbd-group/kbd-group.ts","../../../projects/ng-blatui/src/lib/presence/presence.ts","../../../projects/ng-blatui/src/lib/timeline/timeline.ts","../../../projects/ng-blatui/src/lib/timeline/timeline-item.ts","../../../projects/ng-blatui/src/lib/description-list/description-list.ts","../../../projects/ng-blatui/src/lib/description-list/description-item.ts","../../../projects/ng-blatui/src/lib/masonry/masonry.ts","../../../projects/ng-blatui/src/lib/bento-grid/bento-grid.ts","../../../projects/ng-blatui/src/lib/bento-grid/bento-item.ts","../../../projects/ng-blatui/src/lib/gallery/gallery.ts","../../../projects/ng-blatui/src/lib/loading-overlay/loading-overlay.ts","../../../projects/ng-blatui/src/lib/number-input/number-input.ts","../../../projects/ng-blatui/src/lib/variant-selector/variant-selector.ts","../../../projects/ng-blatui/src/lib/sparkline/sparkline.ts","../../../projects/ng-blatui/src/lib/add-to-cart/add-to-cart.ts","../../../projects/ng-blatui/src/lib/password-strength/password-strength.ts","../../../projects/ng-blatui/src/lib/product-card/product-card.ts","../../../projects/ng-blatui/src/lib/typewriter/typewriter.ts","../../../projects/ng-blatui/src/lib/streaming-text/streaming-text.ts","../../../projects/ng-blatui/src/lib/border-beam/border-beam.ts","../../../projects/ng-blatui/src/lib/meteors/meteors.ts","../../../projects/ng-blatui/src/lib/aurora/aurora.ts","../../../projects/ng-blatui/src/lib/marquee/marquee.ts","../../../projects/ng-blatui/src/lib/bottom-navigation/bottom-navigation.ts","../../../projects/ng-blatui/src/lib/bottom-navigation/bottom-navigation-item.ts","../../../projects/ng-blatui/src/lib/text-reveal/text-reveal.ts","../../../projects/ng-blatui/src/lib/parallax/parallax.ts","../../../projects/ng-blatui/src/lib/scrollspy/scrollspy.ts","../../../projects/ng-blatui/src/lib/time-field/time-field.ts","../../../projects/ng-blatui/src/lib/toggle-group/toggle-group.ts","../../../projects/ng-blatui/src/lib/toggle-group/toggle-group-item.ts","../../../projects/ng-blatui/src/lib/tags-input/tags-input.ts","../../../projects/ng-blatui/src/lib/editable/editable.ts","../../../projects/ng-blatui/src/lib/speed-dial/speed-dial.ts","../../../projects/ng-blatui/src/lib/knob/knob.ts","../../../projects/ng-blatui/src/lib/image/image.ts","../../../projects/ng-blatui/src/lib/reasoning/reasoning.ts","../../../projects/ng-blatui/src/lib/tool-call/tool-call.ts","../../../projects/ng-blatui/src/lib/chat/chat.ts","../../../projects/ng-blatui/src/lib/chat/chat-message.ts","../../../projects/ng-blatui/src/lib/confetti/confetti.ts","../../../projects/ng-blatui/src/lib/stepper/stepper.ts","../../../projects/ng-blatui/src/lib/stepper/stepper-item.ts","../../../projects/ng-blatui/src/lib/input-otp/input-otp.ts","../../../projects/ng-blatui/src/lib/phone-input/phone-input.ts","../../../projects/ng-blatui/src/lib/prompt-input/prompt-input.ts","../../../projects/ng-blatui/src/lib/heatmap/heatmap.ts","../../../projects/ng-blatui/src/lib/citation/citation.ts","../../../projects/ng-blatui/src/lib/resizable/resizable-panel-group.ts","../../../projects/ng-blatui/src/lib/resizable/resizable-panel.ts","../../../projects/ng-blatui/src/lib/resizable/resizable-handle.ts","../../../projects/ng-blatui/src/lib/video/video.ts","../../../projects/ng-blatui/src/lib/color-picker/color-picker.ts","../../../projects/ng-blatui/src/lib/cookie-consent/cookie-consent.ts","../../../projects/ng-blatui/src/lib/infinite-scroll/infinite-scroll.ts","../../../projects/ng-blatui/src/lib/audio-player/audio-player.ts","../../../projects/ng-blatui/src/lib/signature-pad/signature-pad.ts","../../../projects/ng-blatui/src/lib/dock/dock.ts","../../../projects/ng-blatui/src/lib/dock/dock-item.ts","../../../projects/ng-blatui/src/lib/tree/tree-node.ts","../../../projects/ng-blatui/src/lib/tree/tree.ts","../../../projects/ng-blatui/src/lib/repeater/repeater.ts","../../../projects/ng-blatui/src/lib/notification-center/notification-center.ts","../../../projects/ng-blatui/src/lib/json-viewer/json-viewer-node.ts","../../../projects/ng-blatui/src/lib/json-viewer/json-viewer.ts","../../../projects/ng-blatui/src/lib/org-chart/org-chart-node.ts","../../../projects/ng-blatui/src/lib/org-chart/org-chart.ts","../../../projects/ng-blatui/src/lib/mini-cart/mini-cart.ts","../../../projects/ng-blatui/src/lib/animated-beam/animated-beam.ts","../../../projects/ng-blatui/src/lib/diff-viewer/diff-viewer.ts","../../../projects/ng-blatui/src/lib/tree-table/tree-table.ts","../../../projects/ng-blatui/src/lib/markdown-editor/markdown-editor.ts","../../../projects/ng-blatui/src/lib/calendar/calendar.ts","../../../projects/ng-blatui/src/lib/date-picker/date-picker.ts","../../../projects/ng-blatui/src/lib/carousel/carousel.ts","../../../projects/ng-blatui/src/lib/command/command.ts","../../../projects/ng-blatui/src/lib/context-menu/context-menu.ts","../../../projects/ng-blatui/src/lib/data-table/data-table.ts","../../../projects/ng-blatui/src/lib/chart/chart.ts","../../../projects/ng-blatui/src/lib/datetime-picker/datetime-picker.ts","../../../projects/ng-blatui/src/lib/autocomplete/autocomplete.ts","../../../projects/ng-blatui/src/lib/comparison-slider/comparison-slider.ts","../../../projects/ng-blatui/src/lib/file-upload/file-upload.ts","../../../projects/ng-blatui/src/lib/top-progress/top-progress.ts","../../../projects/ng-blatui/src/lib/drawer/drawer.ts","../../../projects/ng-blatui/src/lib/input-mask/input-mask.ts","../../../projects/ng-blatui/src/lib/sheet/sheet.ts","../../../projects/ng-blatui/src/lib/sonner/sonner.ts","../../../projects/ng-blatui/src/lib/navigation-menu/navigation-menu.ts","../../../projects/ng-blatui/src/lib/mention-input/mention-input.ts","../../../projects/ng-blatui/src/lib/map/map.ts","../../../projects/ng-blatui/src/lib/gantt/gantt.ts","../../../projects/ng-blatui/src/lib/scheduler/scheduler.ts","../../../projects/ng-blatui/src/lib/kanban/kanban.ts","../../../projects/ng-blatui/src/lib/rich-text-editor/rich-text-editor.ts","../../../projects/ng-blatui/src/lib/sidebar/sidebar.ts","../../../projects/ng-blatui/src/lib/onboarding-tour/onboarding-tour.ts","../../../projects/ng-blatui/src/lib/qr-code/qr-encode.ts","../../../projects/ng-blatui/src/lib/qr-code/qr-code.ts","../../../projects/ng-blatui/src/public-api.ts","../../../projects/ng-blatui/src/ng-blatui.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merge class names with `clsx` semantics and resolve Tailwind conflicts with\n * `tailwind-merge`. The single utility every ng-blatui component uses to combine\n * its variant classes with consumer-provided ones.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n\nexport { type ClassValue } from 'clsx';\n","import { computed, Directive, input } from '@angular/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport const buttonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n xs: 'h-7 gap-1 rounded-md px-2.5 text-xs has-[>svg]:px-2 [&_svg:not([class*=size-])]:size-3.5',\n sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': 'size-7 [&_svg:not([class*=size-])]:size-3.5',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\n/**\n * Applies BlatUI button styling to a native `<button>` or `<a>`, keeping native\n * semantics, focus and keyboard behavior (accessibility for free).\n */\n@Directive({\n selector: 'button[buiButton], a[buiButton]',\n host: {\n 'data-slot': 'button',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiButton {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BASE =\n 'inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden';\n\nconst SIZES = {\n sm: 'px-1.5 py-px text-[0.625rem]',\n default: 'px-2 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm [&>svg]:size-3.5',\n} as const;\n\nconst VARIANTS = {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n} as const;\n\nconst TONES = {\n success: {\n soft: 'border-transparent bg-success/10 text-success dark:bg-success/15',\n solid: 'border-transparent bg-success text-success-foreground',\n outline: 'text-success border-success/40',\n },\n warning: {\n soft: 'border-transparent bg-warning/10 text-warning dark:bg-warning/15',\n solid: 'border-transparent bg-warning text-warning-foreground',\n outline: 'text-warning border-warning/40',\n },\n danger: {\n soft: 'border-transparent bg-destructive/10 text-destructive dark:bg-destructive/15',\n solid: 'border-transparent bg-destructive text-destructive-foreground',\n outline: 'text-destructive border-destructive/40',\n },\n info: {\n soft: 'border-transparent bg-info/10 text-info dark:bg-info/15',\n solid: 'border-transparent bg-info text-info-foreground',\n outline: 'text-info border-info/40',\n },\n neutral: {\n soft: 'border-transparent bg-muted text-muted-foreground',\n solid: 'border-transparent bg-foreground/85 text-background',\n outline: 'text-muted-foreground border-border',\n },\n} as const;\n\nexport type BadgeSize = keyof typeof SIZES;\nexport type BadgeVariant = keyof typeof VARIANTS | 'soft' | 'solid';\nexport type BadgeTone = keyof typeof TONES;\nexport type BadgeIntensity = keyof (typeof TONES)['success'];\n\nfunction brandClass(variant: BadgeVariant): string {\n switch (variant) {\n case 'secondary': {\n return VARIANTS.secondary;\n }\n case 'destructive': {\n return VARIANTS.destructive;\n }\n case 'outline': {\n return VARIANTS.outline;\n }\n default: {\n return VARIANTS.default;\n }\n }\n}\n\nfunction intensityFor(variant: BadgeVariant): BadgeIntensity {\n return variant === 'solid' || variant === 'outline' ? variant : 'soft';\n}\n\n/**\n * BlatUI badge. Brand variants (`default | secondary | destructive | outline`)\n * or semantic `tone` (`success | warning | danger | info | neutral`) where\n * `variant` then selects intensity (`soft | solid | outline`). Built on a native\n * element so it stays in the document flow and screen-reader friendly.\n */\n@Directive({\n selector: '[buiBadge]',\n host: {\n 'data-slot': 'badge',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiBadge {\n readonly variant = input<BadgeVariant>('default');\n readonly tone = input<BadgeTone | null>(null);\n readonly size = input<BadgeSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => {\n const tone = this.tone();\n const toneOrVariant =\n tone === null ? brandClass(this.variant()) : TONES[tone][intensityFor(this.variant())];\n return cn(BASE, SIZES[this.size()], toneOrVariant, this.userClass());\n });\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI label. Apply to a native `<label>` (use `for`/`id` to associate it with\n * a control) so the click-to-focus and screen-reader association work natively.\n */\n@Directive({\n selector: 'label[buiLabel]',\n host: {\n 'data-slot': 'label',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiLabel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport type SeparatorOrientation = 'horizontal' | 'vertical';\n\n/**\n * BlatUI separator. `decorative` (default) renders `role=\"none\"`; set\n * `[decorative]=\"false\"` for a semantic `role=\"separator\"` with `aria-orientation`.\n */\n@Directive({\n selector: '[buiSeparator]',\n host: {\n 'data-slot': 'separator',\n '[attr.role]': \"decorative() ? 'none' : 'separator'\",\n '[attr.aria-orientation]': 'decorative() ? null : orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiSeparator {\n readonly orientation = input<SeparatorOrientation>('horizontal');\n readonly decorative = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI skeleton placeholder. Marked `aria-hidden` so assistive tech ignores the\n * shimmering placeholder; announce real loading state separately (e.g. aria-busy).\n */\n@Directive({\n selector: '[buiSkeleton]',\n host: {\n 'data-slot': 'skeleton',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiSkeleton {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('animate-pulse rounded-md bg-accent', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst CARD_VARIANTS = {\n // Simple padded box — the dominant use case.\n default: 'bg-card text-card-foreground rounded-xl border p-6 shadow-sm',\n // Sectioned layout for card-header / card-content / card-footer (each supplies its own px-6).\n sectioned: 'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\n/** BlatUI card container. Use `variant=\"sectioned\"` with the header/content/footer parts. */\n@Directive({\n selector: '[buiCard]',\n host: { 'data-slot': 'card', '[class]': 'computedClass()' },\n})\nexport class BuiCard {\n readonly variant = input<CardVariant>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(CARD_VARIANTS[this.variant()], this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardHeader]',\n host: { 'data-slot': 'card-header', '[class]': 'computedClass()' },\n})\nexport class BuiCardHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiCardTitle]',\n host: { 'data-slot': 'card-title', '[class]': 'computedClass()' },\n})\nexport class BuiCardTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('leading-none font-semibold', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardDescription]',\n host: { 'data-slot': 'card-description', '[class]': 'computedClass()' },\n})\nexport class BuiCardDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardAction]',\n host: { 'data-slot': 'card-action', '[class]': 'computedClass()' },\n})\nexport class BuiCardAction {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiCardContent]',\n host: { 'data-slot': 'card-content', '[class]': 'computedClass()' },\n})\nexport class BuiCardContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => cn('px-6', this.userClass()));\n}\n\n@Directive({\n selector: '[buiCardFooter]',\n host: { 'data-slot': 'card-footer', '[class]': 'computedClass()' },\n})\nexport class BuiCardFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('flex items-center px-6 [.border-t]:pt-6', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst ALERT_BASE =\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current';\n\nconst ALERT_VARIANTS = {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive',\n} as const;\n\nconst ALERT_TONES = {\n success:\n 'border-success/20 bg-success/10 text-success [&>svg]:text-success *:data-[slot=alert-description]:text-success',\n warning:\n 'border-warning/20 bg-warning/10 text-warning [&>svg]:text-warning *:data-[slot=alert-description]:text-warning',\n danger:\n 'border-destructive/20 bg-destructive/10 text-destructive [&>svg]:text-destructive *:data-[slot=alert-description]:text-destructive',\n info: 'border-info/20 bg-info/10 text-info [&>svg]:text-info *:data-[slot=alert-description]:text-info',\n neutral:\n 'border-border bg-muted text-foreground [&>svg]:text-foreground *:data-[slot=alert-description]:text-muted-foreground',\n} as const;\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS;\nexport type AlertTone = keyof typeof ALERT_TONES;\n\n/**\n * BlatUI alert. `role=\"alert\"` for assistive tech. Brand `variant`\n * (`default | destructive`) or semantic `tone` (`success | warning | danger | info | neutral`).\n */\n@Directive({\n selector: '[buiAlert]',\n host: { 'data-slot': 'alert', role: 'alert', '[class]': 'computedClass()' },\n})\nexport class BuiAlert {\n readonly variant = input<AlertVariant>('default');\n readonly tone = input<AlertTone | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => {\n const tone = this.tone();\n const toneOrVariant = tone === null ? ALERT_VARIANTS[this.variant()] : ALERT_TONES[tone];\n return cn(ALERT_BASE, toneOrVariant, this.userClass());\n });\n}\n\n@Directive({\n selector: '[buiAlertTitle]',\n host: { 'data-slot': 'alert-title', '[class]': 'computedClass()' },\n})\nexport class BuiAlertTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDescription]',\n host: { 'data-slot': 'alert-description', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst INPUT_BASE =\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex w-full min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive';\n\nconst INPUT_SIZES = {\n sm: 'h-8 px-2.5 py-1 text-sm file:h-6 file:text-xs',\n default: 'h-9 px-3 py-1 text-base md:text-sm file:h-7 file:text-sm',\n lg: 'h-10 px-4 py-2 text-base file:h-8 file:text-sm',\n} as const;\n\nexport type InputSize = keyof typeof INPUT_SIZES;\n\n/** Applies BlatUI input styling to a native `<input>` (keeps native validation & a11y). */\n@Directive({\n selector: 'input[buiInput]',\n host: {\n 'data-slot': 'input',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiInput {\n readonly size = input<InputSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(INPUT_BASE, INPUT_SIZES[this.size()], this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TEXTAREA_BASE =\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content w-full rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\nconst TEXTAREA_SIZES = {\n sm: 'min-h-14 px-2.5 py-1.5 text-sm',\n default: 'min-h-16 px-3 py-2 text-base md:text-sm',\n lg: 'min-h-20 px-4 py-2.5 text-base',\n} as const;\n\nexport type TextareaSize = keyof typeof TEXTAREA_SIZES;\n\n/** Applies BlatUI textarea styling to a native `<textarea>` (auto-grows via field-sizing). */\n@Directive({\n selector: 'textarea[buiTextarea]',\n host: {\n 'data-slot': 'textarea',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTextarea {\n readonly size = input<TextareaSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(TEXTAREA_BASE, TEXTAREA_SIZES[this.size()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI linear progress bar. Exposes the full `progressbar` ARIA contract\n * (valuemin/max/now/text). Set `[indeterminate]=\"true\"` for an unknown-duration bar.\n */\n@Component({\n selector: 'bui-progress',\n host: {\n 'data-slot': 'progress',\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-valuenow]': 'indeterminate() ? null : rounded()',\n '[attr.aria-valuetext]': 'indeterminate() ? null : valueText()',\n '[class]': 'computedClass()',\n },\n template: `\n @if (indeterminate()) {\n <span\n data-slot=\"progress-indicator\"\n class=\"absolute inset-y-0 w-2/5 animate-progress-indeterminate rounded-full bg-primary\"\n ></span>\n } @else {\n <span\n data-slot=\"progress-indicator\"\n class=\"block h-full w-full rounded-full bg-primary transition-all\"\n [style.transform]=\"indicatorTransform()\"\n ></span>\n }\n `,\n})\nexport class BuiProgress {\n readonly value = input(0);\n readonly indeterminate = input(false);\n readonly ariaLabel = input('Progress');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly pct = computed(() => Math.max(0, Math.min(100, this.value())));\n protected readonly rounded = computed(() => Math.round(this.pct()));\n protected readonly valueText = computed(() => `${this.rounded()}%`);\n protected readonly indicatorTransform = computed(() => `translateX(-${100 - this.pct()}%)`);\n protected readonly computedClass = computed(() =>\n cn('relative block h-2 w-full overflow-hidden rounded-full bg-primary/20', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI avatar. Renders the image when `src` is set and loads; otherwise shows\n * the projected fallback (initials, icon). Falls back automatically on load error.\n */\n@Component({\n selector: 'bui-avatar',\n host: {\n 'data-slot': 'avatar',\n '[class]': 'computedClass()',\n },\n template: `\n @if (src() && !error()) {\n <img\n data-slot=\"avatar-image\"\n class=\"aspect-square size-full\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n (error)=\"error.set(true)\"\n />\n } @else {\n <span\n data-slot=\"avatar-fallback\"\n class=\"flex size-full items-center justify-center rounded-full bg-muted text-sm\"\n >\n <ng-content />\n </span>\n }\n `,\n})\nexport class BuiAvatar {\n readonly src = input<string | null>(null);\n readonly alt = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly error = signal(false);\n protected readonly computedClass = computed(() =>\n cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', this.userClass()),\n );\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst CHECKBOX_BASE =\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 flex items-center justify-center';\n\n/**\n * BlatUI checkbox. A native `<button role=\"checkbox\">` (Space/Enter toggle for free)\n * with `[(checked)]` two-way binding and tri-state `[(indeterminate)]`.\n */\n@Component({\n selector: 'button[buiCheckbox]',\n host: {\n type: 'button',\n role: 'checkbox',\n 'data-slot': 'checkbox',\n '[attr.aria-checked]': 'ariaChecked()',\n '[attr.data-state]': 'state()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `\n @if (checked() || indeterminate()) {\n <span data-slot=\"checkbox-indicator\" class=\"flex items-center justify-center text-current\">\n @if (indeterminate()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n }\n </span>\n }\n `,\n})\nexport class BuiCheckbox {\n readonly checked = model(false);\n readonly indeterminate = model(false);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly state = computed(() => {\n if (this.indeterminate()) {\n return 'indeterminate';\n }\n return this.checked() ? 'checked' : 'unchecked';\n });\n protected readonly ariaChecked = computed(() =>\n this.indeterminate() ? 'mixed' : String(this.checked()),\n );\n protected readonly computedClass = computed(() => cn(CHECKBOX_BASE, this.userClass()));\n\n protected toggle(): void {\n if (this.disabled()) {\n return;\n }\n if (this.indeterminate()) {\n this.indeterminate.set(false);\n this.checked.set(true);\n } else {\n this.checked.update((value) => !value);\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SWITCH_BASE =\n 'peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\nconst SWITCH_TRACK = {\n sm: 'h-4 w-7',\n default: 'h-[1.15rem] w-8',\n lg: 'h-6 w-10',\n} as const;\n\nconst SWITCH_THUMB = {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n} as const;\n\nconst THUMB_BASE =\n 'bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0';\n\nexport type SwitchSize = keyof typeof SWITCH_TRACK;\n\n/**\n * BlatUI switch. A native `<button role=\"switch\">` with `[(checked)]` two-way\n * binding; keyboard activation (Space/Enter) and focus come from the native button.\n */\n@Component({\n selector: 'button[buiSwitch]',\n host: {\n type: 'button',\n role: 'switch',\n 'data-slot': 'switch',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': 'state()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `\n <span data-slot=\"switch-thumb\" [attr.data-state]=\"state()\" [class]=\"thumbClass()\"></span>\n `,\n})\nexport class BuiSwitch {\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly size = input<SwitchSize>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly state = computed(() => (this.checked() ? 'checked' : 'unchecked'));\n protected readonly computedClass = computed(() =>\n cn(SWITCH_BASE, SWITCH_TRACK[this.size()], this.userClass()),\n );\n protected readonly thumbClass = computed(() => cn(THUMB_BASE, SWITCH_THUMB[this.size()]));\n\n protected toggle(): void {\n if (this.disabled()) {\n return;\n }\n this.checked.update((value) => !value);\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Behaviour + accessibility come from Angular Aria's accordion directives\n * (`ngAccordionGroup` / `ngAccordionTrigger` / `ngAccordionPanel` / `ngAccordionContent`):\n * they own `aria-expanded`, `aria-controls`, roving focus and keyboard navigation.\n * The `bui*` directives below only add BlatUI styling, so you compose both:\n *\n * ```html\n * <div ngAccordionGroup buiAccordion [multiExpandable]=\"false\">\n * <div buiAccordionItem>\n * <h3 class=\"flex\">\n * <button ngAccordionTrigger buiAccordionTrigger [panel]=\"p1\">Title <svg>…</svg></button>\n * </h3>\n * <div ngAccordionPanel #p1=\"ngAccordionPanel\" buiAccordionContent>\n * <ng-template ngAccordionContent><div class=\"pb-4\">Content</div></ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n */\nexport {\n AccordionContent,\n AccordionGroup,\n AccordionPanel,\n AccordionTrigger,\n // Re-exported so consumers importing the accordion from `ng-blatui` can resolve the\n // deferred-content symbols the Aria directives reference internally.\n ɵɵDeferredContent,\n ɵɵDeferredContentAware,\n} from '@angular/aria/accordion';\n\nconst TRIGGER =\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&>svg]:text-muted-foreground [&>svg]:pointer-events-none [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5 [&>svg]:transition-transform [&>svg]:duration-200 [&[aria-expanded=true]>svg]:rotate-180';\n\n@Directive({\n selector: '[buiAccordion]',\n host: { 'data-slot': 'accordion', '[class]': 'computedClass()' },\n})\nexport class BuiAccordion {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('w-full', this.userClass()));\n}\n\n@Directive({\n selector: '[buiAccordionItem]',\n host: { 'data-slot': 'accordion-item', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('border-b last:border-b-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'button[buiAccordionTrigger]',\n host: { 'data-slot': 'accordion-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(TRIGGER, this.userClass()));\n}\n\n@Directive({\n selector: '[buiAccordionContent]',\n host: { 'data-slot': 'accordion-content', '[class]': 'computedClass()' },\n})\nexport class BuiAccordionContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('overflow-hidden text-sm', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Behaviour + accessibility come from Angular Aria's tabs directives\n * (`ngTabs` / `ngTabList` / `ngTab` / `ngTabPanel` / `ngTabContent`): roles,\n * `aria-selected`, roving tabindex and arrow-key navigation. The `bui*` directives\n * add BlatUI's segmented styling (selected state keys off `aria-selected`):\n *\n * ```html\n * <div ngTabs buiTabs>\n * <div ngTabList buiTabList selectedTab=\"a\">\n * <div ngTab value=\"a\" buiTabTrigger>Account</div>\n * <div ngTab value=\"b\" buiTabTrigger>Password</div>\n * </div>\n * <div ngTabPanel value=\"a\" buiTabPanel><ng-template ngTabContent>…</ng-template></div>\n * <div ngTabPanel value=\"b\" buiTabPanel><ng-template ngTabContent>…</ng-template></div>\n * </div>\n * ```\n */\nexport { Tab, TabContent, TabList, TabPanel, Tabs } from '@angular/aria/tabs';\n\nconst TAB_TRIGGER =\n 'text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 cursor-default items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-selected:bg-background aria-selected:shadow-sm dark:aria-selected:text-foreground dark:aria-selected:border-input dark:aria-selected:bg-input/30';\n\n@Directive({\n selector: '[buiTabs]',\n host: { 'data-slot': 'tabs', '[class]': 'computedClass()' },\n})\nexport class BuiTabs {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('flex flex-col gap-2', this.userClass()));\n}\n\n@Directive({\n selector: '[buiTabList]',\n host: { 'data-slot': 'tabs-list', '[class]': 'computedClass()' },\n})\nexport class BuiTabList {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiTabTrigger]',\n host: { 'data-slot': 'tabs-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiTabTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(TAB_TRIGGER, this.userClass()));\n}\n\n@Directive({\n selector: '[buiTabPanel]',\n host: { 'data-slot': 'tabs-content', '[class]': 'computedClass()' },\n})\nexport class BuiTabPanel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('flex-1 outline-none', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Overlay, backdrop, focus-trap, scroll-block, Escape-to-close, `role=\"dialog\"`\n * and `aria-modal` all come from Angular CDK's `Dialog` service (re-exported below).\n * Open a `TemplateRef`/component whose root carries `buiDialogContent`:\n *\n * ```ts\n * private dialog = inject(Dialog);\n * open(tpl: TemplateRef<unknown>) { this.dialog.open(tpl); }\n * ```\n */\nexport { Dialog, DialogRef, DialogModule, DIALOG_DATA } from '@angular/cdk/dialog';\n\nconst DIALOG_CONTENT =\n 'bg-background relative grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg sm:max-w-lg';\n\n@Directive({\n selector: '[buiDialogContent]',\n host: { 'data-slot': 'dialog-content', '[class]': 'computedClass()' },\n})\nexport class BuiDialogContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(DIALOG_CONTENT, this.userClass()));\n}\n\n@Directive({\n selector: '[buiDialogHeader]',\n host: { 'data-slot': 'dialog-header', '[class]': 'computedClass()' },\n})\nexport class BuiDialogHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-2 text-center sm:text-left', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogTitle]',\n host: { 'data-slot': 'dialog-title', '[class]': 'computedClass()' },\n})\nexport class BuiDialogTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-lg leading-none font-semibold', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogDescription]',\n host: { 'data-slot': 'dialog-description', '[class]': 'computedClass()' },\n})\nexport class BuiDialogDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDialogFooter]',\n host: { 'data-slot': 'dialog-footer', '[class]': 'computedClass()' },\n})\nexport class BuiDialogFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.userClass()),\n );\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { computed, effect, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\n/** Every token the `@theme inline` mapping references — emitted into `:root` on export. */\nexport const THEME_TOKENS = [\n '--radius',\n '--spacing',\n '--tracking-normal',\n '--font-sans',\n '--font-serif',\n '--font-mono',\n '--shadow-2xs',\n '--shadow-xs',\n '--shadow-sm',\n '--shadow',\n '--shadow-md',\n '--shadow-lg',\n '--shadow-xl',\n '--shadow-2xl',\n '--background',\n '--foreground',\n '--card',\n '--card-foreground',\n '--popover',\n '--popover-foreground',\n '--primary',\n '--primary-foreground',\n '--secondary',\n '--secondary-foreground',\n '--muted',\n '--muted-foreground',\n '--accent',\n '--accent-foreground',\n '--destructive',\n '--destructive-foreground',\n '--border',\n '--input',\n '--ring',\n '--chart-1',\n '--chart-2',\n '--chart-3',\n '--chart-4',\n '--chart-5',\n '--sidebar',\n '--sidebar-foreground',\n '--sidebar-primary',\n '--sidebar-primary-foreground',\n '--sidebar-accent',\n '--sidebar-accent-foreground',\n '--sidebar-border',\n '--sidebar-ring',\n] as const;\n\nconst THEME_SCAFFOLD = `@import 'tailwindcss';\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n --font-sans: var(--font-sans);\n --font-serif: var(--font-serif);\n --font-mono: var(--font-mono);\n\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n\n --spacing: var(--spacing);\n\n --tracking-tighter: calc(var(--tracking-normal) - 0.05em);\n --tracking-tight: calc(var(--tracking-normal) - 0.025em);\n --tracking-normal: var(--tracking-normal);\n --tracking-wide: calc(var(--tracking-normal) + 0.025em);\n --tracking-wider: calc(var(--tracking-normal) + 0.05em);\n --tracking-widest: calc(var(--tracking-normal) + 0.1em);\n\n --shadow-2xs: var(--shadow-2xs);\n --shadow-xs: var(--shadow-xs);\n --shadow-sm: var(--shadow-sm);\n --shadow: var(--shadow);\n --shadow-md: var(--shadow-md);\n --shadow-lg: var(--shadow-lg);\n --shadow-xl: var(--shadow-xl);\n --shadow-2xl: var(--shadow-2xl);\n\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}`;\n\ninterface ThemeState {\n mode: ThemeMode;\n base: string;\n preset: string;\n radius: string;\n font: string;\n fontHeading: string;\n shadow: string;\n spacing: string;\n tracking: string;\n inputStyle: string;\n}\n\nconst DEFAULTS: ThemeState = {\n mode: 'light',\n base: 'neutral',\n preset: 'default',\n radius: '0.625',\n font: 'sans',\n fontHeading: 'sans',\n shadow: 'default',\n spacing: 'default',\n tracking: 'normal',\n inputStyle: 'outline',\n};\n\n/**\n * Live theme engine (the brain behind `<bui-theme-customizer>`). Mirrors BlatUI:\n * every dimension just toggles a `data-*` attribute / the `.dark` class on `<html>`,\n * and `blatui.css` holds all the token values. `exportCss()` serialises the active\n * theme to a paste-ready stylesheet. SSR-safe and persisted to localStorage.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemeStore {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n readonly mode = signal<ThemeMode>(DEFAULTS.mode);\n readonly base = signal(DEFAULTS.base);\n readonly preset = signal(DEFAULTS.preset);\n readonly radius = signal(DEFAULTS.radius);\n readonly font = signal(DEFAULTS.font);\n readonly fontHeading = signal(DEFAULTS.fontHeading);\n readonly shadow = signal(DEFAULTS.shadow);\n readonly spacing = signal(DEFAULTS.spacing);\n readonly tracking = signal(DEFAULTS.tracking);\n readonly inputStyle = signal(DEFAULTS.inputStyle);\n\n private readonly systemDark = signal(false);\n readonly isDark = computed(\n () => this.mode() === 'dark' || (this.mode() === 'system' && this.systemDark()),\n );\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n this.load();\n const mql =\n typeof globalThis.matchMedia === 'function'\n ? globalThis.matchMedia('(prefers-color-scheme: dark)')\n : null;\n if (mql) {\n this.systemDark.set(mql.matches);\n mql.addEventListener('change', (event) => {\n this.systemDark.set(event.matches);\n });\n }\n effect(() => {\n this.apply();\n });\n }\n\n setMode(value: ThemeMode): void {\n this.mode.set(value);\n }\n setBase(value: string): void {\n this.base.set(value);\n }\n setPreset(value: string): void {\n this.preset.set(value);\n }\n setRadius(value: string): void {\n this.radius.set(value);\n }\n setFont(value: string): void {\n this.font.set(value);\n }\n setFontHeading(value: string): void {\n this.fontHeading.set(value);\n }\n setShadow(value: string): void {\n this.shadow.set(value);\n }\n setSpacing(value: string): void {\n this.spacing.set(value);\n }\n setTracking(value: string): void {\n this.tracking.set(value);\n }\n setInputStyle(value: string): void {\n this.inputStyle.set(value);\n }\n\n toggle(): void {\n this.setMode(this.isDark() ? 'light' : 'dark');\n }\n\n reset(): void {\n this.mode.set(DEFAULTS.mode);\n this.base.set(DEFAULTS.base);\n this.preset.set(DEFAULTS.preset);\n this.radius.set(DEFAULTS.radius);\n this.font.set(DEFAULTS.font);\n this.fontHeading.set(DEFAULTS.fontHeading);\n this.shadow.set(DEFAULTS.shadow);\n this.spacing.set(DEFAULTS.spacing);\n this.tracking.set(DEFAULTS.tracking);\n this.inputStyle.set(DEFAULTS.inputStyle);\n }\n\n /** Serialise the active theme to a complete, paste-ready stylesheet. */\n exportCss(): string {\n if (!this.isBrowser) {\n return '';\n }\n const root = document.documentElement;\n const wasDark = root.classList.contains('dark');\n root.classList.remove('dark');\n const light = this.readTokens();\n root.classList.add('dark');\n const dark = this.readTokens();\n root.classList.toggle('dark', wasDark);\n\n const block = (source: Record<string, string>, keys: readonly string[]): string =>\n keys\n .filter((token) => source[token])\n .map((token) => ` ${token}: ${source[token] ?? ''};`)\n .join('\\n');\n const darkKeys = THEME_TOKENS.filter((token) => dark[token] && dark[token] !== light[token]);\n return `${THEME_SCAFFOLD}\\n\\n:root {\\n${block(light, THEME_TOKENS)}\\n}\\n\\n.dark {\\n${block(dark, darkKeys)}\\n}\\n`;\n }\n\n private readTokens(): Record<string, string> {\n const cs = getComputedStyle(document.documentElement);\n const out: Record<string, string> = {};\n for (const token of THEME_TOKENS) {\n out[token] = cs.getPropertyValue(token).trim();\n }\n return out;\n }\n\n private load(): void {\n const read = (key: string, fallback: string): string =>\n localStorage.getItem(`theme:${key}`) ?? fallback;\n this.mode.set(read('mode', DEFAULTS.mode) as ThemeMode);\n this.base.set(read('base', DEFAULTS.base));\n this.preset.set(read('preset', DEFAULTS.preset));\n this.radius.set(read('radius', DEFAULTS.radius));\n this.font.set(read('font', DEFAULTS.font));\n this.fontHeading.set(read('fontHeading', DEFAULTS.fontHeading));\n this.shadow.set(read('shadow', DEFAULTS.shadow));\n this.spacing.set(read('spacing', DEFAULTS.spacing));\n this.tracking.set(read('tracking', DEFAULTS.tracking));\n this.inputStyle.set(read('inputStyle', DEFAULTS.inputStyle));\n }\n\n private apply(): void {\n const root = document.documentElement;\n const state: ThemeState = {\n mode: this.mode(),\n base: this.base(),\n preset: this.preset(),\n radius: this.radius(),\n font: this.font(),\n fontHeading: this.fontHeading(),\n shadow: this.shadow(),\n spacing: this.spacing(),\n tracking: this.tracking(),\n inputStyle: this.inputStyle(),\n };\n root.classList.toggle('dark', this.isDark());\n this.attr(root, 'data-base', state.base, DEFAULTS.base);\n this.attr(root, 'data-theme', state.preset, DEFAULTS.preset);\n this.attr(root, 'data-font', state.font, DEFAULTS.font);\n this.attr(root, 'data-font-heading', state.fontHeading, DEFAULTS.fontHeading);\n this.attr(root, 'data-shadow', state.shadow, DEFAULTS.shadow);\n this.attr(root, 'data-spacing', state.spacing, DEFAULTS.spacing);\n this.attr(root, 'data-tracking', state.tracking, DEFAULTS.tracking);\n this.attr(root, 'data-input-style', state.inputStyle, DEFAULTS.inputStyle);\n root.setAttribute('data-radius', state.radius);\n\n for (const [key, value] of Object.entries(state) as [string, string][]) {\n localStorage.setItem(`theme:${key}`, value);\n }\n }\n\n private attr(root: HTMLElement, name: string, value: string, fallback: string): void {\n if (value && value !== fallback) {\n root.setAttribute(name, value);\n } else {\n root.removeAttribute(name);\n }\n }\n}\n","import { Component, computed, inject, signal } from '@angular/core';\n\nimport { BuiButton } from '../button/button';\n\nimport { type ThemeMode, ThemeStore } from './theme';\n\ninterface Option<T extends string = string> {\n readonly value: T;\n readonly label: string;\n}\ninterface Swatch {\n readonly value: string;\n readonly color: string;\n}\ninterface FontOption {\n readonly value: string;\n readonly label: string;\n readonly family: string;\n}\n\nconst FONTS: readonly FontOption[] = [\n { value: 'sans', label: 'Default', family: \"'Instrument Sans', sans-serif\" },\n { value: 'inter', label: 'Inter', family: \"'Inter', sans-serif\" },\n { value: 'geist', label: 'Geist', family: \"'Geist', sans-serif\" },\n { value: 'manrope', label: 'Manrope', family: \"'Manrope', sans-serif\" },\n { value: 'jakarta', label: 'Jakarta', family: \"'Plus Jakarta Sans', sans-serif\" },\n { value: 'space-grotesk', label: 'Grotesk', family: \"'Space Grotesk', sans-serif\" },\n { value: 'dm-sans', label: 'DM Sans', family: \"'DM Sans', sans-serif\" },\n { value: 'outfit', label: 'Outfit', family: \"'Outfit', sans-serif\" },\n { value: 'sora', label: 'Sora', family: \"'Sora', sans-serif\" },\n { value: 'system', label: 'System', family: 'system-ui, sans-serif' },\n { value: 'serif', label: 'Serif', family: 'ui-serif, Georgia, serif' },\n { value: 'mono', label: 'Mono', family: 'ui-monospace, monospace' },\n];\n\n/**\n * BlatUI's \"Customize\" toolbar, ported to Angular. Tunes every theme dimension\n * live (mode, base, accent, radius, input style, fonts, shadow, spacing, tracking)\n * through {@link ThemeStore}, then exports a paste-ready stylesheet via \"Copy CSS\".\n */\n@Component({\n selector: 'bui-theme-customizer',\n imports: [BuiButton],\n host: { 'data-slot': 'theme-customizer' },\n template: `\n <button\n buiButton\n variant=\"outline\"\n size=\"sm\"\n class=\"fixed right-4 bottom-4 z-50 shadow-md\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n {{ open() ? 'Close' : 'Customize' }}\n </button>\n\n @if (open()) {\n <div\n role=\"dialog\"\n aria-label=\"Theme customizer\"\n class=\"fixed right-4 bottom-16 z-50 max-h-[80vh] w-[340px] space-y-5 overflow-y-auto rounded-lg border bg-popover p-4 text-popover-foreground shadow-lg\"\n >\n <div class=\"flex items-center justify-between\">\n <div>\n <h4 class=\"text-sm font-semibold\">Customize</h4>\n <p class=\"text-xs text-muted-foreground\">\n Tune it live. Every preset is pure CSS variables.\n </p>\n </div>\n <button buiButton variant=\"ghost\" size=\"sm\" (click)=\"theme.reset()\">Reset</button>\n </div>\n\n <!-- Mode -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Mode</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (m of modes; track m.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.mode() === m.value\"\n (click)=\"theme.setMode(m.value)\"\n >\n {{ m.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Base color -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Base color</span>\n <div class=\"grid grid-cols-9 gap-2\">\n @for (b of bases; track b.value) {\n <button\n type=\"button\"\n class=\"flex h-8 items-center justify-center rounded-md border border-input ring-offset-2 ring-offset-background transition-all data-[active=true]:ring-2 data-[active=true]:ring-ring\"\n [style.background]=\"b.color\"\n [attr.data-active]=\"theme.base() === b.value\"\n (click)=\"theme.setBase(b.value)\"\n >\n <span class=\"sr-only\">{{ b.value }}</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Accent -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Accent</span>\n <div class=\"grid grid-cols-6 gap-2\">\n @for (a of accents; track a.value) {\n <button\n type=\"button\"\n class=\"flex h-8 items-center justify-center rounded-md border border-input ring-offset-2 ring-offset-background transition-all data-[active=true]:ring-2 data-[active=true]:ring-ring\"\n [style.background]=\"a.color\"\n [attr.data-active]=\"theme.preset() === a.value\"\n (click)=\"theme.setPreset(a.value)\"\n >\n <span class=\"sr-only\">{{ a.value }}</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Radius -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Radius</span>\n <div class=\"grid grid-cols-6 gap-2\">\n @for (r of radii; track r) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.radius() === r\"\n (click)=\"theme.setRadius(r)\"\n >\n {{ r }}\n </button>\n }\n </div>\n </div>\n\n <!-- Input style -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Input style</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (i of inputStyles; track i.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.inputStyle() === i.value\"\n (click)=\"theme.setInputStyle(i.value)\"\n >\n {{ i.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Body font -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Body font</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (f of fonts; track f.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [style.fontFamily]=\"f.family\"\n [attr.data-active]=\"theme.font() === f.value\"\n (click)=\"theme.setFont(f.value)\"\n >\n {{ f.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Heading font -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Heading font</span>\n <div class=\"grid grid-cols-3 gap-2\">\n @for (f of fonts; track f.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [style.fontFamily]=\"f.family\"\n [attr.data-active]=\"theme.fontHeading() === f.value\"\n (click)=\"theme.setFontHeading(f.value)\"\n >\n {{ f.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Shadow -->\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Shadow</span>\n <div class=\"grid grid-cols-5 gap-2\">\n @for (s of shadows; track s.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.shadow() === s.value\"\n (click)=\"theme.setShadow(s.value)\"\n >\n {{ s.label }}\n </button>\n }\n </div>\n </div>\n\n <!-- Spacing + Tracking -->\n <div class=\"grid grid-cols-2 gap-4\">\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Spacing</span>\n <div class=\"grid grid-cols-3 gap-1.5\">\n @for (s of spacings; track s.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.spacing() === s.value\"\n (click)=\"theme.setSpacing(s.value)\"\n >\n {{ s.label }}\n </button>\n }\n </div>\n </div>\n <div class=\"space-y-1.5\">\n <span class=\"text-xs font-medium\">Tracking</span>\n <div class=\"grid grid-cols-3 gap-1.5\">\n @for (t of trackings; track t.value) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center justify-center rounded-md border border-input text-xs font-medium transition-colors hover:bg-accent data-[active=true]:border-primary data-[active=true]:bg-accent\"\n [attr.data-active]=\"theme.tracking() === t.value\"\n (click)=\"theme.setTracking(t.value)\"\n >\n {{ t.label }}\n </button>\n }\n </div>\n </div>\n </div>\n\n <!-- Export -->\n <div class=\"border-t pt-4\">\n <p class=\"mb-2.5 text-xs leading-relaxed text-muted-foreground\">\n Copy your complete theme and paste it as your app stylesheet — the Tailwind import,\n every token and the\n <code class=\"rounded bg-muted px-1 py-0.5 text-[11px]\">&#64;theme</code>\n mapping are included.\n </p>\n <button buiButton size=\"sm\" class=\"w-full\" (click)=\"copyCss()\">\n {{ copied() ? 'Copied to clipboard' : 'Copy theme CSS' }}\n </button>\n </div>\n </div>\n }\n `,\n})\nexport class BuiThemeCustomizer {\n protected readonly theme = inject(ThemeStore);\n protected readonly open = signal(false);\n protected readonly copied = signal(false);\n\n protected readonly modes: readonly Option<ThemeMode>[] = [\n { value: 'light', label: 'Light' },\n { value: 'dark', label: 'Dark' },\n { value: 'system', label: 'System' },\n ];\n protected readonly bases: readonly Swatch[] = [\n { value: 'neutral', color: 'oklch(0.205 0 0)' },\n { value: 'stone', color: 'oklch(0.216 0.006 56.043)' },\n { value: 'zinc', color: 'oklch(0.21 0.006 285.885)' },\n { value: 'slate', color: 'oklch(0.208 0.042 265.755)' },\n { value: 'gray', color: 'oklch(0.21 0.034 264.665)' },\n { value: 'mauve', color: 'oklch(0.212 0.019 322.12)' },\n { value: 'olive', color: 'oklch(0.228 0.013 107.4)' },\n { value: 'mist', color: 'oklch(0.218 0.008 223.9)' },\n { value: 'taupe', color: 'oklch(0.214 0.009 43.1)' },\n ];\n protected readonly accents: readonly Swatch[] = [\n { value: 'default', color: 'var(--primary)' },\n { value: 'blue', color: 'oklch(0.488 0.243 264.376)' },\n { value: 'indigo', color: 'oklch(0.457 0.24 277.023)' },\n { value: 'violet', color: 'oklch(0.491 0.27 292.581)' },\n { value: 'purple', color: 'oklch(0.496 0.265 301.924)' },\n { value: 'fuchsia', color: 'oklch(0.518 0.253 323.949)' },\n { value: 'pink', color: 'oklch(0.525 0.223 3.958)' },\n { value: 'rose', color: 'oklch(0.514 0.222 16.935)' },\n { value: 'red', color: 'oklch(0.505 0.213 27.518)' },\n { value: 'orange', color: 'oklch(0.553 0.195 38.402)' },\n { value: 'amber', color: 'oklch(0.555 0.163 48.998)' },\n { value: 'green', color: 'oklch(0.527 0.154 150.069)' },\n { value: 'emerald', color: 'oklch(0.508 0.118 165.612)' },\n { value: 'teal', color: 'oklch(0.511 0.096 186.391)' },\n { value: 'cyan', color: 'oklch(0.52 0.105 223.128)' },\n { value: 'sky', color: 'oklch(0.5 0.134 242.749)' },\n ];\n protected readonly radii: readonly string[] = ['0', '0.3', '0.5', '0.625', '0.75', '1'];\n protected readonly inputStyles: readonly Option[] = [\n { value: 'outline', label: 'Outline' },\n { value: 'fill', label: 'Fill' },\n { value: 'inset', label: 'Inset' },\n ];\n protected readonly fonts = FONTS;\n protected readonly shadows: readonly Option[] = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'SM' },\n { value: 'default', label: 'Base' },\n { value: 'lg', label: 'LG' },\n { value: 'xl', label: 'XL' },\n ];\n protected readonly spacings: readonly Option[] = [\n { value: 'compact', label: 'S' },\n { value: 'default', label: 'M' },\n { value: 'comfortable', label: 'L' },\n ];\n protected readonly trackings: readonly Option[] = [\n { value: 'tight', label: 'S' },\n { value: 'normal', label: 'M' },\n { value: 'wide', label: 'L' },\n ];\n\n protected readonly _hasClipboard = computed(\n () => typeof navigator !== 'undefined' && !!navigator.clipboard,\n );\n\n protected async copyCss(): Promise<void> {\n if (!this._hasClipboard()) {\n return;\n }\n try {\n await navigator.clipboard.writeText(this.theme.exportCss());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 2000);\n } catch {\n // Clipboard unavailable / permission denied — silently ignore.\n }\n }\n}\n","import { Component, computed, Directive, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * BlatUI radio group. `role=\"radiogroup\"` with arrow-key roving focus across the\n * `buiRadioItem` buttons; `[(value)]` two-way binds the selected value.\n */\n@Directive({\n selector: '[buiRadioGroup]',\n exportAs: 'buiRadioGroup',\n host: {\n role: 'radiogroup',\n 'data-slot': 'radio-group',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class BuiRadioGroup {\n readonly value = model<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly computedClass = computed(() => cn('grid gap-3', this.userClass()));\n\n select(next: string): void {\n this.value.set(next);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!['ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'].includes(event.key)) {\n return;\n }\n event.preventDefault();\n const items = [\n ...this.host.nativeElement.querySelectorAll<HTMLButtonElement>(\n '[role=\"radio\"]:not([disabled])',\n ),\n ];\n if (items.length === 0) {\n return;\n }\n const current = items.indexOf(document.activeElement as HTMLButtonElement);\n const isForward = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const next = items[(current + (isForward ? 1 : -1) + items.length) % items.length];\n next.focus();\n next.click();\n }\n}\n\nconst ITEM =\n 'border-input text-primary dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\n\n@Component({\n selector: 'button[buiRadioItem]',\n host: {\n type: 'button',\n role: 'radio',\n 'data-slot': 'radio-group-item',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': \"checked() ? 'checked' : 'unchecked'\",\n '[attr.tabindex]': 'tabIndex()',\n '[disabled]': 'disabled()',\n '[class]': 'computedClass()',\n '(click)': 'select()',\n },\n template: `\n @if (checked()) {\n <span data-slot=\"radio-group-indicator\" class=\"flex items-center justify-center\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-2\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n </svg>\n </span>\n }\n `,\n})\nexport class BuiRadioGroupItem {\n readonly value = input.required<string>();\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly group = inject(BuiRadioGroup);\n protected readonly checked = computed(() => this.group.value() === this.value());\n protected readonly tabIndex = computed(() =>\n this.checked() || this.group.value() === null ? 0 : -1,\n );\n protected readonly computedClass = computed(() => cn(ITEM, this.userClass()));\n\n protected select(): void {\n if (!this.disabled()) {\n this.group.select(this.value());\n }\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, Directive, ElementRef, inject, input, signal } from '@angular/core';\n\n/** Floating tooltip bubble rendered into a CDK overlay. */\n@Component({\n selector: 'bui-tooltip-content',\n host: {\n role: 'tooltip',\n class:\n 'bg-primary text-primary-foreground z-50 w-fit max-w-xs rounded-md px-3 py-1.5 text-xs shadow-md',\n },\n template: `{{ text() }}`,\n})\nexport class BuiTooltipContent {\n readonly text = input('');\n}\n\n/**\n * BlatUI tooltip. Shows an accessible `role=\"tooltip\"` bubble on hover/focus via the\n * Angular CDK overlay and wires `aria-describedby` on the host. SSR-safe (the overlay\n * is only created in the browser, on interaction).\n */\n@Directive({\n selector: '[buiTooltip]',\n host: {\n '[attr.aria-describedby]': 'describedBy()',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focusin)': 'show()',\n '(focusout)': 'hide()',\n },\n})\nexport class BuiTooltip {\n readonly text = input.required<string>({ alias: 'buiTooltip' });\n\n private readonly overlay = inject(Overlay);\n private readonly idGenerator = inject(_IdGenerator);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlayRef: OverlayRef | null = null;\n protected readonly describedBy = signal<string | null>(null);\n\n protected show(): void {\n if (this.overlayRef || !this.text()) {\n return;\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -6 },\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 6 },\n ]);\n this.overlayRef = this.overlay.create({ positionStrategy });\n const reference = this.overlayRef.attach(new ComponentPortal(BuiTooltipContent));\n reference.setInput('text', this.text());\n const id = this.idGenerator.getId('bui-tooltip-');\n (reference.location.nativeElement as HTMLElement).id = id;\n this.describedBy.set(id);\n }\n\n protected hide(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.describedBy.set(null);\n }\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Breadcrumb navigation landmark (`<nav aria-label=\"breadcrumb\">`). */\n@Directive({\n selector: 'nav[buiBreadcrumb]',\n host: { 'aria-label': 'breadcrumb', 'data-slot': 'breadcrumb' },\n})\nexport class BuiBreadcrumb {}\n\n@Directive({\n selector: 'ol[buiBreadcrumbList]',\n host: { 'data-slot': 'breadcrumb-list', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbList {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'li[buiBreadcrumbItem]',\n host: { 'data-slot': 'breadcrumb-item', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1.5', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'a[buiBreadcrumbLink]',\n host: { 'data-slot': 'breadcrumb-link', '[class]': 'computedClass()' },\n})\nexport class BuiBreadcrumbLink {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('transition-colors hover:text-foreground', this.userClass()),\n );\n}\n\n/** The current page in a breadcrumb — non-interactive, `aria-current=\"page\"`. */\n@Directive({\n selector: '[buiBreadcrumbPage]',\n host: {\n 'data-slot': 'breadcrumb-page',\n role: 'link',\n 'aria-disabled': 'true',\n 'aria-current': 'page',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiBreadcrumbPage {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('font-normal text-foreground', this.userClass()),\n );\n}\n\n/** Separator between breadcrumb items (defaults to a chevron). */\n@Component({\n selector: 'li[buiBreadcrumbSeparator]',\n host: {\n 'data-slot': 'breadcrumb-separator',\n role: 'presentation',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n template: `\n <ng-content>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-3.5\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </ng-content>\n `,\n})\nexport class BuiBreadcrumbSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('[&>svg]:size-3.5', this.userClass()));\n}\n\n/** Collapsed breadcrumb indicator (ellipsis). */\n@Component({\n selector: 'li[buiBreadcrumbEllipsis]',\n host: {\n 'data-slot': 'breadcrumb-ellipsis',\n role: 'presentation',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More</span>\n `,\n})\nexport class BuiBreadcrumbEllipsis {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex size-9 items-center justify-center', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Keyboard key styling, applied to a native `<kbd>` element. */\n@Directive({\n selector: 'kbd[buiKbd]',\n host: { 'data-slot': 'kbd', '[class]': 'computedClass()' },\n})\nexport class BuiKbd {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Constrains projected content to a given aspect ratio (e.g. `16 / 9`). */\n@Component({\n selector: 'bui-aspect-ratio',\n host: {\n 'data-slot': 'aspect-ratio',\n '[style.aspect-ratio]': 'ratio()',\n '[class]': 'computedClass()',\n },\n template: `<ng-content />`,\n})\nexport class BuiAspectRatio {\n readonly ratio = input('1 / 1');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Groups buttons (and inputs) into a single segmented control. */\n@Directive({\n selector: '[buiButtonGroup]',\n host: {\n role: 'group',\n 'data-slot': 'button-group',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiButtonGroup {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 data-[orientation=vertical]:flex-col [&>*]:focus-within:z-10 [&>*]:focus-visible:z-10 data-[orientation=horizontal]:[&>*:not(:first-child)]:rounded-l-none data-[orientation=horizontal]:[&>*:not(:first-child)]:border-l-0 data-[orientation=vertical]:[&>*:not(:first-child)]:rounded-t-none data-[orientation=vertical]:[&>*:not(:first-child)]:border-t-0 data-[orientation=horizontal]:[&>*:not(:last-child)]:rounded-r-none data-[orientation=vertical]:[&>*:not(:last-child)]:rounded-b-none',\n this.userClass(),\n ),\n );\n}\n\n/** A non-button text segment inside a button group. */\n@Directive({\n selector: '[buiButtonGroupText]',\n host: { 'data-slot': 'button-group-text', '[class]': 'computedClass()' },\n})\nexport class BuiButtonGroupText {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center gap-2 rounded-md border bg-muted px-4 text-sm font-medium shadow-xs',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Empty-state container. */\n@Directive({\n selector: '[buiEmpty]',\n host: { 'data-slot': 'empty', '[class]': 'computedClass()' },\n})\nexport class BuiEmpty {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border border-dashed p-6 text-center text-balance md:p-12',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyHeader]',\n host: { 'data-slot': 'empty-header', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex max-w-sm flex-col items-center gap-2 text-center', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiEmptyMedia]',\n host: {\n 'data-slot': 'empty-media',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiEmptyMedia {\n readonly variant = input<'default' | 'icon'>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'mb-2 flex shrink-0 items-center justify-center',\n this.variant() === 'icon' &&\n \"size-10 rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6\",\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyTitle]',\n host: { 'data-slot': 'empty-title', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-lg font-medium tracking-tight', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiEmptyDescription]',\n host: { 'data-slot': 'empty-description', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiEmptyContent]',\n host: { 'data-slot': 'empty-content', '[class]': 'computedClass()' },\n})\nexport class BuiEmptyContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SIZES = {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-6xl',\n xl: 'max-w-7xl',\n prose: 'max-w-prose',\n full: 'max-w-full',\n} as const;\n\n/** Centered, padded page container with a max-width scale. */\n@Directive({\n selector: '[buiContainer]',\n host: { 'data-slot': 'container', '[class]': 'computedClass()' },\n})\nexport class BuiContainer {\n readonly size = input<keyof typeof SIZES>('lg');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mx-auto w-full px-4 sm:px-6 lg:px-8', SIZES[this.size()], this.userClass()),\n );\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst FIELD_ORIENT = {\n vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n horizontal: 'flex-row items-center [&>[data-slot=field-label]]:flex-auto',\n responsive:\n 'flex-col [&>*]:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto',\n} as const;\n\n/** A form field row grouping a label, control, description and error. */\n@Directive({\n selector: '[buiField]',\n host: {\n role: 'group',\n 'data-slot': 'field',\n '[attr.data-orientation]': 'orientation()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiField {\n readonly orientation = input<keyof typeof FIELD_ORIENT>('vertical');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'group/field flex w-full gap-2 data-[invalid=true]:text-destructive',\n FIELD_ORIENT[this.orientation()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'fieldset[buiFieldSet]',\n host: { 'data-slot': 'field-set', '[class]': 'computedClass()' },\n})\nexport class BuiFieldSet {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-6 has-[>[data-slot=radio-group]]:gap-3', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'legend[buiFieldLegend]',\n host: {\n 'data-slot': 'field-legend',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiFieldLegend {\n readonly variant = input<'legend' | 'label'>('legend');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiFieldGroup]',\n host: { 'data-slot': 'field-group', '[class]': 'computedClass()' },\n})\nexport class BuiFieldGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/field-group @container/field-group flex w-full flex-col gap-7', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'label[buiFieldLabel]',\n host: { 'data-slot': 'field-label', '[attr.for]': 'forId()', '[class]': 'computedClass()' },\n})\nexport class BuiFieldLabel {\n readonly forId = input<string | undefined>(undefined, { alias: 'for' });\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-fit gap-2 text-sm leading-snug font-medium select-none group-data-[disabled=true]/field:opacity-50',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiFieldTitle]',\n host: { 'data-slot': 'field-title', '[class]': 'computedClass()' },\n})\nexport class BuiFieldTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'p[buiFieldDescription]',\n host: { 'data-slot': 'field-description', '[class]': 'computedClass()' },\n})\nexport class BuiFieldDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm leading-normal font-normal text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiFieldContent]',\n host: { 'data-slot': 'field-content', '[class]': 'computedClass()' },\n})\nexport class BuiFieldContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/field-content flex flex-1 flex-col gap-1.5 leading-snug', this.userClass()),\n );\n}\n\n/** Field validation message (`role=\"alert\"`). */\n@Directive({\n selector: '[buiFieldError]',\n host: { role: 'alert', 'data-slot': 'field-error', '[class]': 'computedClass()' },\n})\nexport class BuiFieldError {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm font-normal text-destructive', this.userClass()),\n );\n}\n\n/** Labelled divider between fields. */\n@Component({\n selector: 'bui-field-separator',\n host: { 'data-slot': 'field-separator', '[class]': 'computedClass()' },\n template: `\n <div class=\"absolute inset-0 top-1/2 h-px bg-border\"></div>\n <span class=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\">\n <ng-content />\n </span>\n `,\n})\nexport class BuiFieldSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('relative -my-2 block h-5 text-sm', this.userClass()),\n );\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Directive, inject, model } from '@angular/core';\n\n/** Accessible disclosure: a trigger toggles the visibility of its content. */\n@Directive({\n selector: '[buiCollapsible]',\n exportAs: 'buiCollapsible',\n host: { 'data-slot': 'collapsible' },\n})\nexport class BuiCollapsible {\n readonly open = model(false);\n readonly contentId = inject(_IdGenerator).getId('bui-collapsible-');\n\n toggle(): void {\n this.open.update((value) => !value);\n }\n}\n\n@Directive({\n selector: 'button[buiCollapsibleTrigger]',\n host: {\n type: 'button',\n 'data-slot': 'collapsible-trigger',\n '[attr.aria-expanded]': 'collapsible.open()',\n '[attr.aria-controls]': 'collapsible.contentId',\n '[attr.data-state]': \"collapsible.open() ? 'open' : 'closed'\",\n '(click)': 'collapsible.toggle()',\n },\n})\nexport class BuiCollapsibleTrigger {\n protected readonly collapsible = inject(BuiCollapsible);\n}\n\n@Directive({\n selector: '[buiCollapsibleContent]',\n host: {\n 'data-slot': 'collapsible-content',\n '[id]': 'collapsible.contentId',\n '[hidden]': '!collapsible.open()',\n '[attr.data-state]': \"collapsible.open() ? 'open' : 'closed'\",\n },\n})\nexport class BuiCollapsibleContent {\n protected readonly collapsible = inject(BuiCollapsible);\n}\n","import { Component, computed, input, model } from '@angular/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport const toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline:\n 'border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-9 min-w-9 px-2',\n sm: 'h-8 min-w-8 px-1.5',\n lg: 'h-10 min-w-10 px-2.5',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n);\ntype ToggleVariants = VariantProps<typeof toggleVariants>;\n\n/** A two-state toggle button (`aria-pressed`). */\n@Component({\n selector: 'button[buiToggle]',\n host: {\n type: 'button',\n 'data-slot': 'toggle',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': \"pressed() ? 'on' : 'off'\",\n '[class]': 'computedClass()',\n '(click)': 'toggle()',\n },\n template: `<ng-content />`,\n})\nexport class BuiToggle {\n readonly pressed = model(false);\n readonly variant = input<ToggleVariants['variant']>('default');\n readonly size = input<ToggleVariants['size']>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(toggleVariants({ variant: this.variant(), size: this.size() }), this.userClass()),\n );\n\n protected toggle(): void {\n this.pressed.update((value) => !value);\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A spinning loading indicator (`role=\"status\"`). */\n@Component({\n selector: 'bui-spinner',\n host: {\n 'data-slot': 'spinner',\n role: 'status',\n 'aria-label': 'Loading',\n '[class]': 'computedClass()',\n },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-full\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n `,\n})\nexport class BuiSpinner {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('inline-block size-4 animate-spin', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Copy-to-clipboard button: copies `value`, flips to a check, announces \"Copied\". */\n@Component({\n selector: 'button[buiCopyButton]',\n host: {\n type: 'button',\n 'data-slot': 'copy-button',\n '[attr.aria-label]': \"copied() ? 'Copied' : label()\",\n '[class]': 'computedClass()',\n '(click)': 'copy()',\n },\n template: `\n <span class=\"grid size-4 place-items-center *:col-start-1 *:row-start-1\">\n @if (copied()) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4 text-success\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n } @else {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n }\n </span>\n <ng-content />\n <span class=\"sr-only\" aria-live=\"polite\">{{ copied() ? 'Copied' : '' }}</span>\n `,\n})\nexport class BuiCopyButton {\n readonly value = input('');\n readonly label = input('Copy');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly copied = signal(false);\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-8 items-center justify-center gap-1.5 rounded-md px-2 text-sm font-medium text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n this.userClass(),\n ),\n );\n\n protected async copy(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.value());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 1500);\n } catch {\n // Clipboard unavailable — ignore.\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n inject,\n input,\n type OnInit,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TONES = {\n default: 'bg-muted text-foreground border-border',\n primary: 'bg-primary text-primary-foreground border-transparent',\n info: 'bg-info/10 text-info border-info/25',\n success: 'bg-success/10 text-success border-success/25',\n warning: 'bg-warning/10 text-warning border-warning/25',\n danger: 'bg-destructive/10 text-destructive border-destructive/25',\n} as const;\n\n/**\n * Full-width announcement bar. Optionally dismissible and (with `persistKey`) remembers\n * the dismissal in localStorage. SSR-safe — localStorage is only touched in the browser.\n */\n@Component({\n selector: 'bui-banner',\n host: {\n 'data-slot': 'banner',\n role: 'region',\n 'aria-label': 'Announcement',\n '[hidden]': '!show()',\n '[class]': 'computedClass()',\n },\n template: `\n <div class=\"flex flex-1 flex-wrap items-center justify-center gap-x-3 gap-y-1\">\n <ng-content />\n </div>\n @if (dismissible()) {\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n class=\"shrink-0 rounded-md p-1 opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current/40\"\n (click)=\"dismiss()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n }\n `,\n})\nexport class BuiBanner implements OnInit {\n readonly tone = input<keyof typeof TONES>('default');\n readonly dismissible = input(true);\n readonly persistKey = input<string | undefined>(undefined);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly show = signal(true);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex w-full items-center gap-3 border-b px-4 py-2.5 text-sm',\n TONES[this.tone()],\n this.userClass(),\n ),\n );\n\n ngOnInit(): void {\n const key = this.persistKey();\n if (this.isBrowser && key && localStorage.getItem(`bui-banner-${key}`) === '1') {\n this.show.set(false);\n }\n }\n\n protected dismiss(): void {\n this.show.set(false);\n const key = this.persistKey();\n if (this.isBrowser && key) {\n localStorage.setItem(`bui-banner-${key}`, '1');\n }\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Scroll/border wrapper around a table. `variant=\"card\"` adds a bordered card. */\n@Directive({\n selector: '[buiTableContainer]',\n host: {\n 'data-slot': 'table-container',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTableContainer {\n readonly variant = input<'default' | 'card'>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative w-full overflow-x-auto',\n this.variant() === 'card' && 'rounded-lg border bg-card shadow-xs',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'table[buiTable]',\n host: { 'data-slot': 'table', '[class]': 'computedClass()' },\n})\nexport class BuiTable {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('w-full caption-bottom text-sm', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'thead[buiTableHeader]',\n host: { 'data-slot': 'table-header', '[class]': 'computedClass()' },\n})\nexport class BuiTableHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('[&_tr]:border-b', this.userClass()));\n}\n\n@Directive({\n selector: 'tbody[buiTableBody]',\n host: { 'data-slot': 'table-body', '[class]': 'computedClass()' },\n})\nexport class BuiTableBody {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('[&_tr:last-child]:border-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'tfoot[buiTableFooter]',\n host: { 'data-slot': 'table-footer', '[class]': 'computedClass()' },\n})\nexport class BuiTableFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'tr[buiTableRow]',\n host: { 'data-slot': 'table-row', '[class]': 'computedClass()' },\n})\nexport class BuiTableRow {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'th[buiTableHead]',\n host: { 'data-slot': 'table-head', scope: 'col', '[class]': 'computedClass()' },\n})\nexport class BuiTableHead {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'td[buiTableCell]',\n host: { 'data-slot': 'table-cell', '[class]': 'computedClass()' },\n})\nexport class BuiTableCell {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'caption[buiTableCaption]',\n host: { 'data-slot': 'table-caption', '[class]': 'computedClass()' },\n})\nexport class BuiTableCaption {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { BuiAvatar } from '../avatar/avatar';\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface GroupAvatar {\n src?: string;\n name?: string;\n}\n\nconst SIZES = {\n sm: { box: 'size-6', overlap: '-ms-2', ring: 'ring-1', text: 'text-xs' },\n default: { box: 'size-8', overlap: '-ms-2.5', ring: 'ring-2', text: 'text-sm' },\n lg: { box: 'size-12', overlap: '-ms-3', ring: 'ring-2', text: 'text-base' },\n} as const;\n\nfunction initials(name: string | undefined): string {\n const trimmed = (name ?? '').trim();\n if (trimmed === '') {\n return '?';\n }\n const parts = trimmed.split(/\\s+/);\n const first = parts[0].charAt(0);\n const last = parts.length > 1 ? (parts.at(-1)?.charAt(0) ?? '') : '';\n return (first + last).toUpperCase();\n}\n\n/** Overlapping stack of avatars with an optional \"+N\" overflow counter. */\n@Component({\n selector: 'bui-avatar-group',\n imports: [BuiAvatar],\n host: { 'data-slot': 'avatar-group', role: 'list', '[class]': 'computedClass()' },\n template: `\n @for (avatar of shown(); track $index) {\n <bui-avatar\n role=\"listitem\"\n [src]=\"avatar.src ?? null\"\n [alt]=\"avatar.name ?? 'User avatar'\"\n [class]=\"itemClass($index)\"\n >{{ toInitials(avatar.name) }}</bui-avatar\n >\n }\n @if (remaining() > 0) {\n <span\n role=\"listitem\"\n [attr.aria-label]=\"'and ' + remaining() + ' more'\"\n [class]=\"moreClass()\"\n >\n <span aria-hidden=\"true\">+{{ remaining() }}</span>\n </span>\n }\n `,\n})\nexport class BuiAvatarGroup {\n readonly avatars = input<readonly GroupAvatar[]>([]);\n readonly max = input(4);\n readonly size = input<keyof typeof SIZES>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly shown = computed(() => this.avatars().slice(0, Math.max(0, this.max())));\n protected readonly remaining = computed(() =>\n Math.max(0, this.avatars().length - this.shown().length),\n );\n protected readonly computedClass = computed(() => cn('flex items-center', this.userClass()));\n\n protected readonly toInitials = initials;\n\n protected itemClass(index: number): string {\n const size = SIZES[this.size()];\n return cn(size.box, size.ring, 'ring-background', index > 0 && size.overlap);\n }\n\n protected moreClass(): string {\n const size = SIZES[this.size()];\n return cn(\n 'relative z-10 flex shrink-0 items-center justify-center rounded-full bg-muted font-medium text-foreground',\n size.box,\n size.ring,\n 'ring-background',\n size.text,\n this.shown().length > 0 && size.overlap,\n );\n }\n}\n","import { Component, computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Pagination navigation landmark. */\n@Directive({\n selector: 'nav[buiPagination]',\n host: {\n role: 'navigation',\n 'aria-label': 'pagination',\n 'data-slot': 'pagination',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPagination {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('mx-auto flex w-full justify-center', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'ul[buiPaginationContent]',\n host: { 'data-slot': 'pagination-content', '[class]': 'computedClass()' },\n})\nexport class BuiPaginationContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-row items-center gap-1', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'li[buiPaginationItem]',\n host: { 'data-slot': 'pagination-item' },\n})\nexport class BuiPaginationItem {}\n\nconst LINK_BASE =\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\nconst LINK_SIZES = {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 gap-1.5 px-3',\n lg: 'h-10 px-6',\n icon: 'size-9',\n} as const;\n\n/** A pagination link; set `active` for the current page. */\n@Directive({\n selector: 'a[buiPaginationLink]',\n host: {\n 'data-slot': 'pagination-link',\n '[attr.aria-current]': \"active() ? 'page' : null\",\n '[attr.data-active]': \"active() ? 'true' : null\",\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPaginationLink {\n readonly active = input(false);\n readonly size = input<keyof typeof LINK_SIZES>('icon');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n LINK_BASE,\n this.active()\n ? 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground'\n : 'hover:bg-accent hover:text-accent-foreground',\n LINK_SIZES[this.size()],\n this.userClass(),\n ),\n );\n}\n\n/** Ellipsis indicator for skipped pages. */\n@Component({\n selector: 'bui-pagination-ellipsis',\n host: { 'data-slot': 'pagination-ellipsis', 'aria-hidden': 'true', '[class]': 'computedClass()' },\n template: `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More pages</span>\n `,\n})\nexport class BuiPaginationEllipsis {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex size-9 items-center justify-center', this.userClass()),\n );\n}\n","import { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n signal,\n type TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Click-triggered popover on the Angular CDK overlay. Bind the content template:\n * `<button [buiPopover]=\"tpl\">…</button>` with `<ng-template #tpl><div buiPopoverContent>…`.\n * Closes on outside click and Escape. SSR-safe (the overlay is browser-only, on click).\n */\n@Directive({\n selector: '[buiPopover]',\n host: {\n 'aria-haspopup': 'dialog',\n '[attr.aria-expanded]': 'isOpen()',\n '(click)': 'toggle()',\n },\n})\nexport class BuiPopover implements OnDestroy {\n readonly content = input.required<TemplateRef<unknown>>({ alias: 'buiPopover' });\n\n private readonly overlay = inject(Overlay);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n protected readonly isOpen = signal(false);\n\n protected toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open(): void {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 },\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -4 },\n ]);\n const overlayReference = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n overlayReference.attach(new TemplatePortal(this.content(), this.viewContainerRef));\n overlayReference.outsidePointerEvents().subscribe((event) => {\n if (!this.host.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n });\n overlayReference.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n this.overlayRef = overlayReference;\n this.isOpen.set(true);\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.isOpen.set(false);\n }\n\n ngOnDestroy(): void {\n this.close();\n }\n}\n\n/** Styling + role for the popover content root (inside the bound template). */\n@Directive({\n selector: '[buiPopoverContent]',\n host: {\n 'data-slot': 'popover-content',\n role: 'dialog',\n tabindex: '-1',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiPopoverContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst ITEM_BASE =\n 'group/item flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 [a&]:transition-colors [a&]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]';\nconst ITEM_VARIANTS = {\n default: 'bg-transparent',\n outline: 'border-border',\n muted: 'bg-muted/50',\n} as const;\nconst ITEM_SIZES = {\n default: 'gap-4 p-4',\n sm: 'gap-2.5 px-4 py-3',\n} as const;\n\n/** A list/row item; use on a `<div>` or an `<a>`. */\n@Directive({\n selector: '[buiItem]',\n host: {\n 'data-slot': 'item',\n '[attr.data-variant]': 'variant()',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiItem {\n readonly variant = input<keyof typeof ITEM_VARIANTS>('default');\n readonly size = input<keyof typeof ITEM_SIZES>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(ITEM_BASE, ITEM_VARIANTS[this.variant()], ITEM_SIZES[this.size()], this.userClass()),\n );\n}\n\nconst MEDIA_VARIANTS = {\n default: 'bg-transparent',\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image: 'size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover',\n} as const;\n\n@Directive({\n selector: '[buiItemMedia]',\n host: {\n 'data-slot': 'item-media',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiItemMedia {\n readonly variant = input<keyof typeof MEDIA_VARIANTS>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none',\n MEDIA_VARIANTS[this.variant()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiItemContent]',\n host: { 'data-slot': 'item-content', '[class]': 'computedClass()' },\n})\nexport class BuiItemContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiItemTitle]',\n host: { 'data-slot': 'item-title', '[class]': 'computedClass()' },\n})\nexport class BuiItemTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: 'p[buiItemDescription]',\n host: { 'data-slot': 'item-description', '[class]': 'computedClass()' },\n})\nexport class BuiItemDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'line-clamp-2 text-sm leading-normal font-normal text-balance text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiItemActions]',\n host: { 'data-slot': 'item-actions', '[class]': 'computedClass()' },\n})\nexport class BuiItemActions {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex items-center gap-2', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiItemGroup]',\n host: { 'data-slot': 'item-group', '[class]': 'computedClass()' },\n})\nexport class BuiItemGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('group/item-group flex flex-col', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A scrollable region with a thin, themed scrollbar and a focusable viewport. */\n@Component({\n selector: 'bui-scroll-area',\n host: { 'data-slot': 'scroll-area', '[class]': 'computedClass()' },\n template: `\n <div\n data-slot=\"scroll-area-viewport\"\n tabindex=\"0\"\n role=\"region\"\n class=\"size-full [scrollbar-width:thin] [scrollbar-color:var(--border)_transparent] overflow-auto rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiScrollArea {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A bordered group that composes inputs with addons (icons, text, buttons). */\n@Directive({\n selector: '[buiInputGroup]',\n host: { 'data-slot': 'input-group', role: 'group', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[>textarea]:h-auto dark:bg-input/30',\n this.userClass(),\n ),\n );\n}\n\nconst ADDON_ALIGN = {\n 'inline-start': 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n 'inline-end': 'order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]',\n 'block-start': 'order-first w-full justify-start px-3 pt-3',\n 'block-end': 'order-last w-full justify-start px-3 pb-3',\n} as const;\n\n@Directive({\n selector: '[buiInputGroupAddon]',\n host: {\n 'data-slot': 'input-group-addon',\n '[attr.data-align]': 'align()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiInputGroupAddon {\n readonly align = input<keyof typeof ADDON_ALIGN>('inline-start');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n ADDON_ALIGN[this.align()],\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: 'input[buiInputGroupInput], textarea[buiInputGroupInput]',\n host: { 'data-slot': 'input-group-control', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupInput {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'w-full min-w-0 flex-1 rounded-none border-0 bg-transparent px-3 py-1 text-base shadow-none outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiInputGroupText]',\n host: { 'data-slot': 'input-group-text', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupText {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4\",\n this.userClass(),\n ),\n );\n}\n\nconst IG_BUTTON_BASE =\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\nconst IG_BUTTON_VARIANTS = {\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n outline: 'bg-background hover:bg-accent hover:text-accent-foreground border shadow-xs',\n default: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs',\n} as const;\nconst IG_BUTTON_SIZES = {\n xs: 'h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 text-xs',\n sm: 'h-8 gap-1.5 px-2.5',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-5px)] p-0',\n 'icon-sm': 'size-8 p-0',\n} as const;\n\n@Directive({\n selector: 'button[buiInputGroupButton]',\n host: { type: 'button', 'data-slot': 'input-group-button', '[class]': 'computedClass()' },\n})\nexport class BuiInputGroupButton {\n readonly variant = input<keyof typeof IG_BUTTON_VARIANTS>('ghost');\n readonly size = input<keyof typeof IG_BUTTON_SIZES>('xs');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n IG_BUTTON_BASE,\n IG_BUTTON_VARIANTS[this.variant()],\n IG_BUTTON_SIZES[this.size()],\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Visually hides content while keeping it available to assistive tech (sr-only). */\n@Directive({\n selector: '[buiVisuallyHidden]',\n host: { 'data-slot': 'visually-hidden', '[class]': 'computedClass()' },\n})\nexport class BuiVisuallyHidden {\n readonly focusable = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'sr-only',\n this.focusable() &&\n 'focus:not-sr-only focus:fixed focus:start-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-primary focus:px-4 focus:py-2 focus:text-primary-foreground focus:shadow-md',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TONES = {\n good: 'bg-emerald-600',\n warning: 'bg-amber-500',\n danger: 'bg-destructive',\n default: 'bg-primary',\n} as const;\n\n/** A labelled meter (`role=\"meter\"`) for a measurement within a known range. */\n@Component({\n selector: 'bui-meter',\n host: { 'data-slot': 'meter', '[class]': 'computedClass()' },\n template: `\n @if (label() || showValue()) {\n <div class=\"flex items-center justify-between gap-2 text-sm\">\n @if (label()) {\n <span class=\"font-medium text-foreground\">{{ label() }}</span>\n } @else {\n <span aria-hidden=\"true\"></span>\n }\n @if (showValue()) {\n <span class=\"text-muted-foreground tabular-nums\">{{ valueText() }}</span>\n }\n </div>\n }\n <div\n role=\"meter\"\n [attr.aria-label]=\"label() ?? 'Meter'\"\n [attr.aria-valuenow]=\"clamped()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuetext]=\"valueText()\"\n class=\"relative h-2 w-full overflow-hidden rounded-full bg-muted\"\n >\n <div\n class=\"absolute inset-y-0 start-0 rounded-full transition-[width] duration-500 ease-out\"\n [class]=\"fillClass()\"\n [style.width.%]=\"pct()\"\n ></div>\n </div>\n `,\n})\nexport class BuiMeter {\n readonly value = input(0);\n readonly min = input(0);\n readonly max = input(100);\n readonly label = input<string | null>(null);\n readonly tone = input<keyof typeof TONES>('default');\n readonly showValue = input(true);\n readonly unit = input('%');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly clamped = computed(() =>\n Math.max(this.min(), Math.min(this.max(), this.value())),\n );\n protected readonly pct = computed(() => {\n const range = this.max() - this.min() || 1;\n return ((this.clamped() - this.min()) / range) * 100;\n });\n protected readonly valueText = computed(() => `${this.value()}${this.unit()}`);\n protected readonly fillClass = computed(() => TONES[this.tone()]);\n protected readonly computedClass = computed(() => cn('grid w-full gap-1.5', this.userClass()));\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TREND_CLASS = {\n up: 'text-emerald-600 font-medium',\n down: 'text-destructive font-medium',\n neutral: 'text-muted-foreground font-medium',\n} as const;\n\n/** A KPI / statistic card: label, big value, and a trend-coloured change. */\n@Component({\n selector: 'bui-stat',\n host: { 'data-slot': 'stat', '[class]': 'computedClass()' },\n template: `\n @if (label()) {\n <span class=\"text-sm font-medium text-muted-foreground\">{{ label() }}</span>\n }\n <span class=\"text-2xl font-semibold tabular-nums\">{{ value() }}</span>\n @if (change()) {\n <span class=\"flex items-center gap-1.5 text-sm\">\n <span [class]=\"trendClass()\">{{ change() }}</span>\n @if (caption()) {\n <span class=\"text-muted-foreground\">{{ caption() }}</span>\n }\n </span>\n }\n `,\n})\nexport class BuiStat {\n readonly label = input<string | null>(null);\n readonly value = input<string | number>('');\n readonly change = input<string | null>(null);\n readonly trend = input<'up' | 'down' | 'neutral' | null>(null);\n readonly caption = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly resolvedTrend = computed<'up' | 'down' | 'neutral'>(() => {\n const explicit = this.trend();\n if (explicit) {\n return explicit;\n }\n const change = (this.change() ?? '').trim();\n if (change.startsWith('+')) {\n return 'up';\n }\n if (change.startsWith('-') || change.startsWith('−')) {\n return 'down';\n }\n return 'neutral';\n });\n protected readonly trendClass = computed(() => TREND_CLASS[this.resolvedTrend()]);\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-1 rounded-lg border bg-card p-4', this.userClass()),\n );\n}\n","import { Overlay, type OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n type TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Hover-triggered card on the Angular CDK overlay. Opens on hover/focus after a delay\n * and stays open while the pointer is over the card. SSR-safe (browser-only, on hover).\n */\n@Directive({\n selector: '[buiHoverCard]',\n host: {\n '(mouseenter)': 'scheduleOpen()',\n '(mouseleave)': 'scheduleClose()',\n '(focusin)': 'scheduleOpen()',\n '(focusout)': 'scheduleClose()',\n },\n})\nexport class BuiHoverCard implements OnDestroy {\n readonly content = input.required<TemplateRef<unknown>>({ alias: 'buiHoverCard' });\n readonly openDelay = input(400);\n readonly closeDelay = input(100);\n\n private readonly overlay = inject(Overlay);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n protected scheduleOpen(): void {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.open();\n }, this.openDelay());\n }\n\n protected scheduleClose(): void {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.close();\n }, this.closeDelay());\n }\n\n private clearTimer(): void {\n if (this.timer === undefined) {\n return;\n }\n\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n\n private open(): void {\n if (this.overlayRef) {\n return;\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withPositions([\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 },\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -4 },\n ]);\n const overlayReference = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n overlayReference.attach(new TemplatePortal(this.content(), this.viewContainerRef));\n overlayReference.overlayElement.addEventListener('mouseenter', () => {\n this.clearTimer();\n });\n overlayReference.overlayElement.addEventListener('mouseleave', () => {\n this.scheduleClose();\n });\n this.overlayRef = overlayReference;\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n this.close();\n }\n}\n\n/** Styling for the hover-card content root (inside the bound template). */\n@Directive({\n selector: '[buiHoverCardContent]',\n host: { 'data-slot': 'hover-card-content', tabindex: '-1', '[class]': 'computedClass()' },\n})\nexport class BuiHoverCardContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A dark code panel with an optional filename header and a copy button. */\n@Component({\n selector: 'bui-code-block',\n host: { 'data-slot': 'code-block', '[class]': 'computedClass()' },\n template: `\n @if (filename()) {\n <div class=\"flex items-center justify-between border-b border-white/10 px-4 py-2\">\n <span class=\"font-mono text-xs text-zinc-400\">{{ filename() }}</span>\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n class=\"text-xs text-zinc-400 transition-colors hover:text-zinc-100\"\n (click)=\"copy()\"\n >\n {{ copied() ? 'Copied' : 'Copy' }}\n </button>\n </div>\n } @else {\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n class=\"absolute end-2 top-2 z-10 rounded-md px-1.5 py-1 text-xs text-zinc-400 opacity-0 transition-all group-hover/code-block:opacity-100 hover:bg-white/10 hover:text-zinc-100 focus-visible:opacity-100\"\n (click)=\"copy()\"\n >\n {{ copied() ? 'Copied' : 'Copy' }}\n </button>\n }\n <pre\n class=\"overflow-x-auto p-4 text-[13px] leading-relaxed\"\n ><code class=\"font-mono\">{{ code() }}</code></pre>\n `,\n})\nexport class BuiCodeBlock {\n readonly code = input('');\n readonly filename = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly copied = signal(false);\n protected readonly computedClass = computed(() =>\n cn(\n 'group/code-block relative block overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950 text-zinc-100',\n this.userClass(),\n ),\n );\n\n protected async copy(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.code());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 1600);\n } catch {\n // Clipboard unavailable — ignore.\n }\n }\n}\n","import { Component, computed, type ElementRef, input, model, viewChild } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A single-value slider (`role=\"slider\"`) with pointer drag and full keyboard support\n * (arrows, Home/End, PageUp/PageDown). Horizontal or vertical. SSR-safe — geometry is\n * only read inside browser event handlers.\n */\n@Component({\n selector: 'bui-slider',\n host: {\n 'data-slot': 'slider',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[class]': 'computedClass()',\n '(document:pointermove)': 'onMove($event)',\n '(document:pointerup)': 'onUp()',\n },\n template: `\n <span\n #track\n data-slot=\"slider-track\"\n class=\"relative grow overflow-hidden rounded-full bg-muted\"\n [class]=\"orientation() === 'vertical' ? 'h-full w-1.5' : 'h-1.5 w-full'\"\n (pointerdown)=\"onPointerDown($event)\"\n >\n <span\n data-slot=\"slider-range\"\n class=\"absolute bg-primary\"\n [class]=\"orientation() === 'vertical' ? 'bottom-0 w-full' : 'left-0 h-full'\"\n [style.height.%]=\"orientation() === 'vertical' ? pct() : null\"\n [style.width.%]=\"orientation() === 'vertical' ? null : pct()\"\n ></span>\n </span>\n <span\n data-slot=\"slider-thumb\"\n role=\"slider\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n class=\"absolute block size-4 shrink-0 rounded-full border border-primary bg-background shadow-sm ring-ring/50 transition-[color,box-shadow] outline-none hover:ring-4 focus-visible:ring-4\"\n [class]=\"\n orientation() === 'vertical'\n ? 'left-1/2 -translate-x-1/2 translate-y-1/2'\n : 'top-1/2 -translate-x-1/2 -translate-y-1/2'\n \"\n [style.bottom.%]=\"orientation() === 'vertical' ? pct() : null\"\n [style.left.%]=\"orientation() === 'vertical' ? null : pct()\"\n (keydown)=\"onKeydown($event)\"\n ></span>\n `,\n})\nexport class BuiSlider {\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 orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly ariaLabel = input('Value');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly track = viewChild.required<ElementRef<HTMLElement>>('track');\n private dragging = false;\n\n protected readonly pct = computed(() => {\n const range = this.max() - this.min() || 1;\n return ((this.value() - this.min()) / range) * 100;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex touch-none items-center select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n this.orientation() === 'vertical' ? 'h-40 w-fit flex-col' : 'w-full',\n this.userClass(),\n ),\n );\n\n protected onPointerDown(event: PointerEvent): void {\n if (this.disabled()) {\n return;\n }\n this.dragging = true;\n this.value.set(this.valueFromPointer(event));\n }\n\n protected onMove(event: PointerEvent): void {\n if (this.dragging) {\n this.value.set(this.valueFromPointer(event));\n }\n }\n\n protected onUp(): void {\n this.dragging = false;\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n const big = Math.max(this.step(), (this.max() - this.min()) / 10);\n let next: number;\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp': {\n next = this.value() + this.step();\n break;\n }\n case 'ArrowLeft':\n case 'ArrowDown': {\n next = this.value() - this.step();\n break;\n }\n case 'Home': {\n next = this.min();\n break;\n }\n case 'End': {\n next = this.max();\n break;\n }\n case 'PageUp': {\n next = this.value() + big;\n break;\n }\n case 'PageDown': {\n next = this.value() - big;\n break;\n }\n default: {\n return;\n }\n }\n event.preventDefault();\n this.value.set(this.clamp(next));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n const rect = this.track().nativeElement.getBoundingClientRect();\n const ratioRaw =\n this.orientation() === 'vertical'\n ? 1 - (event.clientY - rect.top) / rect.height\n : (event.clientX - rect.left) / rect.width;\n const ratio = Math.max(0, Math.min(1, ratioRaw));\n return this.snap(this.min() + ratio * (this.max() - this.min()));\n }\n\n private snap(raw: number): number {\n return this.clamp(Math.round(raw / this.step()) * this.step());\n }\n\n private clamp(value: number): number {\n return Math.max(this.min(), Math.min(this.max(), value));\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst STAR_SIZE = { sm: 'size-4', default: 'size-5', lg: 'size-6' } as const;\n\n/** A star rating (`role=\"radiogroup\"`) with hover preview and keyboard support. */\n@Component({\n selector: 'bui-rating',\n host: {\n 'data-slot': 'rating',\n role: 'radiogroup',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n '(mouseleave)': 'hover.set(0)',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === star\"\n [attr.aria-label]=\"star + ' / ' + max()\"\n [attr.tabindex]=\"tabindexFor(star)\"\n [disabled]=\"readonly()\"\n class=\"rounded-sm transition-colors outline-none not-disabled:cursor-pointer focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [class]=\"current() >= star ? color() : 'text-muted-foreground/30'\"\n (click)=\"set(star)\"\n (mouseenter)=\"onHover(star)\"\n (focus)=\"onHover(star)\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n [class]=\"sizeClass()\"\n [attr.fill]=\"current() >= star ? 'currentColor' : 'none'\"\n >\n <polygon\n 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 />\n </svg>\n </button>\n }\n `,\n})\nexport class BuiRating {\n readonly value = model(0);\n readonly max = input(5);\n readonly readonly = input(false);\n readonly size = input<keyof typeof STAR_SIZE>('default');\n readonly color = input('text-amber-500');\n readonly ariaLabel = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly hover = signal(0);\n protected readonly current = computed(() => this.hover() || this.value());\n protected readonly stars = computed(() =>\n Array.from({ length: this.max() }, (_, index) => index + 1),\n );\n protected readonly sizeClass = computed(() => STAR_SIZE[this.size()]);\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-0.5', this.userClass()),\n );\n\n protected set(next: number): void {\n if (!this.readonly()) {\n this.value.set(next);\n }\n }\n protected onHover(next: number): void {\n if (!this.readonly()) {\n this.hover.set(next);\n }\n }\n protected tabindexFor(star: number): number {\n if (this.readonly()) {\n return -1;\n }\n return star === (this.value() || 1) ? 0 : -1;\n }\n protected onKeydown(event: KeyboardEvent): void {\n if (this.readonly()) {\n return;\n }\n if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.set(Math.min(this.max(), this.value() + 1));\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n event.preventDefault();\n this.set(Math.max(0, this.value() - 1));\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst FIELD_HEIGHT = { sm: 'h-7 text-xs', default: 'h-8 text-sm', lg: 'h-9 text-base' } as const;\nconst BTN_SIZE = {\n sm: 'w-7 [&_svg]:size-3',\n default: 'w-8 [&_svg]:size-3.5',\n lg: 'w-9 [&_svg]:size-4',\n} as const;\nconst FIELD_WIDTH = { sm: 'w-9', default: 'w-10', lg: 'w-12' } as const;\n\n/** A compact − [n] + quantity stepper (`role=\"group\"` with a `spinbutton` field). */\n@Component({\n selector: 'bui-quantity-selector',\n host: { 'data-slot': 'quantity-selector', role: 'group', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n aria-label=\"Decrease quantity\"\n [disabled]=\"disabled() || atMin()\"\n [class]=\"btnClass('e')\"\n (click)=\"dec()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n </button>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [class]=\"fieldClass()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n <button\n type=\"button\"\n aria-label=\"Increase quantity\"\n [disabled]=\"disabled() || atMax()\"\n [class]=\"btnClass('s')\"\n (click)=\"inc()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n </button>\n `,\n})\nexport class BuiQuantitySelector {\n readonly value = model(1);\n readonly min = input(1);\n readonly max = input<number | null>(null);\n readonly step = input(1);\n readonly size = input<keyof typeof FIELD_HEIGHT>('default');\n readonly disabled = input(false);\n readonly ariaLabel = input('Quantity');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly atMin = computed(() => this.value() <= this.min());\n protected readonly atMax = computed(() => {\n const max = this.max();\n return max !== null && this.value() >= max;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex items-stretch overflow-hidden rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-50 dark:bg-input/30',\n this.userClass(),\n ),\n );\n\n protected btnClass(side: 'e' | 's'): string {\n return cn(\n 'flex shrink-0 items-center justify-center text-muted-foreground transition-colors outline-none not-disabled:cursor-pointer hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',\n side === 'e' ? 'border-e' : 'border-s',\n 'border-input',\n BTN_SIZE[this.size()],\n FIELD_HEIGHT[this.size()],\n );\n }\n\n protected fieldClass(): string {\n return cn(\n 'min-w-0 border-0 bg-transparent text-center font-medium tabular-nums outline-none',\n FIELD_HEIGHT[this.size()],\n FIELD_WIDTH[this.size()],\n );\n }\n\n protected inc(): void {\n if (!this.disabled() && !this.atMax()) {\n this.value.set(this.clamp(this.value() + this.step()));\n }\n }\n\n protected dec(): void {\n if (!this.disabled() && !this.atMin()) {\n this.value.set(this.clamp(this.value() - this.step()));\n }\n }\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replaceAll(/[^\\d-]/g, '');\n this.value.set(raw === '' ? this.min() : Number(raw));\n }\n\n protected onBlur(): void {\n const current = this.value();\n this.value.set(this.clamp(Number.isNaN(current) ? this.min() : current));\n }\n\n private clamp(value: number): number {\n let result = Math.max(this.min(), value);\n const max = this.max();\n if (max !== null && result > max) {\n result = max;\n }\n return result;\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { buttonVariants } from '../button/button';\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Confirm dialog styling (`role=\"alertdialog\"`). Open it with the CDK `Dialog` service\n * (re-exported from `ng-blatui`) on a template whose root carries `buiAlertDialogContent`.\n */\n@Directive({\n selector: '[buiAlertDialogContent]',\n host: { 'data-slot': 'alert-dialog-content', role: 'alertdialog', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogContent {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border bg-background p-6 shadow-lg sm:max-w-lg',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogHeader]',\n host: { 'data-slot': 'alert-dialog-header', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogHeader {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-2 text-center sm:text-left', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogTitle]',\n host: { 'data-slot': 'alert-dialog-title', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogTitle {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('text-lg font-semibold', this.userClass()));\n}\n\n@Directive({\n selector: '[buiAlertDialogDescription]',\n host: { 'data-slot': 'alert-dialog-description', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogDescription {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('text-sm text-muted-foreground', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiAlertDialogFooter]',\n host: { 'data-slot': 'alert-dialog-footer', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogFooter {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.userClass()),\n );\n}\n\n/** Primary confirm action button. */\n@Directive({\n selector: 'button[buiAlertDialogAction]',\n host: { type: 'button', 'data-slot': 'alert-dialog-action', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogAction {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn(buttonVariants(), this.userClass()));\n}\n\n/** Cancel (dismiss) button. */\n@Directive({\n selector: 'button[buiAlertDialogCancel]',\n host: { type: 'button', 'data-slot': 'alert-dialog-cancel', '[class]': 'computedClass()' },\n})\nexport class BuiAlertDialogCancel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(buttonVariants({ variant: 'outline' }), this.userClass()),\n );\n}\n","import { afterNextRender, computed, Directive, ElementRef, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BASE =\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 flex w-full resize-none overflow-hidden rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50';\nconst SIZES = {\n sm: 'min-h-14 px-2.5 py-1.5 text-sm',\n default: 'min-h-16 px-3 py-2 text-base md:text-sm',\n lg: 'min-h-20 px-4 py-2.5 text-base',\n} as const;\n\n/**\n * A textarea that grows with its content. SSR-safe — the height is measured only in the\n * browser (via `afterNextRender` and the `input` event).\n */\n@Directive({\n selector: 'textarea[buiAutosizeTextarea]',\n host: {\n 'data-slot': 'autosize-textarea',\n '[attr.data-size]': 'size()',\n '[class]': 'computedClass()',\n '(input)': 'resize()',\n },\n})\nexport class BuiAutosizeTextarea {\n readonly size = input<keyof typeof SIZES>('default');\n readonly maxRows = input<number | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n protected readonly computedClass = computed(() => cn(BASE, SIZES[this.size()], this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.resize();\n });\n }\n\n protected resize(): void {\n const element = this.host.nativeElement;\n element.style.height = 'auto';\n let target = element.scrollHeight;\n const maxRows = this.maxRows();\n if (maxRows !== null) {\n const styles = getComputedStyle(element);\n let lineHeight = Number.parseFloat(styles.lineHeight);\n if (Number.isNaN(lineHeight)) {\n lineHeight = Number.parseFloat(styles.fontSize) * 1.2;\n }\n const padding =\n Number.parseFloat(styles.paddingTop) + Number.parseFloat(styles.paddingBottom);\n const border =\n Number.parseFloat(styles.borderTopWidth) + Number.parseFloat(styles.borderBottomWidth);\n const cap = lineHeight * maxRows + padding + border;\n if (target > cap) {\n target = cap;\n element.style.overflowY = 'auto';\n } else {\n element.style.overflowY = 'hidden';\n }\n }\n element.style.height = `${target}px`;\n }\n}\n","import { Menu } from '@angular/aria/menu';\nimport { computed, Directive, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Dropdown menu styling on top of Angular Aria's menu primitives (re-exported below).\n * Behaviour, roving focus, typeahead and ARIA roles come from `ngMenu` / `ngMenuItem` /\n * `ngMenuTrigger`. Wrap the trigger + menu in a `relative` element so the menu anchors.\n *\n * ```html\n * <div class=\"relative inline-block\">\n * <button buiButton ngMenuTrigger [menu]=\"m\">Open</button>\n * <div ngMenu #m=\"ngMenu\" buiDropdownMenu>\n * <div ngMenuItem value=\"edit\" buiDropdownMenuItem>Edit</div>\n * </div>\n * </div>\n * ```\n */\nexport { Menu, MenuBar, MenuContent, MenuItem, MenuTrigger } from '@angular/aria/menu';\n\n@Directive({\n selector: '[buiDropdownMenu]',\n host: {\n 'data-slot': 'dropdown-menu',\n '[hidden]': '!menu.visible()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiDropdownMenu {\n protected readonly menu = inject(Menu);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'absolute z-50 mt-1 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuItem]',\n host: { 'data-slot': 'dropdown-menu-item', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuItem {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuLabel]',\n host: { 'data-slot': 'dropdown-menu-label', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuLabel {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('px-2 py-1.5 text-sm font-medium', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[buiDropdownMenuSeparator]',\n host: { 'data-slot': 'dropdown-menu-separator', role: 'separator', '[class]': 'computedClass()' },\n})\nexport class BuiDropdownMenuSeparator {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('-mx-1 my-1 h-px bg-border', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Application menu bar styling on Angular Aria's `ngMenuBar`. Each top-level entry is a\n * `ngMenuTrigger` opening a `ngMenu` (style the menus with `buiDropdownMenu` /\n * `buiDropdownMenuItem`). `MenuBar` is re-exported from `ng-blatui`.\n *\n * ```html\n * <div ngMenuBar buiMenubar>\n * <button ngMenuTrigger [menu]=\"file\" buiMenubarTrigger>File</button>\n * <div ngMenu #file=\"ngMenu\" buiDropdownMenu>\n * <div ngMenuItem value=\"new\" buiDropdownMenuItem>New</div>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[buiMenubar]',\n host: { 'data-slot': 'menubar', '[class]': 'computedClass()' },\n})\nexport class BuiMenubar {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[buiMenubarTrigger]',\n host: { 'data-slot': 'menubar-trigger', '[class]': 'computedClass()' },\n})\nexport class BuiMenubarTrigger {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-none select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst TYPOGRAPHY = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight text-balance',\n h2: 'scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n p: 'leading-7 [&:not(:first-child)]:mt-6',\n lead: 'text-muted-foreground text-xl',\n large: 'text-lg font-semibold',\n small: 'text-sm leading-none font-medium',\n muted: 'text-muted-foreground text-sm',\n blockquote: 'mt-6 border-l-2 pl-6 italic',\n 'inline-code':\n 'bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold',\n list: 'my-6 ml-6 list-disc [&>li]:mt-2',\n gradient:\n 'bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-4xl font-extrabold tracking-tight text-transparent',\n} as const;\n\n/** Applies a typographic style. Put it on the matching element (e.g. `<h1 buiTypography variant=\"h1\">`). */\n@Directive({\n selector: '[buiTypography]',\n host: {\n 'data-slot': 'typography',\n '[attr.data-variant]': 'variant()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiTypography {\n readonly variant = input<keyof typeof TYPOGRAPHY>('p');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(TYPOGRAPHY[this.variant()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Decorative dotted background layer. Drop inside a `relative` container. */\n@Component({\n selector: 'bui-dot-pattern',\n host: {\n 'data-slot': 'dot-pattern',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n '[style.background-image]': 'bgImage()',\n '[style.background-size]': 'bgSize()',\n '[style.mask-image]': 'maskImage()',\n },\n template: '',\n})\nexport class BuiDotPattern {\n readonly size = input(1);\n readonly gap = input(16);\n readonly mask = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly bgImage = computed(\n () => `radial-gradient(currentColor ${this.size()}px, transparent 0)`,\n );\n protected readonly bgSize = computed(() => `${this.gap()}px ${this.gap()}px`);\n protected readonly maskImage = computed(() =>\n this.mask() ? 'radial-gradient(ellipse at center, #000 40%, transparent 75%)' : null,\n );\n protected readonly computedClass = computed(() =>\n cn('pointer-events-none absolute inset-0 block text-foreground/15', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Decorative grid background layer. Drop inside a `relative` container. */\n@Component({\n selector: 'bui-grid-pattern',\n host: {\n 'data-slot': 'grid-pattern',\n 'aria-hidden': 'true',\n '[class]': 'computedClass()',\n '[style.background-image]': 'bgImage()',\n '[style.background-size]': 'bgSize()',\n '[style.mask-image]': 'maskImage()',\n },\n template: '',\n})\nexport class BuiGridPattern {\n readonly gap = input(24);\n readonly lineWidth = input(1);\n readonly mask = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly bgImage = computed(() => {\n const width = this.lineWidth();\n return `linear-gradient(to right, currentColor ${width}px, transparent ${width}px), linear-gradient(to bottom, currentColor ${width}px, transparent ${width}px)`;\n });\n protected readonly bgSize = computed(() => `${this.gap()}px ${this.gap()}px`);\n protected readonly maskImage = computed(() =>\n this.mask() ? 'radial-gradient(ellipse at center, #000 0%, transparent 75%)' : null,\n );\n protected readonly computedClass = computed(() =>\n cn('pointer-events-none absolute inset-0 block text-foreground/10', this.userClass()),\n );\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SegmentOption {\n value: string;\n label: string;\n}\n\n/** A single-select segmented control (`role=\"radiogroup\"`) with arrow-key navigation. */\n@Component({\n selector: 'bui-segmented-control',\n host: {\n 'data-slot': 'segmented-control',\n role: 'radiogroup',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @for (option of normalized(); track option.value) {\n <button\n type=\"button\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === option.value\"\n [attr.tabindex]=\"tabindexFor(option.value)\"\n [disabled]=\"disabled()\"\n class=\"rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\"\n [class]=\"\n value() === option.value\n ? 'bg-background text-foreground shadow-sm'\n : 'text-muted-foreground hover:text-foreground'\n \"\n (click)=\"select(option.value)\"\n >\n {{ option.label }}\n </button>\n }\n `,\n})\nexport class BuiSegmentedControl {\n readonly value = model('');\n readonly options = input<readonly (SegmentOption | string)[]>([]);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly normalized = computed<SegmentOption[]>(() =>\n this.options().map((option) =>\n typeof option === 'string' ? { value: option, label: option } : option,\n ),\n );\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1 rounded-lg bg-muted p-1', this.userClass()),\n );\n\n protected select(next: string): void {\n if (!this.disabled()) {\n this.value.set(next);\n }\n }\n\n protected tabindexFor(optionValue: string): number {\n if (this.value() === optionValue) {\n return 0;\n }\n return this.value() === '' && this.normalized().at(0)?.value === optionValue ? 0 : -1;\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (\n this.disabled() ||\n !['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes(event.key)\n ) {\n return;\n }\n event.preventDefault();\n const items = this.normalized();\n if (items.length === 0) {\n return;\n }\n const current = Math.max(\n 0,\n items.findIndex((option) => option.value === this.value()),\n );\n const isForward = event.key === 'ArrowRight' || event.key === 'ArrowDown';\n const nextIndex = (current + (isForward ? 1 : -1) + items.length) % items.length;\n this.value.set(items[nextIndex].value);\n const buttons = this.host.nativeElement.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]');\n buttons[nextIndex].focus();\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A terminal / console window (always dark). Put prompt + output lines in the content;\n * helper classes `.prompt .ok .dim .path .warn` colour them.\n */\n@Component({\n selector: 'bui-terminal',\n host: { 'data-slot': 'terminal', '[class]': 'computedClass()' },\n template: `\n <div\n data-slot=\"terminal-bar\"\n class=\"flex items-center gap-2 border-b border-white/10 bg-zinc-900 px-3.5 py-2.5\"\n >\n @if (buttons()) {\n <span class=\"size-3 rounded-full\" style=\"background:#ff5f57\"></span>\n <span class=\"size-3 rounded-full\" style=\"background:#febc2e\"></span>\n <span class=\"size-3 rounded-full\" style=\"background:#28c840\"></span>\n }\n @if (title()) {\n <span\n data-slot=\"terminal-title\"\n class=\"truncate font-mono text-xs text-zinc-400\"\n [class.ml-2]=\"buttons()\"\n >{{ title() }}</span\n >\n }\n </div>\n <div\n data-slot=\"terminal-body\"\n class=\"overflow-x-auto p-4 font-mono text-[13px] leading-relaxed [&_.dim]:text-zinc-400 [&_.ok]:text-emerald-400 [&_.path]:text-cyan-400 [&_.prompt]:text-emerald-400 [&_.warn]:text-amber-400\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiTerminal {\n readonly title = input<string | null>(null);\n readonly buttons = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'block overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950 text-zinc-100 shadow-md',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ComparisonRow {\n feature: string;\n values: readonly (string | boolean | null)[];\n}\n\n/** A data-driven feature-comparison / pricing table. */\n@Component({\n selector: 'bui-comparison-table',\n host: { 'data-slot': 'comparison-table', '[class]': 'computedClass()' },\n template: `\n <table class=\"w-full text-sm\">\n <caption class=\"sr-only\">\n {{\n featureLabel()\n }}\n comparison\n </caption>\n <thead>\n <tr class=\"border-b bg-muted/40\">\n <th scope=\"col\" class=\"px-4 py-3 text-left font-medium text-muted-foreground\">\n {{ featureLabel() }}\n </th>\n @for (tier of tiers(); track tier) {\n <th\n scope=\"col\"\n class=\"px-4 py-3 text-center font-semibold\"\n [class]=\"$index === highlightIndex() ? 'text-primary' : ''\"\n >\n {{ tier }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track row.feature) {\n <tr class=\"border-b last:border-0\">\n <th scope=\"row\" class=\"px-4 py-3 text-left font-medium\">{{ row.feature }}</th>\n @for (value of row.values; track $index) {\n <td\n class=\"px-4 py-3 text-center\"\n [class]=\"$index === highlightIndex() ? 'bg-muted/30' : ''\"\n >\n @if (value === true) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-label=\"Included\"\n class=\"mx-auto size-4 text-primary\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n } @else if (value === false || value === null) {\n <span class=\"text-muted-foreground\" aria-label=\"Not included\">—</span>\n } @else {\n {{ value }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class BuiComparisonTable {\n readonly tiers = input<readonly string[]>([]);\n readonly rows = input<readonly ComparisonRow[]>([]);\n readonly highlight = input<number | string | null>(null);\n readonly featureLabel = input('Feature');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly highlightIndex = computed(() => {\n const highlight = this.highlight();\n if (typeof highlight === 'number') {\n return highlight;\n }\n return highlight === null ? -1 : this.tiers().indexOf(highlight);\n });\n protected readonly computedClass = computed(() =>\n cn('w-full overflow-x-auto rounded-xl border', this.userClass()),\n );\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A card that flips to reveal its back. Default content is the front; project the back\n * with `[buiFlipBack]`. `trigger=\"hover\"` (default) or `\"click\"` (keyboard-accessible).\n */\n@Component({\n selector: 'bui-flip-card',\n host: {\n 'data-slot': 'flip-card',\n '[class]': 'computedClass()',\n '[style.perspective]': \"'1000px'\",\n '[style.height]': 'height()',\n '[attr.role]': \"trigger() === 'click' ? 'button' : null\",\n '[attr.tabindex]': \"trigger() === 'click' ? 0 : null\",\n '[attr.aria-pressed]': \"trigger() === 'click' ? flipped() : null\",\n '(mouseenter)': 'onHover(true)',\n '(mouseleave)': 'onHover(false)',\n '(focusin)': 'onHover(true)',\n '(focusout)': 'onHover(false)',\n '(click)': 'onClick()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n <div\n data-slot=\"flip-card-flipper\"\n class=\"relative block size-full rounded-xl transition-transform duration-500 [transform-style:preserve-3d]\"\n [class]=\"flipped() ? '[transform:rotateY(180deg)]' : ''\"\n >\n <div\n data-slot=\"flip-card-front\"\n class=\"absolute inset-0 flex flex-col overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm [backface-visibility:hidden]\"\n [attr.aria-hidden]=\"flipped()\"\n >\n <ng-content />\n </div>\n <div\n data-slot=\"flip-card-back\"\n class=\"absolute inset-0 flex [transform:rotateY(180deg)] flex-col overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm [backface-visibility:hidden]\"\n [attr.aria-hidden]=\"!flipped()\"\n >\n <ng-content select=\"[buiFlipBack]\" />\n </div>\n </div>\n `,\n})\nexport class BuiFlipCard {\n readonly trigger = input<'hover' | 'click'>('hover');\n readonly height = input('16rem');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly flipped = signal(false);\n protected readonly computedClass = computed(() => cn('relative block w-full', this.userClass()));\n\n protected onHover(shouldFlip: boolean): void {\n if (this.trigger() === 'hover') {\n this.flipped.set(shouldFlip);\n }\n }\n\n protected onClick(): void {\n if (this.trigger() === 'click') {\n this.flipped.update((value) => !value);\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!(this.trigger() === 'click' && (event.key === 'Enter' || event.key === ' '))) {\n return;\n }\n\n event.preventDefault();\n this.flipped.update((value) => !value);\n }\n}\n","import { Component, computed, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A card with a radial spotlight glow that follows the cursor on hover. */\n@Component({\n selector: 'bui-spotlight-card',\n host: {\n 'data-slot': 'spotlight-card',\n '[class]': 'computedClass()',\n '(mousemove)': 'track($event)',\n '(mouseenter)': 'hover.set(true)',\n '(mouseleave)': 'hover.set(false)',\n },\n template: `\n <div\n aria-hidden=\"true\"\n class=\"pointer-events-none absolute inset-0 rounded-[inherit] transition-opacity duration-300\"\n [style.opacity]=\"hover() ? 1 : 0\"\n [style.background]=\"glowStyle()\"\n ></div>\n <div class=\"relative z-10\"><ng-content /></div>\n `,\n})\nexport class BuiSpotlightCard {\n readonly color = input<string | null>(null);\n readonly size = input(350);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly hover = signal(false);\n protected readonly glowStyle = computed(() => {\n const glow = this.color() ?? 'color-mix(in oklab, var(--foreground) 14%, transparent)';\n return `radial-gradient(circle ${this.size()}px at var(--x, 50%) var(--y, 50%), ${glow}, transparent 80%)`;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative overflow-hidden rounded-xl border bg-card p-6 text-card-foreground shadow-sm',\n this.userClass(),\n ),\n );\n\n protected track(event: MouseEvent): void {\n const element = this.host.nativeElement;\n const rect = element.getBoundingClientRect();\n element.style.setProperty('--x', `${event.clientX - rect.left}px`);\n element.style.setProperty('--y', `${event.clientY - rect.top}px`);\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A card that tilts in 3D toward the cursor. SSR-safe (geometry read on mousemove). */\n@Component({\n selector: 'bui-tilt-card',\n host: { 'data-slot': 'tilt-card', '[class]': 'computedClass()' },\n template: `\n <div\n class=\"relative block overflow-hidden rounded-xl border bg-card text-card-foreground shadow-sm [transform-style:preserve-3d]\"\n [class]=\"active() ? 'transition-none' : 'transition-transform duration-500 ease-out'\"\n [style.transform]=\"cardTransform()\"\n (mousemove)=\"move($event)\"\n (mouseleave)=\"leave()\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class BuiTiltCard {\n readonly max = input(10);\n readonly scaleTo = input(1.05);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly active = signal(false);\n private readonly rx = signal(0);\n private readonly ry = signal(0);\n protected readonly cardTransform = computed(() => {\n const scale = this.active() ? this.scaleTo() : 1;\n return `rotateX(${this.rx()}deg) rotateY(${this.ry()}deg) scale(${scale})`;\n });\n protected readonly computedClass = computed(() =>\n cn('block [perspective:1000px]', this.userClass()),\n );\n\n protected move(event: MouseEvent): void {\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const px = (event.clientX - rect.left) / rect.width;\n const py = (event.clientY - rect.top) / rect.height;\n this.active.set(true);\n this.ry.set((px - 0.5) * 2 * this.max());\n this.rx.set(-(py - 0.5) * 2 * this.max());\n }\n\n protected leave(): void {\n this.active.set(false);\n this.rx.set(0);\n this.ry.set(0);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\n/**\n * An accessible select (combobox + listbox) using the `aria-activedescendant` pattern:\n * focus stays on the trigger while arrows move the active option. Full keyboard support\n * (arrows, Home/End, Enter, Escape) and outside-click close. SSR-safe.\n */\n@Component({\n selector: 'bui-select',\n host: {\n 'data-slot': 'select',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <button\n type=\"button\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n aria-haspopup=\"listbox\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-activedescendant]=\"open() ? listId + '-' + active() : null\"\n [attr.data-placeholder]=\"selectedLabel() ? null : ''\"\n [disabled]=\"disabled()\"\n class=\"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground\"\n (click)=\"toggle()\"\n (keydown)=\"onKeydown($event)\"\n >\n <span class=\"truncate\">{{ selectedLabel() || placeholder() }}</span>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n @if (open()) {\n <ul\n [id]=\"listId\"\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n @for (option of options(); track option.value; let i = $index) {\n <li\n [id]=\"listId + '-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value()\"\n [attr.aria-disabled]=\"option.disabled ? true : null\"\n class=\"relative flex cursor-default items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n (mouseenter)=\"active.set(i)\"\n >\n <span class=\"truncate\">{{ option.label }}</span>\n @if (option.value === value()) {\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-4\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n }\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiSelect {\n readonly value = model('');\n readonly options = input<readonly SelectOption[]>([]);\n readonly placeholder = input('Select…');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly listId = inject(_IdGenerator).getId('bui-select-');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly selectedLabel = computed(\n () => this.options().find((option) => option.value === this.value())?.label ?? '',\n );\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected toggle(): void {\n if (this.open()) {\n this.close();\n } else {\n this.openList();\n }\n }\n\n protected select(option: SelectOption): void {\n if (option.disabled) {\n return;\n }\n this.value.set(option.value);\n this.close();\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if (!this.open()) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n this.openList();\n }\n return;\n }\n const options = this.options();\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n this.active.set(Math.min(options.length - 1, this.active() + 1));\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n break;\n }\n case 'Home': {\n event.preventDefault();\n this.active.set(0);\n break;\n }\n case 'End': {\n event.preventDefault();\n this.active.set(options.length - 1);\n break;\n }\n case 'Enter':\n case ' ': {\n event.preventDefault();\n if (options.length > 0) {\n this.select(options[this.active()]);\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n this.close();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n }\n\n private openList(): void {\n const current = this.options().findIndex((option) => option.value === this.value());\n this.active.set(current === -1 ? 0 : current);\n this.open.set(true);\n }\n\n private close(): void {\n this.open.set(false);\n }\n}\n","import { afterNextRender, Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n subtle: 'bg-card text-foreground hover:bg-accent hover:text-accent-foreground border',\n} as const;\n\n/**\n * A floating \"scroll to top\" button that reveals itself once the page scrolls past\n * `threshold` px. SSR-safe — the scroll position is only read in the browser.\n */\n@Component({\n selector: 'bui-back-to-top',\n host: {\n 'data-slot': 'back-to-top',\n '[hidden]': '!shown()',\n '[class]': 'computedClass()',\n '(window:scroll)': 'onScroll()',\n },\n template: `\n <button\n type=\"button\"\n aria-label=\"Back to top\"\n class=\"inline-flex size-10 items-center justify-center rounded-full shadow-md transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [class]=\"variantClass()\"\n (click)=\"toTop()\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n class=\"size-5\"\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n </button>\n `,\n})\nexport class BuiBackToTop {\n readonly threshold = input(300);\n readonly variant = input<keyof typeof VARIANTS>('primary');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly shown = signal(false);\n protected readonly variantClass = computed(() => VARIANTS[this.variant()]);\n protected readonly computedClass = computed(() =>\n cn('fixed end-6 bottom-6 z-40 block', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.onScroll();\n });\n }\n\n protected onScroll(): void {\n this.shown.set(globalThis.scrollY > this.threshold());\n }\n\n protected toTop(): void {\n globalThis.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n/**\n * A filterable combobox: a text input (`role=\"combobox\"`, `aria-autocomplete=\"list\"`) over a\n * filtered listbox, using the `aria-activedescendant` pattern. Full keyboard + outside-click.\n */\n@Component({\n selector: 'bui-combobox',\n host: {\n 'data-slot': 'combobox',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <input\n type=\"text\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-activedescendant]=\"open() ? listId + '-' + active() : null\"\n [value]=\"display()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n class=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\"\n (input)=\"onInput($event)\"\n (focus)=\"openList()\"\n (keydown)=\"onKeydown($event)\"\n />\n @if (open() && filtered().length > 0) {\n <ul\n [id]=\"listId\"\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n @for (option of filtered(); track option.value; let i = $index) {\n <li\n [id]=\"listId + '-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value()\"\n class=\"relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n (mouseenter)=\"active.set(i)\"\n >\n {{ option.label }}\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiCombobox {\n readonly value = model('');\n readonly options = input<readonly ComboboxOption[]>([]);\n readonly placeholder = input('Search…');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly listId = inject(_IdGenerator).getId('bui-combobox-');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly query = signal('');\n protected readonly selectedLabel = computed(\n () => this.options().find((option) => option.value === this.value())?.label ?? '',\n );\n protected readonly display = computed(() => (this.open() ? this.query() : this.selectedLabel()));\n protected readonly filtered = computed(() => {\n const query = this.query().trim().toLowerCase();\n return query === ''\n ? this.options()\n : this.options().filter((option) => option.label.toLowerCase().includes(query));\n });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected onInput(event: Event): void {\n this.query.set((event.target as HTMLInputElement).value);\n this.active.set(0);\n this.open.set(true);\n }\n\n protected openList(): void {\n this.query.set('');\n this.active.set(0);\n this.open.set(true);\n }\n\n protected select(option: ComboboxOption): void {\n this.value.set(option.value);\n this.query.set('');\n this.open.set(false);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if (event.key === 'Escape') {\n this.open.set(false);\n return;\n }\n if (!this.open() && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {\n event.preventDefault();\n this.openList();\n return;\n }\n const items = this.filtered();\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n this.active.set(Math.min(items.length - 1, this.active() + 1));\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n break;\n }\n case 'Enter': {\n if (this.open() && items.length > 0) {\n event.preventDefault();\n this.select(items[this.active()]);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (!(this.open() && !this.host.nativeElement.contains(event.target as Node))) {\n return;\n }\n\n this.open.set(false);\n this.query.set('');\n }\n}\n","import { afterNextRender, Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A live countdown to a target time (`role=\"timer\"`). SSR-safe — ticks only in the browser. */\n@Component({\n selector: 'bui-countdown',\n host: {\n 'data-slot': 'countdown',\n role: 'timer',\n 'aria-live': 'off',\n '[class]': 'computedClass()',\n },\n template: `\n @if (done()) {\n <span data-slot=\"countdown-expired\" class=\"text-sm font-medium text-muted-foreground\">\n {{ expired() }}\n </span>\n } @else {\n <div class=\"flex items-center gap-2\">\n @for (unit of units(); track unit.key) {\n <div\n data-slot=\"countdown-unit\"\n class=\"flex min-w-[3.25rem] flex-col items-center rounded-lg border bg-card px-2 py-1.5 shadow-xs\"\n >\n <span class=\"text-xl font-bold tabular-nums\">{{ unit.value }}</span>\n <span class=\"text-[10px] font-medium tracking-wide text-muted-foreground uppercase\">\n {{ unit.label }}\n </span>\n </div>\n }\n </div>\n }\n `,\n})\nexport class BuiCountdown implements OnDestroy {\n readonly to = input.required<string | number | Date>();\n readonly expired = input('Expired');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly now = signal(Date.now());\n private timer: ReturnType<typeof setInterval> | undefined;\n private readonly targetMs = computed(() => new Date(this.to()).getTime());\n private readonly diff = computed(() => Math.max(0, this.targetMs() - this.now()));\n protected readonly done = computed(() => this.diff() <= 0);\n protected readonly units = computed(() => {\n const diff = this.diff();\n const pad = (value: number): string => String(value).padStart(2, '0');\n return [\n { key: 'days', label: 'Days', value: pad(Math.floor(diff / 86_400_000)) },\n { key: 'hours', label: 'Hrs', value: pad(Math.floor(diff / 3_600_000) % 24) },\n { key: 'minutes', label: 'Min', value: pad(Math.floor(diff / 60_000) % 60) },\n { key: 'seconds', label: 'Sec', value: pad(Math.floor(diff / 1000) % 60) },\n ];\n });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-2', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.timer = setInterval(() => {\n this.now.set(Date.now());\n }, 1000);\n });\n }\n\n ngOnDestroy(): void {\n if (this.timer !== undefined) {\n clearInterval(this.timer);\n }\n }\n}\n","import { afterNextRender, Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Animates a number counting up to its target on first render. The animated digits are\n * `aria-hidden`; an sr-only span carries the final value (SSR/no-JS read the real number).\n */\n@Component({\n selector: 'bui-number-ticker',\n host: { 'data-slot': 'number-ticker', '[class]': 'computedClass()' },\n template: `\n <span aria-hidden=\"true\">{{ format(current()) }}</span>\n <span class=\"sr-only\">{{ format(value()) }}</span>\n `,\n})\nexport class BuiNumberTicker {\n readonly value = input(0);\n readonly from = input(0);\n readonly duration = input(1500);\n readonly decimals = input(0);\n readonly prefix = input('');\n readonly suffix = input('');\n readonly separator = input(',');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly current = signal(0);\n protected readonly computedClass = computed(() => cn('tabular-nums', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.animate();\n });\n }\n\n protected format(value: number): string {\n const fixed = value.toFixed(Math.max(0, this.decimals()));\n const [integer, decimal] = fixed.split('.');\n const decimalPart = decimal ? `.${decimal}` : '';\n return this.prefix() + this.group(integer) + decimalPart + this.suffix();\n }\n\n private group(value: string): string {\n return value.length <= 3\n ? value\n : this.group(value.slice(0, -3)) + this.separator() + value.slice(-3);\n }\n\n private animate(): void {\n const start = this.from();\n const end = this.value();\n const duration = this.duration();\n if (duration <= 0) {\n this.current.set(end);\n return;\n }\n this.current.set(start);\n const startTime = performance.now();\n const step = (time: number): void => {\n const progress = Math.min(1, (time - startTime) / duration);\n this.current.set(start + (end - start) * progress);\n if (progress < 1) {\n requestAnimationFrame(step);\n }\n };\n requestAnimationFrame(step);\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BASE =\n 'inline rounded-xs underline-offset-4 outline-none transition-colors focus-visible:ring-ring/50 focus-visible:ring-[3px]';\n\nconst VARIANTS = {\n default: 'text-primary underline decoration-primary/40 hover:decoration-primary',\n muted: 'text-muted-foreground underline decoration-muted-foreground/30 hover:text-foreground',\n subtle: 'text-current no-underline hover:underline',\n} as const;\n\n/** A styled anchor. Set `external` for `target=_blank` + safe `rel`. */\n@Directive({\n selector: 'a[buiLink]',\n host: {\n 'data-slot': 'link',\n '[class]': 'computedClass()',\n '[attr.target]': \"external() ? '_blank' : null\",\n '[attr.rel]': \"external() ? 'noopener noreferrer' : null\",\n },\n})\nexport class BuiLink {\n readonly variant = input<keyof typeof VARIANTS>('default');\n readonly external = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(BASE, VARIANTS[this.variant()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst PRESETS = {\n brand: ['#6366f1', '#a855f7', '#ec4899'],\n sunset: ['#f97316', '#ef4444', '#ec4899'],\n ocean: ['#06b6d4', '#3b82f6', '#6366f1'],\n candy: ['#ec4899', '#d946ef', '#8b5cf6'],\n gold: ['#f59e0b', '#eab308', '#fbbf24'],\n aurora: ['#22d3ee', '#a78bfa', '#34d399'],\n flamingo: ['#fb7185', '#f472b6', '#c084fc'],\n mint: ['#34d399', '#10b981', '#059669'],\n} as const;\n\n/** Renders accessible text painted with a CSS gradient, with an optional shimmer. */\n@Component({\n selector: 'bui-gradient-text',\n host: {\n 'data-slot': 'gradient-text',\n '[class]': 'computedClass()',\n '[style.background-image]': 'gradient()',\n '[style.background-size]': \"animate() ? '200% auto' : null\",\n '[attr.data-animate]': 'animate()',\n },\n styles: [\n `\n :host {\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n :host([data-animate='true']) {\n animation: bui-gradient-shimmer 3s linear infinite;\n }\n @keyframes bui-gradient-shimmer {\n to {\n background-position: 200% center;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n :host([data-animate='true']) {\n animation: none;\n }\n }\n `,\n ],\n template: `<ng-content />`,\n})\nexport class BuiGradientText {\n readonly preset = input<keyof typeof PRESETS>('brand');\n readonly from = input<string | null>(null);\n readonly via = input<string | null>(null);\n readonly to = input<string | null>(null);\n readonly animate = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly gradient = computed(() => {\n const preset = PRESETS[this.preset()];\n const from = this.from() ?? preset[0];\n const via = this.via() ?? preset[1];\n const to = this.to() ?? preset[2];\n return `linear-gradient(to right, ${from}, ${via}, ${to})`;\n });\n protected readonly computedClass = computed(() =>\n cn('inline-block bg-clip-text font-bold', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * A page title block with optional description and a slot for actions (`[buiPageHeaderActions]`).\n * Provide the title via the `heading` input or by projecting content.\n */\n@Component({\n selector: 'bui-page-header',\n host: { 'data-slot': 'page-header', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div class=\"flex flex-col gap-1.5\">\n <h1 class=\"text-2xl font-bold tracking-tight text-balance text-foreground sm:text-3xl\">\n {{ heading() }}<ng-content />\n </h1>\n @if (description()) {\n <p class=\"text-balance text-muted-foreground\">{{ description() }}</p>\n }\n </div>\n <div class=\"flex shrink-0 flex-wrap items-center gap-2\">\n <ng-content select=\"[buiPageHeaderActions]\" />\n </div>\n </div>\n `,\n})\nexport class BuiPageHeader {\n readonly heading = input('');\n readonly description = input('');\n readonly separator = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex flex-col gap-4', this.separator() && 'border-b pb-6', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A styled blockquote / testimonial with optional attribution (author, role, avatar). */\n@Component({\n selector: 'bui-quote',\n host: { 'data-slot': 'quote', '[class]': 'computedClass()' },\n template: `\n <svg\n class=\"mb-3 size-8 text-muted-foreground/25\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 4C6.46 4 4 6.46 4 9.5c0 3.04 2.46 5.5 5.5 5.5.17 0 .33-.01.5-.03V15c0 2.21-1.79 4-4 4a1 1 0 1 0 0 2c3.31 0 6-2.69 6-6V9.5C12 6.46 9.54 4 9.5 4Zm10 0C16.46 4 14 6.46 14 9.5c0 3.04 2.46 5.5 5.5 5.5.17 0 .33-.01.5-.03V15c0 2.21-1.79 4-4 4a1 1 0 1 0 0 2c3.31 0 6-2.69 6-6V9.5C22 6.46 19.54 4 19.5 4Z\"\n />\n </svg>\n <blockquote\n [attr.cite]=\"cite() || null\"\n class=\"text-lg leading-relaxed font-medium text-balance sm:text-xl\"\n >\n <ng-content />\n </blockquote>\n @if (author() || role() || avatar()) {\n <figcaption class=\"mt-5 flex items-center gap-3\">\n @if (avatar()) {\n <img\n [src]=\"avatar()\"\n [alt]=\"author()\"\n loading=\"lazy\"\n class=\"size-10 shrink-0 rounded-full object-cover\"\n />\n }\n <div class=\"text-sm\">\n @if (author()) {\n <div class=\"font-semibold\">{{ author() }}</div>\n }\n @if (role()) {\n <div class=\"text-muted-foreground\">{{ role() }}</div>\n }\n </div>\n </figcaption>\n }\n `,\n})\nexport class BuiQuote {\n readonly author = input('');\n readonly role = input('');\n readonly avatar = input('');\n readonly cite = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('relative block max-w-2xl text-foreground', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SIZES = { sm: 'text-sm', default: 'text-base', lg: 'text-2xl' } as const;\nconst COMPARE_SIZES = { sm: 'text-xs', default: 'text-sm', lg: 'text-base' } as const;\n\n/** A price display with optional compare-at (strikethrough) and a discount badge. */\n@Component({\n selector: 'bui-price',\n host: { 'data-slot': 'price', '[class]': 'computedClass()' },\n template: `\n <span [class]=\"currentClass()\">{{ format(amount()) }}</span>\n @if (onSale()) {\n <s [class]=\"compareClass()\"\n ><span class=\"sr-only\">was </span>{{ format(compareAt() ?? 0) }}</s\n >\n @if (showDiscount() && discount() > 0) {\n <span\n class=\"inline-flex items-center rounded-md bg-emerald-100 px-1.5 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400\"\n >\n <span class=\"sr-only\">save </span>-{{ discount() }}%\n </span>\n }\n }\n `,\n})\nexport class BuiPrice {\n readonly amount = input(0);\n readonly compareAt = input<number | null>(null);\n readonly currency = input('$');\n readonly size = input<keyof typeof SIZES>('default');\n readonly showDiscount = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly onSale = computed(() => {\n const compareAt = this.compareAt();\n return compareAt !== null && compareAt > this.amount();\n });\n protected readonly discount = computed(() => {\n const compareAt = this.compareAt();\n return this.onSale() && compareAt !== null && compareAt > 0\n ? Math.round(((compareAt - this.amount()) / compareAt) * 100)\n : 0;\n });\n protected readonly currentClass = computed(() =>\n cn(\n SIZES[this.size()],\n this.onSale() ? 'text-emerald-700 dark:text-emerald-400' : 'text-foreground',\n ),\n );\n protected readonly compareClass = computed(() =>\n cn(COMPARE_SIZES[this.size()], 'text-muted-foreground'),\n );\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-baseline gap-2 font-medium tabular-nums', this.userClass()),\n );\n\n protected format(value: number): string {\n return (\n this.currency() +\n value.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })\n );\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst DIRECTIONS = { col: 'flex-col', row: 'flex-row' } as const;\nconst GAPS: Record<string, string> = {\n '0': 'gap-0',\n '1': 'gap-1',\n '2': 'gap-2',\n '3': 'gap-3',\n '4': 'gap-4',\n '5': 'gap-5',\n '6': 'gap-6',\n '8': 'gap-8',\n '10': 'gap-10',\n '12': 'gap-12',\n};\nconst ALIGN: Record<string, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n};\nconst JUSTIFY: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n};\n\n/** A flexbox stack layout helper (direction, gap, alignment). */\n@Directive({\n selector: '[buiStack]',\n host: { 'data-slot': 'stack', '[class]': 'computedClass()' },\n})\nexport class BuiStack {\n readonly direction = input<keyof typeof DIRECTIONS>('col');\n readonly gap = input('4');\n readonly align = input('');\n readonly justify = input('');\n readonly wrap = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex',\n DIRECTIONS[this.direction()],\n GAPS[this.gap()],\n ALIGN[this.align()],\n JUSTIFY[this.justify()],\n this.wrap() && 'flex-wrap',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\n/**\n * Re-themes everything inside it to a custom accent colour by overriding the primary\n * design tokens locally. Renders as `display: contents` so it adds no box.\n */\n@Directive({\n selector: '[buiAccent]',\n host: { 'data-slot': 'accent', class: 'contents', '[style]': 'styleVars()' },\n})\nexport class BuiAccent {\n readonly color = input<string | null>(null);\n readonly foreground = input('#ffffff');\n protected readonly styleVars = computed(() => {\n const color = this.color();\n if (!color) {\n return null;\n }\n const fg = this.foreground();\n return `--primary:${color};--secondary:${color};--ring:${color};--sidebar-primary:${color};--primary-foreground:${fg};`;\n });\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Groups several `<kbd>` keys into one inline cluster. */\n@Directive({\n selector: 'kbd[buiKbdGroup]',\n host: { 'data-slot': 'kbd-group', '[class]': 'computedClass()' },\n})\nexport class BuiKbdGroup {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst COLORS = {\n online: 'bg-emerald-500',\n away: 'bg-amber-500',\n busy: 'bg-red-500',\n offline: 'bg-gray-400',\n} as const;\nconst LABELS = { online: 'Online', away: 'Away', busy: 'Busy', offline: 'Offline' } as const;\nconst SIZES = { sm: 'size-2', default: 'size-2.5', lg: 'size-3' } as const;\n\n/** A small status dot (online/away/busy/offline). Status is never colour-only — the label is always present. */\n@Component({\n selector: 'bui-presence',\n host: { 'data-slot': 'presence', '[class]': 'computedClass()' },\n styles: [\n `\n @media (prefers-reduced-motion: reduce) {\n .bui-presence-ping {\n animation: none;\n }\n }\n `,\n ],\n template: `\n <span class=\"relative flex\" [class]=\"sizeClass()\">\n @if (pulse() && status() === 'online') {\n <span\n class=\"bui-presence-ping absolute inline-flex size-full animate-ping rounded-full opacity-75\"\n [class]=\"colorClass()\"\n aria-hidden=\"true\"\n ></span>\n }\n <span\n class=\"relative inline-flex size-full rounded-full ring-2 ring-background\"\n [class]=\"colorClass()\"\n aria-hidden=\"true\"\n ></span>\n </span>\n <span [class]=\"showLabel() ? 'text-sm' : 'sr-only'\">{{ labelText() }}</span>\n `,\n})\nexport class BuiPresence {\n readonly status = input<keyof typeof COLORS>('online');\n readonly size = input<keyof typeof SIZES>('default');\n readonly pulse = input(false);\n readonly label = input('');\n readonly showLabel = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly colorClass = computed(() => COLORS[this.status()]);\n protected readonly sizeClass = computed(() => SIZES[this.size()]);\n protected readonly labelText = computed(() => this.label() || LABELS[this.status()]);\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-1.5', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A vertical timeline list. Use `li[buiTimelineItem]` for each entry. */\n@Directive({\n selector: 'ol[buiTimeline]',\n host: { 'data-slot': 'timeline', '[class]': 'computedClass()' },\n})\nexport class BuiTimeline {\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex flex-col [&>li:last-child_[data-slot=timeline-line]]:hidden',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A single timeline entry: a dot + connector line and a content area. */\n@Component({\n selector: 'li[buiTimelineItem]',\n host: { 'data-slot': 'timeline-item', '[class]': 'computedClass()' },\n template: `\n <div class=\"relative flex flex-col items-center\">\n <span\n data-slot=\"timeline-dot\"\n class=\"z-10 flex size-8 shrink-0 items-center justify-center rounded-full border\"\n [class]=\"dotClass()\"\n >\n <span\n class=\"size-2 rounded-full\"\n [class]=\"active() ? 'bg-primary-foreground' : 'bg-muted-foreground'\"\n ></span>\n </span>\n <span data-slot=\"timeline-line\" class=\"mt-1 w-px flex-1 bg-border\" aria-hidden=\"true\"></span>\n </div>\n <div class=\"flex-1 pt-1 pb-1\">\n @if (time()) {\n <div\n data-slot=\"timeline-time\"\n class=\"text-xs font-medium text-muted-foreground tabular-nums\"\n >\n {{ time() }}\n </div>\n }\n @if (title()) {\n <h3 data-slot=\"timeline-title\" class=\"text-sm font-semibold\">{{ title() }}</h3>\n }\n <ng-content />\n </div>\n `,\n})\nexport class BuiTimelineItem {\n readonly time = input('');\n readonly title = input('');\n readonly active = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly dotClass = computed(() =>\n this.active()\n ? 'bg-primary text-primary-foreground border-primary'\n : 'bg-background text-muted-foreground',\n );\n protected readonly computedClass = computed(() =>\n cn('relative flex gap-4 pb-8 last:pb-0', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A description list (`<dl>`). Children should be `bui-description-item`. */\n@Directive({\n selector: 'dl[buiDescriptionList]',\n host: { 'data-slot': 'description-list', '[class]': 'computedClass()' },\n})\nexport class BuiDescriptionList {\n readonly layout = input<'horizontal' | 'vertical'>('horizontal');\n readonly bordered = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n this.bordered()\n ? 'divide-y divide-border rounded-xl border bg-card text-card-foreground'\n : 'flex flex-col gap-4',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiDescriptionList } from './description-list';\n\n/** A term/description row. Inherits horizontal/bordered layout from its parent list. */\n@Component({\n selector: 'bui-description-item',\n host: { 'data-slot': 'description-item', '[class]': 'computedClass()' },\n template: `\n <dt [class]=\"termClass()\">{{ term() }}</dt>\n <dd [class]=\"descriptionClass()\"><ng-content /></dd>\n `,\n})\nexport class BuiDescriptionItem {\n readonly term = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly list = inject(BuiDescriptionList, { optional: true });\n protected readonly horizontal = computed(\n () => (this.list?.layout() ?? 'horizontal') === 'horizontal',\n );\n protected readonly termClass = computed(() =>\n cn('text-sm text-muted-foreground', this.horizontal() && 'sm:col-span-1'),\n );\n protected readonly descriptionClass = computed(() =>\n cn('text-sm text-foreground', this.horizontal() && 'sm:col-span-2'),\n );\n protected readonly computedClass = computed(() =>\n cn(\n this.horizontal() ? 'grid gap-1 sm:grid-cols-3 sm:gap-4' : 'flex flex-col gap-1',\n this.list?.bordered() && 'px-4 py-3',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst COLUMNS: Record<number, string> = {\n 1: 'columns-1',\n 2: 'columns-1 sm:columns-2',\n 3: 'columns-1 sm:columns-2 lg:columns-3',\n 4: 'columns-1 sm:columns-2 lg:columns-3 xl:columns-4',\n 5: 'columns-1 sm:columns-2 lg:columns-3 xl:columns-5',\n 6: 'columns-1 sm:columns-2 lg:columns-3 xl:columns-4 2xl:columns-6',\n};\nconst GAPS: Record<string, string> = {\n '0': 'gap-0 [&>*]:mb-0',\n '2': 'gap-2 [&>*]:mb-2',\n '3': 'gap-3 [&>*]:mb-3',\n '4': 'gap-4 [&>*]:mb-4',\n '6': 'gap-6 [&>*]:mb-6',\n '8': 'gap-8 [&>*]:mb-8',\n};\n\n/** A Pinterest-style masonry grid using native CSS multi-column layout. */\n@Directive({\n selector: '[buiMasonry]',\n host: { 'data-slot': 'masonry', '[class]': 'computedClass()' },\n})\nexport class BuiMasonry {\n readonly columns = input(3);\n readonly gap = input('4');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(COLUMNS[this.columns()], '[&>*]:break-inside-avoid', GAPS[this.gap()], this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst COLUMNS: Record<number, string> = {\n 2: 'sm:grid-cols-2',\n 3: 'sm:grid-cols-2 lg:grid-cols-3',\n 4: 'sm:grid-cols-2 lg:grid-cols-4',\n};\n\n/** A bento grid container. Use `bui-bento-item` for cells. */\n@Directive({\n selector: '[buiBentoGrid]',\n host: { 'data-slot': 'bento-grid', '[class]': 'computedClass()' },\n})\nexport class BuiBentoGrid {\n readonly columns = input(3);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'grid auto-rows-[minmax(10rem,auto)] grid-cols-1 gap-4',\n COLUMNS[this.columns()],\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst COL_SPAN: Record<number, string> = { 1: '', 2: 'lg:col-span-2', 3: 'lg:col-span-3' };\nconst ROW_SPAN: Record<number, string> = { 1: '', 2: 'row-span-2' };\n\n/** A bento grid cell with optional title/description and configurable span. */\n@Component({\n selector: 'bui-bento-item',\n host: { 'data-slot': 'bento-item', '[class]': 'computedClass()' },\n template: `\n @if (title()) {\n <h3 class=\"font-semibold\">{{ title() }}</h3>\n }\n @if (description()) {\n <p class=\"text-sm text-muted-foreground\">{{ description() }}</p>\n }\n <ng-content />\n `,\n})\nexport class BuiBentoItem {\n readonly title = input('');\n readonly description = input('');\n readonly colSpan = input(1);\n readonly rowSpan = input(1);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col gap-3 rounded-xl border bg-card p-6 text-card-foreground transition-colors hover:bg-muted/40',\n COL_SPAN[this.colSpan()],\n ROW_SPAN[this.rowSpan()],\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface GalleryImage {\n src: string;\n alt?: string;\n}\n\nconst COLUMNS: Record<number, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n 5: 'grid-cols-5',\n 6: 'grid-cols-6',\n};\n\n/** A responsive thumbnail grid. */\n@Component({\n selector: 'bui-gallery',\n host: { 'data-slot': 'gallery', '[class]': 'computedClass()' },\n template: `\n @for (image of normalized(); track $index) {\n <img [src]=\"image.src\" [alt]=\"image.alt\" loading=\"lazy\" [class]=\"imageClass()\" />\n }\n `,\n})\nexport class BuiGallery {\n readonly images = input<readonly (string | GalleryImage)[]>([]);\n readonly columns = input(3);\n readonly rounded = input('rounded-lg');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly normalized = computed(() =>\n this.images().map((image) =>\n typeof image === 'string'\n ? { src: image, alt: '' }\n : { src: image.src, alt: image.alt ?? '' },\n ),\n );\n protected readonly imageClass = computed(() =>\n cn('aspect-square w-full object-cover', this.rounded()),\n );\n protected readonly computedClass = computed(() =>\n cn('grid gap-2', COLUMNS[this.columns()], this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A veil with a spinner shown over its projected content while `show` is true. */\n@Component({\n selector: 'bui-loading-overlay',\n host: {\n 'data-slot': 'loading-overlay',\n '[class]': 'computedClass()',\n '[attr.aria-busy]': 'show()',\n },\n template: `\n <ng-content />\n @if (show()) {\n <div\n role=\"status\"\n aria-live=\"polite\"\n class=\"absolute inset-0 z-10 grid place-items-center bg-background/70\"\n [class.backdrop-blur-sm]=\"blur()\"\n >\n <div class=\"flex flex-col items-center gap-2 text-sm text-muted-foreground\">\n <svg\n class=\"size-6 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n <span>{{ message() || 'Loading…' }}</span>\n </div>\n </div>\n }\n `,\n})\nexport class BuiLoadingOverlay {\n readonly show = input(false);\n readonly message = input('');\n readonly blur = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst BTN =\n 'border-input text-foreground hover:bg-accent inline-flex h-9 w-9 items-center justify-center border bg-transparent outline-none transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4';\n\n/** A numeric stepper: − / + buttons around a number field, with min/max/step clamping. */\n@Component({\n selector: 'bui-number-input',\n host: { 'data-slot': 'number-input', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n [class]=\"BTN + ' rounded-l-md'\"\n (click)=\"step(-1)\"\n [disabled]=\"disabled() || atMin()\"\n aria-label=\"Decrease\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n </button>\n <input\n type=\"number\"\n inputmode=\"numeric\"\n [value]=\"value()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [step]=\"stepBy()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n class=\"h-9 w-16 [appearance:textfield] border-y border-input bg-transparent text-center text-sm tabular-nums outline-none focus-visible:relative focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:opacity-50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n (input)=\"onInput($event)\"\n (change)=\"onInput($event)\"\n />\n <button\n type=\"button\"\n [class]=\"BTN + ' rounded-r-md'\"\n (click)=\"step(1)\"\n [disabled]=\"disabled() || atMax()\"\n aria-label=\"Increase\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n </button>\n `,\n})\nexport class BuiNumberInput {\n readonly value = model(0);\n readonly min = input<number | null>(null);\n readonly max = input<number | null>(null);\n readonly stepBy = input(1, { alias: 'step' });\n readonly disabled = input(false);\n readonly ariaLabel = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly BTN = BTN;\n protected readonly atMin = computed(() => {\n const min = this.min();\n return min !== null && this.value() <= min;\n });\n protected readonly atMax = computed(() => {\n const max = this.max();\n return max !== null && this.value() >= max;\n });\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-stretch', this.userClass()),\n );\n\n protected step(direction: number): void {\n this.commit(this.value() + direction * this.stepBy());\n }\n\n protected onInput(event: Event): void {\n const raw = Number.parseFloat((event.target as HTMLInputElement).value);\n this.commit(Number.isNaN(raw) ? 0 : raw);\n }\n\n private commit(next: number): void {\n let value = next;\n const min = this.min();\n const max = this.max();\n if (min !== null && value < min) {\n value = min;\n }\n if (max !== null && value > max) {\n value = max;\n }\n this.value.set(value);\n }\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface VariantOption {\n value: string;\n label?: string;\n color?: string;\n disabled?: boolean;\n}\n\ninterface NormalizedVariant {\n value: string;\n label: string;\n color?: string;\n disabled?: boolean;\n}\n\n/** A radio-group of product variants, rendered as pills or colour swatches. */\n@Component({\n selector: 'bui-variant-selector',\n host: {\n 'data-slot': 'variant-selector',\n role: 'radiogroup',\n '[attr.aria-label]': 'label()',\n '[class]': 'computedClass()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @for (option of normalized(); track option.value; let i = $index) {\n <button\n type=\"button\"\n role=\"radio\"\n [attr.aria-checked]=\"option.value === value()\"\n [attr.aria-label]=\"option.label\"\n [attr.title]=\"type() === 'color' ? option.label : null\"\n [attr.tabindex]=\"i === activeIndex() ? 0 : -1\"\n [disabled]=\"option.disabled || disabled()\"\n [class]=\"optionClass(option)\"\n (click)=\"select(option)\"\n >\n @if (type() === 'color') {\n <span class=\"size-5 rounded-full\" [style.background]=\"option.color\"></span>\n } @else {\n {{ option.label }}\n }\n </button>\n }\n `,\n})\nexport class BuiVariantSelector {\n readonly value = model('');\n readonly options = input<readonly (string | VariantOption)[]>([]);\n readonly type = input<'pill' | 'color'>('pill');\n readonly label = input('Variant');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly normalized = computed<NormalizedVariant[]>(() =>\n this.options().map((option) =>\n typeof option === 'string'\n ? { value: option, label: option }\n : {\n value: option.value,\n label: option.label ?? option.value,\n color: option.color,\n disabled: option.disabled,\n },\n ),\n );\n protected readonly activeIndex = computed(() => {\n const index = this.normalized().findIndex((option) => option.value === this.value());\n return index === -1 ? 0 : index;\n });\n protected readonly computedClass = computed(() =>\n cn('inline-flex flex-wrap items-center gap-2', this.userClass()),\n );\n\n protected select(option: NormalizedVariant): void {\n if (!option.disabled && !this.disabled()) {\n this.value.set(option.value);\n }\n }\n\n protected optionClass(option: NormalizedVariant): string {\n const isSelected = option.value === this.value();\n if (this.type() === 'color') {\n return cn(\n 'inline-flex items-center justify-center rounded-full p-0.5 transition-shadow outline-none disabled:opacity-50',\n isSelected\n ? 'ring-2 ring-primary ring-offset-2 ring-offset-background'\n : 'ring-1 ring-border',\n );\n }\n return cn(\n 'inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium transition-colors outline-none disabled:opacity-50',\n isSelected ? 'border-primary bg-primary/5 text-primary' : 'border-input hover:bg-accent',\n );\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(event.key)) {\n return;\n }\n event.preventDefault();\n const options = this.normalized();\n const enabled = options\n .map((option, index) => ({ option, index }))\n .filter((entry) => !entry.option.disabled && !this.disabled())\n .map((entry) => entry.index);\n if (enabled.length === 0) {\n return;\n }\n const delta = event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 1 : -1;\n const current = enabled.indexOf(this.activeIndex());\n const base = current === -1 ? 0 : current;\n const nextPosition = (base + delta + enabled.length) % enabled.length;\n const targetIndex = enabled[nextPosition];\n this.value.set(options[targetIndex].value);\n this.host.nativeElement\n .querySelectorAll<HTMLButtonElement>('[role=\"radio\"]')\n .item(targetIndex)\n .focus();\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A tiny inline SVG trend chart (line + optional area). Pure, SSR-safe. */\n@Component({\n selector: 'bui-sparkline',\n host: { 'data-slot': 'sparkline', '[class]': 'computedClass()' },\n template: `\n <svg\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.aria-label]=\"ariaLabel()\"\n role=\"img\"\n fill=\"none\"\n preserveAspectRatio=\"none\"\n >\n @if (area() && areaPath()) {\n <path [attr.d]=\"areaPath()\" class=\"fill-primary/10\" />\n }\n @if (linePath()) {\n <path\n [attr.d]=\"linePath()\"\n class=\"stroke-primary\"\n [attr.stroke-width]=\"strokeWidth()\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n />\n }\n </svg>\n `,\n})\nexport class BuiSparkline {\n readonly data = input<readonly number[]>([]);\n readonly width = input(100);\n readonly height = input(28);\n readonly area = input(true);\n readonly strokeWidth = input(1.5);\n readonly ariaLabel = input('Trend');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly coords = computed(() => {\n const values = this.data();\n if (values.length < 2) {\n return [] as { x: number; y: number }[];\n }\n const width = this.width();\n const height = this.height();\n const pad = this.strokeWidth();\n const min = Math.min(...values);\n const max = Math.max(...values);\n const range = max - min || 1;\n return values.map((value, index) => ({\n x: pad + (index / (values.length - 1)) * (width - 2 * pad),\n y: pad + (1 - (value - min) / range) * (height - 2 * pad),\n }));\n });\n protected readonly linePath = computed(() => {\n const points = this.coords();\n if (points.length === 0) {\n return '';\n }\n return 'M' + points.map((point) => `${point.x.toFixed(2)},${point.y.toFixed(2)}`).join(' L');\n });\n protected readonly areaPath = computed(() => {\n const points = this.coords();\n if (points.length === 0) {\n return '';\n }\n const first = points.at(0);\n const last = points.at(-1);\n if (!first || !last) {\n return '';\n }\n const baseline = (this.height() - this.strokeWidth()).toFixed(2);\n const line = points.map((point) => `${point.x.toFixed(2)},${point.y.toFixed(2)}`).join(' L');\n return `M${first.x.toFixed(2)},${baseline} L${line} L${last.x.toFixed(2)},${baseline} Z`;\n });\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n}\n","import { Component, computed, input, type OnDestroy, output, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SIZES = { default: 'h-9 px-4 py-2', sm: 'h-8 gap-1.5 px-3', lg: 'h-10 px-6' } as const;\n\n/** A stateful add-to-cart button: idle → adding → added → idle. Emits `triggered` on click. */\n@Component({\n selector: 'bui-add-to-cart',\n host: { 'data-slot': 'add-to-cart' },\n template: `\n <button\n type=\"button\"\n [class]=\"btnClass()\"\n [disabled]=\"state() !== 'idle'\"\n aria-live=\"polite\"\n (click)=\"add()\"\n >\n @switch (state()) {\n @case ('adding') {\n <svg\n class=\"size-4 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n {{ label() }}\n }\n @case ('added') {\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n {{ addedLabel() }}\n }\n @default {\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"21\" r=\"1\" />\n <circle cx=\"19\" cy=\"21\" r=\"1\" />\n <path\n d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\"\n />\n </svg>\n {{ label() }}\n }\n }\n </button>\n `,\n})\nexport class BuiAddToCart implements OnDestroy {\n readonly label = input('Add to cart');\n readonly addedLabel = input('Added');\n readonly size = input<keyof typeof SIZES>('default');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n readonly triggered = output();\n\n protected readonly state = signal<'idle' | 'adding' | 'added'>('idle');\n private readonly timers: ReturnType<typeof setTimeout>[] = [];\n protected readonly btnClass = computed(() =>\n cn(\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:opacity-90',\n SIZES[this.size()],\n this.state() === 'added'\n ? 'bg-emerald-600 text-white'\n : 'bg-primary text-primary-foreground hover:bg-primary/90',\n this.userClass(),\n ),\n );\n\n protected add(): void {\n if (this.state() !== 'idle') {\n return;\n }\n this.state.set('adding');\n this.triggered.emit();\n this.timers.push(\n setTimeout(() => {\n this.state.set('added');\n }, 800),\n setTimeout(() => {\n this.state.set('idle');\n }, 2300),\n );\n }\n\n ngOnDestroy(): void {\n for (const timer of this.timers) {\n clearTimeout(timer);\n }\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst STRENGTH = ['Very weak', 'Weak', 'Fair', 'Good', 'Strong'] as const;\nconst BAR_COLORS = [\n 'bg-red-500',\n 'bg-red-500',\n 'bg-amber-500',\n 'bg-yellow-500',\n 'bg-emerald-500',\n] as const;\nconst TEXT_COLORS = [\n 'text-red-600',\n 'text-red-600',\n 'text-amber-600',\n 'text-yellow-600',\n 'text-emerald-600',\n] as const;\n\n/** A password field with a live strength meter and (optional) requirement checklist. */\n@Component({\n selector: 'bui-password-strength',\n host: { 'data-slot': 'password-strength', '[class]': 'computedClass()' },\n template: `\n <div class=\"relative\">\n <input\n [type]=\"show() ? 'text' : 'password'\"\n [value]=\"password()\"\n [attr.name]=\"name()\"\n [id]=\"fieldId()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"label()\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 pe-10 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onInput($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute end-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\n [attr.aria-label]=\"show() ? 'Hide password' : 'Show password'\"\n (click)=\"show.set(!show())\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n </button>\n </div>\n <div class=\"mt-2 flex gap-1\" aria-hidden=\"true\">\n @for (bar of bars; track bar) {\n <div\n class=\"h-1 flex-1 rounded-full transition-colors\"\n [class]=\"bar < score() ? barColor() : 'bg-muted'\"\n ></div>\n }\n </div>\n <p class=\"mt-1 text-xs\" [class]=\"textColor()\">{{ password() ? strengthLabel() : '' }}</p>\n @if (showChecklist()) {\n <ul class=\"mt-2 space-y-1 text-xs\">\n @for (rule of rules(); track rule.label) {\n <li\n class=\"flex items-center gap-1.5\"\n [class]=\"rule.met ? 'text-emerald-600 dark:text-emerald-400' : 'text-muted-foreground'\"\n >\n <svg\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n {{ rule.label }}\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiPasswordStrength {\n readonly password = model('');\n readonly name = input('password');\n readonly id = input('');\n readonly placeholder = input('••••••••');\n readonly showChecklist = input(true);\n readonly minLength = input(8);\n readonly label = input('Password');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly show = signal(false);\n protected readonly bars = [0, 1, 2, 3];\n protected readonly fieldId = computed(() => this.id() || this.name());\n protected readonly rules = computed(() => {\n const value = this.password();\n return [\n { label: `At least ${this.minLength()} characters`, met: value.length >= this.minLength() },\n { label: 'An uppercase letter', met: /[A-Z]/.test(value) },\n { label: 'A number', met: /\\d/.test(value) },\n { label: 'A symbol', met: /[^a-zA-Z0-9]/.test(value) },\n ];\n });\n protected readonly score = computed(() => this.rules().filter((rule) => rule.met).length);\n protected readonly strengthLabel = computed(() => STRENGTH[this.score()]);\n protected readonly barColor = computed(() => BAR_COLORS[this.score()]);\n protected readonly textColor = computed(() => TEXT_COLORS[this.score()]);\n protected readonly computedClass = computed(() => cn('block w-full max-w-sm', this.userClass()));\n\n protected onInput(event: Event): void {\n this.password.set((event.target as HTMLInputElement).value);\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { BuiBadge } from '../badge/badge';\nimport { BuiButton } from '../button/button';\nimport { BuiPrice } from '../price/price';\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A product card: image, badge, wishlist, title, rating, price, and an action slot. */\n@Component({\n selector: 'bui-product-card',\n imports: [BuiBadge, BuiButton, BuiPrice],\n host: { 'data-slot': 'product-card', '[class]': 'computedClass()' },\n template: `\n <div class=\"relative aspect-square overflow-hidden bg-muted\">\n <img\n [src]=\"image()\"\n [alt]=\"alt()\"\n loading=\"lazy\"\n class=\"size-full object-cover transition-transform duration-300 group-hover:scale-105\"\n />\n @if (badge()) {\n <div class=\"absolute start-2 top-2\">\n <span buiBadge variant=\"solid\" [class]=\"badgeClass()\">{{ badge() }}</span>\n </div>\n }\n @if (wishlist()) {\n <button\n type=\"button\"\n class=\"absolute end-2 top-2 inline-flex size-8 items-center justify-center rounded-full border bg-background/80 shadow-sm backdrop-blur transition-colors hover:bg-background\"\n [attr.aria-pressed]=\"wished()\"\n aria-label=\"Add to wishlist\"\n (click)=\"wished.set(!wished())\"\n >\n <svg\n class=\"size-4\"\n [class]=\"wished() ? 'fill-red-500 text-red-500' : 'fill-none'\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path\n 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.29 1.51 4.04 3 5.5l7 7Z\"\n />\n </svg>\n </button>\n }\n </div>\n <div class=\"flex flex-1 flex-col gap-2 p-4\">\n @if (category()) {\n <p class=\"text-xs text-muted-foreground\">{{ category() }}</p>\n }\n <h3 class=\"text-sm leading-snug font-medium\">\n @if (href()) {\n <a [href]=\"href()\" class=\"rounded-sm outline-none hover:underline\">{{ title() }}</a>\n } @else {\n {{ title() }}\n }\n </h3>\n @if (rating() !== null) {\n <div class=\"flex items-center gap-1.5 text-sm\">\n <span class=\"text-amber-500\" aria-hidden=\"true\">★</span>\n <span class=\"font-medium\">{{ rating() }}</span>\n @if (reviews() !== null) {\n <span class=\"text-muted-foreground\">({{ reviews() }})</span>\n }\n </div>\n }\n @if (price() !== null) {\n <div class=\"mt-auto pt-1\">\n <bui-price\n [amount]=\"price() ?? 0\"\n [compareAt]=\"compareAt()\"\n [currency]=\"currency()\"\n size=\"lg\"\n />\n </div>\n }\n <div class=\"mt-3\">\n <ng-content>\n <button buiButton class=\"w-full\">Add to cart</button>\n </ng-content>\n </div>\n </div>\n `,\n})\nexport class BuiProductCard {\n readonly title = input('');\n readonly href = input('');\n readonly image = input('');\n readonly imageAlt = input('');\n readonly price = input<number | null>(null);\n readonly compareAt = input<number | null>(null);\n readonly currency = input('$');\n readonly badge = input('');\n readonly category = input('');\n readonly rating = input<number | null>(null);\n readonly reviews = input<number | null>(null);\n readonly wishlist = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly wished = signal(false);\n protected readonly alt = computed(() => this.imageAlt() || this.title());\n protected readonly badgeClass = computed(() => {\n const badge = this.badge().toLowerCase();\n if (badge.includes('sale') || badge.includes('off') || badge.includes('%')) {\n return 'border-transparent bg-red-700 text-white';\n }\n if (badge.includes('new')) {\n return 'border-transparent bg-emerald-700 text-white';\n }\n return '';\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'group flex flex-col overflow-hidden rounded-xl border bg-card text-card-foreground shadow-sm',\n this.userClass(),\n ),\n );\n}\n","import { afterNextRender, Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Types and deletes a cycling list of words. The animated text is `aria-hidden`; an sr-only\n * span carries the full word list so assistive tech reads it once. SSR-safe.\n */\n@Component({\n selector: 'bui-typewriter',\n host: { 'data-slot': 'typewriter', '[class]': 'computedClass()' },\n template: `\n <span aria-hidden=\"true\">{{ text() }}</span>\n @if (cursor()) {\n <span\n class=\"ml-0.5 inline-block w-px animate-pulse self-stretch bg-current\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"sr-only\">{{ words().join('. ') }}</span>\n `,\n})\nexport class BuiTypewriter implements OnDestroy {\n readonly words = input<readonly string[]>([]);\n readonly typeSpeed = input(90);\n readonly deleteSpeed = input(40);\n readonly pause = input(1600);\n readonly loop = input(true);\n readonly cursor = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly text = signal('');\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center', this.userClass()),\n );\n private wordIndex = 0;\n private charIndex = 0;\n private deleting = false;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n afterNextRender(() => {\n if (this.words().length > 0) {\n this.tick();\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n }\n }\n\n private tick(): void {\n const words = this.words();\n if (words.length === 0) {\n return;\n }\n const current = words[this.wordIndex];\n if (this.deleting) {\n this.charIndex -= 1;\n this.text.set(current.slice(0, this.charIndex));\n if (this.charIndex <= 0) {\n this.deleting = false;\n this.wordIndex = (this.wordIndex + 1) % words.length;\n if (!this.loop() && this.wordIndex === 0) {\n return;\n }\n this.schedule(this.typeSpeed());\n return;\n }\n this.schedule(this.deleteSpeed());\n return;\n }\n this.charIndex += 1;\n this.text.set(current.slice(0, this.charIndex));\n if (this.charIndex >= current.length) {\n if (!this.loop() && this.wordIndex === words.length - 1) {\n return;\n }\n this.deleting = true;\n this.schedule(this.pause());\n return;\n }\n this.schedule(this.typeSpeed());\n }\n\n private schedule(delay: number): void {\n this.timer = setTimeout(() => {\n this.tick();\n }, delay);\n }\n}\n","import { afterNextRender, Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Reveals a passage token-by-token (LLM-style) once. The streamed copy is `aria-hidden`;\n * an `aria-live` region carries the full passage up front. SSR-safe.\n */\n@Component({\n selector: 'bui-streaming-text',\n host: { 'data-slot': 'streaming-text', '[class]': 'computedClass()' },\n template: `\n <span aria-hidden=\"true\">{{ shown() }}</span>\n @if (caret() && streaming()) {\n <span\n class=\"ml-0.5 inline-block w-px animate-pulse self-stretch bg-current\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"sr-only\" aria-live=\"polite\">{{ text() }}</span>\n `,\n})\nexport class BuiStreamingText implements OnDestroy {\n readonly text = input('');\n readonly speed = input(18);\n readonly startDelay = input(0);\n readonly by = input<'char' | 'word'>('char');\n readonly caret = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly shown = signal('');\n protected readonly streaming = signal(false);\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center', this.userClass()),\n );\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n afterNextRender(() => {\n this.start();\n });\n }\n\n ngOnDestroy(): void {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n }\n }\n\n private start(): void {\n const full = this.text();\n if (full === '') {\n return;\n }\n this.shown.set('');\n this.streaming.set(true);\n const isByWord = this.by() === 'word';\n const words = isByWord ? full.split(' ') : [];\n const total = (isByWord ? words : full).length;\n let index = 0;\n const step = (): void => {\n index += 1;\n this.shown.set(isByWord ? words.slice(0, index).join(' ') : full.slice(0, index));\n if (index >= total) {\n this.streaming.set(false);\n return;\n }\n this.timer = setTimeout(step, this.speed());\n };\n this.timer = setTimeout(step, this.startDelay());\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A card whose border has a light beam continuously travelling around it. */\n@Component({\n selector: 'bui-border-beam',\n host: { 'data-slot': 'border-beam', '[class]': 'computedClass()', '[style]': 'styleVars()' },\n styles: [\n `\n @keyframes bui-border-beam-spin {\n to {\n transform: rotate(1turn);\n }\n }\n .bui-beam {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n padding: var(--bui-beam-size, 2px);\n pointer-events: none;\n -webkit-mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n mask-composite: exclude;\n }\n .bui-beam::before {\n content: '';\n position: absolute;\n inset: -50%;\n background: conic-gradient(\n from 0deg,\n transparent 0 70%,\n var(--bui-beam-color, var(--color-primary)) 85%,\n transparent 100%\n );\n animation: bui-border-beam-spin var(--bui-beam-duration, 6s) linear infinite;\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-beam::before {\n animation: none;\n }\n }\n `,\n ],\n template: `\n <span class=\"bui-beam\" aria-hidden=\"true\"></span>\n <div class=\"relative\"><ng-content /></div>\n `,\n})\nexport class BuiBorderBeam {\n readonly duration = input(6);\n readonly color = input<string | null>(null);\n readonly size = input(2);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly styleVars = computed(() => {\n const color = this.color();\n return (\n `--bui-beam-size:${this.size()}px;--bui-beam-duration:${this.duration()}s;` +\n (color ? `--bui-beam-color:${color};` : '')\n );\n });\n protected readonly computedClass = computed(() =>\n cn('relative block rounded-xl bg-card p-6 text-card-foreground shadow-sm', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n// Deterministic pseudo-random in [0,1) so server and client render identically (SSR-safe).\nfunction pseudo(seed: number): number {\n const value = Math.sin(seed) * 10_000;\n return value - Math.floor(value);\n}\n\n/** Animated falling meteor streaks behind content. Decorative + SSR-safe. */\n@Component({\n selector: 'bui-meteors',\n host: {\n 'data-slot': 'meteors',\n '[class]': 'computedClass()',\n '[style.--bui-meteor-color]': 'color()',\n },\n styles: [\n `\n @keyframes bui-meteor-fall {\n 0% {\n transform: translate3d(0, 0, 0) rotate(215deg);\n opacity: 1;\n }\n 70% {\n opacity: 1;\n }\n 100% {\n transform: translate3d(-700px, 700px, 0) rotate(215deg);\n opacity: 0;\n }\n }\n .bui-meteor {\n position: absolute;\n top: 0;\n height: 2px;\n width: 2px;\n border-radius: 9999px;\n background: var(\n --bui-meteor-color,\n color-mix(in oklab, var(--foreground) 60%, transparent)\n );\n animation: bui-meteor-fall linear infinite;\n }\n .bui-meteor::before {\n content: '';\n position: absolute;\n top: 50%;\n width: 50px;\n height: 1px;\n transform: translateY(-50%);\n background: linear-gradient(\n 90deg,\n var(--bui-meteor-color, color-mix(in oklab, var(--foreground) 60%, transparent)),\n transparent\n );\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-meteor {\n animation: none;\n opacity: 0;\n }\n }\n `,\n ],\n template: `\n <div class=\"pointer-events-none absolute inset-0 overflow-hidden\" aria-hidden=\"true\" dir=\"ltr\">\n @for (meteor of meteors(); track meteor.id) {\n <span\n class=\"bui-meteor\"\n [style.left]=\"meteor.left\"\n [style.animation-delay]=\"meteor.delay\"\n [style.animation-duration]=\"meteor.duration\"\n ></span>\n }\n </div>\n <div class=\"relative z-10\"><ng-content /></div>\n `,\n})\nexport class BuiMeteors {\n readonly count = input(20);\n readonly color = input<string | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly meteors = computed(() => {\n const count = this.count();\n return Array.from({ length: count }, (_, index) => {\n const a = pseudo(index * 2 + 1);\n const b = pseudo(index * 2 + 2);\n return {\n id: index,\n left: `${Math.round((index / count) * 100 + a * 8)}%`,\n delay: `${(a * 5).toFixed(2)}s`,\n duration: `${(4 + b * 4).toFixed(2)}s`,\n };\n });\n });\n protected readonly computedClass = computed(() =>\n cn('relative block overflow-hidden', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** An animated aurora / northern-lights gradient background with content overlaid. */\n@Component({\n selector: 'bui-aurora',\n host: { 'data-slot': 'aurora', '[class]': 'computedClass()', '[style]': 'styleVars()' },\n styles: [\n `\n @keyframes bui-aurora-drift {\n 0% {\n transform: translate3d(-6%, -4%, 0) rotate(0) scale(1.15);\n }\n 33% {\n transform: translate3d(6%, 3%, 0) rotate(40deg) scale(1.3);\n }\n 66% {\n transform: translate3d(-4%, 5%, 0) rotate(-30deg) scale(1.2);\n }\n 100% {\n transform: translate3d(-6%, -4%, 0) rotate(0) scale(1.15);\n }\n }\n .bui-aurora-layer {\n position: absolute;\n inset: -20%;\n filter: blur(var(--bui-aurora-blur, 60px));\n animation: bui-aurora-drift var(--bui-aurora-speed, 12s) ease-in-out infinite;\n background:\n radial-gradient(30% 40% at 20% 30%, #6366f1aa, transparent 60%),\n radial-gradient(25% 35% at 70% 40%, #a855f7aa, transparent 60%),\n radial-gradient(30% 40% at 50% 70%, #22d3eeaa, transparent 60%),\n radial-gradient(25% 30% at 80% 75%, #ec4899aa, transparent 60%);\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-aurora-layer {\n animation: none;\n }\n }\n `,\n ],\n template: `\n <div class=\"bui-aurora-layer\" aria-hidden=\"true\"></div>\n <div class=\"absolute inset-0 bg-background/20\" aria-hidden=\"true\"></div>\n <div class=\"relative z-10\"><ng-content /></div>\n `,\n})\nexport class BuiAurora {\n readonly blur = input(60);\n readonly speed = input(12);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly styleVars = computed(\n () => `--bui-aurora-blur:${this.blur()}px;--bui-aurora-speed:${this.speed()}s;`,\n );\n protected readonly computedClass = computed(() =>\n cn('relative block overflow-hidden rounded-xl', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A seamless infinite scroll of `items` (logos, badges, testimonials…). */\n@Component({\n selector: 'bui-marquee',\n host: {\n 'data-slot': 'marquee',\n '[attr.data-direction]': 'direction()',\n '[class]': 'computedClass()',\n '[style.--bui-marquee-gap]': 'gap()',\n },\n styles: [\n `\n @keyframes bui-marquee-x {\n to {\n transform: translateX(-50%);\n }\n }\n @keyframes bui-marquee-y {\n to {\n transform: translateY(-50%);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-marquee-track {\n animation: none !important;\n }\n }\n `,\n ],\n template: `\n <div\n class=\"bui-marquee-track flex w-max\"\n [class]=\"trackClass()\"\n [style.animation]=\"animation()\"\n >\n <div\n class=\"flex shrink-0 items-center justify-around gap-[var(--bui-marquee-gap)] pe-[var(--bui-marquee-gap)]\"\n [class.flex-col]=\"vertical()\"\n >\n @for (item of items(); track $index) {\n <span>{{ item }}</span>\n }\n </div>\n <div\n class=\"flex shrink-0 items-center justify-around gap-[var(--bui-marquee-gap)] pe-[var(--bui-marquee-gap)]\"\n aria-hidden=\"true\"\n [class.flex-col]=\"vertical()\"\n >\n @for (item of items(); track $index) {\n <span>{{ item }}</span>\n }\n </div>\n </div>\n `,\n})\nexport class BuiMarquee {\n readonly items = input<readonly string[]>([]);\n readonly direction = input<'left' | 'right' | 'up' | 'down'>('left');\n readonly duration = input('40s');\n readonly gap = input('1rem');\n readonly pauseOnHover = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly vertical = computed(\n () => this.direction() === 'up' || this.direction() === 'down',\n );\n private readonly reverse = computed(\n () => this.direction() === 'right' || this.direction() === 'down',\n );\n protected readonly animation = computed(() => {\n const name = this.vertical() ? 'bui-marquee-y' : 'bui-marquee-x';\n return `${name} ${this.duration()} linear infinite${this.reverse() ? ' reverse' : ''}`;\n });\n protected readonly trackClass = computed(() =>\n cn(\n this.vertical() ? 'h-max flex-col' : 'flex-row',\n this.pauseOnHover() && 'hover:[animation-play-state:paused]',\n ),\n );\n protected readonly computedClass = computed(() =>\n cn(\n 'relative flex overflow-hidden',\n this.vertical() ? 'flex-col' : 'flex-row',\n this.userClass(),\n ),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A mobile bottom tab bar. Use `[buiBottomNavItem]` on each `<a>`/`<button>`. */\n@Directive({\n selector: 'nav[buiBottomNavigation]',\n host: {\n 'data-slot': 'bottom-navigation',\n '[class]': 'computedClass()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class BuiBottomNavigation {\n readonly ariaLabel = input('Bottom navigation');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn('flex h-16 w-full items-stretch border-t border-border bg-background', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A single bottom-navigation tab. Project the icon; pass `label`, `active`, `badge`. */\n@Component({\n selector: 'a[buiBottomNavItem], button[buiBottomNavItem]',\n host: {\n 'data-slot': 'bottom-navigation-item',\n '[class]': 'computedClass()',\n '[attr.aria-current]': \"active() ? 'page' : null\",\n },\n template: `\n <span class=\"relative\">\n <ng-content />\n @if (badge() === true) {\n <span class=\"absolute -end-1 -top-1 size-2 rounded-full bg-primary\"></span>\n } @else if (badge()) {\n <span\n class=\"absolute -end-2 -top-2 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-medium text-primary-foreground\"\n >\n {{ badge() }}\n </span>\n }\n </span>\n @if (label()) {\n <span class=\"text-[10px] font-medium\">{{ label() }}</span>\n }\n `,\n})\nexport class BuiBottomNavigationItem {\n readonly label = input('');\n readonly active = input(false);\n readonly badge = input<boolean | string | number | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'group relative flex flex-1 flex-col items-center justify-center gap-1 px-1 text-center transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-inset',\n this.active() ? 'text-primary' : 'text-muted-foreground hover:text-foreground',\n this.userClass(),\n ),\n );\n}\n","import {\n afterNextRender,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Dims its words, then brightens them one by one as the element scrolls up through the\n * viewport. Server-renders fully revealed (no-JS safe). SSR-safe.\n */\n@Component({\n selector: 'bui-text-reveal',\n host: {\n 'data-slot': 'text-reveal',\n '[class]': 'computedClass()',\n '(window:scroll)': 'update()',\n '(window:resize)': 'update()',\n },\n template: `\n @for (word of words(); track $index) {\n <span class=\"transition-opacity duration-200\" [style.opacity]=\"$index < revealed() ? 1 : 0.2\">\n {{ word }}\n </span>\n {{ ' ' }}\n }\n `,\n})\nexport class BuiTextReveal {\n readonly text = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly words = computed(() =>\n this.text()\n .trim()\n .split(/\\s+/)\n .filter((word) => word.length > 0),\n );\n protected readonly revealed = signal(Infinity);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly computedClass = computed(() =>\n cn('text-2xl leading-relaxed font-bold', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.update();\n });\n }\n\n protected update(): void {\n const rect = this.host.nativeElement.getBoundingClientRect();\n const viewport = globalThis.innerHeight || 0;\n const start = viewport * 0.9;\n const end = viewport * 0.3;\n const progress = Math.min(1, Math.max(0, (start - rect.top) / (start - end)));\n this.revealed.set(Math.round(progress * this.words().length));\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Shifts its content relative to scroll for a depth/parallax effect. SSR-safe. */\n@Component({\n selector: 'bui-parallax',\n host: {\n 'data-slot': 'parallax',\n '[class]': 'computedClass()',\n '[style.transform]': 'transform()',\n '(window:scroll)': 'update()',\n '(window:resize)': 'update()',\n },\n template: `<ng-content />`,\n})\nexport class BuiParallax {\n readonly speed = input(0.3);\n readonly axis = input<'x' | 'y'>('y');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly offset = signal(0);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly transform = computed(() => {\n const offset = this.offset();\n return this.axis() === 'x' ? `translateX(${offset}px)` : `translateY(${offset}px)`;\n });\n protected readonly computedClass = computed(() =>\n cn('block will-change-transform', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n this.update();\n });\n }\n\n protected update(): void {\n const rect = this.host.nativeElement.getBoundingClientRect();\n const viewport = globalThis.innerHeight || 0;\n const center = rect.top + rect.height / 2 - viewport / 2;\n this.offset.set(Math.round(-center * this.speed()));\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ScrollspyItem {\n href: string;\n label: string;\n}\n\n/** A \"on this page\" nav that highlights the section currently in view (IntersectionObserver). */\n@Component({\n selector: 'bui-scrollspy',\n host: { 'data-slot': 'scrollspy', '[class]': 'computedClass()' },\n template: `\n <nav aria-label=\"On this page\">\n <ul class=\"space-y-1 text-sm\">\n @for (item of items(); track item.href) {\n <li>\n <a\n [href]=\"item.href\"\n [class]=\"linkClass(item)\"\n [attr.aria-current]=\"isActive(item) ? 'true' : null\"\n >\n {{ item.label }}\n </a>\n </li>\n }\n </ul>\n </nav>\n `,\n})\nexport class BuiScrollspy implements OnDestroy {\n readonly items = input<readonly ScrollspyItem[]>([]);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly document =\n inject<ElementRef<HTMLElement>>(ElementRef).nativeElement.ownerDocument;\n protected readonly active = signal('');\n private observer: IntersectionObserver | undefined;\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.observe();\n });\n }\n\n ngOnDestroy(): void {\n this.observer?.disconnect();\n }\n\n protected isActive(item: ScrollspyItem): boolean {\n return this.active() === item.href;\n }\n\n protected linkClass(item: ScrollspyItem): string {\n return cn(\n 'block rounded px-2 py-1 transition-colors',\n this.isActive(item)\n ? 'border-s-2 border-primary font-medium text-primary'\n : 'border-s-2 border-transparent text-muted-foreground hover:text-foreground',\n );\n }\n\n private observe(): void {\n const targets = this.items()\n .map((item) => this.document.querySelector(item.href))\n .filter((element): element is Element => element !== null);\n if (targets.length === 0) {\n return;\n }\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting && entry.target.id) {\n this.active.set(`#${entry.target.id}`);\n }\n }\n },\n { rootMargin: '0px 0px -70% 0px' },\n );\n for (const target of targets) {\n this.observer.observe(target);\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A styled native time input (`<input type=\"time\">`). */\n@Component({\n selector: 'bui-time-field',\n host: { 'data-slot': 'time-field', '[class]': 'computedClass()' },\n template: `\n <input\n type=\"time\"\n [value]=\"value()\"\n [attr.name]=\"name() || null\"\n [attr.id]=\"id() || null\"\n [attr.min]=\"min() || null\"\n [attr.max]=\"max() || null\"\n [attr.step]=\"seconds() ? 1 : null\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n class=\"h-9 rounded-md border border-input bg-background px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\"\n (input)=\"onInput($event)\"\n />\n `,\n})\nexport class BuiTimeField {\n readonly value = model('');\n readonly name = input('');\n readonly id = input('');\n readonly min = input('');\n readonly max = input('');\n readonly seconds = input(false);\n readonly disabled = input(false);\n readonly ariaLabel = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ntype ToggleValue = string | string[] | null;\n\n/** A group of toggle buttons (single or multiple selection). Use `button[buiToggleGroupItem]`. */\n@Component({\n selector: 'bui-toggle-group',\n host: {\n 'data-slot': 'toggle-group',\n role: 'group',\n '[class]': 'computedClass()',\n '[attr.data-orientation]': 'orientation()',\n },\n template: `<ng-content />`,\n})\nexport class BuiToggleGroup {\n readonly type = input<'single' | 'multiple'>('single');\n readonly value = model<ToggleValue>(null);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex w-fit',\n this.orientation() === 'vertical' ? 'flex-col' : 'flex-row',\n this.userClass(),\n ),\n );\n\n isOn(value: string): boolean {\n const current = this.value();\n return this.type() === 'multiple'\n ? Array.isArray(current) && current.includes(value)\n : current === value;\n }\n\n toggle(value: string): void {\n if (this.type() === 'multiple') {\n const current = Array.isArray(this.value()) ? [...(this.value() as string[])] : [];\n const index = current.indexOf(value);\n if (index === -1) {\n current.push(value);\n } else {\n current.splice(index, 1);\n }\n this.value.set(current);\n return;\n }\n this.value.set(this.value() === value ? null : value);\n }\n}\n","import { Component, computed, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiToggleGroup } from './toggle-group';\n\n/** A single item within a `bui-toggle-group`. */\n@Component({\n selector: 'button[buiToggleGroupItem]',\n host: {\n 'data-slot': 'toggle-group-item',\n type: 'button',\n '[class]': 'computedClass()',\n '[attr.data-state]': \"on() ? 'on' : 'off'\",\n '[attr.aria-pressed]': 'on()',\n '[disabled]': 'disabled()',\n '(click)': 'group.toggle(value())',\n },\n template: `<ng-content />`,\n})\nexport class BuiToggleGroupItem {\n readonly value = input('');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly group = inject(BuiToggleGroup);\n protected readonly on = computed(() => this.group.isOn(this.value()));\n protected readonly computedClass = computed(() =>\n cn(\n 'inline-flex h-9 min-w-9 items-center justify-center gap-2 border border-input px-2.5 text-sm font-medium transition-colors outline-none not-first:border-l-0 first:rounded-l-md last:rounded-r-md hover:bg-muted focus-visible:z-10 focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A free-text tags input: type and press Enter (or comma) to add chips; Backspace removes. */\n@Component({\n selector: 'bui-tags-input',\n host: { 'data-slot': 'tags-input', '[class]': 'computedClass()' },\n template: `\n @for (tag of tags(); track tag; let i = $index) {\n <span\n class=\"inline-flex items-center gap-1 rounded bg-secondary px-2 py-0.5 text-sm text-secondary-foreground\"\n >\n {{ tag }}\n <button\n type=\"button\"\n class=\"leading-none opacity-70 hover:text-foreground\"\n [attr.aria-label]=\"'Remove ' + tag\"\n [disabled]=\"disabled()\"\n (click)=\"removeAt(i)\"\n >\n ×\n </button>\n </span>\n }\n <input\n [value]=\"draft()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || atMax()\"\n class=\"min-w-24 flex-1 bg-transparent text-sm outline-none\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n />\n `,\n})\nexport class BuiTagsInput {\n readonly tags = model<string[]>([]);\n readonly placeholder = input('Add tag…');\n readonly max = input<number | null>(null);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly draft = signal('');\n protected readonly atMax = computed(() => {\n const max = this.max();\n return max !== null && this.tags().length >= max;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent px-2 py-1.5 focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50',\n this.userClass(),\n ),\n );\n\n protected onInput(event: Event): void {\n this.draft.set((event.target as HTMLInputElement).value);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault();\n this.add();\n return;\n }\n if (event.key === 'Backspace' && this.draft() === '' && this.tags().length > 0) {\n this.removeAt(this.tags().length - 1);\n }\n }\n\n protected removeAt(index: number): void {\n const next = [...this.tags()];\n next.splice(index, 1);\n this.tags.set(next);\n }\n\n private add(): void {\n const value = this.draft().trim();\n this.draft.set('');\n if (value === '' || this.atMax() || this.tags().includes(value)) {\n return;\n }\n this.tags.set([...this.tags(), value]);\n }\n}\n","import {\n Component,\n computed,\n effect,\n type ElementRef,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** Click-to-edit inline text: shows a value, swaps to an input on click. Enter commits, Escape cancels. */\n@Component({\n selector: 'bui-editable',\n host: { 'data-slot': 'editable', '[class]': 'computedClass()' },\n template: `\n @if (editing()) {\n <input\n #field\n [value]=\"draft()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"'Edit ' + label()\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onInput($event)\"\n (blur)=\"commit()\"\n (keydown.enter)=\"commit()\"\n (keydown.escape)=\"cancel()\"\n />\n } @else {\n <button\n type=\"button\"\n class=\"w-full rounded-md px-3 py-1 text-start text-sm hover:bg-muted/60\"\n [class.text-muted-foreground]=\"!value()\"\n (click)=\"start()\"\n >\n {{ value() || placeholder() }}\n </button>\n }\n `,\n})\nexport class BuiEditable {\n readonly value = model('');\n readonly placeholder = input('Empty');\n readonly label = input('value');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly editing = signal(false);\n protected readonly draft = signal('');\n private readonly field = viewChild<ElementRef<HTMLInputElement>>('field');\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n constructor() {\n effect(() => {\n if (this.editing()) {\n this.field()?.nativeElement.focus();\n }\n });\n }\n\n protected start(): void {\n this.draft.set(this.value());\n this.editing.set(true);\n }\n\n protected commit(): void {\n if (!this.editing()) {\n return;\n }\n this.value.set(this.draft());\n this.editing.set(false);\n }\n\n protected cancel(): void {\n this.editing.set(false);\n }\n\n protected onInput(event: Event): void {\n this.draft.set((event.target as HTMLInputElement).value);\n }\n}\n","import { Component, computed, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SpeedDialAction {\n label: string;\n href?: string;\n}\n\n/** A floating action button that expands to a stack of actions. Closes on Escape / outside click. */\n@Component({\n selector: 'bui-speed-dial',\n host: {\n 'data-slot': 'speed-dial',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n '(keydown.escape)': 'close()',\n },\n template: `\n <div\n class=\"absolute flex items-center gap-2\"\n [class]=\"stackClass()\"\n [class.pointer-events-none]=\"!open()\"\n >\n @for (action of actions(); track $index) {\n <a\n [href]=\"action.href || '#'\"\n class=\"inline-flex items-center gap-2 rounded-full border bg-card px-3 py-2 text-sm whitespace-nowrap text-foreground shadow-sm transition-opacity hover:bg-accent\"\n [attr.tabindex]=\"open() ? 0 : -1\"\n [style.opacity]=\"open() ? 1 : 0\"\n (click)=\"close()\"\n >\n {{ action.label }}\n </a>\n }\n </div>\n <button\n type=\"button\"\n class=\"inline-flex size-12 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-label]=\"label()\"\n (click)=\"toggle()\"\n >\n <svg\n class=\"size-5 transition-transform\"\n [class.rotate-45]=\"open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n </button>\n `,\n})\nexport class BuiSpeedDial {\n readonly actions = input<readonly SpeedDialAction[]>([]);\n readonly direction = input<'up' | 'down'>('up');\n readonly label = input('Open actions');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly stackClass = computed(() =>\n this.direction() === 'up' ? 'bottom-full mb-3 flex-col-reverse' : 'top-full mt-3 flex-col',\n );\n protected readonly computedClass = computed(() =>\n cn('relative inline-flex flex-col items-center', this.userClass()),\n );\n\n protected toggle(): void {\n this.open.update((value) => !value);\n }\n\n protected close(): void {\n this.open.set(false);\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n }\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst DIMS = {\n sm: { box: 'size-16', text: 'text-sm' },\n default: { box: 'size-24', text: 'text-base' },\n lg: { box: 'size-32', text: 'text-lg' },\n} as const;\nconst RADIUS = 46;\nconst CIRC = 2 * Math.PI * RADIUS;\nconst ARC = CIRC * 0.75;\n\n/** A rotary dial input (role=\"slider\"). Drag, scroll, or use the keyboard. 270° sweep. */\n@Component({\n selector: 'bui-knob',\n host: {\n 'data-slot': 'knob',\n '[class]': 'computedClass()',\n '(document:pointermove)': 'onMove($event)',\n '(document:pointerup)': 'onUp()',\n },\n template: `\n <div\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n class=\"relative rounded-full outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [class]=\"boxClass()\"\n (pointerdown)=\"onDown($event)\"\n (wheel)=\"onWheel($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <svg viewBox=\"0 0 100 100\" class=\"size-full\">\n <circle\n cx=\"50\"\n cy=\"50\"\n [attr.r]=\"radius\"\n fill=\"none\"\n class=\"stroke-muted\"\n stroke-width=\"8\"\n [attr.stroke-dasharray]=\"dashArray\"\n stroke-linecap=\"round\"\n transform=\"rotate(135 50 50)\"\n />\n <circle\n cx=\"50\"\n cy=\"50\"\n [attr.r]=\"radius\"\n fill=\"none\"\n class=\"stroke-primary transition-[stroke-dashoffset]\"\n stroke-width=\"8\"\n [attr.stroke-dasharray]=\"dashArray\"\n [attr.stroke-dashoffset]=\"dashOffset()\"\n stroke-linecap=\"round\"\n transform=\"rotate(135 50 50)\"\n />\n </svg>\n <span\n class=\"absolute inset-0 flex items-center justify-center font-medium tabular-nums\"\n [class]=\"textClass()\"\n >\n {{ display() }}\n </span>\n </div>\n `,\n})\nexport class BuiKnob {\n readonly value = model(50);\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly size = input<keyof typeof DIMS>('default');\n readonly label = input('Value');\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly radius = RADIUS;\n protected readonly dashArray = `${ARC} ${CIRC}`;\n private dragging = false;\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected readonly ratio = computed(() => {\n const span = this.max() - this.min() || 1;\n return Math.min(1, Math.max(0, (this.value() - this.min()) / span));\n });\n protected readonly dashOffset = computed(() => ARC * (1 - this.ratio()));\n protected readonly display = computed(() =>\n Number.isSafeInteger(this.step())\n ? Math.round(this.value())\n : Number.parseFloat(this.value().toFixed(3)),\n );\n protected readonly boxClass = computed(() => DIMS[this.size()].box);\n protected readonly textClass = computed(() => DIMS[this.size()].text);\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n protected onDown(event: PointerEvent): void {\n if (this.disabled()) {\n return;\n }\n this.dragging = true;\n this.setFromPointer(event);\n }\n\n protected onMove(event: PointerEvent): void {\n if (this.dragging) {\n this.setFromPointer(event);\n }\n }\n\n protected onUp(): void {\n this.dragging = false;\n }\n\n protected onWheel(event: WheelEvent): void {\n if (this.disabled()) {\n return;\n }\n event.preventDefault();\n this.bump(event.deltaY < 0 ? 1 : -1);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n let isHandled = true;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowRight': {\n this.bump(1);\n break;\n }\n case 'ArrowDown':\n case 'ArrowLeft': {\n this.bump(-1);\n break;\n }\n case 'Home': {\n this.value.set(this.min());\n break;\n }\n case 'End': {\n this.value.set(this.max());\n break;\n }\n case 'PageUp': {\n this.value.set(this.clamp(this.value() + this.bigStep()));\n break;\n }\n case 'PageDown': {\n this.value.set(this.clamp(this.value() - this.bigStep()));\n break;\n }\n default: {\n isHandled = false;\n }\n }\n if (isHandled) {\n event.preventDefault();\n }\n }\n\n private setFromPointer(event: PointerEvent): void {\n const dial = this.host.nativeElement.querySelector('[role=\"slider\"]');\n if (!dial) {\n return;\n }\n const rect = dial.getBoundingClientRect();\n const cx = rect.left + rect.width / 2;\n const cy = rect.top + rect.height / 2;\n const angle = (Math.atan2(event.clientX - cx, cy - event.clientY) * 180) / Math.PI;\n const ratio = Math.min(1, Math.max(0, (angle + 135) / 270));\n this.value.set(this.snap(this.min() + ratio * (this.max() - this.min())));\n }\n\n private bump(direction: number): void {\n this.value.set(this.clamp(this.value() + direction * this.step()));\n }\n\n private bigStep(): number {\n return Math.max(this.step(), (this.max() - this.min()) / 10);\n }\n\n private clamp(value: number): number {\n return Math.max(this.min(), Math.min(this.max(), value));\n }\n\n private snap(value: number): number {\n const snapped = Math.round((value - this.min()) / this.step()) * this.step() + this.min();\n return Number.parseFloat(this.clamp(snapped).toFixed(6));\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A lazy image with a blurred placeholder / skeleton and a graceful error state. */\n@Component({\n selector: 'bui-image',\n host: {\n 'data-slot': 'image',\n '[class]': 'computedClass()',\n '[style.aspect-ratio]': 'ratio() || null',\n },\n template: `\n @if (!loaded() && !error()) {\n @if (placeholder()) {\n <img\n [src]=\"placeholder()\"\n alt=\"\"\n aria-hidden=\"true\"\n class=\"absolute inset-0 size-full scale-110 blur-xl\"\n [class]=\"objectClass()\"\n />\n } @else {\n <div aria-hidden=\"true\" class=\"absolute inset-0 size-full animate-pulse bg-muted\"></div>\n }\n }\n @if (error()) {\n <div\n class=\"absolute inset-0 flex items-center justify-center bg-muted text-xs text-muted-foreground\"\n >\n Failed to load\n </div>\n } @else {\n <img\n #img\n [src]=\"src()\"\n [alt]=\"alt()\"\n loading=\"lazy\"\n class=\"relative size-full transition-opacity duration-300\"\n [class]=\"objectClass()\"\n [style.opacity]=\"loaded() ? 1 : 0\"\n (load)=\"loaded.set(true)\"\n (error)=\"error.set(true)\"\n />\n }\n `,\n})\nexport class BuiImage {\n readonly src = input('');\n readonly alt = input('');\n readonly ratio = input('');\n readonly placeholder = input('');\n readonly rounded = input('rounded-lg');\n readonly fit = input<'cover' | 'contain'>('cover');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly loaded = signal(false);\n protected readonly error = signal(false);\n private readonly img = viewChild<ElementRef<HTMLImageElement>>('img');\n protected readonly objectClass = computed(() =>\n this.fit() === 'contain' ? 'object-contain' : 'object-cover',\n );\n protected readonly computedClass = computed(() =>\n cn('relative block overflow-hidden', this.rounded(), this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n const element = this.img()?.nativeElement;\n if (element && element.complete && element.naturalWidth > 0) {\n this.loaded.set(true);\n }\n });\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A collapsible \"reasoning\" / chain-of-thought disclosure. */\n@Component({\n selector: 'bui-reasoning',\n host: { 'data-slot': 'reasoning', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n data-slot=\"reasoning-trigger\"\n class=\"flex items-center gap-1.5 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"bodyId\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-4 transition-transform\"\n [class.rotate-90]=\"open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n {{ headerLabel() }}\n </button>\n @if (open()) {\n <div [id]=\"bodyId\" class=\"mt-2 border-s-2 border-border ps-4 text-sm text-muted-foreground\">\n <ng-content />\n </div>\n }\n `,\n})\nexport class BuiReasoning {\n readonly open = model(false);\n readonly label = input('Reasoning');\n readonly duration = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly bodyId = inject(_IdGenerator).getId('bui-reasoning-');\n protected readonly headerLabel = computed(() =>\n this.duration() ? `Thought for ${this.duration()}` : this.label(),\n );\n protected readonly computedClass = computed(() => cn('block w-full text-sm', this.userClass()));\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst STATUS: Record<string, string> = {\n pending: 'bg-gray-400',\n running: 'bg-amber-500 animate-pulse',\n success: 'bg-emerald-500',\n error: 'bg-red-500',\n};\n\n/** An AI tool-call card with a status indicator and collapsible arguments / result. */\n@Component({\n selector: 'bui-tool-call',\n host: { 'data-slot': 'tool-call', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n class=\"flex w-full items-center gap-2 px-3 py-2 text-left\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n <span class=\"size-2 shrink-0 rounded-full\" [class]=\"statusClass()\"></span>\n <code class=\"text-sm font-medium\">{{ name() }}</code>\n <span class=\"ml-auto text-xs text-muted-foreground capitalize\">{{ status() }}</span>\n <svg\n class=\"size-4 text-muted-foreground transition-transform\"\n [class.rotate-90]=\"open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </button>\n @if (open()) {\n <div class=\"space-y-2 border-t border-border px-3 py-2\">\n @if (args()) {\n <div>\n <p class=\"text-xs font-medium text-muted-foreground\">Arguments</p>\n <pre class=\"mt-1 overflow-x-auto rounded bg-muted p-2 text-xs\">{{ args() }}</pre>\n </div>\n }\n @if (result()) {\n <div>\n <p class=\"text-xs font-medium text-muted-foreground\">Result</p>\n <pre class=\"mt-1 overflow-x-auto rounded bg-muted p-2 text-xs\">{{ result() }}</pre>\n </div>\n }\n </div>\n }\n `,\n})\nexport class BuiToolCall {\n readonly name = input('tool');\n readonly status = input<'pending' | 'running' | 'success' | 'error'>('success');\n readonly args = input('');\n readonly result = input('');\n readonly open = model(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly statusClass = computed(() => STATUS[this.status()]);\n protected readonly computedClass = computed(() =>\n cn('block overflow-hidden rounded-lg border bg-card', this.userClass()),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A scrollable conversation log (`role=\"log\"`). Use `bui-chat-message` for bubbles. */\n@Directive({\n selector: '[buiChat]',\n host: {\n 'data-slot': 'chat',\n role: 'log',\n 'aria-live': 'polite',\n tabindex: '0',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'computedClass()',\n },\n})\nexport class BuiChat {\n readonly ariaLabel = input('Conversation');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col gap-4 overflow-y-auto p-4 outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A chat bubble. `role=\"user\"` aligns end with a primary bubble; otherwise assistant-styled. */\n@Component({\n selector: 'bui-chat-message',\n host: { 'data-slot': 'chat-message', '[class]': 'computedClass()' },\n template: `\n <div\n class=\"flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-xs font-medium\"\n [class.order-2]=\"isUser()\"\n >\n @if (avatar()) {\n <img [src]=\"avatar()\" alt=\"\" class=\"size-full object-cover\" />\n } @else {\n {{ initials() }}\n }\n </div>\n <div class=\"flex min-w-0 flex-col gap-1\" [class.items-end]=\"isUser()\">\n @if (name() || time()) {\n <div class=\"text-xs text-muted-foreground\">\n @if (name()) {\n <span class=\"font-medium text-foreground\">{{ name() }}</span>\n }\n @if (time()) {\n <span> · {{ time() }}</span>\n }\n </div>\n }\n <div class=\"rounded-2xl px-3 py-2 text-sm\" [class]=\"bubbleClass()\">\n @if (typing()) {\n <span class=\"flex gap-1 py-1\">\n <span class=\"size-1.5 animate-bounce rounded-full bg-current\"></span>\n <span\n class=\"size-1.5 animate-bounce rounded-full bg-current [animation-delay:150ms]\"\n ></span>\n <span\n class=\"size-1.5 animate-bounce rounded-full bg-current [animation-delay:300ms]\"\n ></span>\n </span>\n } @else {\n <ng-content />\n }\n </div>\n </div>\n `,\n})\nexport class BuiChatMessage {\n readonly role = input('assistant');\n readonly name = input('');\n readonly time = input('');\n readonly avatar = input('');\n readonly typing = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly isUser = computed(() => this.role() === 'user');\n protected readonly initials = computed(() => {\n const name = this.name().trim();\n if (name === '') {\n return '🙂';\n }\n const parts = name.split(/\\s+/);\n const first = parts.at(0) ?? '';\n const last = parts.at(-1) ?? '';\n const initials = parts.length >= 2 ? first.charAt(0) + last.charAt(0) : name.slice(0, 2);\n return initials.toUpperCase();\n });\n protected readonly bubbleClass = computed(() =>\n this.isUser() ? 'bg-primary text-primary-foreground' : 'bg-muted text-foreground',\n );\n protected readonly computedClass = computed(() =>\n cn(\n 'flex max-w-[80%] gap-2',\n this.isUser() ? 'flex-row-reverse self-end' : 'self-start',\n this.userClass(),\n ),\n );\n}\n","/* eslint-disable sonarjs/pseudo-random -- particle jitter is decorative, not security-sensitive */\nimport { Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst PALETTE = ['#6366f1', '#ec4899', '#f59e0b', '#10b981', '#3b82f6', '#ef4444'];\n\n/** A celebratory particle burst. Project a trigger (or use the default button) to fire it. */\n@Component({\n selector: 'bui-confetti',\n host: { 'data-slot': 'confetti', '[class]': 'computedClass()' },\n styles: [\n `\n @keyframes bui-confetti-fall {\n to {\n transform: translate(var(--dx), var(--dy)) rotate(var(--rot));\n opacity: 0;\n }\n }\n .bui-confetti-particle {\n animation: bui-confetti-fall 1s ease-out forwards;\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-confetti-particle {\n animation: none;\n opacity: 0;\n }\n }\n `,\n ],\n template: `\n <span (click)=\"fire()\">\n <ng-content>\n <button\n type=\"button\"\n class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\"\n >\n Celebrate 🎉\n </button>\n </ng-content>\n </span>\n <div class=\"pointer-events-none absolute top-1/2 left-1/2 size-0\" aria-hidden=\"true\">\n @for (particle of particles(); track particle.id) {\n <span\n class=\"bui-confetti-particle absolute size-2 rounded-sm\"\n [style]=\"particle.style\"\n ></span>\n }\n </div>\n `,\n})\nexport class BuiConfetti implements OnDestroy {\n readonly count = input(80);\n readonly spread = input(70);\n readonly colors = input<readonly string[] | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly particles = signal<{ id: number; style: string }[]>([]);\n private timer: ReturnType<typeof setTimeout> | undefined;\n private seq = 0;\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected fire(): void {\n const colors = this.colors() ?? PALETTE;\n const batch = Array.from({ length: this.count() }, () => {\n const dx = (Math.random() - 0.5) * this.spread() * 4;\n const dy = 80 + Math.random() * 120;\n const rot = Math.random() * 720 - 360;\n const color = colors[Math.floor(Math.random() * colors.length)];\n const delay = (Math.random() * 0.1).toFixed(2);\n this.seq += 1;\n return {\n id: this.seq,\n style: `--dx:${dx.toFixed(0)}px;--dy:${dy.toFixed(0)}px;--rot:${rot.toFixed(0)}deg;background:${color};animation-delay:${delay}s`,\n };\n });\n this.particles.set(batch);\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.particles.set([]);\n }, 1200);\n }\n\n ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A step indicator. The `value` (1-based) marks the active step. Use `li[buiStepperItem]`. */\n@Component({\n selector: 'bui-stepper',\n host: {\n 'data-slot': 'stepper',\n '[class]': 'computedClass()',\n '[attr.data-orientation]': 'orientation()',\n },\n template: `\n <ol\n class=\"flex gap-3\"\n [class.flex-col]=\"orientation() === 'vertical'\"\n [class.items-center]=\"orientation() === 'horizontal'\"\n >\n <ng-content />\n </ol>\n `,\n})\nexport class BuiStepper {\n readonly value = input(1);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n}\n","import { Component, computed, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiStepper } from './stepper';\n\nconst INDICATOR: Record<string, string> = {\n completed: 'bg-primary text-primary-foreground border-primary',\n active: 'border-primary text-primary',\n inactive: 'text-muted-foreground',\n};\n\n/** A single step within a `bui-stepper`. Resolves completed/active/inactive from the parent. */\n@Component({\n selector: 'li[buiStepperItem]',\n host: {\n 'data-slot': 'stepper-item',\n '[class]': 'computedClass()',\n '[attr.data-state]': 'state()',\n },\n template: `\n <span\n class=\"flex size-8 shrink-0 items-center justify-center rounded-full border text-sm font-medium\"\n [class]=\"indicatorClass()\"\n >\n @if (state() === 'completed') {\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n } @else {\n {{ step() }}\n }\n </span>\n <span\n class=\"ms-2 text-sm\"\n [class]=\"state() === 'inactive' ? 'text-muted-foreground' : 'font-medium'\"\n >\n <ng-content />\n </span>\n `,\n})\nexport class BuiStepperItem {\n readonly step = input(1);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly stepper = inject(BuiStepper);\n protected readonly state = computed(() => {\n const current = this.stepper.value();\n if (current > this.step()) {\n return 'completed';\n }\n if (current === this.step()) {\n return 'active';\n }\n return 'inactive';\n });\n protected readonly indicatorClass = computed(() => INDICATOR[this.state()]);\n protected readonly computedClass = computed(() => cn('flex items-center', this.userClass()));\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A one-time-password input: a row of single-character boxes with focus management + paste. */\n@Component({\n selector: 'bui-input-otp',\n host: { 'data-slot': 'input-otp', '[class]': 'computedClass()' },\n template: `\n @for (slot of slots(); track slot) {\n <input\n type=\"text\"\n [attr.inputmode]=\"alphanumeric() ? 'text' : 'numeric'\"\n autocomplete=\"one-time-code\"\n maxlength=\"1\"\n [value]=\"charAt(slot)\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() + ' character ' + (slot + 1)\"\n class=\"size-10 rounded-md border border-input bg-transparent text-center text-sm font-medium shadow-xs outline-none focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:opacity-50\"\n (input)=\"onInput(slot, $event)\"\n (keydown)=\"onKeydown(slot, $event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"onFocus($event)\"\n />\n }\n `,\n})\nexport class BuiInputOtp {\n readonly value = model('');\n readonly maxlength = input(6);\n readonly disabled = input(false);\n readonly alphanumeric = input(false);\n readonly ariaLabel = input('One-time password');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly slots = computed(() =>\n Array.from({ length: this.maxlength() }, (_, index) => index),\n );\n protected readonly computedClass = computed(() =>\n cn('inline-flex items-center gap-2', this.userClass()),\n );\n\n protected charAt(index: number): string {\n return this.value().charAt(index);\n }\n\n protected onInput(index: number, event: Event): void {\n const element = event.target as HTMLInputElement;\n const char = this.sanitize(element.value).slice(-1);\n const next = (this.value().slice(0, index) + char + this.value().slice(index + 1)).slice(\n 0,\n this.maxlength(),\n );\n this.value.set(next);\n element.value = char;\n if (char !== '' && index < this.maxlength() - 1) {\n this.focusBox(index + 1);\n }\n }\n\n protected onKeydown(index: number, event: KeyboardEvent): void {\n if (event.key === 'Backspace' && this.charAt(index) === '' && index > 0) {\n this.focusBox(index - 1);\n } else if (event.key === 'ArrowLeft' && index > 0) {\n event.preventDefault();\n this.focusBox(index - 1);\n } else if (event.key === 'ArrowRight' && index < this.maxlength() - 1) {\n event.preventDefault();\n this.focusBox(index + 1);\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const text = this.sanitize(event.clipboardData?.getData('text') ?? '').slice(\n 0,\n this.maxlength(),\n );\n this.value.set(text);\n this.focusBox(Math.min(text.length, this.maxlength() - 1));\n }\n\n protected onFocus(event: Event): void {\n (event.target as HTMLInputElement).select();\n }\n\n private sanitize(raw: string): string {\n return this.alphanumeric() ? raw.replaceAll(/[^a-zA-Z0-9]/g, '') : raw.replaceAll(/\\D/g, '');\n }\n\n private focusBox(index: number): void {\n const boxes = this.host.nativeElement.querySelectorAll<HTMLInputElement>('input');\n boxes.item(index).focus();\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface PhoneCountry {\n code: string;\n name: string;\n dial: string;\n flag: string;\n}\n\nconst COUNTRIES: PhoneCountry[] = [\n { code: 'US', name: 'United States', dial: '+1', flag: '🇺🇸' },\n { code: 'GB', name: 'United Kingdom', dial: '+44', flag: '🇬🇧' },\n { code: 'CA', name: 'Canada', dial: '+1', flag: '🇨🇦' },\n { code: 'AU', name: 'Australia', dial: '+61', flag: '🇦🇺' },\n { code: 'FR', name: 'France', dial: '+33', flag: '🇫🇷' },\n { code: 'DE', name: 'Germany', dial: '+49', flag: '🇩🇪' },\n { code: 'ES', name: 'Spain', dial: '+34', flag: '🇪🇸' },\n { code: 'IT', name: 'Italy', dial: '+39', flag: '🇮🇹' },\n { code: 'NL', name: 'Netherlands', dial: '+31', flag: '🇳🇱' },\n { code: 'BE', name: 'Belgium', dial: '+32', flag: '🇧🇪' },\n];\n\n/** A phone number field with a country-code selector. */\n@Component({\n selector: 'bui-phone-input',\n host: { 'data-slot': 'phone-input', '[class]': 'computedClass()' },\n template: `\n <select\n [value]=\"country()\"\n class=\"h-9 rounded-md rounded-r-none border border-r-0 border-input bg-background ps-2 pe-1 text-sm outline-none focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n aria-label=\"Country code\"\n (change)=\"onCountry($event)\"\n >\n @for (option of countries; track option.code) {\n <option [value]=\"option.code\">{{ option.flag }} {{ option.dial }}</option>\n }\n </select>\n <input\n type=\"tel\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [attr.name]=\"name() || null\"\n [attr.id]=\"id() || null\"\n aria-label=\"Phone number\"\n class=\"h-9 w-full min-w-0 rounded-md rounded-l-none border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onNumber($event)\"\n />\n `,\n})\nexport class BuiPhoneInput {\n readonly value = model('');\n readonly country = model('US');\n readonly name = input('');\n readonly id = input('');\n readonly placeholder = input('Phone number');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly countries = COUNTRIES;\n protected readonly computedClass = computed(() =>\n cn('flex w-full items-stretch', this.userClass()),\n );\n\n protected onCountry(event: Event): void {\n this.country.set((event.target as HTMLSelectElement).value);\n }\n\n protected onNumber(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A chat composer: an autosizing textarea with a send button. Emits `submitted` on send. */\n@Component({\n selector: 'bui-prompt-input',\n host: { 'data-slot': 'prompt-input', '[class]': 'computedClass()' },\n template: `\n <textarea\n #ta\n rows=\"1\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n class=\"max-h-40 w-full resize-none bg-transparent px-3 py-2 text-sm outline-none\"\n (input)=\"onInput($event)\"\n (keydown.enter)=\"onEnter($event)\"\n ></textarea>\n <div class=\"flex items-center gap-2 px-2 pb-2\">\n @if (attachable()) {\n <button\n type=\"button\"\n aria-label=\"Attach file\"\n class=\"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path\n d=\"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\"\n />\n </svg>\n </button>\n }\n <button\n type=\"button\"\n class=\"ml-auto inline-flex size-8 items-center justify-center rounded-md bg-primary text-primary-foreground disabled:opacity-50\"\n [disabled]=\"disabled() || value().trim() === ''\"\n aria-label=\"Send\"\n (click)=\"send()\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n </button>\n </div>\n `,\n})\nexport class BuiPromptInput {\n readonly value = model('');\n readonly placeholder = input('Send a message…');\n readonly attachable = input(false);\n readonly disabled = input(false);\n readonly ariaLabel = input('Message');\n readonly submitted = output<string>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly ta = viewChild<ElementRef<HTMLTextAreaElement>>('ta');\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col rounded-xl border border-input bg-transparent focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50',\n this.userClass(),\n ),\n );\n\n constructor() {\n afterNextRender(() => {\n this.resize();\n });\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n this.resize();\n }\n\n protected onEnter(event: Event): void {\n const keyboardEvent = event as KeyboardEvent;\n if (!keyboardEvent.shiftKey) {\n keyboardEvent.preventDefault();\n this.send();\n }\n }\n\n protected send(): void {\n const text = this.value().trim();\n if (text === '' || this.disabled()) {\n return;\n }\n this.submitted.emit(text);\n this.value.set('');\n this.resize();\n }\n\n private resize(): void {\n const element = this.ta()?.nativeElement;\n if (!element) {\n return;\n }\n element.style.height = 'auto';\n element.style.height = `${element.scrollHeight}px`;\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A contribution-style heatmap grid (7 rows). Pass `data` or get a deterministic demo. */\n@Component({\n selector: 'bui-heatmap',\n host: { 'data-slot': 'heatmap', '[class]': 'computedClass()' },\n template: `\n <div class=\"grid grid-flow-col grid-rows-7 gap-1\">\n @for (cell of cells(); track $index) {\n <span\n class=\"size-3 rounded-[2px]\"\n [class]=\"levelClass(cell)\"\n [attr.title]=\"cell + ' contributions'\"\n ></span>\n }\n </div>\n `,\n})\nexport class BuiHeatmap {\n readonly data = input<readonly number[]>([]);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly cells = computed(() => {\n const data = this.data();\n if (data.length > 0) {\n return [...data];\n }\n return Array.from({ length: 17 * 7 }, (_, index) => {\n const weekend = index % 7 === 0 || index % 7 === 6 ? -2 : 0;\n return Math.max(0, Math.round(2.5 + 2.5 * Math.sin(index / 9)) + (index % 3) + weekend);\n });\n });\n private readonly max = computed(() => Math.max(1, ...this.cells()));\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n protected levelClass(count: number): string {\n if (count <= 0) {\n return 'bg-muted';\n }\n const ratio = count / this.max();\n if (ratio < 0.25) {\n return 'bg-emerald-200 dark:bg-emerald-900';\n }\n if (ratio < 0.5) {\n return 'bg-emerald-300 dark:bg-emerald-700';\n }\n if (ratio < 0.75) {\n return 'bg-emerald-400 dark:bg-emerald-600';\n }\n return 'bg-emerald-500 dark:bg-emerald-400';\n }\n}\n","import { Component, computed, input, type OnDestroy, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** An inline citation marker that reveals a source popover on hover / focus / click. */\n@Component({\n selector: 'bui-citation',\n host: {\n 'data-slot': 'citation',\n '[class]': 'computedClass()',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'scheduleHide()',\n '(keydown.escape)': 'open.set(false)',\n },\n template: `\n <button\n type=\"button\"\n class=\"rounded px-0.5 align-super text-[0.7em] leading-none font-medium text-primary hover:bg-primary/10\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"open.set(!open())\"\n (focus)=\"show()\"\n (blur)=\"scheduleHide()\"\n >\n [{{ index() }}]\n </button>\n @if (open()) {\n <span\n role=\"tooltip\"\n class=\"absolute z-50 mt-1 block w-64 rounded-md border bg-popover p-3 text-start text-sm font-normal text-popover-foreground normal-case shadow-md\"\n >\n @if (title()) {\n <span class=\"block font-medium\">{{ title() }}</span>\n }\n @if (hostname()) {\n <span class=\"mt-0.5 block text-xs text-muted-foreground\">{{ hostname() }}</span>\n }\n @if (snippet()) {\n <span class=\"mt-1 block text-xs text-muted-foreground\">{{ snippet() }}</span>\n }\n </span>\n }\n `,\n})\nexport class BuiCitation implements OnDestroy {\n readonly index = input(1);\n readonly title = input('');\n readonly url = input('');\n readonly snippet = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly open = signal(false);\n private timer: ReturnType<typeof setTimeout> | undefined;\n protected readonly hostname = computed(() => {\n let host = this.url();\n const scheme = host.indexOf('://');\n if (scheme !== -1) {\n host = host.slice(scheme + 3);\n }\n if (host.startsWith('www.')) {\n host = host.slice(4);\n }\n const slash = host.indexOf('/');\n return slash === -1 ? host : host.slice(0, slash);\n });\n protected readonly ariaLabel = computed(() => {\n const suffix = this.title() ? `: ${this.title()}` : '';\n return `Source ${this.index()}${suffix}`;\n });\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected show(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.open.set(true);\n }\n\n protected scheduleHide(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.open.set(false);\n }, 150);\n }\n\n ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n}\n","import { Component, computed, ElementRef, inject, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A two-panel resizable group. Hosts the shared size; the handle drags it. */\n@Component({\n selector: 'bui-resizable-panel-group',\n host: {\n 'data-slot': 'resizable-panel-group',\n '[class]': 'computedClass()',\n '[attr.data-direction]': 'direction()',\n '(document:pointermove)': 'onMove($event)',\n '(document:pointerup)': 'onUp()',\n },\n template: `<ng-content />`,\n})\nexport class BuiResizablePanelGroup {\n readonly direction = input<'horizontal' | 'vertical'>('horizontal');\n readonly size = model(50);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private dragging = false;\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly computedClass = computed(() =>\n cn('flex', this.direction() === 'vertical' ? 'flex-col' : 'flex-row', this.userClass()),\n );\n\n startDrag(): void {\n this.dragging = true;\n }\n\n onMove(event: PointerEvent): void {\n if (!this.dragging) {\n return;\n }\n const rect = this.host.nativeElement.getBoundingClientRect();\n const ratio =\n this.direction() === 'horizontal'\n ? (event.clientX - rect.left) / rect.width\n : (event.clientY - rect.top) / rect.height;\n this.size.set(this.clamp(ratio * 100));\n }\n\n onUp(): void {\n this.dragging = false;\n }\n\n nudge(delta: number): void {\n this.size.set(this.clamp(this.size() + delta));\n }\n\n private clamp(value: number): number {\n return Math.min(90, Math.max(10, value));\n }\n}\n","import { computed, Directive, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiResizablePanelGroup } from './resizable-panel-group';\n\n/** A panel inside a `bui-resizable-panel-group`. Mark one `primary` to make it the sized panel. */\n@Directive({\n selector: '[buiResizablePanel]',\n host: {\n 'data-slot': 'resizable-panel',\n '[class]': 'computedClass()',\n '[style.flex-basis]': \"primary() ? group.size() + '%' : null\",\n },\n})\nexport class BuiResizablePanel {\n readonly primary = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly group = inject(BuiResizablePanelGroup);\n protected readonly computedClass = computed(() =>\n cn(\n this.primary() ? 'shrink-0 grow-0 overflow-hidden' : 'flex-1 overflow-hidden',\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, inject, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiResizablePanelGroup } from './resizable-panel-group';\n\n/** The draggable divider between two resizable panels. */\n@Component({\n selector: 'bui-resizable-handle',\n host: {\n 'data-slot': 'resizable-handle',\n role: 'separator',\n tabindex: '0',\n 'aria-label': 'Resize panel',\n 'aria-valuemin': '10',\n 'aria-valuemax': '90',\n '[attr.aria-orientation]': \"group.direction() === 'horizontal' ? 'vertical' : 'horizontal'\",\n '[attr.aria-valuenow]': 'roundedSize()',\n '[class]': 'computedClass()',\n '(pointerdown)': 'group.startDrag()',\n '(keydown)': 'onKeydown($event)',\n },\n template: `\n @if (withHandle()) {\n <span\n class=\"absolute top-1/2 left-1/2 flex h-4 w-1 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-border\"\n ></span>\n }\n `,\n})\nexport class BuiResizableHandle {\n readonly withHandle = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly group = inject(BuiResizablePanelGroup);\n protected readonly roundedSize = computed(() => Math.round(this.group.size()));\n protected readonly computedClass = computed(() =>\n cn(\n 'relative shrink-0 bg-border outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n this.group.direction() === 'horizontal' ? 'w-px cursor-col-resize' : 'h-px cursor-row-resize',\n this.userClass(),\n ),\n );\n\n protected onKeydown(event: KeyboardEvent): void {\n const isHorizontal = this.group.direction() === 'horizontal';\n const decrease = isHorizontal ? 'ArrowLeft' : 'ArrowUp';\n const increase = isHorizontal ? 'ArrowRight' : 'ArrowDown';\n if (event.key === decrease) {\n event.preventDefault();\n this.group.nudge(-2);\n } else if (event.key === increase) {\n event.preventDefault();\n this.group.nudge(2);\n }\n }\n}\n","import { Component, computed, type ElementRef, input, signal, viewChild } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A styled HTML5 video with a poster + play-button facade. */\n@Component({\n selector: 'bui-video',\n host: {\n 'data-slot': 'video',\n '[class]': 'computedClass()',\n '[style.aspect-ratio]': 'ratioValue()',\n },\n template: `\n <video\n #v\n [src]=\"src() || null\"\n [poster]=\"poster() || null\"\n [controls]=\"started() && controls()\"\n [autoplay]=\"autoplay()\"\n [loop]=\"loop()\"\n [muted]=\"muted()\"\n playsinline\n class=\"size-full object-cover\"\n (play)=\"started.set(true)\"\n >\n <ng-content />\n </video>\n @if (!started() && !autoplay()) {\n <button\n type=\"button\"\n class=\"absolute inset-0 flex items-center justify-center bg-black/30 transition-colors hover:bg-black/40\"\n aria-label=\"Play video\"\n (click)=\"play()\"\n >\n <span\n class=\"flex size-16 items-center justify-center rounded-full bg-white/90 text-black shadow-lg\"\n >\n <svg class=\"ms-1 size-7\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M8 5v14l11-7z\" />\n </svg>\n </span>\n </button>\n }\n `,\n})\nexport class BuiVideo {\n readonly src = input('');\n readonly poster = input('');\n readonly aspect = input('video');\n readonly controls = input(true);\n readonly autoplay = input(false);\n readonly loop = input(false);\n readonly muted = input(false);\n readonly rounded = input('rounded-xl');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly v = viewChild<ElementRef<HTMLVideoElement>>('v');\n protected readonly started = signal(false);\n protected readonly ratioValue = computed(() => {\n const aspect = this.aspect();\n if (aspect === 'video') {\n return '16/9';\n }\n if (aspect === 'square') {\n return '1/1';\n }\n return aspect;\n });\n protected readonly computedClass = computed(() =>\n cn('relative block overflow-hidden bg-black', this.rounded(), this.userClass()),\n );\n\n protected play(): void {\n this.started.set(true);\n const element = this.v()?.nativeElement;\n if (!element) {\n return;\n }\n // eslint-disable-next-line sonarjs/no-try-promise -- jsdom throws synchronously; ignore unavailable playback\n try {\n void element.play();\n } catch {\n // playback unavailable (e.g. jsdom)\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst DEFAULT_SWATCHES = [\n '#ef4444',\n '#f97316',\n '#eab308',\n '#22c55e',\n '#14b8a6',\n '#3b82f6',\n '#6366f1',\n '#a855f7',\n '#ec4899',\n '#64748b',\n];\n\n/** A colour picker: a native colour well, a hex field, and a swatch palette. */\n@Component({\n selector: 'bui-color-picker',\n host: { 'data-slot': 'color-picker', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex items-center gap-2\">\n <label\n class=\"relative size-9 shrink-0 overflow-hidden rounded-md border border-input\"\n [style.background]=\"value()\"\n >\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n class=\"absolute inset-0 size-full cursor-pointer opacity-0\"\n aria-label=\"Pick a color\"\n (input)=\"onPick($event)\"\n />\n </label>\n <input\n type=\"text\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n class=\"h-9 w-28 rounded-md border border-input bg-transparent px-2 font-mono text-sm uppercase outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n aria-label=\"Color hex value\"\n (input)=\"onText($event)\"\n />\n </div>\n <div class=\"mt-2 flex flex-wrap gap-1.5\">\n @for (swatch of palette(); track swatch) {\n <button\n type=\"button\"\n class=\"size-6 rounded-md border outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\n [style.background]=\"swatch\"\n [attr.aria-label]=\"swatch\"\n [attr.aria-pressed]=\"swatch === value()\"\n (click)=\"value.set(swatch)\"\n ></button>\n }\n </div>\n `,\n})\nexport class BuiColorPicker {\n readonly value = model('#6366f1');\n readonly swatches = input<readonly string[] | null>(null);\n readonly disabled = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly palette = computed(() => this.swatches() ?? DEFAULT_SWATCHES);\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n protected onPick(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n\n protected onText(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","import { afterNextRender, Component, computed, input, output, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A GDPR cookie banner. Persists the choice in localStorage (skipped in `demo` mode). */\n@Component({\n selector: 'bui-cookie-consent',\n host: {\n 'data-slot': 'cookie-consent',\n role: 'region',\n 'aria-label': 'Cookie consent',\n '[class]': 'computedClass()',\n '[hidden]': '!visible()',\n },\n template: `\n <p class=\"text-sm text-muted-foreground\">{{ message() }}</p>\n <div class=\"flex shrink-0 gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md border border-input px-3 text-sm font-medium hover:bg-accent\"\n (click)=\"decide(false)\"\n >\n Decline\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground\"\n (click)=\"decide(true)\"\n >\n Accept\n </button>\n </div>\n `,\n})\nexport class BuiCookieConsent {\n readonly message = input('We use cookies to enhance your experience.');\n readonly demo = input(false);\n readonly storageKey = input('bui-cookie-consent');\n readonly decided = output<boolean>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly visible = signal(false);\n protected readonly computedClass = computed(() =>\n cn(\n 'flex flex-col items-start gap-3 rounded-lg border bg-card p-4 shadow-lg sm:flex-row sm:items-center sm:justify-between',\n this.userClass(),\n ),\n );\n\n constructor() {\n afterNextRender(() => {\n if (this.demo()) {\n this.visible.set(true);\n return;\n }\n this.visible.set(globalThis.localStorage.getItem(this.storageKey()) === null);\n });\n }\n\n protected decide(isAccepted: boolean): void {\n if (!this.demo()) {\n globalThis.localStorage.setItem(this.storageKey(), isAccepted ? 'accepted' : 'declined');\n }\n this.visible.set(false);\n this.decided.emit(isAccepted);\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n type OnDestroy,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * Emits `more` when a sentinel scrolls into view (IntersectionObserver) or the fallback\n * \"Load more\" button is pressed. Drive `loading` / `finished` from the consumer. SSR-safe.\n */\n@Component({\n selector: 'bui-infinite-scroll',\n host: {\n 'data-slot': 'infinite-scroll',\n '[class]': 'computedClass()',\n '[attr.aria-busy]': 'loading()',\n },\n template: `\n <ng-content />\n @if (loading()) {\n <div\n role=\"status\"\n aria-live=\"polite\"\n class=\"flex items-center justify-center gap-2 py-4 text-sm text-muted-foreground\"\n >\n <svg\n class=\"size-4 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n Loading…\n </div>\n } @else if (finished()) {\n <div role=\"status\" class=\"py-4 text-center text-xs text-muted-foreground\">\n You have reached the end.\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"mx-auto my-4 block rounded-md border border-input px-4 py-2 text-sm font-medium hover:bg-accent\"\n (click)=\"emitMore()\"\n >\n Load more\n </button>\n }\n <div #sentinel aria-hidden=\"true\" class=\"h-px w-full\"></div>\n `,\n})\nexport class BuiInfiniteScroll implements OnDestroy {\n readonly loading = input(false);\n readonly finished = input(false);\n readonly threshold = input(200);\n readonly more = output();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly sentinel = viewChild<ElementRef<HTMLElement>>('sentinel');\n private observer: IntersectionObserver | undefined;\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.observe();\n });\n }\n\n ngOnDestroy(): void {\n this.observer?.disconnect();\n }\n\n protected emitMore(): void {\n if (!this.loading() && !this.finished()) {\n this.more.emit();\n }\n }\n\n private observe(): void {\n const element = this.sentinel()?.nativeElement;\n if (!element) {\n return;\n }\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n this.emitMore();\n }\n }\n },\n { rootMargin: `0px 0px ${this.threshold()}px 0px` },\n );\n this.observer.observe(element);\n }\n}\n","import { Component, computed, type ElementRef, input, signal, viewChild } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A compact audio player around a native `<audio>`: play/pause, seek, time, mute. */\n@Component({\n selector: 'bui-audio-player',\n host: { 'data-slot': 'audio-player', '[class]': 'computedClass()' },\n template: `\n <audio\n #a\n [src]=\"src() || null\"\n preload=\"metadata\"\n [autoplay]=\"autoplay()\"\n class=\"sr-only\"\n (timeupdate)=\"onTime()\"\n (loadedmetadata)=\"onMeta()\"\n (play)=\"playing.set(true)\"\n (pause)=\"playing.set(false)\"\n (ended)=\"playing.set(false)\"\n ></audio>\n <button\n type=\"button\"\n class=\"inline-flex size-9 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground\"\n [attr.aria-label]=\"playing() ? 'Pause' : 'Play'\"\n (click)=\"toggle()\"\n >\n <svg class=\"size-4\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n @if (playing()) {\n <path d=\"M6 5h4v14H6zM14 5h4v14h-4z\" />\n } @else {\n <path d=\"M8 5v14l11-7z\" />\n }\n </svg>\n </button>\n @if (title()) {\n <div class=\"min-w-0\">\n <div class=\"truncate text-sm font-medium\">{{ title() }}</div>\n @if (artist()) {\n <div class=\"truncate text-xs text-muted-foreground\">{{ artist() }}</div>\n }\n </div>\n }\n <span class=\"text-xs text-muted-foreground tabular-nums\">{{ format(current()) }}</span>\n <input\n type=\"range\"\n min=\"0\"\n step=\"0.1\"\n [max]=\"duration() || 0\"\n [value]=\"current()\"\n class=\"h-1 flex-1 accent-primary\"\n aria-label=\"Seek\"\n (input)=\"seek($event)\"\n />\n <span class=\"text-xs text-muted-foreground tabular-nums\">{{ format(duration()) }}</span>\n <button\n type=\"button\"\n class=\"shrink-0 text-muted-foreground hover:text-foreground\"\n [attr.aria-label]=\"muted() ? 'Unmute' : 'Mute'\"\n (click)=\"toggleMute()\"\n >\n <svg class=\"size-4\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n @if (muted()) {\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3a4.5 4.5 0 0 0-2.5-4v2.2l2.45 2.45c.03-.21.05-.43.05-.65z\"\n />\n } @else {\n <path d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.5 4.5 0 0 0 2.5-4z\" />\n }\n </svg>\n </button>\n `,\n})\nexport class BuiAudioPlayer {\n readonly src = input('');\n readonly title = input('');\n readonly artist = input('');\n readonly autoplay = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly a = viewChild<ElementRef<HTMLAudioElement>>('a');\n protected readonly playing = signal(false);\n protected readonly current = signal(0);\n protected readonly duration = signal(0);\n protected readonly muted = signal(false);\n protected readonly computedClass = computed(() =>\n cn('flex items-center gap-3 rounded-lg border bg-card p-3', this.userClass()),\n );\n\n protected toggle(): void {\n const element = this.a()?.nativeElement;\n if (!element) {\n return;\n }\n if (element.paused) {\n // eslint-disable-next-line sonarjs/no-try-promise -- jsdom throws synchronously\n try {\n void element.play();\n } catch {\n // playback unavailable\n }\n } else {\n element.pause();\n }\n }\n\n protected onTime(): void {\n this.current.set(this.a()?.nativeElement.currentTime ?? 0);\n }\n\n protected onMeta(): void {\n const value = this.a()?.nativeElement.duration ?? 0;\n this.duration.set(Number.isFinite(value) ? value : 0);\n }\n\n protected seek(event: Event): void {\n const time = Number((event.target as HTMLInputElement).value);\n const element = this.a()?.nativeElement;\n if (element) {\n element.currentTime = time;\n }\n this.current.set(time);\n }\n\n protected toggleMute(): void {\n const element = this.a()?.nativeElement;\n if (!element) {\n return;\n }\n element.muted = !element.muted;\n this.muted.set(element.muted);\n }\n\n protected format(seconds: number): string {\n const minutes = Math.floor(seconds / 60);\n const rest = Math.floor(seconds % 60);\n return `${minutes}:${rest.toString().padStart(2, '0')}`;\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ninterface Point {\n x: number;\n y: number;\n}\n\n/** A canvas signature pad with draw, undo and clear. SSR-safe (canvas set up in the browser). */\n@Component({\n selector: 'bui-signature-pad',\n host: { 'data-slot': 'signature-pad', '[class]': 'computedClass()' },\n template: `\n <canvas\n #cv\n [height]=\"height()\"\n class=\"w-full touch-none rounded-md border bg-background\"\n (pointerdown)=\"start($event)\"\n (pointermove)=\"move($event)\"\n (pointerup)=\"end()\"\n (pointerleave)=\"end()\"\n ></canvas>\n <div class=\"mt-2 flex gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md border border-input px-3 text-sm hover:bg-accent disabled:opacity-50\"\n [disabled]=\"empty()\"\n (click)=\"undo()\"\n >\n Undo\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md border border-input px-3 text-sm hover:bg-accent disabled:opacity-50\"\n [disabled]=\"empty()\"\n (click)=\"clear()\"\n >\n Clear\n </button>\n </div>\n `,\n})\nexport class BuiSignaturePad {\n readonly height = input(200);\n readonly penColor = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly cv = viewChild<ElementRef<HTMLCanvasElement>>('cv');\n private context: CanvasRenderingContext2D | null = null;\n private readonly strokes: Point[][] = [];\n private currentStroke: Point[] = [];\n private drawing = false;\n protected readonly empty = signal(true);\n protected readonly computedClass = computed(() => cn('block w-full', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n const canvas = this.cv()?.nativeElement;\n if (!canvas) {\n return;\n }\n canvas.width = canvas.offsetWidth || 400;\n this.context = canvas.getContext('2d');\n this.redraw();\n });\n }\n\n protected start(event: PointerEvent): void {\n this.drawing = true;\n this.currentStroke = [this.pointFrom(event)];\n }\n\n protected move(event: PointerEvent): void {\n if (!this.drawing) {\n return;\n }\n this.currentStroke.push(this.pointFrom(event));\n this.redraw();\n }\n\n protected end(): void {\n if (!this.drawing) {\n return;\n }\n this.drawing = false;\n if (this.currentStroke.length > 1) {\n this.strokes.push(this.currentStroke);\n this.empty.set(false);\n }\n this.currentStroke = [];\n }\n\n protected undo(): void {\n this.strokes.pop();\n this.empty.set(this.strokes.length === 0);\n this.redraw();\n }\n\n protected clear(): void {\n this.strokes.length = 0;\n this.currentStroke = [];\n this.empty.set(true);\n this.redraw();\n }\n\n private pointFrom(event: PointerEvent): Point {\n const canvas = this.cv()?.nativeElement;\n const rect = canvas?.getBoundingClientRect();\n return { x: event.clientX - (rect?.left ?? 0), y: event.clientY - (rect?.top ?? 0) };\n }\n\n private redraw(): void {\n const canvas = this.cv()?.nativeElement;\n const context = this.context;\n if (!canvas || !context) {\n return;\n }\n context.clearRect(0, 0, canvas.width, canvas.height);\n context.lineWidth = 2;\n context.lineCap = 'round';\n context.lineJoin = 'round';\n context.strokeStyle = this.penColor() || 'currentColor';\n for (const stroke of [...this.strokes, this.currentStroke]) {\n if (stroke.length < 2) {\n continue;\n }\n context.beginPath();\n const [first, ...rest] = stroke;\n context.moveTo(first.x, first.y);\n for (const point of rest) {\n context.lineTo(point.x, point.y);\n }\n context.stroke();\n }\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A macOS-style dock with a cursor-following fisheye magnify. Use `bui-dock-item` tiles. */\n@Component({\n selector: 'bui-dock',\n host: {\n 'data-slot': 'dock',\n '[class]': 'computedClass()',\n '(mousemove)': 'mouseX.set($event.clientX)',\n '(mouseleave)': 'mouseX.set(null)',\n },\n template: `\n <nav\n aria-label=\"Dock\"\n class=\"flex items-end gap-2 rounded-2xl border bg-card/80 p-2 shadow-lg backdrop-blur\"\n >\n <ng-content />\n </nav>\n `,\n})\nexport class BuiDock {\n readonly magnify = input(1.6);\n readonly distance = input(120);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n readonly mouseX = signal<number | null>(null);\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n\n scaleFor(centerX: number): number {\n const mouseX = this.mouseX();\n if (mouseX === null) {\n return 1;\n }\n const distance = Math.abs(mouseX - centerX);\n if (distance > this.distance()) {\n return 1;\n }\n return 1 + (this.magnify() - 1) * (1 - distance / this.distance());\n }\n}\n","import { Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiDock } from './dock';\n\n/** A magnifying tile inside a `bui-dock`. */\n@Component({\n selector: 'bui-dock-item',\n host: {\n 'data-slot': 'dock-item',\n '[class]': 'computedClass()',\n '[style.transform]': 'transformValue()',\n },\n template: `\n <ng-content />\n @if (active()) {\n <span\n class=\"absolute -bottom-1 left-1/2 size-1 -translate-x-1/2 rounded-full bg-foreground\"\n aria-hidden=\"true\"\n ></span>\n }\n `,\n})\nexport class BuiDockItem {\n readonly active = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly group = inject(BuiDock);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly scale = signal(1);\n protected readonly transformValue = computed(() => `scale(${this.scale()})`);\n protected readonly computedClass = computed(() =>\n cn('relative inline-flex origin-bottom items-end transition-transform', this.userClass()),\n );\n\n constructor() {\n effect(() => {\n const mouseX = this.group.mouseX();\n if (mouseX === null) {\n this.scale.set(1);\n return;\n }\n const rect = this.host.nativeElement.getBoundingClientRect();\n this.scale.set(this.group.scaleFor(rect.left + rect.width / 2));\n });\n }\n}\n","import { Component, computed, input, linkedSignal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport type { TreeItem } from './tree';\n\n/** A single tree row; renders its own children recursively. */\n@Component({\n selector: 'bui-tree-node',\n\n imports: [BuiTreeNode],\n host: { 'data-slot': 'tree-node', '[class]': 'computedClass()' },\n template: `\n <li\n role=\"treeitem\"\n aria-selected=\"false\"\n [attr.aria-expanded]=\"hasChildren() ? open() : null\"\n [attr.aria-level]=\"level()\"\n >\n <button\n type=\"button\"\n class=\"flex w-full items-center gap-1.5 rounded px-2 py-1 text-start outline-none hover:bg-accent\"\n [style.padding-inline-start.rem]=\"level() * 0.75\"\n (click)=\"toggle()\"\n >\n @if (hasChildren()) {\n <svg\n class=\"size-4 shrink-0 transition-transform\"\n [class.rotate-90]=\"open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n } @else {\n <span class=\"size-4 shrink-0\"></span>\n }\n <span class=\"truncate\">{{ item().label }}</span>\n </button>\n @if (hasChildren() && open()) {\n <ul role=\"group\">\n @for (child of children(); track $index) {\n <bui-tree-node [item]=\"child\" [level]=\"level() + 1\" />\n }\n </ul>\n }\n </li>\n `,\n})\nexport class BuiTreeNode {\n readonly item = input.required<TreeItem>();\n readonly level = input(1);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly open = linkedSignal(() => this.item().expanded ?? false);\n protected readonly children = computed(() => this.item().children ?? []);\n protected readonly hasChildren = computed(() => this.children().length > 0);\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected toggle(): void {\n this.open.update((value) => !value);\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiTreeNode } from './tree-node';\n\nexport interface TreeItem {\n label: string;\n children?: TreeItem[];\n expanded?: boolean;\n}\n\n/** A collapsible, data-driven hierarchical tree (`role=\"tree\"`). */\n@Component({\n selector: 'bui-tree',\n imports: [BuiTreeNode],\n host: { 'data-slot': 'tree', '[class]': 'computedClass()' },\n template: `\n <ul role=\"tree\" [attr.aria-label]=\"ariaLabel()\" class=\"text-sm\">\n @for (item of items(); track $index) {\n <bui-tree-node [item]=\"item\" [level]=\"1\" />\n }\n </ul>\n `,\n})\nexport class BuiTree {\n readonly items = input<readonly TreeItem[]>([]);\n readonly ariaLabel = input('Tree');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface RepeaterField {\n key: string;\n label: string;\n placeholder?: string;\n type?: string;\n}\n\n/** A dynamic list of repeatable form rows with add/remove and min/max bounds. */\n@Component({\n selector: 'bui-repeater',\n host: { 'data-slot': 'repeater', '[class]': 'computedClass()' },\n template: `\n @for (row of rows(); track $index; let i = $index) {\n <div class=\"flex items-end gap-2\">\n @for (field of fields(); track field.key) {\n <div class=\"flex-1\">\n @if (i === 0) {\n <span class=\"mb-1 block text-xs text-muted-foreground\">{{ field.label }}</span>\n }\n <input\n [type]=\"field.type || 'text'\"\n [value]=\"row[field.key] || ''\"\n [placeholder]=\"field.placeholder || ''\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"update(i, field.key, $event)\"\n />\n </div>\n }\n <button\n type=\"button\"\n class=\"inline-flex size-9 shrink-0 items-center justify-center rounded-md border border-input text-muted-foreground hover:bg-accent disabled:opacity-50\"\n [disabled]=\"rows().length <= min()\"\n aria-label=\"Remove row\"\n (click)=\"removeRow(i)\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n />\n </svg>\n </button>\n </div>\n }\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center gap-1.5 self-start rounded-md border border-dashed border-input px-3 text-sm font-medium hover:bg-accent disabled:opacity-50\"\n [disabled]=\"atMax()\"\n (click)=\"addRow()\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n {{ addLabel() }}\n </button>\n `,\n})\nexport class BuiRepeater {\n readonly fields = input<readonly RepeaterField[]>([]);\n readonly rows = model<Record<string, string>[]>([]);\n readonly min = input(1);\n readonly max = input<number | null>(null);\n readonly addLabel = input('Add row');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly atMax = computed(() => {\n const max = this.max();\n return max !== null && this.rows().length >= max;\n });\n protected readonly computedClass = computed(() => cn('flex flex-col gap-2', this.userClass()));\n\n protected addRow(): void {\n if (this.atMax()) {\n return;\n }\n const blank: Record<string, string> = {};\n for (const field of this.fields()) {\n blank[field.key] = '';\n }\n this.rows.set([...this.rows(), blank]);\n }\n\n protected removeRow(index: number): void {\n if (this.rows().length <= this.min()) {\n return;\n }\n const next = [...this.rows()];\n next.splice(index, 1);\n this.rows.set(next);\n }\n\n protected update(index: number, key: string, event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.rows.set(\n this.rows().map((row, index_) => (index_ === index ? { ...row, [key]: value } : row)),\n );\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface NotificationItem {\n title: string;\n body?: string;\n time?: string;\n read?: boolean;\n}\n\n/** A bell trigger with a dropdown feed of notifications and an unread badge. */\n@Component({\n selector: 'bui-notification-center',\n host: { 'data-slot': 'notification-center', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n class=\"relative inline-flex size-9 items-center justify-center rounded-md border border-input hover:bg-accent\"\n [attr.aria-expanded]=\"open()\"\n aria-label=\"Notifications\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\" />\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\" />\n </svg>\n @if (unread() > 0) {\n <span\n class=\"absolute -end-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-medium text-primary-foreground\"\n >\n {{ unread() }}\n </span>\n }\n </button>\n @if (open()) {\n <div\n class=\"absolute end-0 z-50 mt-2 w-80 rounded-lg border bg-popover text-popover-foreground shadow-md\"\n role=\"region\"\n aria-label=\"Notifications\"\n >\n <div class=\"flex items-center justify-between border-b p-3\">\n <span class=\"text-sm font-medium\">Notifications</span>\n <button type=\"button\" class=\"text-xs font-medium text-primary\" (click)=\"markAllRead()\">\n Mark all read\n </button>\n </div>\n <ul class=\"max-h-80 overflow-auto\">\n @for (item of notifications(); track $index; let i = $index) {\n <li\n class=\"flex gap-3 border-b p-3 last:border-0\"\n [class]=\"isRead(i) ? '' : 'bg-muted/30'\"\n >\n <div class=\"min-w-0 flex-1\">\n <div class=\"text-sm font-medium\">{{ item.title }}</div>\n @if (item.body) {\n <div class=\"truncate text-xs text-muted-foreground\">{{ item.body }}</div>\n }\n @if (item.time) {\n <div class=\"mt-0.5 text-[10px] text-muted-foreground\">{{ item.time }}</div>\n }\n </div>\n @if (!isRead(i)) {\n <span\n class=\"mt-1.5 size-2 shrink-0 rounded-full bg-primary\"\n aria-label=\"Unread\"\n ></span>\n }\n </li>\n } @empty {\n <li class=\"p-6 text-center text-sm text-muted-foreground\">No notifications</li>\n }\n </ul>\n </div>\n }\n `,\n})\nexport class BuiNotificationCenter {\n readonly notifications = input<readonly NotificationItem[]>([]);\n readonly open = model(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly markedRead = signal<ReadonlySet<number>>(new Set());\n protected readonly unread = computed(\n () => this.notifications().filter((_, index) => !this.isRead(index)).length,\n );\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected isRead(index: number): boolean {\n return this.markedRead().has(index) || (this.notifications()[index]?.read ?? false);\n }\n\n protected markAllRead(): void {\n this.markedRead.set(new Set(this.notifications().map((_, index) => index)));\n }\n}\n","import { Component, computed, input, linkedSignal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ninterface Entry {\n key: string | number;\n value: unknown;\n}\n\n/** A single JSON node; renders nested objects/arrays recursively. */\n@Component({\n selector: 'bui-json-viewer-node',\n\n imports: [BuiJsonViewerNode],\n host: { 'data-slot': 'json-viewer-node', '[class]': 'computedClass()' },\n template: `\n @if (isContainer()) {\n <div>\n <button\n type=\"button\"\n class=\"-mx-1 inline-flex items-baseline gap-1 rounded px-1 text-start outline-none hover:bg-accent/60\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-3 shrink-0 self-center transition-transform\"\n [class.rotate-90]=\"open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n @if (hasKey()) {\n <span [class]=\"keyClass()\">{{ keyLabel() }}</span\n ><span class=\"text-muted-foreground\">:</span>\n }\n <span class=\"text-muted-foreground\">{{ brace() }}</span>\n @if (!open()) {\n <span class=\"text-muted-foreground\"\n >…{{ closeBrace() }} <span class=\"italic\">{{ count() }}</span></span\n >\n }\n </button>\n @if (open()) {\n <div class=\"ps-4\">\n @for (entry of entries(); track entry.key) {\n <bui-json-viewer-node [value]=\"entry.value\" [keyName]=\"entry.key\" />\n }\n </div>\n <span class=\"ps-1 text-muted-foreground\">{{ closeBrace() }}</span>\n }\n </div>\n } @else {\n <div>\n @if (hasKey()) {\n <span [class]=\"keyClass()\">{{ keyLabel() }}</span\n ><span class=\"text-muted-foreground\">: </span>\n }\n <span [class]=\"valueClass()\">{{ valueLabel() }}</span>\n </div>\n }\n `,\n})\nexport class BuiJsonViewerNode {\n readonly value = input<unknown>(null);\n readonly keyName = input<string | number | null>(null);\n readonly expanded = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly open = linkedSignal(() => this.expanded());\n protected readonly isArr = computed(() => Array.isArray(this.value()));\n protected readonly isContainer = computed(() => {\n const value = this.value();\n return typeof value === 'object' && value !== null;\n });\n protected readonly entries = computed<Entry[]>(() => {\n const value = this.value();\n if (Array.isArray(value)) {\n return (value as unknown[]).map((item, index) => ({ key: index, value: item }));\n }\n if (value && typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>).map(([key, item]) => ({\n key,\n value: item,\n }));\n }\n return [];\n });\n protected readonly count = computed(() => this.entries().length);\n protected readonly hasKey = computed(() => this.keyName() !== null);\n protected readonly keyLabel = computed(() =>\n typeof this.keyName() === 'number' ? String(this.keyName()) : `\"${this.keyName()}\"`,\n );\n protected readonly keyClass = computed(() =>\n typeof this.keyName() === 'number' ? 'text-muted-foreground' : 'text-sky-600 dark:text-sky-400',\n );\n protected readonly brace = computed(() => (this.isArr() ? '[' : '{'));\n protected readonly closeBrace = computed(() => (this.isArr() ? ']' : '}'));\n protected readonly valueLabel = computed(() => {\n const value = this.value();\n if (typeof value === 'string') {\n return `\"${value}\"`;\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (value === null) {\n return 'null';\n }\n return JSON.stringify(value);\n });\n protected readonly valueClass = computed(() => {\n const value = this.value();\n if (typeof value === 'string') {\n return 'text-emerald-600 dark:text-emerald-400';\n }\n if (typeof value === 'number') {\n return 'text-amber-600 dark:text-amber-400';\n }\n if (typeof value === 'boolean' || value === null) {\n return 'text-purple-600 dark:text-purple-400';\n }\n return 'text-foreground';\n });\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiJsonViewerNode } from './json-viewer-node';\n\n/** A collapsible JSON tree viewer. Accepts an object/array or a JSON string. */\n@Component({\n selector: 'bui-json-viewer',\n imports: [BuiJsonViewerNode],\n host: { 'data-slot': 'json-viewer', '[class]': 'computedClass()' },\n template: `<bui-json-viewer-node [value]=\"parsed()\" [expanded]=\"expanded()\" />`,\n})\nexport class BuiJsonViewer {\n readonly data = input<unknown>(null);\n readonly expanded = input(true);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly parsed = computed(() => {\n const data = this.data();\n if (typeof data === 'string') {\n try {\n return JSON.parse(data) as unknown;\n } catch {\n return data;\n }\n }\n return data;\n });\n protected readonly computedClass = computed(() =>\n cn('block overflow-auto rounded-lg border bg-card p-3 font-mono text-xs', this.userClass()),\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport type { OrgNode } from './org-chart';\n\n/** A single org-chart node (a card + recursive children). Rendered on an `<li>`. */\n@Component({\n selector: 'li[buiOrgChartNode]',\n\n imports: [BuiOrgChartNode],\n host: { 'data-slot': 'org-chart-node' },\n template: `\n <div\n class=\"relative z-10 flex w-40 flex-col items-center gap-2 rounded-xl border bg-card p-4 text-center text-card-foreground shadow-sm\"\n >\n <span\n class=\"flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-sm font-medium\"\n >\n @if (node().avatar) {\n <img [src]=\"node().avatar\" alt=\"\" class=\"size-full object-cover\" />\n } @else {\n {{ initials() }}\n }\n </span>\n <span class=\"text-sm font-medium\">{{ node().name }}</span>\n @if (node().title) {\n <span class=\"text-xs text-muted-foreground\">{{ node().title }}</span>\n }\n </div>\n @if (children().length > 0) {\n <ul>\n @for (child of children(); track $index) {\n <li buiOrgChartNode [node]=\"child\"></li>\n }\n </ul>\n }\n `,\n})\nexport class BuiOrgChartNode {\n readonly node = input.required<OrgNode>();\n protected readonly children = computed(() => this.node().children ?? []);\n protected readonly initials = computed(() =>\n this.node()\n .name.split(/\\s+/)\n .filter((part) => part.length > 0)\n .slice(0, 2)\n .map((part) => part.charAt(0).toUpperCase())\n .join(''),\n );\n}\n","import { Component, computed, input, ViewEncapsulation } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { BuiOrgChartNode } from './org-chart-node';\n\nexport interface OrgNode {\n name: string;\n title?: string;\n avatar?: string;\n children?: OrgNode[];\n}\n\n/** A top-down organizational chart with pure-CSS connectors. Recursively renders nodes. */\n@Component({\n selector: 'bui-org-chart',\n imports: [BuiOrgChartNode],\n encapsulation: ViewEncapsulation.None,\n host: { 'data-slot': 'org-chart', '[class]': 'computedClass()' },\n styles: [\n `\n [data-slot='org-chart'] ul {\n display: flex;\n justify-content: center;\n gap: 1rem;\n padding-top: 1.25rem;\n list-style: none;\n margin: 0;\n padding-inline-start: 0;\n }\n [data-slot='org-chart'] li {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 1.25rem 0.5rem 0;\n }\n [data-slot='org-chart'] li::before,\n [data-slot='org-chart'] li::after {\n content: '';\n position: absolute;\n top: 0;\n width: 50%;\n height: 1.25rem;\n border-top: 1px solid var(--border);\n }\n [data-slot='org-chart'] li::before {\n inset-inline-end: 50%;\n }\n [data-slot='org-chart'] li::after {\n inset-inline-start: 50%;\n border-inline-start: 1px solid var(--border);\n }\n [data-slot='org-chart'] li:only-child {\n padding-top: 0.5rem;\n }\n [data-slot='org-chart'] li:only-child::before,\n [data-slot='org-chart'] li:only-child::after {\n display: none;\n }\n [data-slot='org-chart'] li:first-child::before,\n [data-slot='org-chart'] li:last-child::after {\n border: 0;\n }\n [data-slot='org-chart'] li:last-child::before {\n border-inline-end: 1px solid var(--border);\n }\n [data-slot='org-chart'] ul ul::before {\n content: '';\n position: absolute;\n top: 0;\n inset-inline-start: 50%;\n height: 1.25rem;\n border-inline-start: 1px solid var(--border);\n }\n [data-slot='org-chart'] > ul {\n padding-top: 0;\n }\n [data-slot='org-chart'] > ul > li {\n padding-top: 0;\n }\n [data-slot='org-chart'] > ul > li::before,\n [data-slot='org-chart'] > ul > li::after {\n display: none;\n }\n `,\n ],\n template: `\n <ul>\n @if (node()) {\n <li buiOrgChartNode [node]=\"node()!\"></li>\n }\n </ul>\n `,\n})\nexport class BuiOrgChart {\n readonly node = input<OrgNode | null>(null);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly computedClass = computed(() => cn('block overflow-x-auto', this.userClass()));\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface CartItem {\n name: string;\n variant?: string;\n price: number;\n qty: number;\n image?: string;\n}\n\n/** A cart trigger with an item-count badge and a dropdown with line items + subtotal. */\n@Component({\n selector: 'bui-mini-cart',\n host: { 'data-slot': 'mini-cart', '[class]': 'computedClass()' },\n template: `\n <button\n type=\"button\"\n class=\"relative inline-flex size-9 items-center justify-center rounded-md border border-input hover:bg-accent\"\n [attr.aria-expanded]=\"open()\"\n aria-label=\"Cart\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\" />\n <path d=\"M3 6h18\" />\n <path d=\"M16 10a4 4 0 0 1-8 0\" />\n </svg>\n @if (count() > 0) {\n <span\n class=\"absolute -end-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-medium text-primary-foreground\"\n >\n {{ count() }}\n </span>\n }\n </button>\n @if (open()) {\n <div\n class=\"absolute end-0 z-50 mt-2 w-80 rounded-lg border bg-popover text-popover-foreground shadow-md\"\n role=\"dialog\"\n aria-label=\"Shopping cart\"\n >\n <div class=\"border-b p-3 text-sm font-medium\">Your cart</div>\n @if (items().length === 0) {\n <p class=\"p-6 text-center text-sm text-muted-foreground\">Your cart is empty.</p>\n } @else {\n <ul class=\"max-h-72 overflow-auto\">\n @for (item of items(); track $index) {\n <li class=\"flex items-center gap-3 border-b p-3 last:border-0\">\n <span class=\"size-12 shrink-0 overflow-hidden rounded-md bg-muted\">\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" class=\"size-full object-cover\" />\n }\n </span>\n <div class=\"min-w-0 flex-1\">\n <div class=\"truncate text-sm font-medium\">{{ item.name }}</div>\n @if (item.variant) {\n <div class=\"text-xs text-muted-foreground\">{{ item.variant }}</div>\n }\n <div class=\"text-xs text-muted-foreground\">Qty {{ item.qty }}</div>\n </div>\n <span class=\"text-sm font-medium tabular-nums\">{{\n format(item.price * item.qty)\n }}</span>\n </li>\n }\n </ul>\n <div class=\"flex items-center justify-between border-t p-3\">\n <span class=\"text-sm font-medium\">Subtotal</span>\n <span class=\"text-sm font-semibold tabular-nums\">{{ format(subtotal()) }}</span>\n </div>\n <div class=\"p-3 pt-0\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full items-center justify-center rounded-md bg-primary text-sm font-medium text-primary-foreground\"\n >\n Checkout\n </button>\n </div>\n }\n </div>\n }\n `,\n})\nexport class BuiMiniCart {\n readonly items = input<readonly CartItem[]>([]);\n readonly currency = input('$');\n readonly open = model(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly count = computed(() =>\n this.items().reduce((total, item) => total + item.qty, 0),\n );\n protected readonly subtotal = computed(() =>\n this.items().reduce((total, item) => total + item.price * item.qty, 0),\n );\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected format(value: number): string {\n return (\n this.currency() +\n value.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })\n );\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** An SVG beam connecting two elements (by selector) with a travelling light. SSR-safe. */\n@Component({\n selector: 'bui-animated-beam',\n host: {\n 'data-slot': 'animated-beam',\n '[class]': 'computedClass()',\n '(window:resize)': 'measure()',\n },\n styles: [\n `\n @keyframes bui-beam-travel {\n to {\n stroke-dashoffset: -1000;\n }\n }\n .bui-beam-line {\n animation: bui-beam-travel var(--bui-beam-dur, 3s) linear infinite;\n }\n @media (prefers-reduced-motion: reduce) {\n .bui-beam-line {\n animation: none;\n }\n }\n `,\n ],\n template: `\n <svg\n class=\"pointer-events-none absolute inset-0 size-full\"\n aria-hidden=\"true\"\n [attr.viewBox]=\"viewBox()\"\n fill=\"none\"\n preserveAspectRatio=\"none\"\n >\n <path [attr.d]=\"path()\" class=\"stroke-border\" stroke-width=\"2\" fill=\"none\" />\n <path\n [attr.d]=\"path()\"\n class=\"bui-beam-line stroke-primary\"\n stroke-width=\"2\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"60 940\"\n [style.--bui-beam-dur]=\"duration() + 's'\"\n />\n </svg>\n <ng-content />\n `,\n})\nexport class BuiAnimatedBeam {\n readonly from = input('');\n readonly to = input('');\n readonly curvature = input(0);\n readonly duration = input(3);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly path = signal('');\n protected readonly viewBox = signal('0 0 0 0');\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.measure();\n });\n }\n\n protected measure(): void {\n const root = this.host.nativeElement;\n const start = this.from() ? root.querySelector(this.from()) : null;\n const end = this.to() ? root.querySelector(this.to()) : null;\n if (!start || !end) {\n return;\n }\n const rect = root.getBoundingClientRect();\n const a = start.getBoundingClientRect();\n const b = end.getBoundingClientRect();\n const x1 = a.left + a.width / 2 - rect.left;\n const y1 = a.top + a.height / 2 - rect.top;\n const x2 = b.left + b.width / 2 - rect.left;\n const y2 = b.top + b.height / 2 - rect.top;\n const mx = (x1 + x2) / 2;\n const my = (y1 + y2) / 2 - this.curvature();\n this.viewBox.set(`0 0 ${rect.width} ${rect.height}`);\n this.path.set(`M ${x1} ${y1} Q ${mx} ${my} ${x2} ${y2}`);\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ntype DiffType = 'same' | 'add' | 'del';\ninterface DiffLine {\n type: DiffType;\n text: string;\n}\n\nfunction splitLines(value: string): string[] {\n return value === '' ? [] : value.replaceAll('\\r\\n', '\\n').split('\\n');\n}\n\nfunction diffLines(before: string[], after: string[]): DiffLine[] {\n const n = before.length;\n const m = after.length;\n const lcs: number[][] = Array.from({ length: n + 1 }, () =>\n Array.from({ length: m + 1 }, () => 0),\n );\n for (let index = n - 1; index >= 0; index -= 1) {\n for (let index_ = m - 1; index_ >= 0; index_ -= 1) {\n lcs[index][index_] =\n before[index] === after[index_]\n ? lcs[index + 1][index_ + 1] + 1\n : Math.max(lcs[index + 1][index_], lcs[index][index_ + 1]);\n }\n }\n const out: DiffLine[] = [];\n let index = 0;\n let index_ = 0;\n while (index < n && index_ < m) {\n if (before[index] === after[index_]) {\n out.push({ type: 'same', text: before[index] });\n index += 1;\n index_ += 1;\n } else if (lcs[index + 1][index_] >= lcs[index][index_ + 1]) {\n out.push({ type: 'del', text: before[index] });\n index += 1;\n } else {\n out.push({ type: 'add', text: after[index_] });\n index_ += 1;\n }\n }\n while (index < n) {\n out.push({ type: 'del', text: before[index] });\n index += 1;\n }\n while (index_ < m) {\n out.push({ type: 'add', text: after[index_] });\n index_ += 1;\n }\n return out;\n}\n\nconst ROW_CLASS: Record<DiffType, string> = {\n same: '',\n add: 'bg-emerald-500/10',\n del: 'bg-red-500/10',\n};\nconst SIGN: Record<DiffType, string> = { same: ' ', add: '+', del: '-' };\n\n/** A line-by-line text diff (LCS) rendered with +/- gutters. */\n@Component({\n selector: 'bui-diff-viewer',\n host: { 'data-slot': 'diff-viewer', '[class]': 'computedClass()' },\n template: `\n @if (filename()) {\n <div class=\"border-b bg-muted/50 px-3 py-2 font-mono text-xs font-medium\">\n {{ filename() }}\n </div>\n }\n <table class=\"w-full border-collapse font-mono text-xs\">\n <tbody>\n @for (line of lines(); track $index) {\n <tr [class]=\"rowClass(line.type)\">\n <td class=\"w-6 px-2 text-center text-muted-foreground select-none\">\n {{ sign(line.type) }}\n </td>\n <td class=\"px-2 py-0.5 whitespace-pre-wrap\">{{ line.text }}</td>\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class BuiDiffViewer {\n readonly before = input('');\n readonly after = input('');\n readonly filename = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly lines = computed(() =>\n diffLines(splitLines(this.before()), splitLines(this.after())),\n );\n protected readonly computedClass = computed(() =>\n cn('block overflow-hidden rounded-lg border', this.userClass()),\n );\n\n protected rowClass(type: DiffType): string {\n return ROW_CLASS[type];\n }\n\n protected sign(type: DiffType): string {\n return SIGN[type];\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface TreeTableColumn {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n}\nexport interface TreeTableRow {\n children?: TreeTableRow[];\n expanded?: boolean;\n [key: string]: unknown;\n}\n\ninterface FlatRow {\n path: string;\n depth: number;\n hasChildren: boolean;\n data: TreeTableRow;\n}\n\nconst ALIGN: Record<string, string> = {\n left: 'text-start',\n center: 'text-center',\n right: 'text-end',\n};\n\n/** A table whose rows can nest and expand/collapse (flattened to visible rows). */\n@Component({\n selector: 'bui-tree-table',\n host: { 'data-slot': 'tree-table', '[class]': 'computedClass()' },\n template: `\n <table class=\"w-full text-sm\">\n <thead>\n <tr class=\"border-b\">\n @for (column of columns(); track column.key) {\n <th class=\"px-3 py-2 font-medium\" [class]=\"alignClass(column.align)\">\n {{ column.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of visibleRows(); track row.path) {\n <tr class=\"border-b last:border-0\">\n @for (column of columns(); track column.key; let first = $first) {\n <td class=\"px-3 py-2\" [class]=\"alignClass(column.align)\">\n @if (first) {\n <span\n class=\"inline-flex items-center gap-1\"\n [style.padding-inline-start.rem]=\"row.depth * 1.25\"\n >\n @if (row.hasChildren) {\n <button\n type=\"button\"\n class=\"text-muted-foreground hover:text-foreground\"\n [attr.aria-expanded]=\"isOpen(row.path)\"\n aria-label=\"Toggle row\"\n (click)=\"toggle(row.path)\"\n >\n <svg\n class=\"size-4 transition-transform\"\n [class.rotate-90]=\"isOpen(row.path)\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </button>\n } @else {\n <span class=\"size-4 shrink-0\"></span>\n }\n <span>{{ cell(row.data, column.key) }}</span>\n </span>\n } @else {\n {{ cell(row.data, column.key) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class BuiTreeTable {\n readonly columns = input<readonly TreeTableColumn[]>([]);\n readonly rows = input<readonly TreeTableRow[]>([]);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly overrides = signal<ReadonlyMap<string, boolean>>(new Map());\n private readonly defaults = computed(() => {\n const map = new Map<string, boolean>();\n const walk = (rows: readonly TreeTableRow[], prefix: string): void => {\n for (const [index, row] of rows.entries()) {\n const path = prefix === '' ? String(index) : `${prefix}.${index}`;\n map.set(path, row.expanded === true);\n if (row.children) {\n walk(row.children, path);\n }\n }\n };\n walk(this.rows(), '');\n return map;\n });\n protected readonly visibleRows = computed<FlatRow[]>(() => {\n const out: FlatRow[] = [];\n const walk = (rows: readonly TreeTableRow[], prefix: string, depth: number): void => {\n for (const [index, row] of rows.entries()) {\n const path = prefix === '' ? String(index) : `${prefix}.${index}`;\n const children = row.children ?? [];\n const hasChildren = children.length > 0;\n out.push({ path, depth, hasChildren, data: row });\n if (hasChildren && this.isOpen(path)) {\n walk(children, path, depth + 1);\n }\n }\n };\n walk(this.rows(), '', 0);\n return out;\n });\n protected readonly computedClass = computed(() => cn('block overflow-x-auto', this.userClass()));\n\n protected isOpen(path: string): boolean {\n return this.overrides().get(path) ?? this.defaults().get(path) ?? false;\n }\n\n toggle(path: string): void {\n const next = new Map(this.overrides());\n next.set(path, !this.isOpen(path));\n this.overrides.set(next);\n }\n\n protected alignClass(align: string | undefined): string {\n return ALIGN[align ?? 'left'];\n }\n\n protected cell(row: TreeTableRow, key: string): string {\n const value = row[key];\n if (typeof value === 'string') {\n return value;\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n return '';\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n// HTML is escaped first, then a safe subset of markdown is applied, so user input can't inject markup.\nfunction renderMarkdown(markdown: string): string {\n const escaped = markdown.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');\n return escaped\n .replaceAll(/^### (.+)$/gm, '<h3>$1</h3>')\n .replaceAll(/^## (.+)$/gm, '<h2>$1</h2>')\n .replaceAll(/^# (.+)$/gm, '<h1>$1</h1>')\n .replaceAll(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>')\n .replaceAll(/\\*([^*]+)\\*/g, '<em>$1</em>')\n .replaceAll(/`([^`]+)`/g, '<code>$1</code>')\n .replaceAll('\\n', '<br>');\n}\n\n/** A markdown textarea with a live, sanitized HTML preview. */\n@Component({\n selector: 'bui-markdown-editor',\n host: { 'data-slot': 'markdown-editor', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex border-b bg-muted/40\">\n <button type=\"button\" [class]=\"tabClass('write')\" (click)=\"tab.set('write')\">Write</button>\n <button type=\"button\" [class]=\"tabClass('preview')\" (click)=\"tab.set('preview')\">\n Preview\n </button>\n </div>\n @if (tab() === 'write') {\n <textarea\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [rows]=\"rows()\"\n [attr.name]=\"name() || null\"\n class=\"w-full resize-y bg-transparent p-3 font-mono text-sm outline-none\"\n (input)=\"onInput($event)\"\n ></textarea>\n } @else {\n <div\n data-slot=\"markdown-preview\"\n class=\"min-h-32 p-3 text-sm leading-relaxed [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_h1]:text-xl [&_h1]:font-bold [&_h2]:text-lg [&_h2]:font-semibold [&_h3]:font-medium\"\n [innerHTML]=\"rendered()\"\n ></div>\n }\n `,\n})\nexport class BuiMarkdownEditor {\n readonly value = model('');\n readonly name = input('');\n readonly placeholder = input('Write markdown…');\n readonly rows = input(8);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly tab = signal<'write' | 'preview'>('write');\n protected readonly rendered = computed(() => renderMarkdown(this.value()));\n protected readonly computedClass = computed(() =>\n cn('block overflow-hidden rounded-lg border', this.userClass()),\n );\n\n protected tabClass(name: 'write' | 'preview'): string {\n return cn(\n 'px-4 py-2 text-sm font-medium',\n this.tab() === name ? 'border-b-2 border-primary text-foreground' : 'text-muted-foreground',\n );\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ninterface Day {\n iso: string;\n num: number;\n inMonth: boolean;\n isToday: boolean;\n disabled: boolean;\n}\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nfunction pad(value: number): string {\n return String(value).padStart(2, '0');\n}\nfunction isoOf(date: Date): string {\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;\n}\n\n/** A single-month date calendar. Pick a day; navigate months. SSR-safe. */\n@Component({\n selector: 'bui-calendar',\n host: { 'data-slot': 'calendar', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex items-center justify-between pb-2\">\n <button\n type=\"button\"\n class=\"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent\"\n aria-label=\"Previous month\"\n (click)=\"changeMonth(-1)\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n <div class=\"text-sm font-medium\" aria-live=\"polite\">{{ monthLabel() }}</div>\n <button\n type=\"button\"\n class=\"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent\"\n aria-label=\"Next month\"\n (click)=\"changeMonth(1)\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </button>\n </div>\n <table role=\"grid\" class=\"w-full border-collapse\">\n <thead>\n <tr>\n @for (weekday of weekdays(); track weekday) {\n <th scope=\"col\" class=\"size-9 text-xs font-normal text-muted-foreground\">\n {{ weekday }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (week of weeks(); track $index) {\n <tr>\n @for (day of week; track day.iso) {\n <td class=\"p-0 text-center\">\n <button\n type=\"button\"\n class=\"size-9 rounded-md text-sm\"\n [class]=\"dayClass(day)\"\n [attr.aria-pressed]=\"day.iso === value()\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [disabled]=\"day.disabled\"\n (click)=\"select(day.iso)\"\n >\n {{ day.num }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class BuiCalendar {\n readonly value = model('');\n readonly weekStart = input(0);\n readonly minDate = input('');\n readonly maxDate = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly view = signal(new Date(new Date().getFullYear(), new Date().getMonth(), 1));\n protected readonly weekdays = computed(() => {\n const start = ((this.weekStart() % 7) + 7) % 7;\n return [...WEEKDAYS.slice(start), ...WEEKDAYS.slice(0, start)];\n });\n protected readonly monthLabel = computed(() =>\n this.view().toLocaleDateString('en-US', { month: 'long', year: 'numeric' }),\n );\n protected readonly weeks = computed<Day[][]>(() => {\n const view = this.view();\n const year = view.getFullYear();\n const month = view.getMonth();\n const offset = (((new Date(year, month, 1).getDay() - this.weekStart()) % 7) + 7) % 7;\n const today = isoOf(new Date());\n return Array.from({ length: 6 }, (_, w) =>\n Array.from({ length: 7 }, (_, d) => {\n const date = new Date(year, month, 1 - offset + w * 7 + d);\n const iso = isoOf(date);\n return {\n iso,\n num: date.getDate(),\n inMonth: date.getMonth() === month,\n isToday: iso === today,\n disabled: this.isDisabled(iso),\n };\n }),\n );\n });\n protected readonly computedClass = computed(() =>\n cn('inline-block rounded-lg bg-card p-3', this.userClass()),\n );\n\n protected changeMonth(delta: number): void {\n const view = this.view();\n this.view.set(new Date(view.getFullYear(), view.getMonth() + delta, 1));\n }\n\n protected select(iso: string): void {\n this.value.set(iso);\n }\n\n protected dayClass(day: Day): string {\n if (day.iso === this.value()) {\n return 'bg-primary text-primary-foreground font-medium';\n }\n return cn(\n 'hover:bg-accent disabled:pointer-events-none disabled:opacity-40',\n day.inMonth ? '' : 'text-muted-foreground/50',\n day.isToday ? 'border border-primary' : '',\n );\n }\n\n private isDisabled(iso: string): boolean {\n const min = this.minDate();\n const max = this.maxDate();\n return (min !== '' && iso < min) || (max !== '' && iso > max);\n }\n}\n","import { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { BuiCalendar } from '../calendar/calendar';\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A date input that opens a calendar popover. */\n@Component({\n selector: 'bui-date-picker',\n imports: [BuiCalendar],\n host: {\n 'data-slot': 'date-picker',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-4 text-muted-foreground\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 2v4M16 2v4M3 10h18\" />\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" />\n </svg>\n <span [class]=\"value() ? '' : 'text-muted-foreground'\">{{ display() }}</span>\n </button>\n @if (open()) {\n <div class=\"absolute z-50 mt-1 rounded-lg border bg-popover shadow-md\">\n <bui-calendar\n [value]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (valueChange)=\"onPick($event)\"\n />\n </div>\n }\n `,\n})\nexport class BuiDatePicker {\n readonly value = model('');\n readonly placeholder = input('Pick a date');\n readonly minDate = input('');\n readonly maxDate = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly display = computed(() => {\n const value = this.value();\n if (value === '') {\n return this.placeholder();\n }\n return new Date(`${value}T00:00:00`).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n });\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected onPick(iso: string): void {\n this.value.set(iso);\n this.open.set(false);\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.open.set(false);\n }\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A slide carousel. Project slides as direct children; arrows + dots navigate. SSR-safe. */\n@Component({\n selector: 'bui-carousel',\n host: {\n 'data-slot': 'carousel',\n role: 'region',\n 'aria-roledescription': 'carousel',\n '[class]': 'computedClass()',\n },\n template: `\n <div class=\"overflow-hidden rounded-lg\">\n <div\n #track\n class=\"flex transition-transform duration-300 [&>*]:w-full [&>*]:shrink-0 [&>*]:grow-0\"\n [style.transform]=\"'translateX(-' + index() * 100 + '%)'\"\n >\n <ng-content />\n </div>\n </div>\n <button\n type=\"button\"\n class=\"absolute start-2 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background shadow-sm disabled:opacity-40\"\n [disabled]=\"index() === 0\"\n aria-label=\"Previous slide\"\n (click)=\"prev()\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n <button\n type=\"button\"\n class=\"absolute end-2 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background shadow-sm disabled:opacity-40\"\n [disabled]=\"index() >= count() - 1\"\n aria-label=\"Next slide\"\n (click)=\"next()\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </button>\n @if (count() > 1) {\n <div class=\"mt-3 flex justify-center gap-1.5\">\n @for (dot of dots(); track dot) {\n <button\n type=\"button\"\n class=\"size-2 rounded-full transition-colors\"\n [class]=\"dot === index() ? 'bg-primary' : 'bg-muted'\"\n [attr.aria-label]=\"'Go to slide ' + (dot + 1)\"\n [attr.aria-current]=\"dot === index() ? 'true' : null\"\n (click)=\"index.set(dot)\"\n ></button>\n }\n </div>\n }\n `,\n})\nexport class BuiCarousel {\n readonly index = model(0);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly track = viewChild<ElementRef<HTMLElement>>('track');\n protected readonly count = signal(0);\n protected readonly dots = computed(() =>\n Array.from({ length: this.count() }, (_, index) => index),\n );\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n constructor() {\n afterNextRender(() => {\n this.count.set(this.track()?.nativeElement.children.length ?? 0);\n });\n }\n\n protected prev(): void {\n this.index.set(Math.max(0, this.index() - 1));\n }\n\n protected next(): void {\n this.index.set(Math.min(this.count() - 1, this.index() + 1));\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, inject, input, output, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface CommandItem {\n label: string;\n value?: string;\n shortcut?: string;\n}\nexport interface CommandGroup {\n label?: string;\n items: CommandItem[];\n}\ninterface Row {\n kind: 'header' | 'item';\n label: string;\n item?: CommandItem;\n itemIndex: number;\n}\n\n/** A command palette: a filterable, keyboard-navigable list of grouped actions. */\n@Component({\n selector: 'bui-command',\n host: { 'data-slot': 'command', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex items-center gap-2 border-b px-3\">\n <svg\n class=\"size-4 shrink-0 text-muted-foreground\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n type=\"text\"\n role=\"combobox\"\n aria-expanded=\"true\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-activedescendant]=\"listId + '-' + active()\"\n [value]=\"query()\"\n [placeholder]=\"placeholder()\"\n class=\"h-10 w-full bg-transparent text-sm outline-none\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n />\n </div>\n <ul [id]=\"listId\" role=\"listbox\" class=\"max-h-72 overflow-auto p-1\">\n @for (row of rows(); track $index) {\n @if (row.kind === 'header') {\n <li role=\"presentation\" class=\"px-2 pt-2 pb-1 text-xs font-medium text-muted-foreground\">\n {{ row.label }}\n </li>\n } @else {\n <li\n [id]=\"listId + '-' + row.itemIndex\"\n role=\"option\"\n [attr.aria-selected]=\"row.itemIndex === active()\"\n class=\"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm\"\n [class]=\"row.itemIndex === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"choose(row.item!)\"\n (mouseenter)=\"active.set(row.itemIndex)\"\n >\n <span>{{ row.label }}</span>\n @if (row.item?.shortcut) {\n <kbd class=\"ms-auto text-xs text-muted-foreground\">{{ row.item?.shortcut }}</kbd>\n }\n </li>\n }\n }\n @if (itemCount() === 0) {\n <li role=\"presentation\" class=\"py-6 text-center text-sm text-muted-foreground\">\n No results found.\n </li>\n }\n </ul>\n `,\n})\nexport class BuiCommand {\n readonly groups = input<readonly CommandGroup[]>([]);\n readonly placeholder = input('Type a command or search…');\n readonly selected = output<CommandItem>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly listId = inject(_IdGenerator).getId('bui-command-');\n protected readonly query = signal('');\n protected readonly active = signal(0);\n protected readonly filtered = computed(() => {\n const query = this.query().trim().toLowerCase();\n if (query === '') {\n return this.groups();\n }\n return this.groups()\n .map((group) => ({\n label: group.label,\n items: group.items.filter((item) => item.label.toLowerCase().includes(query)),\n }))\n .filter((group) => group.items.length > 0);\n });\n protected readonly flatItems = computed(() => this.filtered().flatMap((group) => group.items));\n protected readonly itemCount = computed(() => this.flatItems().length);\n protected readonly rows = computed<Row[]>(() => {\n const out: Row[] = [];\n let index = 0;\n for (const group of this.filtered()) {\n if (group.label) {\n out.push({ kind: 'header', label: group.label, itemIndex: -1 });\n }\n for (const item of group.items) {\n out.push({ kind: 'item', label: item.label, item, itemIndex: index });\n index += 1;\n }\n }\n return out;\n });\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-full flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground',\n this.userClass(),\n ),\n );\n\n protected onInput(event: Event): void {\n this.query.set((event.target as HTMLInputElement).value);\n this.active.set(0);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.active.set(Math.min(this.itemCount() - 1, this.active() + 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n } else if (event.key === 'Enter' && this.itemCount() > 0) {\n event.preventDefault();\n this.choose(this.flatItems()[this.active()]);\n }\n }\n\n protected choose(item: CommandItem): void {\n this.selected.emit(item);\n }\n}\n","import { Component, computed, input, output, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ContextMenuItem {\n label?: string;\n value?: string;\n shortcut?: string;\n danger?: boolean;\n separator?: boolean;\n}\n\n/** A right-click context menu. Project the target; pass menu `items`. */\n@Component({\n selector: 'bui-context-menu',\n host: {\n 'data-slot': 'context-menu',\n '[class]': 'computedClass()',\n '(contextmenu)': 'onContext($event)',\n '(document:click)': 'open.set(false)',\n '(document:keydown.escape)': 'open.set(false)',\n },\n template: `\n <ng-content />\n @if (open()) {\n <div\n role=\"menu\"\n class=\"fixed z-50 min-w-44 rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n [style.left.px]=\"x()\"\n [style.top.px]=\"y()\"\n >\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div role=\"separator\" class=\"-mx-1 my-1 h-px bg-border\"></div>\n } @else {\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent focus-visible:bg-accent\"\n [class.text-destructive]=\"item.danger\"\n (click)=\"select(item)\"\n >\n <span>{{ item.label }}</span>\n @if (item.shortcut) {\n <span class=\"ms-auto text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n }\n </button>\n }\n }\n </div>\n }\n `,\n})\nexport class BuiContextMenu {\n readonly items = input<readonly ContextMenuItem[]>([]);\n readonly selected = output<ContextMenuItem>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly open = signal(false);\n protected readonly x = signal(0);\n protected readonly y = signal(0);\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected onContext(event: MouseEvent): void {\n event.preventDefault();\n this.x.set(event.clientX);\n this.y.set(event.clientY);\n this.open.set(true);\n }\n\n protected select(item: ContextMenuItem): void {\n this.selected.emit(item);\n this.open.set(false);\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface DataTableColumn {\n key: string;\n label: string;\n sortable?: boolean;\n align?: 'left' | 'center' | 'right';\n}\ntype DataRow = Record<string, unknown>;\n\nconst ALIGN: Record<string, string> = {\n left: 'text-start',\n center: 'text-center',\n right: 'text-end',\n};\n\nfunction cellText(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n return '';\n}\n\n/** A data table with search, sortable columns, row selection and pagination. */\n@Component({\n selector: 'bui-data-table',\n host: { 'data-slot': 'data-table', '[class]': 'computedClass()' },\n template: `\n @if (searchable()) {\n <input\n type=\"search\"\n [value]=\"query()\"\n [placeholder]=\"searchPlaceholder()\"\n class=\"mb-3 h-9 w-full max-w-xs rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n aria-label=\"Search\"\n (input)=\"onSearch($event)\"\n />\n }\n <div class=\"overflow-x-auto rounded-lg border\">\n <table class=\"w-full text-sm\">\n <thead>\n <tr class=\"border-b\">\n @if (selectable()) {\n <th class=\"w-10 p-3\">\n <input\n type=\"checkbox\"\n [checked]=\"allSelected()\"\n [indeterminate]=\"someSelected()\"\n aria-label=\"Select all rows\"\n (change)=\"toggleAll($event)\"\n />\n </th>\n }\n @for (column of columns(); track column.key) {\n <th class=\"p-3 font-medium\" [class]=\"alignClass(column.align)\">\n @if (column.sortable !== false) {\n <button\n type=\"button\"\n class=\"inline-flex items-center gap-1\"\n (click)=\"sortBy(column.key)\"\n >\n {{ column.label }}\n <span class=\"text-xs text-muted-foreground\">{{\n sortIndicator(column.key)\n }}</span>\n </button>\n } @else {\n {{ column.label }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of pageRows(); track $index) {\n <tr class=\"border-b last:border-0\" [class]=\"isSelected(row) ? 'bg-muted/30' : ''\">\n @if (selectable()) {\n <td class=\"p-3\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n aria-label=\"Select row\"\n (change)=\"toggleRow(row)\"\n />\n </td>\n }\n @for (column of columns(); track column.key) {\n <td class=\"p-3\" [class]=\"alignClass(column.align)\">{{ cell(row, column.key) }}</td>\n }\n </tr>\n } @empty {\n <tr>\n <td [attr.colspan]=\"colspan()\" class=\"p-6 text-center text-muted-foreground\">\n No results.\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n <div class=\"mt-3 flex items-center justify-between text-sm\">\n <span class=\"text-muted-foreground\">\n {{ filtered().length }} row(s){{\n selectable() && selectedCount() > 0 ? ', ' + selectedCount() + ' selected' : ''\n }}\n </span>\n <div class=\"flex items-center gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md border border-input px-3 hover:bg-accent disabled:opacity-50\"\n [disabled]=\"page() === 0\"\n (click)=\"page.set(page() - 1)\"\n >\n Previous\n </button>\n <span class=\"text-muted-foreground\">Page {{ page() + 1 }} of {{ pageCount() }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-8 items-center rounded-md border border-input px-3 hover:bg-accent disabled:opacity-50\"\n [disabled]=\"page() >= pageCount() - 1\"\n (click)=\"page.set(page() + 1)\"\n >\n Next\n </button>\n </div>\n </div>\n `,\n})\nexport class BuiDataTable {\n readonly columns = input<readonly DataTableColumn[]>([]);\n readonly rows = input<readonly DataRow[]>([]);\n readonly searchable = input(true);\n readonly searchPlaceholder = input('Search...');\n readonly selectable = input(true);\n readonly pageSize = input(5);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly query = signal('');\n protected readonly sortKey = signal('');\n protected readonly sortDir = signal<'asc' | 'desc'>('asc');\n protected readonly page = signal(0);\n private readonly selectedRows = signal<ReadonlySet<DataRow>>(new Set());\n\n protected readonly filtered = computed(() => {\n const query = this.query().trim().toLowerCase();\n const keys = this.columns().map((column) => column.key);\n let result = this.rows().filter(\n (row) => query === '' || keys.some((key) => cellText(row[key]).toLowerCase().includes(query)),\n );\n const sortKey = this.sortKey();\n if (sortKey !== '') {\n const direction = this.sortDir() === 'asc' ? 1 : -1;\n // eslint-disable-next-line unicorn/no-array-sort -- toSorted is not in the lib target\n result = [...result].sort(\n (a, b) =>\n cellText(a[sortKey]).localeCompare(cellText(b[sortKey]), undefined, { numeric: true }) *\n direction,\n );\n }\n return result;\n });\n protected readonly pageCount = computed(() =>\n Math.max(1, Math.ceil(this.filtered().length / this.pageSize())),\n );\n protected readonly pageRows = computed(() => {\n const start = Math.min(this.page(), this.pageCount() - 1) * this.pageSize();\n return this.filtered().slice(start, start + this.pageSize());\n });\n protected readonly selectedCount = computed(() => this.selectedRows().size);\n protected readonly allSelected = computed(\n () =>\n this.filtered().length > 0 && this.filtered().every((row) => this.selectedRows().has(row)),\n );\n protected readonly someSelected = computed(() => this.selectedCount() > 0 && !this.allSelected());\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected colspan(): number {\n return this.columns().length + (this.selectable() ? 1 : 0);\n }\n\n protected alignClass(align: string | undefined): string {\n return ALIGN[align ?? 'left'];\n }\n\n protected cell(row: DataRow, key: string): string {\n return cellText(row[key]);\n }\n\n protected sortIndicator(key: string): string {\n if (this.sortKey() !== key) {\n return '↕';\n }\n return this.sortDir() === 'asc' ? '↑' : '↓';\n }\n\n protected sortBy(key: string): void {\n if (this.sortKey() === key) {\n this.sortDir.set(this.sortDir() === 'asc' ? 'desc' : 'asc');\n } else {\n this.sortKey.set(key);\n this.sortDir.set('asc');\n }\n }\n\n protected onSearch(event: Event): void {\n this.query.set((event.target as HTMLInputElement).value);\n this.page.set(0);\n }\n\n protected isSelected(row: DataRow): boolean {\n return this.selectedRows().has(row);\n }\n\n protected toggleRow(row: DataRow): void {\n const next = new Set(this.selectedRows());\n if (next.has(row)) {\n next.delete(row);\n } else {\n next.add(row);\n }\n this.selectedRows.set(next);\n }\n\n protected toggleAll(event: Event): void {\n const isChecked = (event.target as HTMLInputElement).checked;\n this.selectedRows.set(isChecked ? new Set(this.filtered()) : new Set());\n }\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface ChartSeries {\n name?: string;\n data: number[];\n color?: string;\n}\n\nconst PALETTE = ['#6366f1', '#22c55e', '#f59e0b', '#ec4899', '#06b6d4'];\nconst WIDTH = 600;\nconst PAD = 8;\n\n/** A lightweight SVG chart (line / area / bar). Pure + SSR-safe. */\n@Component({\n selector: 'bui-chart',\n host: { 'data-slot': 'chart', '[class]': 'computedClass()' },\n template: `\n <svg\n [attr.viewBox]=\"'0 0 ' + width + ' ' + height()\"\n [attr.height]=\"height()\"\n class=\"w-full\"\n role=\"img\"\n [attr.aria-label]=\"label()\"\n preserveAspectRatio=\"none\"\n >\n @if (type() === 'bar') {\n @for (bar of bars(); track bar.id) {\n <rect\n [attr.x]=\"bar.x\"\n [attr.y]=\"bar.y\"\n [attr.width]=\"bar.w\"\n [attr.height]=\"bar.h\"\n [attr.fill]=\"bar.color\"\n rx=\"3\"\n />\n }\n } @else {\n @for (path of paths(); track path.id) {\n @if (type() === 'area') {\n <path [attr.d]=\"path.area\" [attr.fill]=\"path.color\" fill-opacity=\"0.12\" />\n }\n <path\n [attr.d]=\"path.line\"\n fill=\"none\"\n [attr.stroke]=\"path.color\"\n stroke-width=\"2\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n />\n }\n }\n </svg>\n @if (labels().length > 0) {\n <div class=\"mt-1 flex justify-between text-xs text-muted-foreground\">\n @for (tick of labels(); track $index) {\n <span>{{ tick }}</span>\n }\n </div>\n }\n `,\n})\nexport class BuiChart {\n readonly type = input<'line' | 'bar' | 'area'>('line');\n readonly series = input<readonly ChartSeries[]>([]);\n readonly labels = input<readonly string[]>([]);\n readonly height = input(220);\n readonly label = input('Chart');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly width = WIDTH;\n private readonly max = computed(() => Math.max(1, ...this.series().flatMap((s) => s.data)));\n protected readonly bars = computed(() => {\n const series = this.series().at(0);\n if (!series) {\n return [];\n }\n const height = this.height();\n const count = series.data.length;\n const gap = 8;\n const barWidth = (WIDTH - gap * (count + 1)) / Math.max(1, count);\n return series.data.map((value, index) => {\n const barHeight = (value / this.max()) * (height - PAD * 2);\n return {\n id: index,\n x: gap + index * (barWidth + gap),\n y: height - PAD - barHeight,\n w: barWidth,\n h: barHeight,\n color: series.color ?? PALETTE[0],\n };\n });\n });\n protected readonly paths = computed(() =>\n this.series().map((series, seriesIndex) => {\n const data = series.data;\n const height = this.height();\n const step = data.length > 1 ? (WIDTH - PAD * 2) / (data.length - 1) : 0;\n const points = data.map((value, index) => ({\n x: PAD + index * step,\n y: height - PAD - (value / this.max()) * (height - PAD * 2),\n }));\n const coords = points\n .map((point) => `${point.x.toFixed(1)},${point.y.toFixed(1)}`)\n .join(' L');\n const first = points.at(0);\n const last = points.at(-1);\n const area =\n first && last\n ? `M${first.x.toFixed(1)},${height - PAD} L${coords} L${last.x.toFixed(1)},${height - PAD} Z`\n : '';\n return {\n id: seriesIndex,\n color: series.color ?? PALETTE[seriesIndex % PALETTE.length],\n line: coords === '' ? '' : `M${coords}`,\n area,\n };\n }),\n );\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n}\n","import { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { BuiCalendar } from '../calendar/calendar';\nimport { BuiTimeField } from '../time-field/time-field';\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A combined date + time picker in a popover. Value is `YYYY-MM-DDTHH:mm`. */\n@Component({\n selector: 'bui-datetime-picker',\n imports: [BuiCalendar, BuiTimeField],\n host: {\n 'data-slot': 'datetime-picker',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"open.set(!open())\"\n >\n <svg\n class=\"size-4 text-muted-foreground\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 2v4M16 2v4M3 10h18\" />\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" />\n </svg>\n <span [class]=\"value() ? '' : 'text-muted-foreground'\">{{ display() }}</span>\n </button>\n @if (open()) {\n <div class=\"absolute z-50 mt-1 rounded-lg border bg-popover shadow-md\">\n <bui-calendar [value]=\"datePart()\" (valueChange)=\"onDate($event)\" />\n <div class=\"flex items-center gap-2 border-t p-2\">\n <span class=\"text-xs text-muted-foreground\">Time</span>\n <bui-time-field [value]=\"timePart()\" (valueChange)=\"onTime($event)\" />\n </div>\n </div>\n }\n `,\n})\nexport class BuiDatetimePicker {\n readonly value = model('');\n readonly placeholder = input('Pick date & time');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly open = signal(false);\n protected readonly datePart = computed(() => this.value().split('T', 1).at(0) ?? '');\n protected readonly timePart = computed(() => this.value().split('T', 2).at(1) ?? '12:00');\n protected readonly display = computed(() => {\n const value = this.value();\n if (value === '') {\n return this.placeholder();\n }\n return new Date(value).toLocaleString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n });\n });\n protected readonly computedClass = computed(() => cn('relative inline-block', this.userClass()));\n\n protected onDate(iso: string): void {\n this.value.set(`${iso}T${this.timePart()}`);\n }\n\n protected onTime(time: string): void {\n const date = this.datePart();\n this.value.set(`${date === '' ? this.todayIso() : date}T${time}`);\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.open.set(false);\n }\n }\n\n private todayIso(): string {\n const now = new Date();\n return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`;\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Component, computed, ElementRef, inject, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A free-text input with a filtered suggestion list. */\n@Component({\n selector: 'bui-autocomplete',\n host: {\n 'data-slot': 'autocomplete',\n '[class]': 'computedClass()',\n '(document:click)': 'onDocumentClick($event)',\n },\n template: `\n <input\n type=\"text\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listId\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.name]=\"name() || null\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onInput($event)\"\n (focus)=\"open.set(true)\"\n (keydown)=\"onKeydown($event)\"\n />\n @if (open() && filtered().length > 0) {\n <ul\n [id]=\"listId\"\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border bg-popover p-1 shadow-md\"\n >\n @for (option of filtered(); track option; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"i === active()\"\n class=\"cursor-default rounded-sm px-2 py-1.5 text-sm\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"choose(option)\"\n (mouseenter)=\"active.set(i)\"\n >\n {{ option }}\n </li>\n }\n </ul>\n } @else if (open() && value() !== '') {\n <div\n class=\"absolute z-50 mt-1 w-full rounded-md border bg-popover p-3 text-sm text-muted-foreground shadow-md\"\n >\n {{ empty() }}\n </div>\n }\n `,\n})\nexport class BuiAutocomplete {\n readonly value = model('');\n readonly options = input<readonly string[]>([]);\n readonly placeholder = input('Search...');\n readonly empty = input('No results found.');\n readonly disabled = input(false);\n readonly name = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly listId = inject(_IdGenerator).getId('bui-autocomplete-');\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly filtered = computed(() => {\n const query = this.value().trim().toLowerCase();\n if (query === '') {\n return this.options();\n }\n return this.options().filter((option) => option.toLowerCase().includes(query));\n });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n this.open.set(true);\n this.active.set(0);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const options = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open.set(true);\n this.active.set(Math.min(options.length - 1, this.active() + 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n } else if (event.key === 'Enter' && this.open() && options.length > 0) {\n event.preventDefault();\n this.choose(options[this.active()]);\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n\n protected choose(option: string): void {\n this.value.set(option);\n this.open.set(false);\n }\n\n protected onDocumentClick(event: MouseEvent): void {\n if (this.open() && !this.host.nativeElement.contains(event.target as Node)) {\n this.open.set(false);\n }\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A before/after image comparison with a draggable, keyboard-operable divider. */\n@Component({\n selector: 'bui-comparison-slider',\n host: { 'data-slot': 'comparison-slider', '[class]': 'computedClass()' },\n template: `\n <div class=\"relative overflow-hidden rounded-lg select-none\">\n <img [src]=\"after()\" [alt]=\"afterAlt()\" class=\"block w-full\" draggable=\"false\" />\n <div class=\"absolute inset-0 overflow-hidden\" [style.clip-path]=\"clip()\">\n <img [src]=\"before()\" [alt]=\"beforeAlt()\" class=\"block w-full\" draggable=\"false\" />\n </div>\n @if (afterLabel()) {\n <span class=\"absolute end-2 top-2 rounded bg-black/60 px-2 py-0.5 text-xs text-white\">{{\n afterLabel()\n }}</span>\n }\n @if (beforeLabel()) {\n <span class=\"absolute start-2 top-2 rounded bg-black/60 px-2 py-0.5 text-xs text-white\">{{\n beforeLabel()\n }}</span>\n }\n <div\n class=\"pointer-events-none absolute inset-y-0 w-0.5 bg-white shadow\"\n [style.left.%]=\"value()\"\n aria-hidden=\"true\"\n >\n <div\n class=\"absolute top-1/2 left-1/2 size-7 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-white/20 backdrop-blur\"\n ></div>\n </div>\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n [value]=\"value()\"\n aria-label=\"Comparison position\"\n class=\"absolute inset-0 size-full cursor-ew-resize opacity-0\"\n (input)=\"onInput($event)\"\n />\n </div>\n `,\n})\nexport class BuiComparisonSlider {\n readonly before = input('');\n readonly after = input('');\n readonly beforeLabel = input('');\n readonly afterLabel = input('');\n readonly beforeAlt = input('Before');\n readonly afterAlt = input('After');\n readonly value = model(50);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly clip = computed(() => `inset(0 ${100 - this.value()}% 0 0)`);\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected onInput(event: Event): void {\n this.value.set(Number((event.target as HTMLInputElement).value));\n }\n}\n","import { Component, computed, input, output, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nfunction formatSize(bytes: number): string {\n if (bytes < 1024) {\n return `${bytes} B`;\n }\n if (bytes < 1024 * 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n }\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\n/** A drag-and-drop file upload zone with a selected-files list. */\n@Component({\n selector: 'bui-file-upload',\n host: { 'data-slot': 'file-upload', '[class]': 'computedClass()' },\n template: `\n <label [class]=\"zoneClass()\">\n <input\n type=\"file\"\n class=\"sr-only\"\n [multiple]=\"multiple()\"\n [attr.accept]=\"accept() || null\"\n [attr.name]=\"name() || null\"\n [disabled]=\"disabled()\"\n (change)=\"onChange($event)\"\n />\n <svg\n class=\"size-7 text-muted-foreground\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12\" />\n </svg>\n <span class=\"text-sm font-medium\">Click to upload or drag &amp; drop</span>\n @if (hint()) {\n <span class=\"text-xs text-muted-foreground\">{{ hint() }}</span>\n }\n </label>\n @if (files().length > 0) {\n <ul class=\"mt-3 space-y-2\">\n @for (file of files(); track file.name) {\n <li class=\"flex items-center gap-2 rounded-md border p-2 text-sm\">\n <svg\n class=\"size-4 shrink-0 text-muted-foreground\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <path d=\"M14 2v6h6\" />\n </svg>\n <span class=\"truncate\">{{ file.name }}</span>\n <span class=\"ms-auto shrink-0 text-xs text-muted-foreground\">{{\n size(file.size)\n }}</span>\n <button\n type=\"button\"\n class=\"rounded-sm p-1 hover:bg-accent\"\n aria-label=\"Remove file\"\n (click)=\"remove(file)\"\n >\n <svg\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiFileUpload {\n readonly multiple = input(false);\n readonly accept = input('');\n readonly name = input('');\n readonly hint = input('');\n readonly disabled = input(false);\n readonly filesChange = output<readonly File[]>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly dragging = signal(false);\n protected readonly files = signal<readonly File[]>([]);\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n protected readonly zoneClass = computed(() =>\n cn(\n 'flex cursor-pointer flex-col items-center justify-center gap-2 rounded-lg border border-dashed p-8 text-center transition-colors',\n this.dragging() ? 'border-ring bg-accent/40' : 'border-input hover:bg-accent/40',\n ),\n );\n\n protected size(bytes: number): string {\n return formatSize(bytes);\n }\n\n protected onChange(event: Event): void {\n const list = (event.target as HTMLInputElement).files;\n if (list) {\n this.add([...list]);\n }\n }\n\n protected remove(file: File): void {\n this.files.set(this.files().filter((existing) => existing !== file));\n this.filesChange.emit(this.files());\n }\n\n private add(incoming: File[]): void {\n const next = this.multiple() ? [...this.files(), ...incoming] : incoming;\n this.files.set(next);\n this.filesChange.emit(next);\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/**\n * An NProgress-style top loading bar. Drive it with `start()` / `set(0..1)` / `done()`,\n * or with `top-progress:start` / `top-progress:set` / `top-progress:done` window events.\n */\n@Component({\n selector: 'bui-top-progress',\n host: {\n 'data-slot': 'top-progress',\n '[class]': 'computedClass()',\n '[style.height.px]': 'height()',\n role: 'progressbar',\n 'aria-label': 'Page loading',\n '[attr.aria-valuenow]': 'visible() ? round(progress() * 100) : null',\n },\n template: `\n <div\n class=\"h-full transition-all duration-200 ease-out\"\n [style.width.%]=\"visible() ? progress() * 100 : 0\"\n [style.opacity]=\"visible() ? 1 : 0\"\n [style.background]=\"color()\"\n ></div>\n `,\n})\nexport class BuiTopProgress {\n readonly color = input('var(--color-primary, #6366f1)');\n readonly height = input(2);\n readonly demo = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly progress = signal(0);\n protected readonly visible = signal(false);\n private timer: ReturnType<typeof setInterval> | undefined;\n protected readonly computedClass = computed(() =>\n cn(\n this.demo()\n ? 'relative block w-full overflow-hidden'\n : 'fixed inset-x-0 top-0 z-[100] block overflow-hidden',\n this.userClass(),\n ),\n );\n\n constructor() {\n const lifecycleReference = inject(DestroyRef);\n afterNextRender(() => {\n const onStart = (): void => {\n this.start();\n };\n const onDone = (): void => {\n this.done();\n };\n const onSet = (event: Event): void => {\n const detail = (event as CustomEvent<{ value?: number }>).detail;\n this.set(detail.value ?? 0);\n };\n globalThis.addEventListener('top-progress:start', onStart);\n globalThis.addEventListener('top-progress:done', onDone);\n globalThis.addEventListener('top-progress:set', onSet);\n lifecycleReference.onDestroy(() => {\n globalThis.removeEventListener('top-progress:start', onStart);\n globalThis.removeEventListener('top-progress:done', onDone);\n globalThis.removeEventListener('top-progress:set', onSet);\n this.stop();\n });\n });\n }\n\n start(): void {\n this.visible.set(true);\n this.progress.set(0.08);\n this.stop();\n this.timer = setInterval(() => {\n const current = this.progress();\n if (current < 0.9) {\n this.progress.set(current + (0.9 - current) * 0.1);\n }\n }, 400);\n }\n\n set(value: number): void {\n this.visible.set(true);\n this.progress.set(Math.max(0, Math.min(1, value)));\n }\n\n done(): void {\n this.stop();\n this.progress.set(1);\n setTimeout(() => {\n this.visible.set(false);\n this.progress.set(0);\n }, 300);\n }\n\n protected round(value: number): number {\n return Math.round(value);\n }\n\n private stop(): void {\n if (this.timer === undefined) {\n return;\n }\n\n clearInterval(this.timer);\n this.timer = undefined;\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst POSITION: Record<string, string> = {\n bottom: 'inset-x-0 bottom-0 max-h-[85vh] rounded-t-xl border-t',\n top: 'inset-x-0 top-0 max-h-[85vh] rounded-b-xl border-b',\n left: 'inset-y-0 left-0 h-full w-80 max-w-[85vw] border-r',\n right: 'inset-y-0 right-0 h-full w-80 max-w-[85vw] border-l',\n};\n\n/** A slide-in panel anchored to a screen edge. Toggle with the `open` model. */\n@Component({\n selector: 'bui-drawer',\n host: { 'data-slot': 'drawer', '(document:keydown.escape)': 'open.set(false)' },\n template: `\n @if (open()) {\n <div\n class=\"fixed inset-0 z-50 bg-black/50\"\n (click)=\"open.set(false)\"\n aria-hidden=\"true\"\n ></div>\n <div role=\"dialog\" aria-modal=\"true\" [class]=\"panelClass()\">\n <ng-content />\n </div>\n }\n `,\n})\nexport class BuiDrawer {\n readonly open = model(false);\n readonly direction = input<'top' | 'bottom' | 'left' | 'right'>('bottom');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly panelClass = computed(() =>\n cn(\n 'fixed z-50 flex flex-col gap-3 border bg-background p-4 shadow-lg',\n POSITION[this.direction()],\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst PLACEHOLDERS = new Set(['9', 'a', '*']);\n\nfunction isTokenChar(char: string, token: string): boolean {\n if (token === '9') {\n return char >= '0' && char <= '9';\n }\n if (token === 'a') {\n return /[a-z]/i.test(char);\n }\n return /[a-z0-9]/i.test(char);\n}\n\nfunction applyMask(value: string, mask: string): string {\n let out = '';\n let valueIndex = 0;\n const nextDataChar = (token: string): string => {\n while (valueIndex < value.length) {\n const char = value[valueIndex];\n valueIndex += 1;\n if (isTokenChar(char, token)) {\n return char;\n }\n }\n return '';\n };\n for (let maskIndex = 0; maskIndex < mask.length && valueIndex < value.length; maskIndex += 1) {\n const token = mask[maskIndex];\n if (PLACEHOLDERS.has(token)) {\n const char = nextDataChar(token);\n if (char === '') {\n break;\n }\n out += char;\n } else {\n out += token;\n if (value[valueIndex] === token) {\n valueIndex += 1;\n }\n }\n }\n return out;\n}\n\n/** A text input that formats its value against a mask (9 = digit, a = letter, * = alnum). */\n@Component({\n selector: 'bui-input-mask',\n host: { 'data-slot': 'input-mask', '[class]': 'computedClass()' },\n template: `\n <input\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [attr.inputmode]=\"inputmode() || null\"\n [attr.name]=\"name() || null\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onInput($event)\"\n />\n `,\n})\nexport class BuiInputMask {\n readonly mask = input('');\n readonly value = model('');\n readonly placeholder = input('');\n readonly inputmode = input('');\n readonly name = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected onInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const masked = this.mask() === '' ? target.value : applyMask(target.value, this.mask());\n target.value = masked;\n this.value.set(masked);\n }\n}\n","import { Component, computed, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nconst SIDE: Record<string, string> = {\n right: 'inset-y-0 right-0 h-full w-80 max-w-[85vw] border-l',\n left: 'inset-y-0 left-0 h-full w-80 max-w-[85vw] border-r',\n top: 'inset-x-0 top-0 max-h-[85vh] border-b',\n bottom: 'inset-x-0 bottom-0 max-h-[85vh] border-t',\n};\n\n/** A sheet overlay sliding in from a screen edge. Toggle with the `open` model. */\n@Component({\n selector: 'bui-sheet',\n host: { 'data-slot': 'sheet', '(document:keydown.escape)': 'open.set(false)' },\n template: `\n @if (open()) {\n <div\n class=\"fixed inset-0 z-50 bg-black/50\"\n (click)=\"open.set(false)\"\n aria-hidden=\"true\"\n ></div>\n <div role=\"dialog\" aria-modal=\"true\" [class]=\"panelClass()\">\n <ng-content />\n </div>\n }\n `,\n})\nexport class BuiSheet {\n readonly open = model(false);\n readonly side = input<'left' | 'right' | 'top' | 'bottom'>('right');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly panelClass = computed(() =>\n cn(\n 'fixed z-50 flex flex-col gap-4 border bg-background p-6 shadow-lg',\n SIDE[this.side()],\n this.userClass(),\n ),\n );\n}\n","import { Component, computed, inject, Injectable, input, signal } from '@angular/core';\n\nimport { cn } from '../utils/cn';\n\nexport type ToastTone = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport interface ToastOptions {\n title: string;\n description?: string;\n tone?: ToastTone;\n duration?: number;\n}\ninterface Toast extends ToastOptions {\n id: number;\n}\n\n/** Imperative toast store. Inject it and call `show(...)`; render a `<bui-sonner />` once. */\n@Injectable({ providedIn: 'root' })\nexport class BuiToaster {\n readonly toasts = signal<readonly Toast[]>([]);\n private sequence = 0;\n\n show(options: ToastOptions): number {\n this.sequence += 1;\n const id = this.sequence;\n this.toasts.set([...this.toasts(), { ...options, id }]);\n const duration = options.duration ?? 4000;\n if (duration > 0) {\n setTimeout(() => {\n this.dismiss(id);\n }, duration);\n }\n return id;\n }\n\n dismiss(id: number): void {\n this.toasts.set(this.toasts().filter((toast) => toast.id !== id));\n }\n\n clear(): void {\n this.toasts.set([]);\n }\n}\n\nconst POSITION: Record<string, string> = {\n 'top-left': 'top-4 left-4 items-start',\n 'top-center': 'top-4 left-1/2 -translate-x-1/2 items-center',\n 'top-right': 'top-4 right-4 items-end',\n 'bottom-left': 'bottom-4 left-4 items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 items-center',\n 'bottom-right': 'bottom-4 right-4 items-end',\n};\nconst TONE: Record<ToastTone, string> = {\n default: 'bg-popover text-popover-foreground',\n success: 'border-transparent bg-emerald-600 text-white',\n error: 'bg-destructive border-transparent text-white',\n warning: 'border-transparent bg-amber-500 text-white',\n info: 'border-transparent bg-sky-600 text-white',\n};\n\n/** The toast viewport. Drives off the {@link BuiToaster} store. */\n@Component({\n selector: 'bui-sonner',\n host: { 'data-slot': 'sonner' },\n template: `\n <div role=\"region\" aria-label=\"Notifications\" [class]=\"regionClass()\">\n @for (toast of toaster.toasts(); track toast.id) {\n <div\n role=\"status\"\n aria-live=\"polite\"\n class=\"pointer-events-auto flex w-80 max-w-[90vw] items-start gap-2 rounded-lg border p-4 shadow-lg\"\n [class]=\"toneClass(toast.tone)\"\n >\n <div class=\"min-w-0 flex-1\">\n <p class=\"text-sm font-medium\">{{ toast.title }}</p>\n @if (toast.description) {\n <p class=\"text-sm opacity-90\">{{ toast.description }}</p>\n }\n </div>\n <button\n type=\"button\"\n class=\"shrink-0 opacity-70 hover:opacity-100\"\n aria-label=\"Dismiss notification\"\n (click)=\"toaster.dismiss(toast.id)\"\n >\n <svg\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n }\n </div>\n `,\n})\nexport class BuiSonner {\n readonly position = input('bottom-right');\n protected readonly toaster = inject(BuiToaster);\n protected readonly regionClass = computed(() =>\n cn('pointer-events-none fixed z-[100] flex flex-col gap-2', POSITION[this.position()]),\n );\n\n protected toneClass(tone: ToastTone | undefined): string {\n return TONE[tone ?? 'default'];\n }\n}\n","import { Component, computed, input, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface NavMenuLink {\n label: string;\n href?: string;\n description?: string;\n}\nexport interface NavMenuItem {\n label: string;\n href?: string;\n links?: NavMenuLink[];\n}\n\n/** A horizontal navigation menu with hover/click dropdown panels. */\n@Component({\n selector: 'bui-navigation-menu',\n host: {\n 'data-slot': 'navigation-menu',\n '[class]': 'computedClass()',\n '(mouseleave)': 'active.set(-1)',\n },\n template: `\n <ul class=\"flex items-center gap-1\">\n @for (item of items(); track item.label; let i = $index) {\n <li class=\"relative\" (mouseenter)=\"onEnter(i, item)\">\n @if (item.links && item.links.length > 0) {\n <button\n type=\"button\"\n class=\"inline-flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium hover:bg-accent\"\n [attr.aria-expanded]=\"active() === i\"\n (click)=\"toggle(i)\"\n >\n {{ item.label }}\n <svg\n class=\"size-3.5 transition-transform\"\n [class.rotate-180]=\"active() === i\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n @if (active() === i) {\n <div\n class=\"absolute start-0 top-full z-50 mt-1.5 w-64 rounded-lg border bg-popover p-2 shadow-md\"\n >\n <ul class=\"space-y-1\">\n @for (link of item.links; track link.label) {\n <li>\n <a [href]=\"href(link.href)\" class=\"block rounded-md p-2 hover:bg-accent\">\n <span class=\"text-sm font-medium\">{{ link.label }}</span>\n @if (link.description) {\n <span class=\"block text-xs text-muted-foreground\">{{\n link.description\n }}</span>\n }\n </a>\n </li>\n }\n </ul>\n </div>\n }\n } @else {\n <a\n [href]=\"href(item.href)\"\n class=\"inline-flex rounded-md px-3 py-2 text-sm font-medium hover:bg-accent\"\n >{{ item.label }}</a\n >\n }\n </li>\n }\n </ul>\n `,\n})\nexport class BuiNavigationMenu {\n readonly items = input<readonly NavMenuItem[]>([]);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly active = signal(-1);\n protected readonly computedClass = computed(() =>\n cn('relative block max-w-max', this.userClass()),\n );\n\n protected href(value: string | undefined): string {\n return value && value !== '' ? value : '#';\n }\n\n protected onEnter(index: number, item: NavMenuItem): void {\n if (item.links && item.links.length > 0) {\n this.active.set(index);\n }\n }\n\n protected toggle(index: number): void {\n this.active.set(this.active() === index ? -1 : index);\n }\n}\n","import { Component, computed, input, model, signal } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface Mention {\n value: string;\n label: string;\n}\n\n/** A textarea that suggests mentions when you type the trigger character. */\n@Component({\n selector: 'bui-mention-input',\n host: { 'data-slot': 'mention-input', '[class]': 'computedClass()' },\n template: `\n <textarea\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [rows]=\"rows()\"\n [attr.name]=\"name() || null\"\n class=\"w-full resize-y rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n ></textarea>\n @if (open() && filtered().length > 0) {\n <ul\n role=\"listbox\"\n class=\"absolute z-50 mt-1 max-h-48 w-56 overflow-auto rounded-md border bg-popover p-1 shadow-md\"\n >\n @for (mention of filtered(); track mention.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"i === active()\"\n class=\"cursor-default rounded-sm px-2 py-1.5 text-sm\"\n [class]=\"i === active() ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"insert(mention)\"\n (mouseenter)=\"active.set(i)\"\n >\n {{ mention.label }}\n </li>\n }\n </ul>\n }\n `,\n})\nexport class BuiMentionInput {\n readonly value = model('');\n readonly mentions = input<readonly Mention[]>([]);\n readonly trigger = input('@');\n readonly placeholder = input('Type @ to mention…');\n readonly rows = input(3);\n readonly name = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly open = signal(false);\n protected readonly active = signal(0);\n protected readonly query = signal('');\n protected readonly filtered = computed(() => {\n const query = this.query().toLowerCase();\n return this.mentions().filter((mention) => mention.label.toLowerCase().includes(query));\n });\n protected readonly computedClass = computed(() => cn('relative block', this.userClass()));\n\n protected onInput(event: Event): void {\n const value = (event.target as HTMLTextAreaElement).value;\n this.value.set(value);\n this.detect(value);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (!this.open()) {\n return;\n }\n const options = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.active.set(Math.min(options.length - 1, this.active() + 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.active.set(Math.max(0, this.active() - 1));\n } else if (event.key === 'Enter' && options.length > 0) {\n event.preventDefault();\n this.insert(options[this.active()]);\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n\n protected insert(mention: Mention): void {\n const value = this.value();\n const index = value.lastIndexOf(this.trigger());\n const head = index === -1 ? value : value.slice(0, index);\n this.value.set(`${head}${this.trigger()}${mention.label} `);\n this.open.set(false);\n }\n\n private detect(value: string): void {\n const index = value.lastIndexOf(this.trigger());\n if (index === -1) {\n this.open.set(false);\n return;\n }\n const after = value.slice(index + this.trigger().length);\n if (/\\s/.test(after)) {\n this.open.set(false);\n return;\n }\n this.query.set(after);\n this.active.set(0);\n this.open.set(true);\n }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { DomSanitizer, type SafeResourceUrl } from '@angular/platform-browser';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A keyless OpenStreetMap embed centred on a coordinate. SSR-safe. */\n@Component({\n selector: 'bui-map',\n host: { 'data-slot': 'map', '[class]': 'computedClass()' },\n template: `\n <div\n class=\"relative overflow-hidden rounded-lg border\"\n [style.aspect-ratio]=\"ratio() || null\"\n [style.height.px]=\"ratio() ? null : height()\"\n >\n <iframe\n [src]=\"embedUrl()\"\n [title]=\"label()\"\n class=\"size-full border-0\"\n loading=\"lazy\"\n referrerpolicy=\"no-referrer-when-downgrade\"\n ></iframe>\n </div>\n <a\n [href]=\"largeUrl()\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"mt-1 inline-flex items-center gap-1 text-xs text-muted-foreground hover:underline\"\n >\n <svg\n class=\"size-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n </svg>\n View larger map\n </a>\n `,\n})\nexport class BuiMap {\n readonly lat = input(50.8503);\n readonly lon = input(4.3517);\n readonly zoom = input(14);\n readonly label = input('Location');\n readonly marker = input(true);\n readonly height = input(320);\n readonly ratio = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly sanitizer = inject(DomSanitizer);\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n protected readonly embedUrl = computed<SafeResourceUrl>(() => {\n const delta = 0.01 * 2 ** (14 - this.zoom());\n const lat = this.lat();\n const lon = this.lon();\n const bbox = `${lon - delta},${lat - delta},${lon + delta},${lat + delta}`;\n const pin = this.marker() ? `&marker=${lat},${lon}` : '';\n // eslint-disable-next-line sonarjs/no-angular-bypass-sanitization -- fixed OSM origin; only numeric coords are interpolated\n return this.sanitizer.bypassSecurityTrustResourceUrl(\n `https://www.openstreetmap.org/export/embed.html?bbox=${bbox}&layer=mapnik${pin}`,\n );\n });\n protected readonly largeUrl = computed(\n () =>\n `https://www.openstreetmap.org/?mlat=${this.lat()}&mlon=${this.lon()}#map=${this.zoom()}/${this.lat()}/${this.lon()}`,\n );\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface GanttTask {\n name: string;\n start: string;\n end: string;\n progress?: number;\n color?: string;\n}\ninterface GanttRow {\n name: string;\n left: number;\n width: number;\n progress: number;\n color: string;\n}\n\nfunction toDay(iso: string): number {\n return Math.floor(new Date(`${iso}T00:00:00`).getTime() / 86_400_000);\n}\nfunction label(iso: string): string {\n return new Date(`${iso}T00:00:00`).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n });\n}\n\n/** A horizontal Gantt chart positioning task bars over a date range. SSR-safe. */\n@Component({\n selector: 'bui-gantt',\n host: { 'data-slot': 'gantt', '[class]': 'computedClass()' },\n template: `\n <div class=\"space-y-2\">\n @for (row of rows(); track row.name) {\n <div class=\"grid grid-cols-[8rem_1fr] items-center gap-3\">\n <span class=\"truncate text-sm text-muted-foreground\">{{ row.name }}</span>\n <div class=\"relative h-6 rounded bg-muted\">\n <div\n class=\"absolute inset-y-0 overflow-hidden rounded\"\n [class]=\"row.color\"\n [style.left.%]=\"row.left\"\n [style.width.%]=\"row.width\"\n >\n @if (row.progress > 0) {\n <div class=\"h-full bg-black/25\" [style.width.%]=\"row.progress\"></div>\n }\n </div>\n </div>\n </div>\n } @empty {\n <p class=\"text-sm text-muted-foreground\">No tasks.</p>\n }\n </div>\n @if (rows().length > 0) {\n <div class=\"mt-2 grid grid-cols-[8rem_1fr] gap-3 text-xs text-muted-foreground\">\n <span></span>\n <div class=\"flex justify-between\">\n <span>{{ rangeStart() }}</span\n ><span>{{ rangeEnd() }}</span>\n </div>\n </div>\n }\n `,\n})\nexport class BuiGantt {\n readonly tasks = input<readonly GanttTask[]>([]);\n readonly start = input('');\n readonly end = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly bounds = computed(() => {\n const tasks = this.tasks().filter((task) => task.start !== '' && task.end !== '');\n const starts = tasks.map((task) => toDay(task.start));\n const ends = tasks.map((task) => toDay(task.end));\n const min = this.start() === '' ? Math.min(...starts) : toDay(this.start());\n const max = this.end() === '' ? Math.max(...ends) : toDay(this.end());\n return { tasks, min, max, span: Math.max(1, max - min) };\n });\n protected readonly rows = computed<GanttRow[]>(() => {\n const { tasks, min, span } = this.bounds();\n return tasks.map((task) => {\n const startDay = toDay(task.start);\n const endDay = toDay(task.end);\n return {\n name: task.name,\n left: ((startDay - min) / span) * 100,\n width: Math.max(2, ((endDay - startDay) / span) * 100),\n progress: task.progress ?? 0,\n color: task.color ?? 'bg-primary',\n };\n });\n });\n protected readonly rangeStart = computed(() => {\n const start = this.start();\n return label(start === '' ? (this.tasks().at(0)?.start ?? '') : start);\n });\n protected readonly rangeEnd = computed(() => {\n const { tasks, max } = this.bounds();\n const end = this.end();\n if (end !== '') {\n return label(end);\n }\n return tasks.length > 0\n ? new Date(max * 86_400_000).toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n : '';\n });\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface SchedulerEvent {\n title: string;\n day: number;\n start: string;\n end: string;\n color?: string;\n}\ninterface PlacedEvent {\n title: string;\n dayIndex: number;\n top: number;\n height: number;\n color: string;\n}\n\nconst WEEK = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n\nfunction toMinutes(value: string): number {\n const parts = value.split(':');\n return Number(parts.at(0) ?? '0') * 60 + Number(parts.at(1) ?? '0');\n}\n\n/** A week/day calendar grid with positioned events. SSR-safe. */\n@Component({\n selector: 'bui-scheduler',\n host: { 'data-slot': 'scheduler', '[class]': 'computedClass()' },\n template: `\n <div role=\"grid\" [attr.aria-label]=\"label()\" class=\"overflow-hidden rounded-lg border text-sm\">\n <div class=\"flex border-b\">\n <div class=\"w-12 shrink-0\"></div>\n @for (day of dayLabels(); track $index) {\n <div class=\"flex-1 border-l p-2 text-center text-xs font-medium\">{{ day }}</div>\n }\n </div>\n <div class=\"flex\">\n <div class=\"w-12 shrink-0\">\n @for (hour of hours(); track hour) {\n <div class=\"h-14 pt-0.5 pr-1 text-right text-[10px] text-muted-foreground\">\n {{ formatHour(hour) }}\n </div>\n }\n </div>\n @for (day of dayLabels(); track $index; let di = $index) {\n <div class=\"relative flex-1 border-l\">\n @for (hour of hours(); track hour) {\n <div class=\"h-14 border-b border-dashed last:border-b-0\"></div>\n }\n @for (event of eventsFor(di); track $index) {\n <div\n class=\"absolute inset-x-0.5 overflow-hidden rounded px-1.5 py-0.5 text-[11px] leading-tight text-white\"\n [class]=\"event.color\"\n [style.top.%]=\"event.top\"\n [style.height.%]=\"event.height\"\n >\n {{ event.title }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n})\nexport class BuiScheduler {\n readonly events = input<readonly SchedulerEvent[]>([]);\n readonly days = input<readonly string[]>([]);\n readonly startHour = input(8);\n readonly endHour = input(18);\n readonly view = input<'week' | 'day'>('week');\n readonly label = input('Schedule');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly span = computed(() => Math.max(1, this.endHour() - this.startHour()));\n protected readonly hours = computed(() =>\n Array.from({ length: this.span() }, (_, index) => this.startHour() + index),\n );\n protected readonly dayLabels = computed<readonly string[]>(() => {\n if (this.days().length > 0) {\n return this.days();\n }\n return this.view() === 'day' ? ['Today'] : WEEK;\n });\n private readonly placed = computed<PlacedEvent[]>(() => {\n const startMinutes = this.startHour() * 60;\n const total = this.span() * 60;\n return this.events().map((event) => ({\n title: event.title,\n dayIndex: event.day,\n top: ((toMinutes(event.start) - startMinutes) / total) * 100,\n height: ((toMinutes(event.end) - toMinutes(event.start)) / total) * 100,\n color: event.color ?? 'bg-primary',\n }));\n });\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected eventsFor(dayIndex: number): PlacedEvent[] {\n return this.placed().filter((event) => event.dayIndex === dayIndex);\n }\n\n protected formatHour(hour: number): string {\n if (hour === 0) {\n return '12 AM';\n }\n if (hour < 12) {\n return `${hour} AM`;\n }\n if (hour === 12) {\n return '12 PM';\n }\n return `${hour - 12} PM`;\n }\n}\n","import {\n CdkDrag,\n type CdkDragDrop,\n CdkDropList,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport { Component, computed, input, linkedSignal, output } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nexport interface KanbanCard {\n id: string;\n title: string;\n tags?: string[];\n meta?: string;\n}\nexport interface KanbanColumn {\n id: string;\n title: string;\n cards: KanbanCard[];\n}\n\n/** A drag-and-drop kanban board (Angular CDK drag-drop). */\n@Component({\n selector: 'bui-kanban',\n imports: [CdkDropList, CdkDrag],\n host: { 'data-slot': 'kanban', '[class]': 'computedClass()' },\n template: `\n <div class=\"flex gap-4 overflow-x-auto pb-2\">\n @for (column of board(); track column.id) {\n <div class=\"flex w-64 shrink-0 flex-col rounded-lg border bg-muted/50 p-2\">\n <div class=\"flex items-center justify-between px-1 pb-2\">\n <span class=\"text-sm font-medium\">{{ column.title }}</span>\n <span class=\"text-xs text-muted-foreground\">{{ column.cards.length }}</span>\n </div>\n <div\n cdkDropList\n [id]=\"column.id\"\n [cdkDropListData]=\"column.cards\"\n [cdkDropListConnectedTo]=\"columnIds()\"\n class=\"flex min-h-12 flex-col gap-2\"\n (cdkDropListDropped)=\"onDrop($event)\"\n >\n @for (card of column.cards; track card.id) {\n <div\n cdkDrag\n class=\"cursor-grab rounded-md border bg-card p-3 shadow-sm active:cursor-grabbing\"\n >\n <p class=\"text-sm font-medium\">{{ card.title }}</p>\n @if (card.tags && card.tags.length > 0) {\n <div class=\"mt-2 flex flex-wrap gap-1\">\n @for (tag of card.tags; track tag) {\n <span class=\"rounded bg-secondary px-1.5 py-0.5 text-[10px]\">{{ tag }}</span>\n }\n </div>\n }\n @if (card.meta) {\n <p class=\"mt-1 text-xs text-muted-foreground\">{{ card.meta }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n `,\n})\nexport class BuiKanban {\n readonly columns = input<readonly KanbanColumn[]>([]);\n readonly changed = output<KanbanColumn[]>();\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly board = linkedSignal(() =>\n this.columns().map((column) => ({ ...column, cards: [...column.cards] })),\n );\n protected readonly columnIds = computed(() => this.board().map((column) => column.id));\n protected readonly computedClass = computed(() => cn('block', this.userClass()));\n\n protected onDrop(event: CdkDragDrop<KanbanCard[]>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n );\n }\n this.board.set([...this.board()]);\n this.changed.emit(this.board());\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n type ElementRef,\n input,\n model,\n viewChild,\n} from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\ninterface Tool {\n cmd: string;\n label: string;\n text: string;\n cls: string;\n}\nconst TOOLS: Tool[] = [\n { cmd: 'bold', label: 'Bold', text: 'B', cls: 'font-bold' },\n { cmd: 'italic', label: 'Italic', text: 'I', cls: 'italic' },\n { cmd: 'underline', label: 'Underline', text: 'U', cls: 'underline' },\n { cmd: 'strikeThrough', label: 'Strikethrough', text: 'S', cls: 'line-through' },\n { cmd: 'insertUnorderedList', label: 'Bullet list', text: '•', cls: '' },\n { cmd: 'insertOrderedList', label: 'Numbered list', text: '1.', cls: '' },\n];\n\n/** A contenteditable rich-text editor with a basic formatting toolbar. */\n@Component({\n selector: 'bui-rich-text-editor',\n host: { 'data-slot': 'rich-text-editor', '[class]': 'computedClass()' },\n template: `\n <div\n role=\"toolbar\"\n aria-label=\"Formatting\"\n class=\"flex flex-wrap gap-0.5 border-b bg-muted/40 p-1\"\n >\n @for (tool of tools; track tool.cmd) {\n <button\n type=\"button\"\n class=\"size-8 rounded text-sm hover:bg-accent\"\n [class]=\"tool.cls\"\n [attr.aria-label]=\"tool.label\"\n [title]=\"tool.label\"\n (mousedown)=\"exec($event, tool.cmd)\"\n >\n {{ tool.text }}\n </button>\n }\n </div>\n <div\n #editor\n role=\"textbox\"\n aria-multiline=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-placeholder]=\"placeholder()\"\n contenteditable=\"true\"\n class=\"min-h-32 p-3 text-sm text-foreground text-muted-foreground/60 outline-none empty:before:content-[attr(data-placeholder)]\"\n (input)=\"sync()\"\n ></div>\n `,\n})\nexport class BuiRichTextEditor {\n readonly value = model('');\n readonly placeholder = input('Write something…');\n readonly ariaLabel = input('Rich text editor');\n readonly name = input('');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly tools = TOOLS;\n private readonly editor = viewChild<ElementRef<HTMLElement>>('editor');\n protected readonly computedClass = computed(() =>\n cn('block overflow-hidden rounded-lg border', this.userClass()),\n );\n\n constructor() {\n afterNextRender(() => {\n const element = this.editor()?.nativeElement;\n if (element && this.value() !== '') {\n element.innerHTML = this.value();\n }\n });\n }\n\n protected exec(event: Event, command: string): void {\n event.preventDefault();\n /* eslint-disable @typescript-eslint/no-deprecated, sonarjs/deprecation -- execCommand is the pragmatic contenteditable formatting API */\n if (typeof document.execCommand === 'function') {\n document.execCommand(command, false);\n this.sync();\n }\n /* eslint-enable @typescript-eslint/no-deprecated, sonarjs/deprecation */\n }\n\n protected sync(): void {\n const element = this.editor()?.nativeElement;\n if (element) {\n this.value.set(element.innerHTML);\n }\n }\n}\n","import { Component, computed, Directive, input, model } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\n/** A collapsible vertical navigation sidebar. Toggle width with the `open` model. */\n@Component({\n selector: 'bui-sidebar',\n host: {\n 'data-slot': 'sidebar',\n '[attr.data-state]': \"open() ? 'expanded' : 'collapsed'\",\n '[attr.data-side]': 'side()',\n '[class]': 'computedClass()',\n },\n template: `<ng-content />`,\n})\nexport class BuiSidebar {\n readonly open = model(true);\n readonly side = input<'left' | 'right'>('left');\n readonly collapsible = input<'offcanvas' | 'icon'>('offcanvas');\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly collapsedWidth = computed(() =>\n this.collapsible() === 'icon' ? 'w-14' : 'w-0 border-0 p-0',\n );\n protected readonly computedClass = computed(() =>\n cn(\n 'flex h-full flex-col gap-2 overflow-hidden bg-card p-2 text-card-foreground transition-[width] duration-200',\n this.side() === 'left' ? 'border-r' : 'border-l',\n this.open() ? 'w-64' : this.collapsedWidth(),\n this.userClass(),\n ),\n );\n}\n\n/** A styled, accessible item button for a {@link BuiSidebar} menu. */\n@Directive({\n selector: '[buiSidebarMenuButton]',\n host: {\n 'data-slot': 'sidebar-menu-button',\n '[class]': 'computedClass()',\n '[attr.aria-current]': \"isActive() ? 'page' : null\",\n },\n})\nexport class BuiSidebarMenuButton {\n readonly isActive = input(false);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly computedClass = computed(() =>\n cn(\n 'flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm hover:bg-accent',\n this.isActive() ? 'bg-accent font-medium' : '',\n this.userClass(),\n ),\n );\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n inject,\n input,\n model,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\n\nexport interface TourStep {\n target: string;\n title: string;\n body: string;\n}\n\n/** A guided product tour with a spotlight on each step's target element. SSR-safe. */\n@Component({\n selector: 'bui-onboarding-tour',\n host: { 'data-slot': 'onboarding-tour', '(document:keydown.escape)': 'finish()' },\n template: `\n @if (open() && current()) {\n <div\n class=\"pointer-events-none fixed z-[60] rounded-md ring-2 ring-primary transition-all\"\n style=\"box-shadow: 0 0 0 9999px rgba(0,0,0,0.6)\"\n [style.left.px]=\"rect().left - 4\"\n [style.top.px]=\"rect().top - 4\"\n [style.width.px]=\"rect().width + 8\"\n [style.height.px]=\"rect().height + 8\"\n aria-hidden=\"true\"\n ></div>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"current()!.title\"\n class=\"fixed z-[61] w-72 rounded-lg border bg-popover p-4 shadow-lg\"\n [style.left.px]=\"cardLeft()\"\n [style.top.px]=\"cardTop()\"\n >\n <h2 class=\"text-sm font-semibold\">{{ current()!.title }}</h2>\n <p class=\"mt-1 text-sm text-muted-foreground\">{{ current()!.body }}</p>\n <div class=\"mt-4 flex items-center justify-between\">\n <span class=\"text-xs text-muted-foreground\">{{ step() + 1 }} / {{ steps().length }}</span>\n <div class=\"flex gap-2\">\n <button\n type=\"button\"\n class=\"rounded px-2 py-1 text-xs text-muted-foreground hover:underline\"\n (click)=\"finish()\"\n >\n Skip\n </button>\n @if (step() > 0) {\n <button type=\"button\" class=\"rounded border px-2 py-1 text-xs\" (click)=\"prev()\">\n Back\n </button>\n }\n <button\n type=\"button\"\n class=\"rounded bg-primary px-2 py-1 text-xs text-primary-foreground\"\n (click)=\"next()\"\n >\n {{ isLast() ? 'Finish' : 'Next' }}\n </button>\n </div>\n </div>\n </div>\n }\n `,\n})\nexport class BuiOnboardingTour {\n readonly open = model(false);\n readonly steps = input<readonly TourStep[]>([]);\n\n protected readonly step = signal(0);\n protected readonly rect = signal({ top: 0, left: 0, width: 0, height: 0 });\n private readonly platformId = inject(PLATFORM_ID);\n protected readonly current = computed(() => this.steps().at(this.step()) ?? null);\n protected readonly isLast = computed(() => this.step() === this.steps().length - 1);\n protected readonly cardTop = computed(() => this.rect().top + this.rect().height + 12);\n protected readonly cardLeft = computed(() => this.rect().left);\n\n constructor() {\n effect(() => {\n if (!(this.open() && isPlatformBrowser(this.platformId))) {\n return;\n }\n\n this.step();\n this.measure();\n });\n }\n\n protected next(): void {\n if (this.isLast()) {\n this.finish();\n } else {\n this.step.set(this.step() + 1);\n }\n }\n\n protected prev(): void {\n this.step.set(Math.max(0, this.step() - 1));\n }\n\n protected finish(): void {\n this.open.set(false);\n this.step.set(0);\n }\n\n private measure(): void {\n const selector = this.current()?.target;\n if (!selector) {\n return;\n }\n const element = document.querySelector(selector);\n if (element) {\n const box = element.getBoundingClientRect();\n this.rect.set({ top: box.top, left: box.left, width: box.width, height: box.height });\n }\n }\n}\n","/*\n * A compact, self-contained QR encoder: byte mode, error-correction level M,\n * versions 1-10, GF(256) Reed-Solomon, all 8 data masks with penalty scoring.\n * Index/bit arithmetic over a 2D grid is intrinsic here, so a few low-level\n * lint rules are relaxed for this module only.\n */\n/* eslint-disable unicorn/no-for-loop, sonarjs/cognitive-complexity, unicorn/no-break-in-nested-loop, unicorn/no-computed-property-existence-check */\n\n// --- GF(256) tables (primitive polynomial 0x11d) ---\nfunction buildTables(): { exp: number[]; log: number[] } {\n const exp = Array.from({ length: 512 }, () => 0);\n const log = Array.from({ length: 256 }, () => 0);\n let x = 1;\n for (let index = 0; index < 255; index += 1) {\n exp[index] = x;\n log[x] = index;\n x <<= 1;\n if ((x & 0x1_00) !== 0) {\n x ^= 0x1_1d;\n }\n }\n for (let index = 255; index < 512; index += 1) {\n exp[index] = exp[index - 255];\n }\n return { exp, log };\n}\nconst { exp: EXP, log: LOG } = buildTables();\nfunction gfMul(a: number, b: number): number {\n return a === 0 || b === 0 ? 0 : EXP[LOG[a] + LOG[b]];\n}\n\nfunction rsGenerator(degree: number): number[] {\n let poly = [1];\n for (let d = 0; d < degree; d += 1) {\n const next = Array.from({ length: poly.length + 1 }, () => 0);\n for (let index = 0; index < poly.length; index += 1) {\n next[index] ^= gfMul(poly[index], EXP[d]);\n next[index + 1] ^= poly[index];\n }\n poly = next;\n }\n return poly;\n}\nfunction rsEncode(data: number[], ecLength: number): number[] {\n const gen = rsGenerator(ecLength);\n const remainder = Array.from({ length: ecLength }, () => 0);\n for (const byte of data) {\n const factor = byte ^ remainder[0];\n remainder.shift();\n remainder.push(0);\n for (let index = 0; index < ecLength; index += 1) {\n remainder[index] ^= gfMul(gen[index + 1], factor);\n }\n }\n return remainder;\n}\n\n// --- version tables (level M) ---\ninterface BlockGroup {\n count: number;\n dataLen: number;\n}\nconst VERSIONS: { ec: number; groups: BlockGroup[] }[] = [\n { ec: 10, groups: [{ count: 1, dataLen: 16 }] },\n { ec: 16, groups: [{ count: 1, dataLen: 28 }] },\n { ec: 26, groups: [{ count: 1, dataLen: 44 }] },\n { ec: 18, groups: [{ count: 2, dataLen: 32 }] },\n { ec: 24, groups: [{ count: 2, dataLen: 43 }] },\n { ec: 16, groups: [{ count: 4, dataLen: 27 }] },\n { ec: 18, groups: [{ count: 4, dataLen: 31 }] },\n {\n ec: 22,\n groups: [\n { count: 2, dataLen: 38 },\n { count: 2, dataLen: 39 },\n ],\n },\n {\n ec: 22,\n groups: [\n { count: 3, dataLen: 36 },\n { count: 2, dataLen: 37 },\n ],\n },\n {\n ec: 26,\n groups: [\n { count: 4, dataLen: 43 },\n { count: 1, dataLen: 44 },\n ],\n },\n];\nconst CAPACITY = [14, 26, 42, 62, 84, 106, 122, 152, 180, 213];\nconst ALIGN: number[][] = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n];\n\nfunction dataCodewords(version: number): number {\n return VERSIONS[version - 1].groups.reduce((sum, g) => sum + g.count * g.dataLen, 0);\n}\n\nfunction pickVersion(byteLength: number): number {\n for (let v = 1; v <= 10; v += 1) {\n if (byteLength <= CAPACITY[v - 1]) {\n return v;\n }\n }\n return 10;\n}\n\n// --- bit stream ---\nfunction buildCodewords(bytes: number[], version: number): number[] {\n const bits: number[] = [];\n const push = (value: number, length: number): void => {\n for (let index = length - 1; index >= 0; index -= 1) {\n bits.push((value >> index) & 1);\n }\n };\n const countBits = version >= 10 ? 16 : 8;\n push(0b0100, 4); // byte mode\n push(bytes.length, countBits);\n for (const byte of bytes) {\n push(byte, 8);\n }\n const total = dataCodewords(version);\n const capacityBits = total * 8;\n for (let index = 0; index < 4 && bits.length < capacityBits; index += 1) {\n bits.push(0); // terminator\n }\n while (bits.length % 8 !== 0) {\n bits.push(0);\n }\n const codewords: number[] = [];\n for (let index = 0; index < bits.length; index += 8) {\n let byte = 0;\n for (let index_ = 0; index_ < 8; index_ += 1) {\n byte = (byte << 1) | bits[index + index_];\n }\n codewords.push(byte);\n }\n const pad = [0xec, 0x11];\n let p = 0;\n while (codewords.length < total) {\n codewords.push(pad[p % 2]);\n p += 1;\n }\n return codewords;\n}\n\nfunction interleave(codewords: number[], version: number): number[] {\n const { ec, groups } = VERSIONS[version - 1];\n const dataBlocks: number[][] = [];\n const ecBlocks: number[][] = [];\n let offset = 0;\n for (const group of groups) {\n for (let b = 0; b < group.count; b += 1) {\n const block = codewords.slice(offset, offset + group.dataLen);\n offset += group.dataLen;\n dataBlocks.push(block);\n ecBlocks.push(rsEncode(block, ec));\n }\n }\n const result: number[] = [];\n const maxData = Math.max(...dataBlocks.map((b) => b.length));\n for (let index = 0; index < maxData; index += 1) {\n for (const block of dataBlocks) {\n if (index < block.length) {\n result.push(block[index]);\n }\n }\n }\n for (let index = 0; index < ec; index += 1) {\n for (const block of ecBlocks) {\n result.push(block[index]);\n }\n }\n return result;\n}\n\n// --- matrix ---\ntype Grid = (boolean | null)[][];\n\nfunction emptyGrid(size: number): Grid {\n return Array.from({ length: size }, () => Array.from({ length: size }, () => null));\n}\n\nfunction placeFinder(grid: Grid, reserved: boolean[][], row: number, col: number): void {\n for (let r = -1; r <= 7; r += 1) {\n for (let c = -1; c <= 7; c += 1) {\n const rr = row + r;\n const cc = col + c;\n if (rr < 0 || rr >= grid.length || cc < 0 || cc >= grid.length) {\n continue;\n }\n const isBorder = r === 0 || r === 6 || c === 0 || c === 6;\n const isCore = r >= 2 && r <= 4 && c >= 2 && c <= 4;\n grid[rr][cc] = isBorder || isCore;\n reserved[rr][cc] = true;\n }\n }\n}\n\nfunction placeAlignment(grid: Grid, reserved: boolean[][], version: number): void {\n const centers = ALIGN[version - 1];\n const last = centers.length - 1;\n for (let index = 0; index < centers.length; index += 1) {\n for (let index_ = 0; index_ < centers.length; index_ += 1) {\n if (\n (index === 0 && index_ === 0) ||\n (index === 0 && index_ === last) ||\n (index === last && index_ === 0)\n ) {\n continue;\n }\n const row = centers[index];\n const col = centers[index_];\n for (let r = -2; r <= 2; r += 1) {\n for (let c = -2; c <= 2; c += 1) {\n grid[row + r][col + c] = Math.max(Math.abs(r), Math.abs(c)) !== 1;\n reserved[row + r][col + c] = true;\n }\n }\n }\n }\n}\n\nfunction reserveFormat(reserved: boolean[][], size: number): void {\n for (let index = 0; index < 9; index += 1) {\n reserved[8][index] = true;\n reserved[index][8] = true;\n }\n for (let index = 0; index < 8; index += 1) {\n reserved[8][size - 1 - index] = true;\n reserved[size - 1 - index][8] = true;\n }\n}\n\nfunction placeFunctionPatterns(grid: Grid, reserved: boolean[][], version: number): void {\n const size = grid.length;\n placeFinder(grid, reserved, 0, 0);\n placeFinder(grid, reserved, 0, size - 7);\n placeFinder(grid, reserved, size - 7, 0);\n // timing patterns\n for (let index = 8; index < size - 8; index += 1) {\n const isBit = index % 2 === 0;\n grid[6][index] = isBit;\n grid[index][6] = isBit;\n reserved[6][index] = true;\n reserved[index][6] = true;\n }\n placeAlignment(grid, reserved, version);\n // dark module\n grid[size - 8][8] = true;\n reserved[size - 8][8] = true;\n reserveFormat(reserved, size);\n}\n\nfunction placeData(grid: Grid, reserved: boolean[][], bitsArray: number[]): void {\n const size = grid.length;\n let bitIndex = 0;\n let isUpward = true;\n for (let col = size - 1; col > 0; col -= 2) {\n const c0 = col === 6 ? col - 1 : col;\n for (let index = 0; index < size; index += 1) {\n const row = isUpward ? size - 1 - index : index;\n for (let k = 0; k < 2; k += 1) {\n const cc = c0 - k;\n if (reserved[row][cc]) {\n continue;\n }\n grid[row][cc] = bitIndex < bitsArray.length && bitsArray[bitIndex] === 1;\n bitIndex += 1;\n }\n }\n isUpward = !isUpward;\n }\n}\n\nfunction shouldMaskModule(mask: number, row: number, col: number): boolean {\n switch (mask) {\n case 0: {\n return (row + col) % 2 === 0;\n }\n case 1: {\n return row % 2 === 0;\n }\n case 2: {\n return col % 3 === 0;\n }\n case 3: {\n return (row + col) % 3 === 0;\n }\n case 4: {\n return (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0;\n }\n case 5: {\n return ((row * col) % 2) + ((row * col) % 3) === 0;\n }\n case 6: {\n return (((row * col) % 2) + ((row * col) % 3)) % 2 === 0;\n }\n default: {\n return (((row + col) % 2) + ((row * col) % 3)) % 2 === 0;\n }\n }\n}\n\nfunction applyMask(grid: Grid, reserved: boolean[][], mask: number): boolean[][] {\n const size = grid.length;\n return Array.from({ length: size }, (_, row) =>\n Array.from({ length: size }, (_, col) => {\n const isValue = grid[row][col] === true;\n if (reserved[row][col]) {\n return isValue;\n }\n return isValue !== shouldMaskModule(mask, row, col);\n }),\n );\n}\n\nfunction penalty(matrix: boolean[][]): number {\n const size = matrix.length;\n let score = 0;\n // rule 1: runs of 5+\n for (let r = 0; r < size; r += 1) {\n for (let c = 0; c < size; c += 1) {\n for (const [dr, dc] of [\n [0, 1],\n [1, 0],\n ]) {\n if (c + dc * 4 >= size || r + dr * 4 >= size) {\n continue;\n }\n let run = 1;\n while (\n r + dr * run < size &&\n c + dc * run < size &&\n matrix[r + dr * run][c + dc * run] === matrix[r][c]\n ) {\n run += 1;\n }\n if (run >= 5) {\n score += 3 + (run - 5);\n }\n }\n }\n }\n // rule 3: finder-like patterns\n const pattern = [true, false, true, true, true, false, true];\n for (let r = 0; r < size; r += 1) {\n for (let c = 0; c < size; c += 1) {\n let isHorizontal = c + 6 < size;\n let isVertical = r + 6 < size;\n for (let k = 0; k < 7; k += 1) {\n if (isHorizontal && matrix[r][c + k] !== pattern[k]) {\n isHorizontal = false;\n }\n if (isVertical && matrix[r + k][c] !== pattern[k]) {\n isVertical = false;\n }\n }\n if (isHorizontal) {\n score += 40;\n }\n if (isVertical) {\n score += 40;\n }\n }\n }\n return score;\n}\n\nfunction bchFormat(data: number): number {\n let value = data << 10;\n const generator = 0b101_0011_0111;\n for (let index = 14; index >= 10; index -= 1) {\n if (((value >> index) & 1) !== 0) {\n value ^= generator << (index - 10);\n }\n }\n return ((data << 10) | value) ^ 0b101_0100_0001_0010;\n}\n\nfunction placeFormat(matrix: boolean[][], mask: number): void {\n const size = matrix.length;\n const bits = bchFormat(mask); // level M = 0, so format data = mask\n for (let index = 0; index < 15; index += 1) {\n const isBit = ((bits >> index) & 1) === 1;\n if (index < 6) {\n matrix[8][index] = isBit;\n } else if (index < 8) {\n matrix[8][index + 1] = isBit;\n } else {\n matrix[8][size - 15 + index] = isBit;\n }\n if (index < 8) {\n matrix[size - 1 - index][8] = isBit;\n } else if (index < 9) {\n matrix[7][8] = isBit;\n } else {\n matrix[14 - index][8] = isBit;\n }\n }\n}\n\nfunction utf8Bytes(text: string): number[] {\n const out: number[] = [];\n for (const char of text) {\n const code = char.codePointAt(0) ?? 0;\n if (code < 0x80) {\n out.push(code);\n } else if (code < 0x8_00) {\n out.push(0xc0 | (code >> 6), 0x80 | (code & 0x3f));\n } else if (code < 0x1_00_00) {\n out.push(0xe0 | (code >> 12), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));\n } else {\n out.push(\n 0xf0 | (code >> 18),\n 0x80 | ((code >> 12) & 0x3f),\n 0x80 | ((code >> 6) & 0x3f),\n 0x80 | (code & 0x3f),\n );\n }\n }\n return out;\n}\n\n/** Encode `text` into a QR module matrix (true = dark). Level M, versions 1-10. */\nexport function encodeQr(text: string): boolean[][] {\n const bytes = utf8Bytes(text);\n const version = pickVersion(bytes.length);\n const size = 17 + version * 4;\n const codewords = buildCodewords(bytes.slice(0, CAPACITY[version - 1]), version);\n const finalBytes = interleave(codewords, version);\n const bitsArray: number[] = [];\n for (const byte of finalBytes) {\n for (let index = 7; index >= 0; index -= 1) {\n bitsArray.push((byte >> index) & 1);\n }\n }\n\n const grid = emptyGrid(size);\n const reserved = Array.from({ length: size }, () => Array.from({ length: size }, () => false));\n placeFunctionPatterns(grid, reserved, version);\n placeData(grid, reserved, bitsArray);\n\n let best: boolean[][] = [];\n let bestScore = Infinity;\n for (let mask = 0; mask < 8; mask += 1) {\n const candidate = applyMask(grid, reserved, mask);\n placeFormat(candidate, mask);\n const score = penalty(candidate);\n if (score < bestScore) {\n bestScore = score;\n best = candidate;\n }\n }\n return best;\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { type ClassValue, cn } from '../utils/cn';\n\nimport { encodeQr } from './qr-encode';\n\n/** Renders a value as a scannable QR code (SVG). Level M, byte mode. SSR-safe. */\n@Component({\n selector: 'bui-qr-code',\n host: { 'data-slot': 'qr-code', '[class]': 'computedClass()' },\n template: `\n <svg\n [attr.viewBox]=\"viewBox()\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n role=\"img\"\n [attr.aria-label]=\"label()\"\n shape-rendering=\"crispEdges\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect [attr.width]=\"dimension()\" [attr.height]=\"dimension()\" [attr.fill]=\"background()\" />\n <path [attr.d]=\"path()\" [attr.fill]=\"foreground()\" />\n </svg>\n `,\n})\nexport class BuiQrCode {\n readonly value = input('');\n readonly size = input(160);\n readonly label = input('QR code');\n readonly foreground = input('currentColor');\n readonly background = input('transparent');\n readonly margin = input(2);\n readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n private readonly matrix = computed(() => encodeQr(this.value()));\n protected readonly dimension = computed(() => this.matrix().length + this.margin() * 2);\n protected readonly viewBox = computed(() => `0 0 ${this.dimension()} ${this.dimension()}`);\n protected readonly path = computed(() => {\n const margin = this.margin();\n const parts: string[] = [];\n for (const [r, row] of this.matrix().entries()) {\n for (const [c, on] of row.entries()) {\n if (on) {\n parts.push(`M${c + margin} ${r + margin}h1v1h-1z`);\n }\n }\n }\n return parts.join('');\n });\n protected readonly computedClass = computed(() => cn('inline-block', this.userClass()));\n}\n","/*\n * Public API Surface of ng-blatui\n */\n\nexport * from './lib/utils/cn';\nexport * from './lib/button/button';\nexport * from './lib/badge/badge';\nexport * from './lib/label/label';\nexport * from './lib/separator/separator';\nexport * from './lib/skeleton/skeleton';\nexport * from './lib/card/card';\nexport * from './lib/alert/alert';\nexport * from './lib/input/input';\nexport * from './lib/textarea/textarea';\nexport * from './lib/progress/progress';\nexport * from './lib/avatar/avatar';\nexport * from './lib/checkbox/checkbox';\nexport * from './lib/switch/switch';\nexport * from './lib/accordion/accordion';\nexport * from './lib/tabs/tabs';\nexport * from './lib/dialog/dialog';\nexport * from './lib/theme/theme';\nexport * from './lib/theme/theme-customizer';\nexport * from './lib/radio-group/radio-group';\nexport * from './lib/tooltip/tooltip';\nexport * from './lib/breadcrumb/breadcrumb';\nexport * from './lib/kbd/kbd';\nexport * from './lib/aspect-ratio/aspect-ratio';\nexport * from './lib/button-group/button-group';\nexport * from './lib/empty/empty';\nexport * from './lib/container/container';\nexport * from './lib/field/field';\nexport * from './lib/collapsible/collapsible';\nexport * from './lib/toggle/toggle';\nexport * from './lib/spinner/spinner';\nexport * from './lib/copy-button/copy-button';\nexport * from './lib/banner/banner';\nexport * from './lib/table/table';\nexport * from './lib/avatar-group/avatar-group';\nexport * from './lib/pagination/pagination';\nexport * from './lib/popover/popover';\nexport * from './lib/item/item';\nexport * from './lib/scroll-area/scroll-area';\nexport * from './lib/input-group/input-group';\nexport * from './lib/visually-hidden/visually-hidden';\nexport * from './lib/meter/meter';\nexport * from './lib/stat/stat';\nexport * from './lib/hover-card/hover-card';\nexport * from './lib/code-block/code-block';\nexport * from './lib/slider/slider';\nexport * from './lib/rating/rating';\nexport * from './lib/quantity-selector/quantity-selector';\nexport * from './lib/alert-dialog/alert-dialog';\nexport * from './lib/autosize-textarea/autosize-textarea';\nexport * from './lib/dropdown-menu/dropdown-menu';\nexport * from './lib/menubar/menubar';\nexport * from './lib/typography/typography';\nexport * from './lib/dot-pattern/dot-pattern';\nexport * from './lib/grid-pattern/grid-pattern';\nexport * from './lib/segmented-control/segmented-control';\nexport * from './lib/terminal/terminal';\nexport * from './lib/comparison-table/comparison-table';\nexport * from './lib/flip-card/flip-card';\nexport * from './lib/spotlight-card/spotlight-card';\nexport * from './lib/tilt-card/tilt-card';\nexport * from './lib/select/select';\nexport * from './lib/back-to-top/back-to-top';\nexport * from './lib/combobox/combobox';\nexport * from './lib/countdown/countdown';\nexport * from './lib/number-ticker/number-ticker';\nexport * from './lib/link/link';\nexport * from './lib/gradient-text/gradient-text';\nexport * from './lib/page-header/page-header';\nexport * from './lib/quote/quote';\nexport * from './lib/price/price';\nexport * from './lib/stack/stack';\nexport * from './lib/accent/accent';\nexport * from './lib/kbd-group/kbd-group';\nexport * from './lib/presence/presence';\nexport * from './lib/timeline/timeline';\nexport * from './lib/timeline/timeline-item';\nexport * from './lib/description-list/description-list';\nexport * from './lib/description-list/description-item';\nexport * from './lib/masonry/masonry';\nexport * from './lib/bento-grid/bento-grid';\nexport * from './lib/bento-grid/bento-item';\nexport * from './lib/gallery/gallery';\nexport * from './lib/loading-overlay/loading-overlay';\nexport * from './lib/number-input/number-input';\nexport * from './lib/variant-selector/variant-selector';\nexport * from './lib/sparkline/sparkline';\nexport * from './lib/add-to-cart/add-to-cart';\nexport * from './lib/password-strength/password-strength';\nexport * from './lib/product-card/product-card';\nexport * from './lib/typewriter/typewriter';\nexport * from './lib/streaming-text/streaming-text';\nexport * from './lib/border-beam/border-beam';\nexport * from './lib/meteors/meteors';\nexport * from './lib/aurora/aurora';\nexport * from './lib/marquee/marquee';\nexport * from './lib/bottom-navigation/bottom-navigation';\nexport * from './lib/bottom-navigation/bottom-navigation-item';\nexport * from './lib/text-reveal/text-reveal';\nexport * from './lib/parallax/parallax';\nexport * from './lib/scrollspy/scrollspy';\nexport * from './lib/time-field/time-field';\nexport * from './lib/toggle-group/toggle-group';\nexport * from './lib/toggle-group/toggle-group-item';\nexport * from './lib/tags-input/tags-input';\nexport * from './lib/editable/editable';\nexport * from './lib/speed-dial/speed-dial';\nexport * from './lib/knob/knob';\nexport * from './lib/image/image';\nexport * from './lib/reasoning/reasoning';\nexport * from './lib/tool-call/tool-call';\nexport * from './lib/chat/chat';\nexport * from './lib/chat/chat-message';\nexport * from './lib/confetti/confetti';\nexport * from './lib/stepper/stepper';\nexport * from './lib/stepper/stepper-item';\nexport * from './lib/input-otp/input-otp';\nexport * from './lib/phone-input/phone-input';\nexport * from './lib/prompt-input/prompt-input';\nexport * from './lib/heatmap/heatmap';\nexport * from './lib/citation/citation';\nexport * from './lib/resizable/resizable-panel-group';\nexport * from './lib/resizable/resizable-panel';\nexport * from './lib/resizable/resizable-handle';\nexport * from './lib/video/video';\nexport * from './lib/color-picker/color-picker';\nexport * from './lib/cookie-consent/cookie-consent';\nexport * from './lib/infinite-scroll/infinite-scroll';\nexport * from './lib/audio-player/audio-player';\nexport * from './lib/signature-pad/signature-pad';\nexport * from './lib/dock/dock';\nexport * from './lib/dock/dock-item';\nexport * from './lib/tree/tree';\nexport * from './lib/tree/tree-node';\nexport * from './lib/repeater/repeater';\nexport * from './lib/notification-center/notification-center';\nexport * from './lib/json-viewer/json-viewer';\nexport * from './lib/json-viewer/json-viewer-node';\nexport * from './lib/org-chart/org-chart';\nexport * from './lib/org-chart/org-chart-node';\nexport * from './lib/mini-cart/mini-cart';\nexport * from './lib/animated-beam/animated-beam';\nexport * from './lib/diff-viewer/diff-viewer';\nexport * from './lib/tree-table/tree-table';\nexport * from './lib/markdown-editor/markdown-editor';\nexport * from './lib/calendar/calendar';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/carousel/carousel';\nexport * from './lib/command/command';\nexport * from './lib/context-menu/context-menu';\nexport * from './lib/data-table/data-table';\nexport * from './lib/chart/chart';\nexport * from './lib/datetime-picker/datetime-picker';\nexport * from './lib/autocomplete/autocomplete';\nexport * from './lib/comparison-slider/comparison-slider';\nexport * from './lib/file-upload/file-upload';\nexport * from './lib/top-progress/top-progress';\nexport * from './lib/drawer/drawer';\nexport * from './lib/input-mask/input-mask';\nexport * from './lib/sheet/sheet';\nexport * from './lib/sonner/sonner';\nexport * from './lib/navigation-menu/navigation-menu';\nexport * from './lib/mention-input/mention-input';\nexport * from './lib/map/map';\nexport * from './lib/gantt/gantt';\nexport * from './lib/scheduler/scheduler';\nexport * from './lib/kanban/kanban';\nexport * from './lib/rich-text-editor/rich-text-editor';\nexport * from './lib/sidebar/sidebar';\nexport * from './lib/onboarding-tour/onboarding-tour';\nexport * from './lib/qr-code/qr-code';\nexport * from './lib/qr-code/qr-encode';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BASE","SIZES","VARIANTS","TONES","GAPS","ALIGN","COLUMNS","PALETTE","POSITION","applyMask"],"mappings":"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"}