@devslab/dds-solid 0.21.2 → 0.22.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/README.ko.md +6 -0
- package/README.md +6 -0
- package/dist/assets/calendar-view-1RO2mtf1.js +456 -0
- package/dist/assets/calendar-view-1RO2mtf1.js.map +1 -0
- package/dist/assets/choice-DoXiK8nc.js +443 -0
- package/dist/assets/choice-DoXiK8nc.js.map +1 -0
- package/dist/assets/utils-Ou0UJRlO.js +11 -0
- package/dist/assets/utils-Ou0UJRlO.js.map +1 -0
- package/dist/calendar-view-CTBTPB4T.js +444 -0
- package/dist/calendar-view-CTBTPB4T.js.map +1 -0
- package/dist/calendar-view.d.ts +16 -0
- package/dist/calendar-view.d.ts.map +1 -0
- package/dist/calendar.d.ts +19 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +95 -0
- package/dist/calendar.js.map +1 -0
- package/dist/calendar.server.js +95 -0
- package/dist/calendar.server.js.map +1 -0
- package/dist/choice-BPMiJlPJ.js +395 -0
- package/dist/choice-BPMiJlPJ.js.map +1 -0
- package/dist/choice-types.d.ts +56 -0
- package/dist/choice-types.d.ts.map +1 -0
- package/dist/combobox.d.ts +4 -0
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +10 -0
- package/dist/combobox.js.map +1 -0
- package/dist/combobox.server.js +10 -0
- package/dist/combobox.server.js.map +1 -0
- package/dist/date-only.d.ts +36 -0
- package/dist/date-only.d.ts.map +1 -0
- package/dist/date-picker.d.ts +10 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +258 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/date-picker.server.js +260 -0
- package/dist/date-picker.server.js.map +1 -0
- package/dist/dropdown-menu.d.ts +31 -0
- package/dist/dropdown-menu.d.ts.map +1 -0
- package/dist/dropdown-menu.js +101 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/dropdown-menu.server.js +111 -0
- package/dist/dropdown-menu.server.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +232 -647
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +26 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +130 -0
- package/dist/input.js.map +1 -0
- package/dist/input.server.js +120 -0
- package/dist/input.server.js.map +1 -0
- package/dist/internal/choice.d.ts +5 -0
- package/dist/internal/choice.d.ts.map +1 -0
- package/dist/popover.d.ts +22 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +76 -0
- package/dist/popover.js.map +1 -0
- package/dist/popover.server.js +79 -0
- package/dist/popover.server.js.map +1 -0
- package/dist/select-picker.d.ts +4 -0
- package/dist/select-picker.d.ts.map +1 -0
- package/dist/select-picker.js +10 -0
- package/dist/select-picker.js.map +1 -0
- package/dist/select-picker.server.js +10 -0
- package/dist/select-picker.server.js.map +1 -0
- package/dist/server.js +28 -445
- package/dist/server.js.map +1 -1
- package/dist/utils-oKxhg9RG.js +11 -0
- package/dist/utils-oKxhg9RG.js.map +1 -0
- package/package.json +63 -6
- package/styles.css +10 -1
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":["createUniqueId","splitProps","JSX","ParentProps","createControllableSignal","useCheckbox","useSwitch","Field","ArkField","classes","describedBy","ButtonTone","ControlSize","ButtonProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","class","tone","size","loading","Button","props","local","rest","_$ssrElement","_$mergeProps","type","undefined","disabled","aria-busy","_tmpl$","_$ssrHydrationKey","_$escape","children","IconButtonProps","Element","IconButton","FieldControlProps","id","FieldProps","label","helpText","error","required","generated","helpId","errorId","control","_$createComponent","Root","invalid","Boolean","ids","helperText","errorText","Label","for","_$ssr","_tmpl$2","HelperText","ErrorText","role","SelectProps","SelectHTMLAttributes","HTMLSelectElement","Select","_tmpl$3","_$ssrAttribute","aria-invalid","CheckableProps","InputHTMLAttributes","HTMLInputElement","checked","defaultChecked","onCheckedChange","inputClass","Checkable","setChecked","value","defaultValue","onChange","_tmpl$4","CheckboxProps","Checkbox","ArkCheckable","kind","RadioProps","Radio","SwitchProps","Switch","options","hiddenInput","details","readOnly","readonly","name","form","String","api","rootProps","attributes","getRootProps","getHiddenInputProps","style","getLabelProps","callInputHandler","handler","FocusEventHandlerUnion","FocusEvent","event","currentTarget","target","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","_$ssr","_tmpl$5","_$ssrHydrationKey","_$ssrAttribute","_$escape","_$createComponent","when","_$memo","_tmpl$","each","row","_tmpl$6","group","groupId","_tmpl$7","item","_tmpl$9","_tmpl$8","_tmpl$2","_tmpl$3","_tmpl$4","Dialog","ArkDialog","useDialog","usePresenceContext","FocusTrap","ariaHidden","createEffect","createMemo","createSignal","createUniqueId","onCleanup","Show","JSX","Dynamic","isServer","Portal","classes","focusable","join","DialogProps","open","defaultOpen","onOpenChange","title","Element","description","children","actions","closeOnEscape","closeOnOutside","class","id","role","contentAs","portal","portalMount","HTMLElement","unstyled","overlayClass","titleClass","descriptionClass","actionsClass","contentProps","Omit","HTMLAttributes","initialFocus","finalFocus","restoreFocus","onEscapeKeyDown","event","KeyboardEvent","additionalFocusContainers","frame","parts","DialogFrameParts","props","generated","panel","setPanel","api","details","closeOnInteractOutside","initialFocusEl","finalFocusEl","modal","trapFocus","preventScroll","persistentElements","filter","element","Boolean","map","ids","content","opener","ownerDocument","activeElement","trap","removeIsolation","ready","setReady","containers","isConnected","defaultView","requestAnimationFrame","document","escapeDeactivates","allowOutsideClick","delayInitialFocus","fallbackFocus","getShadowRoot","undefined","setReturnFocus","activate","targets","updateContainerElements","defer","cancelAnimationFrame","deactivate","returnFocus","cls","base","extra","Content","presence","nativeContent","merge","_$createComponent","_$mergeProps","component","Positioner","asChild","aria-describedby","_$memo","Title","Description","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","_$escape","RootProvider","value","lazyMount","unmountOnExit","when","fallback","mount","RadioGroup","ArkRadioGroup","For","JSX","classes","RadioOption","value","label","Element","disabled","RadioGroupProps","options","defaultValue","onValueChange","name","form","required","class","props","initialValue","_$createComponent","Root","details","children","Label","each","option","Item","ItemHiddenInput","style","ItemText","directionPolicy","icons","DdsIconName","splitProps","JSX","classes","IconProps","Omit","SvgSVGAttributes","SVGSVGElement","name","label","size","directional","Icon","props","local","rest","icon","mirrorInRtl","includes","_$ssrElement","_$mergeProps","class","cssClass","viewBox","width","height","fill","stroke","stroke-width","strokeWidth","role","undefined","aria-label","aria-hidden","_$ssr","_tmpl$2","_$ssrHydrationKey","_$escape","_tmpl$","body","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","_$ssr","_tmpl$","_$ssrHydrationKey","_$escape","children","_tmpl$2","_$ssrAttribute","Tabs","ArkTabs","useTabsContext","LocaleProvider","createUniqueId","mergeProps","splitProps","JSX","ParentProps","classes","useDirection","Direction","TabsProps","value","defaultValue","onValueChange","orientation","children","Element","id","dir","activationMode","tabId","panelId","unstyled","asChild","props","HTMLAttributes","HTMLDivElement","generated","root","direction","child","merge","ref","element","undefined","_$createComponent","locale","Root","_$mergeProps","details","lazyMount","unmountOnExit","class","ids","trigger","content","TabList","local","rest","List","TabProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","Tab","Trigger","TabPanelProps","TabPanel","tabs","inactive","style","replace","display","Content","hidden","inert","Toast","ArkToast","Toaster","createToaster","space","createContext","createUniqueId","onCleanup","useContext","JSX","classes","ToastTone","ToastInput","message","Element","tone","duration","ToastRecord","id","ToastApi","show","toast","dismiss","clear","ToastContext","ToastProviderProps","children","defaultDuration","dismissLabel","regionLabel","class","ToastProvider","props","prefix","region","HTMLDivElement","scopedDocument","Document","getRootNode","Proxy","ownerDocument","document","get","target","property","getElementById","value","Reflect","bind","toaster","placement","overlap","gap","offsets","removeDelay","hotkey","max","Number","MAX_SAFE_INTEGER","pauseOnPageIdle","sequence","api","input","create","description","type","Infinity","meta","dds","remove","_$createComponent","Provider","role","aria-label","record","Root","Description","CloseTrigger","_$memo","useToast","context","Error","Tooltip","ArkTooltip","useTooltip","createUniqueId","splitProps","JSX","classes","createControllableSignal","TooltipTriggerProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","onFocus","onBlur","onPointerEnter","onPointerLeave","TooltipProps","content","Element","children","props","open","defaultOpen","onOpenChange","id","class","generated","setOpen","value","defaultValue","onChange","next","api","ids","details","openDelay","closeDelay","_$createComponent","RootProvider","lazyMount","unmountOnExit","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","_$escape","Trigger","asChild","merge","attributes","Positioner","Content","DatePicker","ArkDatePicker","parseDate","Portal","For","Button","Field","DatePickerProps","label","value","onChange","locale","timeZone","disabled","min","max","CalendarIcon","_$ssr","_tmpl$","_$ssrHydrationKey","Chevron","props","next","_tmpl$2","_$ssrAttribute","_$createComponent","children","control","Root","_$memo","undefined","startOfWeek","minView","maxView","fixedWeeks","translations","dayCell","state","valueText","clearTrigger","format","v","toString","onValueChange","details","valueAsString","positioning","placement","gutter","Control","Input","_$mergeProps","placeholder","autocomplete","Trigger","aria-label","Positioner","Content","View","view","Context","picker","ViewControl","PrevTrigger","RangeText","NextTrigger","Table","TableHead","TableRow","each","weekDays","day","TableHeader","short","TableBody","weeks","week","TableCell","TableCellTrigger","_tmpl$3","_$escape","type","tone","onClick","selectToday","ClearTrigger"],"sources":["../src/controllable.ts","../src/utils.ts","../src/controls.tsx","../src/console-shell.tsx","../src/dialog.tsx","../src/radio-group.tsx","../src/icon.tsx","../src/status-pill.tsx","../src/direction.ts","../src/tabs.tsx","../src/toast.tsx","../src/tooltip.tsx","../src/date-picker.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 { useCheckbox } from \"@ark-ui/solid/checkbox\";\nimport { useSwitch } from \"@ark-ui/solid/switch\";\nimport { Field as ArkField } from \"@ark-ui/solid/field\";\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 <ArkField.Root id={id()} required={props.required ?? false} invalid={Boolean(props.error)} ids={{ control: `${id()}-root`, helperText: `${id()}-help`, errorText: `${id()}-error` }} class={classes(\"dds-field\", props.error ? \"dds-field--error\" : undefined, props.class)}>\n <ArkField.Label class=\"dds-field__label\" for={id()}>{props.label}{props.required && <span aria-hidden=\"true\"> *</span>}</ArkField.Label>\n {typeof props.children === \"function\" ? props.children(control()) : props.children}\n {props.helpText && <ArkField.HelperText class=\"dds-field__help\">{props.helpText}</ArkField.HelperText>}\n {props.error && <ArkField.ErrorText class=\"dds-field__error\" role=\"alert\">{props.error}</ArkField.ErrorText>}\n </ArkField.Root>\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) => <ArkCheckable {...props} kind=\"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) => <ArkCheckable {...props} kind=\"switch\" />;\n\nfunction ArkCheckable(props: CheckableProps & { kind: \"checkbox\" | \"switch\" }) {\n const generated = createUniqueId();\n const [local, rest] = splitProps(props, [\"checked\", \"defaultChecked\", \"onCheckedChange\", \"label\", \"class\", \"inputClass\", \"kind\", \"id\", \"onClick\", \"onFocusIn\", \"onFocusOut\", \"style\"]);\n const options = () => ({\n id: `dds-check-${generated}`,\n ids: { hiddenInput: local.id ?? `dds-check-${generated}-input` },\n checked: local.checked, defaultChecked: local.defaultChecked,\n onCheckedChange: (details: { checked: boolean | \"indeterminate\" }) => local.onCheckedChange?.(details.checked === true),\n disabled: rest.disabled, required: rest.required, readOnly: rest.readonly,\n name: rest.name, form: rest.form, value: String(rest.value ?? \"on\"),\n });\n const api = local.kind === \"switch\" ? useSwitch(options) : useCheckbox(options);\n const inputClass = () => local.kind === \"switch\" ? \"dds-switch__input\" : \"dds-check__input\";\n const rootProps = () => {\n const [, attributes] = splitProps(api().getRootProps(), [\"onClick\"]);\n return attributes;\n };\n return <label {...rootProps()} class={classes(local.kind === \"switch\" ? \"dds-switch\" : \"dds-check\", local.class)}>\n <input {...api().getHiddenInputProps()} {...rest}\n ref={(input) => {\n // Ark normalizes defaultChecked to checked. Preserve the native reset\n // baseline as well when rendering its input visibly with DDS CSS.\n input.defaultChecked = local.checked ?? local.defaultChecked ?? false;\n if (typeof rest.ref === \"function\") rest.ref(input);\n }}\n type=\"checkbox\" role={local.kind === \"switch\" ? \"switch\" : undefined}\n class={classes(inputClass(), local.inputClass)}\n style={local.style ?? {}} checked={api().checked}\n onFocusIn={(event) => {\n callInputHandler(api().getHiddenInputProps().onFocusIn, event);\n callInputHandler(local.onFocusIn, event);\n }}\n onFocusOut={(event) => {\n callInputHandler(api().getHiddenInputProps().onFocusOut, event);\n callInputHandler(local.onFocusOut, event);\n }}\n onClick={(event) => {\n if (typeof local.onClick === \"function\") local.onClick(event);\n else if (local.onClick) local.onClick[0](local.onClick[1], event);\n if (!event.defaultPrevented) {\n const handler = api().getHiddenInputProps().onClick;\n if (typeof handler === \"function\") handler(event);\n else if (handler) handler[0](handler[1], event);\n }\n }}\n />\n <span {...api().getLabelProps()}>{local.label}</span>\n </label>;\n}\n\nfunction callInputHandler(handler: JSX.FocusEventHandlerUnion<HTMLInputElement, FocusEvent> | undefined, event: FocusEvent & { currentTarget: HTMLInputElement; target: HTMLInputElement }) {\n if (typeof handler === \"function\") handler(event);\n else if (handler) handler[0](handler[1], event);\n}\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 { Dialog as ArkDialog, useDialog } from \"@ark-ui/solid/dialog\";\nimport { usePresenceContext } from \"@ark-ui/solid/presence\";\nimport { FocusTrap } from \"@zag-js/focus-trap\";\nimport { ariaHidden } from \"@zag-js/aria-hidden\";\nimport { createEffect, createMemo, createSignal, createUniqueId, onCleanup, Show, type JSX } from \"solid-js\";\nimport { Dynamic, isServer, Portal } from \"solid-js/web\";\nimport { classes } from \"./utils\";\n\nexport const focusable = [\n \"a[href]\", \"button:not([disabled])\", \"input:not([disabled])\",\n \"select:not([disabled])\", \"textarea:not([disabled])\", \"[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 role?: \"dialog\" | \"alertdialog\";\n contentAs?: \"div\" | \"section\";\n portal?: boolean;\n portalMount?: HTMLElement;\n unstyled?: boolean;\n overlayClass?: string;\n titleClass?: string;\n descriptionClass?: string;\n actionsClass?: string;\n contentProps?: Omit<JSX.HTMLAttributes<HTMLElement>, \"children\" | \"class\" | \"id\" | \"role\" | \"ref\">;\n initialFocus?: () => HTMLElement | null | undefined;\n finalFocus?: () => HTMLElement | null | undefined;\n restoreFocus?: boolean;\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /** Authorized external regions join both the Tab cycle and modal accessibility scope. */\n additionalFocusContainers?: () => readonly (HTMLElement | null | undefined)[];\n /** Customize the inner layout using DDS-owned, already labelled title/description nodes. */\n frame?: (parts: DialogFrameParts) => JSX.Element;\n}\n\nexport interface DialogFrameParts {\n title: JSX.Element;\n description: JSX.Element;\n children: JSX.Element;\n actions: JSX.Element;\n}\n\nexport function Dialog(props: DialogProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-dialog-${generated}`;\n const [panel, setPanel] = createSignal<HTMLElement>();\n const api = useDialog(() => ({\n id: id(), open: props.open, defaultOpen: props.defaultOpen,\n onOpenChange: (details) => props.onOpenChange?.(details.open),\n closeOnEscape: props.closeOnEscape ?? true,\n closeOnInteractOutside: props.closeOnOutside ?? true,\n onEscapeKeyDown: props.onEscapeKeyDown,\n initialFocusEl: () => props.initialFocus?.() ?? null,\n finalFocusEl: () => props.finalFocus?.() ?? null,\n restoreFocus: props.restoreFocus ?? true,\n // Ark handles ordinary dialogs. A multi-container modal needs a shared\n // Zag trap and isolation target list instead of Ark's single content node.\n modal: !props.additionalFocusContainers,\n trapFocus: !props.additionalFocusContainers,\n preventScroll: true,\n role: props.role ?? \"dialog\",\n persistentElements: isServer ? [] : props.additionalFocusContainers?.().filter((element): element is HTMLElement => Boolean(element)).map(element => () => element),\n ids: { content: id(), title: `${id()}-title`, description: `${id()}-description` },\n }));\n const open = createMemo(() => api().open);\n createEffect(() => {\n const content = panel();\n if (!open() || !props.additionalFocusContainers || !content) return;\n const opener = content.ownerDocument.activeElement;\n let trap: FocusTrap | undefined;\n let removeIsolation: (() => void) | undefined;\n const [ready, setReady] = createSignal(false);\n const containers = () => [content, ...props.additionalFocusContainers!().filter((element): element is HTMLElement => Boolean(element?.isConnected && element.ownerDocument === content.ownerDocument))];\n const frame = content.ownerDocument.defaultView!.requestAnimationFrame(() => {\n trap = new FocusTrap(containers(), {\n document: content.ownerDocument,\n escapeDeactivates: false, allowOutsideClick: true, preventScroll: true,\n delayInitialFocus: false, fallbackFocus: content, getShadowRoot: true,\n initialFocus: () => props.initialFocus?.() ?? undefined,\n setReturnFocus: () => props.finalFocus?.() ?? (opener instanceof HTMLElement && opener.isConnected ? opener : false),\n });\n setReady(true);\n trap.activate();\n });\n createEffect(() => {\n if (!ready()) return;\n const targets = containers();\n trap!.updateContainerElements(targets);\n removeIsolation?.();\n removeIsolation = ariaHidden(targets, { defer: false });\n });\n onCleanup(() => {\n content.ownerDocument.defaultView!.cancelAnimationFrame(frame);\n removeIsolation?.();\n trap?.deactivate({ returnFocus: props.restoreFocus !== false });\n });\n });\n const cls = (base: string, extra?: string) => classes(props.unstyled ? undefined : base, extra);\n const Content = () => {\n const presence = usePresenceContext();\n const nativeContent = (merge: unknown) => <Dynamic component={props.contentAs ?? \"div\"}\n {...(merge as (props: JSX.HTMLAttributes<HTMLElement>) => JSX.HTMLAttributes<HTMLElement>)({})}\n ref={(element: HTMLElement) => {\n // Ark's asChild merger omits refs. Register both its presence node and\n // DDS's shared focus container on the actual native content element.\n presence().ref(element);\n setPanel(element);\n }}\n />;\n return <ArkDialog.Positioner class={cls(\"dds-dialog-overlay\", props.overlayClass)}>\n <ArkDialog.Content {...props.contentProps} ref={setPanel} class={cls(\"dds-dialog\", props.class)}\n {...(props.contentAs ? { asChild: nativeContent } : {})}\n role={props.role ?? \"dialog\"} aria-modal=\"true\" aria-describedby={props.description ? `${id()}-description` : undefined}>\n {(() => {\n const parts: DialogFrameParts = {\n get title() { return <ArkDialog.Title class={cls(\"dds-dialog__title\", props.titleClass)}>{props.title}</ArkDialog.Title>; },\n get description() { return props.description && <ArkDialog.Description class={cls(\"dds-dialog__body\", props.descriptionClass)}>{props.description}</ArkDialog.Description>; },\n get children() { return props.children; },\n get actions() { return props.actions && <div class={cls(\"dds-dialog__actions\", props.actionsClass)}>{props.actions}</div>; },\n };\n return props.frame ? props.frame(parts) : <>{parts.title}{parts.description}{parts.children}{parts.actions}</>;\n })()}\n </ArkDialog.Content>\n </ArkDialog.Positioner>;\n };\n return <ArkDialog.RootProvider value={api} lazyMount unmountOnExit>\n <Show when={props.portal} fallback={<Content />}><Portal {...(props.portalMount ? { mount: props.portalMount } : {})}><Content /></Portal></Show>\n </ArkDialog.RootProvider>;\n}\n","import { RadioGroup as ArkRadioGroup } from \"@ark-ui/solid/radio-group\";\nimport { For, type JSX } from \"solid-js\";\nimport { classes } from \"./utils\";\n\nexport interface RadioOption {\n value: string;\n label: JSX.Element;\n disabled?: boolean;\n}\nexport interface RadioGroupProps {\n options: readonly RadioOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n form?: string;\n disabled?: boolean;\n required?: boolean;\n label: JSX.Element;\n class?: string;\n}\n\n/** Grouped radios delegate selection and roving keyboard focus to Ark. */\nexport function RadioGroup(props: RadioGroupProps) {\n const initialValue = props.value ?? props.defaultValue;\n return <ArkRadioGroup.Root\n value={props.value} defaultValue={props.defaultValue}\n name={props.name} form={props.form} disabled={props.disabled} required={props.required}\n onValueChange={(details) => { if (details.value !== null) props.onValueChange?.(details.value); }}\n class={classes(\"dds-radio-group\", props.class)}\n >\n <ArkRadioGroup.Label class=\"dds-field__label\">{props.label}</ArkRadioGroup.Label>\n <For each={props.options}>{(option) => <ArkRadioGroup.Item value={option.value} disabled={option.disabled} class=\"dds-check\">\n <ArkRadioGroup.ItemHiddenInput class=\"dds-check__input\" style={{}}\n ref={(input) => { input.defaultChecked = initialValue === option.value; }} />\n <ArkRadioGroup.ItemText>{option.label}</ArkRadioGroup.ItemText>\n </ArkRadioGroup.Item>}</For>\n </ArkRadioGroup.Root>;\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 { createSignal, onCleanup, onMount, type Accessor } from \"solid-js\";\n\nexport type Direction = \"ltr\" | \"rtl\";\n\n/** SSR callers may supply direction; clients also inherit their containing DOM. */\nexport function useDirection(element: () => HTMLElement | undefined, explicit: Accessor<Direction | undefined>) {\n const [ambient, setAmbient] = createSignal<Direction>(\"ltr\");\n onMount(() => {\n const parent = element()?.parentElement;\n if (!parent) return;\n const update = () => setAmbient(getComputedStyle(parent).direction === \"rtl\" ? \"rtl\" : \"ltr\");\n update();\n const observer = new MutationObserver(update);\n observer.observe(parent.ownerDocument.documentElement, { attributes: true, subtree: true, attributeFilter: [\"dir\"] });\n onCleanup(() => observer.disconnect());\n });\n return () => explicit() ?? ambient();\n}\n","import { Tabs as ArkTabs, useTabsContext } from \"@ark-ui/solid/tabs\";\nimport { LocaleProvider } from \"@ark-ui/solid/locale\";\nimport { createUniqueId, mergeProps, splitProps, type JSX, type ParentProps } from \"solid-js\";\nimport { classes } from \"./utils\";\nimport { useDirection, type Direction } from \"./direction\";\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 dir?: Direction;\n activationMode?: \"automatic\" | \"manual\";\n tabId?: (value: string) => string;\n panelId?: (value: string) => string;\n unstyled?: boolean;\n asChild?: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;\n}\n\nexport function Tabs(props: TabsProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tabs-${generated}`;\n let root: HTMLDivElement | undefined;\n const direction = useDirection(() => root, () => props.dir);\n const child = props.asChild ? (merge: unknown) => props.asChild!(mergeProps(\n (merge as (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.HTMLAttributes<HTMLDivElement>)({}),\n { ref: (element: HTMLDivElement) => { root = element; } },\n )) : undefined;\n return <LocaleProvider locale={direction() === \"rtl\" ? \"ar\" : \"en\"}><ArkTabs.Root ref={root}\n id={id()} value={props.value} defaultValue={props.defaultValue}\n orientation={props.orientation ?? \"horizontal\"} activationMode={props.activationMode ?? \"automatic\"}\n onValueChange={(details) => props.onValueChange?.(details.value)}\n lazyMount={false} unmountOnExit={false} class={props.unstyled ? undefined : \"dds-tabs-root\"}\n {...(child ? { asChild: child } : {})}\n ids={{ trigger: (value) => props.tabId?.(value) ?? `${id()}-tab-${value}`, content: (value) => props.panelId?.(value) ?? `${id()}-panel-${value}` }}\n >{props.children}</ArkTabs.Root></LocaleProvider>;\n}\n\nexport function TabList(props: ParentProps<JSX.HTMLAttributes<HTMLDivElement> & { unstyled?: boolean }>) {\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"unstyled\"]);\n return <ArkTabs.List {...rest} class={classes(!local.unstyled && \"dds-tabs\", local.class)}>{local.children}</ArkTabs.List>;\n}\n\nexport interface TabProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"class\"> {\n value: string;\n class?: string;\n unstyled?: boolean;\n asChild?: (props: JSX.ButtonHTMLAttributes<HTMLButtonElement>) => JSX.Element;\n}\n\nexport function Tab(props: ParentProps<TabProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"value\", \"unstyled\", \"asChild\"]);\n // Ark's factory supplies a merger; DDS exposes native button attributes.\n const child = local.asChild ? (merge: unknown) => local.asChild!(mergeProps(\n (merge as (props: JSX.ButtonHTMLAttributes<HTMLButtonElement>) => JSX.ButtonHTMLAttributes<HTMLButtonElement>)({}),\n { ref: props.ref },\n )) : undefined;\n return <ArkTabs.Trigger {...rest} value={local.value} class={classes(!local.unstyled && \"dds-tab\", local.class)} {...(child ? { asChild: child } : {})}>{local.children}</ArkTabs.Trigger>;\n}\n\nexport interface TabPanelProps extends JSX.HTMLAttributes<HTMLDivElement> { value: string }\n\nexport function TabPanel(props: ParentProps<TabPanelProps>) {\n const [local, rest] = splitProps(props, [\"value\", \"children\", \"style\"]);\n const tabs = useTabsContext();\n const inactive = () => tabs().value !== local.value;\n const style = () => !inactive() ? local.style : typeof local.style === \"string\"\n ? `${local.style.replace(/;+\\s*$/, \"\")};display:none;`\n : { ...local.style, display: \"none\" };\n return <ArkTabs.Content {...rest} value={local.value} style={style()} hidden={inactive()} inert={inactive()}>{local.children}</ArkTabs.Content>;\n}\n","import { Toast as ArkToast, Toaster, createToaster } from \"@ark-ui/solid/toast\";\nimport { space } from \"@devslab/dds-tokens\";\nimport { createContext, createUniqueId, onCleanup, useContext, type JSX } from \"solid-js\";\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}\nconst ToastContext = createContext<ToastApi>();\n\nexport interface ToastProviderProps {\n children: JSX.Element;\n defaultDuration?: number;\n dismissLabel?: string | ((toast: ToastRecord) => string);\n /** Optional localized label for the notification region. */\n regionLabel?: string;\n class?: string;\n}\n\nexport function ToastProvider(props: ToastProviderProps) {\n const prefix = createUniqueId();\n let region: HTMLDivElement | undefined;\n let scopedDocument: Document | undefined;\n // Zag derives group IDs from placement rather than provider identity. Keep\n // each provider's physical ID unique, and scope that one logical lookup.\n const getRootNode = () => scopedDocument ??= new Proxy(region?.ownerDocument ?? document, {\n get(target, property) {\n if (property === \"getElementById\") return (id: string) => id === \"toast-group:bottom-end\" ? region ?? null : target.getElementById(id);\n const value = Reflect.get(target, property, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n const toaster = createToaster({\n placement: \"bottom-end\", overlap: false, gap: space[8],\n // An empty array matches EVERY key in Zag. An impossible physical code\n // disables the global shortcut without stealing application focus.\n offsets: \"var(--dds-space-16)\", removeDelay: 0, hotkey: [\"DDS_NO_HOTKEY\"],\n max: Number.MAX_SAFE_INTEGER, pauseOnPageIdle: true,\n });\n let sequence = 0;\n const api: ToastApi = {\n show(input) {\n const id = `dds-toast-${prefix}-${++sequence}`;\n const duration = input.duration ?? props.defaultDuration ?? 5000;\n toaster.create({\n id, description: input.message, type: input.tone === \"danger\" ? \"error\" : input.tone ?? \"info\",\n duration: duration > 0 ? duration : Infinity,\n meta: { dds: { ...input, id } satisfies ToastRecord },\n });\n return id;\n },\n dismiss: (id) => toaster.remove(id),\n clear: () => toaster.remove(),\n };\n onCleanup(api.clear);\n return <ToastContext.Provider value={api}>\n {props.children}\n <Toaster toaster={toaster} ref={region} getRootNode={getRootNode} id={`dds-toast-region-${prefix}`}\n class={classes(\"dds-toast-region\", props.class)}\n role={props.regionLabel ? \"region\" : \"presentation\"} aria-label={props.regionLabel ?? \"\"}\n >{(toast) => {\n const record = () => toast().meta?.dds as ToastRecord;\n return <ArkToast.Root\n class={classes(\"dds-toast\", `dds-toast--${record().tone ?? \"info\"}`)}\n role={record().tone === \"danger\" ? \"alert\" : \"status\"}\n >\n <ArkToast.Description>{toast().description}</ArkToast.Description>\n {props.dismissLabel && <ArkToast.CloseTrigger\n class=\"dds-iconbtn dds-iconbtn--sm\"\n aria-label={typeof props.dismissLabel === \"function\" ? props.dismissLabel(record()) : props.dismissLabel}\n >×</ArkToast.CloseTrigger>}\n </ArkToast.Root>;\n }}</Toaster>\n </ToastContext.Provider>;\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 { Tooltip as ArkTooltip, useTooltip } from \"@ark-ui/solid/tooltip\";\nimport { createUniqueId, splitProps, type JSX } from \"solid-js\";\nimport { classes } from \"./utils\";\nimport { createControllableSignal } from \"./controllable\";\n\n/** Spread all trigger props onto the focusable trigger element. */\nexport interface TooltipTriggerProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"aria-describedby\" | \"onFocus\" | \"onBlur\" | \"onPointerEnter\" | \"onPointerLeave\"> {\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, defaultValue: props.defaultOpen ?? false,\n onChange: (next) => props.onOpenChange?.(next),\n });\n const api = useTooltip(() => ({\n id: id(), ids: { content: id() }, open: open(),\n onOpenChange: (details) => setOpen(details.open), openDelay: 0, closeDelay: 0,\n }));\n return <ArkTooltip.RootProvider value={api} lazyMount={false} unmountOnExit={false}>\n <span class={classes(\"dds-tooltip\", props.class)}>\n <ArkTooltip.Trigger asChild={(merge) => {\n const [, attributes] = splitProps(merge(), [\"onFocusIn\", \"onFocusOut\"]);\n return props.children({\n ...attributes, \"aria-describedby\": id(),\n // Preserve DDS's established composable, zero-argument callbacks.\n onFocus: () => api().setOpen(true), onBlur: () => api().setOpen(false),\n onPointerEnter: () => api().setOpen(true), onPointerLeave: () => api().setOpen(false),\n }); }} />\n <ArkTooltip.Positioner>\n <ArkTooltip.Content class=\"dds-tooltip__bubble\">{props.content}</ArkTooltip.Content>\n </ArkTooltip.Positioner>\n </span>\n </ArkTooltip.RootProvider>;\n}\n","import {DatePicker as ArkDatePicker,parseDate} from '@ark-ui/solid/date-picker';\nimport {Portal} from 'solid-js/web';\nimport {For} from 'solid-js';\nimport {Button,Field} from './controls';\n\nexport interface DatePickerProps {\n label:string;\n /** ISO calendar date (YYYY-MM-DD), or an empty string. */\n value:string;\n onChange:(value:string)=>void;\n locale?:string;\n timeZone?:string;\n disabled?:boolean;\n min?:string;\n max?:string;\n}\nfunction CalendarIcon(){return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><rect x=\"3.5\" y=\"5.5\" width=\"17\" height=\"15\" rx=\"2\"/><path d=\"M7.5 3v5M16.5 3v5M3.5 10.5h17\"/></svg>;}\nfunction Chevron(props:{next?:boolean}){return <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d={props.next?'m9 5 7 7-7 7':'m15 5-7 7 7 7'}/></svg>;}\n\n\nexport function DatePicker(props:DatePickerProps){\n return (\n <Field label={props.label}>\n {control=><ArkDatePicker.Root locale={props.locale??'ko-KR'} timeZone={props.timeZone??'Asia/Seoul'} disabled={props.disabled} min={props.min?parseDate(props.min):undefined} max={props.max?parseDate(props.max):undefined} startOfWeek={0} minView=\"day\" maxView=\"day\" fixedWeeks translations={{dayCell:state=>`${state.valueText} 선택`,clearTrigger:'선택 날짜 지우기'}} value={props.value?[parseDate(props.value)]:[]} format={v=>v.toString()} onValueChange={details=>props.onChange(details.valueAsString[0]||'')} positioning={{placement:'bottom-start',gutter:8}}>\n <ArkDatePicker.Control class=\"dds-date-picker-control\">\n <ArkDatePicker.Input {...control} placeholder=\"YYYY-MM-DD\" autocomplete=\"off\"/>\n <ArkDatePicker.Trigger class=\"dds-btn dds-btn--secondary\" aria-label={`${props.label} 달력 열기`}><CalendarIcon/></ArkDatePicker.Trigger>\n </ArkDatePicker.Control>\n <Portal><ArkDatePicker.Positioner class=\"dds-date-picker-positioner\"><ArkDatePicker.Content class=\"dds-date-picker-content\" aria-label={`${props.label} 날짜 선택`}>\n <ArkDatePicker.View view=\"day\">\n <ArkDatePicker.Context>{picker=><>\n <ArkDatePicker.ViewControl class=\"dds-date-picker-header\">\n <ArkDatePicker.PrevTrigger class=\"dds-btn dds-btn--secondary\" aria-label=\"이전 달\"><Chevron/></ArkDatePicker.PrevTrigger>\n <ArkDatePicker.RangeText/>\n <ArkDatePicker.NextTrigger class=\"dds-btn dds-btn--secondary\" aria-label=\"다음 달\"><Chevron next/></ArkDatePicker.NextTrigger>\n </ArkDatePicker.ViewControl>\n <ArkDatePicker.Table class=\"dds-date-picker-table\">\n <ArkDatePicker.TableHead><ArkDatePicker.TableRow><For each={picker().weekDays}>{day=><ArkDatePicker.TableHeader>{day.short}</ArkDatePicker.TableHeader>}</For></ArkDatePicker.TableRow></ArkDatePicker.TableHead>\n <ArkDatePicker.TableBody><For each={picker().weeks}>{week=><ArkDatePicker.TableRow><For each={week}>{day=><ArkDatePicker.TableCell value={day}><ArkDatePicker.TableCellTrigger>{day.day}</ArkDatePicker.TableCellTrigger></ArkDatePicker.TableCell>}</For></ArkDatePicker.TableRow>}</For></ArkDatePicker.TableBody>\n </ArkDatePicker.Table>\n <div class=\"dds-date-picker-footer\"><Button type=\"button\" tone=\"secondary\" onClick={()=>picker().selectToday()}>오늘</Button><ArkDatePicker.ClearTrigger class=\"dds-btn dds-btn--secondary\">지우기</ArkDatePicker.ClearTrigger></div>\n </>}</ArkDatePicker.Context>\n </ArkDatePicker.View>\n </ArkDatePicker.Content></ArkDatePicker.Positioner></Portal>\n </ArkDatePicker.Root>}\n </Field>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","names":["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","_$ssr","_tmpl$5","_$ssrHydrationKey","_$ssrAttribute","_$escape","_$createComponent","when","_$memo","_tmpl$","each","row","_tmpl$6","group","groupId","_tmpl$7","item","_tmpl$9","_tmpl$8","_tmpl$2","_tmpl$3","_tmpl$4","Dialog","ArkDialog","useDialog","usePresenceContext","FocusTrap","ariaHidden","createEffect","createMemo","createSignal","createUniqueId","onCleanup","Show","JSX","Dynamic","isServer","Portal","classes","focusable","join","DialogProps","open","defaultOpen","onOpenChange","title","Element","description","children","actions","closeOnEscape","closeOnOutside","class","id","role","contentAs","portal","portalMount","HTMLElement","unstyled","overlayClass","titleClass","descriptionClass","actionsClass","contentProps","Omit","HTMLAttributes","initialFocus","finalFocus","restoreFocus","onEscapeKeyDown","event","KeyboardEvent","additionalFocusContainers","frame","parts","DialogFrameParts","props","generated","panel","setPanel","api","details","closeOnInteractOutside","initialFocusEl","finalFocusEl","modal","trapFocus","preventScroll","persistentElements","filter","element","Boolean","map","ids","content","opener","ownerDocument","activeElement","trap","removeIsolation","ready","setReady","containers","isConnected","defaultView","requestAnimationFrame","document","escapeDeactivates","allowOutsideClick","delayInitialFocus","fallbackFocus","getShadowRoot","undefined","setReturnFocus","activate","targets","updateContainerElements","defer","cancelAnimationFrame","deactivate","returnFocus","cls","base","extra","Content","presence","nativeContent","merge","_$createComponent","_$mergeProps","component","Positioner","asChild","aria-describedby","_$memo","Title","Description","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","_$escape","RootProvider","value","lazyMount","unmountOnExit","when","fallback","mount","RadioGroup","ArkRadioGroup","For","JSX","classes","RadioOption","value","label","Element","disabled","RadioGroupProps","options","defaultValue","onValueChange","name","form","required","class","props","initialValue","_$createComponent","Root","details","children","Label","each","option","Item","ItemHiddenInput","style","ItemText","directionPolicy","icons","DdsIconName","splitProps","JSX","classes","IconProps","Omit","SvgSVGAttributes","SVGSVGElement","name","label","size","directional","Icon","props","local","rest","icon","mirrorInRtl","includes","_$ssrElement","_$mergeProps","class","cssClass","viewBox","width","height","fill","stroke","stroke-width","strokeWidth","role","undefined","aria-label","aria-hidden","_$ssr","_tmpl$2","_$ssrHydrationKey","_$escape","_tmpl$","body","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","_$ssr","_tmpl$","_$ssrHydrationKey","_$escape","children","_tmpl$2","_$ssrAttribute","Tabs","ArkTabs","useTabsContext","LocaleProvider","createUniqueId","mergeProps","splitProps","JSX","ParentProps","classes","useDirection","Direction","TabsProps","value","defaultValue","onValueChange","orientation","children","Element","id","dir","activationMode","tabId","panelId","unstyled","asChild","props","HTMLAttributes","HTMLDivElement","generated","root","direction","child","merge","ref","element","undefined","_$createComponent","locale","Root","_$mergeProps","details","lazyMount","unmountOnExit","class","ids","trigger","content","TabList","local","rest","List","TabProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","Tab","Trigger","TabPanelProps","TabPanel","tabs","inactive","style","replace","display","Content","hidden","inert","Toast","ArkToast","Toaster","createToaster","space","createContext","createUniqueId","onCleanup","useContext","JSX","classes","ToastTone","ToastInput","message","Element","tone","duration","ToastRecord","id","ToastApi","show","toast","dismiss","clear","ToastContext","ToastProviderProps","children","defaultDuration","dismissLabel","regionLabel","class","ToastProvider","props","prefix","region","HTMLDivElement","scopedDocument","Document","getRootNode","Proxy","ownerDocument","document","get","target","property","getElementById","value","Reflect","bind","toaster","placement","overlap","gap","offsets","removeDelay","hotkey","max","Number","MAX_SAFE_INTEGER","pauseOnPageIdle","sequence","api","input","create","description","type","Infinity","meta","dds","remove","_$createComponent","Provider","role","aria-label","record","Root","Description","CloseTrigger","_$memo","useToast","context","Error","Tooltip","ArkTooltip","useTooltip","createUniqueId","splitProps","JSX","classes","createControllableSignal","TooltipTriggerProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","onFocus","onBlur","onPointerEnter","onPointerLeave","TooltipProps","content","Element","children","props","open","defaultOpen","onOpenChange","id","class","generated","setOpen","value","defaultValue","onChange","next","api","ids","details","openDelay","closeDelay","_$createComponent","RootProvider","lazyMount","unmountOnExit","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","_$escape","Trigger","asChild","merge","attributes","Positioner","Content"],"sources":["../src/console-shell.tsx","../src/dialog.tsx","../src/radio-group.tsx","../src/icon.tsx","../src/status-pill.tsx","../src/direction.ts","../src/tabs.tsx","../src/toast.tsx","../src/tooltip.tsx"],"sourcesContent":["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 { Dialog as ArkDialog, useDialog } from \"@ark-ui/solid/dialog\";\nimport { usePresenceContext } from \"@ark-ui/solid/presence\";\nimport { FocusTrap } from \"@zag-js/focus-trap\";\nimport { ariaHidden } from \"@zag-js/aria-hidden\";\nimport { createEffect, createMemo, createSignal, createUniqueId, onCleanup, Show, type JSX } from \"solid-js\";\nimport { Dynamic, isServer, Portal } from \"solid-js/web\";\nimport { classes } from \"./utils\";\n\nexport const focusable = [\n \"a[href]\", \"button:not([disabled])\", \"input:not([disabled])\",\n \"select:not([disabled])\", \"textarea:not([disabled])\", \"[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 role?: \"dialog\" | \"alertdialog\";\n contentAs?: \"div\" | \"section\";\n portal?: boolean;\n portalMount?: HTMLElement;\n unstyled?: boolean;\n overlayClass?: string;\n titleClass?: string;\n descriptionClass?: string;\n actionsClass?: string;\n contentProps?: Omit<JSX.HTMLAttributes<HTMLElement>, \"children\" | \"class\" | \"id\" | \"role\" | \"ref\">;\n initialFocus?: () => HTMLElement | null | undefined;\n finalFocus?: () => HTMLElement | null | undefined;\n restoreFocus?: boolean;\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /** Authorized external regions join both the Tab cycle and modal accessibility scope. */\n additionalFocusContainers?: () => readonly (HTMLElement | null | undefined)[];\n /** Customize the inner layout using DDS-owned, already labelled title/description nodes. */\n frame?: (parts: DialogFrameParts) => JSX.Element;\n}\n\nexport interface DialogFrameParts {\n title: JSX.Element;\n description: JSX.Element;\n children: JSX.Element;\n actions: JSX.Element;\n}\n\nexport function Dialog(props: DialogProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-dialog-${generated}`;\n const [panel, setPanel] = createSignal<HTMLElement>();\n const api = useDialog(() => ({\n id: id(), open: props.open, defaultOpen: props.defaultOpen,\n onOpenChange: (details) => props.onOpenChange?.(details.open),\n closeOnEscape: props.closeOnEscape ?? true,\n closeOnInteractOutside: props.closeOnOutside ?? true,\n onEscapeKeyDown: props.onEscapeKeyDown,\n initialFocusEl: () => props.initialFocus?.() ?? null,\n finalFocusEl: () => props.finalFocus?.() ?? null,\n restoreFocus: props.restoreFocus ?? true,\n // Ark handles ordinary dialogs. A multi-container modal needs a shared\n // Zag trap and isolation target list instead of Ark's single content node.\n modal: !props.additionalFocusContainers,\n trapFocus: !props.additionalFocusContainers,\n preventScroll: true,\n role: props.role ?? \"dialog\",\n persistentElements: isServer ? [] : props.additionalFocusContainers?.().filter((element): element is HTMLElement => Boolean(element)).map(element => () => element),\n ids: { content: id(), title: `${id()}-title`, description: `${id()}-description` },\n }));\n const open = createMemo(() => api().open);\n createEffect(() => {\n const content = panel();\n if (!open() || !props.additionalFocusContainers || !content) return;\n const opener = content.ownerDocument.activeElement;\n let trap: FocusTrap | undefined;\n let removeIsolation: (() => void) | undefined;\n const [ready, setReady] = createSignal(false);\n const containers = () => [content, ...props.additionalFocusContainers!().filter((element): element is HTMLElement => Boolean(element?.isConnected && element.ownerDocument === content.ownerDocument))];\n const frame = content.ownerDocument.defaultView!.requestAnimationFrame(() => {\n trap = new FocusTrap(containers(), {\n document: content.ownerDocument,\n escapeDeactivates: false, allowOutsideClick: true, preventScroll: true,\n delayInitialFocus: false, fallbackFocus: content, getShadowRoot: true,\n initialFocus: () => props.initialFocus?.() ?? undefined,\n setReturnFocus: () => props.finalFocus?.() ?? (opener instanceof HTMLElement && opener.isConnected ? opener : false),\n });\n setReady(true);\n trap.activate();\n });\n createEffect(() => {\n if (!ready()) return;\n const targets = containers();\n trap!.updateContainerElements(targets);\n removeIsolation?.();\n removeIsolation = ariaHidden(targets, { defer: false });\n });\n onCleanup(() => {\n content.ownerDocument.defaultView!.cancelAnimationFrame(frame);\n removeIsolation?.();\n trap?.deactivate({ returnFocus: props.restoreFocus !== false });\n });\n });\n const cls = (base: string, extra?: string) => classes(props.unstyled ? undefined : base, extra);\n const Content = () => {\n const presence = usePresenceContext();\n const nativeContent = (merge: unknown) => <Dynamic component={props.contentAs ?? \"div\"}\n {...(merge as (props: JSX.HTMLAttributes<HTMLElement>) => JSX.HTMLAttributes<HTMLElement>)({})}\n ref={(element: HTMLElement) => {\n // Ark's asChild merger omits refs. Register both its presence node and\n // DDS's shared focus container on the actual native content element.\n presence().ref(element);\n setPanel(element);\n }}\n />;\n return <ArkDialog.Positioner class={cls(\"dds-dialog-overlay\", props.overlayClass)}>\n <ArkDialog.Content {...props.contentProps} ref={setPanel} class={cls(\"dds-dialog\", props.class)}\n {...(props.contentAs ? { asChild: nativeContent } : {})}\n role={props.role ?? \"dialog\"} aria-modal=\"true\" aria-describedby={props.description ? `${id()}-description` : undefined}>\n {(() => {\n const parts: DialogFrameParts = {\n get title() { return <ArkDialog.Title class={cls(\"dds-dialog__title\", props.titleClass)}>{props.title}</ArkDialog.Title>; },\n get description() { return props.description && <ArkDialog.Description class={cls(\"dds-dialog__body\", props.descriptionClass)}>{props.description}</ArkDialog.Description>; },\n get children() { return props.children; },\n get actions() { return props.actions && <div class={cls(\"dds-dialog__actions\", props.actionsClass)}>{props.actions}</div>; },\n };\n return props.frame ? props.frame(parts) : <>{parts.title}{parts.description}{parts.children}{parts.actions}</>;\n })()}\n </ArkDialog.Content>\n </ArkDialog.Positioner>;\n };\n return <ArkDialog.RootProvider value={api} lazyMount unmountOnExit>\n <Show when={props.portal} fallback={<Content />}><Portal {...(props.portalMount ? { mount: props.portalMount } : {})}><Content /></Portal></Show>\n </ArkDialog.RootProvider>;\n}\n","import { RadioGroup as ArkRadioGroup } from \"@ark-ui/solid/radio-group\";\nimport { For, type JSX } from \"solid-js\";\nimport { classes } from \"./utils\";\n\nexport interface RadioOption {\n value: string;\n label: JSX.Element;\n disabled?: boolean;\n}\nexport interface RadioGroupProps {\n options: readonly RadioOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n form?: string;\n disabled?: boolean;\n required?: boolean;\n label: JSX.Element;\n class?: string;\n}\n\n/** Grouped radios delegate selection and roving keyboard focus to Ark. */\nexport function RadioGroup(props: RadioGroupProps) {\n const initialValue = props.value ?? props.defaultValue;\n return <ArkRadioGroup.Root\n value={props.value} defaultValue={props.defaultValue}\n name={props.name} form={props.form} disabled={props.disabled} required={props.required}\n onValueChange={(details) => { if (details.value !== null) props.onValueChange?.(details.value); }}\n class={classes(\"dds-radio-group\", props.class)}\n >\n <ArkRadioGroup.Label class=\"dds-field__label\">{props.label}</ArkRadioGroup.Label>\n <For each={props.options}>{(option) => <ArkRadioGroup.Item value={option.value} disabled={option.disabled} class=\"dds-check\">\n <ArkRadioGroup.ItemHiddenInput class=\"dds-check__input\" style={{}}\n ref={(input) => { input.defaultChecked = initialValue === option.value; }} />\n <ArkRadioGroup.ItemText>{option.label}</ArkRadioGroup.ItemText>\n </ArkRadioGroup.Item>}</For>\n </ArkRadioGroup.Root>;\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 { createSignal, onCleanup, onMount, type Accessor } from \"solid-js\";\n\nexport type Direction = \"ltr\" | \"rtl\";\n\n/** SSR callers may supply direction; clients also inherit their containing DOM. */\nexport function useDirection(element: () => HTMLElement | undefined, explicit: Accessor<Direction | undefined>) {\n const [ambient, setAmbient] = createSignal<Direction>(\"ltr\");\n onMount(() => {\n const parent = element()?.parentElement;\n if (!parent) return;\n const update = () => setAmbient(getComputedStyle(parent).direction === \"rtl\" ? \"rtl\" : \"ltr\");\n update();\n const observer = new MutationObserver(update);\n observer.observe(parent.ownerDocument.documentElement, { attributes: true, subtree: true, attributeFilter: [\"dir\"] });\n onCleanup(() => observer.disconnect());\n });\n return () => explicit() ?? ambient();\n}\n","import { Tabs as ArkTabs, useTabsContext } from \"@ark-ui/solid/tabs\";\nimport { LocaleProvider } from \"@ark-ui/solid/locale\";\nimport { createUniqueId, mergeProps, splitProps, type JSX, type ParentProps } from \"solid-js\";\nimport { classes } from \"./utils\";\nimport { useDirection, type Direction } from \"./direction\";\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 dir?: Direction;\n activationMode?: \"automatic\" | \"manual\";\n tabId?: (value: string) => string;\n panelId?: (value: string) => string;\n unstyled?: boolean;\n asChild?: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;\n}\n\nexport function Tabs(props: TabsProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-tabs-${generated}`;\n let root: HTMLDivElement | undefined;\n const direction = useDirection(() => root, () => props.dir);\n const child = props.asChild ? (merge: unknown) => props.asChild!(mergeProps(\n (merge as (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.HTMLAttributes<HTMLDivElement>)({}),\n { ref: (element: HTMLDivElement) => { root = element; } },\n )) : undefined;\n return <LocaleProvider locale={direction() === \"rtl\" ? \"ar\" : \"en\"}><ArkTabs.Root ref={root}\n id={id()} value={props.value} defaultValue={props.defaultValue}\n orientation={props.orientation ?? \"horizontal\"} activationMode={props.activationMode ?? \"automatic\"}\n onValueChange={(details) => props.onValueChange?.(details.value)}\n lazyMount={false} unmountOnExit={false} class={props.unstyled ? undefined : \"dds-tabs-root\"}\n {...(child ? { asChild: child } : {})}\n ids={{ trigger: (value) => props.tabId?.(value) ?? `${id()}-tab-${value}`, content: (value) => props.panelId?.(value) ?? `${id()}-panel-${value}` }}\n >{props.children}</ArkTabs.Root></LocaleProvider>;\n}\n\nexport function TabList(props: ParentProps<JSX.HTMLAttributes<HTMLDivElement> & { unstyled?: boolean }>) {\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"unstyled\"]);\n return <ArkTabs.List {...rest} class={classes(!local.unstyled && \"dds-tabs\", local.class)}>{local.children}</ArkTabs.List>;\n}\n\nexport interface TabProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"class\"> {\n value: string;\n class?: string;\n unstyled?: boolean;\n asChild?: (props: JSX.ButtonHTMLAttributes<HTMLButtonElement>) => JSX.Element;\n}\n\nexport function Tab(props: ParentProps<TabProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"children\", \"value\", \"unstyled\", \"asChild\"]);\n // Ark's factory supplies a merger; DDS exposes native button attributes.\n const child = local.asChild ? (merge: unknown) => local.asChild!(mergeProps(\n (merge as (props: JSX.ButtonHTMLAttributes<HTMLButtonElement>) => JSX.ButtonHTMLAttributes<HTMLButtonElement>)({}),\n { ref: props.ref },\n )) : undefined;\n return <ArkTabs.Trigger {...rest} value={local.value} class={classes(!local.unstyled && \"dds-tab\", local.class)} {...(child ? { asChild: child } : {})}>{local.children}</ArkTabs.Trigger>;\n}\n\nexport interface TabPanelProps extends JSX.HTMLAttributes<HTMLDivElement> { value: string }\n\nexport function TabPanel(props: ParentProps<TabPanelProps>) {\n const [local, rest] = splitProps(props, [\"value\", \"children\", \"style\"]);\n const tabs = useTabsContext();\n const inactive = () => tabs().value !== local.value;\n const style = () => !inactive() ? local.style : typeof local.style === \"string\"\n ? `${local.style.replace(/;+\\s*$/, \"\")};display:none;`\n : { ...local.style, display: \"none\" };\n return <ArkTabs.Content {...rest} value={local.value} style={style()} hidden={inactive()} inert={inactive()}>{local.children}</ArkTabs.Content>;\n}\n","import { Toast as ArkToast, Toaster, createToaster } from \"@ark-ui/solid/toast\";\nimport { space } from \"@devslab/dds-tokens\";\nimport { createContext, createUniqueId, onCleanup, useContext, type JSX } from \"solid-js\";\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}\nconst ToastContext = createContext<ToastApi>();\n\nexport interface ToastProviderProps {\n children: JSX.Element;\n defaultDuration?: number;\n dismissLabel?: string | ((toast: ToastRecord) => string);\n /** Optional localized label for the notification region. */\n regionLabel?: string;\n class?: string;\n}\n\nexport function ToastProvider(props: ToastProviderProps) {\n const prefix = createUniqueId();\n let region: HTMLDivElement | undefined;\n let scopedDocument: Document | undefined;\n // Zag derives group IDs from placement rather than provider identity. Keep\n // each provider's physical ID unique, and scope that one logical lookup.\n const getRootNode = () => scopedDocument ??= new Proxy(region?.ownerDocument ?? document, {\n get(target, property) {\n if (property === \"getElementById\") return (id: string) => id === \"toast-group:bottom-end\" ? region ?? null : target.getElementById(id);\n const value = Reflect.get(target, property, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n const toaster = createToaster({\n placement: \"bottom-end\", overlap: false, gap: space[8],\n // An empty array matches EVERY key in Zag. An impossible physical code\n // disables the global shortcut without stealing application focus.\n offsets: \"var(--dds-space-16)\", removeDelay: 0, hotkey: [\"DDS_NO_HOTKEY\"],\n max: Number.MAX_SAFE_INTEGER, pauseOnPageIdle: true,\n });\n let sequence = 0;\n const api: ToastApi = {\n show(input) {\n const id = `dds-toast-${prefix}-${++sequence}`;\n const duration = input.duration ?? props.defaultDuration ?? 5000;\n toaster.create({\n id, description: input.message, type: input.tone === \"danger\" ? \"error\" : input.tone ?? \"info\",\n duration: duration > 0 ? duration : Infinity,\n meta: { dds: { ...input, id } satisfies ToastRecord },\n });\n return id;\n },\n dismiss: (id) => toaster.remove(id),\n clear: () => toaster.remove(),\n };\n onCleanup(api.clear);\n return <ToastContext.Provider value={api}>\n {props.children}\n <Toaster toaster={toaster} ref={region} getRootNode={getRootNode} id={`dds-toast-region-${prefix}`}\n class={classes(\"dds-toast-region\", props.class)}\n role={props.regionLabel ? \"region\" : \"presentation\"} aria-label={props.regionLabel ?? \"\"}\n >{(toast) => {\n const record = () => toast().meta?.dds as ToastRecord;\n return <ArkToast.Root\n class={classes(\"dds-toast\", `dds-toast--${record().tone ?? \"info\"}`)}\n role={record().tone === \"danger\" ? \"alert\" : \"status\"}\n >\n <ArkToast.Description>{toast().description}</ArkToast.Description>\n {props.dismissLabel && <ArkToast.CloseTrigger\n class=\"dds-iconbtn dds-iconbtn--sm\"\n aria-label={typeof props.dismissLabel === \"function\" ? props.dismissLabel(record()) : props.dismissLabel}\n >×</ArkToast.CloseTrigger>}\n </ArkToast.Root>;\n }}</Toaster>\n </ToastContext.Provider>;\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 { Tooltip as ArkTooltip, useTooltip } from \"@ark-ui/solid/tooltip\";\nimport { createUniqueId, splitProps, type JSX } from \"solid-js\";\nimport { classes } from \"./utils\";\nimport { createControllableSignal } from \"./controllable\";\n\n/** Spread all trigger props onto the focusable trigger element. */\nexport interface TooltipTriggerProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"aria-describedby\" | \"onFocus\" | \"onBlur\" | \"onPointerEnter\" | \"onPointerLeave\"> {\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, defaultValue: props.defaultOpen ?? false,\n onChange: (next) => props.onOpenChange?.(next),\n });\n const api = useTooltip(() => ({\n id: id(), ids: { content: id() }, open: open(),\n onOpenChange: (details) => setOpen(details.open), openDelay: 0, closeDelay: 0,\n }));\n return <ArkTooltip.RootProvider value={api} lazyMount={false} unmountOnExit={false}>\n <span class={classes(\"dds-tooltip\", props.class)}>\n <ArkTooltip.Trigger asChild={(merge) => {\n const [, attributes] = splitProps(merge(), [\"onFocusIn\", \"onFocusOut\"]);\n return props.children({\n ...attributes, \"aria-describedby\": id(),\n // Preserve DDS's established composable, zero-argument callbacks.\n onFocus: () => api().setOpen(true), onBlur: () => api().setOpen(false),\n onPointerEnter: () => api().setOpen(true), onPointerLeave: () => api().setOpen(false),\n }); }} />\n <ArkTooltip.Positioner>\n <ArkTooltip.Content class=\"dds-tooltip__bubble\">{props.content}</ArkTooltip.Content>\n </ArkTooltip.Positioner>\n </span>\n </ArkTooltip.RootProvider>;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-oKxhg9RG.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["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"],"mappings":";AAAA,SAAgB,EAAQ,GAAG,GAA0D;CACnF,OAAO,EAAO,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACxC;AAEA,SAAgB,EAAY,GAAG,GAAmE;CAEhG,OADc,EAAI,OAAO,OAAO,CAAC,CAAC,KAAK,GAChC,KAAS,KAAA;AAClB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devslab/dds-solid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.1",
|
|
4
4
|
"description": "Accessible SolidJS primitives for the DevsLab Design System",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -30,17 +30,74 @@
|
|
|
30
30
|
"types": "./dist/index.d.ts",
|
|
31
31
|
"worker": "./dist/server.js",
|
|
32
32
|
"workerd": "./dist/server.js",
|
|
33
|
-
"node": "./dist/server.js",
|
|
34
33
|
"browser": "./dist/index.js",
|
|
34
|
+
"node": "./dist/server.js",
|
|
35
35
|
"default": "./dist/index.js"
|
|
36
36
|
},
|
|
37
|
-
"./styles.css": "./styles.css"
|
|
37
|
+
"./styles.css": "./styles.css",
|
|
38
|
+
"./input": {
|
|
39
|
+
"types": "./dist/input.d.ts",
|
|
40
|
+
"worker": "./dist/input.server.js",
|
|
41
|
+
"workerd": "./dist/input.server.js",
|
|
42
|
+
"browser": "./dist/input.js",
|
|
43
|
+
"node": "./dist/input.server.js",
|
|
44
|
+
"default": "./dist/input.js"
|
|
45
|
+
},
|
|
46
|
+
"./combobox": {
|
|
47
|
+
"types": "./dist/combobox.d.ts",
|
|
48
|
+
"worker": "./dist/combobox.server.js",
|
|
49
|
+
"workerd": "./dist/combobox.server.js",
|
|
50
|
+
"browser": "./dist/combobox.js",
|
|
51
|
+
"node": "./dist/combobox.server.js",
|
|
52
|
+
"default": "./dist/combobox.js"
|
|
53
|
+
},
|
|
54
|
+
"./select-picker": {
|
|
55
|
+
"types": "./dist/select-picker.d.ts",
|
|
56
|
+
"worker": "./dist/select-picker.server.js",
|
|
57
|
+
"workerd": "./dist/select-picker.server.js",
|
|
58
|
+
"browser": "./dist/select-picker.js",
|
|
59
|
+
"node": "./dist/select-picker.server.js",
|
|
60
|
+
"default": "./dist/select-picker.js"
|
|
61
|
+
},
|
|
62
|
+
"./dropdown-menu": {
|
|
63
|
+
"types": "./dist/dropdown-menu.d.ts",
|
|
64
|
+
"worker": "./dist/dropdown-menu.server.js",
|
|
65
|
+
"workerd": "./dist/dropdown-menu.server.js",
|
|
66
|
+
"browser": "./dist/dropdown-menu.js",
|
|
67
|
+
"node": "./dist/dropdown-menu.server.js",
|
|
68
|
+
"default": "./dist/dropdown-menu.js"
|
|
69
|
+
},
|
|
70
|
+
"./popover": {
|
|
71
|
+
"types": "./dist/popover.d.ts",
|
|
72
|
+
"worker": "./dist/popover.server.js",
|
|
73
|
+
"workerd": "./dist/popover.server.js",
|
|
74
|
+
"browser": "./dist/popover.js",
|
|
75
|
+
"node": "./dist/popover.server.js",
|
|
76
|
+
"default": "./dist/popover.js"
|
|
77
|
+
},
|
|
78
|
+
"./calendar": {
|
|
79
|
+
"types": "./dist/calendar.d.ts",
|
|
80
|
+
"worker": "./dist/calendar.server.js",
|
|
81
|
+
"workerd": "./dist/calendar.server.js",
|
|
82
|
+
"browser": "./dist/calendar.js",
|
|
83
|
+
"node": "./dist/calendar.server.js",
|
|
84
|
+
"default": "./dist/calendar.js"
|
|
85
|
+
},
|
|
86
|
+
"./date-picker": {
|
|
87
|
+
"types": "./dist/date-picker.d.ts",
|
|
88
|
+
"worker": "./dist/date-picker.server.js",
|
|
89
|
+
"workerd": "./dist/date-picker.server.js",
|
|
90
|
+
"browser": "./dist/date-picker.js",
|
|
91
|
+
"node": "./dist/date-picker.server.js",
|
|
92
|
+
"default": "./dist/date-picker.js"
|
|
93
|
+
}
|
|
38
94
|
},
|
|
39
95
|
"dependencies": {
|
|
40
96
|
"@ark-ui/solid": "5.39.3",
|
|
41
|
-
"@devslab/dds-css": "0.
|
|
42
|
-
"@devslab/dds-icons": "0.
|
|
43
|
-
"@devslab/dds-tokens": "0.
|
|
97
|
+
"@devslab/dds-css": "0.22.1",
|
|
98
|
+
"@devslab/dds-icons": "0.22.1",
|
|
99
|
+
"@devslab/dds-tokens": "0.22.1",
|
|
100
|
+
"@tanstack/solid-virtual": "3.13.48",
|
|
44
101
|
"@zag-js/aria-hidden": "1.45.0",
|
|
45
102
|
"@zag-js/focus-trap": "1.45.0"
|
|
46
103
|
},
|
package/styles.css
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
.dds-date-picker-control {display:flex;align-items:stretch;gap:8px;}
|
|
22
22
|
.dds-date-picker-control input {min-width:0;}
|
|
23
23
|
.dds-date-picker-control .dds-btn {flex-shrink:0;min-width:44px;padding-inline:10px;}
|
|
24
|
-
.dds-date-picker-positioner {z-index:
|
|
24
|
+
.dds-date-picker-positioner {z-index:var(--dds-overlay-z-index,1001);}
|
|
25
25
|
.dds-date-picker-content {width:320px;max-width:calc(100vw - 32px);max-height:min(calc(100dvh - 32px),var(--available-height,100dvh));overflow:auto;box-sizing:border-box;padding:16px;background:var(--dds-color-bg-default);color:var(--dds-color-text-primary);border:1px solid var(--dds-color-border-default);border-radius:var(--dds-radius-md);font-family:var(--dds-font-family-sans);font-size:var(--dds-typo-body-2-font-size);}
|
|
26
26
|
.dds-date-picker-header {display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;margin-bottom:12px;}
|
|
27
27
|
.dds-date-picker-table {width:100%;border-collapse:collapse;table-layout:fixed;}
|
|
@@ -34,3 +34,12 @@
|
|
|
34
34
|
.dds-date-picker-table [data-today]:not([data-selected]) {text-decoration:underline;text-underline-offset:4px;}
|
|
35
35
|
.dds-date-picker-content :focus-visible {outline:2px solid var(--dds-color-text-brand);outline-offset:2px;}
|
|
36
36
|
.dds-date-picker-footer {display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--dds-color-border-default);}
|
|
37
|
+
|
|
38
|
+
/* Standalone Calendar shares the DatePicker view without popup positioning. */
|
|
39
|
+
.dds-calendar {display:block;}
|
|
40
|
+
.dds-date-picker--hidden > .dds-field__label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
|
|
41
|
+
.dds-date-picker--inside {position:relative;}
|
|
42
|
+
.dds-date-picker--inside > .dds-field__label {position:absolute;inset-inline-start:12px;inset-block-start:18px;z-index:1;pointer-events:none;}
|
|
43
|
+
.dds-date-picker--inside:focus-within > .dds-field__label,.dds-date-picker--inside[data-filled] > .dds-field__label {inset-block-start:2px;font-size:var(--dds-typo-caption-font-size);}
|
|
44
|
+
.dds-date-picker--inside .dds-date-picker-control input {height:56px;padding-block:20px 4px;}
|
|
45
|
+
.dds-date-picker--inside:not(:focus-within):not([data-filled]) input::placeholder {color:transparent;}
|