@nuykon/basecoat-vue 0.0.0-stage → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/primitives.ts","../../core/src/chart.ts","../../core/src/widgets.ts","../../core/src/index.ts","../src/components/ChartRoot.ts","../src/components/SelectRoot.ts","../src/components/ComboboxRoot.ts","../src/components/DropdownMenuRoot.ts","../src/components/PopoverRoot.ts","../src/components/TabsRoot.ts","../src/components/AccordionRoot.ts","../src/components/CommandRoot.ts","../src/components/SidebarRoot.ts","../src/components/DialogRoot.ts","../src/components/DrawerRoot.ts","../src/components/AlertDialogRoot.ts","../src/components/Button.ts","../src/components/Badge.ts","../src/components/Card.ts","../src/components/CardHeader.ts","../src/components/CardTitle.ts","../src/components/CardDescription.ts","../src/components/CardContent.ts","../src/components/CardFooter.ts","../src/components/CardAction.ts","../src/components/Alert.ts","../src/components/AlertTitle.ts","../src/components/AlertDescription.ts","../src/components/Avatar.ts","../src/components/AvatarImage.ts","../src/components/AvatarFallback.ts","../src/components/Breadcrumb.ts","../src/components/BreadcrumbList.ts","../src/components/BreadcrumbItem.ts","../src/components/BreadcrumbLink.ts","../src/components/BreadcrumbSeparator.ts","../src/components/ButtonGroup.ts","../src/components/Field.ts","../src/components/FieldLabel.ts","../src/components/FieldDescription.ts","../src/components/FieldError.ts","../src/components/Label.ts","../src/components/Input.ts","../src/components/Textarea.ts","../src/components/NativeSelect.ts","../src/components/InputGroup.ts","../src/components/InputGroupAddon.ts","../src/components/Empty.ts","../src/components/EmptyHeader.ts","../src/components/EmptyTitle.ts","../src/components/EmptyDescription.ts","../src/components/EmptyContent.ts","../src/components/Item.ts","../src/components/ItemContent.ts","../src/components/ItemTitle.ts","../src/components/ItemDescription.ts","../src/components/ItemActions.ts","../src/components/Kbd.ts","../src/components/ScrollArea.ts","../src/components/Skeleton.ts","../src/components/Spinner.ts","../src/components/Separator.ts","../src/components/Table.ts","../src/components/TableHeader.ts","../src/components/TableBody.ts","../src/components/TableFooter.ts","../src/components/TableRow.ts","../src/components/TableHead.ts","../src/components/TableCell.ts","../src/components/TableCaption.ts","../src/components/DialogHeader.ts","../src/components/DialogTitle.ts","../src/components/DialogDescription.ts","../src/components/DialogContent.ts","../src/components/DialogFooter.ts","../src/components/SidebarHeader.ts","../src/components/SidebarContent.ts","../src/components/SidebarFooter.ts","../src/components/SidebarGroup.ts","../src/components/SidebarItem.ts","../src/components/Checkbox.ts","../src/hooks.ts","../src/components/Switch.ts","../src/components/Slider.ts","../src/components/RadioGroup.ts","../src/shared/optionProps.ts","../src/components/Progress.ts","../src/components/Tabs.ts","../src/components/Accordion.ts","../src/components/Collapsible.ts","../src/components/Dialog.ts","../src/components/AlertDialog.ts","../src/components/Drawer.ts","../src/components/Popover.ts","../src/components/Tooltip.ts","../src/components/Select.ts","../src/components/Combobox.ts","../src/components/DropdownMenu.ts","../src/components/Command.ts","../src/components/Pagination.ts","../src/components/Sidebar.ts","../src/components/ThemeSwitcher.ts","../src/components/Toaster.ts","../src/components/Toast.ts","../src/components/Chart.ts"],"sourcesContent":["export * from './components';\nexport type {\n Option,\n MenuItem,\n ToastMessage,\n ChartPoint,\n Variant,\n Size,\n Side,\n Align,\n} from '@nuykon/basecoat-core';\n","import {\n cloneVNode,\n defineComponent,\n onMounted,\n onUnmounted,\n h,\n mergeProps,\n type PropType,\n type VNode,\n} from 'vue';\nimport {\n attachWidget,\n cx,\n primitiveDefinitions,\n type PrimitiveName,\n type Size,\n type Variant,\n} from '@nuykon/basecoat-core';\nexport function primitive(name: PrimitiveName, tag: string) {\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n as: String,\n asChild: Boolean,\n variant: String as PropType<Variant>,\n size: String as PropType<Size>,\n },\n setup(props, { attrs, slots, expose }) {\n let element: HTMLElement | null = null;\n let dispose: (() => void) | undefined;\n onMounted(() => {\n if (name.endsWith('Root') && element) dispose = attachWidget(element);\n });\n onUnmounted(() => dispose?.());\n expose({\n get el() {\n return element;\n },\n focus: () => element?.focus(),\n });\n const renderElement = () => {\n const base: Record<string, unknown> = {\n class: primitiveDefinitions[name][1],\n 'data-variant': props.variant,\n 'data-size': props.size,\n };\n if (tag === 'button') base.type = 'button';\n if (name === 'Alert') base.role = 'alert';\n if (name === 'Breadcrumb') base['aria-label'] = 'Breadcrumb';\n if (name === 'BreadcrumbSeparator') {\n base['aria-hidden'] = true;\n base.role = 'presentation';\n }\n if (name === 'Skeleton') base['aria-hidden'] = true;\n if (name === 'Spinner') {\n base.role = 'status';\n base['aria-label'] = 'Loading';\n }\n if (name === 'FieldError') base.role = 'alert';\n if (name === 'ScrollArea') base.style = { overflow: 'auto' };\n const attributes = mergeProps(base, attrs, {\n ref: (el: unknown) => {\n element = el as HTMLElement;\n },\n });\n if (props.asChild) {\n const children = slots.default?.() ?? [];\n if (children.length !== 1)\n throw new Error(`${name} with asChild expects a single element.`);\n return cloneVNode(children[0] as VNode, attributes, true);\n }\n return h(props.as ?? tag, attributes, slots.default?.());\n };\n return { renderElement, focus: () => element?.focus() };\n },\n render() {\n return this.renderElement();\n },\n });\n}\n","export interface CanvasChartConfig {\n type?: 'line' | 'bar' | 'doughnut' | 'radar';\n labelKey?: string;\n legend?: boolean;\n data?: Record<string, string | number>[];\n series?: Record<\n string,\n {\n label?: string;\n color?: string;\n surface?: string;\n dataset?: { fill?: boolean; stepped?: boolean; tension?: number };\n }\n >;\n options?: { scales?: { y?: { stacked?: boolean } } };\n}\n/** Canvas renderer deliberately owns drawing, resize, themes and cleanup without a chart library. */\nexport function attachCanvasChart(canvas: HTMLCanvasElement, config: CanvasChartConfig) {\n const doc = canvas.ownerDocument,\n win = doc.defaultView!,\n ctx = canvas.getContext('2d');\n if (!ctx) return () => {};\n const data = config.data ?? [],\n series = Object.entries(config.series ?? {}),\n labelKey = config.labelKey ?? 'label';\n const color = (value: string) =>\n value.startsWith('var(')\n ? win.getComputedStyle(canvas).getPropertyValue(value.slice(4, -1)).trim() || '#888'\n : value;\n const legend = doc.createElement('ul');\n legend.className = 'chart-legend';\n if (config.legend) {\n for (const [index, [key, options]] of series.entries()) {\n const item = doc.createElement('li'),\n content = doc.createElement('span'),\n indicator = doc.createElement('span');\n content.className = 'chart-legend-item';\n indicator.className = 'chart-legend-indicator';\n indicator.style.setProperty(\n '--chart-indicator-color',\n options.color ?? `var(--chart-${index + 1})`,\n );\n content.append(indicator, doc.createTextNode(options.label ?? key));\n item.append(content);\n legend.append(item);\n }\n canvas.after(legend);\n }\n canvas.style.width = '100%';\n canvas.style.aspectRatio = '16 / 9';\n canvas.style.display = 'block';\n const draw = () => {\n const width = Math.max(200, canvas.parentElement?.clientWidth ?? 400),\n height = (width * 9) / 16,\n ratio = win.devicePixelRatio || 1;\n canvas.width = Math.round(width * ratio);\n canvas.height = Math.round(height * ratio);\n canvas.style.height = `${height}px`;\n ctx.setTransform(ratio, 0, 0, ratio, 0, 0);\n ctx.clearRect(0, 0, width, height);\n const padding = { left: 30, top: 10, right: 10, bottom: 30 },\n w = width - padding.left - padding.right,\n h = height - padding.top - padding.bottom;\n const max = Math.max(\n 1,\n ...data.map((row) =>\n config.options?.scales?.y?.stacked\n ? series.reduce((sum, [key]) => sum + Number(row[key] ?? 0), 0)\n : Math.max(...series.map(([key]) => Number(row[key] ?? 0))),\n ),\n );\n const x = (index: number) => padding.left + (index / Math.max(1, data.length - 1)) * w,\n y = (value: number) => padding.top + h - (value / max) * h;\n ctx.font = '12px \"Geist Sans\",system-ui';\n ctx.fillStyle = color('var(--muted-foreground)');\n ctx.strokeStyle = color('var(--border)');\n ctx.lineWidth = 0.5;\n if (config.type !== 'doughnut' && config.type !== 'radar') {\n for (let index = 0; index <= 4; index++) {\n const top = padding.top + (index * h) / 4;\n ctx.beginPath();\n ctx.moveTo(padding.left, top);\n ctx.lineTo(width - padding.right, top);\n ctx.stroke();\n ctx.fillText(String(Math.round((max * (4 - index)) / 4)), 0, top + 4);\n }\n for (let index = 0; index < data.length; index++)\n if (index % Math.max(1, Math.ceil(data.length / 6)) === 0)\n ctx.fillText(String(data[index][labelKey] ?? ''), x(index) - 10, height - 8);\n }\n if (config.type === 'doughnut') {\n const key = series[0]?.[0] ?? 'value',\n values = data.map((row) => Number(row[key] ?? 0)),\n total = values.reduce((a, b) => a + b, 0) || 1,\n radius = Math.min(w, h) * 0.45,\n cx = width / 2,\n cy = height / 2;\n let start = -Math.PI / 2;\n values.forEach((value, index) => {\n const end = start + (value / total) * Math.PI * 2;\n ctx.beginPath();\n ctx.arc(cx, cy, radius, start, end);\n ctx.arc(cx, cy, radius * 0.62, end, start, true);\n ctx.closePath();\n ctx.fillStyle = color(`var(--chart-${(index % 5) + 1})`);\n ctx.fill();\n start = end;\n });\n } else if (config.type === 'radar') {\n const radius = Math.min(w, h) * 0.4,\n cx = width / 2,\n cy = height / 2;\n const point = (index: number, scale: number) => {\n const angle = (index / Math.max(1, data.length)) * Math.PI * 2 - Math.PI / 2;\n return [\n cx + Math.cos(angle) * radius * scale,\n cy + Math.sin(angle) * radius * scale,\n ] as const;\n };\n for (let ring = 1; ring <= 4; ring++) {\n ctx.beginPath();\n data.forEach((_, i) => {\n const [x, y] = point(i, ring / 4);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n });\n ctx.closePath();\n ctx.stroke();\n }\n series.forEach(([key, options], index) => {\n ctx.beginPath();\n data.forEach((row, i) => {\n const [x, y] = point(i, Number(row[key] ?? 0) / max);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n });\n ctx.closePath();\n ctx.strokeStyle = color(options.color ?? `var(--chart-${index + 1})`);\n ctx.stroke();\n ctx.globalAlpha = 0.2;\n ctx.fillStyle = ctx.strokeStyle;\n ctx.fill();\n ctx.globalAlpha = 1;\n });\n ctx.fillStyle = color('var(--muted-foreground)');\n data.forEach((row, i) => {\n const [x, y] = point(i, 1.15);\n ctx.fillText(String(row[labelKey] ?? ''), x - 15, y);\n });\n } else {\n const stacks = data.map(() => 0);\n series.forEach(([key, options], seriesIndex) => {\n const fill = color(options.color ?? `var(--chart-${seriesIndex + 1})`);\n ctx.strokeStyle = fill;\n ctx.fillStyle = fill;\n ctx.lineWidth = 1.5;\n if (config.type === 'bar')\n data.forEach((row, index) => {\n const value = Number(row[key] ?? 0),\n stacked = config.options?.scales?.y?.stacked,\n group = w / Math.max(1, data.length),\n barWidth = (group * 0.65) / (stacked ? 1 : series.length),\n left =\n padding.left +\n index * group +\n group * 0.15 +\n (stacked ? 0 : seriesIndex * barWidth),\n base = stacks[index];\n ctx.beginPath();\n ctx.roundRect(\n left,\n y(value + base),\n Math.max(1, barWidth - 2),\n Math.max(0, y(base) - y(value + base)),\n 3,\n );\n ctx.fill();\n if (stacked) stacks[index] += value;\n });\n else {\n ctx.beginPath();\n data.forEach((row, index) => {\n const top = y(Number(row[key] ?? 0));\n if (index === 0) ctx.moveTo(x(index), top);\n else if (options.dataset?.stepped) {\n ctx.lineTo(x(index), y(Number(data[index - 1][key] ?? 0)));\n ctx.lineTo(x(index), top);\n } else ctx.lineTo(x(index), top);\n });\n ctx.stroke();\n if (options.dataset?.fill || options.surface === 'gradient') {\n ctx.lineTo(x(data.length - 1), y(0));\n ctx.lineTo(x(0), y(0));\n ctx.closePath();\n const gradient = ctx.createLinearGradient(0, 0, 0, height);\n gradient.addColorStop(0, fill);\n gradient.addColorStop(1, 'transparent');\n ctx.globalAlpha = 0.3;\n ctx.fillStyle = gradient;\n ctx.fill();\n ctx.globalAlpha = 1;\n }\n }\n });\n }\n };\n const resize = new win.ResizeObserver(draw),\n themes = new win.MutationObserver(draw);\n resize.observe(canvas.parentElement ?? canvas);\n themes.observe(doc.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'data-style-variant'],\n });\n doc.addEventListener('basecoat:stylechange', draw);\n draw();\n return () => {\n resize.disconnect();\n themes.disconnect();\n legend.remove();\n doc.removeEventListener('basecoat:stylechange', draw);\n };\n}\n","import {\n attachFloating,\n createTypeahead,\n dismissableLayer,\n nextIndex,\n percentage,\n scrollWithin,\n focusFirst,\n} from './index';\nimport { attachCanvasChart } from './chart';\n/** Composition adapter for Basecoat's semantic markup. Frameworks own mount/unmount. */\nexport function attachWidget(root: HTMLElement) {\n const abort = new AbortController(),\n signal = abort.signal,\n cleanups: (() => void)[] = [];\n const on = (element: EventTarget | null, name: string, fn: EventListener) =>\n element?.addEventListener(name, fn, { signal });\n const emit = (detail: unknown) =>\n root.dispatchEvent(new CustomEvent('basecoat:change', { bubbles: true, detail }));\n if (root instanceof HTMLCanvasElement && root.dataset.chartConfig)\n cleanups.push(attachCanvasChart(root, JSON.parse(root.dataset.chartConfig)));\n if (root.classList.contains('sidebar')) {\n const media = root.ownerDocument.defaultView!.matchMedia('(min-width: 768px)');\n root.dataset.sidebarInitialized = 'true';\n const set = (open: boolean) => root.setAttribute('aria-hidden', String(!open));\n const toggle = () => set(root.getAttribute('aria-hidden') === 'true');\n const sidebar = root as HTMLElement & { toggle?: () => void };\n sidebar.toggle = toggle;\n set(media.matches);\n on(media, 'change', () => set(media.matches));\n on(root, 'click', (event) => {\n if (event.target === root && !media.matches) set(false);\n });\n on(root.ownerDocument, 'keydown', (event) => {\n if ((event as KeyboardEvent).key === 'Escape' && !media.matches) set(false);\n });\n cleanups.push(() => {\n delete sidebar.toggle;\n delete root.dataset.sidebarInitialized;\n });\n }\n if (root.classList.contains('toaster')) {\n type Message = {\n title?: string;\n description?: string;\n category?: string;\n duration?: number;\n cancel?: { label?: string };\n action?: { label?: string; onclick?: () => void };\n };\n const timers = new Set<ReturnType<typeof setTimeout>>();\n const toast = (message: Message) => {\n const item = root.ownerDocument.createElement('div');\n item.className = 'toast';\n item.setAttribute('role', 'status');\n const content = root.ownerDocument.createElement('div');\n content.className = 'toast-content';\n const section = root.ownerDocument.createElement('section'),\n heading = root.ownerDocument.createElement('h2');\n heading.textContent = message.title ?? '';\n section.append(heading);\n if (message.description) {\n const description = root.ownerDocument.createElement('p');\n description.textContent = message.description;\n section.append(description);\n }\n const footer = root.ownerDocument.createElement('footer'),\n close = root.ownerDocument.createElement('button');\n close.type = 'button';\n close.className = 'btn';\n close.dataset.variant = 'outline';\n close.dataset.toastCancel = '';\n close.textContent = message.cancel?.label ?? 'Dismiss';\n close.addEventListener('click', () => item.remove(), { signal });\n footer.append(close);\n if (message.action) {\n const action = root.ownerDocument.createElement('button');\n action.type = 'button';\n action.className = 'btn';\n action.textContent = message.action.label ?? 'Action';\n action.addEventListener(\n 'click',\n () => {\n message.action?.onclick?.();\n item.remove();\n },\n { signal },\n );\n footer.append(action);\n }\n content.append(section, footer);\n item.append(content);\n root.append(item);\n if ((message.duration ?? 5000) > 0) {\n const timer = setTimeout(() => {\n item.remove();\n timers.delete(timer);\n }, message.duration ?? 5000);\n timers.add(timer);\n }\n return item;\n };\n (root as HTMLElement & { toast?: (message: Message) => HTMLElement }).toast = toast;\n on(root, 'click', (event) => {\n const button = (event.target as HTMLElement).closest('[data-toast-cancel]');\n button?.closest('.toast')?.remove();\n });\n cleanups.push(() => {\n timers.forEach(clearTimeout);\n delete (root as HTMLElement & { toast?: unknown }).toast;\n });\n }\n if (root.classList.contains('tabs')) {\n const tabs = [...root.querySelectorAll<HTMLButtonElement>('[role=tab]')].filter(\n (tab) => tab.closest('.tabs') === root,\n );\n const set = (target: HTMLButtonElement) => {\n if (target.disabled || target.getAttribute('aria-disabled') === 'true') return;\n for (const tab of tabs) {\n const active = tab === target;\n tab.setAttribute('aria-selected', String(active));\n tab.tabIndex = active ? 0 : -1;\n const panel = root.ownerDocument.getElementById(tab.getAttribute('aria-controls') ?? '');\n if (panel) {\n panel.hidden = !active;\n panel.setAttribute('aria-selected', String(active));\n }\n }\n emit(target.id);\n };\n for (const [index, tab] of tabs.entries()) {\n on(tab, 'click', () => set(tab));\n on(tab, 'keydown', (event) => {\n const key = (event as KeyboardEvent).key,\n vertical = tab.parentElement?.getAttribute('aria-orientation') === 'vertical';\n if (\n !(vertical ? ['ArrowUp', 'ArrowDown'] : ['ArrowLeft', 'ArrowRight']).includes(key) &&\n !['Home', 'End'].includes(key)\n )\n return;\n event.preventDefault();\n const target =\n tabs[\n nextIndex(\n tabs.map((item) => ({\n disabled: item.disabled || item.getAttribute('aria-disabled') === 'true',\n })),\n index,\n key,\n )\n ];\n target?.focus();\n if (target) set(target);\n });\n }\n }\n if (root.classList.contains('accordion')) {\n const summaries = [...root.querySelectorAll<HTMLElement>('summary')];\n on(root, 'keydown', (event) => {\n const index = summaries.indexOf(event.target as HTMLElement),\n key = (event as KeyboardEvent).key;\n if (index >= 0 && ['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(key)) {\n event.preventDefault();\n summaries[\n nextIndex(\n summaries.map((el) => ({ disabled: el.getAttribute('aria-disabled') === 'true' })),\n index,\n key,\n )\n ]?.focus();\n }\n });\n on(root, 'click', (event) => {\n const summary = (event.target as HTMLElement).closest('summary');\n if (\n summary?.getAttribute('aria-disabled') === 'true' ||\n summary?.parentElement?.getAttribute('aria-disabled') === 'true'\n )\n event.preventDefault();\n });\n }\n const kind = ['select', 'combobox', 'dropdown-menu', 'popover'].find((kind) =>\n root.classList.contains(kind),\n );\n if (kind) {\n const trigger = root.querySelector<HTMLElement>(\n ':scope > button, :scope > input[role=combobox], :scope > .input-group input[role=combobox]',\n ),\n popup = root.querySelector<HTMLElement>(':scope > [data-popover]');\n const search = root.querySelector<HTMLInputElement>(\n '[data-popover] input, input[role=combobox]',\n );\n if (trigger && popup) {\n let open = false,\n active = -1,\n disposePosition: (() => void) | undefined,\n disposeLayer: (() => void) | undefined;\n const selector =\n kind === 'dropdown-menu'\n ? '[role=menuitem], [role=menuitemcheckbox], [role=menuitemradio]'\n : '[role=option]';\n const items = () =>\n [...popup.querySelectorAll<HTMLElement>(selector)].filter(\n (item) => !item.hidden && item.getAttribute('aria-hidden') !== 'true',\n );\n const disabled = (item: HTMLElement) =>\n item.matches(':disabled') || item.getAttribute('aria-disabled') === 'true';\n const cursor = () =>\n items().map((item) => ({\n value: item.dataset.value ?? item.id,\n label: item.textContent?.trim() ?? '',\n disabled: disabled(item),\n }));\n const typeahead = createTypeahead();\n const highlight = (index: number) => {\n active = index;\n const all = items();\n for (const [i, item] of all.entries()) {\n item.classList.toggle('active', i === index);\n if (kind === 'dropdown-menu') item.tabIndex = i === index ? 0 : -1;\n }\n const item = all[index];\n if (item) {\n if (kind === 'dropdown-menu') item.focus();\n else {\n const list = popup.querySelector<HTMLElement>('[role=listbox]');\n if (list) {\n list.setAttribute('aria-activedescendant', item.id);\n scrollWithin(list, item);\n }\n search?.setAttribute('aria-activedescendant', item.id);\n }\n }\n };\n const close = (restore = false) => {\n if (!open) return;\n open = false;\n disposeLayer?.();\n disposePosition?.();\n trigger.setAttribute('aria-expanded', 'false');\n popup.setAttribute('aria-hidden', 'true');\n popup.hidden = true;\n if (restore) trigger.focus();\n };\n const show = (last = false) => {\n if (open || disabled(trigger)) return;\n open = true;\n popup.hidden = false;\n popup.setAttribute('aria-hidden', 'false');\n popup.setAttribute('popover', 'manual');\n popup.classList.add('bc-floating');\n trigger.setAttribute('aria-expanded', 'true');\n disposePosition = attachFloating(trigger, popup, {\n side: popup.dataset.side as 'top' | 'bottom' | 'left' | 'right' | undefined,\n align: popup.dataset.align as 'start' | 'center' | 'end' | undefined,\n matchWidth: kind === 'select' || kind === 'combobox',\n });\n disposeLayer = dismissableLayer(root.ownerDocument, {\n elements: () => [trigger, popup],\n dismiss: (reason) => close(reason === 'escape'),\n });\n const list = popup.querySelector<HTMLElement>('[role=listbox],[role=menu]');\n if (list) {\n list.tabIndex = -1;\n (search ?? list).focus();\n }\n if (kind === 'popover') focusFirst(popup);\n else highlight(nextIndex(cursor(), -1, last ? 'End' : 'Home'));\n };\n const choose = (item: HTMLElement) => {\n if (disabled(item)) return;\n if (kind === 'select' || kind === 'combobox') {\n const multiple = popup.querySelector('[aria-multiselectable=true]') !== null;\n if (!multiple)\n items().forEach((option) =>\n option.setAttribute('aria-selected', String(option === item)),\n );\n else\n item.setAttribute(\n 'aria-selected',\n String(item.getAttribute('aria-selected') !== 'true'),\n );\n const selected = items().filter(\n (option) => option.getAttribute('aria-selected') === 'true',\n ),\n values = selected.map(\n (option) => option.dataset.value ?? option.textContent?.trim() ?? '',\n );\n if (trigger instanceof HTMLInputElement) trigger.value = item.textContent?.trim() ?? '';\n else {\n const label = trigger.querySelector('span');\n if (label)\n label.textContent = selected.map((option) => option.textContent?.trim()).join(', ');\n }\n const hidden = root.querySelector<HTMLInputElement>('input[type=hidden]');\n if (hidden) {\n hidden.value = multiple ? JSON.stringify(values) : (values[0] ?? '');\n hidden.dispatchEvent(new Event('change', { bubbles: true }));\n }\n emit(multiple ? values : values[0]);\n if (!multiple) close(true);\n } else if (kind === 'dropdown-menu') {\n if (item.getAttribute('role') === 'menuitemcheckbox') {\n item.setAttribute('aria-checked', String(item.getAttribute('aria-checked') !== 'true'));\n emit(item.id);\n } else close(true);\n }\n };\n popup.hidden = popup.getAttribute('aria-hidden') !== 'false';\n on(trigger, 'click', () => (open ? close() : show()));\n on(trigger, 'keydown', (event) => {\n const key = (event as KeyboardEvent).key;\n if (!open && ['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(key)) {\n event.preventDefault();\n show(key === 'ArrowUp');\n }\n });\n on(popup, 'keydown', (event) => {\n const keyboard = event as KeyboardEvent;\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(keyboard.key)) {\n event.preventDefault();\n highlight(nextIndex(cursor(), active, keyboard.key));\n } else if (keyboard.key === 'Enter' || (!search && keyboard.key === ' ')) {\n event.preventDefault();\n const item = items()[active];\n if (item) {\n choose(item);\n if (item instanceof HTMLAnchorElement) item.click();\n }\n } else if (keyboard.key === 'Tab') close();\n else if (!search && keyboard.key.length === 1 && !keyboard.ctrlKey && !keyboard.metaKey) {\n event.preventDefault();\n highlight(typeahead(keyboard.key, cursor(), active));\n }\n });\n on(popup, 'click', (event) => {\n const item = (event.target as HTMLElement).closest<HTMLElement>(selector);\n if (item) {\n if (disabled(item)) event.preventDefault();\n else choose(item);\n }\n });\n on(popup, 'pointermove', (event) => {\n const pointer = event as PointerEvent,\n item = (event.target as HTMLElement).closest<HTMLElement>(selector);\n if (item && !disabled(item) && (pointer.movementX || pointer.movementY))\n highlight(items().indexOf(item));\n });\n on(search, 'input', () => {\n for (const item of popup.querySelectorAll<HTMLElement>(selector)) {\n const hidden = !item.textContent\n ?.toLocaleLowerCase()\n .includes(search!.value.toLocaleLowerCase());\n item.hidden = hidden;\n item.setAttribute('aria-hidden', String(hidden));\n }\n if (!open) show();\n highlight(nextIndex(cursor(), -1, 'Home'));\n });\n cleanups.push(() => close());\n }\n }\n if (root.classList.contains('command')) {\n const input = root.querySelector<HTMLInputElement>('input'),\n list = root.querySelector<HTMLElement>('[role=menu],[role=listbox]');\n let active = 0;\n const items = () =>\n [...(list?.querySelectorAll<HTMLElement>('[role=menuitem],[role=option]') ?? [])].filter(\n (item) => !item.hidden,\n );\n const refresh = () => {\n const all = items();\n all.forEach((item, index) => item.classList.toggle('active', index === active));\n const current = all[active];\n if (current) input?.setAttribute('aria-activedescendant', current.id);\n };\n on(input, 'input', () => {\n list?.querySelectorAll<HTMLElement>('[role=menuitem],[role=option]').forEach((item) => {\n item.hidden = !item.textContent\n ?.toLocaleLowerCase()\n .includes(input!.value.toLocaleLowerCase());\n item.setAttribute('aria-hidden', String(item.hidden));\n });\n active = 0;\n refresh();\n });\n on(input, 'keydown', (event) => {\n const key = (event as KeyboardEvent).key;\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(key)) {\n event.preventDefault();\n active = nextIndex(\n items().map((item) => ({ disabled: item.getAttribute('aria-disabled') === 'true' })),\n active,\n key,\n );\n refresh();\n } else if (key === 'Enter') {\n event.preventDefault();\n items()[active]?.click();\n }\n });\n (root as HTMLElement & { refresh?: () => void }).refresh = refresh;\n }\n if (root.matches('input[type=range]')) {\n const range = root as HTMLInputElement,\n update = () =>\n range.style.setProperty(\n '--slider-value',\n `${percentage(range.valueAsNumber, Number(range.min || 0), Number(range.max || 100))}%`,\n );\n on(range, 'input', update);\n update();\n }\n return () => {\n abort.abort();\n cleanups.forEach((cleanup) => cleanup());\n };\n}\n","export type Variant = 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link';\nexport type Size = 'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';\nexport type Side = 'top' | 'bottom' | 'left' | 'right';\nexport type Align = 'start' | 'center' | 'end';\nexport type StylePack = 'vega' | 'nova' | 'maia' | 'lyra' | 'mira' | 'luma' | 'sera' | 'rhea';\nexport interface Option {\n value: string;\n label: string;\n disabled?: boolean;\n group?: string;\n}\nexport interface TabItem extends Option {}\nexport interface AccordionItem extends Option {}\nexport interface MenuItem extends Option {\n href?: string;\n shortcut?: string;\n separator?: boolean;\n onSelect?: () => void;\n}\nexport interface ToastMessage {\n id: string;\n title: string;\n description?: string;\n variant?: 'default' | 'destructive';\n duration?: number;\n}\nexport interface ChartPoint {\n label: string;\n value: number;\n}\nexport const stylePacks: readonly StylePack[] = [\n 'vega',\n 'nova',\n 'maia',\n 'lyra',\n 'mira',\n 'luma',\n 'sera',\n 'rhea',\n];\nexport function cx(...values: (string | undefined | false | null)[]) {\n return values.filter(Boolean).join(' ');\n}\nexport function percentage(value: number, min = 0, max = 100) {\n return Number.isFinite(value) && max > min\n ? Math.min(100, Math.max(0, ((value - min) / (max - min)) * 100))\n : 0;\n}\nexport function nextIndex(\n items: readonly { disabled?: boolean }[],\n current: number,\n key: string,\n loop = true,\n) {\n const enabled = items\n .map((item, index) => (item.disabled ? -1 : index))\n .filter((index) => index >= 0);\n if (!enabled.length) return -1;\n if (key === 'Home') return enabled[0];\n if (key === 'End') return enabled[enabled.length - 1];\n const direction = key === 'ArrowUp' || key === 'ArrowLeft' ? -1 : 1;\n const position = enabled.indexOf(current);\n if (position < 0) return direction < 0 ? enabled[enabled.length - 1] : enabled[0];\n const next = position + direction;\n return enabled[\n loop\n ? (next + enabled.length) % enabled.length\n : Math.min(enabled.length - 1, Math.max(0, next))\n ];\n}\nexport function createTypeahead() {\n let buffer = '',\n last = 0;\n return (key: string, items: readonly Option[], current: number) => {\n const now = Date.now();\n buffer = now - last > 700 ? key : buffer + key;\n last = now;\n const query = [...buffer].every((char) => char === buffer[0]) ? buffer[0] : buffer;\n for (let offset = 1; offset <= items.length; offset++) {\n const index = (current + offset + items.length) % items.length;\n if (\n !items[index].disabled &&\n items[index].label.toLocaleLowerCase().startsWith(query.toLocaleLowerCase())\n )\n return index;\n }\n return current;\n };\n}\n\n// Layers share one stack per document: Escape/outside events only dismiss the top layer.\ntype Layer = {\n elements: () => (HTMLElement | null)[];\n dismiss: (reason: 'escape' | 'outside') => void;\n};\nconst stacks = new WeakMap<Document, { layers: Layer[]; dispose: () => void }>();\nexport function dismissableLayer(doc: Document, layer: Layer) {\n let stack = stacks.get(doc);\n if (!stack) {\n const layers: Layer[] = [];\n const pointer = (event: Event) => {\n const top = layers.at(-1);\n if (top && !top.elements().some((el) => el && event.composedPath().includes(el)))\n top.dismiss('outside');\n };\n const keyboard = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && !event.defaultPrevented && layers.length) {\n event.preventDefault();\n event.stopPropagation();\n layers.at(-1)?.dismiss('escape');\n }\n };\n doc.addEventListener('pointerdown', pointer, true);\n doc.addEventListener('keydown', keyboard);\n stack = {\n layers,\n dispose: () => {\n doc.removeEventListener('pointerdown', pointer, true);\n doc.removeEventListener('keydown', keyboard);\n },\n };\n stacks.set(doc, stack);\n }\n stack.layers.push(layer);\n return () => {\n const index = stack.layers.indexOf(layer);\n if (index >= 0) stack.layers.splice(index, 1);\n if (!stack.layers.length) {\n stack.dispose();\n stacks.delete(doc);\n }\n };\n}\n\nexport interface FloatingOptions {\n side?: Side;\n align?: Align;\n offset?: number;\n matchWidth?: boolean;\n}\nexport function floatingPosition(\n anchor: DOMRect,\n popup: DOMRect,\n width: number,\n height: number,\n options: FloatingOptions = {},\n) {\n let side = options.side ?? 'bottom';\n const align = options.align ?? 'start',\n offset = options.offset ?? 6,\n padding = 8;\n const available = {\n bottom: height - anchor.bottom,\n top: anchor.top,\n right: width - anchor.right,\n left: anchor.left,\n };\n const opposite: Record<Side, Side> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n };\n const required =\n (side === 'top' || side === 'bottom' ? popup.height : popup.width) + offset + padding;\n if (available[side] < required && available[opposite[side]] > available[side])\n side = opposite[side];\n const vertical = side === 'top' || side === 'bottom';\n let x = vertical\n ? anchor.left\n : side === 'left'\n ? anchor.left - popup.width - offset\n : anchor.right + offset;\n let y = vertical\n ? side === 'top'\n ? anchor.top - popup.height - offset\n : anchor.bottom + offset\n : anchor.top;\n if (vertical)\n x +=\n align === 'end'\n ? anchor.width - popup.width\n : align === 'center'\n ? (anchor.width - popup.width) / 2\n : 0;\n else\n y +=\n align === 'end'\n ? anchor.height - popup.height\n : align === 'center'\n ? (anchor.height - popup.height) / 2\n : 0;\n return {\n x: Math.max(padding, Math.min(x, width - popup.width - padding)),\n y: Math.max(padding, Math.min(y, height - popup.height - padding)),\n side,\n maxHeight: Math.max(40, available[side] - offset - padding),\n };\n}\nexport function attachFloating(\n anchor: HTMLElement,\n popup: HTMLElement,\n options: FloatingOptions = {},\n) {\n const win = anchor.ownerDocument.defaultView!;\n // Native top layer preserves contextual Basecoat selectors and escapes overflow clipping.\n if (typeof popup.showPopover === 'function') popup.showPopover();\n const update = () => {\n const rect = anchor.getBoundingClientRect();\n if (options.matchWidth) popup.style.minWidth = `${rect.width}px`;\n const viewport = win.visualViewport;\n const result = floatingPosition(\n rect,\n popup.getBoundingClientRect(),\n viewport?.width ?? win.innerWidth,\n viewport?.height ?? win.innerHeight,\n options,\n );\n Object.assign(popup.style, {\n left: `${result.x + (viewport?.offsetLeft ?? 0)}px`,\n top: `${result.y + (viewport?.offsetTop ?? 0)}px`,\n maxHeight: `${result.maxHeight}px`,\n });\n popup.dataset.side = result.side;\n };\n let frame = 0;\n const schedule = () => {\n win.cancelAnimationFrame(frame);\n frame = win.requestAnimationFrame(update);\n };\n const observer =\n typeof win.ResizeObserver === 'function' ? new win.ResizeObserver(schedule) : null;\n observer?.observe(anchor);\n observer?.observe(popup);\n win.addEventListener('resize', schedule);\n win.addEventListener('scroll', schedule, true);\n win.visualViewport?.addEventListener('resize', schedule);\n win.visualViewport?.addEventListener('scroll', schedule);\n update();\n return () => {\n win.cancelAnimationFrame(frame);\n observer?.disconnect();\n win.removeEventListener('resize', schedule);\n win.removeEventListener('scroll', schedule, true);\n win.visualViewport?.removeEventListener('resize', schedule);\n win.visualViewport?.removeEventListener('scroll', schedule);\n if (typeof popup.hidePopover === 'function' && popup.matches(':popover-open'))\n popup.hidePopover();\n };\n}\nconst scrollLocks = new WeakMap<Document, { count: number; overflow: string }>();\nexport function lockScroll(doc: Document) {\n const record = scrollLocks.get(doc) ?? { count: 0, overflow: doc.documentElement.style.overflow };\n record.count++;\n scrollLocks.set(doc, record);\n doc.documentElement.style.overflow = 'hidden';\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n if (--record.count === 0) {\n doc.documentElement.style.overflow = record.overflow;\n scrollLocks.delete(doc);\n }\n };\n}\nexport function focusFirst(root: HTMLElement) {\n const target = root.querySelector<HTMLElement>(\n '[autofocus],button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),textarea:not(:disabled),[tabindex=\"0\"]',\n );\n (target ?? root).focus({ preventScroll: true });\n}\nexport function scrollWithin(container: HTMLElement, item: HTMLElement) {\n const parent =\n container.scrollHeight > container.clientHeight\n ? container\n : (container.parentElement ?? container);\n const outer = parent.getBoundingClientRect(),\n inner = item.getBoundingClientRect();\n if (inner.top < outer.top) parent.scrollTop -= outer.top - inner.top;\n else if (inner.bottom > outer.bottom) parent.scrollTop += inner.bottom - outer.bottom;\n}\nexport function formReset(element: HTMLElement, reset: () => void) {\n const form = element.closest('form');\n let timer: ReturnType<typeof setTimeout> | undefined;\n const listener = (event: Event) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n if (!event.defaultPrevented) reset();\n }, 0);\n };\n form?.addEventListener('reset', listener);\n return () => {\n clearTimeout(timer);\n form?.removeEventListener('reset', listener);\n };\n}\n\nexport const primitiveDefinitions = {\n ChartRoot: ['canvas', 'chart-canvas'],\n SelectRoot: ['div', 'select'],\n ComboboxRoot: ['div', 'combobox'],\n DropdownMenuRoot: ['div', 'dropdown-menu'],\n PopoverRoot: ['div', 'popover'],\n TabsRoot: ['div', 'tabs'],\n AccordionRoot: ['div', 'accordion'],\n CommandRoot: ['div', 'command'],\n SidebarRoot: ['div', 'sidebar'],\n DialogRoot: ['dialog', 'dialog'],\n DrawerRoot: ['dialog', 'drawer'],\n AlertDialogRoot: ['dialog', 'alert-dialog'],\n Button: ['button', 'btn'],\n Badge: ['span', 'badge'],\n Card: ['article', 'card'],\n CardHeader: ['header', ''],\n CardTitle: ['h3', 'card-title'],\n CardDescription: ['p', ''],\n CardContent: ['section', ''],\n CardFooter: ['footer', ''],\n CardAction: ['div', 'card-action'],\n Alert: ['div', 'alert'],\n AlertTitle: ['h2', ''],\n AlertDescription: ['section', ''],\n Avatar: ['span', 'avatar'],\n AvatarImage: ['img', ''],\n AvatarFallback: ['span', ''],\n Breadcrumb: ['nav', 'breadcrumb'],\n BreadcrumbList: ['ol', ''],\n BreadcrumbItem: ['li', ''],\n BreadcrumbLink: ['a', ''],\n BreadcrumbSeparator: ['li', ''],\n ButtonGroup: ['div', 'button-group'],\n Field: ['div', 'field'],\n FieldLabel: ['label', 'label'],\n FieldDescription: ['p', ''],\n FieldError: ['p', ''],\n Label: ['label', 'label'],\n Input: ['input', 'input'],\n Textarea: ['textarea', 'textarea'],\n NativeSelect: ['select', 'select'],\n InputGroup: ['div', 'input-group'],\n InputGroupAddon: ['div', ''],\n Empty: ['div', 'empty'],\n EmptyHeader: ['header', ''],\n EmptyTitle: ['h3', ''],\n EmptyDescription: ['p', ''],\n EmptyContent: ['section', ''],\n Item: ['div', 'item'],\n ItemContent: ['section', ''],\n ItemTitle: ['h3', ''],\n ItemDescription: ['p', ''],\n ItemActions: ['div', ''],\n Kbd: ['kbd', 'kbd'],\n ScrollArea: ['div', 'scrollbar'],\n Skeleton: ['div', 'skeleton'],\n Spinner: ['span', 'bc-spinner'],\n Separator: ['hr', ''],\n Table: ['table', 'table'],\n TableHeader: ['thead', ''],\n TableBody: ['tbody', ''],\n TableFooter: ['tfoot', ''],\n TableRow: ['tr', ''],\n TableHead: ['th', ''],\n TableCell: ['td', ''],\n TableCaption: ['caption', ''],\n DialogHeader: ['header', ''],\n DialogTitle: ['h2', ''],\n DialogDescription: ['p', ''],\n DialogContent: ['section', ''],\n DialogFooter: ['footer', ''],\n SidebarHeader: ['header', ''],\n SidebarContent: ['section', ''],\n SidebarFooter: ['footer', ''],\n SidebarGroup: ['section', ''],\n SidebarItem: ['a', ''],\n} as const;\nexport type PrimitiveName = keyof typeof primitiveDefinitions;\nexport { attachWidget } from './widgets';\n","import { primitive } from '../primitives';\n\nexport const ChartRoot = /* @__PURE__ */ primitive('ChartRoot', 'canvas');\n","import { primitive } from '../primitives';\n\nexport const SelectRoot = /* @__PURE__ */ primitive('SelectRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const ComboboxRoot = /* @__PURE__ */ primitive('ComboboxRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const DropdownMenuRoot = /* @__PURE__ */ primitive('DropdownMenuRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const PopoverRoot = /* @__PURE__ */ primitive('PopoverRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const TabsRoot = /* @__PURE__ */ primitive('TabsRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const AccordionRoot = /* @__PURE__ */ primitive('AccordionRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const CommandRoot = /* @__PURE__ */ primitive('CommandRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const SidebarRoot = /* @__PURE__ */ primitive('SidebarRoot', 'div');\n","import { primitive } from '../primitives';\n\nexport const DialogRoot = /* @__PURE__ */ primitive('DialogRoot', 'dialog');\n","import { primitive } from '../primitives';\n\nexport const DrawerRoot = /* @__PURE__ */ primitive('DrawerRoot', 'dialog');\n","import { primitive } from '../primitives';\n\nexport const AlertDialogRoot = /* @__PURE__ */ primitive('AlertDialogRoot', 'dialog');\n","import { primitive } from '../primitives';\n\nexport const Button = /* @__PURE__ */ primitive('Button', 'button');\n","import { primitive } from '../primitives';\n\nexport const Badge = /* @__PURE__ */ primitive('Badge', 'span');\n","import { primitive } from '../primitives';\n\nexport const Card = /* @__PURE__ */ primitive('Card', 'article');\n","import { primitive } from '../primitives';\n\nexport const CardHeader = /* @__PURE__ */ primitive('CardHeader', 'header');\n","import { primitive } from '../primitives';\n\nexport const CardTitle = /* @__PURE__ */ primitive('CardTitle', 'h3');\n","import { primitive } from '../primitives';\n\nexport const CardDescription = /* @__PURE__ */ primitive('CardDescription', 'p');\n","import { primitive } from '../primitives';\n\nexport const CardContent = /* @__PURE__ */ primitive('CardContent', 'section');\n","import { primitive } from '../primitives';\n\nexport const CardFooter = /* @__PURE__ */ primitive('CardFooter', 'footer');\n","import { primitive } from '../primitives';\n\nexport const CardAction = /* @__PURE__ */ primitive('CardAction', 'div');\n","import { primitive } from '../primitives';\n\nexport const Alert = /* @__PURE__ */ primitive('Alert', 'div');\n","import { primitive } from '../primitives';\n\nexport const AlertTitle = /* @__PURE__ */ primitive('AlertTitle', 'h2');\n","import { primitive } from '../primitives';\n\nexport const AlertDescription = /* @__PURE__ */ primitive('AlertDescription', 'section');\n","import { primitive } from '../primitives';\n\nexport const Avatar = /* @__PURE__ */ primitive('Avatar', 'span');\n","import { primitive } from '../primitives';\n\nexport const AvatarImage = /* @__PURE__ */ primitive('AvatarImage', 'img');\n","import { primitive } from '../primitives';\n\nexport const AvatarFallback = /* @__PURE__ */ primitive('AvatarFallback', 'span');\n","import { primitive } from '../primitives';\n\nexport const Breadcrumb = /* @__PURE__ */ primitive('Breadcrumb', 'nav');\n","import { primitive } from '../primitives';\n\nexport const BreadcrumbList = /* @__PURE__ */ primitive('BreadcrumbList', 'ol');\n","import { primitive } from '../primitives';\n\nexport const BreadcrumbItem = /* @__PURE__ */ primitive('BreadcrumbItem', 'li');\n","import { primitive } from '../primitives';\n\nexport const BreadcrumbLink = /* @__PURE__ */ primitive('BreadcrumbLink', 'a');\n","import { primitive } from '../primitives';\n\nexport const BreadcrumbSeparator = /* @__PURE__ */ primitive('BreadcrumbSeparator', 'li');\n","import { primitive } from '../primitives';\n\nexport const ButtonGroup = /* @__PURE__ */ primitive('ButtonGroup', 'div');\n","import { primitive } from '../primitives';\n\nexport const Field = /* @__PURE__ */ primitive('Field', 'div');\n","import { primitive } from '../primitives';\n\nexport const FieldLabel = /* @__PURE__ */ primitive('FieldLabel', 'label');\n","import { primitive } from '../primitives';\n\nexport const FieldDescription = /* @__PURE__ */ primitive('FieldDescription', 'p');\n","import { primitive } from '../primitives';\n\nexport const FieldError = /* @__PURE__ */ primitive('FieldError', 'p');\n","import { primitive } from '../primitives';\n\nexport const Label = /* @__PURE__ */ primitive('Label', 'label');\n","import { primitive } from '../primitives';\n\nexport const Input = /* @__PURE__ */ primitive('Input', 'input');\n","import { primitive } from '../primitives';\n\nexport const Textarea = /* @__PURE__ */ primitive('Textarea', 'textarea');\n","import { primitive } from '../primitives';\n\nexport const NativeSelect = /* @__PURE__ */ primitive('NativeSelect', 'select');\n","import { primitive } from '../primitives';\n\nexport const InputGroup = /* @__PURE__ */ primitive('InputGroup', 'div');\n","import { primitive } from '../primitives';\n\nexport const InputGroupAddon = /* @__PURE__ */ primitive('InputGroupAddon', 'div');\n","import { primitive } from '../primitives';\n\nexport const Empty = /* @__PURE__ */ primitive('Empty', 'div');\n","import { primitive } from '../primitives';\n\nexport const EmptyHeader = /* @__PURE__ */ primitive('EmptyHeader', 'header');\n","import { primitive } from '../primitives';\n\nexport const EmptyTitle = /* @__PURE__ */ primitive('EmptyTitle', 'h3');\n","import { primitive } from '../primitives';\n\nexport const EmptyDescription = /* @__PURE__ */ primitive('EmptyDescription', 'p');\n","import { primitive } from '../primitives';\n\nexport const EmptyContent = /* @__PURE__ */ primitive('EmptyContent', 'section');\n","import { primitive } from '../primitives';\n\nexport const Item = /* @__PURE__ */ primitive('Item', 'div');\n","import { primitive } from '../primitives';\n\nexport const ItemContent = /* @__PURE__ */ primitive('ItemContent', 'section');\n","import { primitive } from '../primitives';\n\nexport const ItemTitle = /* @__PURE__ */ primitive('ItemTitle', 'h3');\n","import { primitive } from '../primitives';\n\nexport const ItemDescription = /* @__PURE__ */ primitive('ItemDescription', 'p');\n","import { primitive } from '../primitives';\n\nexport const ItemActions = /* @__PURE__ */ primitive('ItemActions', 'div');\n","import { primitive } from '../primitives';\n\nexport const Kbd = /* @__PURE__ */ primitive('Kbd', 'kbd');\n","import { primitive } from '../primitives';\n\nexport const ScrollArea = /* @__PURE__ */ primitive('ScrollArea', 'div');\n","import { primitive } from '../primitives';\n\nexport const Skeleton = /* @__PURE__ */ primitive('Skeleton', 'div');\n","import { primitive } from '../primitives';\n\nexport const Spinner = /* @__PURE__ */ primitive('Spinner', 'span');\n","import { primitive } from '../primitives';\n\nexport const Separator = /* @__PURE__ */ primitive('Separator', 'hr');\n","import { primitive } from '../primitives';\n\nexport const Table = /* @__PURE__ */ primitive('Table', 'table');\n","import { primitive } from '../primitives';\n\nexport const TableHeader = /* @__PURE__ */ primitive('TableHeader', 'thead');\n","import { primitive } from '../primitives';\n\nexport const TableBody = /* @__PURE__ */ primitive('TableBody', 'tbody');\n","import { primitive } from '../primitives';\n\nexport const TableFooter = /* @__PURE__ */ primitive('TableFooter', 'tfoot');\n","import { primitive } from '../primitives';\n\nexport const TableRow = /* @__PURE__ */ primitive('TableRow', 'tr');\n","import { primitive } from '../primitives';\n\nexport const TableHead = /* @__PURE__ */ primitive('TableHead', 'th');\n","import { primitive } from '../primitives';\n\nexport const TableCell = /* @__PURE__ */ primitive('TableCell', 'td');\n","import { primitive } from '../primitives';\n\nexport const TableCaption = /* @__PURE__ */ primitive('TableCaption', 'caption');\n","import { primitive } from '../primitives';\n\nexport const DialogHeader = /* @__PURE__ */ primitive('DialogHeader', 'header');\n","import { primitive } from '../primitives';\n\nexport const DialogTitle = /* @__PURE__ */ primitive('DialogTitle', 'h2');\n","import { primitive } from '../primitives';\n\nexport const DialogDescription = /* @__PURE__ */ primitive('DialogDescription', 'p');\n","import { primitive } from '../primitives';\n\nexport const DialogContent = /* @__PURE__ */ primitive('DialogContent', 'section');\n","import { primitive } from '../primitives';\n\nexport const DialogFooter = /* @__PURE__ */ primitive('DialogFooter', 'footer');\n","import { primitive } from '../primitives';\n\nexport const SidebarHeader = /* @__PURE__ */ primitive('SidebarHeader', 'header');\n","import { primitive } from '../primitives';\n\nexport const SidebarContent = /* @__PURE__ */ primitive('SidebarContent', 'section');\n","import { primitive } from '../primitives';\n\nexport const SidebarFooter = /* @__PURE__ */ primitive('SidebarFooter', 'footer');\n","import { primitive } from '../primitives';\n\nexport const SidebarGroup = /* @__PURE__ */ primitive('SidebarGroup', 'section');\n","import { primitive } from '../primitives';\n\nexport const SidebarItem = /* @__PURE__ */ primitive('SidebarItem', 'a');\n","import { defineComponent, h, onMounted, onUnmounted, ref, watchEffect } from 'vue';\nimport { cx, formReset } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\n\nexport const Checkbox = defineComponent({\n name: 'Checkbox',\n inheritAttrs: false,\n props: {\n modelValue: { type: Boolean, default: undefined },\n defaultValue: { type: Boolean, default: false },\n indeterminate: Boolean,\n disabled: Boolean,\n name: String,\n required: Boolean,\n },\n emits: { 'update:modelValue': (_value: boolean) => true },\n setup(props, { emit, attrs, expose }) {\n const element = ref<HTMLInputElement | null>(null),\n value = useValue(\n () => props.modelValue,\n () => props.defaultValue,\n (value) => emit('update:modelValue', value),\n );\n watchEffect(() => {\n if (element.value) element.value.indeterminate = props.indeterminate;\n });\n let cleanup: (() => void) | undefined;\n onMounted(() => {\n cleanup = formReset(element.value!, () => {\n value.value = props.defaultValue;\n });\n });\n onUnmounted(() => cleanup?.());\n expose({\n focus: () => element.value?.focus(),\n get el() {\n return element.value;\n },\n });\n return () =>\n h('input', {\n ...attrs,\n ref: element,\n class: cx('input', attrs.class as string),\n type: 'checkbox',\n checked: value.value,\n disabled: props.disabled,\n name: props.name,\n required: props.required,\n onChange: (event: Event) => {\n value.value = (event.target as HTMLInputElement).checked;\n (attrs.onChange as ((event: Event) => void) | undefined)?.(event);\n },\n });\n },\n});\n","import { computed, shallowRef, watchEffect, type Ref } from 'vue';\nimport { attachFloating, dismissableLayer, type FloatingOptions } from '@nuykon/basecoat-core';\nexport function useValue<T>(\n getValue: () => T | undefined,\n getDefault: () => T,\n change: (value: T) => void,\n) {\n const internal = shallowRef<T>(getDefault());\n return computed({\n get: () => (getValue() === undefined ? internal.value : getValue()!),\n set: (value: T) => {\n if (Object.is(value, getValue() === undefined ? internal.value : getValue())) return;\n if (getValue() === undefined) internal.value = value;\n change(value);\n },\n });\n}\nexport function useFloating(\n open: Ref<boolean>,\n anchor: Ref<HTMLElement | null>,\n popup: Ref<HTMLElement | null>,\n close: (restore: boolean) => void,\n options: () => FloatingOptions = () => ({}),\n) {\n watchEffect(\n (cleanup) => {\n if (!open.value || !anchor.value || !popup.value) return;\n const trigger = anchor.value,\n content = popup.value;\n const position = attachFloating(trigger, content, options());\n const layer = dismissableLayer(trigger.ownerDocument, {\n elements: () => [trigger, content],\n dismiss: (reason) => close(reason === 'escape'),\n });\n cleanup(() => {\n layer();\n position();\n });\n },\n { flush: 'post' },\n );\n}\n","import { defineComponent, h } from 'vue';\nimport { Checkbox } from './Checkbox';\n\nexport const Switch = defineComponent({\n name: 'Switch',\n inheritAttrs: false,\n setup:\n (_, { attrs, slots }) =>\n () =>\n h(Checkbox, { ...attrs, role: 'switch' }, slots),\n});\n","import { defineComponent, h, onMounted, onUnmounted, ref } from 'vue';\nimport { cx, formReset, percentage } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\n\nexport const Slider = defineComponent({\n name: 'Slider',\n inheritAttrs: false,\n props: {\n modelValue: Number,\n defaultValue: { type: Number, default: 0 },\n min: { type: Number, default: 0 },\n max: { type: Number, default: 100 },\n step: { type: Number, default: 1 },\n disabled: Boolean,\n name: String,\n },\n emits: { 'update:modelValue': (_value: number) => true },\n setup(props, { emit, attrs }) {\n const value = useValue(\n () => props.modelValue,\n () => props.defaultValue,\n (value) => emit('update:modelValue', value),\n ),\n element = ref<HTMLInputElement | null>(null);\n let cleanup: (() => void) | undefined;\n onMounted(() => {\n cleanup = formReset(element.value!, () => {\n value.value = props.defaultValue;\n });\n });\n onUnmounted(() => cleanup?.());\n return () =>\n h('input', {\n ...attrs,\n ref: element,\n class: cx('input', attrs.class as string),\n type: 'range',\n value: value.value,\n min: props.min,\n max: props.max,\n step: props.step,\n disabled: props.disabled,\n name: props.name,\n style: [\n attrs.style,\n { '--slider-value': `${percentage(value.value, props.min, props.max)}%` },\n ],\n onInput: (event: Event) => {\n value.value = (event.target as HTMLInputElement).valueAsNumber;\n },\n });\n },\n});\n","import { defineComponent, h, onMounted, onUnmounted, ref, useId } from 'vue';\nimport { cx, formReset } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\nimport { optionsProp } from '../shared/optionProps';\n\nexport const RadioGroup = defineComponent({\n name: 'RadioGroup',\n inheritAttrs: false,\n props: {\n options: optionsProp,\n modelValue: String,\n defaultValue: { type: String, default: '' },\n name: String,\n disabled: Boolean,\n required: Boolean,\n },\n emits: { 'update:modelValue': (_value: string) => true },\n setup(props, { emit, attrs }) {\n const value = useValue(\n () => props.modelValue,\n () => props.defaultValue,\n (value) => emit('update:modelValue', value),\n ),\n id = useId(),\n root = ref<HTMLElement | null>(null);\n let cleanup: (() => void) | undefined;\n onMounted(() => {\n cleanup = formReset(root.value!, () => {\n value.value = props.defaultValue;\n });\n });\n onUnmounted(() => cleanup?.());\n return () =>\n h(\n 'div',\n {\n ...attrs,\n ref: root,\n role: 'radiogroup',\n class: cx('bc-radio-group', attrs.class as string),\n },\n props.options.map((option) =>\n h('label', { key: option.value }, [\n h('input', {\n type: 'radio',\n class: 'input',\n name: props.name ?? id,\n value: option.value,\n checked: value.value === option.value,\n disabled: props.disabled || option.disabled,\n required: props.required,\n onChange: () => {\n value.value = option.value;\n },\n }),\n ` ${option.label}`,\n ]),\n ),\n );\n },\n});\n","import type { PropType } from 'vue';\nimport type { Option } from '@nuykon/basecoat-core';\n\nexport const optionsProp = {\n type: Array as PropType<readonly Option[]>,\n required: true,\n} as const;\n","import { defineComponent, h } from 'vue';\nimport { percentage } from '@nuykon/basecoat-core';\n\nexport const Progress = defineComponent({\n name: 'Progress',\n props: { value: Number, max: { type: Number, default: 100 } },\n setup: (props) => () =>\n h(\n 'div',\n {\n class: 'progress',\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': props.max,\n 'aria-valuenow': props.value,\n 'aria-busy': props.value === undefined,\n },\n h('span', {\n style: {\n width: `${props.value === undefined ? 100 : percentage(props.value, 0, props.max)}%`,\n },\n }),\n ),\n});\n","import { computed, defineComponent, h, ref, useId, type PropType } from 'vue';\nimport { nextIndex } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\nimport { optionsProp } from '../shared/optionProps';\n\nexport const Tabs = defineComponent({\n name: 'Tabs',\n props: {\n items: optionsProp,\n modelValue: String,\n defaultValue: String,\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: 'horizontal' },\n activation: { type: String as PropType<'automatic' | 'manual'>, default: 'automatic' },\n variant: String,\n keepMounted: Boolean,\n },\n emits: { 'update:modelValue': (_value: string) => true },\n setup(props, { emit, slots }) {\n const id = useId(),\n elements: (HTMLElement | null)[] = [],\n value = useValue(\n () => props.modelValue,\n () => props.defaultValue ?? props.items.find((item) => !item.disabled)?.value ?? '',\n (value) => emit('update:modelValue', value),\n );\n const selected = computed(() => {\n const index = props.items.findIndex((item) => item.value === value.value && !item.disabled);\n return index >= 0 ? index : props.items.findIndex((item) => !item.disabled);\n });\n return () =>\n h('div', { class: 'tabs' }, [\n h(\n 'div',\n { role: 'tablist', 'aria-orientation': props.orientation, 'data-variant': props.variant },\n props.items.map((item, index) =>\n h(\n 'button',\n {\n key: item.value,\n ref: (el: unknown) => {\n elements[index] = el as HTMLElement;\n },\n type: 'button',\n role: 'tab',\n id: `${id}-tab-${index}`,\n 'aria-controls': `${id}-panel-${index}`,\n 'aria-selected': selected.value === index,\n disabled: item.disabled,\n tabindex: selected.value === index ? 0 : -1,\n onClick: () => {\n value.value = item.value;\n },\n onKeydown: (event: KeyboardEvent) => {\n const arrows =\n props.orientation === 'vertical'\n ? ['ArrowUp', 'ArrowDown']\n : ['ArrowLeft', 'ArrowRight'];\n if (!arrows.includes(event.key) && !['Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n let key = event.key;\n if (\n props.orientation === 'horizontal' &&\n (event.target as HTMLElement).closest('[dir=\"rtl\"]')\n )\n key =\n key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n const next = nextIndex(props.items, index, key);\n elements[next]?.focus();\n if (props.activation === 'automatic' && next >= 0)\n value.value = props.items[next].value;\n },\n },\n item.label,\n ),\n ),\n ),\n ...props.items.map((item, index) =>\n h(\n 'div',\n {\n key: item.value,\n id: `${id}-panel-${index}`,\n role: 'tabpanel',\n 'aria-labelledby': `${id}-tab-${index}`,\n tabindex: 0,\n hidden: selected.value !== index,\n },\n props.keepMounted || selected.value === index ? slots.panel?.({ item }) : undefined,\n ),\n ),\n ]);\n },\n});\n","import { defineComponent, h, ref, type PropType } from 'vue';\nimport { nextIndex } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\nimport { optionsProp } from '../shared/optionProps';\n\nexport const Accordion = defineComponent({\n name: 'Accordion',\n props: {\n items: optionsProp,\n modelValue: Array as PropType<string[]>,\n defaultValue: { type: Array as PropType<string[]>, default: () => [] },\n multiple: Boolean,\n },\n emits: { 'update:modelValue': (_value: string[]) => true },\n setup(props, { emit, slots }) {\n const value = useValue(\n () => props.modelValue,\n () => props.defaultValue,\n (value) => emit('update:modelValue', value),\n ),\n elements: (HTMLElement | null)[] = [];\n return () =>\n h(\n 'div',\n { class: 'accordion' },\n props.items.map((item, index) =>\n h(\n 'details',\n {\n key: item.value,\n open: value.value.includes(item.value),\n 'aria-disabled': item.disabled || undefined,\n },\n [\n h(\n 'summary',\n {\n ref: (el: unknown) => {\n elements[index] = el as HTMLElement;\n },\n tabindex: item.disabled ? -1 : 0,\n 'aria-disabled': item.disabled || undefined,\n onClick: (event: Event) => {\n event.preventDefault();\n if (!item.disabled)\n value.value = value.value.includes(item.value)\n ? value.value.filter((key: string) => key !== item.value)\n : props.multiple\n ? [...value.value, item.value]\n : [item.value];\n },\n onKeydown: (event: KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n elements[nextIndex(props.items, index, event.key)]?.focus();\n }\n },\n },\n [item.label, h('span', { 'aria-hidden': true }, '⌄')],\n ),\n h('section', slots.panel?.({ item })),\n ],\n ),\n ),\n );\n },\n});\n","import { defineComponent, h, useId } from 'vue';\nimport { useValue } from '../hooks';\n\nexport const Collapsible = defineComponent({\n name: 'Collapsible',\n props: {\n open: { type: Boolean, default: undefined },\n defaultOpen: Boolean,\n trigger: { type: String, default: 'Toggle' },\n },\n emits: { 'update:open': (_value: boolean) => true },\n setup(props, { emit, slots }) {\n const id = useId(),\n value = useValue(\n () => props.open,\n () => props.defaultOpen,\n (value) => emit('update:open', value),\n );\n return () =>\n h('div', { class: 'collapsible' }, [\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'ghost',\n 'aria-expanded': value.value,\n 'aria-controls': id,\n onClick: () => {\n value.value = !value.value;\n },\n },\n slots.trigger?.() ?? props.trigger,\n ),\n h('div', { id, hidden: !value.value }, slots.default?.()),\n ]);\n },\n});\n","import { defineComponent, h, nextTick, ref, useId, watchEffect, type PropType } from 'vue';\nimport { lockScroll, type Side } from '@nuykon/basecoat-core';\nimport { useValue } from '../hooks';\n\nexport const Dialog = defineComponent({\n name: 'Dialog',\n props: {\n open: { type: Boolean, default: undefined },\n defaultOpen: Boolean,\n trigger: String,\n title: { type: String, required: true },\n description: String,\n closeOnOutside: { type: Boolean, default: true },\n closeOnEscape: { type: Boolean, default: true },\n closeLabel: { type: String, default: 'Close' },\n kind: { type: String as PropType<'dialog' | 'drawer' | 'alert-dialog'>, default: 'dialog' },\n side: { type: String as PropType<Side>, default: 'right' },\n },\n emits: { 'update:open': (_value: boolean) => true },\n setup(props, { emit, slots }) {\n const element = ref<HTMLDialogElement | null>(null),\n id = useId(),\n open = useValue(\n () => props.open,\n () => props.defaultOpen,\n (value) => emit('update:open', value),\n );\n watchEffect(\n (cleanup) => {\n const dialog = element.value;\n if (!dialog) return;\n if (!open.value) {\n if (dialog.open) dialog.close();\n return;\n }\n if (!dialog.open) dialog.showModal();\n const unlock = lockScroll(dialog.ownerDocument);\n cleanup(() => {\n unlock();\n if (dialog.open) dialog.close();\n });\n },\n { flush: 'post' },\n );\n return () => [\n props.trigger !== undefined || slots.trigger\n ? h(\n 'button',\n {\n class: 'btn',\n type: 'button',\n 'data-variant': 'outline',\n onClick: () => {\n open.value = true;\n },\n },\n slots.trigger?.() ?? props.trigger,\n )\n : null,\n h(\n 'dialog',\n {\n ref: element,\n class: props.kind,\n role: props.kind === 'alert-dialog' ? 'alertdialog' : undefined,\n 'data-side': props.kind === 'drawer' ? props.side : undefined,\n 'aria-labelledby': `${id}-title`,\n 'aria-describedby': props.description ? `${id}-description` : undefined,\n onCancel: (event: Event) => {\n event.preventDefault();\n if (props.closeOnEscape) open.value = false;\n },\n onClose: () => {\n if (open.value) {\n open.value = false;\n void nextTick(() => {\n if (open.value && element.value?.isConnected && !element.value.open)\n element.value.showModal();\n });\n }\n },\n onClick: (event: Event) => {\n if (\n props.closeOnOutside &&\n props.kind !== 'alert-dialog' &&\n event.target === event.currentTarget\n )\n open.value = false;\n },\n },\n h('div', { class: props.kind === 'drawer' ? 'bc-drawer-surface' : 'bc-dialog-surface' }, [\n h('header', [\n h('h2', { id: `${id}-title` }, props.title),\n props.description ? h('p', { id: `${id}-description` }, props.description) : null,\n ]),\n h('section', slots.default?.()),\n slots.footer ? h('footer', slots.footer()) : null,\n props.kind !== 'alert-dialog'\n ? h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'ghost',\n 'data-size': 'icon-sm',\n 'aria-label': props.closeLabel,\n onClick: () => {\n open.value = false;\n },\n },\n '×',\n )\n : null,\n ]),\n ),\n ];\n },\n});\n","import { defineComponent, h } from 'vue';\nimport { Dialog } from './Dialog';\n\nexport const AlertDialog = defineComponent({\n name: 'AlertDialog',\n inheritAttrs: false,\n setup:\n (_, { attrs, slots }) =>\n () =>\n h(\n Dialog,\n { ...attrs, title: attrs.title as string, kind: 'alert-dialog', closeOnOutside: false },\n slots,\n ),\n});\n","import { defineComponent, h } from 'vue';\nimport { Dialog } from './Dialog';\n\nexport const Drawer = defineComponent({\n name: 'Drawer',\n inheritAttrs: false,\n setup:\n (_, { attrs, slots }) =>\n () =>\n h(Dialog, { ...attrs, title: attrs.title as string, kind: 'drawer' }, slots),\n});\n","import { defineComponent, h, nextTick, ref, useId, watch, type PropType } from 'vue';\nimport { focusFirst, type Side, type Align } from '@nuykon/basecoat-core';\nimport { useFloating, useValue } from '../hooks';\n\nexport const Popover = defineComponent({\n name: 'Popover',\n props: {\n open: { type: Boolean, default: undefined },\n defaultOpen: Boolean,\n trigger: { type: String, default: 'Open' },\n label: { type: String, default: 'Popover' },\n side: String as PropType<Side>,\n align: String as PropType<Align>,\n },\n emits: { 'update:open': (_value: boolean) => true },\n setup(props, { emit, slots }) {\n const id = useId(),\n anchor = ref<HTMLElement | null>(null),\n popup = ref<HTMLElement | null>(null),\n open = useValue(\n () => props.open,\n () => props.defaultOpen,\n (value) => emit('update:open', value),\n );\n useFloating(\n open,\n anchor,\n popup,\n (restore) => {\n open.value = false;\n if (restore) anchor.value?.focus();\n },\n () => ({ side: props.side, align: props.align }),\n );\n watch(open, (value) => {\n if (value)\n void nextTick(() => {\n if (popup.value) focusFirst(popup.value);\n });\n });\n return () =>\n h('div', { class: 'popover' }, [\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n ref: anchor,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': open.value,\n 'aria-controls': id,\n onClick: () => {\n open.value = !open.value;\n },\n },\n slots.trigger?.() ?? props.trigger,\n ),\n open.value\n ? h(\n 'div',\n {\n ref: popup,\n id,\n 'data-popover': '',\n popover: 'manual',\n class: 'bc-floating',\n role: 'dialog',\n 'aria-label': props.label,\n tabindex: -1,\n },\n slots.default?.(),\n )\n : null,\n ]);\n },\n});\n","import { defineComponent, h, onUnmounted, ref, useId, type PropType } from 'vue';\nimport { type Side } from '@nuykon/basecoat-core';\nimport { useFloating } from '../hooks';\n\nexport const Tooltip = defineComponent({\n name: 'Tooltip',\n props: {\n content: { type: String, required: true },\n delay: { type: Number, default: 300 },\n side: { type: String as PropType<Side>, default: 'top' },\n },\n setup(props, { slots }) {\n const open = ref(false),\n anchor = ref<HTMLElement | null>(null),\n popup = ref<HTMLElement | null>(null),\n id = useId();\n let timer: ReturnType<typeof setTimeout> | undefined;\n useFloating(\n open,\n anchor,\n popup,\n () => {\n open.value = false;\n },\n () => ({ side: props.side, align: 'center' }),\n );\n const close = () => {\n clearTimeout(timer);\n open.value = false;\n };\n onUnmounted(close);\n return () =>\n h(\n 'span',\n {\n ref: anchor,\n tabindex: 0,\n 'aria-describedby': open.value ? id : undefined,\n onPointerenter: () => {\n timer = setTimeout(() => {\n open.value = true;\n }, props.delay);\n },\n onPointerleave: close,\n onFocusin: () => {\n open.value = true;\n },\n onFocusout: close,\n },\n [\n slots.default?.(),\n open.value\n ? h(\n 'div',\n {\n ref: popup,\n id,\n role: 'tooltip',\n popover: 'manual',\n class: 'bc-floating tooltip',\n },\n props.content,\n )\n : null,\n ],\n );\n },\n});\n","import {\n computed,\n defineComponent,\n h,\n nextTick,\n onMounted,\n onUnmounted,\n ref,\n useId,\n watch,\n type PropType,\n} from 'vue';\nimport {\n createTypeahead,\n formReset,\n scrollWithin,\n nextIndex,\n type Option,\n} from '@nuykon/basecoat-core';\nimport { useFloating, useValue } from '../hooks';\n\nexport type Selection = string | string[];\n\nexport const Select = defineComponent({\n name: 'Select',\n props: {\n options: { type: Array as PropType<readonly Option[]>, required: true },\n modelValue: [String, Array] as PropType<Selection>,\n defaultValue: [String, Array] as PropType<Selection>,\n multiple: Boolean,\n disabled: Boolean,\n required: Boolean,\n name: String,\n label: { type: String, required: true },\n placeholder: { type: String, default: 'Select…' },\n searchable: Boolean,\n searchPlaceholder: { type: String, default: 'Search…' },\n emptyLabel: { type: String, default: 'No results' },\n },\n emits: { 'update:modelValue': (_value: Selection) => true },\n setup(props, { emit }) {\n const current = useValue(\n () => props.modelValue,\n () => props.defaultValue ?? (props.multiple ? [] : ''),\n (value) => emit('update:modelValue', value),\n );\n const open = ref(false),\n query = ref(''),\n active = ref(-1),\n id = useId(),\n anchor = ref<HTMLElement | null>(null),\n popup = ref<HTMLElement | null>(null),\n list = ref<HTMLElement | null>(null),\n search = ref<HTMLInputElement | null>(null),\n native = ref<HTMLSelectElement | null>(null),\n typeahead = createTypeahead();\n const visible = computed(() =>\n props.options.filter(\n (option) =>\n !props.searchable ||\n option.label.toLocaleLowerCase().includes(query.value.toLocaleLowerCase()),\n ),\n ),\n selected = computed(() => (Array.isArray(current.value) ? current.value : [current.value]));\n const close = (restore: boolean) => {\n open.value = false;\n query.value = '';\n if (restore) anchor.value?.focus();\n };\n useFloating(open, anchor, popup, close, () => ({ matchWidth: true }));\n watch(\n () => props.disabled,\n (disabled) => {\n if (disabled) close(false);\n },\n );\n watch([open, query], () => {\n if (open.value) {\n active.value = nextIndex(visible.value, -1, 'Home');\n void nextTick(() => (search.value ?? list.value)?.focus());\n }\n });\n watch(\n active,\n () =>\n void nextTick(() => {\n const item = list.value?.querySelector<HTMLElement>(`[data-index=\"${active.value}\"]`);\n if (list.value && item) scrollWithin(list.value, item);\n }),\n );\n let cleanup: (() => void) | undefined;\n onMounted(() => {\n cleanup = formReset(native.value!, () => {\n current.value = props.defaultValue ?? (props.multiple ? [] : '');\n });\n });\n onUnmounted(() => cleanup?.());\n const choose = (index: number) => {\n const option = visible.value[index];\n if (!option || option.disabled) return;\n current.value = props.multiple\n ? selected.value.includes(option.value)\n ? selected.value.filter((value) => value !== option.value)\n : [...selected.value.filter(Boolean), option.value]\n : option.value;\n if (!props.multiple) close(true);\n };\n const keyboard = (event: KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n active.value = nextIndex(visible.value, active.value, event.key);\n } else if (event.key === 'Enter' || (!props.searchable && event.key === ' ')) {\n event.preventDefault();\n choose(active.value);\n } else if (event.key === 'Tab') close(false);\n else if (\n !props.searchable &&\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n ) {\n event.preventDefault();\n active.value = typeahead(event.key, visible.value, active.value);\n }\n };\n return () =>\n h('div', { class: props.searchable ? 'combobox' : 'select' }, [\n h(\n 'button',\n {\n ref: anchor,\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n disabled: props.disabled,\n role: 'combobox',\n 'aria-label': props.label,\n 'aria-haspopup': 'listbox',\n 'aria-expanded': open.value,\n 'aria-controls': `${id}-list`,\n 'aria-required': props.required,\n onClick: () => {\n open.value = !open.value;\n },\n onKeydown: (event: KeyboardEvent) => {\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n open.value = true;\n }\n },\n },\n [\n h(\n 'span',\n props.options\n .filter((option) => selected.value.includes(option.value))\n .map((option) => option.label)\n .join(', ') || props.placeholder,\n ),\n h('span', { 'aria-hidden': true }, '⌄'),\n ],\n ),\n open.value\n ? h('div', { ref: popup, 'data-popover': '', popover: 'manual', class: 'bc-floating' }, [\n props.searchable\n ? h('input', {\n ref: search,\n class: 'input bc-search',\n value: query.value,\n role: 'combobox',\n 'aria-label': props.searchPlaceholder,\n 'aria-autocomplete': 'list',\n 'aria-expanded': true,\n 'aria-controls': `${id}-list`,\n 'aria-activedescendant':\n active.value >= 0 ? `${id}-option-${active.value}` : undefined,\n placeholder: props.searchPlaceholder,\n onInput: (event: Event) => {\n query.value = (event.target as HTMLInputElement).value;\n },\n onKeydown: keyboard,\n })\n : null,\n h(\n 'div',\n {\n ref: list,\n id: `${id}-list`,\n role: 'listbox',\n tabindex: -1,\n 'aria-label': props.label,\n 'aria-multiselectable': props.multiple || undefined,\n 'aria-activedescendant':\n active.value >= 0 ? `${id}-option-${active.value}` : undefined,\n 'data-empty': props.emptyLabel,\n onKeydown: props.searchable ? undefined : keyboard,\n },\n visible.value.map((option, index) =>\n h(\n 'div',\n {\n key: option.value,\n id: `${id}-option-${index}`,\n 'data-index': index,\n 'data-value': option.value,\n role: 'option',\n 'aria-selected': selected.value.includes(option.value),\n 'aria-disabled': option.disabled || undefined,\n class: active.value === index ? 'active' : undefined,\n onPointermove: (event: PointerEvent) => {\n if ((event.movementX || event.movementY) && !option.disabled)\n active.value = index;\n },\n onPointerdown: (event: Event) => event.preventDefault(),\n onClick: () => choose(index),\n },\n option.label,\n ),\n ),\n ),\n ])\n : null,\n h(\n 'select',\n {\n ref: native,\n class: 'bc-form-control',\n tabindex: -1,\n 'aria-hidden': true,\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n multiple: props.multiple,\n onChange: (event: Event) => {\n const el = event.target as HTMLSelectElement;\n current.value = props.multiple\n ? [...el.selectedOptions].map((option) => option.value)\n : el.value;\n },\n onInvalid: (event: Event) => {\n event.preventDefault();\n anchor.value?.focus();\n anchor.value?.setAttribute('aria-invalid', 'true');\n },\n },\n [\n !props.multiple\n ? h('option', { value: '', selected: current.value === '' }, props.placeholder)\n : null,\n ...props.options.map((option) =>\n h(\n 'option',\n {\n key: option.value,\n value: option.value,\n selected: selected.value.includes(option.value),\n disabled: option.disabled,\n },\n option.label,\n ),\n ),\n ],\n ),\n ]);\n },\n});\n","import { defineComponent, h } from 'vue';\nimport { type Option } from '@nuykon/basecoat-core';\nimport { Select } from './Select';\n\nexport const Combobox = defineComponent({\n name: 'Combobox',\n inheritAttrs: false,\n setup:\n (_, { attrs }) =>\n () =>\n h(Select, {\n ...attrs,\n options: attrs.options as Option[],\n label: attrs.label as string,\n searchable: true,\n }),\n});\n","import { computed, defineComponent, h, nextTick, ref, useId, watch, type PropType } from 'vue';\nimport {\n createTypeahead,\n nextIndex,\n type MenuItem,\n type Side,\n type Align,\n} from '@nuykon/basecoat-core';\nimport { useFloating, useValue } from '../hooks';\n\nexport const DropdownMenu = defineComponent({\n name: 'DropdownMenu',\n props: {\n items: { type: Array as PropType<readonly MenuItem[]>, required: true },\n trigger: { type: String, default: 'Menu' },\n label: { type: String, default: 'Menu' },\n open: { type: Boolean, default: undefined },\n defaultOpen: Boolean,\n side: String as PropType<Side>,\n align: String as PropType<Align>,\n },\n emits: { 'update:open': (_value: boolean) => true, select: (_value: string) => true },\n setup(props, { emit, slots }) {\n const id = useId(),\n anchor = ref<HTMLElement | null>(null),\n popup = ref<HTMLElement | null>(null),\n open = useValue(\n () => props.open,\n () => props.defaultOpen,\n (value) => emit('update:open', value),\n ),\n elements: (HTMLElement | null)[] = [],\n typeahead = createTypeahead();\n let initial = 'Home';\n const enabled = computed(() =>\n props.items.map((item) => ({ ...item, disabled: item.disabled || item.separator })),\n );\n useFloating(\n open,\n anchor,\n popup,\n (restore) => {\n open.value = false;\n if (restore) anchor.value?.focus();\n },\n () => ({ side: props.side, align: props.align }),\n );\n watch(open, (value) => {\n if (value) void nextTick(() => elements[nextIndex(enabled.value, -1, initial)]?.focus());\n });\n return () =>\n h('div', { class: 'dropdown-menu' }, [\n h(\n 'button',\n {\n ref: anchor,\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n 'aria-haspopup': 'menu',\n 'aria-controls': id,\n 'aria-expanded': open.value,\n onClick: () => {\n initial = 'Home';\n open.value = !open.value;\n },\n onKeydown: (event: KeyboardEvent) => {\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n initial = event.key === 'ArrowUp' ? 'End' : 'Home';\n open.value = true;\n }\n },\n },\n slots.trigger?.() ?? props.trigger,\n ),\n open.value\n ? h(\n 'div',\n { ref: popup, 'data-popover': '', popover: 'manual', class: 'bc-floating' },\n h(\n 'div',\n { id, role: 'menu', 'aria-label': props.label },\n props.items.map((item, index) =>\n item.separator\n ? h('hr', { key: item.value, role: 'separator' })\n : h(\n item.href ? 'a' : 'button',\n {\n key: item.value,\n ref: (el: unknown) => {\n elements[index] = el as HTMLElement;\n },\n href: item.href,\n type: item.href ? undefined : 'button',\n class: 'btn',\n 'data-variant': 'ghost',\n role: 'menuitem',\n tabindex: -1,\n 'aria-disabled': item.disabled || undefined,\n disabled: !item.href && item.disabled,\n onClick: (event: Event) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n item.onSelect?.();\n emit('select', item.value);\n open.value = false;\n anchor.value?.focus();\n },\n onKeydown: (event: KeyboardEvent) => {\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n elements[nextIndex(enabled.value, index, event.key)]?.focus();\n } else if (event.key === 'Tab') open.value = false;\n else if (event.key.length === 1 && !event.ctrlKey && !event.metaKey)\n elements[typeahead(event.key, enabled.value, index)]?.focus();\n },\n },\n [\n item.label,\n item.shortcut ? h('kbd', { 'data-shortcut': '' }, item.shortcut) : null,\n ],\n ),\n ),\n ),\n )\n : null,\n ]);\n },\n});\n","import { computed, defineComponent, h, ref, useId, type PropType } from 'vue';\nimport { nextIndex, type MenuItem } from '@nuykon/basecoat-core';\n\nexport const Command = defineComponent({\n name: 'Command',\n props: {\n items: { type: Array as PropType<readonly MenuItem[]>, required: true },\n label: { type: String, default: 'Commands' },\n placeholder: { type: String, default: 'Search commands…' },\n emptyLabel: { type: String, default: 'No results' },\n },\n emits: { select: (_value: string) => true },\n setup(props, { emit }) {\n const query = ref(''),\n active = ref(0),\n id = useId(),\n visible = computed(() =>\n props.items.filter(\n (item) =>\n !item.separator &&\n item.label.toLocaleLowerCase().includes(query.value.toLocaleLowerCase()),\n ),\n );\n const choose = (index: number) => {\n const item = visible.value[index];\n if (item && !item.disabled) {\n item.onSelect?.();\n emit('select', item.value);\n }\n };\n return () =>\n h('div', { class: 'command' }, [\n h(\n 'header',\n h('input', {\n class: 'input',\n value: query.value,\n role: 'combobox',\n 'aria-label': props.label,\n 'aria-autocomplete': 'list',\n 'aria-expanded': true,\n 'aria-controls': id,\n 'aria-activedescendant': visible.value[active.value]\n ? `${id}-${active.value}`\n : undefined,\n placeholder: props.placeholder,\n onInput: (event: Event) => {\n query.value = (event.target as HTMLInputElement).value;\n active.value = 0;\n },\n onKeydown: (event: KeyboardEvent) => {\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n active.value = nextIndex(visible.value, active.value, event.key);\n } else if (event.key === 'Enter') {\n event.preventDefault();\n choose(active.value);\n }\n },\n }),\n ),\n h(\n 'div',\n { id, role: 'listbox', 'aria-label': props.label },\n visible.value.length\n ? visible.value.map((item, index) =>\n h(\n 'div',\n {\n key: item.value,\n id: `${id}-${index}`,\n role: 'option',\n 'aria-selected': active.value === index,\n 'aria-disabled': item.disabled || undefined,\n class: active.value === index ? 'active' : undefined,\n onPointermove: (event: PointerEvent) => {\n if ((event.movementX || event.movementY) && !item.disabled)\n active.value = index;\n },\n onClick: () => choose(index),\n },\n item.label,\n ),\n )\n : h('p', { role: 'status' }, props.emptyLabel),\n ),\n ]);\n },\n});\n","import { defineComponent, h } from 'vue';\n\nexport const Pagination = defineComponent({\n name: 'Pagination',\n props: {\n page: { type: Number, required: true },\n count: { type: Number, required: true },\n label: { type: String, default: 'Pagination' },\n },\n emits: { 'update:page': (_value: number) => true },\n setup:\n (props, { emit }) =>\n () => {\n const total = Math.max(1, Math.floor(props.count)),\n current = Math.max(1, Math.min(props.page, total));\n return h('nav', { class: 'bc-pagination', 'aria-label': props.label }, [\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n disabled: current === 1,\n 'aria-label': 'Previous page',\n onClick: () => emit('update:page', current - 1),\n },\n '‹',\n ),\n h('span', { 'aria-live': 'polite' }, `${current} / ${total}`),\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n disabled: current === total,\n 'aria-label': 'Next page',\n onClick: () => emit('update:page', current + 1),\n },\n '›',\n ),\n ]);\n },\n});\n","import { defineComponent, h } from 'vue';\nimport { useValue } from '../hooks';\n\nexport const Sidebar = defineComponent({\n name: 'Sidebar',\n props: {\n collapsed: { type: Boolean, default: undefined },\n defaultCollapsed: Boolean,\n label: { type: String, default: 'Navigation' },\n },\n emits: { 'update:collapsed': (_value: boolean) => true },\n setup(props, { emit, slots }) {\n const collapsed = useValue(\n () => props.collapsed,\n () => props.defaultCollapsed,\n (value) => emit('update:collapsed', value),\n );\n return () =>\n h('aside', { class: 'bc-sidebar', 'data-collapsed': collapsed.value }, [\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'ghost',\n 'aria-label': collapsed.value ? 'Expand sidebar' : 'Collapse sidebar',\n 'aria-expanded': !collapsed.value,\n onClick: () => {\n collapsed.value = !collapsed.value;\n },\n },\n '☰',\n ),\n h('nav', { 'aria-label': props.label }, slots.default?.()),\n ]);\n },\n});\n","import { defineComponent, h, type PropType } from 'vue';\nimport { useValue } from '../hooks';\n\nexport const ThemeSwitcher = defineComponent({\n name: 'ThemeSwitcher',\n props: {\n modelValue: String as PropType<'light' | 'dark'>,\n defaultValue: { type: String as PropType<'light' | 'dark'>, default: 'light' },\n label: { type: String, default: 'Dark mode' },\n },\n emits: { 'update:modelValue': (_value: 'light' | 'dark') => true },\n setup(props, { emit }) {\n const value = useValue(\n () => props.modelValue,\n () => props.defaultValue,\n (value) => emit('update:modelValue', value),\n );\n return () =>\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'outline',\n role: 'switch',\n 'aria-label': props.label,\n 'aria-checked': value.value === 'dark',\n onClick: () => {\n value.value = value.value === 'dark' ? 'light' : 'dark';\n },\n },\n value.value === 'dark' ? '☾' : '☀',\n );\n },\n});\n","import { defineComponent, h, type PropType } from 'vue';\nimport type { ToastMessage } from '@nuykon/basecoat-core';\nimport { Toast } from './Toast';\n\nexport const Toaster = defineComponent({\n name: 'Toaster',\n props: {\n messages: { type: Array as PropType<readonly ToastMessage[]>, required: true },\n label: { type: String, default: 'Notifications' },\n },\n emits: { dismiss: (_id: string) => true },\n setup:\n (props, { emit }) =>\n () =>\n h('section', { class: 'toaster', 'aria-label': props.label }, [\n h(\n 'div',\n { class: 'bc-live', role: 'status', 'aria-live': 'polite', 'aria-atomic': true },\n props.messages.at(-1)?.title,\n ),\n ...props.messages.map((message) =>\n h(Toast, { key: message.id, message, onDismiss: () => emit('dismiss', message.id) }),\n ),\n ]),\n});\n","import { defineComponent, h, onMounted, onUnmounted, type PropType } from 'vue';\nimport type { ToastMessage } from '@nuykon/basecoat-core';\n\nexport const Toast = defineComponent({\n name: 'Toast',\n props: { message: { type: Object as PropType<ToastMessage>, required: true } },\n emits: ['dismiss'],\n setup(props, { emit }) {\n let timer: ReturnType<typeof setTimeout> | undefined,\n remaining = props.message.duration ?? 5000,\n started = 0;\n const pause = () => {\n clearTimeout(timer);\n if (started) remaining = Math.max(0, remaining - (Date.now() - started));\n started = 0;\n };\n const resume = () => {\n if ((props.message.duration ?? 5000) <= 0 || started) return;\n started = Date.now();\n timer = setTimeout(() => emit('dismiss'), remaining);\n };\n onMounted(resume);\n onUnmounted(pause);\n return () =>\n h(\n 'div',\n {\n class: 'toast',\n 'data-variant': props.message.variant,\n onPointerenter: pause,\n onPointerleave: resume,\n onFocusin: pause,\n onFocusout: (event: FocusEvent) => {\n if (!(event.currentTarget as HTMLElement).contains(event.relatedTarget as Node))\n resume();\n },\n },\n h('div', { class: 'toast-content' }, [\n h('section', [\n h('h2', props.message.title),\n props.message.description ? h('p', props.message.description) : null,\n ]),\n h(\n 'footer',\n h(\n 'button',\n {\n type: 'button',\n class: 'btn',\n 'data-variant': 'ghost',\n 'data-size': 'icon-sm',\n 'aria-label': 'Dismiss notification',\n onClick: () => emit('dismiss'),\n },\n '×',\n ),\n ),\n ]),\n );\n },\n});\n","import { defineComponent, h, useId, type PropType } from 'vue';\nimport type { ChartPoint } from '@nuykon/basecoat-core';\n\nexport const Chart = defineComponent({\n name: 'Chart',\n props: {\n data: { type: Array as PropType<readonly ChartPoint[]>, required: true },\n label: { type: String, required: true },\n kind: { type: String as PropType<'line' | 'bar'>, default: 'line' },\n },\n setup(props) {\n const id = useId();\n return () => {\n const finite = props.data.map((point) => (Number.isFinite(point.value) ? point.value : 0)),\n min = Math.min(0, ...finite),\n max = Math.max(1, ...finite),\n y = (value: number) => 180 - ((value - min) / (max - min)) * 160;\n return h('figure', { class: 'chart' }, [\n h(\n 'svg',\n { class: 'bc-chart', viewBox: '0 0 400 200', role: 'img', 'aria-labelledby': id },\n [\n h('title', { id }, props.label),\n props.kind === 'line'\n ? h('polyline', {\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 3,\n points: finite\n .map(\n (value, index) =>\n `${20 + (index / Math.max(1, finite.length - 1)) * 360},${y(value)}`,\n )\n .join(' '),\n })\n : finite.map((value, index) =>\n h('rect', {\n x: 20 + (index / Math.max(1, finite.length)) * 360,\n y: Math.min(y(0), y(value)),\n width: Math.max(1, 360 / Math.max(1, finite.length) - 8),\n height: Math.abs(y(value) - y(0)),\n fill: 'currentColor',\n }),\n ),\n ],\n ),\n h('figcaption', props.label),\n h('table', { class: 'bc-live' }, [\n h('caption', props.label),\n h(\n 'tbody',\n props.data.map((point) =>\n h('tr', [h('th', { scope: 'row' }, point.label), h('td', point.value)]),\n ),\n ),\n ]),\n ]);\n };\n },\n});\n"],"mappings":"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","names":["h","cx","x","y","stacks","kind","item","import_vue","import_vue","value","import_vue","import_vue","value","import_vue","value","import_vue","import_vue","value","import_vue","value","import_vue","value","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","value","import_vue","import_vue","import_vue"]}