@devslab/dds-solid 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createUniqueId","splitProps","JSX","ParentProps","createControllableSignal","classes","describedBy","ButtonTone","ControlSize","ButtonProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","class","tone","size","loading","Button","props","local","rest","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_co$","_$getNextMarker","nextSibling","_el$4","_el$5","_co$2","_$spread","_$mergeProps","type","undefined","disabled","aria-busy","_$insert","_c$","_$memo","_tmpl$2","children","_$runHydrationEvents","IconButtonProps","Element","IconButton","_el$7","_tmpl$3","_c$2","FieldControlProps","id","FieldProps","label","helpText","error","required","Field","generated","helpId","errorId","control","_el$9","_tmpl$4","_el$0","_el$1","_el$10","_co$3","_el$11","_el$12","_co$4","_el$13","_el$14","_co$5","_el$15","_el$16","_co$6","_el$17","_el$18","_co$7","_c$3","_tmpl$5","_c$4","_c$5","_el$20","_tmpl$6","_$effect","_$setAttribute","_c$6","_el$21","_tmpl$7","_p$","_v$","_v$2","e","_$className","t","SelectProps","SelectHTMLAttributes","HTMLSelectElement","invalid","Select","_el$22","_tmpl$8","_el$23","aria-invalid","CheckableProps","InputHTMLAttributes","HTMLInputElement","checked","defaultChecked","onCheckedChange","inputClass","Checkable","role","setChecked","value","defaultValue","onChange","_el$24","_tmpl$9","_el$25","_el$26","event","currentTarget","CheckboxProps","Checkbox","_$createComponent","RadioProps","Radio","SwitchProps","Switch","Show","createEffect","createUniqueId","onCleanup","JSX","createControllableSignal","classes","describedBy","focusable","join","DialogProps","open","defaultOpen","onOpenChange","title","Element","description","children","actions","closeOnEscape","closeOnOutside","class","id","Dialog","props","generated","titleId","descriptionId","undefined","setOpen","value","defaultValue","onChange","panel","HTMLDivElement","previouslyFocused","HTMLElement","document","activeElement","queueMicrotask","first","querySelector","focus","onKeyDown","event","KeyboardEvent","key","preventDefault","candidates","querySelectorAll","filter","element","hidden","getAttribute","length","last","shiftKey","addEventListener","removeEventListener","_$createComponent","when","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_co$","_$getNextMarker","_el$6","_el$7","_co$2","_el$8","_el$9","_co$3","$$pointerdown","target","currentTarget","_ref$","_$use","_$insert","_c$","_$memo","_el$0","_tmpl$2","_$effect","_$setAttribute","_c$2","_el$1","_tmpl$3","_p$","_v$","_v$2","_v$3","_v$4","_v$5","e","t","_$className","a","o","i","_$runHydrationEvents","_$delegateEvents","directionPolicy","icons","DdsIconName","splitProps","JSX","classes","IconProps","Omit","SvgSVGAttributes","SVGSVGElement","name","label","size","directional","Icon","props","local","rest","icon","mirrorInRtl","includes","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_$spread","_$mergeProps","class","cssClass","viewBox","width","height","stroke-width","strokeWidth","role","undefined","aria-label","aria-hidden","_$insert","_c$","_$memo","_el$5","_tmpl$2","_$effect","_$setProperty","body","_$runHydrationEvents","createContext","createUniqueId","onCleanup","onMount","splitProps","useContext","Accessor","JSX","ParentProps","createControllableSignal","classes","RegisteredTab","value","element","HTMLButtonElement","disabled","TabsContextValue","setValue","orientation","register","tab","tabs","tabId","panelId","TabsContext","useTabs","context","Error","TabsProps","defaultValue","onValueChange","children","Element","id","Tabs","props","generated","onChange","registered","push","index","indexOf","splice","tabValue","_$createComponent","Provider","TabList","HTMLAttributes","HTMLDivElement","local","rest","onKeyDown","EventHandler","KeyboardEvent","event","defaultPrevented","filter","length","current","findIndex","document","activeElement","next","rtl","documentElement","dir","key","preventDefault","target","focus","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","class","aria-orientation","_$insert","_$runHydrationEvents","TabProps","Omit","ButtonHTMLAttributes","Tab","unregister","Boolean","_el$2","_tmpl$2","_ref$","_$use","aria-selected","aria-controls","tabindex","onClick","TabPanelProps","TabPanel","_el$3","aria-labelledby","hidden","For","createContext","createSignal","onCleanup","useContext","JSX","classes","ToastTone","ToastInput","message","Element","tone","duration","ToastRecord","id","ToastApi","show","toast","dismiss","clear","ToastContext","ToastProviderProps","children","defaultDuration","dismissLabel","class","ToastProvider","props","toasts","setToasts","timers","Map","ReturnType","setTimeout","sequence","timer","get","clearTimeout","delete","current","filter","api","input","set","values","_$createComponent","Provider","value","_$memo","_el$","_$getNextElement","_tmpl$","_$insert","each","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","_el$5","_co$","_$getNextMarker","_c$","_el$6","_tmpl$3","$$click","_$effect","_$setAttribute","_$runHydrationEvents","_p$","_v$","_v$2","e","_$className","t","undefined","useToast","context","Error","_$delegateEvents","createUniqueId","JSX","createControllableSignal","classes","TooltipTriggerProps","onFocus","onBlur","onPointerEnter","onPointerLeave","TooltipProps","content","Element","children","props","open","defaultOpen","onOpenChange","id","class","Tooltip","generated","setOpen","value","defaultValue","onChange","trigger","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_$insert","_$effect","_p$","_v$","_v$2","_v$3","e","_$className","t","_$setAttribute","a","_$setProperty","undefined"],"sources":["../src/controllable.ts","../src/utils.ts","../src/controls.tsx","../src/dialog.tsx","../src/icon.tsx","../src/tabs.tsx","../src/toast.tsx","../src/tooltip.tsx"],"sourcesContent":["import { createSignal, type Accessor } from \"solid-js\";\n\nexport interface ControllableOptions<T> {\n value: Accessor<T | undefined>;\n defaultValue: T;\n onChange: ((value: T) => void) | undefined;\n}\n\nexport type ControllableSetter<T> = (next: T | ((previous: T) => T)) => T;\n\nexport function createControllableSignal<T>(options: ControllableOptions<T>): [Accessor<T>, ControllableSetter<T>] {\n const [internal, setInternal] = createSignal(options.defaultValue);\n const value: Accessor<T> = () => options.value() ?? internal();\n const setInternalValue = setInternal as unknown as ControllableSetter<T>;\n const setValue: ControllableSetter<T> = (next) => {\n const resolved = typeof next === \"function\"\n ? (next as (previous: T) => T)(value())\n : next;\n if (options.value() === undefined) setInternalValue(() => resolved);\n options.onChange?.(resolved);\n return resolved;\n };\n return [value, setValue];\n}\n","export function classes(...values: Array<string | false | null | undefined>): string {\n return values.filter(Boolean).join(\" \");\n}\n\nexport function describedBy(...ids: Array<string | false | null | undefined>): string | undefined {\n const value = ids.filter(Boolean).join(\" \");\n return value || undefined;\n}\n","import {\n createUniqueId,\n splitProps,\n type JSX,\n type ParentProps,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes, describedBy } from \"./utils\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ControlSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> {\n class?: string;\n tone?: ButtonTone;\n size?: ControlSize;\n loading?: boolean;\n}\n\nexport function Button(props: ParentProps<ButtonProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-btn\", `dds-btn--${local.tone ?? \"primary\"}`, local.size !== \"md\" && local.size ? `dds-btn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading && <span class=\"dds-spinner\" aria-hidden=\"true\" />}\n {local.children}\n </button>\n );\n}\n\nexport interface IconButtonProps extends Omit<ButtonProps, \"tone\" | \"children\"> {\n \"aria-label\": string;\n tone?: \"ghost\" | \"secondary\" | \"danger\";\n children: JSX.Element;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-iconbtn\", local.tone && local.tone !== \"ghost\" ? `dds-iconbtn--${local.tone}` : undefined, local.size !== \"md\" && local.size ? `dds-iconbtn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading ? <span class=\"dds-spinner\" aria-hidden=\"true\" /> : local.children}\n </button>\n );\n}\n\nexport interface FieldControlProps {\n id: string;\n \"aria-describedby\": string | undefined;\n \"aria-invalid\": \"true\" | undefined;\n \"aria-required\": \"true\" | undefined;\n}\n\nexport interface FieldProps {\n id?: string;\n label: JSX.Element;\n helpText?: JSX.Element;\n error?: JSX.Element;\n required?: boolean;\n class?: string;\n children: JSX.Element | ((props: FieldControlProps) => JSX.Element);\n}\n\nexport function Field(props: FieldProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-field-${generated}`;\n const helpId = () => props.helpText ? `${id()}-help` : undefined;\n const errorId = () => props.error ? `${id()}-error` : undefined;\n const control = (): FieldControlProps => ({\n id: id(),\n \"aria-describedby\": describedBy(helpId(), errorId()),\n \"aria-invalid\": props.error ? \"true\" : undefined,\n \"aria-required\": props.required ? \"true\" : undefined,\n });\n return (\n <div class={classes(\"dds-field\", props.error ? \"dds-field--error\" : undefined, props.class)}>\n <label class=\"dds-field__label\" for={id()}>{props.label}{props.required && <span aria-hidden=\"true\"> *</span>}</label>\n {typeof props.children === \"function\" ? props.children(control()) : props.children}\n {props.helpText && <div id={helpId()} class=\"dds-field__help\">{props.helpText}</div>}\n {props.error && <div id={errorId()} class=\"dds-field__error\" role=\"alert\">{props.error}</div>}\n </div>\n );\n}\n\nexport interface SelectProps extends Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, \"class\"> {\n class?: string;\n invalid?: boolean;\n}\n\nexport function Select(props: ParentProps<SelectProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"invalid\", \"children\"]);\n return (\n <span class={classes(\"dds-select\", local.class)}>\n <select {...rest} class=\"dds-select__input\" aria-invalid={local.invalid ? \"true\" : undefined}>\n {local.children}\n </select>\n </span>\n );\n}\n\ninterface CheckableProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"checked\" | \"class\" | \"onChange\" | \"role\" | \"type\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n label: JSX.Element;\n class?: string;\n inputClass?: string;\n}\n\nfunction Checkable(props: CheckableProps & { type: \"checkbox\" | \"radio\"; role?: \"switch\" }) {\n const [local, rest] = splitProps(props, [\"checked\", \"defaultChecked\", \"onCheckedChange\", \"label\", \"class\", \"inputClass\", \"type\", \"role\"]);\n const [checked, setChecked] = createControllableSignal({\n value: () => local.checked,\n defaultValue: local.defaultChecked ?? false,\n onChange: local.onCheckedChange,\n });\n return (\n <label class={classes(local.role === \"switch\" ? \"dds-switch\" : \"dds-check\", local.class)}>\n <input\n {...rest}\n type={local.type}\n role={local.role}\n class={classes(local.role === \"switch\" ? \"dds-switch__input\" : \"dds-check__input\", local.inputClass)}\n checked={checked()}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n />\n <span>{local.label}</span>\n </label>\n );\n}\n\nexport type CheckboxProps = CheckableProps;\nexport const Checkbox = (props: CheckboxProps) => <Checkable {...props} type=\"checkbox\" />;\n\nexport type RadioProps = CheckableProps;\nexport const Radio = (props: RadioProps) => <Checkable {...props} type=\"radio\" />;\n\nexport type SwitchProps = CheckableProps;\nexport const Switch = (props: SwitchProps) => <Checkable {...props} type=\"checkbox\" role=\"switch\" />;\n","import {\n Show,\n createEffect,\n createUniqueId,\n onCleanup,\n type JSX,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes, describedBy } from \"./utils\";\n\nexport const focusable = [\n \"a[href]\",\n \"button:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n].join(\",\");\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n title: JSX.Element;\n description?: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n closeOnEscape?: boolean;\n closeOnOutside?: boolean;\n class?: string;\n id?: string;\n}\n\nexport function Dialog(props: DialogProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-dialog-${generated}`;\n const titleId = () => `${id()}-title`;\n const descriptionId = () => props.description ? `${id()}-description` : undefined;\n const [open, setOpen] = createControllableSignal({\n value: () => props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange,\n });\n let panel: HTMLDivElement | undefined;\n let previouslyFocused: HTMLElement | null = null;\n\n createEffect(() => {\n if (!open()) return;\n previouslyFocused = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n queueMicrotask(() => {\n const first = panel?.querySelector<HTMLElement>(focusable);\n (first ?? panel)?.focus();\n });\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && props.closeOnEscape !== false) {\n event.preventDefault();\n setOpen(false);\n return;\n }\n if (event.key !== \"Tab\" || !panel) return;\n const candidates = [...panel.querySelectorAll<HTMLElement>(focusable)]\n .filter((element) => !element.hidden && element.getAttribute(\"aria-hidden\") !== \"true\");\n if (candidates.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = candidates[0]!;\n const last = candidates[candidates.length - 1]!;\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first.focus();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"keydown\", onKeyDown);\n queueMicrotask(() => previouslyFocused?.focus());\n });\n });\n\n return (\n <Show when={open()}>\n <div\n class=\"dds-dialog-overlay\"\n onPointerDown={(event) => {\n if (event.target === event.currentTarget && props.closeOnOutside !== false) setOpen(false);\n }}\n >\n <div\n ref={panel}\n id={id()}\n class={classes(\"dds-dialog\", props.class)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId()}\n aria-describedby={describedBy(descriptionId())}\n tabindex=\"-1\"\n >\n <h2 id={titleId()} class=\"dds-dialog__title\">{props.title}</h2>\n {props.description && <div id={descriptionId()} class=\"dds-dialog__body\">{props.description}</div>}\n {props.children}\n {props.actions && <div class=\"dds-dialog__actions\">{props.actions}</div>}\n </div>\n </div>\n </Show>\n );\n}\n","import { directionPolicy, icons, type DdsIconName } from \"@devslab/dds-icons\";\nimport { splitProps, type JSX } from \"solid-js\";\n\nimport { classes } from \"./utils\";\n\nexport interface IconProps extends Omit<JSX.SvgSVGAttributes<SVGSVGElement>, \"name\" | \"children\"> {\n name: DdsIconName;\n label?: string;\n size?: number | string;\n directional?: boolean;\n}\n\nexport function Icon(props: IconProps) {\n const [local, rest] = splitProps(props, [\"name\", \"label\", \"size\", \"directional\", \"class\"]);\n const icon = () => icons[local.name];\n const directional = () => local.directional ?? directionPolicy.mirrorInRtl.includes(local.name);\n return (\n <svg\n {...rest}\n class={classes(directional() && directionPolicy.cssClass, local.class)}\n viewBox={icon().viewBox}\n width={local.size ?? 24}\n height={local.size ?? 24}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width={icon().strokeWidth}\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n role={local.label ? \"img\" : undefined}\n aria-label={local.label}\n aria-hidden={local.label ? undefined : \"true\"}\n >\n {local.label && <title>{local.label}</title>}\n <g innerHTML={icon().body} />\n </svg>\n );\n}\n","import {\n createContext,\n createUniqueId,\n onCleanup,\n onMount,\n splitProps,\n useContext,\n type Accessor,\n type JSX,\n type ParentProps,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes } from \"./utils\";\n\ninterface RegisteredTab { value: string; element: HTMLButtonElement; disabled: boolean }\ninterface TabsContextValue {\n value: Accessor<string>;\n setValue: (value: string) => void;\n orientation: \"horizontal\" | \"vertical\";\n register: (tab: RegisteredTab) => () => void;\n tabs: () => RegisteredTab[];\n tabId: (value: string) => string;\n panelId: (value: string) => string;\n}\n\nconst TabsContext = createContext<TabsContextValue>();\nconst useTabs = () => {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tab components must be rendered inside <Tabs>\");\n return context;\n};\n\nexport interface TabsProps {\n value?: string;\n defaultValue: string;\n onValueChange?: (value: string) => void;\n orientation?: \"horizontal\" | \"vertical\";\n children: JSX.Element;\n id?: string;\n}\n\nexport function Tabs(props: TabsProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tabs-${generated}`;\n const [value, setValue] = createControllableSignal({\n value: () => props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange,\n });\n const registered: RegisteredTab[] = [];\n const context: TabsContextValue = {\n value,\n setValue,\n orientation: props.orientation ?? \"horizontal\",\n register(tab) {\n registered.push(tab);\n return () => {\n const index = registered.indexOf(tab);\n if (index >= 0) registered.splice(index, 1);\n };\n },\n tabs: () => registered,\n tabId: (tabValue) => `${id()}-tab-${tabValue}`,\n panelId: (tabValue) => `${id()}-panel-${tabValue}`,\n };\n return <TabsContext.Provider value={context}>{props.children}</TabsContext.Provider>;\n}\n\nexport function TabList(props: ParentProps<JSX.HTMLAttributes<HTMLDivElement>>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"onKeyDown\"]);\n const onKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n if (typeof local.onKeyDown === \"function\") local.onKeyDown(event);\n if (event.defaultPrevented) return;\n const tabs = context.tabs().filter((tab) => !tab.disabled);\n if (!tabs.length) return;\n const current = tabs.findIndex((tab) => tab.element === document.activeElement);\n let next = current;\n const rtl = document.documentElement.dir === \"rtl\";\n if (event.key === \"Home\") next = 0;\n else if (event.key === \"End\") next = tabs.length - 1;\n else if (event.key === \"ArrowRight\" && context.orientation === \"horizontal\") next = (current + (rtl ? -1 : 1) + tabs.length) % tabs.length;\n else if (event.key === \"ArrowLeft\" && context.orientation === \"horizontal\") next = (current + (rtl ? 1 : -1) + tabs.length) % tabs.length;\n else if (event.key === \"ArrowDown\" && context.orientation === \"vertical\") next = (current + 1) % tabs.length;\n else if (event.key === \"ArrowUp\" && context.orientation === \"vertical\") next = (current - 1 + tabs.length) % tabs.length;\n else return;\n event.preventDefault();\n const target = tabs[next];\n if (target) {\n target.element.focus();\n context.setValue(target.value);\n }\n };\n return <div {...rest} class={classes(\"dds-tabs\", local.class)} role=\"tablist\" aria-orientation={context.orientation} onKeyDown={onKeyDown}>{local.children}</div>;\n}\n\nexport interface TabProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"class\"> {\n value: string;\n class?: string;\n}\n\nexport function Tab(props: ParentProps<TabProps>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"value\", \"class\", \"children\", \"disabled\", \"onClick\"]);\n let element!: HTMLButtonElement;\n onMount(() => {\n const unregister = context.register({ value: local.value, element, disabled: Boolean(local.disabled) });\n onCleanup(unregister);\n });\n return (\n <button\n {...rest}\n ref={element}\n id={context.tabId(local.value)}\n type=\"button\"\n role=\"tab\"\n class={classes(\"dds-tab\", local.class)}\n aria-selected={context.value() === local.value}\n aria-controls={context.panelId(local.value)}\n tabindex={context.value() === local.value ? 0 : -1}\n disabled={local.disabled}\n onClick={(event) => {\n if (typeof local.onClick === \"function\") local.onClick(event);\n if (!event.defaultPrevented) context.setValue(local.value);\n }}\n >{local.children}</button>\n );\n}\n\nexport interface TabPanelProps extends JSX.HTMLAttributes<HTMLDivElement> { value: string }\n\nexport function TabPanel(props: ParentProps<TabPanelProps>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"value\", \"class\", \"children\"]);\n return (\n <div\n {...rest}\n id={context.panelId(local.value)}\n role=\"tabpanel\"\n class={local.class}\n aria-labelledby={context.tabId(local.value)}\n hidden={context.value() !== local.value}\n tabindex=\"0\"\n >{local.children}</div>\n );\n}\n","import {\n For,\n createContext,\n createSignal,\n onCleanup,\n useContext,\n type JSX,\n} from \"solid-js\";\n\nimport { classes } from \"./utils\";\n\nexport type ToastTone = \"success\" | \"warning\" | \"danger\" | \"info\";\nexport interface ToastInput { message: JSX.Element; tone?: ToastTone; duration?: number }\nexport interface ToastRecord extends ToastInput { id: string }\nexport interface ToastApi {\n show: (toast: ToastInput) => string;\n dismiss: (id: string) => void;\n clear: () => void;\n}\n\nconst ToastContext = createContext<ToastApi>();\n\nexport interface ToastProviderProps {\n children: JSX.Element;\n defaultDuration?: number;\n /** Localized accessible name for the optional manual dismiss control. */\n dismissLabel?: string | ((toast: ToastRecord) => string);\n class?: string;\n}\n\nexport function ToastProvider(props: ToastProviderProps) {\n const [toasts, setToasts] = createSignal<ToastRecord[]>([]);\n const timers = new Map<string, ReturnType<typeof setTimeout>>();\n let sequence = 0;\n const dismiss = (id: string) => {\n const timer = timers.get(id);\n if (timer) clearTimeout(timer);\n timers.delete(id);\n setToasts((current) => current.filter((toast) => toast.id !== id));\n };\n const api: ToastApi = {\n show(input) {\n const id = `dds-toast-${++sequence}`;\n setToasts((current) => [...current, { ...input, id }]);\n const duration = input.duration ?? props.defaultDuration ?? 5000;\n if (duration > 0) timers.set(id, setTimeout(() => dismiss(id), duration));\n return id;\n },\n dismiss,\n clear() {\n for (const timer of timers.values()) clearTimeout(timer);\n timers.clear();\n setToasts([]);\n },\n };\n onCleanup(api.clear);\n return (\n <ToastContext.Provider value={api}>\n {props.children}\n <div class={classes(\"dds-toast-region\", props.class)} aria-live=\"polite\" aria-relevant=\"additions removals\">\n <For each={toasts()}>{(toast) => (\n <div class={classes(\"dds-toast\", `dds-toast--${toast.tone ?? \"info\"}`)} role={toast.tone === \"danger\" ? \"alert\" : \"status\"}>\n <span>{toast.message}</span>\n {props.dismissLabel ? (\n <button\n type=\"button\"\n class=\"dds-iconbtn dds-iconbtn--sm\"\n aria-label={typeof props.dismissLabel === \"function\" ? props.dismissLabel(toast) : props.dismissLabel}\n onClick={() => dismiss(toast.id)}\n >×</button>\n ) : null}\n </div>\n )}</For>\n </div>\n </ToastContext.Provider>\n );\n}\n\nexport function useToast(): ToastApi {\n const context = useContext(ToastContext);\n if (!context) throw new Error(\"useToast must be called inside <ToastProvider>\");\n return context;\n}\n","import { createUniqueId, type JSX } from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes } from \"./utils\";\n\nexport interface TooltipTriggerProps {\n \"aria-describedby\": string;\n onFocus: () => void;\n onBlur: () => void;\n onPointerEnter: () => void;\n onPointerLeave: () => void;\n}\n\nexport interface TooltipProps {\n content: JSX.Element;\n children: (props: TooltipTriggerProps) => JSX.Element;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n class?: string;\n}\n\nexport function Tooltip(props: TooltipProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tooltip-${generated}`;\n const [open, setOpen] = createControllableSignal({\n value: () => props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange,\n });\n const trigger: TooltipTriggerProps = {\n \"aria-describedby\": id(),\n onFocus: () => setOpen(true),\n onBlur: () => setOpen(false),\n onPointerEnter: () => setOpen(true),\n onPointerLeave: () => setOpen(false),\n };\n return (\n <span class={classes(\"dds-tooltip\", props.class)}>\n {props.children(trigger)}\n <span id={id()} class=\"dds-tooltip__bubble\" role=\"tooltip\" hidden={!open()}>{props.content}</span>\n </span>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["createUniqueId","splitProps","JSX","ParentProps","createControllableSignal","classes","describedBy","ButtonTone","ControlSize","ButtonProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","class","tone","size","loading","Button","props","local","rest","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_co$","_$getNextMarker","nextSibling","_el$4","_el$5","_co$2","_$spread","_$mergeProps","type","undefined","disabled","aria-busy","_$insert","_c$","_$memo","_tmpl$2","children","_$runHydrationEvents","IconButtonProps","Element","IconButton","_el$7","_tmpl$3","_c$2","FieldControlProps","id","FieldProps","label","helpText","error","required","Field","generated","helpId","errorId","control","_el$9","_tmpl$4","_el$0","_el$1","_el$10","_co$3","_el$11","_el$12","_co$4","_el$13","_el$14","_co$5","_el$15","_el$16","_co$6","_el$17","_el$18","_co$7","_c$3","_tmpl$5","_c$4","_c$5","_el$20","_tmpl$6","_$effect","_$setAttribute","_c$6","_el$21","_tmpl$7","_p$","_v$","_v$2","e","_$className","t","SelectProps","SelectHTMLAttributes","HTMLSelectElement","invalid","Select","_el$22","_tmpl$8","_el$23","aria-invalid","CheckableProps","InputHTMLAttributes","HTMLInputElement","checked","defaultChecked","onCheckedChange","inputClass","Checkable","role","setChecked","value","defaultValue","onChange","_el$24","_tmpl$9","_el$25","_el$26","event","currentTarget","CheckboxProps","Checkbox","_$createComponent","RadioProps","Radio","SwitchProps","Switch","For","Show","createSignal","createUniqueId","onCleanup","onMount","JSX","ConsoleNavItem","id","href","label","badge","active","ConsoleNavGroup","items","ConsoleShellLabels","skip","menuOpen","menuClose","nav","ConsoleHeader","eyebrow","title","actions","Element","ConsoleShellProps","surface","activePath","brand","name","mark","context","value","labels","header","foot","children","isActive","explicit","undefined","segments","split","filter","Boolean","length","startsWith","fillBadgeLabel","template","count","replace","String","ConsoleShell","props","open","setOpen","close","hydrated","setHydrated","onKey","event","KeyboardEvent","key","document","addEventListener","removeEventListener","_el$","_$getNextElement","_tmpl$5","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_el$0","_el$12","_el$13","_co$","_$getNextMarker","_el$10","_el$14","_el$15","_co$2","_el$16","_el$17","_el$18","_el$21","_el$22","_co$3","_el$20","_el$24","_el$25","_co$4","_el$26","_el$27","_co$5","_$insert","$$click","_c$","_$memo","_$createComponent","when","_el$1","_tmpl$","each","row","_el$28","_tmpl$6","_el$29","_el$30","group","groupId","_el$31","_tmpl$7","_el$32","_el$33","_$setAttribute","item","_el$34","_tmpl$9","_el$35","_el$36","_el$38","_el$39","_co$6","_el$37","_tmpl$8","_$effect","_p$","_v$9","_v$0","_v$1","e","t","a","_$runHydrationEvents","_el$11","_tmpl$2","_el$19","_tmpl$3","_el$23","_tmpl$4","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","_v$7","_v$8","o","i","n","s","h","_$delegateEvents","Show","createEffect","createUniqueId","onCleanup","JSX","createControllableSignal","classes","describedBy","focusable","join","DialogProps","open","defaultOpen","onOpenChange","title","Element","description","children","actions","closeOnEscape","closeOnOutside","class","id","Dialog","props","generated","titleId","descriptionId","undefined","setOpen","value","defaultValue","onChange","panel","HTMLDivElement","previouslyFocused","HTMLElement","document","activeElement","queueMicrotask","first","querySelector","focus","onKeyDown","event","KeyboardEvent","key","preventDefault","candidates","querySelectorAll","filter","element","hidden","getAttribute","length","last","shiftKey","addEventListener","removeEventListener","_$createComponent","when","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_co$","_$getNextMarker","_el$6","_el$7","_co$2","_el$8","_el$9","_co$3","$$pointerdown","target","currentTarget","_ref$","_$use","_$insert","_c$","_$memo","_el$0","_tmpl$2","_$effect","_$setAttribute","_c$2","_el$1","_tmpl$3","_p$","_v$","_v$2","_v$3","_v$4","_v$5","e","t","_$className","a","o","i","_$runHydrationEvents","_$delegateEvents","directionPolicy","icons","DdsIconName","splitProps","JSX","classes","IconProps","Omit","SvgSVGAttributes","SVGSVGElement","name","label","size","directional","Icon","props","local","rest","icon","mirrorInRtl","includes","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_$spread","_$mergeProps","class","cssClass","viewBox","width","height","stroke-width","strokeWidth","role","undefined","aria-label","aria-hidden","_$insert","_c$","_$memo","_el$5","_tmpl$2","_$effect","_$setProperty","body","_$runHydrationEvents","Show","JSX","StatusTone","createStatusPill","config","tones","Record","D","label","domain","value","locale","openDomains","NoInfer","open","Set","StatusPill","props","Element","tone","known","Boolean","resolved","found","Error","text","_$createComponent","when","has","fallback","_el$","_$getNextElement","_tmpl$","_$insert","_$effect","_$setAttribute","children","_el$2","_tmpl$2","_p$","_v$","_v$2","_v$3","e","_$className","t","a","undefined","createContext","createUniqueId","onCleanup","onMount","splitProps","useContext","Accessor","JSX","ParentProps","createControllableSignal","classes","RegisteredTab","value","element","HTMLButtonElement","disabled","TabsContextValue","setValue","orientation","register","tab","tabs","tabId","panelId","TabsContext","useTabs","context","Error","TabsProps","defaultValue","onValueChange","children","Element","id","Tabs","props","generated","onChange","registered","push","index","indexOf","splice","tabValue","_$createComponent","Provider","TabList","HTMLAttributes","HTMLDivElement","local","rest","onKeyDown","EventHandler","KeyboardEvent","event","defaultPrevented","filter","length","current","findIndex","document","activeElement","next","rtl","documentElement","dir","key","preventDefault","target","focus","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","class","aria-orientation","_$insert","_$runHydrationEvents","TabProps","Omit","ButtonHTMLAttributes","Tab","unregister","Boolean","_el$2","_tmpl$2","_ref$","_$use","aria-selected","aria-controls","tabindex","onClick","TabPanelProps","TabPanel","_el$3","aria-labelledby","hidden","For","createContext","createSignal","onCleanup","useContext","JSX","classes","ToastTone","ToastInput","message","Element","tone","duration","ToastRecord","id","ToastApi","show","toast","dismiss","clear","ToastContext","ToastProviderProps","children","defaultDuration","dismissLabel","class","ToastProvider","props","toasts","setToasts","timers","Map","ReturnType","setTimeout","sequence","timer","get","clearTimeout","delete","current","filter","api","input","set","values","_$createComponent","Provider","value","_$memo","_el$","_$getNextElement","_tmpl$","_$insert","each","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","_el$5","_co$","_$getNextMarker","_c$","_el$6","_tmpl$3","$$click","_$effect","_$setAttribute","_$runHydrationEvents","_p$","_v$","_v$2","e","_$className","t","undefined","useToast","context","Error","_$delegateEvents","createUniqueId","JSX","createControllableSignal","classes","TooltipTriggerProps","onFocus","onBlur","onPointerEnter","onPointerLeave","TooltipProps","content","Element","children","props","open","defaultOpen","onOpenChange","id","class","Tooltip","generated","setOpen","value","defaultValue","onChange","trigger","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_$insert","_$effect","_p$","_v$","_v$2","_v$3","e","_$className","t","_$setAttribute","a","_$setProperty","undefined"],"sources":["../src/controllable.ts","../src/utils.ts","../src/controls.tsx","../src/console-shell.tsx","../src/dialog.tsx","../src/icon.tsx","../src/status-pill.tsx","../src/tabs.tsx","../src/toast.tsx","../src/tooltip.tsx"],"sourcesContent":["import { createSignal, type Accessor } from \"solid-js\";\n\nexport interface ControllableOptions<T> {\n value: Accessor<T | undefined>;\n defaultValue: T;\n onChange: ((value: T) => void) | undefined;\n}\n\nexport type ControllableSetter<T> = (next: T | ((previous: T) => T)) => T;\n\nexport function createControllableSignal<T>(options: ControllableOptions<T>): [Accessor<T>, ControllableSetter<T>] {\n const [internal, setInternal] = createSignal(options.defaultValue);\n const value: Accessor<T> = () => options.value() ?? internal();\n const setInternalValue = setInternal as unknown as ControllableSetter<T>;\n const setValue: ControllableSetter<T> = (next) => {\n const resolved = typeof next === \"function\"\n ? (next as (previous: T) => T)(value())\n : next;\n if (options.value() === undefined) setInternalValue(() => resolved);\n options.onChange?.(resolved);\n return resolved;\n };\n return [value, setValue];\n}\n","export function classes(...values: Array<string | false | null | undefined>): string {\n return values.filter(Boolean).join(\" \");\n}\n\nexport function describedBy(...ids: Array<string | false | null | undefined>): string | undefined {\n const value = ids.filter(Boolean).join(\" \");\n return value || undefined;\n}\n","import {\n createUniqueId,\n splitProps,\n type JSX,\n type ParentProps,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes, describedBy } from \"./utils\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ControlSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> {\n class?: string;\n tone?: ButtonTone;\n size?: ControlSize;\n loading?: boolean;\n}\n\nexport function Button(props: ParentProps<ButtonProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-btn\", `dds-btn--${local.tone ?? \"primary\"}`, local.size !== \"md\" && local.size ? `dds-btn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading && <span class=\"dds-spinner\" aria-hidden=\"true\" />}\n {local.children}\n </button>\n );\n}\n\nexport interface IconButtonProps extends Omit<ButtonProps, \"tone\" | \"children\"> {\n \"aria-label\": string;\n tone?: \"ghost\" | \"secondary\" | \"danger\";\n children: JSX.Element;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-iconbtn\", local.tone && local.tone !== \"ghost\" ? `dds-iconbtn--${local.tone}` : undefined, local.size !== \"md\" && local.size ? `dds-iconbtn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading ? <span class=\"dds-spinner\" aria-hidden=\"true\" /> : local.children}\n </button>\n );\n}\n\nexport interface FieldControlProps {\n id: string;\n \"aria-describedby\": string | undefined;\n \"aria-invalid\": \"true\" | undefined;\n \"aria-required\": \"true\" | undefined;\n}\n\nexport interface FieldProps {\n id?: string;\n label: JSX.Element;\n helpText?: JSX.Element;\n error?: JSX.Element;\n required?: boolean;\n class?: string;\n children: JSX.Element | ((props: FieldControlProps) => JSX.Element);\n}\n\nexport function Field(props: FieldProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-field-${generated}`;\n const helpId = () => props.helpText ? `${id()}-help` : undefined;\n const errorId = () => props.error ? `${id()}-error` : undefined;\n const control = (): FieldControlProps => ({\n id: id(),\n \"aria-describedby\": describedBy(helpId(), errorId()),\n \"aria-invalid\": props.error ? \"true\" : undefined,\n \"aria-required\": props.required ? \"true\" : undefined,\n });\n return (\n <div class={classes(\"dds-field\", props.error ? \"dds-field--error\" : undefined, props.class)}>\n <label class=\"dds-field__label\" for={id()}>{props.label}{props.required && <span aria-hidden=\"true\"> *</span>}</label>\n {typeof props.children === \"function\" ? props.children(control()) : props.children}\n {props.helpText && <div id={helpId()} class=\"dds-field__help\">{props.helpText}</div>}\n {props.error && <div id={errorId()} class=\"dds-field__error\" role=\"alert\">{props.error}</div>}\n </div>\n );\n}\n\nexport interface SelectProps extends Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, \"class\"> {\n class?: string;\n invalid?: boolean;\n}\n\nexport function Select(props: ParentProps<SelectProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"invalid\", \"children\"]);\n return (\n <span class={classes(\"dds-select\", local.class)}>\n <select {...rest} class=\"dds-select__input\" aria-invalid={local.invalid ? \"true\" : undefined}>\n {local.children}\n </select>\n </span>\n );\n}\n\ninterface CheckableProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"checked\" | \"class\" | \"onChange\" | \"role\" | \"type\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n label: JSX.Element;\n class?: string;\n inputClass?: string;\n}\n\nfunction Checkable(props: CheckableProps & { type: \"checkbox\" | \"radio\"; role?: \"switch\" }) {\n const [local, rest] = splitProps(props, [\"checked\", \"defaultChecked\", \"onCheckedChange\", \"label\", \"class\", \"inputClass\", \"type\", \"role\"]);\n const [checked, setChecked] = createControllableSignal({\n value: () => local.checked,\n defaultValue: local.defaultChecked ?? false,\n onChange: local.onCheckedChange,\n });\n return (\n <label class={classes(local.role === \"switch\" ? \"dds-switch\" : \"dds-check\", local.class)}>\n <input\n {...rest}\n type={local.type}\n role={local.role}\n class={classes(local.role === \"switch\" ? \"dds-switch__input\" : \"dds-check__input\", local.inputClass)}\n checked={checked()}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n />\n <span>{local.label}</span>\n </label>\n );\n}\n\nexport type CheckboxProps = CheckableProps;\nexport const Checkbox = (props: CheckboxProps) => <Checkable {...props} type=\"checkbox\" />;\n\nexport type RadioProps = CheckableProps;\nexport const Radio = (props: RadioProps) => <Checkable {...props} type=\"radio\" />;\n\nexport type SwitchProps = CheckableProps;\nexport const Switch = (props: SwitchProps) => <Checkable {...props} type=\"checkbox\" role=\"switch\" />;\n","import { For, Show, createSignal, createUniqueId, onCleanup, onMount, type JSX } from \"solid-js\";\n\n/** One item in a nav group's list. `active` is a caller override — pass it\n * only when the generic prefix rule below gets a route wrong. \"Index route\"\n * in that rule means an `href` exactly one path segment deep (e.g.\n * `/dashboard`); a console mounted under a path prefix (so its own root is\n * two or more segments deep) should pass `active` explicitly on that item\n * rather than rely on the generic rule. */\nexport interface ConsoleNavItem {\n id: string;\n href: string;\n label: string;\n badge?: number;\n active?: boolean;\n}\n\nexport interface ConsoleNavGroup {\n label: string;\n items: readonly ConsoleNavItem[];\n}\n\nexport interface ConsoleShellLabels {\n skip: string;\n menuOpen: string;\n menuClose: string;\n /** Accessible name for the rail's `<nav>` landmark (e.g. \"Dashboard\n * navigation\"). Required, not optional: a console page also has the\n * DataTable's pagination `<nav>` (named via its own `labels.nextPage`),\n * and an unnamed landmark next to a named one is a regression a\n * screen-reader user would notice immediately — the rail is the primary\n * nav, so it must never be the anonymous one. */\n nav: string;\n /** Badge accessible name template. `{count}` is substituted with the\n * item's pending count — DDS supplies no words of its own. */\n badge: string;\n}\n\nexport interface ConsoleHeader {\n eyebrow?: string;\n title: string;\n actions?: JSX.Element;\n}\n\nexport interface ConsoleShellProps {\n surface: string;\n activePath: string;\n brand: { href: string; name: string; mark: string };\n /** Lines pinned under the brand — a product's organization, environment,\n * or role context. */\n context?: readonly { label: string; value: string }[];\n nav: readonly ConsoleNavGroup[];\n labels: ConsoleShellLabels;\n header: ConsoleHeader;\n /** Slot for the rail's bottom — DDS must not depend on site-kit, so a\n * theme toggle, locale picker, or sign-out form all arrive as children\n * the product renders itself. */\n foot?: JSX.Element;\n children: JSX.Element;\n}\n\n/* An index route matches exactly; everything else matches by prefix. A caller\n that knows better passes `active` on the item. */\nfunction isActive(activePath: string, href: string, explicit?: boolean): boolean {\n if (explicit !== undefined) return explicit;\n const segments = href.split(\"/\").filter(Boolean);\n if (segments.length <= 1) return activePath === href;\n return activePath === href || activePath.startsWith(`${href}/`);\n}\n\n/** Fills the `{count}` placeholder in a consumer-supplied badge label\n * template. A function replacer, not `template.replace(\"{count}\", value)`\n * — a string replacement value is subject to special\n * `$&`/`$$`/`` $` ``/`$'` patterns. `count` is always a plain digit string\n * today, so this is defensive rather than a live bug, but it is the same\n * class of mistake as dds-table's analogous `sortBy` label fix — no\n * shared helper between the two packages (see that fix's note). */\nfunction fillBadgeLabel(template: string, count: number): string {\n return template.replace(\"{count}\", () => String(count));\n}\n\nexport function ConsoleShell(props: ConsoleShellProps): JSX.Element {\n const [open, setOpen] = createSignal(false);\n const close = () => setOpen(false);\n // Delegated listeners (the rail toggle's onClick among them) attach once\n // Solid finishes hydrating; this flips only then, so a harness can wait\n // for the same readiness signal a real click depends on instead of\n // guessing with a retry. onMount never runs during SSR, so this listener\n // is never attached — and this attribute never rendered — on the server.\n const [hydrated, setHydrated] = createSignal(false);\n onMount(() => {\n setHydrated(true);\n const onKey = (event: KeyboardEvent) => { if (event.key === \"Escape\") close(); };\n document.addEventListener(\"keydown\", onKey);\n onCleanup(() => document.removeEventListener(\"keydown\", onKey));\n });\n\n return (\n <div class=\"dds-console-shell\" data-surface={props.surface} data-hydrated={hydrated() ? \"true\" : undefined}>\n <a class=\"dds-console-skip dds-visually-hidden\" href=\"#dds-console-main\">{props.labels.skip}</a>\n <button\n class=\"dds-console-rail__toggle\"\n type=\"button\"\n data-action=\"toggle-rail\"\n aria-controls=\"dds-console-rail\"\n aria-expanded={open()}\n onClick={() => setOpen(!open())}\n >\n <span aria-hidden=\"true\" />\n <span class=\"dds-visually-hidden\">{open() ? props.labels.menuClose : props.labels.menuOpen}</span>\n </button>\n <div class=\"dds-console-rail__scrim\" data-open={open() ? \"true\" : \"false\"} onClick={close} />\n <aside id=\"dds-console-rail\" class=\"dds-console-rail\" data-open={open() ? \"true\" : \"false\"}>\n {/* No aria-label here: the decorative img (alt=\"\") contributes\n nothing to the accessible name, so it resolves to the visible\n \"{brand.name}\" text alone — the original concatenated a\n hardcoded English word (\"home\") onto this, which is exactly the\n kind of copy this package must not author itself. */}\n <a class=\"dds-console-rail__brand\" href={props.brand.href}>\n <img src={props.brand.mark} alt=\"\" width=\"20\" height=\"20\" />\n <strong>{props.brand.name}</strong>\n </a>\n <Show when={props.context && props.context.length > 0}>\n <dl class=\"dds-console-rail__context\">\n <For each={props.context}>{(row) => <div><dt>{row.label}</dt><dd>{row.value}</dd></div>}</For>\n </dl>\n </Show>\n <nav class=\"dds-console-rail__nav\" aria-label={props.labels.nav}>\n <For each={props.nav}>{(group) => {\n const groupId = `dds-console-group-${createUniqueId()}`;\n return (\n <section class=\"dds-console-rail__group\" aria-labelledby={groupId}>\n <h2 id={groupId} class=\"dds-console-rail__group-label\">{group.label}</h2>\n <ul>\n <For each={group.items}>{(item) => (\n <li>\n <a\n class=\"dds-console-rail__item\"\n data-nav={`${props.surface}.${item.id}`}\n href={item.href}\n aria-current={isActive(props.activePath, item.href, item.active) ? \"page\" : undefined}\n onClick={close}\n >\n <span>{item.label}</span>\n <Show when={item.badge !== undefined && item.badge > 0}>\n <span class=\"dds-console-rail__badge\" aria-label={fillBadgeLabel(props.labels.badge, item.badge!)}>{item.badge}</span>\n </Show>\n </a>\n </li>\n )}</For>\n </ul>\n </section>\n );\n }}</For>\n </nav>\n <Show when={props.foot}>\n <div class=\"dds-console-rail__foot\">{props.foot}</div>\n </Show>\n </aside>\n <main id=\"dds-console-main\" class=\"dds-console-main\" tabIndex={-1}>\n <header class=\"dds-console-page-header\">\n <div class=\"dds-console-page-header__text\">\n <Show when={props.header.eyebrow}>\n <p class=\"dds-console-page-eyebrow\">{props.header.eyebrow}</p>\n </Show>\n <h1>{props.header.title}</h1>\n </div>\n <Show when={props.header.actions}>\n <div class=\"dds-console-page-header__actions\">{props.header.actions}</div>\n </Show>\n </header>\n {props.children}\n </main>\n </div>\n );\n}\n","import {\n Show,\n createEffect,\n createUniqueId,\n onCleanup,\n type JSX,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes, describedBy } from \"./utils\";\n\nexport const focusable = [\n \"a[href]\",\n \"button:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n].join(\",\");\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n title: JSX.Element;\n description?: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n closeOnEscape?: boolean;\n closeOnOutside?: boolean;\n class?: string;\n id?: string;\n}\n\nexport function Dialog(props: DialogProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-dialog-${generated}`;\n const titleId = () => `${id()}-title`;\n const descriptionId = () => props.description ? `${id()}-description` : undefined;\n const [open, setOpen] = createControllableSignal({\n value: () => props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange,\n });\n let panel: HTMLDivElement | undefined;\n let previouslyFocused: HTMLElement | null = null;\n\n createEffect(() => {\n if (!open()) return;\n previouslyFocused = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n queueMicrotask(() => {\n const first = panel?.querySelector<HTMLElement>(focusable);\n (first ?? panel)?.focus();\n });\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && props.closeOnEscape !== false) {\n event.preventDefault();\n setOpen(false);\n return;\n }\n if (event.key !== \"Tab\" || !panel) return;\n const candidates = [...panel.querySelectorAll<HTMLElement>(focusable)]\n .filter((element) => !element.hidden && element.getAttribute(\"aria-hidden\") !== \"true\");\n if (candidates.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = candidates[0]!;\n const last = candidates[candidates.length - 1]!;\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first.focus();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"keydown\", onKeyDown);\n queueMicrotask(() => previouslyFocused?.focus());\n });\n });\n\n return (\n <Show when={open()}>\n <div\n class=\"dds-dialog-overlay\"\n onPointerDown={(event) => {\n if (event.target === event.currentTarget && props.closeOnOutside !== false) setOpen(false);\n }}\n >\n <div\n ref={panel}\n id={id()}\n class={classes(\"dds-dialog\", props.class)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId()}\n aria-describedby={describedBy(descriptionId())}\n tabindex=\"-1\"\n >\n <h2 id={titleId()} class=\"dds-dialog__title\">{props.title}</h2>\n {props.description && <div id={descriptionId()} class=\"dds-dialog__body\">{props.description}</div>}\n {props.children}\n {props.actions && <div class=\"dds-dialog__actions\">{props.actions}</div>}\n </div>\n </div>\n </Show>\n );\n}\n","import { directionPolicy, icons, type DdsIconName } from \"@devslab/dds-icons\";\nimport { splitProps, type JSX } from \"solid-js\";\n\nimport { classes } from \"./utils\";\n\nexport interface IconProps extends Omit<JSX.SvgSVGAttributes<SVGSVGElement>, \"name\" | \"children\"> {\n name: DdsIconName;\n label?: string;\n size?: number | string;\n directional?: boolean;\n}\n\nexport function Icon(props: IconProps) {\n const [local, rest] = splitProps(props, [\"name\", \"label\", \"size\", \"directional\", \"class\"]);\n const icon = () => icons[local.name];\n const directional = () => local.directional ?? directionPolicy.mirrorInRtl.includes(local.name);\n return (\n <svg\n {...rest}\n class={classes(directional() && directionPolicy.cssClass, local.class)}\n viewBox={icon().viewBox}\n width={local.size ?? 24}\n height={local.size ?? 24}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width={icon().strokeWidth}\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n role={local.label ? \"img\" : undefined}\n aria-label={local.label}\n aria-hidden={local.label ? undefined : \"true\"}\n >\n {local.label && <title>{local.label}</title>}\n <g innerHTML={icon().body} />\n </svg>\n );\n}\n","import { Show, type JSX } from \"solid-js\";\n\nexport type StatusTone = \"success\" | \"warning\" | \"danger\" | \"info\" | \"brand\" | \"neutral\";\n\n/* The rule, not the vocabulary. A value a CLOSED domain does not know throws:\n that can only mean a schema gained a case the catalog forgot. A value an OPEN\n domain does not know renders as raw text: that is customer data, and it must\n not crash the screen.\n\n `tones` declares which domains exist; `openDomains` only selects among the\n domains `tones` already declared, so it must not itself widen or narrow that\n set. */\nexport function createStatusPill<D extends string>(config: {\n tones: Record<D, Record<string, StatusTone>>;\n label: (domain: D, value: string, locale: string) => string | undefined;\n openDomains?: readonly NoInfer<D>[];\n}) {\n const open = new Set<string>(config.openDomains ?? []);\n return function StatusPill(props: { domain: D; value: string; locale: string }): JSX.Element {\n const tone = () => config.tones[props.domain]?.[props.value];\n const label = () => config.label(props.domain, props.value, props.locale);\n const known = () => Boolean(tone() && label());\n const resolved = () => {\n const found = tone();\n if (!found) throw new Error(`StatusPill: no tone for ${props.domain}.${props.value}`);\n const text = label();\n if (!text) throw new Error(`StatusPill: no label for ${props.domain}.${props.value}`);\n return { tone: found, text };\n };\n return (\n <Show when={known() || !open.has(props.domain)} fallback={<code data-status={`${props.domain}.${props.value}`}>{props.value}</code>}>\n {(() => {\n const value = resolved();\n return (\n <span\n class={value.tone === \"neutral\" ? \"dds-badge\" : `dds-badge dds-badge--${value.tone}`}\n data-status={`${props.domain}.${props.value}`}\n data-tone={value.tone}\n >\n {value.text}\n </span>\n );\n })()}\n </Show>\n );\n };\n}\n","import {\n createContext,\n createUniqueId,\n onCleanup,\n onMount,\n splitProps,\n useContext,\n type Accessor,\n type JSX,\n type ParentProps,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes } from \"./utils\";\n\ninterface RegisteredTab { value: string; element: HTMLButtonElement; disabled: boolean }\ninterface TabsContextValue {\n value: Accessor<string>;\n setValue: (value: string) => void;\n orientation: \"horizontal\" | \"vertical\";\n register: (tab: RegisteredTab) => () => void;\n tabs: () => RegisteredTab[];\n tabId: (value: string) => string;\n panelId: (value: string) => string;\n}\n\nconst TabsContext = createContext<TabsContextValue>();\nconst useTabs = () => {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tab components must be rendered inside <Tabs>\");\n return context;\n};\n\nexport interface TabsProps {\n value?: string;\n defaultValue: string;\n onValueChange?: (value: string) => void;\n orientation?: \"horizontal\" | \"vertical\";\n children: JSX.Element;\n id?: string;\n}\n\nexport function Tabs(props: TabsProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tabs-${generated}`;\n const [value, setValue] = createControllableSignal({\n value: () => props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange,\n });\n const registered: RegisteredTab[] = [];\n const context: TabsContextValue = {\n value,\n setValue,\n orientation: props.orientation ?? \"horizontal\",\n register(tab) {\n registered.push(tab);\n return () => {\n const index = registered.indexOf(tab);\n if (index >= 0) registered.splice(index, 1);\n };\n },\n tabs: () => registered,\n tabId: (tabValue) => `${id()}-tab-${tabValue}`,\n panelId: (tabValue) => `${id()}-panel-${tabValue}`,\n };\n return <TabsContext.Provider value={context}>{props.children}</TabsContext.Provider>;\n}\n\nexport function TabList(props: ParentProps<JSX.HTMLAttributes<HTMLDivElement>>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"onKeyDown\"]);\n const onKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n if (typeof local.onKeyDown === \"function\") local.onKeyDown(event);\n if (event.defaultPrevented) return;\n const tabs = context.tabs().filter((tab) => !tab.disabled);\n if (!tabs.length) return;\n const current = tabs.findIndex((tab) => tab.element === document.activeElement);\n let next = current;\n const rtl = document.documentElement.dir === \"rtl\";\n if (event.key === \"Home\") next = 0;\n else if (event.key === \"End\") next = tabs.length - 1;\n else if (event.key === \"ArrowRight\" && context.orientation === \"horizontal\") next = (current + (rtl ? -1 : 1) + tabs.length) % tabs.length;\n else if (event.key === \"ArrowLeft\" && context.orientation === \"horizontal\") next = (current + (rtl ? 1 : -1) + tabs.length) % tabs.length;\n else if (event.key === \"ArrowDown\" && context.orientation === \"vertical\") next = (current + 1) % tabs.length;\n else if (event.key === \"ArrowUp\" && context.orientation === \"vertical\") next = (current - 1 + tabs.length) % tabs.length;\n else return;\n event.preventDefault();\n const target = tabs[next];\n if (target) {\n target.element.focus();\n context.setValue(target.value);\n }\n };\n return <div {...rest} class={classes(\"dds-tabs\", local.class)} role=\"tablist\" aria-orientation={context.orientation} onKeyDown={onKeyDown}>{local.children}</div>;\n}\n\nexport interface TabProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"class\"> {\n value: string;\n class?: string;\n}\n\nexport function Tab(props: ParentProps<TabProps>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"value\", \"class\", \"children\", \"disabled\", \"onClick\"]);\n let element!: HTMLButtonElement;\n onMount(() => {\n const unregister = context.register({ value: local.value, element, disabled: Boolean(local.disabled) });\n onCleanup(unregister);\n });\n return (\n <button\n {...rest}\n ref={element}\n id={context.tabId(local.value)}\n type=\"button\"\n role=\"tab\"\n class={classes(\"dds-tab\", local.class)}\n aria-selected={context.value() === local.value}\n aria-controls={context.panelId(local.value)}\n tabindex={context.value() === local.value ? 0 : -1}\n disabled={local.disabled}\n onClick={(event) => {\n if (typeof local.onClick === \"function\") local.onClick(event);\n if (!event.defaultPrevented) context.setValue(local.value);\n }}\n >{local.children}</button>\n );\n}\n\nexport interface TabPanelProps extends JSX.HTMLAttributes<HTMLDivElement> { value: string }\n\nexport function TabPanel(props: ParentProps<TabPanelProps>) {\n const context = useTabs();\n const [local, rest] = splitProps(props, [\"value\", \"class\", \"children\"]);\n return (\n <div\n {...rest}\n id={context.panelId(local.value)}\n role=\"tabpanel\"\n class={local.class}\n aria-labelledby={context.tabId(local.value)}\n hidden={context.value() !== local.value}\n tabindex=\"0\"\n >{local.children}</div>\n );\n}\n","import {\n For,\n createContext,\n createSignal,\n onCleanup,\n useContext,\n type JSX,\n} from \"solid-js\";\n\nimport { classes } from \"./utils\";\n\nexport type ToastTone = \"success\" | \"warning\" | \"danger\" | \"info\";\nexport interface ToastInput { message: JSX.Element; tone?: ToastTone; duration?: number }\nexport interface ToastRecord extends ToastInput { id: string }\nexport interface ToastApi {\n show: (toast: ToastInput) => string;\n dismiss: (id: string) => void;\n clear: () => void;\n}\n\nconst ToastContext = createContext<ToastApi>();\n\nexport interface ToastProviderProps {\n children: JSX.Element;\n defaultDuration?: number;\n /** Localized accessible name for the optional manual dismiss control. */\n dismissLabel?: string | ((toast: ToastRecord) => string);\n class?: string;\n}\n\nexport function ToastProvider(props: ToastProviderProps) {\n const [toasts, setToasts] = createSignal<ToastRecord[]>([]);\n const timers = new Map<string, ReturnType<typeof setTimeout>>();\n let sequence = 0;\n const dismiss = (id: string) => {\n const timer = timers.get(id);\n if (timer) clearTimeout(timer);\n timers.delete(id);\n setToasts((current) => current.filter((toast) => toast.id !== id));\n };\n const api: ToastApi = {\n show(input) {\n const id = `dds-toast-${++sequence}`;\n setToasts((current) => [...current, { ...input, id }]);\n const duration = input.duration ?? props.defaultDuration ?? 5000;\n if (duration > 0) timers.set(id, setTimeout(() => dismiss(id), duration));\n return id;\n },\n dismiss,\n clear() {\n for (const timer of timers.values()) clearTimeout(timer);\n timers.clear();\n setToasts([]);\n },\n };\n onCleanup(api.clear);\n return (\n <ToastContext.Provider value={api}>\n {props.children}\n <div class={classes(\"dds-toast-region\", props.class)} aria-live=\"polite\" aria-relevant=\"additions removals\">\n <For each={toasts()}>{(toast) => (\n <div class={classes(\"dds-toast\", `dds-toast--${toast.tone ?? \"info\"}`)} role={toast.tone === \"danger\" ? \"alert\" : \"status\"}>\n <span>{toast.message}</span>\n {props.dismissLabel ? (\n <button\n type=\"button\"\n class=\"dds-iconbtn dds-iconbtn--sm\"\n aria-label={typeof props.dismissLabel === \"function\" ? props.dismissLabel(toast) : props.dismissLabel}\n onClick={() => dismiss(toast.id)}\n >×</button>\n ) : null}\n </div>\n )}</For>\n </div>\n </ToastContext.Provider>\n );\n}\n\nexport function useToast(): ToastApi {\n const context = useContext(ToastContext);\n if (!context) throw new Error(\"useToast must be called inside <ToastProvider>\");\n return context;\n}\n","import { createUniqueId, type JSX } from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { classes } from \"./utils\";\n\nexport interface TooltipTriggerProps {\n \"aria-describedby\": string;\n onFocus: () => void;\n onBlur: () => void;\n onPointerEnter: () => void;\n onPointerLeave: () => void;\n}\n\nexport interface TooltipProps {\n content: JSX.Element;\n children: (props: TooltipTriggerProps) => JSX.Element;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n class?: string;\n}\n\nexport function Tooltip(props: TooltipProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tooltip-${generated}`;\n const [open, setOpen] = createControllableSignal({\n value: () => props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange,\n });\n const trigger: TooltipTriggerProps = {\n \"aria-describedby\": id(),\n onFocus: () => setOpen(true),\n onBlur: () => setOpen(false),\n onPointerEnter: () => setOpen(true),\n onPointerLeave: () => setOpen(false),\n };\n return (\n <span class={classes(\"dds-tooltip\", props.class)}>\n {props.children(trigger)}\n <span id={id()} class=\"dds-tooltip__bubble\" role=\"tooltip\" hidden={!open()}>{props.content}</span>\n </span>\n );\n}\n"],"mappings":"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"}