@mond-design-system/react 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +35 -4
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +11 -6
- package/dist/index.d.ts +11 -6
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/cx.ts","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Text/Text.module.css?mds-scoped","../src/components/Text/Text.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Heading/Heading.module.css?mds-scoped","../src/components/Heading/Heading.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Spinner/Spinner.module.css?mds-scoped","../src/components/Spinner/Spinner.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Icon/Icon.module.css?mds-scoped","../src/components/Icon/Icon.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped","../src/components/Button/Button.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Link/Link.module.css?mds-scoped","../src/components/Link/Link.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Avatar/Avatar.module.css?mds-scoped","../src/components/Avatar/Avatar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AvatarGroup/AvatarGroup.module.css?mds-scoped","../src/components/AvatarGroup/AvatarGroup.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Badge/Badge.module.css?mds-scoped","../src/components/Badge/Badge.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/Chip.module.css?mds-scoped","../src/components/Chip/Chip.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped","../src/components/Chip/ChipGroup.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipBar.module.css?mds-scoped","../src/components/Chip/ChipBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/CountButton/CountButton.module.css?mds-scoped","../src/components/CountButton/CountButton.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped","../src/components/Field/Field.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Select/Select.module.css?mds-scoped","../src/components/Select/Select.tsx","../src/hooks/overlayHistory.ts","../src/hooks/useOverlay.ts","../src/hooks/usePresence.ts","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Overlay/Overlay.module.css?mds-scoped","../src/components/Overlay/Overlay.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Sheet/Sheet.module.css?mds-scoped","../src/components/Sheet/Sheet.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped","../src/components/DateTimePicker/DateTimePicker.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped","../src/components/Tag/Tag.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Divider/Divider.module.css?mds-scoped","../src/components/Divider/Divider.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped","../src/components/Skeleton/Skeleton.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ProgressBar/ProgressBar.module.css?mds-scoped","../src/components/ProgressBar/ProgressBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Input/Input.module.css?mds-scoped","../src/components/Input/Input.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped","../src/components/PasswordInput/PasswordInput.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Textarea/Textarea.module.css?mds-scoped","../src/components/Textarea/Textarea.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped","../src/components/Checkbox/Checkbox.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped","../src/components/Radio/Radio.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped","../src/components/Switch/Switch.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped","../src/components/SegmentedControl/SegmentedControl.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped","../src/components/SearchField/SearchField.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped","../src/components/List/List.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/EmptyState/EmptyState.module.css?mds-scoped","../src/components/EmptyState/EmptyState.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tabs/Tabs.module.css?mds-scoped","../src/components/Tabs/Tabs.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped","../src/components/Toast/Toast.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Stack/Stack.module.css?mds-scoped","../src/components/Stack/Stack.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Inline/Inline.module.css?mds-scoped","../src/components/Inline/Inline.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Container/Container.module.css?mds-scoped","../src/components/Container/Container.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped","../src/components/Card/Card.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Modal/Modal.module.css?mds-scoped","../src/components/Modal/Modal.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ConfirmDialog/ConfirmDialog.module.css?mds-scoped","../src/components/ConfirmDialog/ConfirmDialog.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Screen/Screen.module.css?mds-scoped","../src/components/Screen/Screen.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped","../src/components/AppBar/AppBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/TabBar/TabBar.module.css?mds-scoped","../src/components/TabBar/TabBar.tsx","../src/hooks/useRovingGroup.ts"],"names":["createElement","jsx","jsxs","Children","createContext","useContext","useEffect","useState","useRef","Fragment","useId","tab","useCallback","useMemo"],"mappings":"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","file":"index.js","sourcesContent":["import type { CSSProperties } from \"react\";\n\n/**\n * Join class names, dropping anything falsy.\n *\n * Every component takes a `className` from the call site and owns one of its\n * own from a CSS Module, so the merge happens in one place rather than in\n * forty slightly different inline expressions.\n */\nexport function cx(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(\" \");\n}\n\n/**\n * A style object that may also carry CSS custom properties.\n *\n * `React.CSSProperties` has no index signature, so `{ '--mds-x': 1 }` is a\n * type error against it. Values that genuinely vary per render (a slider's\n * percent, an avatar's pixel size) belong in a custom property the stylesheet\n * reads — this types that without an assertion.\n */\nexport type CSSVars = CSSProperties & Record<`--${string}`, string | number>;\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Text/Text.module.css?mds-scoped\";\nexport default {\"text\":\"mds-Text__text\",\"variant-body\":\"mds-Text__variant-body\",\"variant-label\":\"mds-Text__variant-label\",\"variant-note\":\"mds-Text__variant-note\",\"variant-meta\":\"mds-Text__variant-meta\",\"variant-eyebrow\":\"mds-Text__variant-eyebrow\",\"tone-primary\":\"mds-Text__tone-primary\",\"tone-secondary\":\"mds-Text__tone-secondary\",\"tone-muted\":\"mds-Text__tone-muted\",\"tone-inverse\":\"mds-Text__tone-inverse\",\"tone-accent\":\"mds-Text__tone-accent\",\"tone-on-media\":\"mds-Text__tone-on-media\",\"tone-danger\":\"mds-Text__tone-danger\",\"tone-warning\":\"mds-Text__tone-warning\",\"tone-success\":\"mds-Text__tone-success\",\"align-left\":\"mds-Text__align-left\",\"align-center\":\"mds-Text__align-center\",\"align-right\":\"mds-Text__align-right\",\"truncate\":\"mds-Text__truncate\"};","import type { HTMLAttributes, JSX, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Text.module.css\";\n\nexport type TextVariant = \"body\" | \"label\" | \"note\" | \"meta\" | \"eyebrow\";\n\nexport type TextTone =\n | \"primary\"\n | \"secondary\"\n | \"muted\"\n | \"inverse\"\n | \"accent\"\n | \"on-media\"\n | \"danger\"\n | \"warning\"\n | \"success\";\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Type role from the core scale. Default \"body\". */\n variant?: TextVariant;\n /** Element override when the default doesn't fit the markup. */\n as?: keyof JSX.IntrinsicElements;\n /** Semantic color. Variants carry sensible defaults. */\n tone?: TextTone;\n align?: \"left\" | \"center\" | \"right\";\n /** Single-line ellipsis. */\n truncate?: boolean;\n}\n\nconst ELEMENT: Record<TextVariant, keyof JSX.IntrinsicElements> = {\n body: \"p\",\n label: \"span\",\n note: \"p\",\n meta: \"span\",\n eyebrow: \"span\",\n};\n\nconst DEFAULT_TONE: Partial<Record<TextVariant, TextTone>> = {\n note: \"secondary\",\n meta: \"muted\",\n eyebrow: \"muted\",\n};\n\n/**\n * Body-copy primitive. One class per type role — screens never hand-roll styled tags.\n *\n * ```tsx\n * <Text>Body copy.</Text>\n * <Text variant=\"label\" as=\"span\">Field label</Text>\n * <Text variant=\"meta\" tone=\"muted\">Updated 2h ago</Text>\n * <Text truncate>Very long single line…</Text>\n * ```\n */\nexport function Text({\n variant = \"body\",\n as,\n tone,\n align,\n truncate = false,\n className,\n ...rest\n}: TextProps): ReactElement {\n const element = as ?? ELEMENT[variant];\n const resolvedTone = tone ?? DEFAULT_TONE[variant] ?? \"primary\";\n return createElement(element, {\n className: cx(\n styles.text,\n styles[`variant-${variant}`],\n styles[`tone-${resolvedTone}`],\n align && styles[`align-${align}`],\n truncate && styles.truncate,\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Heading/Heading.module.css?mds-scoped\";\nexport default {\"heading\":\"mds-Heading__heading\",\"variant-display\":\"mds-Heading__variant-display\",\"variant-title\":\"mds-Heading__variant-title\",\"variant-subtitle\":\"mds-Heading__variant-subtitle\",\"tone-primary\":\"mds-Heading__tone-primary\",\"tone-secondary\":\"mds-Heading__tone-secondary\",\"tone-inverse\":\"mds-Heading__tone-inverse\",\"tone-accent\":\"mds-Heading__tone-accent\",\"tone-on-media\":\"mds-Heading__tone-on-media\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Heading.module.css\";\n\nexport type HeadingVariant = \"display\" | \"title\" | \"subtitle\";\nexport type HeadingLevel = 1 | 2 | 3 | 4;\nexport type HeadingTone = \"primary\" | \"secondary\" | \"inverse\" | \"accent\" | \"on-media\";\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n /** Document outline level → h1–h4, with a matching default type role. Default 2. */\n level?: HeadingLevel;\n /** Type role override — outline level and visual size are separate concerns. */\n variant?: HeadingVariant;\n tone?: HeadingTone;\n}\n\nconst LEVEL_VARIANT: Record<HeadingLevel, HeadingVariant> = {\n 1: \"display\",\n 2: \"title\",\n 3: \"subtitle\",\n 4: \"subtitle\",\n};\n\n/**\n * Brand headings on the core roles. `level` = semantics, `variant` = size.\n *\n * ```tsx\n * <Heading level={1}>Sessions</Heading>\n * <Heading level={2} variant=\"subtitle\" tone=\"secondary\">This week</Heading>\n * ```\n */\nexport function Heading({\n level = 2,\n variant,\n tone = \"primary\",\n className,\n ...rest\n}: HeadingProps): ReactElement {\n return createElement(`h${level}`, {\n className: cx(\n styles.heading,\n styles[`variant-${variant ?? LEVEL_VARIANT[level]}`],\n styles[`tone-${tone}`],\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Spinner/Spinner.module.css?mds-scoped\";\nexport default {\"spinner\":\"mds-Spinner__spinner\",\"spin\":\"mds-Spinner__spin\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx, type CSSVars } from \"../../internal/cx\";\nimport styles from \"./Spinner.module.css\";\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {\n /** Diameter in px. Default 20. */\n size?: number;\n /** Accessible label. Default \"Loading\". */\n label?: string;\n}\n\n/**\n * Indeterminate loading ring. Arc takes currentColor, so it matches whatever\n * text it sits beside. Keyframe is local: CSS Modules localizes\n * animation-name, a global one resolves to nothing. base.css stops it under\n * prefers-reduced-motion.\n *\n * ```tsx\n * <Spinner label=\"Loading sessions\" />\n * ```\n */\nexport function Spinner({\n size = 20,\n label = \"Loading\",\n className,\n style,\n ...rest\n}: SpinnerProps): ReactElement {\n /* Per-instance knobs, not design tokens. Ring thickness scales with the\n diameter, floored so small spinners stay visible. */\n const vars: CSSVars = {\n \"--spinner-size\": `${size}px`,\n \"--spinner-border\": `${Math.max(2, Math.round(size / 10))}px`,\n };\n return (\n <span\n role=\"status\"\n aria-label={label}\n className={cx(styles.spinner, className)}\n style={{ ...vars, ...style }}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Icon/Icon.module.css?mds-scoped\";\nexport default {\"icon\":\"mds-Icon__icon\",\"size-sm\":\"mds-Icon__size-sm\",\"size-md\":\"mds-Icon__size-md\",\"size-lg\":\"mds-Icon__size-lg\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Icon.module.css\";\n\nexport interface IconRenderProps {\n /** Pixel size of the requested step. */\n size: number;\n}\n\n/** Brand-owned glyph resolver: name → rendered glyph (svg, font ligature, …). */\nexport type IconRender = (name: string, props: IconRenderProps) => ReactNode;\n\nconst IconContext = createContext<IconRender | null>(null);\n\nexport interface IconProviderProps {\n render: IconRender;\n children: ReactNode;\n}\n\n/**\n * Registry seam. The system never bundles an icon set — the app registers its\n * own (lucide, Material Symbols, …) once, at the root. Iconography is brand,\n * like color.\n *\n * ```tsx\n * // App root: map names to your icon set once.\n * <IconProvider render={(name, { size }) => <MyGlyph name={name} width={size} />}>\n * <App />\n * </IconProvider>\n *\n * // Anywhere below:\n * <Icon name=\"check\" size=\"sm\" />\n * ```\n */\nexport function IconProvider({ render, children }: IconProviderProps): ReactElement {\n return <IconContext.Provider value={render}>{children}</IconContext.Provider>;\n}\n\nexport type IconSize = \"sm\" | \"md\" | \"lg\";\n\n/* Must match --mds-icon-* in core/layout.css — the renderer needs a number,\n a stylesheet cannot hand one over. */\nconst SIZE_PX: Record<IconSize, number> = { sm: 16, md: 20, lg: 24 };\n\nexport interface IconProps extends HTMLAttributes<HTMLSpanElement> {\n /** Glyph name in the app's registered set. */\n name: string;\n /** Default \"md\". */\n size?: IconSize;\n /** Accessible name. Omitted = decorative (aria-hidden). */\n label?: string;\n}\n\nconst warned = new Set<string>();\n\n/** A glyph from the app-registered set, sized on the core scale. */\nexport function Icon({ name, size = \"md\", label, className, ...rest }: IconProps): ReactElement {\n const render = useContext(IconContext);\n if (render === null && !warned.has(name)) {\n warned.add(name);\n console.error(\n `Icon \"${name}\": no IconProvider above this tree. Register the app's icon set once at the root.`,\n );\n }\n return (\n <span\n className={cx(styles.icon, styles[`size-${size}`], className)}\n {...(label ? { role: \"img\", \"aria-label\": label } : { \"aria-hidden\": true })}\n {...rest}\n >\n {render?.(name, { size: SIZE_PX[size] })}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped\";\nexport default {\"button\":\"mds-Button__button\",\"size-sm\":\"mds-Button__size-sm\",\"size-md\":\"mds-Button__size-md\",\"size-lg\":\"mds-Button__size-lg\",\"slot\":\"mds-Button__slot\",\"variant-primary\":\"mds-Button__variant-primary\",\"variant-secondary\":\"mds-Button__variant-secondary\",\"variant-ghost\":\"mds-Button__variant-ghost\",\"variant-highlight\":\"mds-Button__variant-highlight\",\"variant-danger\":\"mds-Button__variant-danger\",\"variant-warning\":\"mds-Button__variant-warning\",\"fullWidth\":\"mds-Button__fullWidth\",\"icon-only\":\"mds-Button__icon-only\"};","import type { ButtonHTMLAttributes, ElementType, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./Button.module.css\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"warning\" | \"highlight\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\ninterface ButtonBaseProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"type\"> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n /** Glyph slots — pass an <Icon> or any node. Agnostic of icon set; the\n * button sizes the slot from its own size, and publishes that step as\n * --mds-icon-slot for an icon set that can only size itself. */\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n /** Spinner replaces the left slot; disables and announces busy. */\n loading?: boolean;\n fullWidth?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n /** Renders an <a> — for navigation styled as a button. */\n href?: string;\n /** Element override, e.g. a router's Link. */\n as?: ElementType;\n ref?: Ref<HTMLButtonElement>;\n}\n\n/* Icon-only collapses the button to a circle holding one glyph. A glyph says\n nothing to a screen reader, so the type demands the name. */\ntype IconOnlyEnforcement =\n | { iconOnly: true; \"aria-label\": string }\n | { iconOnly?: false | undefined };\n\nexport type ButtonProps = ButtonBaseProps & IconOnlyEnforcement;\n\n/* Must match --mds-icon-slot on the size classes: the spinner takes the left\n glyph's place and Spinner needs a number, which a stylesheet cannot hand it. */\nconst ICON_PX: Record<ButtonSize, number> = { sm: 16, md: 20, lg: 24 };\n\n/**\n * The tappable action. Semantics: button by default, link when `href`/`as` says so.\n *\n * ```tsx\n * <Button onClick={save}>Save</Button>\n * <Button variant=\"secondary\" size=\"sm\">Cancel</Button>\n * <Button variant=\"danger\" loading={deleting} onClick={remove}>Delete</Button>\n * <Button iconOnly aria-label=\"Close\" variant=\"ghost\"><Icon name=\"close\" /></Button>\n * <Button href=\"/settings\">Settings</Button>\n * ```\n */\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n iconLeft,\n iconRight,\n loading = false,\n disabled = false,\n fullWidth = false,\n iconOnly = false,\n type = \"button\",\n href,\n as,\n className,\n children,\n ...rest\n}: ButtonProps): ReactElement {\n const Element: ElementType = as ?? (href !== undefined ? \"a\" : \"button\");\n const isButton = Element === \"button\";\n const own = isButton ? { type, disabled: disabled || loading } : { href };\n\n return (\n <Element\n className={cx(\n styles.button,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n fullWidth && styles.fullWidth,\n iconOnly && styles[\"icon-only\"],\n className,\n )}\n aria-busy={loading || undefined}\n {...own}\n {...rest}\n >\n {loading ? (\n <span className={styles.slot}>\n <Spinner size={ICON_PX[size]} label=\"\" aria-hidden=\"true\" />\n </span>\n ) : (\n iconLeft ? <span className={styles.slot}>{iconLeft}</span> : null\n )}\n {children}\n {!loading && iconRight ? <span className={styles.slot}>{iconRight}</span> : null}\n </Element>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Link/Link.module.css?mds-scoped\";\nexport default {\"link\":\"mds-Link__link\",\"variant-inline\":\"mds-Link__variant-inline\",\"variant-standalone\":\"mds-Link__variant-standalone\",\"variant-plain\":\"mds-Link__variant-plain\",\"size-xs\":\"mds-Link__size-xs\",\"size-sm\":\"mds-Link__size-sm\",\"size-base\":\"mds-Link__size-base\",\"size-lg\":\"mds-Link__size-lg\",\"size-xl\":\"mds-Link__size-xl\"};","import type { ComponentPropsWithoutRef, ElementType, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Link.module.css\";\n\nexport type LinkVariant = \"inline\" | \"standalone\" | \"plain\";\n\nexport type LinkSize = \"xs\" | \"sm\" | \"base\" | \"lg\" | \"xl\";\n\ntype LinkOwnProps<E extends ElementType> = {\n /** inline = underlined, lives in running text. standalone = nav/action link.\n plain = inherits the surrounding color and weight, underlines on hover —\n for links whose context already marks them (a card title, a list row). */\n variant?: LinkVariant;\n /** Font size on the core text scale. Default inherits from context. */\n size?: LinkSize;\n /** Opens in a new tab with rel protection. */\n external?: boolean;\n /** Element override — `'button'` for a link-styled action, or a router's\n Link component, whose own props (`to`, `href`, …) then type-check. */\n as?: E;\n children?: ReactNode;\n};\n\nexport type LinkProps<E extends ElementType = \"a\"> = LinkOwnProps<E> &\n Omit<ComponentPropsWithoutRef<E>, keyof LinkOwnProps<E>>;\n\n/**\n * Text link. Inline links keep their underline: color alone fails WCAG 1.4.1\n * for links inside prose.\n *\n * ```tsx\n * <Text>Read the <Link href=\"/terms\">terms</Link>.</Text>\n * <Link variant=\"standalone\" href=\"https://example.com\" external>Docs</Link>\n * <Link as={RouterLink} to=\"/about\">About</Link>\n * ```\n */\nexport function Link<E extends ElementType = \"a\">({\n variant = \"inline\",\n size,\n external = false,\n as,\n ...rest\n}: LinkProps<E>): ReactElement {\n const Element: ElementType = as ?? \"a\";\n // className and type live on the generic remainder — a plain destructure\n // cannot reach into ComponentPropsWithoutRef<E> while E is still open.\n const { className, type, ...others } = rest as {\n className?: string;\n type?: string;\n } & Record<string, unknown>;\n const externalProps = external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n // A button-rendered link defaults to type=\"button\" — inside a form, the\n // browser's \"submit\" default would fire on every click.\n const typeProps = Element === \"button\" ? { type: type ?? \"button\" } : type !== undefined ? { type } : {};\n return (\n <Element\n className={cx(\n styles.link,\n styles[`variant-${variant}`],\n size && styles[`size-${size}`],\n className,\n )}\n {...externalProps}\n {...others}\n {...typeProps}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Avatar/Avatar.module.css?mds-scoped\";\nexport default {\"avatar\":\"mds-Avatar__avatar\",\"size-xs\":\"mds-Avatar__size-xs\",\"size-sm\":\"mds-Avatar__size-sm\",\"size-md\":\"mds-Avatar__size-md\",\"size-lg\":\"mds-Avatar__size-lg\",\"size-xl\":\"mds-Avatar__size-xl\",\"tone-1\":\"mds-Avatar__tone-1\",\"tone-2\":\"mds-Avatar__tone-2\",\"tone-3\":\"mds-Avatar__tone-3\",\"tone-4\":\"mds-Avatar__tone-4\",\"tone-5\":\"mds-Avatar__tone-5\",\"image\":\"mds-Avatar__image\",\"initials\":\"mds-Avatar__initials\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Avatar.module.css\";\n\nexport type AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/** One of the five brand identity tints (`--mds-avatar-tone-1..5`). */\nexport type AvatarTone = 1 | 2 | 3 | 4 | 5;\n\nexport interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {\n /** Person's display name — accessible name and initials source. */\n name: string;\n /** Image URL; initials render when absent or empty. */\n src?: string;\n size?: AvatarSize;\n /** Identity tint behind the initials. Pick per person (e.g. hash the name)\n so the same person keeps the same color. */\n tone?: AvatarTone;\n /** Hide from assistive tech — for avatars that repeat a name already in\n the row's text. The name prop still drives the initials. */\n decorative?: boolean;\n}\n\n/* First + last word: \"Ada Byron King Lovelace\" → AL. Middle names add noise\n at 24px. */\nfunction initials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n const first = words[0]?.[0] ?? \"\";\n const last = words.length > 1 ? (words.at(-1)?.[0] ?? \"\") : \"\";\n return (first + last).toUpperCase();\n}\n\n/**\n * Person marker. Image when available, initials otherwise — never an empty circle.\n *\n * ```tsx\n * <Avatar name=\"Ada Lovelace\" src=\"/ada.jpg\" />\n * <Avatar name=\"Grace Hopper\" size=\"lg\" tone={2} />\n * ```\n */\nexport function Avatar({\n name,\n src,\n size = \"md\",\n tone,\n decorative = false,\n className,\n ...rest\n}: AvatarProps): ReactElement {\n return (\n <span\n className={cx(\n styles.avatar,\n styles[`size-${size}`],\n tone !== undefined && styles[`tone-${tone}`],\n className,\n )}\n aria-hidden={decorative || undefined}\n {...rest}\n >\n {src ? (\n <img className={styles.image} src={src} alt={decorative ? \"\" : name} />\n ) : (\n <span\n role={decorative ? undefined : \"img\"}\n aria-label={decorative ? undefined : name}\n className={styles.initials}\n >\n {initials(name)}\n </span>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AvatarGroup/AvatarGroup.module.css?mds-scoped\";\nexport default {\"group\":\"mds-AvatarGroup__group\",\"item\":\"mds-AvatarGroup__item\",\"overflow\":\"mds-AvatarGroup__overflow\",\"size-xs\":\"mds-AvatarGroup__size-xs\",\"size-sm\":\"mds-AvatarGroup__size-sm\",\"size-md\":\"mds-AvatarGroup__size-md\",\"size-lg\":\"mds-AvatarGroup__size-lg\",\"size-xl\":\"mds-AvatarGroup__size-xl\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport type { AvatarSize } from \"../Avatar/Avatar\";\nimport styles from \"./AvatarGroup.module.css\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Avatar children. */\n children: ReactNode;\n /** Visible cap; the rest collapse into \"+N\". Default 4. */\n max?: number;\n /** Sizes the overflow chip to match the avatars. Default \"md\". */\n size?: AvatarSize;\n}\n\n/**\n * Overlapping stack of avatars with a \"+N\" chip past `max`.\n *\n * ```tsx\n * <AvatarGroup max={3}>\n * <Avatar name=\"Ada Lovelace\" />\n * <Avatar name=\"Grace Hopper\" />\n * <Avatar name=\"Margaret Hamilton\" />\n * <Avatar name=\"Katherine Johnson\" />\n * </AvatarGroup>\n * ```\n */\nexport function AvatarGroup({\n children,\n max = 4,\n size = \"md\",\n className,\n ...rest\n}: AvatarGroupProps): ReactElement {\n const all = Children.toArray(children);\n const visible = all.slice(0, max);\n const hidden = all.length - visible.length;\n\n return (\n <div className={cx(styles.group, className)} {...rest}>\n {visible.map((child, i) => (\n <span key={i} className={styles.item}>\n {child}\n </span>\n ))}\n {hidden > 0 && (\n <span\n className={cx(styles.item, styles.overflow, styles[`size-${size}`])}\n aria-label={`${hidden} more`}\n >\n +{hidden}\n </span>\n )}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Badge/Badge.module.css?mds-scoped\";\nexport default {\"badge\":\"mds-Badge__badge\",\"tone-neutral\":\"mds-Badge__tone-neutral\",\"tone-accent\":\"mds-Badge__tone-accent\",\"tone-highlight\":\"mds-Badge__tone-highlight\",\"tone-danger\":\"mds-Badge__tone-danger\",\"tone-warning\":\"mds-Badge__tone-warning\",\"tone-success\":\"mds-Badge__tone-success\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Badge.module.css\";\n\nexport type BadgeTone = \"neutral\" | \"accent\" | \"danger\" | \"warning\" | \"success\" | \"highlight\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n tone?: BadgeTone;\n}\n\n/**\n * Small status marker — counts, \"new\", state words. Soft fill, strong text.\n *\n * ```tsx\n * <Badge tone=\"success\">Paid</Badge>\n * <Badge tone=\"danger\">3</Badge>\n * ```\n */\nexport function Badge({ tone = \"neutral\", className, ...rest }: BadgeProps): ReactElement {\n return <span className={cx(styles.badge, styles[`tone-${tone}`], className)} {...rest} />;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/Chip.module.css?mds-scoped\";\nexport default {\"chip\":\"mds-Chip__chip\",\"icon\":\"mds-Chip__icon\",\"variant-soft\":\"mds-Chip__variant-soft\",\"variant-outline\":\"mds-Chip__variant-outline\",\"variant-highlight\":\"mds-Chip__variant-highlight\",\"selected\":\"mds-Chip__selected\",\"interactive\":\"mds-Chip__interactive\",\"disabled\":\"mds-Chip__disabled\"};","import type { HTMLAttributes, MouseEventHandler, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Chip.module.css\";\n\nexport type ChipVariant = \"soft\" | \"outline\" | \"highlight\";\n\nexport interface ChipProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n /** Unselected appearance. Default \"soft\". */\n variant?: ChipVariant;\n /** Toggle state. When given on an interactive chip it also sets aria-pressed;\n * omit for a plain action chip so it does not announce as a toggle. */\n selected?: boolean;\n /** Leading glyph, sized by the chip. */\n icon?: ReactNode;\n /** When provided, Chip renders as a `<button>`. */\n onClick?: MouseEventHandler;\n disabled?: boolean;\n}\n\n/**\n * Compact pill for filters and single/multi choices. Interactive (a button,\n * with aria-pressed when `selected` is given) when `onClick` is set, otherwise\n * a static pill. For a passive content label use Tag instead.\n *\n * ```tsx\n * <Chip selected={filter === \"all\"} onClick={() => setFilter(\"all\")}>All</Chip>\n * <Chip variant=\"outline\" icon={<Icon name=\"pin\" />}>Nearby</Chip>\n * ```\n */\nexport function Chip({\n children,\n variant = \"soft\",\n selected,\n icon,\n onClick,\n disabled = false,\n className,\n ...rest\n}: ChipProps): ReactElement {\n const interactive = typeof onClick === \"function\";\n\n const shared = {\n className: cx(\n styles.chip,\n styles[`variant-${variant}`],\n selected && styles.selected,\n interactive && !disabled && styles.interactive,\n disabled && styles.disabled,\n className,\n ),\n ...rest,\n };\n\n const content = (\n <>\n {icon ? <span className={styles.icon}>{icon}</span> : null}\n {children}\n </>\n );\n\n return interactive ? (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n aria-pressed={selected === undefined ? undefined : selected}\n {...shared}\n >\n {content}\n </button>\n ) : (\n <span {...shared}>{content}</span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped\";\nexport default {\"group\":\"mds-ChipGroup__group\",\"gap-hairline\":\"mds-ChipGroup__gap-hairline\",\"gap-tight\":\"mds-ChipGroup__gap-tight\",\"gap-base\":\"mds-ChipGroup__gap-base\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ChipGroup.module.css\";\n\nexport type ChipGroupGap = \"hairline\" | \"tight\" | \"base\";\n\nexport interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Chips (or any inline items) laid out in a wrapping group. */\n children: ReactNode;\n /** Space between items, on the gap scale. Default \"tight\". */\n gap?: ChipGroupGap;\n}\n\n/**\n * Wrapping row of Chips for multi-select choices inside a form (pick several\n * days, locations, tags…). Items wrap onto new lines so nothing scrolls\n * off-screen; use ChipBar for a single-line scrolling filter strip.\n *\n * ```tsx\n * <ChipGroup>\n * {days.map((day) => (\n * <Chip key={day} selected={picked.has(day)} onClick={() => toggle(day)}>\n * {day}\n * </Chip>\n * ))}\n * </ChipGroup>\n * ```\n */\nexport function ChipGroup({ children, gap = \"tight\", className, ...rest }: ChipGroupProps): ReactElement {\n return (\n <div className={cx(styles.group, styles[`gap-${gap}`], className)} {...rest}>\n {children}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-ChipBar__bar\",\"gap-hairline\":\"mds-ChipBar__gap-hairline\",\"gap-tight\":\"mds-ChipBar__gap-tight\",\"gap-base\":\"mds-ChipBar__gap-base\",\"bordered\":\"mds-ChipBar__bordered\",\"fade\":\"mds-ChipBar__fade\",\"item\":\"mds-ChipBar__item\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ChipBar.module.css\";\n\nexport type ChipBarGap = \"hairline\" | \"tight\" | \"base\";\n\nexport interface ChipBarProps extends HTMLAttributes<HTMLDivElement> {\n /** Chips (or any inline items) laid out in a single scrolling row. */\n children: ReactNode;\n /** Space between items, on the gap scale. Default \"tight\". */\n gap?: ChipBarGap;\n /** Frame the strip so overflow reads as a scroll area. Default false. */\n bordered?: boolean;\n /** Fade the trailing edge to hint that the row scrolls. Default true. */\n fade?: boolean;\n}\n\n/**\n * Horizontally scrollable single-line row of Chips — a filter strip. Items\n * never wrap; the row scrolls when they overflow. `fade` dissolves the\n * trailing edge so the last chip hints at more rather than getting chopped\n * mid-word. Use ChipGroup for a wrapping set of choices inside a form.\n *\n * ```tsx\n * <ChipBar>\n * {segments.map((s) => (\n * <Chip key={s} selected={s === segment} onClick={() => setSegment(s)}>\n * {s}\n * </Chip>\n * ))}\n * </ChipBar>\n * ```\n */\nexport function ChipBar({\n children,\n gap = \"tight\",\n bordered = false,\n fade = true,\n className,\n ...rest\n}: ChipBarProps): ReactElement {\n return (\n <div\n className={cx(styles.bar, styles[`gap-${gap}`], bordered && styles.bordered, fade && styles.fade, className)}\n {...rest}\n >\n {Children.map(children, (child) => (\n <div className={styles.item}>{child}</div>\n ))}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/CountButton/CountButton.module.css?mds-scoped\";\nexport default {\"button\":\"mds-CountButton__button\",\"tone-accent\":\"mds-CountButton__tone-accent\",\"tone-danger\":\"mds-CountButton__tone-danger\",\"glyph\":\"mds-CountButton__glyph\"};","import type { ButtonHTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./CountButton.module.css\";\n\nexport type CountButtonTone = \"accent\" | \"danger\";\n\n/* Matches --mds-icon-md; the spinner replaces an md glyph without reflow. */\nconst SPINNER_PX = 20;\n\nexport interface CountButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"aria-label\" | \"aria-pressed\"> {\n /** Glyph shown before the text, e.g. `<Icon name=\"heart\" />` (md). */\n icon: ReactNode;\n /** Accessible label (required) — describes the action for screen readers. */\n label: string;\n /**\n * Toggle state. When defined, sets `aria-pressed` and tints the control\n * with the tone colour. Omit for non-toggle actions (e.g. comment).\n */\n active?: boolean;\n /** Token the active tint reads. Default \"accent\". */\n tone?: CountButtonTone;\n /**\n * The write behind this action is in flight. Swaps the glyph for a spinner\n * of the same size and locks the control — a second tap in that window\n * would toggle the write straight back off.\n */\n loading?: boolean;\n /** Visible text beside the icon — typically a count or a word. */\n children?: ReactNode;\n}\n\n/**\n * Inline, chrome-less pressable pairing an icon with a count or word — like,\n * comment, react actions. Owns hover, press, disabled, loading and active\n * (`aria-pressed`) states so consumers never hand-roll button chrome.\n *\n * The app owns the glyph, so it also owns the filled/outline swap:\n *\n * ```tsx\n * <CountButton\n * icon={<Icon name={liked ? \"heart-filled\" : \"heart\"} />}\n * label={liked ? \"Unlike\" : \"Like\"}\n * active={liked}\n * loading={likeMutation.isPending}\n * onClick={() => likeMutation.mutate()}\n * >\n * {likeCount}\n * </CountButton>\n * ```\n */\nexport function CountButton({\n icon,\n label,\n active,\n tone = \"accent\",\n disabled = false,\n loading = false,\n className,\n children,\n ...rest\n}: CountButtonProps): ReactElement {\n const isToggle = active !== undefined;\n\n return (\n <button\n type=\"button\"\n disabled={disabled || loading}\n aria-label={label}\n aria-pressed={isToggle ? active : undefined}\n aria-busy={loading || undefined}\n className={cx(styles.button, active && styles[`tone-${tone}`], className)}\n {...rest}\n >\n {/* The button's own aria-busy announces the wait; the spinner is decor. */}\n {loading ? <Spinner size={SPINNER_PX} label=\"\" aria-hidden=\"true\" /> : <span className={styles.glyph}>{icon}</span>}\n {children != null ? <span>{children}</span> : null}\n </button>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped\";\nexport default {\"field\":\"mds-Field__field\",\"label\":\"mds-Field__label\",\"required\":\"mds-Field__required\",\"message\":\"mds-Field__message\",\"error\":\"mds-Field__error\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext, useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Field.module.css\";\n\nexport interface FieldContextValue {\n /** Control id — the label points here. */\n id: string;\n /** Space-joined ids of hint/error, for aria-describedby. */\n describedBy: string | undefined;\n invalid: boolean;\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null);\n\n/** Controls call this to pick up Field wiring. Null outside a Field. */\nexport function useFieldContext(): FieldContextValue | null {\n return useContext(FieldContext);\n}\n\nexport interface FieldProps {\n label: string;\n children: ReactNode;\n /** Guidance under the control. */\n hint?: string;\n /** Validation message; replaces the hint and flags the control invalid. */\n error?: string;\n required?: boolean;\n className?: string;\n}\n\n/**\n * Label + control + hint/error, wired for assistive tech. The control inside\n * (Input, Textarea, Select, …) picks up id, aria-describedby and aria-invalid\n * from context — no manual plumbing at call sites.\n *\n * ```tsx\n * <Field label=\"Email\" hint=\"Work email preferred\" error={errors.email} required>\n * <Input type=\"email\" value={email} onChange={(e) => setEmail(e.target.value)} />\n * </Field>\n * ```\n */\nexport function Field({ label, children, hint, error, required = false, className }: FieldProps): ReactElement {\n const id = useId();\n const messageId = `${id}-message`;\n const message = error ?? hint;\n\n return (\n <div className={cx(styles.field, className)}>\n <label className={styles.label} htmlFor={id}>\n {label}\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n <FieldContext.Provider\n value={{ id, describedBy: message ? messageId : undefined, invalid: error !== undefined }}\n >\n {children}\n </FieldContext.Provider>\n {message && (\n <span id={messageId} className={cx(styles.message, error !== undefined && styles.error)}>\n {message}\n </span>\n )}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Select/Select.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-Select__wrap\",\"select\":\"mds-Select__select\",\"size-sm\":\"mds-Select__size-sm\",\"size-md\":\"mds-Select__size-md\",\"size-lg\":\"mds-Select__size-lg\",\"chevron\":\"mds-Select__chevron\"};","import type { ReactElement, Ref, SelectHTMLAttributes } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Select.module.css\";\n\nexport type SelectSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"size\"> {\n size?: SelectSize;\n ref?: Ref<HTMLSelectElement>;\n}\n\n/**\n * Native select, styled. Native = free keyboard, mobile pickers, screen\n * reader behavior; a custom popover earns its complexity only when options\n * need rich content.\n *\n * ```tsx\n * <Field label=\"Language\">\n * <Select value={lang} onChange={(e) => setLang(e.target.value)}>\n * <option value=\"de\">Deutsch</option>\n * <option value=\"en\">English</option>\n * </Select>\n * </Field>\n * ```\n */\nexport function Select({ size = \"md\", className, children, ...rest }: SelectProps): ReactElement {\n const field = useFieldContext();\n return (\n <span className={styles.wrap}>\n <select\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? (field?.invalid || undefined)}\n className={cx(styles.select, styles[`size-${size}`], className)}\n {...rest}\n >\n {children}\n </select>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.chevron}>\n <path d=\"M4 6l4 4 4-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </span>\n );\n}\n","import { createContext } from \"react\";\n\nexport interface OverlayHistory {\n /**\n * An overlay has opened. The implementation adds a history entry, and calls\n * `onPop` if the user goes back to it. Returns a dispose for when the\n * overlay closes some other way — its close button, Escape, the scrim, or\n * unmounting. The implementation owes the entry back: one left behind is a\n * back tap that does nothing.\n */\n register(onPop: () => void): () => void;\n}\n\n/**\n * On a phone, back is also the dismiss gesture: an open overlay that ignores\n * it costs the user the screen underneath instead. The library owns *when* an\n * overlay opens and closes; the app owns the history mechanism, because a raw\n * `history.pushState` from a library corrupts a router's own bookkeeping\n * (React Router keeps its index in `history.state`).\n *\n * Null wherever no app has supplied one — Storybook, a unit test, a consumer\n * that has not opted in. Overlays go on working; they just do not answer back.\n *\n * `useOverlay` registers every open overlay, so Modal, Sheet and\n * ConfirmDialog are covered with no per-call-site wiring:\n *\n * ```tsx\n * // App root — e.g. backed by the app router:\n * const overlayHistory = useMemo<OverlayHistory>(() => ({\n * register(onPop) {\n * pushOverlayEntry(onPop); // app-owned, via the router\n * return () => popOverlayEntry(); // give the entry back\n * },\n * }), []);\n *\n * <OverlayHistoryContext.Provider value={overlayHistory}>\n * <App />\n * </OverlayHistoryContext.Provider>\n * ```\n */\nexport const OverlayHistoryContext = createContext<OverlayHistory | null>(null);\n","import { useContext, useEffect, useRef } from \"react\";\nimport type { RefObject } from \"react\";\nimport { OverlayHistoryContext } from \"./overlayHistory\";\n\nexport interface UseOverlayOptions {\n open: boolean;\n onClose: () => void;\n}\n\nconst FOCUSABLE =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * Shared modal-surface behaviour: focus capture and restore, Escape to\n * close, Tab cycling inside the panel, body scroll lock. Attach the\n * returned ref to the dialog element (it needs tabIndex={-1}).\n *\n * Anchor-positioned overlays (Tooltip/Popover) will extend this hook with\n * a floating-ui middleware pass; the options object leaves room for that.\n */\nexport function useOverlay<T extends HTMLElement>(options: UseOverlayOptions): RefObject<T | null> {\n const ref = useRef<T>(null);\n const { open, onClose } = options;\n const close = useRef(onClose);\n useEffect(() => {\n close.current = onClose;\n }, [onClose]);\n\n /* Back-button contract: an app that supplies OverlayHistory gets every open\n overlay registered, so back dismisses the innermost one instead of leaving\n the screen underneath. Null context (Storybook, tests, non-opted apps) is\n a no-op. The register/dispose pair keeps history balanced either way. */\n const overlayHistory = useContext(OverlayHistoryContext);\n useEffect(() => {\n if (!open || !overlayHistory) return;\n return overlayHistory.register(() => close.current());\n }, [open, overlayHistory]);\n\n useEffect(() => {\n if (!open) return;\n const panel = ref.current;\n const previous = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n panel?.focus();\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n close.current();\n return;\n }\n if (event.key !== \"Tab\" || !panel) return;\n const focusable = [...panel.querySelectorAll<HTMLElement>(FOCUSABLE)];\n if (focusable.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const active = document.activeElement;\n if (event.shiftKey && (active === first || active === panel)) {\n event.preventDefault();\n last?.focus();\n } else if (!event.shiftKey && active === last) {\n event.preventDefault();\n first?.focus();\n }\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n const bodyOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = bodyOverflow;\n previous?.focus();\n };\n }, [open]);\n\n return ref;\n}\n","import { useEffect, useState } from \"react\";\n\nexport interface Presence {\n /** Keep the element in the DOM (true during exit animation). */\n mounted: boolean;\n /** Drive the visual state — false during exit. */\n visible: boolean;\n}\n\n/**\n * Exit-animation helper. `open` flips instantly; `mounted` lags by\n * `durationMs` on close so the exit transition can play.\n */\nexport function usePresence(open: boolean, durationMs: number): Presence {\n const [mounted, setMounted] = useState(open);\n\n // Sync on open belongs in render, not an effect (\"adjusting state when\n // props change\" pattern) — the effect only owns the exit timer.\n if (open && !mounted) setMounted(true);\n\n useEffect(() => {\n if (open) return;\n const timer = setTimeout(() => setMounted(false), durationMs);\n return () => clearTimeout(timer);\n }, [open, durationMs]);\n\n return { mounted: open || mounted, visible: open };\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Overlay/Overlay.module.css?mds-scoped\";\nexport default {\"scrim\":\"mds-Overlay__scrim\",\"variant-modal\":\"mds-Overlay__variant-modal\",\"variant-sheet\":\"mds-Overlay__variant-sheet\"};","import { createPortal } from \"react-dom\";\nimport type { ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useOverlay } from \"../../hooks/useOverlay\";\nimport { usePresence } from \"../../hooks/usePresence\";\nimport styles from \"./Overlay.module.css\";\n\n/** Matches --mds-dur-base; usePresence needs the number in JS. */\nexport const OVERLAY_EXIT_MS = 200;\n\nexport interface OverlayProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n variant: \"modal\" | \"sheet\";\n /** alertdialog interrupts — confirms use it so AT announces the question. */\n role?: \"dialog\" | \"alertdialog\";\n /** Scrim click dismisses. Confirmations turn this off. */\n closeOnScrimClick: boolean;\n panelClassName: string | undefined;\n children: ReactNode;\n}\n\n/**\n * Internal shell shared by Modal and Sheet: portal, scrim, dialog\n * semantics, useOverlay behaviour, exit-animation presence. Not exported\n * from the package.\n */\nexport function Overlay({ open, onClose, label, variant, role = \"dialog\", closeOnScrimClick, panelClassName, children }: OverlayProps) {\n const { mounted, visible } = usePresence(open, OVERLAY_EXIT_MS);\n const ref = useOverlay<HTMLDivElement>({ open, onClose });\n\n if (!mounted) return null;\n\n return createPortal(\n <div\n className={cx(styles.scrim, styles[`variant-${variant}`])}\n data-open={visible || undefined}\n data-testid=\"mds-scrim\"\n onClick={closeOnScrimClick ? onClose : undefined}\n >\n <div\n ref={ref}\n role={role}\n aria-modal=\"true\"\n aria-label={label}\n tabIndex={-1}\n className={panelClassName}\n data-open={visible || undefined}\n onClick={(event) => event.stopPropagation()}\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Sheet/Sheet.module.css?mds-scoped\";\nexport default {\"panel\":\"mds-Sheet__panel\",\"header\":\"mds-Sheet__header\",\"body\":\"mds-Sheet__body\",\"footer\":\"mds-Sheet__footer\",\"headerTitle\":\"mds-Sheet__headerTitle\",\"close\":\"mds-Sheet__close\",\"closeGlyph\":\"mds-Sheet__closeGlyph\"};","import type { ReactNode } from \"react\";\nimport { Overlay } from \"../Overlay/Overlay\";\nimport styles from \"./Sheet.module.css\";\n\nexport interface SheetProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n /** Scrim click dismisses. Default true. */\n closeOnScrimClick?: boolean;\n children: ReactNode;\n}\n\n/**\n * Bottom sheet. Same composition and dismissal model as Modal:\n *\n * ```tsx\n * <Sheet open={open} onClose={() => setOpen(false)} label=\"Filters\">\n * <SheetHeader>Filters</SheetHeader>\n * <SheetBody>…</SheetBody>\n * <SheetFooter><Button onClick={apply}>Apply</Button></SheetFooter>\n * </Sheet>\n * ```\n */\nexport function Sheet({ open, onClose, label, closeOnScrimClick = true, children }: SheetProps) {\n return (\n <Overlay\n open={open}\n onClose={onClose}\n label={label}\n variant=\"sheet\"\n closeOnScrimClick={closeOnScrimClick}\n panelClassName={styles.panel}\n >\n {children}\n </Overlay>\n );\n}\n\nexport type SheetHeaderProps = { children: ReactNode } & (\n | {\n /** Renders a close button after the title. Wire it to the sheet's own onClose. */\n onClose: () => void;\n /** Accessible name of the close button (localise). */\n closeLabel: string;\n }\n | { onClose?: undefined; closeLabel?: undefined }\n);\n\nexport function SheetHeader({ children, onClose, closeLabel }: SheetHeaderProps) {\n return (\n <div className={styles.header}>\n <span className={styles.headerTitle}>{children}</span>\n {onClose !== undefined && (\n <button type=\"button\" aria-label={closeLabel} className={styles.close} onClick={onClose}>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.closeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </div>\n );\n}\n\nexport function SheetBody({ children }: { children: ReactNode }) {\n return <div className={styles.body}>{children}</div>;\n}\n\nexport function SheetFooter({ children }: { children: ReactNode }) {\n return <div className={styles.footer}>{children}</div>;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped\";\nexport default {\"trigger\":\"mds-DateTimePicker__trigger\",\"hasValue\":\"mds-DateTimePicker__hasValue\",\"triggerLabel\":\"mds-DateTimePicker__triggerLabel\",\"glyph\":\"mds-DateTimePicker__glyph\",\"timeRow\":\"mds-DateTimePicker__timeRow\",\"grow\":\"mds-DateTimePicker__grow\",\"meridiem\":\"mds-DateTimePicker__meridiem\",\"colon\":\"mds-DateTimePicker__colon\",\"calendarHeader\":\"mds-DateTimePicker__calendarHeader\",\"monthLabel\":\"mds-DateTimePicker__monthLabel\",\"weekdays\":\"mds-DateTimePicker__weekdays\",\"weekday\":\"mds-DateTimePicker__weekday\",\"grid\":\"mds-DateTimePicker__grid\",\"day\":\"mds-DateTimePicker__day\",\"today\":\"mds-DateTimePicker__today\",\"selected\":\"mds-DateTimePicker__selected\",\"outside\":\"mds-DateTimePicker__outside\"};","import type { KeyboardEvent, ReactElement } from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport { Button } from \"../Button/Button\";\nimport { Select } from \"../Select/Select\";\nimport { Sheet, SheetBody, SheetFooter, SheetHeader } from \"../Sheet/Sheet\";\nimport styles from \"./DateTimePicker.module.css\";\n\nexport interface DateTimePickerLabels {\n /** Accessible name of the picker dialog. */\n dialog: string;\n previousMonth: string;\n nextMonth: string;\n today: string;\n done: string;\n hour: string;\n minute: string;\n dayPeriod: string;\n}\n\nconst DEFAULT_LABELS: DateTimePickerLabels = {\n dialog: \"Pick date and time\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n today: \"Today\",\n done: \"Done\",\n hour: \"Hour\",\n minute: \"Minutes\",\n dayPeriod: \"AM/PM\",\n};\n\nexport interface DateTimePickerProps {\n /** Current value as an ISO 8601 string. */\n value?: string | undefined;\n /** Fires with the combined ISO string when the user confirms. */\n onChange: (iso: string) => void;\n /** Shown on the trigger when nothing is selected. */\n placeholder?: string | undefined;\n /** Earliest selectable moment as an ISO string. Default: now. */\n min?: string | undefined;\n /** Minute granularity. Default 5; use 30 for :00/:30 only. */\n minuteStep?: number | undefined;\n disabled?: boolean | undefined;\n /** Applied to the trigger button so a `<label htmlFor>` can point at it. */\n id?: string | undefined;\n /** Field name for the trigger, e.g. \"Starts\". Announced alongside the value. */\n \"aria-label\"?: string | undefined;\n /** BCP 47 tag for names, week start and hour cycle. Default: runtime locale. */\n locale?: string | undefined;\n /** Overrides for the picker's own strings (defaults are English). */\n labels?: Partial<DateTimePickerLabels> | undefined;\n}\n\n/* --- Intl-derived locale facts, computed once per locale ------------------ */\n\ninterface LocaleData {\n /** JS day index (0 = Sunday) the week starts on. */\n firstDay: number;\n /** Weekday column headers, ordered from firstDay. */\n weekdays: string[];\n /** 12-hour clock? */\n hour12: boolean;\n /** Localized day-period labels, e.g. [\"AM\", \"PM\"]. */\n dayPeriods: [string, string];\n monthTitle: Intl.DateTimeFormat;\n dayLabel: Intl.DateTimeFormat;\n full: Intl.DateTimeFormat;\n}\n\n/* getWeekInfo is not in the TS lib yet; some engines expose it as an accessor. */\ninterface WeekInfoLocale extends Intl.Locale {\n getWeekInfo?: () => { firstDay: number };\n weekInfo?: { firstDay: number };\n}\n\nfunction localeData(locale: string | undefined): LocaleData {\n const resolved = new Intl.DateTimeFormat(locale).resolvedOptions().locale;\n\n /* Spec counts 1 = Monday … 7 = Sunday; JS Date counts 0 = Sunday. Engines\n without weekInfo fall back to Monday — most of the world's week start. */\n const intlLocale = new Intl.Locale(resolved) as WeekInfoLocale;\n const weekInfo = intlLocale.getWeekInfo?.() ?? intlLocale.weekInfo;\n const firstDay = (weekInfo?.firstDay ?? 1) % 7;\n\n /* 2021-08-01 was a Sunday; format a known week to get the headers. */\n const weekdayFmt = new Intl.DateTimeFormat(resolved, { weekday: \"short\", timeZone: \"UTC\" });\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n weekdayFmt.format(new Date(Date.UTC(2021, 7, 1 + ((firstDay + i) % 7)))),\n );\n\n const hourFmt = new Intl.DateTimeFormat(resolved, { hour: \"numeric\" });\n const { hourCycle } = hourFmt.resolvedOptions();\n const hour12 = hourCycle === \"h11\" || hourCycle === \"h12\";\n\n const periodOf = (hour: number): string =>\n new Intl.DateTimeFormat(resolved, { hour: \"numeric\", hour12: true })\n .formatToParts(new Date(2021, 0, 1, hour))\n .find((part) => part.type === \"dayPeriod\")?.value ?? (hour < 12 ? \"AM\" : \"PM\");\n\n return {\n firstDay,\n weekdays,\n hour12,\n dayPeriods: [periodOf(9), periodOf(21)],\n monthTitle: new Intl.DateTimeFormat(resolved, { month: \"long\", year: \"numeric\" }),\n dayLabel: new Intl.DateTimeFormat(resolved, { month: \"long\", day: \"numeric\", year: \"numeric\" }),\n full: new Intl.DateTimeFormat(resolved, {\n weekday: \"short\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n }),\n };\n}\n\n/* --- date arithmetic ------------------------------------------------------ */\n\nfunction startOfDay(d: Date): number {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n}\n\nfunction snapMinutes(d: Date, step: number): Date {\n const out = new Date(d);\n out.setMinutes(Math.round(out.getMinutes() / step) * step, 0, 0);\n return out;\n}\n\nfunction addDays(d: Date, n: number): Date {\n const o = new Date(d);\n o.setDate(o.getDate() + n);\n return o;\n}\n\nfunction addMonths(d: Date, n: number): Date {\n const o = new Date(d);\n o.setMonth(o.getMonth() + n);\n return o;\n}\n\nfunction minuteOptions(step: number): number[] {\n const s = Math.max(1, Math.min(60, Math.floor(step)));\n return Array.from({ length: Math.floor(60 / s) }, (_, i) => i * s);\n}\n\nfunction pad2(n: number): string {\n return String(n).padStart(2, \"0\");\n}\n\n/* --- glyphs — internal chrome, like Tag's remove ✕; no registry contract --- */\n\nconst chevronLeft = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <path d=\"M10 3l-5 5 5 5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\nconst chevronRight = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <path d=\"M6 3l5 5-5 5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\nconst calendarGlyph = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <rect x=\"2.5\" y=\"3.5\" width=\"11\" height=\"10\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n);\nconst clockGlyph = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <circle cx=\"8\" cy=\"8\" r=\"5.75\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5v3.25l2 1.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\n/**\n * Mobile-first date + time picker. A trigger styled like Input opens a bottom\n * sheet with a month calendar (roving-focus grid, arrow keys move the day)\n * and native Select time controls. Controlled via `value` (ISO); emits the\n * combined ISO string on confirm. All names, the week start and the 12/24-hour\n * clock come from `Intl` for the given locale.\n *\n * ```tsx\n * <Field label=\"Starts\">\n * <DateTimePicker\n * value={startsAt}\n * onChange={setStartsAt}\n * min={new Date().toISOString()}\n * minuteStep={30}\n * locale={i18n.language}\n * />\n * </Field>\n * ```\n */\nexport function DateTimePicker({\n value,\n onChange,\n placeholder = \"Select date & time\",\n min,\n minuteStep = 5,\n disabled = false,\n id,\n \"aria-label\": ariaLabel,\n locale,\n labels,\n}: DateTimePickerProps): ReactElement {\n const text: DateTimePickerLabels = { ...DEFAULT_LABELS, ...labels };\n /* Inside a Field, claim its generated control id and message wiring, the\n same way Input/Select/Textarea do — the field's <label htmlFor> points at\n the control id, and without it the label names nothing. */\n const field = useFieldContext();\n const intl = useMemo(() => localeData(locale), [locale]);\n\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<Date>(() => new Date());\n const [view, setView] = useState<{ y: number; m: number }>(() => {\n const d = new Date();\n return { y: d.getFullYear(), m: d.getMonth() };\n });\n /* The calendar grid is a single tab stop: `focusedDay` is the one day that\n carries tabIndex 0; arrow keys move it (roving focus), crossing months. */\n const [focusedDay, setFocusedDay] = useState<Date>(() => new Date());\n const dayRefs = useRef<Map<number, HTMLButtonElement>>(new Map());\n const pendingFocusRef = useRef(false);\n\n const minDate = min ? new Date(min) : new Date();\n const minStart = startOfDay(minDate);\n\n /* Re-seed the draft + visible month from the current value each time the\n panel opens. When `value` precedes `min` the roving tab stop clamps to\n `min`, and the view must follow it or no day in the grid is focusable. */\n function openPicker(): void {\n const base = snapMinutes(value ? new Date(value) : new Date(), minuteStep);\n setDraft(base);\n const start = startOfDay(base) >= minStart ? base : new Date(minStart);\n setView({ y: start.getFullYear(), m: start.getMonth() });\n setFocusedDay(start);\n setOpen(true);\n }\n\n /* Move DOM focus onto the roving target after an arrow-key move (only then —\n never steal focus when the panel first opens). */\n useEffect(() => {\n if (!pendingFocusRef.current) return;\n pendingFocusRef.current = false;\n dayRefs.current.get(startOfDay(focusedDay))?.focus();\n }, [focusedDay, view]);\n\n const h24 = draft.getHours();\n const h12 = h24 % 12 || 12;\n const isPM = h24 >= 12;\n\n function setHour(v: string): void {\n const nd = new Date(draft);\n nd.setHours(intl.hour12 ? (Number(v) % 12) + (isPM ? 12 : 0) : Number(v));\n setDraft(nd);\n }\n function setMinute(v: string): void {\n const nd = new Date(draft);\n nd.setMinutes(Number(v), 0, 0);\n setDraft(nd);\n }\n function setMeridiem(v: string): void {\n const nd = new Date(draft);\n nd.setHours((h12 % 12) + (v === \"pm\" ? 12 : 0));\n setDraft(nd);\n }\n function pickDay(day: number): void {\n const nd = new Date(draft);\n nd.setFullYear(view.y, view.m, day);\n setDraft(nd);\n }\n /* First selectable day in a month — the 1st, or `min` when it falls\n mid-month. Keeps the roving tab stop pointed at an enabled, in-view day. */\n function firstFocusableInView(y: number, m: number): Date {\n const monthStart = new Date(y, m, 1);\n return startOfDay(monthStart) >= minStart ? monthStart : new Date(minStart);\n }\n function shiftMonth(delta: number): void {\n let m = view.m + delta;\n let y = view.y;\n if (m < 0) { m = 11; y -= 1; }\n if (m > 11) { m = 0; y += 1; }\n setView({ y, m });\n setFocusedDay(firstFocusableInView(y, m));\n }\n function goToday(): void {\n const t = new Date();\n setView({ y: t.getFullYear(), m: t.getMonth() });\n setFocusedDay(startOfDay(t) >= minStart ? t : new Date(minStart));\n }\n /* Move the roving focus to `next` (clamped to >= min), following it across a\n month boundary, then focus the target cell once it renders. */\n function focusDate(next: Date): void {\n if (startOfDay(next) < minStart) return;\n pendingFocusRef.current = true;\n if (next.getMonth() !== view.m || next.getFullYear() !== view.y) {\n setView({ y: next.getFullYear(), m: next.getMonth() });\n }\n setFocusedDay(next);\n }\n function onDayKeyDown(e: KeyboardEvent<HTMLButtonElement>, cell: Date): void {\n /* Home/End go to the locale's start/end of week, not Sunday/Saturday. */\n const weekOffset = (cell.getDay() - intl.firstDay + 7) % 7;\n switch (e.key) {\n case \"ArrowLeft\": e.preventDefault(); focusDate(addDays(cell, -1)); break;\n case \"ArrowRight\": e.preventDefault(); focusDate(addDays(cell, 1)); break;\n case \"ArrowUp\": e.preventDefault(); focusDate(addDays(cell, -7)); break;\n case \"ArrowDown\": e.preventDefault(); focusDate(addDays(cell, 7)); break;\n case \"Home\": e.preventDefault(); focusDate(addDays(cell, -weekOffset)); break;\n case \"End\": e.preventDefault(); focusDate(addDays(cell, 6 - weekOffset)); break;\n case \"PageUp\": e.preventDefault(); focusDate(addMonths(cell, -1)); break;\n case \"PageDown\": e.preventDefault(); focusDate(addMonths(cell, 1)); break;\n case \"Enter\":\n case \" \":\n e.preventDefault();\n pickDay(cell.getDate());\n break;\n default: break;\n }\n }\n function confirm(): void {\n onChange(draft.toISOString());\n setOpen(false);\n }\n\n const first = new Date(view.y, view.m, 1);\n const startWeekday = (first.getDay() - intl.firstDay + 7) % 7;\n const daysInMonth = new Date(view.y, view.m + 1, 0).getDate();\n const prevDisabled =\n view.y < minDate.getFullYear() || (view.y === minDate.getFullYear() && view.m <= minDate.getMonth());\n const todayStart = startOfDay(new Date());\n const draftStart = startOfDay(draft);\n\n /* Render the month's natural span of weeks: trailing days of the previous\n month, in-month days 1..N, then enough of the next month to complete the\n last week (4/5/6 rows). Neighbour-month days are dimmed + non-interactive;\n the grid reserves 6 rows of height so the panel never jumps. */\n const spanCells = Math.ceil((startWeekday + daysInMonth) / 7) * 7;\n const dayCells = Array.from({ length: spanCells }, (_, i) => {\n const cell = new Date(view.y, view.m, 1 - startWeekday + i);\n const inMonth = cell.getMonth() === view.m && cell.getFullYear() === view.y;\n const cellStart = cell.getTime();\n const isDisabled = !inMonth || cellStart < minStart;\n const isSelected = inMonth && cellStart === draftStart;\n const isToday = inMonth && cellStart === todayStart;\n const isFocusTarget = inMonth && !isDisabled && cellStart === startOfDay(focusedDay);\n return (\n <button\n key={`c-${i}`}\n type=\"button\"\n disabled={isDisabled}\n /* Single tab stop: only the roving-focus day is tabbable; the rest are\n reached with the arrow keys (WCAG 2.1.1 / grid pattern). */\n tabIndex={isFocusTarget ? 0 : -1}\n ref={\n inMonth && !isDisabled\n ? (el): void => {\n if (el) dayRefs.current.set(cellStart, el);\n else dayRefs.current.delete(cellStart);\n }\n : undefined\n }\n aria-hidden={inMonth ? undefined : true}\n aria-label={intl.dayLabel.format(cell)}\n aria-pressed={isSelected}\n onClick={inMonth ? () => pickDay(cell.getDate()) : undefined}\n onKeyDown={inMonth && !isDisabled ? (e) => onDayKeyDown(e, cell) : undefined}\n className={cx(styles.day, isToday && styles.today, isSelected && styles.selected, !inMonth && styles.outside)}\n >\n {cell.getDate()}\n </button>\n );\n });\n\n return (\n <>\n <button\n id={id ?? field?.id}\n type=\"button\"\n disabled={disabled}\n aria-describedby={field?.describedBy}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n /* Announce the field name (when given) alongside the current value. */\n aria-label={\n ariaLabel\n ? `${ariaLabel}: ${value ? intl.full.format(new Date(value)) : placeholder}`\n : undefined\n }\n onClick={openPicker}\n className={cx(styles.trigger, value && styles.hasValue)}\n >\n {calendarGlyph}\n <span className={styles.triggerLabel}>{value ? intl.full.format(new Date(value)) : placeholder}</span>\n </button>\n\n <Sheet open={open} onClose={() => setOpen(false)} label={ariaLabel ?? text.dialog}>\n <SheetHeader>{intl.full.format(draft)}</SheetHeader>\n <SheetBody>\n <div className={styles.timeRow}>\n {clockGlyph}\n {intl.hour12 ? (\n <>\n <Select aria-label={text.hour} value={String(h12)} onChange={(e) => setHour(e.target.value)} className={styles.grow}>\n {Array.from({ length: 12 }, (_, i) => (\n <option key={i + 1} value={String(i + 1)}>\n {i + 1}\n </option>\n ))}\n </Select>\n <span className={styles.colon} aria-hidden=\"true\">:</span>\n <Select aria-label={text.minute} value={String(draft.getMinutes())} onChange={(e) => setMinute(e.target.value)} className={styles.grow}>\n {minuteOptions(minuteStep).map((m) => (\n <option key={m} value={String(m)}>\n {pad2(m)}\n </option>\n ))}\n </Select>\n <Select aria-label={text.dayPeriod} value={isPM ? \"pm\" : \"am\"} onChange={(e) => setMeridiem(e.target.value)} className={styles.meridiem}>\n <option value=\"am\">{intl.dayPeriods[0]}</option>\n <option value=\"pm\">{intl.dayPeriods[1]}</option>\n </Select>\n </>\n ) : (\n <>\n <Select aria-label={text.hour} value={String(h24)} onChange={(e) => setHour(e.target.value)} className={styles.grow}>\n {Array.from({ length: 24 }, (_, i) => (\n <option key={i} value={String(i)}>\n {pad2(i)}\n </option>\n ))}\n </Select>\n <span className={styles.colon} aria-hidden=\"true\">:</span>\n <Select aria-label={text.minute} value={String(draft.getMinutes())} onChange={(e) => setMinute(e.target.value)} className={styles.grow}>\n {minuteOptions(minuteStep).map((m) => (\n <option key={m} value={String(m)}>\n {pad2(m)}\n </option>\n ))}\n </Select>\n </>\n )}\n </div>\n\n <div role=\"group\" aria-label={intl.monthTitle.format(first)}>\n <div className={styles.calendarHeader}>\n <Button\n iconOnly\n aria-label={text.previousMonth}\n variant=\"ghost\"\n size=\"sm\"\n disabled={prevDisabled}\n onClick={() => shiftMonth(-1)}\n >\n {chevronLeft}\n </Button>\n <span className={styles.monthLabel}>{intl.monthTitle.format(first)}</span>\n <Button iconOnly aria-label={text.nextMonth} variant=\"ghost\" size=\"sm\" onClick={() => shiftMonth(1)}>\n {chevronRight}\n </Button>\n </div>\n <div className={styles.weekdays}>\n {intl.weekdays.map((w, i) => (\n <span key={`wd-${i}`} aria-hidden=\"true\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n <div className={styles.grid}>{dayCells}</div>\n </div>\n </SheetBody>\n <SheetFooter>\n <Button variant=\"ghost\" onClick={goToday}>\n {text.today}\n </Button>\n <Button variant=\"primary\" onClick={confirm}>\n {text.done}\n </Button>\n </SheetFooter>\n </Sheet>\n </>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped\";\nexport default {\"tag\":\"mds-Tag__tag\",\"tone-accent\":\"mds-Tag__tone-accent\",\"remove\":\"mds-Tag__remove\",\"removeGlyph\":\"mds-Tag__removeGlyph\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Tag.module.css\";\n\nexport type TagTone = \"neutral\" | \"accent\";\n\nexport interface TagProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n tone?: TagTone;\n /** Renders a labelled ✕ button. Label reads \"Remove <content>\" when content is text. */\n onRemove?: () => void;\n}\n\n/**\n * Content label chip — categories, filters, topics.\n *\n * ```tsx\n * <Tag>Design</Tag>\n * <Tag tone=\"accent\" onRemove={() => remove(id)}>Beginner</Tag>\n * ```\n */\nexport function Tag({ children, tone = \"neutral\", onRemove, className, ...rest }: TagProps): ReactElement {\n const text = typeof children === \"string\" ? children : undefined;\n return (\n <span className={cx(styles.tag, styles[`tone-${tone}`], className)} {...rest}>\n {children}\n {onRemove && (\n <button\n type=\"button\"\n className={styles.remove}\n aria-label={text ? `Remove ${text}` : \"Remove\"}\n onClick={onRemove}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.removeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Divider/Divider.module.css?mds-scoped\";\nexport default {\"divider\":\"mds-Divider__divider\",\"horizontal\":\"mds-Divider__horizontal\",\"vertical\":\"mds-Divider__vertical\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Divider.module.css\";\n\nexport interface DividerProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Visual separator. Semantic separator role via <hr>-equivalent div.\n *\n * ```tsx\n * <Divider />\n * <Divider orientation=\"vertical\" />\n * ```\n */\nexport function Divider({ orientation = \"horizontal\", className, ...rest }: DividerProps): ReactElement {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : undefined}\n className={cx(styles.divider, styles[orientation], className)}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped\";\nexport default {\"skeleton\":\"mds-Skeleton__skeleton\",\"pulse\":\"mds-Skeleton__pulse\",\"variant-text\":\"mds-Skeleton__variant-text\",\"variant-rect\":\"mds-Skeleton__variant-rect\",\"variant-circle\":\"mds-Skeleton__variant-circle\"};","import type { CSSProperties, HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Skeleton.module.css\";\n\nexport type SkeletonVariant = \"text\" | \"rect\" | \"circle\";\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: SkeletonVariant;\n /** Any CSS length. Text defaults to full width, one line tall. */\n width?: string;\n height?: string;\n}\n\n/**\n * Loading placeholder. aria-hidden — the loading announcement belongs to the\n * region (aria-busy), not to each shimmering box.\n *\n * ```tsx\n * <div aria-busy={loading}>\n * {loading ? (\n * <Stack gap=\"tight\">\n * <Skeleton width=\"40%\" />\n * <Skeleton />\n * <Skeleton variant=\"rect\" height=\"8rem\" />\n * </Stack>\n * ) : (\n * content\n * )}\n * </div>\n * ```\n */\nexport function Skeleton({\n variant = \"text\",\n width,\n height,\n className,\n style,\n ...rest\n}: SkeletonProps): ReactElement {\n const vars = {\n ...(width ? { \"--skeleton-w\": width } : {}),\n ...(height ? { \"--skeleton-h\": height } : {}),\n } as CSSProperties;\n return (\n <span\n aria-hidden=\"true\"\n className={cx(styles.skeleton, styles[`variant-${variant}`], className)}\n style={{ ...vars, ...style }}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ProgressBar/ProgressBar.module.css?mds-scoped\";\nexport default {\"track\":\"mds-ProgressBar__track\",\"fill\":\"mds-ProgressBar__fill\",\"indeterminate\":\"mds-ProgressBar__indeterminate\",\"slide\":\"mds-ProgressBar__slide\"};","import type { CSSProperties, HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ProgressBar.module.css\";\n\nexport interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {\n /** 0–100; clamped. Ignored when indeterminate. */\n value?: number;\n /** Accessible name — required. A bare bar announces nothing useful. */\n label: string;\n indeterminate?: boolean;\n}\n\n/**\n * Determinate or indeterminate progress track.\n *\n * ```tsx\n * <ProgressBar label=\"Upload\" value={64} />\n * <ProgressBar label=\"Syncing\" indeterminate />\n * ```\n */\nexport function ProgressBar({\n value = 0,\n label,\n indeterminate = false,\n className,\n style,\n ...rest\n}: ProgressBarProps): ReactElement {\n const clamped = Math.min(100, Math.max(0, value));\n return (\n <div\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={indeterminate ? undefined : clamped}\n className={cx(styles.track, indeterminate && styles.indeterminate, className)}\n style={{ ...( { \"--progress\": `${clamped}%` } as CSSProperties), ...style }}\n {...rest}\n >\n <span className={styles.fill} />\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Input/Input.module.css?mds-scoped\";\nexport default {\"input\":\"mds-Input__input\",\"size-sm\":\"mds-Input__size-sm\",\"size-md\":\"mds-Input__size-md\",\"size-lg\":\"mds-Input__size-lg\",\"iconWrap\":\"mds-Input__iconWrap\",\"icon\":\"mds-Input__icon\",\"iconLeft\":\"mds-Input__iconLeft\",\"iconRight\":\"mds-Input__iconRight\",\"with-icon-left\":\"mds-Input__with-icon-left\",\"with-icon-right\":\"mds-Input__with-icon-right\"};","import type { InputHTMLAttributes, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Input.module.css\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n size?: InputSize;\n /** Marks the value as failing validation — sets aria-invalid and the danger\n border. Inside a Field the field's error state does this already. */\n invalid?: boolean;\n /** Decorative icon inside the leading edge. Icons carry no name here —\n the input's label does the talking. */\n iconLeft?: ReactNode;\n /** Decorative icon inside the trailing edge. */\n iconRight?: ReactNode;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Single-line text input. Inside a Field it inherits id/description/invalid.\n *\n * ```tsx\n * <Field label=\"Name\">\n * <Input value={name} onChange={(e) => setName(e.target.value)} />\n * </Field>\n *\n * <Input aria-label=\"Search\" iconLeft={<Icon name=\"search\" size=\"sm\" />} />\n * ```\n */\nexport function Input({\n size = \"md\",\n invalid,\n iconLeft,\n iconRight,\n className,\n ...rest\n}: InputProps): ReactElement {\n const field = useFieldContext();\n const input = (\n <input\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? ((invalid ?? field?.invalid) || undefined)}\n className={cx(\n styles.input,\n styles[`size-${size}`],\n iconLeft != null && styles[\"with-icon-left\"],\n iconRight != null && styles[\"with-icon-right\"],\n className,\n )}\n {...rest}\n />\n );\n\n if (iconLeft == null && iconRight == null) return input;\n\n return (\n <span className={styles.iconWrap}>\n {input}\n {iconLeft != null && (\n <span className={cx(styles.icon, styles.iconLeft)} aria-hidden=\"true\">\n {iconLeft}\n </span>\n )}\n {iconRight != null && (\n <span className={cx(styles.icon, styles.iconRight)} aria-hidden=\"true\">\n {iconRight}\n </span>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-PasswordInput__wrap\",\"input\":\"mds-PasswordInput__input\",\"toggle\":\"mds-PasswordInput__toggle\"};","import { useState } from \"react\";\nimport type { ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Input } from \"../Input/Input\";\nimport type { InputProps } from \"../Input/Input\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordInputProps = Omit<InputProps, \"type\">;\n\n/**\n * Password field with a reveal toggle. Composes Input, so inside a Field it\n * inherits id/description/invalid the same way.\n *\n * ```tsx\n * <Field label=\"Password\" hint=\"At least 12 characters\">\n * <PasswordInput autoComplete=\"new-password\" />\n * </Field>\n * ```\n */\nexport function PasswordInput({ className, ...rest }: PasswordInputProps): ReactElement {\n const [visible, setVisible] = useState(false);\n return (\n <span className={styles.wrap}>\n <Input {...rest} type={visible ? \"text\" : \"password\"} className={cx(styles.input, className)} />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n aria-pressed={visible}\n onClick={() => setVisible((v) => !v)}\n >\n {visible ? (\n /* eye-off */\n <svg viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <path d=\"M14.12 14.12a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n /* eye */\n <svg viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Textarea/Textarea.module.css?mds-scoped\";\nexport default {\"textarea\":\"mds-Textarea__textarea\",\"wrap\":\"mds-Textarea__wrap\",\"count\":\"mds-Textarea__count\"};","import { useState } from \"react\";\nimport type { ChangeEvent, ReactElement, Ref, TextareaHTMLAttributes } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Textarea.module.css\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** Character counter under the control; pairs with native maxLength. */\n showCount?: boolean;\n ref?: Ref<HTMLTextAreaElement>;\n}\n\n/**\n * Multi-line text input. Inside a Field it inherits id/description/invalid.\n *\n * ```tsx\n * <Field label=\"Bio\">\n * <Textarea maxLength={160} showCount />\n * </Field>\n * ```\n */\nexport function Textarea({ rows = 3, showCount = false, className, ...rest }: TextareaProps): ReactElement {\n const field = useFieldContext();\n const [tracked, setTracked] = useState(() => String(rest.defaultValue ?? \"\"));\n const current = rest.value !== undefined ? String(rest.value) : tracked;\n\n const onChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setTracked(event.target.value);\n rest.onChange?.(event);\n };\n\n const textarea = (\n <textarea\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? (field?.invalid || undefined)}\n rows={rows}\n className={cx(styles.textarea, className)}\n {...rest}\n {...(showCount ? { onChange } : {})}\n />\n );\n\n if (!showCount) return textarea;\n return (\n <span className={styles.wrap}>\n {textarea}\n <span className={styles.count} aria-hidden=\"true\">\n {rest.maxLength !== undefined ? `${current.length}/${rest.maxLength}` : current.length}\n </span>\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Checkbox__root\",\"box\":\"mds-Checkbox__box\",\"label\":\"mds-Checkbox__label\"};","import type { InputHTMLAttributes, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Checkbox.module.css\";\n\nexport interface CheckboxProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Inline label — part of the click target. Rich content welcome (an\n inline link, a Text run); the label element names the box either way. */\n label: ReactNode;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Native checkbox, styled box. Label is the touch target too.\n *\n * ```tsx\n * <Checkbox label=\"Remember me\" defaultChecked />\n * <Checkbox\n * label=\"Accept terms\"\n * checked={accepted}\n * onChange={(e) => setAccepted(e.target.checked)}\n * />\n * ```\n */\nexport function Checkbox({ label, className, ...rest }: CheckboxProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <input type=\"checkbox\" className={styles.box} {...rest} />\n <span className={styles.label}>{label}</span>\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Radio__root\",\"dot\":\"mds-Radio__dot\",\"label\":\"mds-Radio__label\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Radio.module.css\";\n\nexport interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Inline label — part of the click target. */\n label: string;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Native radio, styled dot. Group by `name`; wrap the group in\n * `<fieldset>`/`<legend>` for a group label.\n *\n * ```tsx\n * <fieldset>\n * <legend>Plan</legend>\n * <Radio name=\"plan\" label=\"Free\" checked={plan === \"free\"} onChange={() => setPlan(\"free\")} />\n * <Radio name=\"plan\" label=\"Pro\" checked={plan === \"pro\"} onChange={() => setPlan(\"pro\")} />\n * </fieldset>\n * ```\n */\nexport function Radio({ label, className, ...rest }: RadioProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <input type=\"radio\" className={styles.dot} {...rest} />\n <span className={styles.label}>{label}</span>\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Switch__root\",\"track\":\"mds-Switch__track\",\"trackWrap\":\"mds-Switch__trackWrap\",\"spinner\":\"mds-Switch__spinner\",\"label\":\"mds-Switch__label\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./Switch.module.css\";\n\ninterface SwitchBaseProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Busy blocks toggling for the same reason disabled does — a second tap\n would queue a write against a value the first one is still deciding. */\n loading?: boolean;\n ref?: Ref<HTMLInputElement>;\n}\n\n/* A switch with no words beside it still needs a name — a row whose title\n already labels it, a column under one header. The type demands it. */\ntype SwitchLabelEnforcement =\n | { /** Inline label — part of the click target. */ label: string }\n | { label?: undefined; \"aria-label\": string };\n\nexport type SwitchProps = SwitchBaseProps & SwitchLabelEnforcement;\n\n/**\n * On/off toggle. Checkbox under the hood with role=\"switch\" — native\n * semantics and forms integration, switch announcement.\n *\n * ```tsx\n * <Switch\n * label=\"Notifications\"\n * checked={enabled}\n * onChange={(e) => setEnabled(e.target.checked)}\n * />\n * <Switch aria-label=\"Email on new posts\" checked={on} loading={saving} onChange={toggle} />\n * ```\n */\nexport function Switch({\n label,\n loading = false,\n disabled = false,\n className,\n ...rest\n}: SwitchProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <span className={styles.trackWrap}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n className={styles.track}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n {...rest}\n />\n {/* Purely visual — aria-busy on the input carries the state. */}\n {loading && (\n <Spinner size={12} label=\"\" aria-hidden=\"true\" className={styles.spinner} />\n )}\n </span>\n {label !== undefined && <span className={styles.label}>{label}</span>}\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped\";\nexport default {\"group\":\"mds-SegmentedControl__group\",\"segment\":\"mds-SegmentedControl__segment\",\"fullWidth\":\"mds-SegmentedControl__fullWidth\",\"face\":\"mds-SegmentedControl__face\",\"input\":\"mds-SegmentedControl__input\"};","import type { ReactElement } from \"react\";\nimport { useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./SegmentedControl.module.css\";\n\nexport interface SegmentOption<T extends string = string> {\n value: T;\n label: string;\n}\n\nexport interface SegmentedControlProps<T extends string = string> {\n /** Accessible group name. */\n label: string;\n options: readonly SegmentOption<T>[];\n value: T;\n onChange: (value: T) => void;\n /** Disables the whole control — e.g. a choice locked while editing. */\n disabled?: boolean;\n /** Stretch across the container, segments sharing the width equally —\n the usual shape when the control heads a screen-wide view switch. */\n fullWidth?: boolean;\n className?: string;\n}\n\n/**\n * Exclusive choice among few visible options. Native radios under the hood —\n * free keyboard model and semantics.\n *\n * ```tsx\n * <SegmentedControl\n * label=\"View\"\n * options={[\n * { value: \"list\", label: \"List\" },\n * { value: \"grid\", label: \"Grid\" },\n * ]}\n * value={view}\n * onChange={setView}\n * />\n * ```\n */\nexport function SegmentedControl<T extends string = string>({\n label,\n options,\n value,\n onChange,\n disabled = false,\n fullWidth = false,\n className,\n}: SegmentedControlProps<T>): ReactElement {\n const name = useId();\n return (\n <div role=\"radiogroup\" aria-label={label} className={cx(styles.group, fullWidth && styles.fullWidth, className)}>\n {options.map((option) => (\n <label key={option.value} className={styles.segment}>\n <input\n type=\"radio\"\n name={name}\n value={option.value}\n checked={option.value === value}\n onChange={() => onChange(option.value)}\n disabled={disabled}\n className={styles.input}\n />\n <span className={styles.face}>{option.label}</span>\n </label>\n ))}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-SearchField__wrap\",\"glass\":\"mds-SearchField__glass\",\"input\":\"mds-SearchField__input\",\"clear\":\"mds-SearchField__clear\",\"clearGlyph\":\"mds-SearchField__clearGlyph\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./SearchField.module.css\";\n\nexport interface SearchFieldProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\" | \"value\" | \"onChange\"> {\n /** Accessible name. */\n label: string;\n value: string;\n /** Receives the new text — \"\" when cleared. */\n onChange: (value: string) => void;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Controlled search input with a clear affordance once there is text.\n *\n * ```tsx\n * <SearchField label=\"Search sessions\" value={query} onChange={setQuery} />\n * ```\n */\nexport function SearchField({ label, value, onChange, className, ...rest }: SearchFieldProps): ReactElement {\n return (\n <span className={cx(styles.wrap, className)}>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glass}>\n <path\n d=\"M7 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm7 2-3.5-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n <input\n type=\"search\"\n aria-label={label}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n className={styles.input}\n {...rest}\n />\n {value !== \"\" && (\n <button\n type=\"button\"\n aria-label=\"Clear search\"\n className={styles.clear}\n onClick={() => onChange(\"\")}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.clearGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped\";\nexport default {\"group\":\"mds-List__group\",\"labelledGroup\":\"mds-List__labelledGroup\",\"label\":\"mds-List__label\",\"item\":\"mds-List__item\",\"surface-card\":\"mds-List__surface-card\",\"surface-sunken\":\"mds-List__surface-sunken\",\"surface-accent\":\"mds-List__surface-accent\",\"surface-plain\":\"mds-List__surface-plain\",\"row\":\"mds-List__row\",\"interactive\":\"mds-List__interactive\",\"leading\":\"mds-List__leading\",\"trailing\":\"mds-List__trailing\",\"text\":\"mds-List__text\",\"title\":\"mds-List__title\",\"description\":\"mds-List__description\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext, useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./List.module.css\";\n\n/* Tells an item whether a group is painting the card around it. */\nconst ListGroupContext = createContext(false);\n\nexport interface ListGroupProps extends HTMLAttributes<HTMLUListElement> {\n children: ReactNode;\n /** Heading over the group. Also names the list to a screen reader. */\n label?: ReactNode;\n}\n\n/**\n * Card-styled list container for ListItems.\n *\n * ```tsx\n * <ListGroup label=\"Account\">\n * <ListItem\n * title=\"Profile\"\n * description=\"Name, avatar\"\n * leading={<Icon name=\"user\" />}\n * href=\"/profile\"\n * />\n * <ListItem title=\"Log out\" onClick={logout} />\n * </ListGroup>\n * ```\n */\nexport function ListGroup({ label, className, ...rest }: ListGroupProps): ReactElement {\n const headingId = useId();\n\n const list = (\n <ListGroupContext.Provider value={true}>\n <ul\n className={cx(styles.group, className)}\n aria-labelledby={label != null ? headingId : undefined}\n {...rest}\n />\n </ListGroupContext.Provider>\n );\n\n if (label == null) return list;\n return (\n <div className={styles.labelledGroup}>\n <span className={styles.label} id={headingId}>\n {label}\n </span>\n {list}\n </div>\n );\n}\n\nexport type ListItemSurface = \"card\" | \"sunken\" | \"accent\" | \"plain\";\n\nexport interface ListItemProps extends Omit<HTMLAttributes<HTMLElement>, \"title\" | \"onClick\"> {\n title: ReactNode;\n description?: ReactNode;\n /** Slot before the text — Avatar, Icon, … */\n leading?: ReactNode;\n /** Slot after the text — Badge, chevron, … */\n trailing?: ReactNode;\n /** Makes the whole row a button. */\n onClick?: () => void;\n /** Marks an onClick row as a toggle — a picker row that selects rather than\n navigates. Lands as aria-pressed on the row button itself, where the\n screen reader's focus is. Leave unset for rows that navigate. */\n pressed?: boolean;\n /** Makes the whole row a link. Wins over onClick. */\n href?: string;\n /** What the row paints behind itself. Inside a ListGroup the group is the\n card, so grouped rows default to painting nothing; standalone rows\n default to their own card. `accent` is the tinted, accent-edged prompt\n row. The row paints it itself because a background drawn by a wrapper\n brings its own corner radius, which peeks past the row's in all four\n corners. */\n surface?: ListItemSurface;\n}\n\n/**\n * One row. Static by default; interactive as one whole-row button/link.\n * An `<li>` inside a ListGroup, a standalone `<div>` row anywhere else.\n */\nexport function ListItem({\n title,\n description,\n leading,\n trailing,\n onClick,\n pressed,\n href,\n surface,\n className,\n ...rest\n}: ListItemProps): ReactElement {\n const inGroup = useContext(ListGroupContext);\n const Root = inGroup ? \"li\" : \"div\";\n // Grouped rows paint nothing unless told otherwise; standalone rows carry\n // their own card.\n const resolved = surface ?? (inGroup ? undefined : \"card\");\n\n const content = (\n <>\n {leading != null && <span className={styles.leading}>{leading}</span>}\n <span className={styles.text}>\n <span className={styles.title}>{title}</span>\n {description != null && <span className={styles.description}>{description}</span>}\n </span>\n {trailing != null && <span className={styles.trailing}>{trailing}</span>}\n </>\n );\n\n return (\n <Root\n className={cx(styles.item, resolved && styles[`surface-${resolved}`], className)}\n {...rest}\n >\n {href !== undefined ? (\n <a className={cx(styles.row, styles.interactive)} href={href}>\n {content}\n </a>\n ) : onClick !== undefined ? (\n <button\n type=\"button\"\n className={cx(styles.row, styles.interactive)}\n onClick={onClick}\n aria-pressed={pressed}\n >\n {content}\n </button>\n ) : (\n <span className={styles.row}>{content}</span>\n )}\n </Root>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/EmptyState/EmptyState.module.css?mds-scoped\";\nexport default {\"root\":\"mds-EmptyState__root\",\"icon\":\"mds-EmptyState__icon\",\"action\":\"mds-EmptyState__action\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Heading } from \"../Heading/Heading\";\nimport { Text } from \"../Text/Text\";\nimport styles from \"./EmptyState.module.css\";\n\nexport interface EmptyStateProps {\n title: string;\n description?: string;\n /** Illustration or Icon slot. */\n icon?: ReactNode;\n /** Usually a Button. */\n action?: ReactNode;\n className?: string;\n}\n\n/**\n * Nothing-here view: explains the empty screen and offers the next step.\n *\n * ```tsx\n * <EmptyState\n * icon={<Icon name=\"inbox\" size=\"lg\" />}\n * title=\"No sessions yet\"\n * description=\"Create your first session to get started.\"\n * action={<Button onClick={create}>New session</Button>}\n * />\n * ```\n */\nexport function EmptyState({ title, description, icon, action, className }: EmptyStateProps): ReactElement {\n return (\n <div className={cx(styles.root, className)}>\n {icon != null && (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <Heading level={3}>{title}</Heading>\n {description !== undefined && <Text tone=\"secondary\">{description}</Text>}\n {action != null && <span className={styles.action}>{action}</span>}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tabs/Tabs.module.css?mds-scoped\";\nexport default {\"list\":\"mds-Tabs__list\",\"tab\":\"mds-Tabs__tab\",\"selected\":\"mds-Tabs__selected\",\"panel\":\"mds-Tabs__panel\"};","import type { ButtonHTMLAttributes, HTMLAttributes, KeyboardEvent, ReactElement, ReactNode } from \"react\";\nimport { createContext, useCallback, useContext, useEffect, useId, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Tabs.module.css\";\n\ninterface TabsContextValue {\n value: string;\n onChange: (value: string) => void;\n baseId: string;\n /** Values whose TabPanel is currently mounted. A tab only claims\n * aria-controls over a panel that exists — the strip is also used as a\n * filter over one shared region, where there are no panels at all. */\n panels: ReadonlySet<string>;\n registerPanel: (value: string) => () => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabs(component: string): TabsContextValue {\n const context = useContext(TabsContext);\n if (context === null) throw new Error(`${component} must sit inside <Tabs>`);\n return context;\n}\n\nexport interface TabsProps {\n value: string;\n onChange: (value: string) => void;\n children: ReactNode;\n}\n\n/**\n * Controlled tabs root. Compose with TabList, Tab, TabPanel.\n *\n * ```tsx\n * <Tabs value={tab} onChange={setTab}>\n * <TabList label=\"Session details\">\n * <Tab value=\"info\">Info</Tab>\n * <Tab value=\"notes\">Notes</Tab>\n * </TabList>\n * <TabPanel value=\"info\">…</TabPanel>\n * <TabPanel value=\"notes\">…</TabPanel>\n * </Tabs>\n * ```\n */\nexport function Tabs({ value, onChange, children }: TabsProps): ReactElement {\n const baseId = useId();\n const [panels, setPanels] = useState<ReadonlySet<string>>(new Set());\n const registerPanel = useCallback((panel: string) => {\n setPanels((prev) => new Set(prev).add(panel));\n return () => {\n setPanels((prev) => {\n const next = new Set(prev);\n next.delete(panel);\n return next;\n });\n };\n }, []);\n return (\n <TabsContext.Provider value={{ value, onChange, baseId, panels, registerPanel }}>\n {children}\n </TabsContext.Provider>\n );\n}\n\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n /** Accessible name for the tab set. */\n label: string;\n children: ReactNode;\n}\n\n/* Selection follows focus (WAI-APG \"automatic activation\") — panels here are\n local content, not expensive loads. */\nfunction onArrow(event: KeyboardEvent<HTMLDivElement>, onChange: (v: string) => void): void {\n const keys = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n if (!keys.includes(event.key)) return;\n const tabs = [...event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]')];\n const current = tabs.findIndex((tab) => tab === document.activeElement);\n if (current === -1) return;\n event.preventDefault();\n const next =\n event.key === \"Home\"\n ? 0\n : event.key === \"End\"\n ? tabs.length - 1\n : (current + (event.key === \"ArrowRight\" ? 1 : -1) + tabs.length) % tabs.length;\n const tab = tabs[next];\n if (!tab) return;\n tab.focus();\n const value = tab.dataset.value;\n if (value !== undefined) onChange(value);\n}\n\nexport function TabList({ label, className, children, ...rest }: TabListProps): ReactElement {\n const { onChange } = useTabs(\"TabList\");\n return (\n <div\n role=\"tablist\"\n aria-label={label}\n className={cx(styles.list, className)}\n onKeyDown={(event) => onArrow(event, onChange)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface TabProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"type\"> {\n value: string;\n children: ReactNode;\n}\n\nexport function Tab({ value, className, children, ...rest }: TabProps): ReactElement {\n const tabs = useTabs(\"Tab\");\n const selected = tabs.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n id={`${tabs.baseId}-tab-${value}`}\n aria-selected={selected}\n aria-controls={tabs.panels.has(value) ? `${tabs.baseId}-panel-${value}` : undefined}\n tabIndex={selected ? 0 : -1}\n data-value={value}\n className={cx(styles.tab, selected && styles.selected, className)}\n onClick={() => tabs.onChange(value)}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n value: string;\n children: ReactNode;\n}\n\nexport function TabPanel({ value, className, children, ...rest }: TabPanelProps): ReactElement {\n const tabs = useTabs(\"TabPanel\");\n const selected = tabs.value === value;\n const { registerPanel } = tabs;\n useEffect(() => registerPanel(value), [registerPanel, value]);\n return (\n <div\n role=\"tabpanel\"\n id={`${tabs.baseId}-panel-${value}`}\n aria-labelledby={`${tabs.baseId}-tab-${value}`}\n hidden={!selected}\n className={cx(styles.panel, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped\";\nexport default {\"viewport\":\"mds-Toast__viewport\",\"toast\":\"mds-Toast__toast\",\"tone-success\":\"mds-Toast__tone-success\",\"tone-danger\":\"mds-Toast__tone-danger\",\"body\":\"mds-Toast__body\",\"title\":\"mds-Toast__title\",\"description\":\"mds-Toast__description\",\"close\":\"mds-Toast__close\",\"closeGlyph\":\"mds-Toast__closeGlyph\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Toast.module.css\";\n\nexport type ToastTone = \"neutral\" | \"success\" | \"danger\";\n\nexport interface ToastOptions {\n title: string;\n description?: string | undefined;\n tone?: ToastTone | undefined;\n /** ms until auto-dismiss. 0 = stays until dismissed. Default 5000. */\n duration?: number | undefined;\n}\n\ninterface ToastEntry extends Required<Pick<ToastOptions, \"title\" | \"tone\">> {\n id: number;\n description: string | undefined;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const context = useContext(ToastContext);\n if (context === null) throw new Error(\"useToast needs a <ToastProvider> above it\");\n return context;\n}\n\nexport interface ToastProviderProps {\n children: ReactNode;\n /** Accessible name of the notification region (localise). Default \"Notifications\". */\n regionLabel?: string | undefined;\n /** Prefix of each dismiss button's accessible name (localise). The toast's\n * title follows it, so every dismiss control names its own toast. Default\n * \"Dismiss\" — a button labelled \"Dismiss: Saved\". */\n dismissLabel?: string | undefined;\n}\n\n/**\n * Mount once near the root. Renders the notification region itself.\n *\n * ```tsx\n * // App root\n * <ToastProvider>\n * <App />\n * </ToastProvider>\n *\n * // Anywhere below\n * const { toast } = useToast();\n * toast({ title: \"Saved\", tone: \"success\" });\n * ```\n */\nexport function ToastProvider({\n children,\n regionLabel = \"Notifications\",\n dismissLabel = \"Dismiss\",\n}: ToastProviderProps): ReactElement {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const nextId = useRef(1);\n\n const dismiss = useCallback((id: number) => {\n setToasts((current) => current.filter((entry) => entry.id !== id));\n }, []);\n\n const toast = useCallback(\n ({ title, description, tone = \"neutral\", duration = 5000 }: ToastOptions) => {\n const id = nextId.current++;\n setToasts((current) => [...current, { id, title, description, tone }]);\n if (duration > 0) setTimeout(() => dismiss(id), duration);\n return id;\n },\n [dismiss],\n );\n\n const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <div role=\"region\" aria-label={regionLabel} className={styles.viewport}>\n {toasts.map((entry) => (\n <div key={entry.id} role=\"status\" className={cx(styles.toast, styles[`tone-${entry.tone}`])}>\n <span className={styles.body}>\n <span className={styles.title}>{entry.title}</span>\n {entry.description !== undefined && (\n <span className={styles.description}>{entry.description}</span>\n )}\n </span>\n <button\n type=\"button\"\n aria-label={`${dismissLabel}: ${entry.title}`}\n className={styles.close}\n onClick={() => dismiss(entry.id)}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.closeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Stack/Stack.module.css?mds-scoped\";\nexport default {\"stack\":\"mds-Stack__stack\",\"gap-hairline\":\"mds-Stack__gap-hairline\",\"gap-tight\":\"mds-Stack__gap-tight\",\"gap-base\":\"mds-Stack__gap-base\",\"gap-loose\":\"mds-Stack__gap-loose\",\"gap-section\":\"mds-Stack__gap-section\",\"align-start\":\"mds-Stack__align-start\",\"align-center\":\"mds-Stack__align-center\",\"align-end\":\"mds-Stack__align-end\",\"align-stretch\":\"mds-Stack__align-stretch\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Stack.module.css\";\n\nexport type StackGap = \"hairline\" | \"tight\" | \"base\" | \"loose\" | \"section\";\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\";\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n /** Space between children, on the gap scale. Default \"base\". */\n gap?: StackGap;\n /** Cross-axis alignment. Default \"stretch\". */\n align?: StackAlign;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Vertical flow. The parent owns spacing between siblings via gap —\n * children carry no outer margins. Token-bounded on purpose: no arbitrary\n * lengths, no style prop.\n *\n * ```tsx\n * <Stack gap=\"base\">\n * <Heading level={2}>Profile</Heading>\n * <Text tone=\"secondary\">Public information</Text>\n * </Stack>\n * ```\n */\nexport function Stack({\n gap = \"base\",\n align = \"stretch\",\n as = \"div\",\n className,\n ...rest\n}: StackProps): ReactElement {\n return createElement(as, {\n className: cx(styles.stack, styles[`gap-${gap}`], styles[`align-${align}`], className),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Inline/Inline.module.css?mds-scoped\";\nexport default {\"inline\":\"mds-Inline__inline\",\"gap-hairline\":\"mds-Inline__gap-hairline\",\"gap-tight\":\"mds-Inline__gap-tight\",\"gap-base\":\"mds-Inline__gap-base\",\"gap-loose\":\"mds-Inline__gap-loose\",\"align-start\":\"mds-Inline__align-start\",\"align-center\":\"mds-Inline__align-center\",\"align-end\":\"mds-Inline__align-end\",\"align-baseline\":\"mds-Inline__align-baseline\",\"justify-start\":\"mds-Inline__justify-start\",\"justify-center\":\"mds-Inline__justify-center\",\"justify-end\":\"mds-Inline__justify-end\",\"justify-between\":\"mds-Inline__justify-between\",\"wrap\":\"mds-Inline__wrap\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Inline.module.css\";\n\nexport type InlineGap = \"hairline\" | \"tight\" | \"base\" | \"loose\";\nexport type InlineAlign = \"start\" | \"center\" | \"end\" | \"baseline\";\nexport type InlineJustify = \"start\" | \"center\" | \"end\" | \"between\";\n\nexport interface InlineProps extends HTMLAttributes<HTMLElement> {\n /** Space between children, on the gap scale. Default \"base\". */\n gap?: InlineGap;\n /** Cross-axis alignment. Default \"center\". */\n align?: InlineAlign;\n /** Main-axis distribution. Default \"start\". */\n justify?: InlineJustify;\n /** Allow wrapping onto new lines. */\n wrap?: boolean;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Horizontal flow — Stack's row twin. Same token-bounded contract.\n *\n * ```tsx\n * <Inline gap=\"tight\" align=\"center\" justify=\"between\">\n * <Text variant=\"label\">Total</Text>\n * <Text>42</Text>\n * </Inline>\n * ```\n */\nexport function Inline({\n gap = \"base\",\n align = \"center\",\n justify = \"start\",\n wrap = false,\n as = \"div\",\n className,\n ...rest\n}: InlineProps): ReactElement {\n return createElement(as, {\n className: cx(\n styles.inline,\n styles[`gap-${gap}`],\n styles[`align-${align}`],\n styles[`justify-${justify}`],\n wrap && styles.wrap,\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Container/Container.module.css?mds-scoped\";\nexport default {\"container\":\"mds-Container__container\",\"width-content\":\"mds-Container__width-content\",\"width-wide\":\"mds-Container__width-wide\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Container.module.css\";\n\nexport type ContainerWidth = \"content\" | \"wide\";\n\nexport interface ContainerProps extends HTMLAttributes<HTMLElement> {\n /** content = reading column, wide = desktop shell. Default \"content\". */\n width?: ContainerWidth;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Centered max-width column with page-edge padding.\n *\n * ```tsx\n * <Container>\n * <Stack gap=\"section\">…</Stack>\n * </Container>\n * ```\n */\nexport function Container({\n width = \"content\",\n as = \"div\",\n className,\n ...rest\n}: ContainerProps): ReactElement {\n return createElement(as, {\n className: cx(styles.container, styles[`width-${width}`], className),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped\";\nexport default {\"card\":\"mds-Card__card\",\"variant-raised\":\"mds-Card__variant-raised\",\"variant-sunken\":\"mds-Card__variant-sunken\",\"emphasis\":\"mds-Card__emphasis\",\"interactive\":\"mds-Card__interactive\",\"header\":\"mds-Card__header\",\"body\":\"mds-Card__body\",\"footer\":\"mds-Card__footer\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Card.module.css\";\n\nexport type CardVariant = \"card\" | \"raised\" | \"sunken\";\n\nexport interface CardProps extends Omit<HTMLAttributes<HTMLElement>, \"onClick\"> {\n children: ReactNode;\n /** card = flat on border, raised = elevated, sunken = recessed fill for\n secondary tiles. Default \"card\". */\n variant?: CardVariant;\n /** Accent border — marks the card out from its neighbours (a pinned post,\n the active choice) without changing its surface. */\n emphasis?: boolean;\n /** Makes the whole card a button. */\n onClick?: () => void;\n /** Makes the whole card a link. Wins over onClick. */\n href?: string;\n}\n\n/**\n * Surface container. Compose with CardHeader/CardBody/CardFooter — the card\n * owns internal spacing, sections own their content.\n *\n * ```tsx\n * <Card>\n * <CardHeader><Heading level={3}>Next session</Heading></CardHeader>\n * <CardBody><Text>Tomorrow, 19:00</Text></CardBody>\n * <CardFooter><Button size=\"sm\">Join</Button></CardFooter>\n * </Card>\n *\n * <Card href=\"/items/42\" variant=\"flat\">…</Card>\n * ```\n */\nexport function Card({ children, variant = \"card\", emphasis = false, onClick, href, className, ...rest }: CardProps): ReactElement {\n const cardClass = cx(styles.card, styles[`variant-${variant}`], emphasis && styles.emphasis, className);\n\n if (href !== undefined) {\n return (\n <a className={cx(cardClass, styles.interactive)} href={href} {...rest}>\n {children}\n </a>\n );\n }\n if (onClick !== undefined) {\n return (\n <button type=\"button\" className={cx(cardClass, styles.interactive)} onClick={onClick} {...rest}>\n {children}\n </button>\n );\n }\n return (\n <div className={cardClass} {...rest}>\n {children}\n </div>\n );\n}\n\nexport type CardSectionProps = HTMLAttributes<HTMLDivElement>;\n\n/** Top slot — title row, media, tabs. */\nexport function CardHeader({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.header, className)} {...rest} />;\n}\n\n/** Main content slot. */\nexport function CardBody({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.body, className)} {...rest} />;\n}\n\n/** Bottom slot — actions, meta. */\nexport function CardFooter({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.footer, className)} {...rest} />;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Modal/Modal.module.css?mds-scoped\";\nexport default {\"panel\":\"mds-Modal__panel\",\"header\":\"mds-Modal__header\",\"body\":\"mds-Modal__body\",\"footer\":\"mds-Modal__footer\"};","import type { ReactNode } from \"react\";\nimport { Overlay } from \"../Overlay/Overlay\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n /** Scrim click dismisses. Default true. */\n closeOnScrimClick?: boolean;\n /** alertdialog interrupts — ConfirmDialog sets it. Default \"dialog\". */\n role?: \"dialog\" | \"alertdialog\";\n children: ReactNode;\n}\n\n/**\n * Centered dialog. Escape, scrim click (`closeOnScrimClick`), and focus trap\n * are handled. Compose the sections:\n *\n * ```tsx\n * <Modal open={open} onClose={() => setOpen(false)} label=\"Edit session\">\n * <ModalHeader>Edit session</ModalHeader>\n * <ModalBody>…</ModalBody>\n * <ModalFooter><Button onClick={save}>Save</Button></ModalFooter>\n * </Modal>\n * ```\n */\nexport function Modal({ open, onClose, label, closeOnScrimClick = true, role = \"dialog\", children }: ModalProps) {\n return (\n <Overlay\n open={open}\n onClose={onClose}\n label={label}\n variant=\"modal\"\n role={role}\n closeOnScrimClick={closeOnScrimClick}\n panelClassName={styles.panel}\n >\n {children}\n </Overlay>\n );\n}\n\nexport function ModalHeader({ children }: { children: ReactNode }) {\n return <div className={styles.header}>{children}</div>;\n}\n\nexport function ModalBody({ children }: { children: ReactNode }) {\n return <div className={styles.body}>{children}</div>;\n}\n\nexport function ModalFooter({ children }: { children: ReactNode }) {\n return <div className={styles.footer}>{children}</div>;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ConfirmDialog/ConfirmDialog.module.css?mds-scoped\";\nexport default {\"description\":\"mds-ConfirmDialog__description\",\"error\":\"mds-ConfirmDialog__error\"};","import type { ReactNode } from \"react\";\nimport { useState } from \"react\";\nimport { Button } from \"../Button/Button\";\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from \"../Modal/Modal\";\nimport styles from \"./ConfirmDialog.module.css\";\n\nexport type ConfirmDialogTone = \"default\" | \"danger\" | \"warning\";\n\nexport interface ConfirmDialogProps<T = void> {\n /** The row in question, or null when nothing is being asked. Held by the\n caller — only it knows which row was tapped — and handed back to\n `onConfirm`, so the action runs against the row the user actually saw. */\n target?: T | null;\n /** Defaults to \"there is a row in question\"; pass it directly for a\n one-off prompt that has no row. */\n open?: boolean;\n /** Cancel, or the action having landed. Clear the row here. */\n onClose?: () => void;\n /** The action, given the row it was asked about. Return the promise the\n write is riding on — typically `mutateAsync(...)` — and do not catch:\n a handled rejection resolves, and a resolved action is\n indistinguishable from a write that landed. Typed as a promise so\n fire-and-forget is a type error rather than a prompt that closes on\n the click. */\n onConfirm?: (target: T) => Promise<unknown>;\n /** Short question, e.g. \"Delete session?\" */\n title: string;\n /** Consequence explained in a sentence or two. */\n description?: ReactNode;\n confirmLabel: string;\n /** @default \"Cancel\" */\n cancelLabel?: string;\n /** Styles the confirm action: danger for destructive, warning for\n consequential-but-recoverable. */\n tone?: ConfirmDialogTone;\n /** How to phrase a failure, given the error's own message. Defaults to\n that message — supply this rather than catching inside `onConfirm`,\n so the copy stays with the caller. */\n errorMessage?: (message: string) => string;\n}\n\n/** What the panel is showing, the row included. Frozen at close so the exit\n animation still has a question to animate away after the caller has\n dropped what it was asking about. */\ninterface Shown<T> {\n target: T | null | undefined;\n title: string;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel: string;\n tone: ConfirmDialogTone;\n}\n\nconst CONFIRM_VARIANT = {\n default: \"primary\",\n danger: \"danger\",\n warning: \"warning\",\n} as const;\n\n/**\n * A binary confirm/cancel prompt for consequential actions. role=\"alertdialog\"\n * so assistive tech announces it and holds focus until the user decides.\n *\n * The prompt owns everything downstream of the tap: it stays busy until\n * `onConfirm` settles, closes only once the write has landed, and keeps\n * itself up with the reason shown if it fails. Callers supply the question,\n * not the mechanics.\n *\n * ```tsx\n * <ConfirmDialog\n * target={asked}\n * onClose={() => setAsked(null)}\n * onConfirm={(row) => remove.mutateAsync(row.id)}\n * title=\"Delete session?\"\n * description=\"This cannot be undone.\"\n * confirmLabel=\"Delete\"\n * tone=\"danger\"\n * />\n * ```\n */\nexport function ConfirmDialog<T = void>({\n target,\n open = target != null,\n onClose,\n onConfirm,\n title,\n description,\n confirmLabel,\n cancelLabel = \"Cancel\",\n tone = \"default\",\n errorMessage,\n}: ConfirmDialogProps<T>) {\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n // Each new question starts idle. Reset on the way in rather than on the\n // way out: on the way out the panel is still visible, and wiping the\n // spinner there restores the unanswered question for the length of the\n // exit animation. Render-phase adjust, the \"state from props\" pattern —\n // an effect would paint the stale frame first.\n const [prevOpen, setPrevOpen] = useState(open);\n if (open !== prevOpen) {\n setPrevOpen(open);\n if (open) {\n setBusy(false);\n setError(null);\n }\n }\n\n // While open, show the live props. Closing freezes them (in the close\n // handlers, where state writes are free) because the closing render's\n // props are already stale: the caller clears its row in the same set of\n // state updates that closes the prompt.\n const live: Shown<T> = { target, title, description, confirmLabel, cancelLabel, tone };\n const [frozen, setFrozen] = useState<Shown<T>>(live);\n const view = open ? live : frozen;\n\n const close = () => {\n setFrozen(live);\n onClose?.();\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) return;\n // Read the row now, at the tap, not after the await: by then the caller\n // has been told to close and has cleared it.\n const asked = live.target as T;\n setBusy(true);\n setError(null);\n try {\n await onConfirm(asked);\n // Only now: before this point the write may still fail, and a prompt\n // that has already closed has told the user something it doesn't know.\n close();\n } catch (e) {\n setBusy(false);\n const message = (e as Error).message;\n setError(errorMessage?.(message) ?? message);\n }\n };\n\n return (\n <Modal\n open={open}\n // Escape must always work — dropping onClose while busy would leave\n // the dialog with no keyboard exit (WCAG 2.1.2). The scrim stays\n // guarded regardless, so a stray click can't dismiss the question.\n onClose={close}\n label={view.title}\n role=\"alertdialog\"\n closeOnScrimClick={false}\n >\n <ModalHeader>{view.title}</ModalHeader>\n <ModalBody>\n {view.description != null ? <p className={styles.description}>{view.description}</p> : null}\n {error != null ? (\n <p role=\"alert\" className={styles.error}>\n {error}\n </p>\n ) : null}\n </ModalBody>\n <ModalFooter>\n {/* Stays enabled while busy so focus always has an operable home\n (only Confirm is locked, to block a double submit). */}\n <Button variant=\"secondary\" onClick={close}>\n {view.cancelLabel}\n </Button>\n <Button variant={CONFIRM_VARIANT[view.tone]} loading={busy} onClick={handleConfirm}>\n {view.confirmLabel}\n </Button>\n </ModalFooter>\n </Modal>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Screen/Screen.module.css?mds-scoped\";\nexport default {\"screen\":\"mds-Screen__screen\",\"content\":\"mds-Screen__content\",\"flush\":\"mds-Screen__flush\"};","import type { HTMLAttributes, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Screen.module.css\";\n\n/**\n * Page scaffold. Compose:\n *\n * ```tsx\n * <Screen>\n * <AppBar title=\"Sessions\" />\n * <ScreenContent>…</ScreenContent>\n * <TabBar label=\"Primary\">…</TabBar>\n * </Screen>\n * ```\n *\n * Fills the height its host gives it — the app root, a device frame, a\n * `flex: 1; min-height: 0` slot — rather than claiming the viewport itself:\n * on iOS the software keyboard shrinks the visual viewport without shrinking\n * 100dvh, so only the host can know the real height. A standalone app gives\n * the root chain `height: 100%`.\n */\nexport function Screen({ children }: { children: ReactNode }) {\n return <div className={styles.screen}>{children}</div>;\n}\n\nexport interface ScreenContentProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n /** Drop the page gutter — full-bleed lists whose rows carry their own\n padding. Default keeps it: forms and prose want the margin. */\n flush?: boolean;\n /** The scrolling element. A screen that drives the scroll — restores an\n offset on back, pins a thread to the bottom — has no other way to reach\n it. Read it; restyling it is the sheet's job. */\n ref?: Ref<HTMLElement>;\n}\n\n/** The scrollable main region of a Screen. */\nexport function ScreenContent({ children, flush = false, className, ref, ...rest }: ScreenContentProps) {\n return (\n <main ref={ref} className={cx(styles.content, flush && styles.flush, className)} {...rest}>\n {children}\n </main>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-AppBar__bar\",\"title\":\"mds-AppBar__title\",\"text\":\"mds-AppBar__text\",\"subtitle\":\"mds-AppBar__subtitle\",\"slot\":\"mds-AppBar__slot\",\"trailing\":\"mds-AppBar__trailing\"};","import type { ReactNode } from \"react\";\nimport styles from \"./AppBar.module.css\";\n\nexport interface AppBarProps {\n /** Page heading — rendered as the h1. A node is allowed for titles that\n are themselves a control (e.g. a thread title that opens the event). */\n title?: ReactNode;\n /** Second line under the title — a member count, a status. Kept out of\n the h1 so the accessible page name stays just the title. */\n subtitle?: ReactNode;\n /** Left slot — typically a back icon-only Button. */\n leading?: ReactNode;\n /** Right slot — actions. */\n trailing?: ReactNode;\n}\n\n/**\n * Top app bar. Sticky, one per screen; the title is the page h1.\n *\n * ```tsx\n * <AppBar\n * title=\"Sessions\"\n * trailing={\n * <Button iconOnly aria-label=\"Settings\" variant=\"ghost\" onClick={openSettings}>\n * <Icon name=\"settings\" />\n * </Button>\n * }\n * />\n * ```\n */\nexport function AppBar({ title, subtitle, leading, trailing }: AppBarProps) {\n const heading = title ? <h1 className={styles.title}>{title}</h1> : null;\n return (\n <header className={styles.bar}>\n {leading ? <div className={styles.slot}>{leading}</div> : null}\n {subtitle != null ? (\n <div className={styles.text}>\n {heading}\n <div className={styles.subtitle}>{subtitle}</div>\n </div>\n ) : (\n heading\n )}\n {trailing ? <div className={`${styles.slot} ${styles.trailing}`}>{trailing}</div> : null}\n </header>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/TabBar/TabBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-TabBar__bar\",\"item\":\"mds-TabBar__item\",\"active\":\"mds-TabBar__active\",\"icon\":\"mds-TabBar__icon\",\"badge\":\"mds-TabBar__badge\",\"label\":\"mds-TabBar__label\",\"action\":\"mds-TabBar__action\"};","import type { MouseEventHandler, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./TabBar.module.css\";\n\nexport interface TabBarProps {\n /** Accessible name of the navigation landmark. */\n label: string;\n children: ReactNode;\n}\n\n/**\n * Bottom navigation. Items are links (or buttons for non-route actions);\n * they stay in the natural tab order — roving focus is for composite\n * widgets, not navigation landmarks.\n *\n * ```tsx\n * <TabBar label=\"Primary\">\n * <TabBarItem label=\"Home\" icon={<Icon name=\"home\" />} href=\"/\" active />\n * <TabBarItem label=\"Search\" icon={<Icon name=\"search\" />} href=\"/search\" />\n * </TabBar>\n * ```\n */\nexport function TabBar({ label, children }: TabBarProps) {\n return (\n <nav aria-label={label} className={styles.bar}>\n {children}\n </nav>\n );\n}\n\nexport interface TabBarItemProps {\n label: string;\n icon: ReactNode;\n href?: string | undefined;\n onClick?: MouseEventHandler | undefined;\n active?: boolean | undefined;\n /** Attention dot on the icon — unread, pending. Boolean only: the count\n lives on the destination screen, the bar just says \"something's there\". */\n badge?: boolean | undefined;\n}\n\nexport function TabBarItem({ label, icon, href, onClick, active = false, badge = false }: TabBarItemProps) {\n const className = cx(styles.item, active && styles.active);\n const content = (\n <>\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n {badge ? <span className={styles.badge} data-testid=\"mds-tabbar-badge\" /> : null}\n </span>\n <span className={styles.label}>{label}</span>\n </>\n );\n if (href !== undefined) {\n return (\n <a href={href} className={className} aria-current={active ? \"page\" : undefined} onClick={onClick}>\n {content}\n </a>\n );\n }\n return (\n <button type=\"button\" className={className} aria-current={active ? \"page\" : undefined} onClick={onClick}>\n {content}\n </button>\n );\n}\n\nexport interface TabBarActionProps {\n /** Names the action — icon-only, so this is all a screen reader gets. */\n label: string;\n icon: ReactNode;\n onClick?: MouseEventHandler | undefined;\n}\n\n/** Raised center action (a create button). Place it between the item halves:\n it is a peer child, and the bar's flex layout leaves it its own width. */\nexport function TabBarAction({ label, icon, onClick }: TabBarActionProps) {\n return (\n <button type=\"button\" aria-label={label} className={styles.action} onClick={onClick}>\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n </button>\n );\n}\n","import type { KeyboardEvent, RefObject } from \"react\";\nimport { useCallback } from \"react\";\n\nexport interface RovingGroupOptions {\n /** Selector for the focusable items inside the container. */\n selector: string;\n /** Arrow axis. Default \"horizontal\". */\n orientation?: \"horizontal\" | \"vertical\" | \"both\";\n}\n\n/**\n * Arrow-key focus movement for composite widgets (toolbars, menus, tab bars).\n * Wraps at the edges; Home/End jump. Returns a keydown handler for the\n * container.\n */\nexport function useRovingGroup(\n ref: RefObject<HTMLElement | null>,\n { selector, orientation = \"horizontal\" }: RovingGroupOptions,\n): (event: KeyboardEvent<HTMLElement>) => void {\n return useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const horizontal = orientation !== \"vertical\";\n const vertical = orientation !== \"horizontal\";\n const forward = (horizontal && event.key === \"ArrowRight\") || (vertical && event.key === \"ArrowDown\");\n const backward = (horizontal && event.key === \"ArrowLeft\") || (vertical && event.key === \"ArrowUp\");\n const home = event.key === \"Home\";\n const end = event.key === \"End\";\n if (!forward && !backward && !home && !end) return;\n\n const container = ref.current;\n if (container === null) return;\n const items = [...container.querySelectorAll<HTMLElement>(selector)].filter(\n (item) => !item.hasAttribute(\"disabled\"),\n );\n const current = items.indexOf(document.activeElement as HTMLElement);\n if (items.length === 0 || current === -1) return;\n\n event.preventDefault();\n const next = home\n ? 0\n : end\n ? items.length - 1\n : (current + (forward ? 1 : -1) + items.length) % items.length;\n items[next]?.focus();\n },\n [ref, selector, orientation],\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/internal/cx.ts","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Text/Text.module.css?mds-scoped","../src/components/Text/Text.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Heading/Heading.module.css?mds-scoped","../src/components/Heading/Heading.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Spinner/Spinner.module.css?mds-scoped","../src/components/Spinner/Spinner.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Icon/Icon.module.css?mds-scoped","../src/components/Icon/Icon.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped","../src/components/Button/Button.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Link/Link.module.css?mds-scoped","../src/components/Link/Link.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Avatar/Avatar.module.css?mds-scoped","../src/components/Avatar/Avatar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AvatarGroup/AvatarGroup.module.css?mds-scoped","../src/components/AvatarGroup/AvatarGroup.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Badge/Badge.module.css?mds-scoped","../src/components/Badge/Badge.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/Chip.module.css?mds-scoped","../src/components/Chip/Chip.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped","../src/components/Chip/ChipGroup.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipBar.module.css?mds-scoped","../src/components/Chip/ChipBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/CountButton/CountButton.module.css?mds-scoped","../src/components/CountButton/CountButton.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped","../src/components/Field/Field.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Select/Select.module.css?mds-scoped","../src/components/Select/Select.tsx","../src/hooks/overlayHistory.ts","../src/hooks/useOverlay.ts","../src/hooks/usePresence.ts","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Overlay/Overlay.module.css?mds-scoped","../src/components/Overlay/Overlay.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Sheet/Sheet.module.css?mds-scoped","../src/components/Sheet/Sheet.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped","../src/components/DateTimePicker/DateTimePicker.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped","../src/components/Tag/Tag.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Divider/Divider.module.css?mds-scoped","../src/components/Divider/Divider.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped","../src/components/Skeleton/Skeleton.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ProgressBar/ProgressBar.module.css?mds-scoped","../src/components/ProgressBar/ProgressBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Input/Input.module.css?mds-scoped","../src/components/Input/Input.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped","../src/components/PasswordInput/PasswordInput.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Textarea/Textarea.module.css?mds-scoped","../src/components/Textarea/Textarea.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped","../src/components/Checkbox/Checkbox.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped","../src/components/Radio/Radio.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped","../src/components/Switch/Switch.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped","../src/components/SegmentedControl/SegmentedControl.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped","../src/components/SearchField/SearchField.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped","../src/components/List/List.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/EmptyState/EmptyState.module.css?mds-scoped","../src/components/EmptyState/EmptyState.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tabs/Tabs.module.css?mds-scoped","../src/components/Tabs/Tabs.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped","../src/components/Toast/Toast.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Stack/Stack.module.css?mds-scoped","../src/components/Stack/Stack.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Inline/Inline.module.css?mds-scoped","../src/components/Inline/Inline.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Container/Container.module.css?mds-scoped","../src/components/Container/Container.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped","../src/components/Card/Card.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Modal/Modal.module.css?mds-scoped","../src/components/Modal/Modal.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ConfirmDialog/ConfirmDialog.module.css?mds-scoped","../src/components/ConfirmDialog/ConfirmDialog.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Screen/Screen.module.css?mds-scoped","../src/components/Screen/Screen.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped","../src/components/AppBar/AppBar.tsx","mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/TabBar/TabBar.module.css?mds-scoped","../src/components/TabBar/TabBar.tsx","../src/hooks/useRovingGroup.ts"],"names":["createElement","jsx","jsxs","Children","createContext","useContext","useEffect","useState","useRef","Fragment","useId","tab","useCallback","useMemo"],"mappings":"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","file":"index.js","sourcesContent":["import type { CSSProperties } from \"react\";\n\n/**\n * Join class names, dropping anything falsy.\n *\n * Every component takes a `className` from the call site and owns one of its\n * own from a CSS Module, so the merge happens in one place rather than in\n * forty slightly different inline expressions.\n */\nexport function cx(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(\" \");\n}\n\n/**\n * A style object that may also carry CSS custom properties.\n *\n * `React.CSSProperties` has no index signature, so `{ '--mds-x': 1 }` is a\n * type error against it. Values that genuinely vary per render (a slider's\n * percent, an avatar's pixel size) belong in a custom property the stylesheet\n * reads — this types that without an assertion.\n */\nexport type CSSVars = CSSProperties & Record<`--${string}`, string | number>;\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Text/Text.module.css?mds-scoped\";\nexport default {\"text\":\"mds-Text__text\",\"variant-body\":\"mds-Text__variant-body\",\"variant-label\":\"mds-Text__variant-label\",\"variant-note\":\"mds-Text__variant-note\",\"variant-meta\":\"mds-Text__variant-meta\",\"variant-eyebrow\":\"mds-Text__variant-eyebrow\",\"tone-primary\":\"mds-Text__tone-primary\",\"tone-secondary\":\"mds-Text__tone-secondary\",\"tone-muted\":\"mds-Text__tone-muted\",\"tone-inverse\":\"mds-Text__tone-inverse\",\"tone-accent\":\"mds-Text__tone-accent\",\"tone-on-media\":\"mds-Text__tone-on-media\",\"tone-danger\":\"mds-Text__tone-danger\",\"tone-warning\":\"mds-Text__tone-warning\",\"tone-success\":\"mds-Text__tone-success\",\"align-left\":\"mds-Text__align-left\",\"align-center\":\"mds-Text__align-center\",\"align-right\":\"mds-Text__align-right\",\"truncate\":\"mds-Text__truncate\"};","import type { HTMLAttributes, JSX, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Text.module.css\";\n\nexport type TextVariant = \"body\" | \"label\" | \"note\" | \"meta\" | \"eyebrow\";\n\nexport type TextTone =\n | \"primary\"\n | \"secondary\"\n | \"muted\"\n | \"inverse\"\n | \"accent\"\n | \"on-media\"\n | \"danger\"\n | \"warning\"\n | \"success\";\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Type role from the core scale. Default \"body\". */\n variant?: TextVariant;\n /** Element override when the default doesn't fit the markup. */\n as?: keyof JSX.IntrinsicElements;\n /** Semantic color. Variants carry sensible defaults. */\n tone?: TextTone;\n align?: \"left\" | \"center\" | \"right\";\n /** Single-line ellipsis. */\n truncate?: boolean;\n}\n\nconst ELEMENT: Record<TextVariant, keyof JSX.IntrinsicElements> = {\n body: \"p\",\n label: \"span\",\n note: \"p\",\n meta: \"span\",\n eyebrow: \"span\",\n};\n\nconst DEFAULT_TONE: Partial<Record<TextVariant, TextTone>> = {\n note: \"secondary\",\n meta: \"muted\",\n eyebrow: \"muted\",\n};\n\n/**\n * Body-copy primitive. One class per type role — screens never hand-roll styled tags.\n *\n * ```tsx\n * <Text>Body copy.</Text>\n * <Text variant=\"label\" as=\"span\">Field label</Text>\n * <Text variant=\"meta\" tone=\"muted\">Updated 2h ago</Text>\n * <Text truncate>Very long single line…</Text>\n * ```\n */\nexport function Text({\n variant = \"body\",\n as,\n tone,\n align,\n truncate = false,\n className,\n ...rest\n}: TextProps): ReactElement {\n const element = as ?? ELEMENT[variant];\n const resolvedTone = tone ?? DEFAULT_TONE[variant] ?? \"primary\";\n return createElement(element, {\n className: cx(\n styles.text,\n styles[`variant-${variant}`],\n styles[`tone-${resolvedTone}`],\n align && styles[`align-${align}`],\n truncate && styles.truncate,\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Heading/Heading.module.css?mds-scoped\";\nexport default {\"heading\":\"mds-Heading__heading\",\"variant-display\":\"mds-Heading__variant-display\",\"variant-title\":\"mds-Heading__variant-title\",\"variant-subtitle\":\"mds-Heading__variant-subtitle\",\"tone-primary\":\"mds-Heading__tone-primary\",\"tone-secondary\":\"mds-Heading__tone-secondary\",\"tone-inverse\":\"mds-Heading__tone-inverse\",\"tone-accent\":\"mds-Heading__tone-accent\",\"tone-on-media\":\"mds-Heading__tone-on-media\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Heading.module.css\";\n\nexport type HeadingVariant = \"display\" | \"title\" | \"subtitle\";\nexport type HeadingLevel = 1 | 2 | 3 | 4;\nexport type HeadingTone = \"primary\" | \"secondary\" | \"inverse\" | \"accent\" | \"on-media\";\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n /** Document outline level → h1–h4, with a matching default type role. Default 2. */\n level?: HeadingLevel;\n /** Type role override — outline level and visual size are separate concerns. */\n variant?: HeadingVariant;\n tone?: HeadingTone;\n}\n\nconst LEVEL_VARIANT: Record<HeadingLevel, HeadingVariant> = {\n 1: \"display\",\n 2: \"title\",\n 3: \"subtitle\",\n 4: \"subtitle\",\n};\n\n/**\n * Brand headings on the core roles. `level` = semantics, `variant` = size.\n *\n * ```tsx\n * <Heading level={1}>Sessions</Heading>\n * <Heading level={2} variant=\"subtitle\" tone=\"secondary\">This week</Heading>\n * ```\n */\nexport function Heading({\n level = 2,\n variant,\n tone = \"primary\",\n className,\n ...rest\n}: HeadingProps): ReactElement {\n return createElement(`h${level}`, {\n className: cx(\n styles.heading,\n styles[`variant-${variant ?? LEVEL_VARIANT[level]}`],\n styles[`tone-${tone}`],\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Spinner/Spinner.module.css?mds-scoped\";\nexport default {\"spinner\":\"mds-Spinner__spinner\",\"spin\":\"mds-Spinner__spin\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx, type CSSVars } from \"../../internal/cx\";\nimport styles from \"./Spinner.module.css\";\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {\n /** Diameter in px. Default 20. */\n size?: number;\n /** Accessible label. Default \"Loading\". */\n label?: string;\n}\n\n/**\n * Indeterminate loading ring. Arc takes currentColor, so it matches whatever\n * text it sits beside. Keyframe is local: CSS Modules localizes\n * animation-name, a global one resolves to nothing. base.css stops it under\n * prefers-reduced-motion.\n *\n * ```tsx\n * <Spinner label=\"Loading sessions\" />\n * ```\n */\nexport function Spinner({\n size = 20,\n label = \"Loading\",\n className,\n style,\n ...rest\n}: SpinnerProps): ReactElement {\n /* Per-instance knobs, not design tokens. Ring thickness scales with the\n diameter, floored so small spinners stay visible. */\n const vars: CSSVars = {\n \"--spinner-size\": `${size}px`,\n \"--spinner-border\": `${Math.max(2, Math.round(size / 10))}px`,\n };\n return (\n <span\n role=\"status\"\n aria-label={label}\n className={cx(styles.spinner, className)}\n style={{ ...vars, ...style }}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Icon/Icon.module.css?mds-scoped\";\nexport default {\"icon\":\"mds-Icon__icon\",\"size-slot\":\"mds-Icon__size-slot\",\"size-sm\":\"mds-Icon__size-sm\",\"size-md\":\"mds-Icon__size-md\",\"size-lg\":\"mds-Icon__size-lg\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Icon.module.css\";\n\nexport interface IconRenderProps {\n /** Pixel size of the requested step, or undefined when the glyph should take\n the size of the slot it sits in. An icon set that can only be sized with a\n number falls back to its own default; one that can read a CSS length uses\n var(--mds-icon-slot, var(--mds-icon-md)). */\n size?: number | undefined;\n}\n\n/** Brand-owned glyph resolver: name → rendered glyph (svg, font ligature, …). */\nexport type IconRender = (name: string, props: IconRenderProps) => ReactNode;\n\nconst IconContext = createContext<IconRender | null>(null);\n\nexport interface IconProviderProps {\n render: IconRender;\n children: ReactNode;\n}\n\n/**\n * Registry seam. The system never bundles an icon set — the app registers its\n * own (lucide, Material Symbols, …) once, at the root. Iconography is brand,\n * like color.\n *\n * ```tsx\n * // App root: map names to your icon set once.\n * <IconProvider render={(name, { size }) => <MyGlyph name={name} width={size ?? 20} />}>\n * <App />\n * </IconProvider>\n *\n * // Anywhere below:\n * <Icon name=\"check\" size=\"sm\" />\n * ```\n */\nexport function IconProvider({ render, children }: IconProviderProps): ReactElement {\n return <IconContext.Provider value={render}>{children}</IconContext.Provider>;\n}\n\nexport type IconSize = \"sm\" | \"md\" | \"lg\";\n\n/* Must match --mds-icon-* in core/layout.css — the renderer needs a number,\n a stylesheet cannot hand one over. */\nconst SIZE_PX: Record<IconSize, number> = { sm: 16, md: 20, lg: 24 };\n\nexport interface IconProps extends HTMLAttributes<HTMLSpanElement> {\n /** Glyph name in the app's registered set. */\n name: string;\n /** A step on the icon scale. Left unset, the glyph takes the step of the\n control slot around it, and the md step outside one. */\n size?: IconSize;\n /** Accessible name. Omitted = decorative (aria-hidden). */\n label?: string;\n}\n\nconst warned = new Set<string>();\n\n/** A glyph from the app-registered set, sized on the core scale. */\nexport function Icon({ name, size, label, className, ...rest }: IconProps): ReactElement {\n const render = useContext(IconContext);\n if (render === null && !warned.has(name)) {\n warned.add(name);\n console.error(\n `Icon \"${name}\": no IconProvider above this tree. Register the app's icon set once at the root.`,\n );\n }\n return (\n <span\n className={cx(styles.icon, styles[`size-${size ?? \"slot\"}`], className)}\n {...(label ? { role: \"img\", \"aria-label\": label } : { \"aria-hidden\": true })}\n {...rest}\n >\n {render?.(name, { size: size === undefined ? undefined : SIZE_PX[size] })}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped\";\nexport default {\"button\":\"mds-Button__button\",\"size-sm\":\"mds-Button__size-sm\",\"size-md\":\"mds-Button__size-md\",\"size-lg\":\"mds-Button__size-lg\",\"slot\":\"mds-Button__slot\",\"variant-primary\":\"mds-Button__variant-primary\",\"variant-secondary\":\"mds-Button__variant-secondary\",\"variant-ghost\":\"mds-Button__variant-ghost\",\"variant-highlight\":\"mds-Button__variant-highlight\",\"variant-danger\":\"mds-Button__variant-danger\",\"variant-warning\":\"mds-Button__variant-warning\",\"fullWidth\":\"mds-Button__fullWidth\",\"icon-only\":\"mds-Button__icon-only\"};","import type { ButtonHTMLAttributes, ElementType, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./Button.module.css\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"warning\" | \"highlight\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\ninterface ButtonBaseProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"type\"> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n /** Glyph slots — pass an <Icon> or any node. Agnostic of icon set; the\n * button sizes the slot from its own size, and publishes that step as\n * --mds-icon-slot for an icon set that can only size itself. */\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n /** Spinner replaces the left slot; disables and announces busy. */\n loading?: boolean;\n fullWidth?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n /** Renders an <a> — for navigation styled as a button. */\n href?: string;\n /** Element override, e.g. a router's Link. */\n as?: ElementType;\n ref?: Ref<HTMLButtonElement>;\n}\n\n/* Icon-only collapses the button to a circle holding one glyph. A glyph says\n nothing to a screen reader, so the type demands the name. */\ntype IconOnlyEnforcement =\n | { iconOnly: true; \"aria-label\": string }\n | { iconOnly?: false | undefined };\n\nexport type ButtonProps = ButtonBaseProps & IconOnlyEnforcement;\n\n/* Must match --mds-icon-slot on the size classes: the spinner takes the left\n glyph's place and Spinner needs a number, which a stylesheet cannot hand it. */\nconst ICON_PX: Record<ButtonSize, number> = { sm: 16, md: 20, lg: 24 };\n\n/**\n * The tappable action. Semantics: button by default, link when `href`/`as` says so.\n *\n * ```tsx\n * <Button onClick={save}>Save</Button>\n * <Button variant=\"secondary\" size=\"sm\">Cancel</Button>\n * <Button variant=\"danger\" loading={deleting} onClick={remove}>Delete</Button>\n * <Button iconOnly aria-label=\"Close\" variant=\"ghost\"><Icon name=\"close\" /></Button>\n * <Button href=\"/settings\">Settings</Button>\n * ```\n */\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n iconLeft,\n iconRight,\n loading = false,\n disabled = false,\n fullWidth = false,\n iconOnly = false,\n type = \"button\",\n href,\n as,\n className,\n children,\n ...rest\n}: ButtonProps): ReactElement {\n const Element: ElementType = as ?? (href !== undefined ? \"a\" : \"button\");\n const isButton = Element === \"button\";\n const own = isButton ? { type, disabled: disabled || loading } : { href };\n\n return (\n <Element\n className={cx(\n styles.button,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n fullWidth && styles.fullWidth,\n iconOnly && styles[\"icon-only\"],\n className,\n )}\n aria-busy={loading || undefined}\n {...own}\n {...rest}\n >\n {loading ? (\n <span className={styles.slot}>\n <Spinner size={ICON_PX[size]} label=\"\" aria-hidden=\"true\" />\n </span>\n ) : (\n iconLeft ? <span className={styles.slot}>{iconLeft}</span> : null\n )}\n {children}\n {!loading && iconRight ? <span className={styles.slot}>{iconRight}</span> : null}\n </Element>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Link/Link.module.css?mds-scoped\";\nexport default {\"link\":\"mds-Link__link\",\"variant-inline\":\"mds-Link__variant-inline\",\"variant-standalone\":\"mds-Link__variant-standalone\",\"variant-plain\":\"mds-Link__variant-plain\",\"size-xs\":\"mds-Link__size-xs\",\"size-sm\":\"mds-Link__size-sm\",\"size-base\":\"mds-Link__size-base\",\"size-lg\":\"mds-Link__size-lg\",\"size-xl\":\"mds-Link__size-xl\"};","import type { ComponentPropsWithoutRef, ElementType, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Link.module.css\";\n\nexport type LinkVariant = \"inline\" | \"standalone\" | \"plain\";\n\nexport type LinkSize = \"xs\" | \"sm\" | \"base\" | \"lg\" | \"xl\";\n\ntype LinkOwnProps<E extends ElementType> = {\n /** inline = underlined, lives in running text. standalone = nav/action link.\n plain = inherits the surrounding color and weight, underlines on hover —\n for links whose context already marks them (a card title, a list row). */\n variant?: LinkVariant;\n /** Font size on the core text scale. Default inherits from context. */\n size?: LinkSize;\n /** Opens in a new tab with rel protection. */\n external?: boolean;\n /** Element override — `'button'` for a link-styled action, or a router's\n Link component, whose own props (`to`, `href`, …) then type-check. */\n as?: E;\n children?: ReactNode;\n};\n\nexport type LinkProps<E extends ElementType = \"a\"> = LinkOwnProps<E> &\n Omit<ComponentPropsWithoutRef<E>, keyof LinkOwnProps<E>>;\n\n/**\n * Text link. Inline links keep their underline: color alone fails WCAG 1.4.1\n * for links inside prose.\n *\n * ```tsx\n * <Text>Read the <Link href=\"/terms\">terms</Link>.</Text>\n * <Link variant=\"standalone\" href=\"https://example.com\" external>Docs</Link>\n * <Link as={RouterLink} to=\"/about\">About</Link>\n * ```\n */\nexport function Link<E extends ElementType = \"a\">({\n variant = \"inline\",\n size,\n external = false,\n as,\n ...rest\n}: LinkProps<E>): ReactElement {\n const Element: ElementType = as ?? \"a\";\n // className and type live on the generic remainder — a plain destructure\n // cannot reach into ComponentPropsWithoutRef<E> while E is still open.\n const { className, type, ...others } = rest as {\n className?: string;\n type?: string;\n } & Record<string, unknown>;\n const externalProps = external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n // A button-rendered link defaults to type=\"button\" — inside a form, the\n // browser's \"submit\" default would fire on every click.\n const typeProps = Element === \"button\" ? { type: type ?? \"button\" } : type !== undefined ? { type } : {};\n return (\n <Element\n className={cx(\n styles.link,\n styles[`variant-${variant}`],\n size && styles[`size-${size}`],\n className,\n )}\n {...externalProps}\n {...others}\n {...typeProps}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Avatar/Avatar.module.css?mds-scoped\";\nexport default {\"avatar\":\"mds-Avatar__avatar\",\"size-xs\":\"mds-Avatar__size-xs\",\"size-sm\":\"mds-Avatar__size-sm\",\"size-md\":\"mds-Avatar__size-md\",\"size-lg\":\"mds-Avatar__size-lg\",\"size-xl\":\"mds-Avatar__size-xl\",\"tone-1\":\"mds-Avatar__tone-1\",\"tone-2\":\"mds-Avatar__tone-2\",\"tone-3\":\"mds-Avatar__tone-3\",\"tone-4\":\"mds-Avatar__tone-4\",\"tone-5\":\"mds-Avatar__tone-5\",\"image\":\"mds-Avatar__image\",\"initials\":\"mds-Avatar__initials\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Avatar.module.css\";\n\nexport type AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/** One of the five brand identity tints (`--mds-avatar-tone-1..5`). */\nexport type AvatarTone = 1 | 2 | 3 | 4 | 5;\n\nexport interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {\n /** Person's display name — accessible name and initials source. */\n name: string;\n /** Image URL; initials render when absent or empty. */\n src?: string;\n size?: AvatarSize;\n /** Identity tint behind the initials. Pick per person (e.g. hash the name)\n so the same person keeps the same color. */\n tone?: AvatarTone;\n /** Hide from assistive tech — for avatars that repeat a name already in\n the row's text. The name prop still drives the initials. */\n decorative?: boolean;\n}\n\n/* First + last word: \"Ada Byron King Lovelace\" → AL. Middle names add noise\n at 24px. */\nfunction initials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n const first = words[0]?.[0] ?? \"\";\n const last = words.length > 1 ? (words.at(-1)?.[0] ?? \"\") : \"\";\n return (first + last).toUpperCase();\n}\n\n/**\n * Person marker. Image when available, initials otherwise — never an empty circle.\n *\n * ```tsx\n * <Avatar name=\"Ada Lovelace\" src=\"/ada.jpg\" />\n * <Avatar name=\"Grace Hopper\" size=\"lg\" tone={2} />\n * ```\n */\nexport function Avatar({\n name,\n src,\n size = \"md\",\n tone,\n decorative = false,\n className,\n ...rest\n}: AvatarProps): ReactElement {\n return (\n <span\n className={cx(\n styles.avatar,\n styles[`size-${size}`],\n tone !== undefined && styles[`tone-${tone}`],\n className,\n )}\n aria-hidden={decorative || undefined}\n {...rest}\n >\n {src ? (\n <img className={styles.image} src={src} alt={decorative ? \"\" : name} />\n ) : (\n <span\n role={decorative ? undefined : \"img\"}\n aria-label={decorative ? undefined : name}\n className={styles.initials}\n >\n {initials(name)}\n </span>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AvatarGroup/AvatarGroup.module.css?mds-scoped\";\nexport default {\"group\":\"mds-AvatarGroup__group\",\"item\":\"mds-AvatarGroup__item\",\"overflow\":\"mds-AvatarGroup__overflow\",\"size-xs\":\"mds-AvatarGroup__size-xs\",\"size-sm\":\"mds-AvatarGroup__size-sm\",\"size-md\":\"mds-AvatarGroup__size-md\",\"size-lg\":\"mds-AvatarGroup__size-lg\",\"size-xl\":\"mds-AvatarGroup__size-xl\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport type { AvatarSize } from \"../Avatar/Avatar\";\nimport styles from \"./AvatarGroup.module.css\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Avatar children. */\n children: ReactNode;\n /** Visible cap; the rest collapse into \"+N\". Default 4. */\n max?: number;\n /** Sizes the overflow chip to match the avatars. Default \"md\". */\n size?: AvatarSize;\n}\n\n/**\n * Overlapping stack of avatars with a \"+N\" chip past `max`.\n *\n * ```tsx\n * <AvatarGroup max={3}>\n * <Avatar name=\"Ada Lovelace\" />\n * <Avatar name=\"Grace Hopper\" />\n * <Avatar name=\"Margaret Hamilton\" />\n * <Avatar name=\"Katherine Johnson\" />\n * </AvatarGroup>\n * ```\n */\nexport function AvatarGroup({\n children,\n max = 4,\n size = \"md\",\n className,\n ...rest\n}: AvatarGroupProps): ReactElement {\n const all = Children.toArray(children);\n const visible = all.slice(0, max);\n const hidden = all.length - visible.length;\n\n return (\n <div className={cx(styles.group, className)} {...rest}>\n {visible.map((child, i) => (\n <span key={i} className={styles.item}>\n {child}\n </span>\n ))}\n {hidden > 0 && (\n <span\n className={cx(styles.item, styles.overflow, styles[`size-${size}`])}\n aria-label={`${hidden} more`}\n >\n +{hidden}\n </span>\n )}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Badge/Badge.module.css?mds-scoped\";\nexport default {\"badge\":\"mds-Badge__badge\",\"tone-neutral\":\"mds-Badge__tone-neutral\",\"tone-accent\":\"mds-Badge__tone-accent\",\"tone-highlight\":\"mds-Badge__tone-highlight\",\"tone-danger\":\"mds-Badge__tone-danger\",\"tone-warning\":\"mds-Badge__tone-warning\",\"tone-success\":\"mds-Badge__tone-success\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Badge.module.css\";\n\nexport type BadgeTone = \"neutral\" | \"accent\" | \"danger\" | \"warning\" | \"success\" | \"highlight\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n tone?: BadgeTone;\n}\n\n/**\n * Small status marker — counts, \"new\", state words. Soft fill, strong text.\n *\n * ```tsx\n * <Badge tone=\"success\">Paid</Badge>\n * <Badge tone=\"danger\">3</Badge>\n * ```\n */\nexport function Badge({ tone = \"neutral\", className, ...rest }: BadgeProps): ReactElement {\n return <span className={cx(styles.badge, styles[`tone-${tone}`], className)} {...rest} />;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/Chip.module.css?mds-scoped\";\nexport default {\"chip\":\"mds-Chip__chip\",\"icon\":\"mds-Chip__icon\",\"variant-soft\":\"mds-Chip__variant-soft\",\"variant-outline\":\"mds-Chip__variant-outline\",\"variant-highlight\":\"mds-Chip__variant-highlight\",\"selected\":\"mds-Chip__selected\",\"interactive\":\"mds-Chip__interactive\",\"disabled\":\"mds-Chip__disabled\"};","import type { HTMLAttributes, MouseEventHandler, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Chip.module.css\";\n\nexport type ChipVariant = \"soft\" | \"outline\" | \"highlight\";\n\nexport interface ChipProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n /** Unselected appearance. Default \"soft\". */\n variant?: ChipVariant;\n /** Toggle state. When given on an interactive chip it also sets aria-pressed;\n * omit for a plain action chip so it does not announce as a toggle. */\n selected?: boolean;\n /** Leading glyph, sized by the chip. */\n icon?: ReactNode;\n /** When provided, Chip renders as a `<button>`. */\n onClick?: MouseEventHandler;\n disabled?: boolean;\n}\n\n/**\n * Compact pill for filters and single/multi choices. Interactive (a button,\n * with aria-pressed when `selected` is given) when `onClick` is set, otherwise\n * a static pill. For a passive content label use Tag instead.\n *\n * ```tsx\n * <Chip selected={filter === \"all\"} onClick={() => setFilter(\"all\")}>All</Chip>\n * <Chip variant=\"outline\" icon={<Icon name=\"pin\" />}>Nearby</Chip>\n * ```\n */\nexport function Chip({\n children,\n variant = \"soft\",\n selected,\n icon,\n onClick,\n disabled = false,\n className,\n ...rest\n}: ChipProps): ReactElement {\n const interactive = typeof onClick === \"function\";\n\n const shared = {\n className: cx(\n styles.chip,\n styles[`variant-${variant}`],\n selected && styles.selected,\n interactive && !disabled && styles.interactive,\n disabled && styles.disabled,\n className,\n ),\n ...rest,\n };\n\n const content = (\n <>\n {icon ? <span className={styles.icon}>{icon}</span> : null}\n {children}\n </>\n );\n\n return interactive ? (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n aria-pressed={selected === undefined ? undefined : selected}\n {...shared}\n >\n {content}\n </button>\n ) : (\n <span {...shared}>{content}</span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped\";\nexport default {\"group\":\"mds-ChipGroup__group\",\"gap-hairline\":\"mds-ChipGroup__gap-hairline\",\"gap-tight\":\"mds-ChipGroup__gap-tight\",\"gap-base\":\"mds-ChipGroup__gap-base\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ChipGroup.module.css\";\n\nexport type ChipGroupGap = \"hairline\" | \"tight\" | \"base\";\n\nexport interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Chips (or any inline items) laid out in a wrapping group. */\n children: ReactNode;\n /** Space between items, on the gap scale. Default \"tight\". */\n gap?: ChipGroupGap;\n}\n\n/**\n * Wrapping row of Chips for multi-select choices inside a form (pick several\n * days, locations, tags…). Items wrap onto new lines so nothing scrolls\n * off-screen; use ChipBar for a single-line scrolling filter strip.\n *\n * ```tsx\n * <ChipGroup>\n * {days.map((day) => (\n * <Chip key={day} selected={picked.has(day)} onClick={() => toggle(day)}>\n * {day}\n * </Chip>\n * ))}\n * </ChipGroup>\n * ```\n */\nexport function ChipGroup({ children, gap = \"tight\", className, ...rest }: ChipGroupProps): ReactElement {\n return (\n <div className={cx(styles.group, styles[`gap-${gap}`], className)} {...rest}>\n {children}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-ChipBar__bar\",\"gap-hairline\":\"mds-ChipBar__gap-hairline\",\"gap-tight\":\"mds-ChipBar__gap-tight\",\"gap-base\":\"mds-ChipBar__gap-base\",\"bordered\":\"mds-ChipBar__bordered\",\"fade\":\"mds-ChipBar__fade\",\"item\":\"mds-ChipBar__item\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ChipBar.module.css\";\n\nexport type ChipBarGap = \"hairline\" | \"tight\" | \"base\";\n\nexport interface ChipBarProps extends HTMLAttributes<HTMLDivElement> {\n /** Chips (or any inline items) laid out in a single scrolling row. */\n children: ReactNode;\n /** Space between items, on the gap scale. Default \"tight\". */\n gap?: ChipBarGap;\n /** Frame the strip so overflow reads as a scroll area. Default false. */\n bordered?: boolean;\n /** Fade the trailing edge to hint that the row scrolls. Default true. */\n fade?: boolean;\n}\n\n/**\n * Horizontally scrollable single-line row of Chips — a filter strip. Items\n * never wrap; the row scrolls when they overflow. `fade` dissolves the\n * trailing edge so the last chip hints at more rather than getting chopped\n * mid-word. Use ChipGroup for a wrapping set of choices inside a form.\n *\n * ```tsx\n * <ChipBar>\n * {segments.map((s) => (\n * <Chip key={s} selected={s === segment} onClick={() => setSegment(s)}>\n * {s}\n * </Chip>\n * ))}\n * </ChipBar>\n * ```\n */\nexport function ChipBar({\n children,\n gap = \"tight\",\n bordered = false,\n fade = true,\n className,\n ...rest\n}: ChipBarProps): ReactElement {\n return (\n <div\n className={cx(styles.bar, styles[`gap-${gap}`], bordered && styles.bordered, fade && styles.fade, className)}\n {...rest}\n >\n {Children.map(children, (child) => (\n <div className={styles.item}>{child}</div>\n ))}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/CountButton/CountButton.module.css?mds-scoped\";\nexport default {\"button\":\"mds-CountButton__button\",\"tone-accent\":\"mds-CountButton__tone-accent\",\"tone-danger\":\"mds-CountButton__tone-danger\",\"glyph\":\"mds-CountButton__glyph\"};","import type { ButtonHTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./CountButton.module.css\";\n\nexport type CountButtonTone = \"accent\" | \"danger\";\n\n/* Matches --mds-icon-md; the spinner replaces an md glyph without reflow. */\n/* Must match --mds-icon-slot on .glyph: the spinner stands in the glyph's\n place and Spinner needs a number, which a stylesheet cannot hand it. */\nconst SPINNER_PX = 20;\n\nexport interface CountButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"aria-label\" | \"aria-pressed\"> {\n /** Glyph shown before the text, e.g. `<Icon name=\"heart\" />`. Sized by the\n button, whatever the icon set's own default is. */\n icon: ReactNode;\n /** Accessible label (required) — describes the action for screen readers. */\n label: string;\n /**\n * Toggle state. When defined, sets `aria-pressed` and tints the control\n * with the tone colour. Omit for non-toggle actions (e.g. comment).\n */\n active?: boolean;\n /** Token the active tint reads. Default \"accent\". */\n tone?: CountButtonTone;\n /**\n * The write behind this action is in flight. Swaps the glyph for a spinner\n * of the same size and locks the control — a second tap in that window\n * would toggle the write straight back off.\n */\n loading?: boolean;\n /** Visible text beside the icon — typically a count or a word. */\n children?: ReactNode;\n}\n\n/**\n * Inline, chrome-less pressable pairing an icon with a count or word — like,\n * comment, react actions. Owns hover, press, disabled, loading and active\n * (`aria-pressed`) states so consumers never hand-roll button chrome.\n *\n * The app owns the glyph, so it also owns the filled/outline swap:\n *\n * ```tsx\n * <CountButton\n * icon={<Icon name={liked ? \"heart-filled\" : \"heart\"} />}\n * label={liked ? \"Unlike\" : \"Like\"}\n * active={liked}\n * loading={likeMutation.isPending}\n * onClick={() => likeMutation.mutate()}\n * >\n * {likeCount}\n * </CountButton>\n * ```\n */\nexport function CountButton({\n icon,\n label,\n active,\n tone = \"accent\",\n disabled = false,\n loading = false,\n className,\n children,\n ...rest\n}: CountButtonProps): ReactElement {\n const isToggle = active !== undefined;\n\n return (\n <button\n type=\"button\"\n disabled={disabled || loading}\n aria-label={label}\n aria-pressed={isToggle ? active : undefined}\n aria-busy={loading || undefined}\n className={cx(styles.button, active && styles[`tone-${tone}`], className)}\n {...rest}\n >\n {/* The button's own aria-busy announces the wait; the spinner is decor. */}\n <span className={styles.glyph}>\n {loading ? <Spinner size={SPINNER_PX} label=\"\" aria-hidden=\"true\" /> : icon}\n </span>\n {children != null ? <span>{children}</span> : null}\n </button>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped\";\nexport default {\"field\":\"mds-Field__field\",\"label\":\"mds-Field__label\",\"required\":\"mds-Field__required\",\"message\":\"mds-Field__message\",\"error\":\"mds-Field__error\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext, useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Field.module.css\";\n\nexport interface FieldContextValue {\n /** Control id — the label points here. */\n id: string;\n /** Space-joined ids of hint/error, for aria-describedby. */\n describedBy: string | undefined;\n invalid: boolean;\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null);\n\n/** Controls call this to pick up Field wiring. Null outside a Field. */\nexport function useFieldContext(): FieldContextValue | null {\n return useContext(FieldContext);\n}\n\nexport interface FieldProps {\n label: string;\n children: ReactNode;\n /** Guidance under the control. */\n hint?: string;\n /** Validation message; replaces the hint and flags the control invalid. */\n error?: string;\n required?: boolean;\n className?: string;\n}\n\n/**\n * Label + control + hint/error, wired for assistive tech. The control inside\n * (Input, Textarea, Select, …) picks up id, aria-describedby and aria-invalid\n * from context — no manual plumbing at call sites.\n *\n * ```tsx\n * <Field label=\"Email\" hint=\"Work email preferred\" error={errors.email} required>\n * <Input type=\"email\" value={email} onChange={(e) => setEmail(e.target.value)} />\n * </Field>\n * ```\n */\nexport function Field({ label, children, hint, error, required = false, className }: FieldProps): ReactElement {\n const id = useId();\n const messageId = `${id}-message`;\n const message = error ?? hint;\n\n return (\n <div className={cx(styles.field, className)}>\n <label className={styles.label} htmlFor={id}>\n {label}\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n <FieldContext.Provider\n value={{ id, describedBy: message ? messageId : undefined, invalid: error !== undefined }}\n >\n {children}\n </FieldContext.Provider>\n {message && (\n <span id={messageId} className={cx(styles.message, error !== undefined && styles.error)}>\n {message}\n </span>\n )}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Select/Select.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-Select__wrap\",\"select\":\"mds-Select__select\",\"size-sm\":\"mds-Select__size-sm\",\"size-md\":\"mds-Select__size-md\",\"size-lg\":\"mds-Select__size-lg\",\"chevron\":\"mds-Select__chevron\"};","import type { ReactElement, Ref, SelectHTMLAttributes } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Select.module.css\";\n\nexport type SelectSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"size\"> {\n size?: SelectSize;\n ref?: Ref<HTMLSelectElement>;\n}\n\n/**\n * Native select, styled. Native = free keyboard, mobile pickers, screen\n * reader behavior; a custom popover earns its complexity only when options\n * need rich content.\n *\n * ```tsx\n * <Field label=\"Language\">\n * <Select value={lang} onChange={(e) => setLang(e.target.value)}>\n * <option value=\"de\">Deutsch</option>\n * <option value=\"en\">English</option>\n * </Select>\n * </Field>\n * ```\n */\nexport function Select({ size = \"md\", className, children, ...rest }: SelectProps): ReactElement {\n const field = useFieldContext();\n return (\n <span className={styles.wrap}>\n <select\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? (field?.invalid || undefined)}\n className={cx(styles.select, styles[`size-${size}`], className)}\n {...rest}\n >\n {children}\n </select>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.chevron}>\n <path d=\"M4 6l4 4 4-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </span>\n );\n}\n","import { createContext } from \"react\";\n\nexport interface OverlayHistory {\n /**\n * An overlay has opened. The implementation adds a history entry, and calls\n * `onPop` if the user goes back to it. Returns a dispose for when the\n * overlay closes some other way — its close button, Escape, the scrim, or\n * unmounting. The implementation owes the entry back: one left behind is a\n * back tap that does nothing.\n */\n register(onPop: () => void): () => void;\n}\n\n/**\n * On a phone, back is also the dismiss gesture: an open overlay that ignores\n * it costs the user the screen underneath instead. The library owns *when* an\n * overlay opens and closes; the app owns the history mechanism, because a raw\n * `history.pushState` from a library corrupts a router's own bookkeeping\n * (React Router keeps its index in `history.state`).\n *\n * Null wherever no app has supplied one — Storybook, a unit test, a consumer\n * that has not opted in. Overlays go on working; they just do not answer back.\n *\n * `useOverlay` registers every open overlay, so Modal, Sheet and\n * ConfirmDialog are covered with no per-call-site wiring:\n *\n * ```tsx\n * // App root — e.g. backed by the app router:\n * const overlayHistory = useMemo<OverlayHistory>(() => ({\n * register(onPop) {\n * pushOverlayEntry(onPop); // app-owned, via the router\n * return () => popOverlayEntry(); // give the entry back\n * },\n * }), []);\n *\n * <OverlayHistoryContext.Provider value={overlayHistory}>\n * <App />\n * </OverlayHistoryContext.Provider>\n * ```\n */\nexport const OverlayHistoryContext = createContext<OverlayHistory | null>(null);\n","import { useContext, useEffect, useRef } from \"react\";\nimport type { RefObject } from \"react\";\nimport { OverlayHistoryContext } from \"./overlayHistory\";\n\nexport interface UseOverlayOptions {\n open: boolean;\n onClose: () => void;\n}\n\nconst FOCUSABLE =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * Shared modal-surface behaviour: focus capture and restore, Escape to\n * close, Tab cycling inside the panel, body scroll lock. Attach the\n * returned ref to the dialog element (it needs tabIndex={-1}).\n *\n * Anchor-positioned overlays (Tooltip/Popover) will extend this hook with\n * a floating-ui middleware pass; the options object leaves room for that.\n */\nexport function useOverlay<T extends HTMLElement>(options: UseOverlayOptions): RefObject<T | null> {\n const ref = useRef<T>(null);\n const { open, onClose } = options;\n const close = useRef(onClose);\n useEffect(() => {\n close.current = onClose;\n }, [onClose]);\n\n /* Back-button contract: an app that supplies OverlayHistory gets every open\n overlay registered, so back dismisses the innermost one instead of leaving\n the screen underneath. Null context (Storybook, tests, non-opted apps) is\n a no-op. The register/dispose pair keeps history balanced either way. */\n const overlayHistory = useContext(OverlayHistoryContext);\n useEffect(() => {\n if (!open || !overlayHistory) return;\n return overlayHistory.register(() => close.current());\n }, [open, overlayHistory]);\n\n useEffect(() => {\n if (!open) return;\n const panel = ref.current;\n const previous = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n panel?.focus();\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n close.current();\n return;\n }\n if (event.key !== \"Tab\" || !panel) return;\n const focusable = [...panel.querySelectorAll<HTMLElement>(FOCUSABLE)];\n if (focusable.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const active = document.activeElement;\n if (event.shiftKey && (active === first || active === panel)) {\n event.preventDefault();\n last?.focus();\n } else if (!event.shiftKey && active === last) {\n event.preventDefault();\n first?.focus();\n }\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n const bodyOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = bodyOverflow;\n previous?.focus();\n };\n }, [open]);\n\n return ref;\n}\n","import { useEffect, useState } from \"react\";\n\nexport interface Presence {\n /** Keep the element in the DOM (true during exit animation). */\n mounted: boolean;\n /** Drive the visual state — false during exit. */\n visible: boolean;\n}\n\n/**\n * Exit-animation helper. `open` flips instantly; `mounted` lags by\n * `durationMs` on close so the exit transition can play.\n */\nexport function usePresence(open: boolean, durationMs: number): Presence {\n const [mounted, setMounted] = useState(open);\n\n // Sync on open belongs in render, not an effect (\"adjusting state when\n // props change\" pattern) — the effect only owns the exit timer.\n if (open && !mounted) setMounted(true);\n\n useEffect(() => {\n if (open) return;\n const timer = setTimeout(() => setMounted(false), durationMs);\n return () => clearTimeout(timer);\n }, [open, durationMs]);\n\n return { mounted: open || mounted, visible: open };\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Overlay/Overlay.module.css?mds-scoped\";\nexport default {\"scrim\":\"mds-Overlay__scrim\",\"variant-modal\":\"mds-Overlay__variant-modal\",\"variant-sheet\":\"mds-Overlay__variant-sheet\"};","import { createPortal } from \"react-dom\";\nimport type { ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useOverlay } from \"../../hooks/useOverlay\";\nimport { usePresence } from \"../../hooks/usePresence\";\nimport styles from \"./Overlay.module.css\";\n\n/** Matches --mds-dur-base; usePresence needs the number in JS. */\nexport const OVERLAY_EXIT_MS = 200;\n\nexport interface OverlayProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n variant: \"modal\" | \"sheet\";\n /** alertdialog interrupts — confirms use it so AT announces the question. */\n role?: \"dialog\" | \"alertdialog\";\n /** Scrim click dismisses. Confirmations turn this off. */\n closeOnScrimClick: boolean;\n panelClassName: string | undefined;\n children: ReactNode;\n}\n\n/**\n * Internal shell shared by Modal and Sheet: portal, scrim, dialog\n * semantics, useOverlay behaviour, exit-animation presence. Not exported\n * from the package.\n */\nexport function Overlay({ open, onClose, label, variant, role = \"dialog\", closeOnScrimClick, panelClassName, children }: OverlayProps) {\n const { mounted, visible } = usePresence(open, OVERLAY_EXIT_MS);\n const ref = useOverlay<HTMLDivElement>({ open, onClose });\n\n if (!mounted) return null;\n\n return createPortal(\n <div\n className={cx(styles.scrim, styles[`variant-${variant}`])}\n data-open={visible || undefined}\n data-testid=\"mds-scrim\"\n onClick={closeOnScrimClick ? onClose : undefined}\n >\n <div\n ref={ref}\n role={role}\n aria-modal=\"true\"\n aria-label={label}\n tabIndex={-1}\n className={panelClassName}\n data-open={visible || undefined}\n onClick={(event) => event.stopPropagation()}\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Sheet/Sheet.module.css?mds-scoped\";\nexport default {\"panel\":\"mds-Sheet__panel\",\"header\":\"mds-Sheet__header\",\"body\":\"mds-Sheet__body\",\"footer\":\"mds-Sheet__footer\",\"headerTitle\":\"mds-Sheet__headerTitle\",\"close\":\"mds-Sheet__close\",\"closeGlyph\":\"mds-Sheet__closeGlyph\"};","import type { ReactNode } from \"react\";\nimport { Overlay } from \"../Overlay/Overlay\";\nimport styles from \"./Sheet.module.css\";\n\nexport interface SheetProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n /** Scrim click dismisses. Default true. */\n closeOnScrimClick?: boolean;\n children: ReactNode;\n}\n\n/**\n * Bottom sheet. Same composition and dismissal model as Modal:\n *\n * ```tsx\n * <Sheet open={open} onClose={() => setOpen(false)} label=\"Filters\">\n * <SheetHeader>Filters</SheetHeader>\n * <SheetBody>…</SheetBody>\n * <SheetFooter><Button onClick={apply}>Apply</Button></SheetFooter>\n * </Sheet>\n * ```\n */\nexport function Sheet({ open, onClose, label, closeOnScrimClick = true, children }: SheetProps) {\n return (\n <Overlay\n open={open}\n onClose={onClose}\n label={label}\n variant=\"sheet\"\n closeOnScrimClick={closeOnScrimClick}\n panelClassName={styles.panel}\n >\n {children}\n </Overlay>\n );\n}\n\nexport type SheetHeaderProps = { children: ReactNode } & (\n | {\n /** Renders a close button after the title. Wire it to the sheet's own onClose. */\n onClose: () => void;\n /** Accessible name of the close button (localise). */\n closeLabel: string;\n }\n | { onClose?: undefined; closeLabel?: undefined }\n);\n\nexport function SheetHeader({ children, onClose, closeLabel }: SheetHeaderProps) {\n return (\n <div className={styles.header}>\n <span className={styles.headerTitle}>{children}</span>\n {onClose !== undefined && (\n <button type=\"button\" aria-label={closeLabel} className={styles.close} onClick={onClose}>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.closeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </div>\n );\n}\n\nexport function SheetBody({ children }: { children: ReactNode }) {\n return <div className={styles.body}>{children}</div>;\n}\n\nexport function SheetFooter({ children }: { children: ReactNode }) {\n return <div className={styles.footer}>{children}</div>;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped\";\nexport default {\"trigger\":\"mds-DateTimePicker__trigger\",\"hasValue\":\"mds-DateTimePicker__hasValue\",\"triggerLabel\":\"mds-DateTimePicker__triggerLabel\",\"glyph\":\"mds-DateTimePicker__glyph\",\"timeRow\":\"mds-DateTimePicker__timeRow\",\"grow\":\"mds-DateTimePicker__grow\",\"meridiem\":\"mds-DateTimePicker__meridiem\",\"colon\":\"mds-DateTimePicker__colon\",\"calendarHeader\":\"mds-DateTimePicker__calendarHeader\",\"monthLabel\":\"mds-DateTimePicker__monthLabel\",\"weekdays\":\"mds-DateTimePicker__weekdays\",\"weekday\":\"mds-DateTimePicker__weekday\",\"grid\":\"mds-DateTimePicker__grid\",\"day\":\"mds-DateTimePicker__day\",\"today\":\"mds-DateTimePicker__today\",\"selected\":\"mds-DateTimePicker__selected\",\"outside\":\"mds-DateTimePicker__outside\"};","import type { KeyboardEvent, ReactElement } from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport { Button } from \"../Button/Button\";\nimport { Select } from \"../Select/Select\";\nimport { Sheet, SheetBody, SheetFooter, SheetHeader } from \"../Sheet/Sheet\";\nimport styles from \"./DateTimePicker.module.css\";\n\nexport interface DateTimePickerLabels {\n /** Accessible name of the picker dialog. */\n dialog: string;\n previousMonth: string;\n nextMonth: string;\n today: string;\n done: string;\n hour: string;\n minute: string;\n dayPeriod: string;\n}\n\nconst DEFAULT_LABELS: DateTimePickerLabels = {\n dialog: \"Pick date and time\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n today: \"Today\",\n done: \"Done\",\n hour: \"Hour\",\n minute: \"Minutes\",\n dayPeriod: \"AM/PM\",\n};\n\nexport interface DateTimePickerProps {\n /** Current value as an ISO 8601 string. */\n value?: string | undefined;\n /** Fires with the combined ISO string when the user confirms. */\n onChange: (iso: string) => void;\n /** Shown on the trigger when nothing is selected. */\n placeholder?: string | undefined;\n /** Earliest selectable moment as an ISO string. Default: now. */\n min?: string | undefined;\n /** Minute granularity. Default 5; use 30 for :00/:30 only. */\n minuteStep?: number | undefined;\n disabled?: boolean | undefined;\n /** Applied to the trigger button so a `<label htmlFor>` can point at it. */\n id?: string | undefined;\n /** Field name for the trigger, e.g. \"Starts\". Announced alongside the value. */\n \"aria-label\"?: string | undefined;\n /** BCP 47 tag for names, week start and hour cycle. Default: runtime locale. */\n locale?: string | undefined;\n /** Overrides for the picker's own strings (defaults are English). */\n labels?: Partial<DateTimePickerLabels> | undefined;\n}\n\n/* --- Intl-derived locale facts, computed once per locale ------------------ */\n\ninterface LocaleData {\n /** JS day index (0 = Sunday) the week starts on. */\n firstDay: number;\n /** Weekday column headers, ordered from firstDay. */\n weekdays: string[];\n /** 12-hour clock? */\n hour12: boolean;\n /** Localized day-period labels, e.g. [\"AM\", \"PM\"]. */\n dayPeriods: [string, string];\n monthTitle: Intl.DateTimeFormat;\n dayLabel: Intl.DateTimeFormat;\n full: Intl.DateTimeFormat;\n}\n\n/* getWeekInfo is not in the TS lib yet; some engines expose it as an accessor. */\ninterface WeekInfoLocale extends Intl.Locale {\n getWeekInfo?: () => { firstDay: number };\n weekInfo?: { firstDay: number };\n}\n\nfunction localeData(locale: string | undefined): LocaleData {\n const resolved = new Intl.DateTimeFormat(locale).resolvedOptions().locale;\n\n /* Spec counts 1 = Monday … 7 = Sunday; JS Date counts 0 = Sunday. Engines\n without weekInfo fall back to Monday — most of the world's week start. */\n const intlLocale = new Intl.Locale(resolved) as WeekInfoLocale;\n const weekInfo = intlLocale.getWeekInfo?.() ?? intlLocale.weekInfo;\n const firstDay = (weekInfo?.firstDay ?? 1) % 7;\n\n /* 2021-08-01 was a Sunday; format a known week to get the headers. */\n const weekdayFmt = new Intl.DateTimeFormat(resolved, { weekday: \"short\", timeZone: \"UTC\" });\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n weekdayFmt.format(new Date(Date.UTC(2021, 7, 1 + ((firstDay + i) % 7)))),\n );\n\n const hourFmt = new Intl.DateTimeFormat(resolved, { hour: \"numeric\" });\n const { hourCycle } = hourFmt.resolvedOptions();\n const hour12 = hourCycle === \"h11\" || hourCycle === \"h12\";\n\n const periodOf = (hour: number): string =>\n new Intl.DateTimeFormat(resolved, { hour: \"numeric\", hour12: true })\n .formatToParts(new Date(2021, 0, 1, hour))\n .find((part) => part.type === \"dayPeriod\")?.value ?? (hour < 12 ? \"AM\" : \"PM\");\n\n return {\n firstDay,\n weekdays,\n hour12,\n dayPeriods: [periodOf(9), periodOf(21)],\n monthTitle: new Intl.DateTimeFormat(resolved, { month: \"long\", year: \"numeric\" }),\n dayLabel: new Intl.DateTimeFormat(resolved, { month: \"long\", day: \"numeric\", year: \"numeric\" }),\n full: new Intl.DateTimeFormat(resolved, {\n weekday: \"short\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n }),\n };\n}\n\n/* --- date arithmetic ------------------------------------------------------ */\n\nfunction startOfDay(d: Date): number {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n}\n\nfunction snapMinutes(d: Date, step: number): Date {\n const out = new Date(d);\n out.setMinutes(Math.round(out.getMinutes() / step) * step, 0, 0);\n return out;\n}\n\nfunction addDays(d: Date, n: number): Date {\n const o = new Date(d);\n o.setDate(o.getDate() + n);\n return o;\n}\n\nfunction addMonths(d: Date, n: number): Date {\n const o = new Date(d);\n o.setMonth(o.getMonth() + n);\n return o;\n}\n\nfunction minuteOptions(step: number): number[] {\n const s = Math.max(1, Math.min(60, Math.floor(step)));\n return Array.from({ length: Math.floor(60 / s) }, (_, i) => i * s);\n}\n\nfunction pad2(n: number): string {\n return String(n).padStart(2, \"0\");\n}\n\n/* --- glyphs — internal chrome, like Tag's remove ✕; no registry contract --- */\n\nconst chevronLeft = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <path d=\"M10 3l-5 5 5 5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\nconst chevronRight = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <path d=\"M6 3l5 5-5 5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\nconst calendarGlyph = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <rect x=\"2.5\" y=\"3.5\" width=\"11\" height=\"10\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n);\nconst clockGlyph = (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glyph}>\n <circle cx=\"8\" cy=\"8\" r=\"5.75\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5v3.25l2 1.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\n/**\n * Mobile-first date + time picker. A trigger styled like Input opens a bottom\n * sheet with a month calendar (roving-focus grid, arrow keys move the day)\n * and native Select time controls. Controlled via `value` (ISO); emits the\n * combined ISO string on confirm. All names, the week start and the 12/24-hour\n * clock come from `Intl` for the given locale.\n *\n * ```tsx\n * <Field label=\"Starts\">\n * <DateTimePicker\n * value={startsAt}\n * onChange={setStartsAt}\n * min={new Date().toISOString()}\n * minuteStep={30}\n * locale={i18n.language}\n * />\n * </Field>\n * ```\n */\nexport function DateTimePicker({\n value,\n onChange,\n placeholder = \"Select date & time\",\n min,\n minuteStep = 5,\n disabled = false,\n id,\n \"aria-label\": ariaLabel,\n locale,\n labels,\n}: DateTimePickerProps): ReactElement {\n const text: DateTimePickerLabels = { ...DEFAULT_LABELS, ...labels };\n /* Inside a Field, claim its generated control id and message wiring, the\n same way Input/Select/Textarea do — the field's <label htmlFor> points at\n the control id, and without it the label names nothing. */\n const field = useFieldContext();\n const intl = useMemo(() => localeData(locale), [locale]);\n\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<Date>(() => new Date());\n const [view, setView] = useState<{ y: number; m: number }>(() => {\n const d = new Date();\n return { y: d.getFullYear(), m: d.getMonth() };\n });\n /* The calendar grid is a single tab stop: `focusedDay` is the one day that\n carries tabIndex 0; arrow keys move it (roving focus), crossing months. */\n const [focusedDay, setFocusedDay] = useState<Date>(() => new Date());\n const dayRefs = useRef<Map<number, HTMLButtonElement>>(new Map());\n const pendingFocusRef = useRef(false);\n\n const minDate = min ? new Date(min) : new Date();\n const minStart = startOfDay(minDate);\n\n /* Re-seed the draft + visible month from the current value each time the\n panel opens. When `value` precedes `min` the roving tab stop clamps to\n `min`, and the view must follow it or no day in the grid is focusable. */\n function openPicker(): void {\n const base = snapMinutes(value ? new Date(value) : new Date(), minuteStep);\n setDraft(base);\n const start = startOfDay(base) >= minStart ? base : new Date(minStart);\n setView({ y: start.getFullYear(), m: start.getMonth() });\n setFocusedDay(start);\n setOpen(true);\n }\n\n /* Move DOM focus onto the roving target after an arrow-key move (only then —\n never steal focus when the panel first opens). */\n useEffect(() => {\n if (!pendingFocusRef.current) return;\n pendingFocusRef.current = false;\n dayRefs.current.get(startOfDay(focusedDay))?.focus();\n }, [focusedDay, view]);\n\n const h24 = draft.getHours();\n const h12 = h24 % 12 || 12;\n const isPM = h24 >= 12;\n\n function setHour(v: string): void {\n const nd = new Date(draft);\n nd.setHours(intl.hour12 ? (Number(v) % 12) + (isPM ? 12 : 0) : Number(v));\n setDraft(nd);\n }\n function setMinute(v: string): void {\n const nd = new Date(draft);\n nd.setMinutes(Number(v), 0, 0);\n setDraft(nd);\n }\n function setMeridiem(v: string): void {\n const nd = new Date(draft);\n nd.setHours((h12 % 12) + (v === \"pm\" ? 12 : 0));\n setDraft(nd);\n }\n function pickDay(day: number): void {\n const nd = new Date(draft);\n nd.setFullYear(view.y, view.m, day);\n setDraft(nd);\n }\n /* First selectable day in a month — the 1st, or `min` when it falls\n mid-month. Keeps the roving tab stop pointed at an enabled, in-view day. */\n function firstFocusableInView(y: number, m: number): Date {\n const monthStart = new Date(y, m, 1);\n return startOfDay(monthStart) >= minStart ? monthStart : new Date(minStart);\n }\n function shiftMonth(delta: number): void {\n let m = view.m + delta;\n let y = view.y;\n if (m < 0) { m = 11; y -= 1; }\n if (m > 11) { m = 0; y += 1; }\n setView({ y, m });\n setFocusedDay(firstFocusableInView(y, m));\n }\n function goToday(): void {\n const t = new Date();\n setView({ y: t.getFullYear(), m: t.getMonth() });\n setFocusedDay(startOfDay(t) >= minStart ? t : new Date(minStart));\n }\n /* Move the roving focus to `next` (clamped to >= min), following it across a\n month boundary, then focus the target cell once it renders. */\n function focusDate(next: Date): void {\n if (startOfDay(next) < minStart) return;\n pendingFocusRef.current = true;\n if (next.getMonth() !== view.m || next.getFullYear() !== view.y) {\n setView({ y: next.getFullYear(), m: next.getMonth() });\n }\n setFocusedDay(next);\n }\n function onDayKeyDown(e: KeyboardEvent<HTMLButtonElement>, cell: Date): void {\n /* Home/End go to the locale's start/end of week, not Sunday/Saturday. */\n const weekOffset = (cell.getDay() - intl.firstDay + 7) % 7;\n switch (e.key) {\n case \"ArrowLeft\": e.preventDefault(); focusDate(addDays(cell, -1)); break;\n case \"ArrowRight\": e.preventDefault(); focusDate(addDays(cell, 1)); break;\n case \"ArrowUp\": e.preventDefault(); focusDate(addDays(cell, -7)); break;\n case \"ArrowDown\": e.preventDefault(); focusDate(addDays(cell, 7)); break;\n case \"Home\": e.preventDefault(); focusDate(addDays(cell, -weekOffset)); break;\n case \"End\": e.preventDefault(); focusDate(addDays(cell, 6 - weekOffset)); break;\n case \"PageUp\": e.preventDefault(); focusDate(addMonths(cell, -1)); break;\n case \"PageDown\": e.preventDefault(); focusDate(addMonths(cell, 1)); break;\n case \"Enter\":\n case \" \":\n e.preventDefault();\n pickDay(cell.getDate());\n break;\n default: break;\n }\n }\n function confirm(): void {\n onChange(draft.toISOString());\n setOpen(false);\n }\n\n const first = new Date(view.y, view.m, 1);\n const startWeekday = (first.getDay() - intl.firstDay + 7) % 7;\n const daysInMonth = new Date(view.y, view.m + 1, 0).getDate();\n const prevDisabled =\n view.y < minDate.getFullYear() || (view.y === minDate.getFullYear() && view.m <= minDate.getMonth());\n const todayStart = startOfDay(new Date());\n const draftStart = startOfDay(draft);\n\n /* Render the month's natural span of weeks: trailing days of the previous\n month, in-month days 1..N, then enough of the next month to complete the\n last week (4/5/6 rows). Neighbour-month days are dimmed + non-interactive;\n the grid reserves 6 rows of height so the panel never jumps. */\n const spanCells = Math.ceil((startWeekday + daysInMonth) / 7) * 7;\n const dayCells = Array.from({ length: spanCells }, (_, i) => {\n const cell = new Date(view.y, view.m, 1 - startWeekday + i);\n const inMonth = cell.getMonth() === view.m && cell.getFullYear() === view.y;\n const cellStart = cell.getTime();\n const isDisabled = !inMonth || cellStart < minStart;\n const isSelected = inMonth && cellStart === draftStart;\n const isToday = inMonth && cellStart === todayStart;\n const isFocusTarget = inMonth && !isDisabled && cellStart === startOfDay(focusedDay);\n return (\n <button\n key={`c-${i}`}\n type=\"button\"\n disabled={isDisabled}\n /* Single tab stop: only the roving-focus day is tabbable; the rest are\n reached with the arrow keys (WCAG 2.1.1 / grid pattern). */\n tabIndex={isFocusTarget ? 0 : -1}\n ref={\n inMonth && !isDisabled\n ? (el): void => {\n if (el) dayRefs.current.set(cellStart, el);\n else dayRefs.current.delete(cellStart);\n }\n : undefined\n }\n aria-hidden={inMonth ? undefined : true}\n aria-label={intl.dayLabel.format(cell)}\n aria-pressed={isSelected}\n onClick={inMonth ? () => pickDay(cell.getDate()) : undefined}\n onKeyDown={inMonth && !isDisabled ? (e) => onDayKeyDown(e, cell) : undefined}\n className={cx(styles.day, isToday && styles.today, isSelected && styles.selected, !inMonth && styles.outside)}\n >\n {cell.getDate()}\n </button>\n );\n });\n\n return (\n <>\n <button\n id={id ?? field?.id}\n type=\"button\"\n disabled={disabled}\n aria-describedby={field?.describedBy}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n /* Announce the field name (when given) alongside the current value. */\n aria-label={\n ariaLabel\n ? `${ariaLabel}: ${value ? intl.full.format(new Date(value)) : placeholder}`\n : undefined\n }\n onClick={openPicker}\n className={cx(styles.trigger, value && styles.hasValue)}\n >\n {calendarGlyph}\n <span className={styles.triggerLabel}>{value ? intl.full.format(new Date(value)) : placeholder}</span>\n </button>\n\n <Sheet open={open} onClose={() => setOpen(false)} label={ariaLabel ?? text.dialog}>\n <SheetHeader>{intl.full.format(draft)}</SheetHeader>\n <SheetBody>\n <div className={styles.timeRow}>\n {clockGlyph}\n {intl.hour12 ? (\n <>\n <Select aria-label={text.hour} value={String(h12)} onChange={(e) => setHour(e.target.value)} className={styles.grow}>\n {Array.from({ length: 12 }, (_, i) => (\n <option key={i + 1} value={String(i + 1)}>\n {i + 1}\n </option>\n ))}\n </Select>\n <span className={styles.colon} aria-hidden=\"true\">:</span>\n <Select aria-label={text.minute} value={String(draft.getMinutes())} onChange={(e) => setMinute(e.target.value)} className={styles.grow}>\n {minuteOptions(minuteStep).map((m) => (\n <option key={m} value={String(m)}>\n {pad2(m)}\n </option>\n ))}\n </Select>\n <Select aria-label={text.dayPeriod} value={isPM ? \"pm\" : \"am\"} onChange={(e) => setMeridiem(e.target.value)} className={styles.meridiem}>\n <option value=\"am\">{intl.dayPeriods[0]}</option>\n <option value=\"pm\">{intl.dayPeriods[1]}</option>\n </Select>\n </>\n ) : (\n <>\n <Select aria-label={text.hour} value={String(h24)} onChange={(e) => setHour(e.target.value)} className={styles.grow}>\n {Array.from({ length: 24 }, (_, i) => (\n <option key={i} value={String(i)}>\n {pad2(i)}\n </option>\n ))}\n </Select>\n <span className={styles.colon} aria-hidden=\"true\">:</span>\n <Select aria-label={text.minute} value={String(draft.getMinutes())} onChange={(e) => setMinute(e.target.value)} className={styles.grow}>\n {minuteOptions(minuteStep).map((m) => (\n <option key={m} value={String(m)}>\n {pad2(m)}\n </option>\n ))}\n </Select>\n </>\n )}\n </div>\n\n <div role=\"group\" aria-label={intl.monthTitle.format(first)}>\n <div className={styles.calendarHeader}>\n <Button\n iconOnly\n aria-label={text.previousMonth}\n variant=\"ghost\"\n size=\"sm\"\n disabled={prevDisabled}\n onClick={() => shiftMonth(-1)}\n >\n {chevronLeft}\n </Button>\n <span className={styles.monthLabel}>{intl.monthTitle.format(first)}</span>\n <Button iconOnly aria-label={text.nextMonth} variant=\"ghost\" size=\"sm\" onClick={() => shiftMonth(1)}>\n {chevronRight}\n </Button>\n </div>\n <div className={styles.weekdays}>\n {intl.weekdays.map((w, i) => (\n <span key={`wd-${i}`} aria-hidden=\"true\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n <div className={styles.grid}>{dayCells}</div>\n </div>\n </SheetBody>\n <SheetFooter>\n <Button variant=\"ghost\" onClick={goToday}>\n {text.today}\n </Button>\n <Button variant=\"primary\" onClick={confirm}>\n {text.done}\n </Button>\n </SheetFooter>\n </Sheet>\n </>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped\";\nexport default {\"tag\":\"mds-Tag__tag\",\"tone-accent\":\"mds-Tag__tone-accent\",\"remove\":\"mds-Tag__remove\",\"removeGlyph\":\"mds-Tag__removeGlyph\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Tag.module.css\";\n\nexport type TagTone = \"neutral\" | \"accent\";\n\nexport interface TagProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n tone?: TagTone;\n /** Renders a labelled ✕ button. Label reads \"Remove <content>\" when content is text. */\n onRemove?: () => void;\n}\n\n/**\n * Content label chip — categories, filters, topics.\n *\n * ```tsx\n * <Tag>Design</Tag>\n * <Tag tone=\"accent\" onRemove={() => remove(id)}>Beginner</Tag>\n * ```\n */\nexport function Tag({ children, tone = \"neutral\", onRemove, className, ...rest }: TagProps): ReactElement {\n const text = typeof children === \"string\" ? children : undefined;\n return (\n <span className={cx(styles.tag, styles[`tone-${tone}`], className)} {...rest}>\n {children}\n {onRemove && (\n <button\n type=\"button\"\n className={styles.remove}\n aria-label={text ? `Remove ${text}` : \"Remove\"}\n onClick={onRemove}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.removeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Divider/Divider.module.css?mds-scoped\";\nexport default {\"divider\":\"mds-Divider__divider\",\"horizontal\":\"mds-Divider__horizontal\",\"vertical\":\"mds-Divider__vertical\"};","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Divider.module.css\";\n\nexport interface DividerProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Visual separator. Semantic separator role via <hr>-equivalent div.\n *\n * ```tsx\n * <Divider />\n * <Divider orientation=\"vertical\" />\n * ```\n */\nexport function Divider({ orientation = \"horizontal\", className, ...rest }: DividerProps): ReactElement {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : undefined}\n className={cx(styles.divider, styles[orientation], className)}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped\";\nexport default {\"skeleton\":\"mds-Skeleton__skeleton\",\"pulse\":\"mds-Skeleton__pulse\",\"variant-text\":\"mds-Skeleton__variant-text\",\"variant-rect\":\"mds-Skeleton__variant-rect\",\"variant-circle\":\"mds-Skeleton__variant-circle\"};","import type { CSSProperties, HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Skeleton.module.css\";\n\nexport type SkeletonVariant = \"text\" | \"rect\" | \"circle\";\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: SkeletonVariant;\n /** Any CSS length. Text defaults to full width, one line tall. */\n width?: string;\n height?: string;\n}\n\n/**\n * Loading placeholder. aria-hidden — the loading announcement belongs to the\n * region (aria-busy), not to each shimmering box.\n *\n * ```tsx\n * <div aria-busy={loading}>\n * {loading ? (\n * <Stack gap=\"tight\">\n * <Skeleton width=\"40%\" />\n * <Skeleton />\n * <Skeleton variant=\"rect\" height=\"8rem\" />\n * </Stack>\n * ) : (\n * content\n * )}\n * </div>\n * ```\n */\nexport function Skeleton({\n variant = \"text\",\n width,\n height,\n className,\n style,\n ...rest\n}: SkeletonProps): ReactElement {\n const vars = {\n ...(width ? { \"--skeleton-w\": width } : {}),\n ...(height ? { \"--skeleton-h\": height } : {}),\n } as CSSProperties;\n return (\n <span\n aria-hidden=\"true\"\n className={cx(styles.skeleton, styles[`variant-${variant}`], className)}\n style={{ ...vars, ...style }}\n {...rest}\n />\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ProgressBar/ProgressBar.module.css?mds-scoped\";\nexport default {\"track\":\"mds-ProgressBar__track\",\"fill\":\"mds-ProgressBar__fill\",\"indeterminate\":\"mds-ProgressBar__indeterminate\",\"slide\":\"mds-ProgressBar__slide\"};","import type { CSSProperties, HTMLAttributes, ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./ProgressBar.module.css\";\n\nexport interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {\n /** 0–100; clamped. Ignored when indeterminate. */\n value?: number;\n /** Accessible name — required. A bare bar announces nothing useful. */\n label: string;\n indeterminate?: boolean;\n}\n\n/**\n * Determinate or indeterminate progress track.\n *\n * ```tsx\n * <ProgressBar label=\"Upload\" value={64} />\n * <ProgressBar label=\"Syncing\" indeterminate />\n * ```\n */\nexport function ProgressBar({\n value = 0,\n label,\n indeterminate = false,\n className,\n style,\n ...rest\n}: ProgressBarProps): ReactElement {\n const clamped = Math.min(100, Math.max(0, value));\n return (\n <div\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={indeterminate ? undefined : clamped}\n className={cx(styles.track, indeterminate && styles.indeterminate, className)}\n style={{ ...( { \"--progress\": `${clamped}%` } as CSSProperties), ...style }}\n {...rest}\n >\n <span className={styles.fill} />\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Input/Input.module.css?mds-scoped\";\nexport default {\"input\":\"mds-Input__input\",\"size-sm\":\"mds-Input__size-sm\",\"size-md\":\"mds-Input__size-md\",\"size-lg\":\"mds-Input__size-lg\",\"iconWrap\":\"mds-Input__iconWrap\",\"icon\":\"mds-Input__icon\",\"iconLeft\":\"mds-Input__iconLeft\",\"iconRight\":\"mds-Input__iconRight\",\"with-icon-left\":\"mds-Input__with-icon-left\",\"with-icon-right\":\"mds-Input__with-icon-right\"};","import type { InputHTMLAttributes, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Input.module.css\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n size?: InputSize;\n /** Marks the value as failing validation — sets aria-invalid and the danger\n border. Inside a Field the field's error state does this already. */\n invalid?: boolean;\n /** Decorative icon inside the leading edge. Icons carry no name here —\n the input's label does the talking. */\n iconLeft?: ReactNode;\n /** Decorative icon inside the trailing edge. */\n iconRight?: ReactNode;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Single-line text input. Inside a Field it inherits id/description/invalid.\n *\n * ```tsx\n * <Field label=\"Name\">\n * <Input value={name} onChange={(e) => setName(e.target.value)} />\n * </Field>\n *\n * <Input aria-label=\"Search\" iconLeft={<Icon name=\"search\" />} />\n * ```\n */\nexport function Input({\n size = \"md\",\n invalid,\n iconLeft,\n iconRight,\n className,\n ...rest\n}: InputProps): ReactElement {\n const field = useFieldContext();\n const input = (\n <input\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? ((invalid ?? field?.invalid) || undefined)}\n className={cx(\n styles.input,\n styles[`size-${size}`],\n iconLeft != null && styles[\"with-icon-left\"],\n iconRight != null && styles[\"with-icon-right\"],\n className,\n )}\n {...rest}\n />\n );\n\n if (iconLeft == null && iconRight == null) return input;\n\n return (\n <span className={styles.iconWrap}>\n {input}\n {iconLeft != null && (\n <span className={cx(styles.icon, styles.iconLeft)} aria-hidden=\"true\">\n {iconLeft}\n </span>\n )}\n {iconRight != null && (\n <span className={cx(styles.icon, styles.iconRight)} aria-hidden=\"true\">\n {iconRight}\n </span>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-PasswordInput__wrap\",\"input\":\"mds-PasswordInput__input\",\"toggle\":\"mds-PasswordInput__toggle\"};","import { useState } from \"react\";\nimport type { ReactElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Input } from \"../Input/Input\";\nimport type { InputProps } from \"../Input/Input\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordInputProps = Omit<InputProps, \"type\">;\n\n/**\n * Password field with a reveal toggle. Composes Input, so inside a Field it\n * inherits id/description/invalid the same way.\n *\n * ```tsx\n * <Field label=\"Password\" hint=\"At least 12 characters\">\n * <PasswordInput autoComplete=\"new-password\" />\n * </Field>\n * ```\n */\nexport function PasswordInput({ className, ...rest }: PasswordInputProps): ReactElement {\n const [visible, setVisible] = useState(false);\n return (\n <span className={styles.wrap}>\n <Input {...rest} type={visible ? \"text\" : \"password\"} className={cx(styles.input, className)} />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n aria-pressed={visible}\n onClick={() => setVisible((v) => !v)}\n >\n {visible ? (\n /* eye-off */\n <svg viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <path d=\"M14.12 14.12a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n /* eye */\n <svg viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Textarea/Textarea.module.css?mds-scoped\";\nexport default {\"textarea\":\"mds-Textarea__textarea\",\"wrap\":\"mds-Textarea__wrap\",\"count\":\"mds-Textarea__count\"};","import { useState } from \"react\";\nimport type { ChangeEvent, ReactElement, Ref, TextareaHTMLAttributes } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { useFieldContext } from \"../Field/Field\";\nimport styles from \"./Textarea.module.css\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** Character counter under the control; pairs with native maxLength. */\n showCount?: boolean;\n ref?: Ref<HTMLTextAreaElement>;\n}\n\n/**\n * Multi-line text input. Inside a Field it inherits id/description/invalid.\n *\n * ```tsx\n * <Field label=\"Bio\">\n * <Textarea maxLength={160} showCount />\n * </Field>\n * ```\n */\nexport function Textarea({ rows = 3, showCount = false, className, ...rest }: TextareaProps): ReactElement {\n const field = useFieldContext();\n const [tracked, setTracked] = useState(() => String(rest.defaultValue ?? \"\"));\n const current = rest.value !== undefined ? String(rest.value) : tracked;\n\n const onChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setTracked(event.target.value);\n rest.onChange?.(event);\n };\n\n const textarea = (\n <textarea\n id={rest.id ?? field?.id}\n aria-describedby={rest[\"aria-describedby\"] ?? field?.describedBy}\n aria-invalid={rest[\"aria-invalid\"] ?? (field?.invalid || undefined)}\n rows={rows}\n className={cx(styles.textarea, className)}\n {...rest}\n {...(showCount ? { onChange } : {})}\n />\n );\n\n if (!showCount) return textarea;\n return (\n <span className={styles.wrap}>\n {textarea}\n <span className={styles.count} aria-hidden=\"true\">\n {rest.maxLength !== undefined ? `${current.length}/${rest.maxLength}` : current.length}\n </span>\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Checkbox__root\",\"box\":\"mds-Checkbox__box\",\"label\":\"mds-Checkbox__label\"};","import type { InputHTMLAttributes, ReactElement, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Checkbox.module.css\";\n\nexport interface CheckboxProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Inline label — part of the click target. Rich content welcome (an\n inline link, a Text run); the label element names the box either way. */\n label: ReactNode;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Native checkbox, styled box. Label is the touch target too.\n *\n * ```tsx\n * <Checkbox label=\"Remember me\" defaultChecked />\n * <Checkbox\n * label=\"Accept terms\"\n * checked={accepted}\n * onChange={(e) => setAccepted(e.target.checked)}\n * />\n * ```\n */\nexport function Checkbox({ label, className, ...rest }: CheckboxProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <input type=\"checkbox\" className={styles.box} {...rest} />\n <span className={styles.label}>{label}</span>\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Radio__root\",\"dot\":\"mds-Radio__dot\",\"label\":\"mds-Radio__label\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Radio.module.css\";\n\nexport interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Inline label — part of the click target. */\n label: string;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Native radio, styled dot. Group by `name`; wrap the group in\n * `<fieldset>`/`<legend>` for a group label.\n *\n * ```tsx\n * <fieldset>\n * <legend>Plan</legend>\n * <Radio name=\"plan\" label=\"Free\" checked={plan === \"free\"} onChange={() => setPlan(\"free\")} />\n * <Radio name=\"plan\" label=\"Pro\" checked={plan === \"pro\"} onChange={() => setPlan(\"pro\")} />\n * </fieldset>\n * ```\n */\nexport function Radio({ label, className, ...rest }: RadioProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <input type=\"radio\" className={styles.dot} {...rest} />\n <span className={styles.label}>{label}</span>\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped\";\nexport default {\"root\":\"mds-Switch__root\",\"track\":\"mds-Switch__track\",\"trackWrap\":\"mds-Switch__trackWrap\",\"spinner\":\"mds-Switch__spinner\",\"label\":\"mds-Switch__label\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport styles from \"./Switch.module.css\";\n\ninterface SwitchBaseProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n /** Busy blocks toggling for the same reason disabled does — a second tap\n would queue a write against a value the first one is still deciding. */\n loading?: boolean;\n ref?: Ref<HTMLInputElement>;\n}\n\n/* A switch with no words beside it still needs a name — a row whose title\n already labels it, a column under one header. The type demands it. */\ntype SwitchLabelEnforcement =\n | { /** Inline label — part of the click target. */ label: string }\n | { label?: undefined; \"aria-label\": string };\n\nexport type SwitchProps = SwitchBaseProps & SwitchLabelEnforcement;\n\n/**\n * On/off toggle. Checkbox under the hood with role=\"switch\" — native\n * semantics and forms integration, switch announcement.\n *\n * ```tsx\n * <Switch\n * label=\"Notifications\"\n * checked={enabled}\n * onChange={(e) => setEnabled(e.target.checked)}\n * />\n * <Switch aria-label=\"Email on new posts\" checked={on} loading={saving} onChange={toggle} />\n * ```\n */\nexport function Switch({\n label,\n loading = false,\n disabled = false,\n className,\n ...rest\n}: SwitchProps): ReactElement {\n return (\n <label className={cx(styles.root, className)}>\n <span className={styles.trackWrap}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n className={styles.track}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n {...rest}\n />\n {/* Purely visual — aria-busy on the input carries the state. */}\n {loading && (\n <Spinner size={12} label=\"\" aria-hidden=\"true\" className={styles.spinner} />\n )}\n </span>\n {label !== undefined && <span className={styles.label}>{label}</span>}\n </label>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped\";\nexport default {\"group\":\"mds-SegmentedControl__group\",\"segment\":\"mds-SegmentedControl__segment\",\"fullWidth\":\"mds-SegmentedControl__fullWidth\",\"face\":\"mds-SegmentedControl__face\",\"input\":\"mds-SegmentedControl__input\"};","import type { ReactElement } from \"react\";\nimport { useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./SegmentedControl.module.css\";\n\nexport interface SegmentOption<T extends string = string> {\n value: T;\n label: string;\n}\n\nexport interface SegmentedControlProps<T extends string = string> {\n /** Accessible group name. */\n label: string;\n options: readonly SegmentOption<T>[];\n value: T;\n onChange: (value: T) => void;\n /** Disables the whole control — e.g. a choice locked while editing. */\n disabled?: boolean;\n /** Stretch across the container, segments sharing the width equally —\n the usual shape when the control heads a screen-wide view switch. */\n fullWidth?: boolean;\n className?: string;\n}\n\n/**\n * Exclusive choice among few visible options. Native radios under the hood —\n * free keyboard model and semantics.\n *\n * ```tsx\n * <SegmentedControl\n * label=\"View\"\n * options={[\n * { value: \"list\", label: \"List\" },\n * { value: \"grid\", label: \"Grid\" },\n * ]}\n * value={view}\n * onChange={setView}\n * />\n * ```\n */\nexport function SegmentedControl<T extends string = string>({\n label,\n options,\n value,\n onChange,\n disabled = false,\n fullWidth = false,\n className,\n}: SegmentedControlProps<T>): ReactElement {\n const name = useId();\n return (\n <div role=\"radiogroup\" aria-label={label} className={cx(styles.group, fullWidth && styles.fullWidth, className)}>\n {options.map((option) => (\n <label key={option.value} className={styles.segment}>\n <input\n type=\"radio\"\n name={name}\n value={option.value}\n checked={option.value === value}\n onChange={() => onChange(option.value)}\n disabled={disabled}\n className={styles.input}\n />\n <span className={styles.face}>{option.label}</span>\n </label>\n ))}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped\";\nexport default {\"wrap\":\"mds-SearchField__wrap\",\"glass\":\"mds-SearchField__glass\",\"input\":\"mds-SearchField__input\",\"clear\":\"mds-SearchField__clear\",\"clearGlyph\":\"mds-SearchField__clearGlyph\"};","import type { InputHTMLAttributes, ReactElement, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./SearchField.module.css\";\n\nexport interface SearchFieldProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\" | \"value\" | \"onChange\"> {\n /** Accessible name. */\n label: string;\n value: string;\n /** Receives the new text — \"\" when cleared. */\n onChange: (value: string) => void;\n ref?: Ref<HTMLInputElement>;\n}\n\n/**\n * Controlled search input with a clear affordance once there is text.\n *\n * ```tsx\n * <SearchField label=\"Search sessions\" value={query} onChange={setQuery} />\n * ```\n */\nexport function SearchField({ label, value, onChange, className, ...rest }: SearchFieldProps): ReactElement {\n return (\n <span className={cx(styles.wrap, className)}>\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.glass}>\n <path\n d=\"M7 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm7 2-3.5-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n <input\n type=\"search\"\n aria-label={label}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n className={styles.input}\n {...rest}\n />\n {value !== \"\" && (\n <button\n type=\"button\"\n aria-label=\"Clear search\"\n className={styles.clear}\n onClick={() => onChange(\"\")}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.clearGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </span>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped\";\nexport default {\"group\":\"mds-List__group\",\"labelledGroup\":\"mds-List__labelledGroup\",\"label\":\"mds-List__label\",\"item\":\"mds-List__item\",\"surface-card\":\"mds-List__surface-card\",\"surface-sunken\":\"mds-List__surface-sunken\",\"surface-accent\":\"mds-List__surface-accent\",\"surface-plain\":\"mds-List__surface-plain\",\"row\":\"mds-List__row\",\"interactive\":\"mds-List__interactive\",\"leading\":\"mds-List__leading\",\"trailing\":\"mds-List__trailing\",\"text\":\"mds-List__text\",\"title\":\"mds-List__title\",\"description\":\"mds-List__description\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { createContext, useContext, useId } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./List.module.css\";\n\n/* Tells an item whether a group is painting the card around it. */\nconst ListGroupContext = createContext(false);\n\nexport interface ListGroupProps extends HTMLAttributes<HTMLUListElement> {\n children: ReactNode;\n /** Heading over the group. Also names the list to a screen reader. */\n label?: ReactNode;\n}\n\n/**\n * Card-styled list container for ListItems.\n *\n * ```tsx\n * <ListGroup label=\"Account\">\n * <ListItem\n * title=\"Profile\"\n * description=\"Name, avatar\"\n * leading={<Icon name=\"user\" />}\n * href=\"/profile\"\n * />\n * <ListItem title=\"Log out\" onClick={logout} />\n * </ListGroup>\n * ```\n */\nexport function ListGroup({ label, className, ...rest }: ListGroupProps): ReactElement {\n const headingId = useId();\n\n const list = (\n <ListGroupContext.Provider value={true}>\n <ul\n className={cx(styles.group, className)}\n aria-labelledby={label != null ? headingId : undefined}\n {...rest}\n />\n </ListGroupContext.Provider>\n );\n\n if (label == null) return list;\n return (\n <div className={styles.labelledGroup}>\n <span className={styles.label} id={headingId}>\n {label}\n </span>\n {list}\n </div>\n );\n}\n\nexport type ListItemSurface = \"card\" | \"sunken\" | \"accent\" | \"plain\";\n\nexport interface ListItemProps extends Omit<HTMLAttributes<HTMLElement>, \"title\" | \"onClick\"> {\n title: ReactNode;\n description?: ReactNode;\n /** Slot before the text — Avatar, Icon, … */\n leading?: ReactNode;\n /** Slot after the text — Badge, chevron, … */\n trailing?: ReactNode;\n /** Makes the whole row a button. */\n onClick?: () => void;\n /** Marks an onClick row as a toggle — a picker row that selects rather than\n navigates. Lands as aria-pressed on the row button itself, where the\n screen reader's focus is. Leave unset for rows that navigate. */\n pressed?: boolean;\n /** Makes the whole row a link. Wins over onClick. */\n href?: string;\n /** What the row paints behind itself. Inside a ListGroup the group is the\n card, so grouped rows default to painting nothing; standalone rows\n default to their own card. `accent` is the tinted, accent-edged prompt\n row. The row paints it itself because a background drawn by a wrapper\n brings its own corner radius, which peeks past the row's in all four\n corners. */\n surface?: ListItemSurface;\n}\n\n/**\n * One row. Static by default; interactive as one whole-row button/link.\n * An `<li>` inside a ListGroup, a standalone `<div>` row anywhere else.\n */\nexport function ListItem({\n title,\n description,\n leading,\n trailing,\n onClick,\n pressed,\n href,\n surface,\n className,\n ...rest\n}: ListItemProps): ReactElement {\n const inGroup = useContext(ListGroupContext);\n const Root = inGroup ? \"li\" : \"div\";\n // Grouped rows paint nothing unless told otherwise; standalone rows carry\n // their own card.\n const resolved = surface ?? (inGroup ? undefined : \"card\");\n\n const content = (\n <>\n {leading != null && <span className={styles.leading}>{leading}</span>}\n <span className={styles.text}>\n <span className={styles.title}>{title}</span>\n {description != null && <span className={styles.description}>{description}</span>}\n </span>\n {trailing != null && <span className={styles.trailing}>{trailing}</span>}\n </>\n );\n\n return (\n <Root\n className={cx(styles.item, resolved && styles[`surface-${resolved}`], className)}\n {...rest}\n >\n {href !== undefined ? (\n <a className={cx(styles.row, styles.interactive)} href={href}>\n {content}\n </a>\n ) : onClick !== undefined ? (\n <button\n type=\"button\"\n className={cx(styles.row, styles.interactive)}\n onClick={onClick}\n aria-pressed={pressed}\n >\n {content}\n </button>\n ) : (\n <span className={styles.row}>{content}</span>\n )}\n </Root>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/EmptyState/EmptyState.module.css?mds-scoped\";\nexport default {\"root\":\"mds-EmptyState__root\",\"icon\":\"mds-EmptyState__icon\",\"action\":\"mds-EmptyState__action\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport { Heading } from \"../Heading/Heading\";\nimport { Text } from \"../Text/Text\";\nimport styles from \"./EmptyState.module.css\";\n\nexport interface EmptyStateProps {\n title: string;\n description?: string;\n /** Illustration or Icon slot. */\n icon?: ReactNode;\n /** Usually a Button. */\n action?: ReactNode;\n className?: string;\n}\n\n/**\n * Nothing-here view: explains the empty screen and offers the next step.\n *\n * ```tsx\n * <EmptyState\n * icon={<Icon name=\"inbox\" size=\"lg\" />}\n * title=\"No sessions yet\"\n * description=\"Create your first session to get started.\"\n * action={<Button onClick={create}>New session</Button>}\n * />\n * ```\n */\nexport function EmptyState({ title, description, icon, action, className }: EmptyStateProps): ReactElement {\n return (\n <div className={cx(styles.root, className)}>\n {icon != null && (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <Heading level={3}>{title}</Heading>\n {description !== undefined && <Text tone=\"secondary\">{description}</Text>}\n {action != null && <span className={styles.action}>{action}</span>}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tabs/Tabs.module.css?mds-scoped\";\nexport default {\"list\":\"mds-Tabs__list\",\"tab\":\"mds-Tabs__tab\",\"selected\":\"mds-Tabs__selected\",\"panel\":\"mds-Tabs__panel\"};","import type { ButtonHTMLAttributes, HTMLAttributes, KeyboardEvent, ReactElement, ReactNode } from \"react\";\nimport { createContext, useCallback, useContext, useEffect, useId, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Tabs.module.css\";\n\ninterface TabsContextValue {\n value: string;\n onChange: (value: string) => void;\n baseId: string;\n /** Values whose TabPanel is currently mounted. A tab only claims\n * aria-controls over a panel that exists — the strip is also used as a\n * filter over one shared region, where there are no panels at all. */\n panels: ReadonlySet<string>;\n registerPanel: (value: string) => () => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabs(component: string): TabsContextValue {\n const context = useContext(TabsContext);\n if (context === null) throw new Error(`${component} must sit inside <Tabs>`);\n return context;\n}\n\nexport interface TabsProps {\n value: string;\n onChange: (value: string) => void;\n children: ReactNode;\n}\n\n/**\n * Controlled tabs root. Compose with TabList, Tab, TabPanel.\n *\n * ```tsx\n * <Tabs value={tab} onChange={setTab}>\n * <TabList label=\"Session details\">\n * <Tab value=\"info\">Info</Tab>\n * <Tab value=\"notes\">Notes</Tab>\n * </TabList>\n * <TabPanel value=\"info\">…</TabPanel>\n * <TabPanel value=\"notes\">…</TabPanel>\n * </Tabs>\n * ```\n */\nexport function Tabs({ value, onChange, children }: TabsProps): ReactElement {\n const baseId = useId();\n const [panels, setPanels] = useState<ReadonlySet<string>>(new Set());\n const registerPanel = useCallback((panel: string) => {\n setPanels((prev) => new Set(prev).add(panel));\n return () => {\n setPanels((prev) => {\n const next = new Set(prev);\n next.delete(panel);\n return next;\n });\n };\n }, []);\n return (\n <TabsContext.Provider value={{ value, onChange, baseId, panels, registerPanel }}>\n {children}\n </TabsContext.Provider>\n );\n}\n\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n /** Accessible name for the tab set. */\n label: string;\n children: ReactNode;\n}\n\n/* Selection follows focus (WAI-APG \"automatic activation\") — panels here are\n local content, not expensive loads. */\nfunction onArrow(event: KeyboardEvent<HTMLDivElement>, onChange: (v: string) => void): void {\n const keys = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n if (!keys.includes(event.key)) return;\n const tabs = [...event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]')];\n const current = tabs.findIndex((tab) => tab === document.activeElement);\n if (current === -1) return;\n event.preventDefault();\n const next =\n event.key === \"Home\"\n ? 0\n : event.key === \"End\"\n ? tabs.length - 1\n : (current + (event.key === \"ArrowRight\" ? 1 : -1) + tabs.length) % tabs.length;\n const tab = tabs[next];\n if (!tab) return;\n tab.focus();\n const value = tab.dataset.value;\n if (value !== undefined) onChange(value);\n}\n\nexport function TabList({ label, className, children, ...rest }: TabListProps): ReactElement {\n const { onChange } = useTabs(\"TabList\");\n return (\n <div\n role=\"tablist\"\n aria-label={label}\n className={cx(styles.list, className)}\n onKeyDown={(event) => onArrow(event, onChange)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface TabProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"type\"> {\n value: string;\n children: ReactNode;\n}\n\nexport function Tab({ value, className, children, ...rest }: TabProps): ReactElement {\n const tabs = useTabs(\"Tab\");\n const selected = tabs.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n id={`${tabs.baseId}-tab-${value}`}\n aria-selected={selected}\n aria-controls={tabs.panels.has(value) ? `${tabs.baseId}-panel-${value}` : undefined}\n tabIndex={selected ? 0 : -1}\n data-value={value}\n className={cx(styles.tab, selected && styles.selected, className)}\n onClick={() => tabs.onChange(value)}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n value: string;\n children: ReactNode;\n}\n\nexport function TabPanel({ value, className, children, ...rest }: TabPanelProps): ReactElement {\n const tabs = useTabs(\"TabPanel\");\n const selected = tabs.value === value;\n const { registerPanel } = tabs;\n useEffect(() => registerPanel(value), [registerPanel, value]);\n return (\n <div\n role=\"tabpanel\"\n id={`${tabs.baseId}-panel-${value}`}\n aria-labelledby={`${tabs.baseId}-tab-${value}`}\n hidden={!selected}\n className={cx(styles.panel, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped\";\nexport default {\"viewport\":\"mds-Toast__viewport\",\"toast\":\"mds-Toast__toast\",\"tone-success\":\"mds-Toast__tone-success\",\"tone-danger\":\"mds-Toast__tone-danger\",\"body\":\"mds-Toast__body\",\"title\":\"mds-Toast__title\",\"description\":\"mds-Toast__description\",\"close\":\"mds-Toast__close\",\"closeGlyph\":\"mds-Toast__closeGlyph\"};","import type { ReactElement, ReactNode } from \"react\";\nimport { createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Toast.module.css\";\n\nexport type ToastTone = \"neutral\" | \"success\" | \"danger\";\n\nexport interface ToastOptions {\n title: string;\n description?: string | undefined;\n tone?: ToastTone | undefined;\n /** ms until auto-dismiss. 0 = stays until dismissed. Default 5000. */\n duration?: number | undefined;\n}\n\ninterface ToastEntry extends Required<Pick<ToastOptions, \"title\" | \"tone\">> {\n id: number;\n description: string | undefined;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const context = useContext(ToastContext);\n if (context === null) throw new Error(\"useToast needs a <ToastProvider> above it\");\n return context;\n}\n\nexport interface ToastProviderProps {\n children: ReactNode;\n /** Accessible name of the notification region (localise). Default \"Notifications\". */\n regionLabel?: string | undefined;\n /** Prefix of each dismiss button's accessible name (localise). The toast's\n * title follows it, so every dismiss control names its own toast. Default\n * \"Dismiss\" — a button labelled \"Dismiss: Saved\". */\n dismissLabel?: string | undefined;\n}\n\n/**\n * Mount once near the root. Renders the notification region itself.\n *\n * ```tsx\n * // App root\n * <ToastProvider>\n * <App />\n * </ToastProvider>\n *\n * // Anywhere below\n * const { toast } = useToast();\n * toast({ title: \"Saved\", tone: \"success\" });\n * ```\n */\nexport function ToastProvider({\n children,\n regionLabel = \"Notifications\",\n dismissLabel = \"Dismiss\",\n}: ToastProviderProps): ReactElement {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const nextId = useRef(1);\n\n const dismiss = useCallback((id: number) => {\n setToasts((current) => current.filter((entry) => entry.id !== id));\n }, []);\n\n const toast = useCallback(\n ({ title, description, tone = \"neutral\", duration = 5000 }: ToastOptions) => {\n const id = nextId.current++;\n setToasts((current) => [...current, { id, title, description, tone }]);\n if (duration > 0) setTimeout(() => dismiss(id), duration);\n return id;\n },\n [dismiss],\n );\n\n const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <div role=\"region\" aria-label={regionLabel} className={styles.viewport}>\n {toasts.map((entry) => (\n <div key={entry.id} role=\"status\" className={cx(styles.toast, styles[`tone-${entry.tone}`])}>\n <span className={styles.body}>\n <span className={styles.title}>{entry.title}</span>\n {entry.description !== undefined && (\n <span className={styles.description}>{entry.description}</span>\n )}\n </span>\n <button\n type=\"button\"\n aria-label={`${dismissLabel}: ${entry.title}`}\n className={styles.close}\n onClick={() => dismiss(entry.id)}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className={styles.closeGlyph}>\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Stack/Stack.module.css?mds-scoped\";\nexport default {\"stack\":\"mds-Stack__stack\",\"gap-hairline\":\"mds-Stack__gap-hairline\",\"gap-tight\":\"mds-Stack__gap-tight\",\"gap-base\":\"mds-Stack__gap-base\",\"gap-loose\":\"mds-Stack__gap-loose\",\"gap-section\":\"mds-Stack__gap-section\",\"align-start\":\"mds-Stack__align-start\",\"align-center\":\"mds-Stack__align-center\",\"align-end\":\"mds-Stack__align-end\",\"align-stretch\":\"mds-Stack__align-stretch\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Stack.module.css\";\n\nexport type StackGap = \"hairline\" | \"tight\" | \"base\" | \"loose\" | \"section\";\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\";\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n /** Space between children, on the gap scale. Default \"base\". */\n gap?: StackGap;\n /** Cross-axis alignment. Default \"stretch\". */\n align?: StackAlign;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Vertical flow. The parent owns spacing between siblings via gap —\n * children carry no outer margins. Token-bounded on purpose: no arbitrary\n * lengths, no style prop.\n *\n * ```tsx\n * <Stack gap=\"base\">\n * <Heading level={2}>Profile</Heading>\n * <Text tone=\"secondary\">Public information</Text>\n * </Stack>\n * ```\n */\nexport function Stack({\n gap = \"base\",\n align = \"stretch\",\n as = \"div\",\n className,\n ...rest\n}: StackProps): ReactElement {\n return createElement(as, {\n className: cx(styles.stack, styles[`gap-${gap}`], styles[`align-${align}`], className),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Inline/Inline.module.css?mds-scoped\";\nexport default {\"inline\":\"mds-Inline__inline\",\"gap-hairline\":\"mds-Inline__gap-hairline\",\"gap-tight\":\"mds-Inline__gap-tight\",\"gap-base\":\"mds-Inline__gap-base\",\"gap-loose\":\"mds-Inline__gap-loose\",\"align-start\":\"mds-Inline__align-start\",\"align-center\":\"mds-Inline__align-center\",\"align-end\":\"mds-Inline__align-end\",\"align-baseline\":\"mds-Inline__align-baseline\",\"justify-start\":\"mds-Inline__justify-start\",\"justify-center\":\"mds-Inline__justify-center\",\"justify-end\":\"mds-Inline__justify-end\",\"justify-between\":\"mds-Inline__justify-between\",\"wrap\":\"mds-Inline__wrap\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Inline.module.css\";\n\nexport type InlineGap = \"hairline\" | \"tight\" | \"base\" | \"loose\";\nexport type InlineAlign = \"start\" | \"center\" | \"end\" | \"baseline\";\nexport type InlineJustify = \"start\" | \"center\" | \"end\" | \"between\";\n\nexport interface InlineProps extends HTMLAttributes<HTMLElement> {\n /** Space between children, on the gap scale. Default \"base\". */\n gap?: InlineGap;\n /** Cross-axis alignment. Default \"center\". */\n align?: InlineAlign;\n /** Main-axis distribution. Default \"start\". */\n justify?: InlineJustify;\n /** Allow wrapping onto new lines. */\n wrap?: boolean;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Horizontal flow — Stack's row twin. Same token-bounded contract.\n *\n * ```tsx\n * <Inline gap=\"tight\" align=\"center\" justify=\"between\">\n * <Text variant=\"label\">Total</Text>\n * <Text>42</Text>\n * </Inline>\n * ```\n */\nexport function Inline({\n gap = \"base\",\n align = \"center\",\n justify = \"start\",\n wrap = false,\n as = \"div\",\n className,\n ...rest\n}: InlineProps): ReactElement {\n return createElement(as, {\n className: cx(\n styles.inline,\n styles[`gap-${gap}`],\n styles[`align-${align}`],\n styles[`justify-${justify}`],\n wrap && styles.wrap,\n className,\n ),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Container/Container.module.css?mds-scoped\";\nexport default {\"container\":\"mds-Container__container\",\"width-content\":\"mds-Container__width-content\",\"width-wide\":\"mds-Container__width-wide\"};","import type { ElementType, HTMLAttributes, ReactElement } from \"react\";\nimport { createElement } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Container.module.css\";\n\nexport type ContainerWidth = \"content\" | \"wide\";\n\nexport interface ContainerProps extends HTMLAttributes<HTMLElement> {\n /** content = reading column, wide = desktop shell. Default \"content\". */\n width?: ContainerWidth;\n /** Element to render. Default div. */\n as?: ElementType;\n}\n\n/**\n * Centered max-width column with page-edge padding.\n *\n * ```tsx\n * <Container>\n * <Stack gap=\"section\">…</Stack>\n * </Container>\n * ```\n */\nexport function Container({\n width = \"content\",\n as = \"div\",\n className,\n ...rest\n}: ContainerProps): ReactElement {\n return createElement(as, {\n className: cx(styles.container, styles[`width-${width}`], className),\n ...rest,\n });\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped\";\nexport default {\"card\":\"mds-Card__card\",\"variant-raised\":\"mds-Card__variant-raised\",\"variant-sunken\":\"mds-Card__variant-sunken\",\"emphasis\":\"mds-Card__emphasis\",\"interactive\":\"mds-Card__interactive\",\"header\":\"mds-Card__header\",\"body\":\"mds-Card__body\",\"footer\":\"mds-Card__footer\"};","import type { HTMLAttributes, ReactElement, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Card.module.css\";\n\nexport type CardVariant = \"card\" | \"raised\" | \"sunken\";\n\nexport interface CardProps extends Omit<HTMLAttributes<HTMLElement>, \"onClick\"> {\n children: ReactNode;\n /** card = flat on border, raised = elevated, sunken = recessed fill for\n secondary tiles. Default \"card\". */\n variant?: CardVariant;\n /** Accent border — marks the card out from its neighbours (a pinned post,\n the active choice) without changing its surface. */\n emphasis?: boolean;\n /** Makes the whole card a button. */\n onClick?: () => void;\n /** Makes the whole card a link. Wins over onClick. */\n href?: string;\n}\n\n/**\n * Surface container. Compose with CardHeader/CardBody/CardFooter — the card\n * owns internal spacing, sections own their content.\n *\n * ```tsx\n * <Card>\n * <CardHeader><Heading level={3}>Next session</Heading></CardHeader>\n * <CardBody><Text>Tomorrow, 19:00</Text></CardBody>\n * <CardFooter><Button size=\"sm\">Join</Button></CardFooter>\n * </Card>\n *\n * <Card href=\"/items/42\" variant=\"flat\">…</Card>\n * ```\n */\nexport function Card({ children, variant = \"card\", emphasis = false, onClick, href, className, ...rest }: CardProps): ReactElement {\n const cardClass = cx(styles.card, styles[`variant-${variant}`], emphasis && styles.emphasis, className);\n\n if (href !== undefined) {\n return (\n <a className={cx(cardClass, styles.interactive)} href={href} {...rest}>\n {children}\n </a>\n );\n }\n if (onClick !== undefined) {\n return (\n <button type=\"button\" className={cx(cardClass, styles.interactive)} onClick={onClick} {...rest}>\n {children}\n </button>\n );\n }\n return (\n <div className={cardClass} {...rest}>\n {children}\n </div>\n );\n}\n\nexport type CardSectionProps = HTMLAttributes<HTMLDivElement>;\n\n/** Top slot — title row, media, tabs. */\nexport function CardHeader({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.header, className)} {...rest} />;\n}\n\n/** Main content slot. */\nexport function CardBody({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.body, className)} {...rest} />;\n}\n\n/** Bottom slot — actions, meta. */\nexport function CardFooter({ className, ...rest }: CardSectionProps): ReactElement {\n return <div className={cx(styles.footer, className)} {...rest} />;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Modal/Modal.module.css?mds-scoped\";\nexport default {\"panel\":\"mds-Modal__panel\",\"header\":\"mds-Modal__header\",\"body\":\"mds-Modal__body\",\"footer\":\"mds-Modal__footer\"};","import type { ReactNode } from \"react\";\nimport { Overlay } from \"../Overlay/Overlay\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n /** Accessible name of the dialog. */\n label: string;\n /** Scrim click dismisses. Default true. */\n closeOnScrimClick?: boolean;\n /** alertdialog interrupts — ConfirmDialog sets it. Default \"dialog\". */\n role?: \"dialog\" | \"alertdialog\";\n children: ReactNode;\n}\n\n/**\n * Centered dialog. Escape, scrim click (`closeOnScrimClick`), and focus trap\n * are handled. Compose the sections:\n *\n * ```tsx\n * <Modal open={open} onClose={() => setOpen(false)} label=\"Edit session\">\n * <ModalHeader>Edit session</ModalHeader>\n * <ModalBody>…</ModalBody>\n * <ModalFooter><Button onClick={save}>Save</Button></ModalFooter>\n * </Modal>\n * ```\n */\nexport function Modal({ open, onClose, label, closeOnScrimClick = true, role = \"dialog\", children }: ModalProps) {\n return (\n <Overlay\n open={open}\n onClose={onClose}\n label={label}\n variant=\"modal\"\n role={role}\n closeOnScrimClick={closeOnScrimClick}\n panelClassName={styles.panel}\n >\n {children}\n </Overlay>\n );\n}\n\nexport function ModalHeader({ children }: { children: ReactNode }) {\n return <div className={styles.header}>{children}</div>;\n}\n\nexport function ModalBody({ children }: { children: ReactNode }) {\n return <div className={styles.body}>{children}</div>;\n}\n\nexport function ModalFooter({ children }: { children: ReactNode }) {\n return <div className={styles.footer}>{children}</div>;\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ConfirmDialog/ConfirmDialog.module.css?mds-scoped\";\nexport default {\"description\":\"mds-ConfirmDialog__description\",\"error\":\"mds-ConfirmDialog__error\"};","import type { ReactNode } from \"react\";\nimport { useState } from \"react\";\nimport { Button } from \"../Button/Button\";\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from \"../Modal/Modal\";\nimport styles from \"./ConfirmDialog.module.css\";\n\nexport type ConfirmDialogTone = \"default\" | \"danger\" | \"warning\";\n\nexport interface ConfirmDialogProps<T = void> {\n /** The row in question, or null when nothing is being asked. Held by the\n caller — only it knows which row was tapped — and handed back to\n `onConfirm`, so the action runs against the row the user actually saw. */\n target?: T | null;\n /** Defaults to \"there is a row in question\"; pass it directly for a\n one-off prompt that has no row. */\n open?: boolean;\n /** Cancel, or the action having landed. Clear the row here. */\n onClose?: () => void;\n /** The action, given the row it was asked about. Return the promise the\n write is riding on — typically `mutateAsync(...)` — and do not catch:\n a handled rejection resolves, and a resolved action is\n indistinguishable from a write that landed. Typed as a promise so\n fire-and-forget is a type error rather than a prompt that closes on\n the click. */\n onConfirm?: (target: T) => Promise<unknown>;\n /** Short question, e.g. \"Delete session?\" */\n title: string;\n /** Consequence explained in a sentence or two. */\n description?: ReactNode;\n confirmLabel: string;\n /** @default \"Cancel\" */\n cancelLabel?: string;\n /** Styles the confirm action: danger for destructive, warning for\n consequential-but-recoverable. */\n tone?: ConfirmDialogTone;\n /** How to phrase a failure, given the error's own message. Defaults to\n that message — supply this rather than catching inside `onConfirm`,\n so the copy stays with the caller. */\n errorMessage?: (message: string) => string;\n}\n\n/** What the panel is showing, the row included. Frozen at close so the exit\n animation still has a question to animate away after the caller has\n dropped what it was asking about. */\ninterface Shown<T> {\n target: T | null | undefined;\n title: string;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel: string;\n tone: ConfirmDialogTone;\n}\n\nconst CONFIRM_VARIANT = {\n default: \"primary\",\n danger: \"danger\",\n warning: \"warning\",\n} as const;\n\n/**\n * A binary confirm/cancel prompt for consequential actions. role=\"alertdialog\"\n * so assistive tech announces it and holds focus until the user decides.\n *\n * The prompt owns everything downstream of the tap: it stays busy until\n * `onConfirm` settles, closes only once the write has landed, and keeps\n * itself up with the reason shown if it fails. Callers supply the question,\n * not the mechanics.\n *\n * ```tsx\n * <ConfirmDialog\n * target={asked}\n * onClose={() => setAsked(null)}\n * onConfirm={(row) => remove.mutateAsync(row.id)}\n * title=\"Delete session?\"\n * description=\"This cannot be undone.\"\n * confirmLabel=\"Delete\"\n * tone=\"danger\"\n * />\n * ```\n */\nexport function ConfirmDialog<T = void>({\n target,\n open = target != null,\n onClose,\n onConfirm,\n title,\n description,\n confirmLabel,\n cancelLabel = \"Cancel\",\n tone = \"default\",\n errorMessage,\n}: ConfirmDialogProps<T>) {\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n // Each new question starts idle. Reset on the way in rather than on the\n // way out: on the way out the panel is still visible, and wiping the\n // spinner there restores the unanswered question for the length of the\n // exit animation. Render-phase adjust, the \"state from props\" pattern —\n // an effect would paint the stale frame first.\n const [prevOpen, setPrevOpen] = useState(open);\n if (open !== prevOpen) {\n setPrevOpen(open);\n if (open) {\n setBusy(false);\n setError(null);\n }\n }\n\n // While open, show the live props. Closing freezes them (in the close\n // handlers, where state writes are free) because the closing render's\n // props are already stale: the caller clears its row in the same set of\n // state updates that closes the prompt.\n const live: Shown<T> = { target, title, description, confirmLabel, cancelLabel, tone };\n const [frozen, setFrozen] = useState<Shown<T>>(live);\n const view = open ? live : frozen;\n\n const close = () => {\n setFrozen(live);\n onClose?.();\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) return;\n // Read the row now, at the tap, not after the await: by then the caller\n // has been told to close and has cleared it.\n const asked = live.target as T;\n setBusy(true);\n setError(null);\n try {\n await onConfirm(asked);\n // Only now: before this point the write may still fail, and a prompt\n // that has already closed has told the user something it doesn't know.\n close();\n } catch (e) {\n setBusy(false);\n const message = (e as Error).message;\n setError(errorMessage?.(message) ?? message);\n }\n };\n\n return (\n <Modal\n open={open}\n // Escape must always work — dropping onClose while busy would leave\n // the dialog with no keyboard exit (WCAG 2.1.2). The scrim stays\n // guarded regardless, so a stray click can't dismiss the question.\n onClose={close}\n label={view.title}\n role=\"alertdialog\"\n closeOnScrimClick={false}\n >\n <ModalHeader>{view.title}</ModalHeader>\n <ModalBody>\n {view.description != null ? <p className={styles.description}>{view.description}</p> : null}\n {error != null ? (\n <p role=\"alert\" className={styles.error}>\n {error}\n </p>\n ) : null}\n </ModalBody>\n <ModalFooter>\n {/* Stays enabled while busy so focus always has an operable home\n (only Confirm is locked, to block a double submit). */}\n <Button variant=\"secondary\" onClick={close}>\n {view.cancelLabel}\n </Button>\n <Button variant={CONFIRM_VARIANT[view.tone]} loading={busy} onClick={handleConfirm}>\n {view.confirmLabel}\n </Button>\n </ModalFooter>\n </Modal>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Screen/Screen.module.css?mds-scoped\";\nexport default {\"screen\":\"mds-Screen__screen\",\"content\":\"mds-Screen__content\",\"flush\":\"mds-Screen__flush\"};","import type { HTMLAttributes, ReactNode, Ref } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./Screen.module.css\";\n\n/**\n * Page scaffold. Compose:\n *\n * ```tsx\n * <Screen>\n * <AppBar title=\"Sessions\" />\n * <ScreenContent>…</ScreenContent>\n * <TabBar label=\"Primary\">…</TabBar>\n * </Screen>\n * ```\n *\n * Fills the height its host gives it — the app root, a device frame, a\n * `flex: 1; min-height: 0` slot — rather than claiming the viewport itself:\n * on iOS the software keyboard shrinks the visual viewport without shrinking\n * 100dvh, so only the host can know the real height. A standalone app gives\n * the root chain `height: 100%`.\n */\nexport function Screen({ children }: { children: ReactNode }) {\n return <div className={styles.screen}>{children}</div>;\n}\n\nexport interface ScreenContentProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n /** Drop the page gutter — full-bleed lists whose rows carry their own\n padding. Default keeps it: forms and prose want the margin. */\n flush?: boolean;\n /** The scrolling element. A screen that drives the scroll — restores an\n offset on back, pins a thread to the bottom — has no other way to reach\n it. Read it; restyling it is the sheet's job. */\n ref?: Ref<HTMLElement>;\n}\n\n/** The scrollable main region of a Screen. */\nexport function ScreenContent({ children, flush = false, className, ref, ...rest }: ScreenContentProps) {\n return (\n <main ref={ref} className={cx(styles.content, flush && styles.flush, className)} {...rest}>\n {children}\n </main>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-AppBar__bar\",\"title\":\"mds-AppBar__title\",\"text\":\"mds-AppBar__text\",\"subtitle\":\"mds-AppBar__subtitle\",\"slot\":\"mds-AppBar__slot\",\"trailing\":\"mds-AppBar__trailing\"};","import type { ReactNode } from \"react\";\nimport styles from \"./AppBar.module.css\";\n\nexport interface AppBarProps {\n /** Page heading — rendered as the h1. A node is allowed for titles that\n are themselves a control (e.g. a thread title that opens the event). */\n title?: ReactNode;\n /** Second line under the title — a member count, a status. Kept out of\n the h1 so the accessible page name stays just the title. */\n subtitle?: ReactNode;\n /** Left slot — typically a back icon-only Button. */\n leading?: ReactNode;\n /** Right slot — actions. */\n trailing?: ReactNode;\n}\n\n/**\n * Top app bar. Sticky, one per screen; the title is the page h1.\n *\n * ```tsx\n * <AppBar\n * title=\"Sessions\"\n * trailing={\n * <Button iconOnly aria-label=\"Settings\" variant=\"ghost\" onClick={openSettings}>\n * <Icon name=\"settings\" />\n * </Button>\n * }\n * />\n * ```\n */\nexport function AppBar({ title, subtitle, leading, trailing }: AppBarProps) {\n const heading = title ? <h1 className={styles.title}>{title}</h1> : null;\n return (\n <header className={styles.bar}>\n {leading ? <div className={styles.slot}>{leading}</div> : null}\n {subtitle != null ? (\n <div className={styles.text}>\n {heading}\n <div className={styles.subtitle}>{subtitle}</div>\n </div>\n ) : (\n heading\n )}\n {trailing ? <div className={`${styles.slot} ${styles.trailing}`}>{trailing}</div> : null}\n </header>\n );\n}\n","import \"mds-css:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/TabBar/TabBar.module.css?mds-scoped\";\nexport default {\"bar\":\"mds-TabBar__bar\",\"item\":\"mds-TabBar__item\",\"active\":\"mds-TabBar__active\",\"icon\":\"mds-TabBar__icon\",\"badge\":\"mds-TabBar__badge\",\"label\":\"mds-TabBar__label\",\"action\":\"mds-TabBar__action\"};","import type { MouseEventHandler, ReactNode } from \"react\";\nimport { cx } from \"../../internal/cx\";\nimport styles from \"./TabBar.module.css\";\n\nexport interface TabBarProps {\n /** Accessible name of the navigation landmark. */\n label: string;\n children: ReactNode;\n}\n\n/**\n * Bottom navigation. Items are links (or buttons for non-route actions);\n * they stay in the natural tab order — roving focus is for composite\n * widgets, not navigation landmarks.\n *\n * ```tsx\n * <TabBar label=\"Primary\">\n * <TabBarItem label=\"Home\" icon={<Icon name=\"home\" />} href=\"/\" active />\n * <TabBarItem label=\"Search\" icon={<Icon name=\"search\" />} href=\"/search\" />\n * </TabBar>\n * ```\n */\nexport function TabBar({ label, children }: TabBarProps) {\n return (\n <nav aria-label={label} className={styles.bar}>\n {children}\n </nav>\n );\n}\n\nexport interface TabBarItemProps {\n label: string;\n icon: ReactNode;\n href?: string | undefined;\n onClick?: MouseEventHandler | undefined;\n active?: boolean | undefined;\n /** Attention dot on the icon — unread, pending. Boolean only: the count\n lives on the destination screen, the bar just says \"something's there\". */\n badge?: boolean | undefined;\n}\n\nexport function TabBarItem({ label, icon, href, onClick, active = false, badge = false }: TabBarItemProps) {\n const className = cx(styles.item, active && styles.active);\n const content = (\n <>\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n {badge ? <span className={styles.badge} data-testid=\"mds-tabbar-badge\" /> : null}\n </span>\n <span className={styles.label}>{label}</span>\n </>\n );\n if (href !== undefined) {\n return (\n <a href={href} className={className} aria-current={active ? \"page\" : undefined} onClick={onClick}>\n {content}\n </a>\n );\n }\n return (\n <button type=\"button\" className={className} aria-current={active ? \"page\" : undefined} onClick={onClick}>\n {content}\n </button>\n );\n}\n\nexport interface TabBarActionProps {\n /** Names the action — icon-only, so this is all a screen reader gets. */\n label: string;\n icon: ReactNode;\n onClick?: MouseEventHandler | undefined;\n}\n\n/** Raised center action (a create button). Place it between the item halves:\n it is a peer child, and the bar's flex layout leaves it its own width. */\nexport function TabBarAction({ label, icon, onClick }: TabBarActionProps) {\n return (\n <button type=\"button\" aria-label={label} className={styles.action} onClick={onClick}>\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n </button>\n );\n}\n","import type { KeyboardEvent, RefObject } from \"react\";\nimport { useCallback } from \"react\";\n\nexport interface RovingGroupOptions {\n /** Selector for the focusable items inside the container. */\n selector: string;\n /** Arrow axis. Default \"horizontal\". */\n orientation?: \"horizontal\" | \"vertical\" | \"both\";\n}\n\n/**\n * Arrow-key focus movement for composite widgets (toolbars, menus, tab bars).\n * Wraps at the edges; Home/End jump. Returns a keydown handler for the\n * container.\n */\nexport function useRovingGroup(\n ref: RefObject<HTMLElement | null>,\n { selector, orientation = \"horizontal\" }: RovingGroupOptions,\n): (event: KeyboardEvent<HTMLElement>) => void {\n return useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const horizontal = orientation !== \"vertical\";\n const vertical = orientation !== \"horizontal\";\n const forward = (horizontal && event.key === \"ArrowRight\") || (vertical && event.key === \"ArrowDown\");\n const backward = (horizontal && event.key === \"ArrowLeft\") || (vertical && event.key === \"ArrowUp\");\n const home = event.key === \"Home\";\n const end = event.key === \"End\";\n if (!forward && !backward && !home && !end) return;\n\n const container = ref.current;\n if (container === null) return;\n const items = [...container.querySelectorAll<HTMLElement>(selector)].filter(\n (item) => !item.hasAttribute(\"disabled\"),\n );\n const current = items.indexOf(document.activeElement as HTMLElement);\n if (items.length === 0 || current === -1) return;\n\n event.preventDefault();\n const next = home\n ? 0\n : end\n ? items.length - 1\n : (current + (forward ? 1 : -1) + items.length) % items.length;\n items[next]?.focus();\n },\n [ref, selector, orientation],\n );\n}\n"]}
|