@duro-app/ui 0.17.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/react-strict-dom@0.0.55_postcss@8.5.6_react-dom@19.2.4_react@19.2.4__react-native@0.84._1278be21509893d955b57d0db9435779/node_modules/react-strict-dom/dist/web/runtime.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-compiler-runtime.production.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-compiler-runtime.development.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/compiler-runtime.js","../../tokens/src/themes/light.css.ts","../../tokens/src/themes/high-contrast.css.ts","../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/ActionBar/styles.css.ts","../src/components/ActionBar/ActionBar.tsx","../src/components/Icon/Icon.tsx","../src/components/Alert/styles.css.ts","../src/components/Alert/Alert.tsx","../src/components/Badge/styles.css.ts","../src/components/Badge/Badge.tsx","../src/components/Button/styles.css.ts","../src/components/Button/Button.tsx","../src/components/Callout/styles.css.ts","../src/components/Callout/Callout.tsx","../src/components/Card/styles.css.ts","../src/components/Card/Card.tsx","../src/components/Checkbox/styles.css.ts","../src/components/Checkbox/Checkbox.tsx","../src/components/EmptyState/styles.css.ts","../src/components/EmptyState/EmptyState.tsx","../../tokens/src/tokens/type-presets.css.ts","../src/components/Heading/styles.css.ts","../src/components/Heading/Heading.tsx","../src/components/Field/FieldContext.ts","../src/components/Form/FormContext.ts","../src/components/Field/styles.css.ts","../src/components/Field/Field.tsx","../src/components/Form/Form.tsx","../src/components/Fieldset/styles.css.ts","../src/components/Fieldset/Fieldset.tsx","../src/components/InputGroup/InputGroupContext.ts","../src/components/Input/styles.css.ts","../src/components/Input/Input.tsx","../src/components/InputGroup/styles.css.ts","../src/components/InputGroup/InputGroup.tsx","../src/components/LinkButton/styles.css.ts","../src/components/LinkButton/LinkButton.tsx","../src/components/Menu/styles.css.ts","../src/components/Menu/MenuContext.ts","../src/components/Menu/useMenuRoot.ts","../src/components/Menu/Menu.tsx","../src/components/ScrollArea/styles.css.ts","../src/components/ScrollArea/ScrollAreaContext.ts","../src/components/ScrollArea/useScrollAreaRoot.ts","../src/components/ScrollArea/ScrollArea.tsx","../src/components/Select/styles.css.ts","../src/components/Select/SelectContext.ts","../src/hooks/useControllableValue.ts","../src/components/Select/useSelectRoot.ts","../src/components/Select/Select.tsx","../src/components/SideNav/styles.css.ts","../src/components/SideNav/SideNavContext.ts","../src/components/SideNav/SideNav.tsx","../src/components/Spinner/styles.css.ts","../src/components/Spinner/Spinner.tsx","../src/components/StatusIcon/styles.css.ts","../src/components/StatusIcon/StatusIcon.tsx","../../../node_modules/.pnpm/react-strict-dom@0.0.55_postcss@8.5.6_react-dom@19.2.4_react@19.2.4__react-native@0.84._1278be21509893d955b57d0db9435779/node_modules/react-strict-dom/dist/web/index.js","../src/components/Table/styles.css.ts","../src/components/Table/Table.tsx","../src/components/Tabs/styles.css.ts","../src/components/Tabs/TabsContext.ts","../src/components/Tabs/useTabsRoot.ts","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/styles.css.ts","../src/components/Textarea/Textarea.tsx","../src/components/Text/styles.css.ts","../src/components/Text/Text.tsx","../src/components/ToggleGroup/ToggleGroupContext.ts","../src/components/Toggle/styles.css.ts","../src/components/Toggle/Toggle.tsx","../src/components/ToggleGroup/styles.css.ts","../src/components/ToggleGroup/ToggleGroup.tsx","../src/components/Tooltip/styles.css.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/Switch/styles.css.ts","../src/components/Switch/Switch.tsx","../src/components/Stack/styles.css.ts","../src/components/Stack/Stack.tsx","../src/components/Inline/styles.css.ts","../src/components/Inline/Inline.tsx","../src/components/Cluster/styles.css.ts","../src/components/Cluster/Cluster.tsx","../src/components/Grid/styles.css.ts","../src/components/Grid/Grid.tsx","../src/components/PageShell/styles.css.ts","../src/components/PageShell/PageShell.tsx","../src/hooks/useContainerQuery.ts"],"sourcesContent":["/**\n * @license react-strict-dom\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\nimport * as stylex from '@stylexjs/stylex';\n\nvar styleq$1 = {};\n\nObject.defineProperty(styleq$1, \"__esModule\", {\n value: true\n});\nvar styleq_2 = styleq$1.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n return function styleq() {\n var definedProperties = [];\n var className = '';\n var inlineStyle = null;\n var debugString = '';\n var nextCache = disableCache ? null : cache;\n var styles = new Array(arguments.length);\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n }\n while (styles.length > 0) {\n var possibleStyle = styles.pop();\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n }\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n continue;\n }\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n if (style.$$css != null) {\n var classNameChunk = '';\n if (nextCache != null && nextCache.has(style)) {\n var cacheEntry = nextCache.get(style);\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0];\n debugString = cacheEntry[2];\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[3];\n }\n } else {\n var definedPropertiesChunk = [];\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) {\n var compiledKeyValue = style[prop];\n if (compiledKeyValue !== true) {\n debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;\n }\n continue;\n }\n if (typeof value === 'string' || value === null) {\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n }\n if (nextCache != null) {\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, debugString, weakMap]);\n nextCache = weakMap;\n }\n }\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n for (var _prop in style) {\n var _value = style[_prop];\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n if (subStyle == null) {\n subStyle = {};\n }\n subStyle[_prop] = _value;\n }\n definedProperties.push(_prop);\n nextCache = null;\n }\n }\n }\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n var styleProps = [className, inlineStyle, debugString];\n return styleProps;\n };\n}\nvar styleq = styleq_2 = styleq$1.styleq = createStyleq();\nstyleq.factory = createStyleq;\n\nconst optimizedStyleq = styleq_2.factory({\n disableMix: true\n});\nfunction merge(...styles) {\n const [className, style, dataStyleSrc] = optimizedStyleq(styles);\n const result = {};\n if (className != null && className !== '') {\n result.className = className;\n }\n if (style != null) {\n result.style = style;\n }\n if (dataStyleSrc != null && dataStyleSrc !== '') {\n const chunks = dataStyleSrc.split(';');\n const pathsMap = {};\n for (const chunk of chunks) {\n const trimmed = chunk.trim();\n const [path, line] = trimmed.split(':');\n if (line != null) {\n pathsMap[path] = pathsMap[path] != null ? `${pathsMap[path]},${line}` : line;\n }\n }\n result['data-style-src'] = Object.keys(pathsMap).map(path => `${path}:${pathsMap[path]}`).join('; ');\n }\n return result;\n}\n\nconst styles = stylex.create({\n block: {\n margin: 0,\n padding: 0\n },\n inline: {\n margin: 0,\n padding: 0,\n textDecoration: 'none',\n textAlign: 'inherit',\n wordWrap: 'break-word'\n },\n inlineblock: {\n borderStyle: 'solid',\n margin: 0,\n padding: 0\n },\n button: {\n borderWidth: 1\n },\n codePre: {\n fontFamily: 'monospace, \"monospace\"',\n fontSize: '1em',\n overflow: 'auto'\n },\n heading: {\n fontSize: '1.5rem',\n wordWrap: 'break-word'\n },\n hr: {\n backgroundColor: 'black',\n borderStyle: 'none',\n borderWidth: 0,\n boxSizing: 'border-box',\n height: 1\n },\n img: {\n aspectRatio: 'attr(width) / attr(height)',\n height: 'auto',\n maxWidth: '100%'\n },\n input: {\n borderWidth: 1,\n borderStyle: 'solid'\n },\n list: {\n listStyle: 'none'\n },\n strong: {\n fontWeight: 'bold'\n },\n textarea: {\n borderWidth: 1,\n borderStyle: 'solid',\n resize: 'vertical'\n }\n});\nconst a = styles.inline;\nconst article = styles.block;\nconst aside = styles.block;\nconst b = styles.inline;\nconst bdi = styles.inline;\nconst bdo = styles.inline;\nconst blockquote = styles.block;\nconst br = null;\nconst button = [styles.inlineblock, styles.button];\nconst code = [styles.inline, styles.codePre];\nconst del = null;\nconst div = styles.block;\nconst em = styles.inline;\nconst fieldset = styles.block;\nconst footer = styles.block;\nconst form = styles.block;\nconst heading = [styles.block, styles.heading];\nconst header = styles.block;\nconst hr = [styles.block, styles.hr];\nconst i = styles.inline;\nconst img = styles.img;\nconst input = [styles.inlineblock, styles.input];\nconst ins = null;\nconst kbd = null;\nconst label = styles.inline;\nconst li = styles.block;\nconst main = styles.block;\nconst mark = styles.inline;\nconst nav = styles.block;\nconst ol = [styles.list, styles.block];\nconst optgroup = null;\nconst option = null;\nconst p = styles.block;\nconst pre = [styles.block, styles.codePre];\nconst s = null;\nconst section = styles.block;\nconst select = styles.inlineblock;\nconst span = styles.inline;\nconst strong = [styles.inline, styles.strong];\nconst sub = styles.inline;\nconst sup = styles.inline;\nconst textarea = [styles.inlineblock, styles.textarea];\nconst u = null;\nconst ul = [styles.list, styles.block];\nconst defaultStyles = {\n a: a,\n article: article,\n aside: aside,\n b: b,\n bdi: bdi,\n bdo: bdo,\n blockquote: blockquote,\n br: br,\n button: button,\n code: code,\n del: del,\n div: div,\n em: em,\n fieldset: fieldset,\n footer: footer,\n form: form,\n h1: heading,\n h2: heading,\n h3: heading,\n h4: heading,\n h5: heading,\n h6: heading,\n header: header,\n hr: hr,\n i: i,\n img: img,\n input: input,\n ins: ins,\n kbd: kbd,\n label: label,\n li: li,\n main: main,\n mark: mark,\n nav: nav,\n ol: ol,\n optgroup: optgroup,\n option: option,\n p: p,\n pre: pre,\n s: s,\n section: section,\n select: select,\n span: span,\n strong: strong,\n sub: sub,\n sup: sup,\n textarea: textarea,\n u: u,\n ul: ul\n};\n\nexport { defaultStyles, merge };\n","/**\n * @license React\n * react-compiler-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nexports.c = function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n};\n","/**\n * @license React\n * react-compiler-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n var ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n exports.c = function (size) {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher.useMemoCache(size);\n };\n })();\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-compiler-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-compiler-runtime.development.js');\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const lightTheme = css.createTheme(colors, {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n})\n\nexport const lightShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.08)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.16)',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const highContrastTheme = css.createTheme(colors, {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n})\n\nexport const highContrastShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.6)',\n md: '0 4px 12px rgba(0, 0, 0, 0.7)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.8)',\n})\n","import {type ReactNode, createContext, useContext, useRef} from 'react'\nimport {css, html} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {lightTheme, lightShadows} from '@duro-app/tokens/themes/light.css'\nimport {highContrastTheme, highContrastShadows} from '@duro-app/tokens/themes/high-contrast.css'\n\nexport type ThemeName = 'dark' | 'light' | 'high-contrast'\n\ninterface ThemeProviderProps {\n theme?: ThemeName\n children: ReactNode\n}\n\nconst themeMap: Partial<Record<ThemeName, readonly [typeof lightTheme, typeof lightShadows]>> = {\n light: [lightTheme, lightShadows],\n 'high-contrast': [highContrastTheme, highContrastShadows],\n}\n\nconst styles = css.create({\n root: {\n display: 'contents',\n color: colors.text,\n },\n})\n\n// react-strict-dom's style prop rejects Theme<VarGroup<{named keys}>> because the\n// concrete VarGroup lacks the generic index signature. This is a known typing gap.\ntype DivStyle = Parameters<typeof html.div>[0]['style']\n\n/** Context providing a portal target inside the themed tree. */\nconst OverlayContainerContext = createContext<React.RefObject<HTMLDivElement | null> | null>(null)\n\n/** Returns the overlay container element for portals (inside the ThemeProvider). */\nexport function useOverlayContainer(): HTMLElement {\n const ref = useContext(OverlayContainerContext)\n return ref?.current ?? (typeof document !== 'undefined' ? document.body : null!)\n}\n\nexport function ThemeProvider({theme = 'dark', children}: ThemeProviderProps) {\n const overlayRef = useRef<HTMLDivElement>(null)\n const overrides = themeMap[theme]\n const themeStyles = [overrides?.[0], overrides?.[1], styles.root] as DivStyle\n\n return (\n <html.div style={themeStyles}>\n <OverlayContainerContext.Provider value={overlayRef}>\n {children}\n <html.div ref={overlayRef} />\n </OverlayContainerContext.Provider>\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n overlay: {\n position: 'fixed',\n bottom: spacing.lg,\n left: '50%',\n transform: 'translateX(-50%)',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.md,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.md,\n boxShadow: shadows.lg,\n zIndex: 50,\n maxWidth: 'calc(100vw - 48px)',\n },\n overlayEmphasized: {\n backgroundColor: colors.accent,\n borderColor: colors.accent,\n },\n selectedCount: {\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n fontFamily: typography.fontFamily,\n color: colors.text,\n whiteSpace: 'nowrap',\n },\n selectedCountEmphasized: {\n color: colors.accentContrast,\n },\n actions: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.sm,\n },\n closeButton: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n padding: 0,\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderRadius: radii.sm,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n cursor: 'pointer',\n transitionProperty: 'color, background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 2,\n },\n },\n closeButtonEmphasized: {\n color: {\n default: colors.accentContrast,\n ':hover': colors.accentContrast,\n },\n opacity: {\n default: 0.7,\n ':hover': 1,\n },\n },\n separator: {\n width: 1,\n alignSelf: 'stretch',\n backgroundColor: colors.border,\n marginTop: spacing.xs,\n marginBottom: spacing.xs,\n },\n separatorEmphasized: {\n backgroundColor: colors.accentContrast,\n opacity: 0.3,\n },\n})\n","import type {ReactNode} from 'react'\nimport {createPortal} from 'react-dom'\nimport {html} from 'react-strict-dom'\nimport {useOverlayContainer} from '../ThemeProvider/ThemeProvider'\nimport {styles} from './styles.css'\n\nexport interface ActionBarProps {\n /** Number of selected items, or 'all'. Hidden when 0. */\n selectedItemCount: number | 'all'\n /** Label for the selection count. Receives the count string. */\n selectedLabel?: (count: string) => string\n /** Whether to use emphasized (accent) styling. */\n isEmphasized?: boolean\n /** Called when the clear/close button is pressed. */\n onClearSelection: () => void\n /** Whether the bar can be dismissed. When false, the close button is hidden. @default true */\n dismissible?: boolean\n /** Action buttons to display. */\n children: ReactNode\n}\n\nfunction ActionBarInner({\n selectedItemCount,\n selectedLabel,\n isEmphasized = false,\n onClearSelection,\n dismissible = true,\n children,\n}: ActionBarProps) {\n const container = useOverlayContainer()\n\n if (selectedItemCount === 0) return null\n\n const countStr = selectedItemCount === 'all' ? 'All' : `${selectedItemCount}`\n const label = selectedLabel ? selectedLabel(countStr) : `${countStr} selected`\n\n const bar = (\n <html.div\n role=\"toolbar\"\n aria-label={label}\n style={[styles.overlay, isEmphasized && styles.overlayEmphasized]}\n >\n <html.span style={[styles.selectedCount, isEmphasized && styles.selectedCountEmphasized]}>\n {label}\n </html.span>\n <html.div style={[styles.separator, isEmphasized && styles.separatorEmphasized]} />\n <html.div style={styles.actions}>{children}</html.div>\n {dismissible && (\n <html.button\n type=\"button\"\n aria-label=\"Clear selection\"\n onClick={onClearSelection}\n style={[styles.closeButton, isEmphasized && styles.closeButtonEmphasized]}\n >\n <svg width={10} height={10} viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 1l8 8M9 1l-8 8\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n />\n </svg>\n </html.button>\n )}\n </html.div>\n )\n\n if (container) {\n return createPortal(bar, container)\n }\n\n return bar\n}\n\nexport const ActionBar = ActionBarInner\n","import type {ReactNode} from 'react'\n\nexport type IconName =\n | 'x-circle'\n | 'check-circle'\n | 'check-done'\n | 'clock'\n | 'forbidden'\n | 'info-circle'\n | 'alert-triangle'\n | 'shield'\n | 'lock'\n | 'key'\n // Filled variants (solid shape with cutout symbol)\n | 'info-circle-filled'\n | 'alert-triangle-filled'\n | 'check-circle-filled'\n | 'x-circle-filled'\n | 'shield-filled'\n | 'lock-filled'\n\n/** Stroke-based icons (Feather/Lucide style) */\nconst strokeIcons: Partial<Record<IconName, ReactNode>> = {\n 'x-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </>\n ),\n 'check-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"16 10 11 15 8 12\" />\n </>\n ),\n 'check-done': (\n <>\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </>\n ),\n clock: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"12 6 12 12 16 14\" />\n </>\n ),\n forbidden: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\" />\n </>\n ),\n 'info-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </>\n ),\n 'alert-triangle': (\n <>\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </>\n ),\n shield: <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />,\n lock: (\n <>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>\n ),\n key: (\n <>\n <path d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.78 7.78 5.5 5.5 0 0 1 7.78-7.78zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\" />\n </>\n ),\n}\n\n/**\n * Filled icons — solid shape with evenodd cutout for the inner symbol.\n * The cutout reveals the background color, so they work on any theme.\n * Uses fill=\"currentColor\" only, no stroke.\n */\nconst filledIcons: Partial<Record<IconName, ReactNode>> = {\n // Filled circle with \"i\" cutout (dot + line)\n 'info-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-.75 6a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0zM11 11a1 1 0 1 1 2 0v5a1 1 0 1 1-2 0v-5z\"\n />\n ),\n // Filled triangle with \"!\" cutout\n 'alert-triangle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM11 10a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0v-3zm.25 6a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z\"\n />\n ),\n // Filled circle with checkmark cutout\n 'check-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm4.707 8.707a1 1 0 0 0-1.414-1.414L11 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l5-5z\"\n />\n ),\n // Filled circle with X cutout\n 'x-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM9.707 8.293a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293z\"\n />\n ),\n // Filled shield with checkmark cutout\n 'shield-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 1L3 5v7c0 6.5 8.5 10.5 9 10.73.5-.23 9-4.23 9-10.73V5l-9-4zm3.707 8.707a1 1 0 0 0-1.414-1.414L11 11.586l-1.293-1.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4z\"\n />\n ),\n // Filled lock body with stroke shackle\n 'lock-filled': (\n <>\n <path\n d=\"M7 11V7a5 5 0 0 1 10 0v4\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n </>\n ),\n}\n\ninterface IconProps {\n name: IconName\n size?: number\n}\n\nexport function Icon({name, size = 24}: IconProps) {\n const filled = filledIcons[name]\n if (filled) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width={size} height={size}>\n {filled}\n </svg>\n )\n }\n\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n width={size}\n height={size}\n >\n {strokeIcons[name]}\n </svg>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: spacing.sm,\n padding: spacing.md,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n },\n iconWrap: {\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: 1,\n },\n content: {\n flex: 1,\n minWidth: 0,\n },\n error: {\n backgroundColor: colors.errorBg,\n borderColor: colors.errorBorder,\n color: colors.errorText,\n },\n success: {\n backgroundColor: colors.successBg,\n borderColor: colors.successBorder,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n borderColor: colors.warningBorder,\n color: colors.warningText,\n },\n info: {\n backgroundColor: colors.infoBg,\n borderColor: colors.infoBorder,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type AlertVariant = 'error' | 'success' | 'warning' | 'info'\n\nconst defaultIcons: Record<AlertVariant, IconName> = {\n info: 'info-circle-filled',\n warning: 'alert-triangle-filled',\n success: 'check-circle-filled',\n error: 'x-circle-filled',\n}\n\ninterface AlertProps {\n variant?: AlertVariant\n /** Built-in icon name, custom ReactNode, or false to hide. Defaults to variant icon. */\n icon?: IconName | ReactNode | false\n children: ReactNode\n}\n\nfunction resolveIcon(icon: AlertProps['icon'], variant: AlertVariant): ReactNode | null {\n if (icon === false) return null\n if (icon === undefined) return <Icon name={defaultIcons[variant]} size={18} />\n if (typeof icon === 'string') return <Icon name={icon as IconName} size={18} />\n return icon\n}\n\nexport function Alert({variant = 'info', icon, children}: AlertProps) {\n const resolvedIcon = resolveIcon(icon, variant)\n\n return (\n <html.div role=\"alert\" style={[styles.base, styles[variant]]}>\n {resolvedIcon ? (\n <>\n <html.div style={styles.iconWrap}>{resolvedIcon}</html.div>\n <html.div style={styles.content}>{children}</html.div>\n </>\n ) : (\n children\n )}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: typography.fontFamily,\n fontWeight: typography.fontWeightMedium,\n lineHeight: 1,\n borderRadius: radii.full,\n whiteSpace: 'nowrap',\n },\n sizeMd: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n sizeSm: {\n paddingTop: 2,\n paddingBottom: 2,\n paddingLeft: spacing.xs,\n paddingRight: spacing.xs,\n fontSize: '0.625rem',\n },\n default: {\n backgroundColor: colors.bgCardHover,\n color: colors.textMuted,\n },\n success: {\n backgroundColor: colors.successBg,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n color: colors.warningText,\n },\n error: {\n backgroundColor: colors.errorBg,\n color: colors.errorText,\n },\n info: {\n backgroundColor: colors.infoBg,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info'\nexport type BadgeSize = 'sm' | 'md'\n\ninterface BadgeProps {\n variant?: BadgeVariant\n size?: BadgeSize\n children: ReactNode\n}\n\nconst sizeMap = {\n sm: styles.sizeSm,\n md: styles.sizeMd,\n} as const\n\nexport function Badge({variant = 'default', size = 'md', children}: BadgeProps) {\n return <html.span style={[styles.base, sizeMap[size], styles[variant]]}>{children}</html.span>\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color, color, opacity',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 2,\n },\n },\n sizeDefault: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n },\n sizeSmall: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n primary: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n ':active': colors.accentHover,\n },\n borderColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n color: colors.accentContrast,\n },\n secondary: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderColor: colors.border,\n color: colors.textMuted,\n },\n link: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n color: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n textDecoration: {\n default: 'none',\n ':hover': 'underline',\n },\n paddingLeft: 0,\n paddingRight: 0,\n },\n inverseSecondary: {\n backgroundColor: {\n default: 'rgba(0, 0, 0, 0.10)',\n ':hover': 'rgba(0, 0, 0, 0.18)',\n },\n borderColor: {\n default: 'rgba(0, 0, 0, 0.55)',\n ':hover': 'rgba(0, 0, 0, 0.70)',\n },\n color: colors.accentContrast,\n },\n danger: {\n backgroundColor: {\n default: colors.error,\n ':hover': colors.errorHover,\n ':active': colors.errorHover,\n },\n borderColor: {\n default: colors.error,\n ':hover': colors.errorHover,\n },\n color: colors.errorContrast,\n },\n fullWidth: {\n width: '100%',\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'inverseSecondary' | 'link' | 'danger'\nexport type ButtonSize = 'default' | 'small'\n\ninterface ButtonProps {\n variant?: ButtonVariant\n size?: ButtonSize\n fullWidth?: boolean\n disabled?: boolean\n type?: 'button' | 'submit'\n onClick?: () => void\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function Button({\n variant = 'primary',\n size = 'default',\n fullWidth = false,\n disabled = false,\n type = 'button',\n onClick,\n children,\n}: ButtonProps) {\n return (\n <html.button\n type={type}\n disabled={disabled}\n onClick={onClick}\n style={[\n styles.base,\n sizeMap[size],\n styles[variant],\n fullWidth && styles.fullWidth,\n disabled && styles.disabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n padding: spacing.md,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n overflow: 'hidden', // contain the float\n },\n icon: {\n float: 'left',\n marginRight: spacing.sm,\n marginBottom: spacing.xs,\n marginTop: 2,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n error: {\n backgroundColor: colors.errorBg,\n borderColor: colors.errorBorder,\n color: colors.errorText,\n },\n success: {\n backgroundColor: colors.successBg,\n borderColor: colors.successBorder,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n borderColor: colors.warningBorder,\n color: colors.warningText,\n },\n info: {\n backgroundColor: colors.infoBg,\n borderColor: colors.infoBorder,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type CalloutVariant = 'error' | 'success' | 'warning' | 'info'\n\nconst defaultIcons: Record<CalloutVariant, IconName> = {\n info: 'info-circle-filled',\n warning: 'alert-triangle-filled',\n success: 'check-circle-filled',\n error: 'x-circle-filled',\n}\n\ninterface CalloutProps {\n variant?: CalloutVariant\n /** Built-in icon name, custom ReactNode, or false to hide. Defaults to variant icon. */\n icon?: IconName | ReactNode | false\n children: ReactNode\n}\n\nfunction resolveIcon(icon: CalloutProps['icon'], variant: CalloutVariant): ReactNode | null {\n if (icon === false) return null\n if (icon === undefined) return <Icon name={defaultIcons[variant]} size={36} />\n if (typeof icon === 'string') return <Icon name={icon as IconName} size={36} />\n return icon\n}\n\nexport function Callout({variant = 'info', icon, children}: CalloutProps) {\n const resolvedIcon = resolveIcon(icon, variant)\n\n return (\n <html.div role=\"note\" style={[styles.base, styles[variant]]}>\n {resolvedIcon && <html.span style={styles.icon}>{resolvedIcon}</html.span>}\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n base: {\n backgroundColor: colors.bgCard,\n color: colors.text,\n fontFamily: typography.fontFamily,\n },\n // Variants\n elevated: {\n borderRadius: radii.lg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n boxShadow: shadows.md,\n },\n outlined: {\n borderRadius: radii.md,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n },\n filled: {\n borderRadius: radii.md,\n },\n interactive: {\n borderRadius: radii.md,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':hover': colors.accent,\n },\n backgroundColor: {\n default: colors.bgCard,\n ':hover': colors.bgCardHover,\n },\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color, transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n transform: {\n default: 'translateY(0)',\n ':hover': 'translateY(-2px)',\n },\n },\n // Sizes (padding)\n sizeDefault: {\n padding: spacing.lg,\n },\n sizeCompact: {\n padding: spacing.md,\n },\n sizeFull: {\n padding: spacing.xl,\n },\n // Header\n header: {\n fontSize: typography.fontSizeLg,\n fontWeight: typography.fontWeightSemibold,\n marginBottom: spacing.md,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type CardVariant = 'elevated' | 'outlined' | 'filled' | 'interactive'\nexport type CardSize = 'default' | 'compact' | 'full'\n\ninterface CardProps {\n variant?: CardVariant\n size?: CardSize\n header?: string\n onClick?: () => void\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n compact: styles.sizeCompact,\n full: styles.sizeFull,\n} as const\n\nexport function Card({\n variant = 'outlined',\n size = 'default',\n header,\n onClick,\n children,\n}: CardProps) {\n return (\n <html.div onClick={onClick} style={[styles.base, styles[variant], sizeMap[size]]}>\n {header && <html.div style={styles.header}>{header}</html.div>}\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n cursor: 'pointer',\n fontSize: typography.fontSizeSm,\n color: colors.text,\n lineHeight: typography.lineHeight,\n },\n rootDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n box: {\n width: 18,\n height: 18,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n transitionProperty: 'background-color, border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n boxUnchecked: {\n backgroundColor: colors.bg,\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n },\n boxChecked: {\n backgroundColor: colors.accent,\n borderColor: colors.accent,\n },\n check: {\n width: 12,\n height: 12,\n color: colors.accentContrast,\n },\n input: {\n position: 'absolute',\n width: 1,\n height: 1,\n opacity: 0,\n overflow: 'hidden',\n },\n})\n","import {type ReactNode, useState, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\ninterface CheckboxProps {\n name?: string\n value?: string\n checked?: boolean\n defaultChecked?: boolean\n disabled?: boolean\n /** Accessible label when no visible label (children) is provided. */\n 'aria-label'?: string\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n children?: ReactNode\n}\n\nexport function Checkbox({\n name,\n value,\n checked: controlledChecked,\n defaultChecked = false,\n disabled = false,\n 'aria-label': ariaLabel,\n onChange,\n children,\n}: CheckboxProps) {\n const isControlled = controlledChecked !== undefined\n const [internalChecked, setInternalChecked] = useState(defaultChecked)\n const isChecked = isControlled ? controlledChecked : internalChecked\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(e.target.checked)\n }\n onChange?.(e)\n },\n [isControlled, onChange],\n )\n\n return (\n <html.label style={[styles.root, disabled && styles.rootDisabled]}>\n <html.input\n type=\"checkbox\"\n name={name}\n value={value}\n checked={isControlled ? controlledChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled}\n aria-label={!children ? ariaLabel : undefined}\n onChange={handleChange}\n style={styles.input}\n />\n <html.span\n style={[styles.box, isChecked ? styles.boxChecked : styles.boxUnchecked]}\n aria-hidden\n >\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n style={{opacity: isChecked ? 1 : 0}}\n >\n <polyline\n points=\"2.5 6 5 8.5 9.5 3.5\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </html.span>\n {children && <html.span>{children}</html.span>}\n </html.label>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n paddingTop: spacing.xl,\n paddingBottom: spacing.xl,\n textAlign: 'center',\n },\n message: {\n fontSize: typography.fontSizeSm,\n color: colors.textMuted,\n lineHeight: typography.lineHeight,\n },\n action: {\n marginTop: spacing.sm,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\ninterface EmptyStateProps {\n message: string\n icon?: ReactNode\n action?: ReactNode\n}\n\nexport function EmptyState({message, icon, action}: EmptyStateProps) {\n return (\n <html.div style={styles.root}>\n {icon}\n <html.p style={styles.message}>{message}</html.p>\n {action && <html.div style={styles.action}>{action}</html.div>}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {typography, typeScale} from './typography.css'\n\nexport const typePresets = css.create({\n // Body\n bodySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize4,\n lineHeight: typeScale.lineHeight4,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize5,\n lineHeight: typeScale.lineHeight5,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n\n // UI\n caption: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingWide,\n },\n label: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightMedium,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n code: {\n fontFamily: typography.fontFamilyMono,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n overline: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingWide,\n textTransform: 'uppercase' as const,\n },\n\n // Heading\n headingSm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize6,\n lineHeight: typeScale.lineHeight6,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize7,\n lineHeight: typeScale.lineHeight7,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize8,\n lineHeight: typeScale.lineHeight8,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingXl: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize9,\n lineHeight: typeScale.lineHeight9,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n\n // Display (fluid)\n displaySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displaySm,\n lineHeight: 1.2,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayMd,\n lineHeight: 1.15,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayLg,\n lineHeight: 1.1,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\n\nexport const styles = css.create({\n // Colors\n default: {\n color: colors.text,\n },\n muted: {\n color: colors.textMuted,\n },\n accent: {\n color: colors.accent,\n },\n\n // Alignment\n alignStart: {\n textAlign: 'start',\n },\n alignCenter: {\n textAlign: 'center',\n },\n alignEnd: {\n textAlign: 'end',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {typePresets} from '@duro-app/tokens/tokens/type-presets.css'\nimport {styles} from './styles.css'\n\nexport type HeadingVariant =\n | 'displayLg'\n | 'displayMd'\n | 'displaySm'\n | 'headingXl'\n | 'headingLg'\n | 'headingMd'\n | 'headingSm'\n\ninterface HeadingProps {\n level: 1 | 2 | 3 | 4 | 5 | 6\n variant?: HeadingVariant\n color?: 'default' | 'muted' | 'accent'\n align?: 'start' | 'center' | 'end'\n children: ReactNode\n}\n\nconst defaultVariantMap: Record<number, HeadingVariant> = {\n 1: 'headingXl',\n 2: 'headingLg',\n 3: 'headingMd',\n 4: 'headingSm',\n 5: 'headingSm',\n 6: 'headingSm',\n}\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nexport function Heading({level, variant, color = 'default', align, children}: HeadingProps) {\n const resolvedVariant = variant ?? defaultVariantMap[level]\n const style = [typePresets[resolvedVariant], styles[color], align && alignMap[align]]\n\n if (level === 1) return <html.h1 style={style}>{children}</html.h1>\n if (level === 2) return <html.h2 style={style}>{children}</html.h2>\n if (level === 3) return <html.h3 style={style}>{children}</html.h3>\n if (level === 4) return <html.h4 style={style}>{children}</html.h4>\n if (level === 5) return <html.h5 style={style}>{children}</html.h5>\n return <html.h6 style={style}>{children}</html.h6>\n}\n","import {createContext, useContext} from 'react'\n\ninterface FieldContextValue {\n controlId: string\n descriptionId: string\n errorId: string\n invalid: boolean\n field?: {\n value: unknown\n onChange: (...event: unknown[]) => void\n onBlur: () => void\n ref: React.RefCallback<unknown>\n name: string\n }\n errorMessage?: string\n}\n\nexport type {FieldContextValue}\n\nexport const FieldContext = createContext<FieldContextValue | null>(null)\n\nexport function useFieldContext() {\n return useContext(FieldContext)\n}\n","import {createContext, useContext} from 'react'\n\nexport const FormContext = createContext(false)\n\nexport function useFormContext() {\n return useContext(FormContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: spacing.xs,\n },\n label: {\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: colors.text,\n },\n description: {\n fontSize: typography.fontSizeXs,\n color: colors.textMuted,\n },\n error: {\n fontSize: typography.fontSizeXs,\n color: colors.error,\n },\n})\n","import {type ReactNode, useId, useMemo} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useFormContext as useRHFFormContext, useController} from 'react-hook-form'\nimport {FieldContext, useFieldContext} from './FieldContext'\nimport {useFormContext} from '../Form/FormContext'\nimport {styles} from './styles.css'\n\n// --- Root ---\ninterface RootProps {\n name?: string\n invalid?: boolean\n children: ReactNode\n}\n\nfunction Root({name, ...props}: RootProps) {\n const insideForm = useFormContext()\n if (name && insideForm) {\n return <ControlledRoot name={name} {...props} />\n }\n return <StaticRoot {...props} />\n}\n\n// Always calls useController — no conditional hooks\nfunction ControlledRoot({\n name,\n invalid: invalidProp = false,\n children,\n}: {\n name: string\n invalid?: boolean\n children: ReactNode\n}) {\n const id = useId()\n const {control} = useRHFFormContext()\n const {field, fieldState} = useController({control, name})\n const invalid = invalidProp || !!fieldState.error\n\n const ctx = useMemo(\n () => ({\n controlId: `${id}-control`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n invalid,\n field: {\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n name: field.name,\n },\n errorMessage: fieldState.error?.message,\n }),\n [id, invalid, field.value, field.onChange, field.onBlur, field.ref, field.name, fieldState.error],\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </FieldContext.Provider>\n )\n}\n\n// Current behavior, no RHF dependency\nfunction StaticRoot({invalid = false, children}: {invalid?: boolean; children: ReactNode}) {\n const id = useId()\n const ctx = useMemo(\n () => ({\n controlId: `${id}-control`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n invalid,\n }),\n [id, invalid],\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </FieldContext.Provider>\n )\n}\n\n// --- Label ---\ninterface LabelProps {\n children: ReactNode\n}\n\nfunction Label({children}: LabelProps) {\n const ctx = useFieldContext()\n return (\n <html.label for={ctx?.controlId} style={styles.label}>\n {children}\n </html.label>\n )\n}\n\n// --- Description ---\ninterface DescriptionProps {\n children: ReactNode\n}\n\nfunction Description({children}: DescriptionProps) {\n const ctx = useFieldContext()\n return (\n <html.span id={ctx?.descriptionId} style={styles.description}>\n {children}\n </html.span>\n )\n}\n\n// --- Error ---\ninterface ErrorProps {\n children?: ReactNode\n}\n\nfunction Error({children}: ErrorProps) {\n const ctx = useFieldContext()\n const content = children ?? ctx?.errorMessage\n if (!ctx?.invalid && !content) return null\n\n return (\n <html.span id={ctx?.errorId} role=\"alert\" style={styles.error}>\n {content}\n </html.span>\n )\n}\n\nexport const Field = {\n Root,\n Label,\n Description,\n Error,\n}\n","import {type ReactNode, useCallback, useEffect, useRef} from 'react'\nimport {html} from 'react-strict-dom'\nimport {\n useForm,\n FormProvider,\n type UseFormReturn,\n type DefaultValues,\n type FieldValues,\n} from 'react-hook-form'\nimport {effectTsResolver} from '@hookform/resolvers/effect-ts'\nimport type {Schema} from 'effect'\nimport {FormContext} from './FormContext'\n\nexport interface FormProps<T extends FieldValues> {\n schema: Schema.Schema<T>\n defaultValues: DefaultValues<T>\n onSubmit: (data: T) => void | Promise<void>\n children: ReactNode | ((methods: UseFormReturn<T>) => ReactNode)\n}\n\nexport function Form<T extends FieldValues>({\n schema,\n defaultValues,\n onSubmit,\n children,\n}: FormProps<T>) {\n const methods = useForm<T>({\n resolver: effectTsResolver(schema),\n defaultValues,\n mode: 'onTouched',\n reValidateMode: 'onChange',\n })\n\n const formRef = useRef<HTMLFormElement>(null)\n const handleSubmit = useCallback(\n (e: Event) => {\n e.preventDefault()\n void methods.handleSubmit(onSubmit)()\n },\n [methods, onSubmit],\n )\n\n useEffect(() => {\n const el = formRef.current\n if (!el) return\n el.addEventListener('submit', handleSubmit)\n return () => el.removeEventListener('submit', handleSubmit)\n }, [handleSubmit])\n\n return (\n <FormProvider {...methods}>\n <FormContext.Provider value={true}>\n <html.form ref={formRef}>\n {typeof children === 'function' ? children(methods) : children}\n </html.form>\n </FormContext.Provider>\n </FormProvider>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n // Reset native fieldset chrome\n borderWidth: 0,\n margin: 0,\n padding: 0,\n minWidth: 0,\n },\n legend: {\n // Reset native legend quirks\n padding: 0,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: colors.text,\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type FieldsetGap = 'xs' | 'sm' | 'ms' | 'md' | 'lg' | 'xl'\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n} as const\n\n// --- Root ---\ninterface RootProps {\n /** Disables all form controls within the fieldset */\n disabled?: boolean\n /** Gap between child elements */\n gap?: FieldsetGap\n children: ReactNode\n}\n\nfunction Root({disabled = false, gap = 'md', children}: RootProps) {\n return (\n <html.div\n role=\"group\"\n aria-disabled={disabled || undefined}\n style={[styles.root, gapMap[gap], disabled && styles.disabled]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Legend ---\ninterface LegendProps {\n children: ReactNode\n}\n\nfunction Legend({children}: LegendProps) {\n return <html.span style={styles.legend}>{children}</html.span>\n}\n\nexport const Fieldset = {\n Root,\n Legend,\n}\n","import {createContext, useContext} from 'react'\n\ninterface InputGroupContextValue {\n inGroup: boolean\n}\n\nexport const InputGroupContext = createContext<InputGroupContextValue | null>(null)\n\nexport function useInputGroupContext() {\n return useContext(InputGroupContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n width: '100%',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n color: colors.text,\n backgroundColor: colors.bg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 1,\n },\n },\n default: {\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n ':focus': colors.accent,\n },\n },\n error: {\n borderColor: {\n default: colors.error,\n ':focus': colors.error,\n },\n },\n inGroup: {\n borderWidth: 0,\n borderRadius: 0,\n outlineWidth: 0,\n },\n})\n","import {html} from 'react-strict-dom'\nimport {useFieldContext} from '../Field/FieldContext'\nimport {useInputGroupContext} from '../InputGroup/InputGroupContext'\nimport {styles} from './styles.css'\n\ntype StrictInputProps = React.ComponentProps<typeof html.input>\nexport type InputType = NonNullable<StrictInputProps['type']>\n\nexport type InputVariant = 'default' | 'error'\n\ninterface InputProps {\n variant?: InputVariant\n type?: InputType\n name?: string\n placeholder?: string\n required?: boolean\n minLength?: number\n pattern?: string\n autoComplete?:\n | 'on'\n | 'off'\n | 'email'\n | 'username'\n | 'current-password'\n | 'new-password'\n | 'name'\n | 'tel'\n | 'url'\n value?: string\n defaultValue?: string\n disabled?: boolean\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n onBlur?: () => void\n ref?: React.Ref<HTMLInputElement>\n}\n\nexport function Input({\n variant = 'default',\n type = 'text',\n name,\n placeholder,\n required,\n minLength,\n pattern,\n autoComplete,\n value,\n defaultValue,\n disabled,\n onChange,\n onBlur,\n ref,\n}: InputProps) {\n const ctx = useFieldContext()\n const groupCtx = useInputGroupContext()\n\n const fieldCtx = ctx?.field\n const effectiveName = name ?? fieldCtx?.name\n const effectiveValue = value ?? (fieldCtx ? String(fieldCtx.value ?? '') : undefined)\n const effectiveOnChange = onChange ?? fieldCtx?.onChange\n const effectiveOnBlur = onBlur ?? fieldCtx?.onBlur\n const effectiveRef = ref ?? fieldCtx?.ref\n const effectiveVariant = ctx?.invalid ? 'error' : variant\n\n // react-strict-dom omits web-only `pattern` from its types, but the\n // underlying DOM element supports it. Type-assert to pass it through.\n const extraProps = pattern !== undefined ? {pattern} : undefined\n\n return (\n <html.input\n id={ctx?.controlId}\n type={type}\n name={effectiveName}\n placeholder={placeholder}\n required={required}\n minLength={minLength}\n autoComplete={autoComplete}\n value={effectiveValue}\n defaultValue={defaultValue}\n disabled={disabled}\n aria-describedby={\n ctx ? `${ctx.descriptionId} ${ctx.invalid ? ctx.errorId : ''}`.trim() : undefined\n }\n aria-invalid={ctx?.invalid || variant === 'error' || undefined}\n onChange={effectiveOnChange as StrictInputProps['onChange']}\n onBlur={effectiveOnBlur as StrictInputProps['onBlur']}\n ref={effectiveRef as React.Ref<HTMLInputElement>}\n style={[styles.base, styles[effectiveVariant], groupCtx?.inGroup && styles.inGroup]}\n {...(extraProps as Record<string, unknown>)}\n />\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n wrapper: {\n display: 'flex',\n alignItems: 'stretch',\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':focus-within': colors.accent,\n },\n borderRadius: radii.sm,\n overflow: 'hidden',\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n addon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n backgroundColor: colors.bgCardHover,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.textMuted,\n userSelect: 'none',\n borderWidth: 0,\n },\n addonStart: {\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n addonEnd: {\n borderLeftWidth: 1,\n borderLeftStyle: 'solid',\n borderLeftColor: colors.border,\n },\n addonClickable: {\n cursor: 'pointer',\n backgroundColor: {\n default: colors.bgCardHover,\n ':hover': colors.bgCard,\n ':active': colors.bg,\n },\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n addonDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n})\n","import type {ReactNode} from 'react'\nimport {useMemo} from 'react'\nimport {css, html} from 'react-strict-dom'\nimport {InputGroupContext} from './InputGroupContext'\nimport {styles} from './styles.css'\n\n// --- Root ---\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const ctx = useMemo(() => ({inGroup: true}), [])\n\n return (\n <InputGroupContext.Provider value={ctx}>\n <html.div style={styles.wrapper}>{children}</html.div>\n </InputGroupContext.Provider>\n )\n}\n\n// --- Addon ---\nconst dynamicStyles = css.create({\n minWidth: (value: number | string) => ({minWidth: value}),\n})\n\ninterface AddonProps {\n position?: 'start' | 'end'\n onClick?: () => void\n disabled?: boolean\n /** Optional minimum width to prevent layout shift (e.g. Copy → Copied!) */\n minWidth?: number | string\n children: ReactNode\n}\n\nfunction Addon({position = 'end', onClick, disabled, minWidth, children}: AddonProps) {\n const positionStyle = position === 'start' ? styles.addonStart : styles.addonEnd\n const style = [\n styles.addon,\n positionStyle,\n onClick && !disabled && styles.addonClickable,\n disabled && styles.addonDisabled,\n minWidth != null && dynamicStyles.minWidth(minWidth),\n ]\n\n if (onClick) {\n return (\n <html.button type=\"button\" onClick={onClick} disabled={disabled} style={style}>\n {children}\n </html.button>\n )\n }\n\n return <html.span style={style}>{children}</html.span>\n}\n\nexport const InputGroup = {\n Root,\n Addon,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'background-color, border-color, color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n sizeDefault: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n },\n sizeSmall: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n primary: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n color: colors.accentContrast,\n },\n secondary: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n color: colors.textMuted,\n },\n fullWidth: {\n width: '100%',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type LinkButtonVariant = 'primary' | 'secondary'\nexport type LinkButtonSize = 'default' | 'small'\n\ninterface LinkButtonProps {\n href: string\n variant?: LinkButtonVariant\n size?: LinkButtonSize\n fullWidth?: boolean\n target?: '_blank' | '_self'\n rel?: string\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function LinkButton({\n href,\n variant = 'primary',\n size = 'default',\n fullWidth = false,\n target,\n rel,\n children,\n}: LinkButtonProps) {\n return (\n <html.a\n href={href}\n target={target}\n rel={rel}\n style={[styles.base, sizeMap[size], styles[variant], fullWidth && styles.fullWidth]}\n >\n {children}\n </html.a>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n trigger: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.text,\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color',\n transitionDuration: '150ms',\n },\n backdrop: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 49,\n },\n popup: {\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: spacing.xs,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n boxShadow: shadows.md,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n minWidth: 160,\n zIndex: 50,\n },\n popupEnd: {\n left: 'auto',\n right: 0,\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n fontFamily: typography.fontFamily,\n color: colors.text,\n borderRadius: radii.sm,\n cursor: 'pointer',\n backgroundColor: 'transparent',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n itemHighlighted: {\n backgroundColor: colors.bgCardHover,\n },\n linkItem: {\n textDecoration: 'none',\n color: {\n default: colors.text,\n ':hover': colors.text,\n },\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface MenuContextValue {\n open: boolean\n toggle: () => void\n close: () => void\n menuId: string\n highlightedId: string | null\n setHighlightedId: (id: string | null) => void\n registerItem: (id: string, element: HTMLElement) => () => void\n triggerRef: React.RefObject<HTMLButtonElement | null>\n}\n\nexport const MenuContext = createContext<MenuContextValue | null>(null)\n\nexport function useMenu() {\n const ctx = useContext(MenuContext)\n if (!ctx) throw new Error('Menu compound components must be used within Menu.Root')\n return ctx\n}\n","import {useState, useCallback, useRef, useId, useEffect} from 'react'\nimport type {MenuContextValue} from './MenuContext'\n\nexport function useMenuRoot() {\n const [open, setOpen] = useState(false)\n const [highlightedId, setHighlightedId] = useState<string | null>(null)\n const menuId = useId()\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement | null>(null)\n const itemsRef = useRef(new Map<string, HTMLElement>())\n const orderRef = useRef<string[]>([])\n const needsInitialHighlightRef = useRef(false)\n\n const close = useCallback(() => {\n setOpen(false)\n setHighlightedId(null)\n needsInitialHighlightRef.current = false\n triggerRef.current?.focus()\n }, [])\n\n const toggle = useCallback(() => {\n setOpen((prev) => {\n if (!prev) {\n needsInitialHighlightRef.current = true\n } else {\n setHighlightedId(null)\n needsInitialHighlightRef.current = false\n }\n return !prev\n })\n }, [])\n\n // Highlight the first item after items register on open.\n // Child effects (item registration) run before this parent effect,\n // so orderRef is populated by the time this runs.\n useEffect(() => {\n if (open && needsInitialHighlightRef.current) {\n needsInitialHighlightRef.current = false\n const order = orderRef.current\n if (order.length > 0) {\n setHighlightedId(order[0])\n }\n }\n }, [open])\n\n const registerItem = useCallback((id: string, element: HTMLElement) => {\n itemsRef.current.set(id, element)\n const map = itemsRef.current\n const ids = [...map.keys()]\n ids.sort((a, b) => {\n const elA = map.get(a)\n const elB = map.get(b)\n if (!elA || !elB) return 0\n return elA.compareDocumentPosition(elB) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n })\n orderRef.current = ids\n return () => {\n itemsRef.current.delete(id)\n orderRef.current = orderRef.current.filter((i) => i !== id)\n }\n }, [])\n\n // Native keydown for full KeyboardEvent access (preventDefault)\n useEffect(() => {\n const root = rootRef.current\n if (!root || !open) return\n\n function handleKeyDown(e: KeyboardEvent) {\n const order = orderRef.current\n if (order.length === 0) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : -1\n return order[(idx + 1) % order.length]\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : 0\n return order[(idx - 1 + order.length) % order.length]\n })\n break\n }\n case 'Home': {\n e.preventDefault()\n setHighlightedId(order[0])\n break\n }\n case 'End': {\n e.preventDefault()\n setHighlightedId(order[order.length - 1])\n break\n }\n case 'Enter':\n case ' ': {\n e.preventDefault()\n const items = itemsRef.current\n setHighlightedId((prev) => {\n if (prev) {\n const el = items.get(prev)\n el?.click()\n }\n return prev\n })\n break\n }\n case 'Escape':\n case 'Tab': {\n close()\n break\n }\n }\n }\n\n root.addEventListener('keydown', handleKeyDown)\n return () => root.removeEventListener('keydown', handleKeyDown)\n }, [open, close])\n\n const ctx: MenuContextValue = {\n open,\n toggle,\n close,\n menuId,\n highlightedId,\n setHighlightedId,\n registerItem,\n triggerRef,\n }\n\n return {ctx, rootRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {MenuContext, useMenu} from './MenuContext'\nimport {useMenuRoot} from './useMenuRoot'\n\n// --- Root ---\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const {ctx, rootRef} = useMenuRoot()\n\n return (\n <MenuContext.Provider value={ctx}>\n <html.div ref={rootRef} style={styles.root}>\n {children}\n </html.div>\n </MenuContext.Provider>\n )\n}\n\n// --- Trigger ---\nfunction Trigger({children}: {children: ReactNode}) {\n const {open, toggle, menuId, triggerRef} = useMenu()\n const localRef = useRef<HTMLButtonElement>(null)\n\n // Sync local ref to context triggerRef\n useEffect(() => {\n triggerRef.current = localRef.current\n })\n\n return (\n <html.button\n ref={localRef}\n type=\"button\"\n onClick={toggle}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={open ? menuId : undefined}\n style={styles.trigger}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Popup ---\ninterface PopupProps {\n children: ReactNode\n align?: 'start' | 'end'\n}\n\nfunction Popup({children, align = 'start'}: PopupProps) {\n const {open, close, menuId, highlightedId} = useMenu()\n\n if (!open) return null\n\n return (\n <>\n <html.div style={styles.backdrop} onClick={close} />\n <html.div\n id={menuId}\n role=\"menu\"\n aria-activedescendant={highlightedId ?? undefined}\n style={[styles.popup, align === 'end' && styles.popupEnd]}\n >\n {children}\n </html.div>\n </>\n )\n}\n\n// --- Item ---\ninterface ItemProps {\n onClick?: () => void\n children: ReactNode\n}\n\nfunction Item({onClick, children}: ItemProps) {\n const {close, highlightedId, setHighlightedId, registerItem} = useMenu()\n const id = useId()\n const ref = useRef<HTMLDivElement>(null)\n const isHighlighted = highlightedId === id\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, el)\n }, [id, registerItem])\n\n const handleClick = () => {\n onClick?.()\n close()\n }\n\n return (\n <html.div\n ref={ref}\n id={id}\n role=\"menuitem\"\n onClick={handleClick}\n onPointerEnter={() => setHighlightedId(id)}\n style={[styles.item, isHighlighted && styles.itemHighlighted]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- LinkItem ---\ninterface LinkItemProps {\n href: string\n children: ReactNode\n}\n\nfunction LinkItem({href, children}: LinkItemProps) {\n const {close, highlightedId, setHighlightedId, registerItem} = useMenu()\n const id = useId()\n const ref = useRef<HTMLAnchorElement>(null)\n const isHighlighted = highlightedId === id\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, el)\n }, [id, registerItem])\n\n return (\n <html.a\n ref={ref}\n id={id}\n href={href}\n onClick={close}\n role=\"menuitem\"\n onPointerEnter={() => setHighlightedId(id)}\n style={[styles.item, styles.linkItem, isHighlighted && styles.itemHighlighted]}\n >\n {children}\n </html.a>\n )\n}\n\nexport const Menu = {\n Root,\n Trigger,\n Popup,\n Item,\n LinkItem,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {radii} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n overflow: 'hidden',\n },\n viewport: {\n width: '100%',\n height: '100%',\n overflowX: 'auto',\n overflowY: 'auto',\n // Hide native scrollbar\n scrollbarWidth: 'none',\n },\n content: {\n minWidth: '100%',\n minHeight: '100%',\n },\n scrollbar: {\n position: 'absolute',\n zIndex: 1,\n display: 'flex',\n touchAction: 'none',\n userSelect: 'none',\n transitionProperty: 'opacity',\n transitionDuration: '200ms',\n transitionTimingFunction: 'ease',\n },\n scrollbarVertical: {\n top: 0,\n right: 0,\n bottom: 0,\n width: 8,\n flexDirection: 'column',\n paddingTop: 2,\n paddingBottom: 2,\n paddingRight: 2,\n },\n scrollbarHorizontal: {\n left: 0,\n right: 0,\n bottom: 0,\n height: 8,\n flexDirection: 'row',\n paddingLeft: 2,\n paddingRight: 2,\n paddingBottom: 2,\n },\n scrollbarHidden: {\n opacity: 0,\n },\n scrollbarVisible: {\n opacity: 1,\n },\n thumb: {\n position: 'relative',\n flex: 1,\n backgroundColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n borderRadius: radii.full,\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n // Dynamic styles — simple identifier params only (StyleX constraint)\n viewportMaxHeight: (maxHeight: number | string) => ({\n maxHeight,\n }),\n thumbVertical: (height: string, transform: string) => ({\n height,\n transform,\n }),\n thumbHorizontal: (width: string, transform: string) => ({\n width,\n transform,\n }),\n})\n","import {createContext, useContext} from 'react'\n\nexport interface ScrollAreaContextValue {\n viewportRef: React.RefObject<HTMLDivElement | null>\n contentRef: React.RefObject<HTMLDivElement | null>\n scrollTop: number\n scrollLeft: number\n scrollHeight: number\n scrollWidth: number\n clientHeight: number\n clientWidth: number\n scrolling: boolean\n}\n\nexport const ScrollAreaContext = createContext<ScrollAreaContextValue | null>(null)\n\nexport function useScrollArea() {\n const ctx = useContext(ScrollAreaContext)\n if (!ctx) throw new Error('ScrollArea compound components must be used within ScrollArea.Root')\n return ctx\n}\n","import {useState, useCallback, useRef, useEffect} from 'react'\nimport type {ScrollAreaContextValue} from './ScrollAreaContext'\n\nexport function useScrollAreaRoot(): ScrollAreaContextValue {\n const viewportRef = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollLeft, setScrollLeft] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [scrollWidth, setScrollWidth] = useState(0)\n const [clientHeight, setClientHeight] = useState(0)\n const [clientWidth, setClientWidth] = useState(0)\n const [scrolling, setScrolling] = useState(false)\n const scrollTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const handleScroll = useCallback(() => {\n const vp = viewportRef.current\n if (!vp) return\n\n setScrollTop(vp.scrollTop)\n setScrollLeft(vp.scrollLeft)\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n setScrolling(true)\n\n if (scrollTimerRef.current) clearTimeout(scrollTimerRef.current)\n scrollTimerRef.current = setTimeout(() => setScrolling(false), 1000)\n }, [])\n\n // Observe viewport size changes\n useEffect(() => {\n const vp = viewportRef.current\n if (!vp) return\n\n const observer = new ResizeObserver(() => {\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n })\n observer.observe(vp)\n // Initial measurement\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n\n return () => observer.disconnect()\n }, [])\n\n // Attach scroll listener directly to ensure we capture it\n useEffect(() => {\n const vp = viewportRef.current\n if (!vp) return\n vp.addEventListener('scroll', handleScroll, {passive: true})\n return () => vp.removeEventListener('scroll', handleScroll)\n }, [handleScroll])\n\n return {\n viewportRef,\n contentRef,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n scrolling,\n }\n}\n","import {type ReactNode, useRef, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {ScrollAreaContext, useScrollArea} from './ScrollAreaContext'\nimport {useScrollAreaRoot} from './useScrollAreaRoot'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const ctx = useScrollAreaRoot()\n\n return (\n <ScrollAreaContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </ScrollAreaContext.Provider>\n )\n}\n\n// --- Viewport ---\n\ninterface ViewportProps {\n children: ReactNode\n maxHeight?: number | string\n}\n\nfunction Viewport({children, maxHeight}: ViewportProps) {\n const {viewportRef} = useScrollArea()\n\n return (\n <html.div\n ref={viewportRef}\n style={[styles.viewport, maxHeight != null && styles.viewportMaxHeight(maxHeight)]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Content ---\n\ninterface ContentProps {\n children: ReactNode\n}\n\nfunction Content({children}: ContentProps) {\n const {contentRef} = useScrollArea()\n return (\n <html.div ref={contentRef} style={styles.content}>\n {children}\n </html.div>\n )\n}\n\n// --- Scrollbar ---\n\ntype ScrollbarOrientation = 'vertical' | 'horizontal'\n\ninterface ScrollbarProps {\n orientation?: ScrollbarOrientation\n children: ReactNode\n}\n\nfunction Scrollbar({orientation = 'vertical', children}: ScrollbarProps) {\n const {scrolling, scrollHeight, scrollWidth, clientHeight, clientWidth} = useScrollArea()\n\n // Hide scrollbar when content fits\n const hasOverflow =\n orientation === 'vertical' ? scrollHeight > clientHeight : scrollWidth > clientWidth\n\n if (!hasOverflow) return null\n\n return (\n <html.div\n style={[\n styles.scrollbar,\n orientation === 'vertical' ? styles.scrollbarVertical : styles.scrollbarHorizontal,\n scrolling ? styles.scrollbarVisible : styles.scrollbarHidden,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Thumb ---\n\ninterface ThumbProps {\n orientation?: ScrollbarOrientation\n}\n\nfunction Thumb({orientation = 'vertical'}: ThumbProps) {\n const {viewportRef, scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth} =\n useScrollArea()\n const draggingRef = useRef(false)\n const startPosRef = useRef(0)\n const startScrollRef = useRef(0)\n\n const isVertical = orientation === 'vertical'\n\n const thumbSizePercent = isVertical\n ? Math.max((clientHeight / scrollHeight) * 100, 10)\n : Math.max((clientWidth / scrollWidth) * 100, 10)\n\n const maxScroll = isVertical ? scrollHeight - clientHeight : scrollWidth - clientWidth\n const trackSize = isVertical ? clientHeight : clientWidth\n const thumbPixelSize = (thumbSizePercent / 100) * trackSize\n const scrollOffset = isVertical ? scrollTop : scrollLeft\n const thumbOffset = maxScroll > 0 ? (scrollOffset / maxScroll) * (trackSize - thumbPixelSize) : 0\n\n const thumbStyle = isVertical\n ? styles.thumbVertical(`${thumbSizePercent}%`, `translateY(${thumbOffset}px)`)\n : styles.thumbHorizontal(`${thumbSizePercent}%`, `translateX(${thumbOffset}px)`)\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault()\n draggingRef.current = true\n startPosRef.current = isVertical ? e.clientY : e.clientX\n startScrollRef.current = isVertical\n ? (viewportRef.current?.scrollTop ?? 0)\n : (viewportRef.current?.scrollLeft ?? 0)\n ;(e.target as HTMLElement).setPointerCapture(e.pointerId)\n },\n [isVertical, viewportRef],\n )\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!draggingRef.current) return\n const vp = viewportRef.current\n if (!vp) return\n\n const delta = (isVertical ? e.clientY : e.clientX) - startPosRef.current\n const scrollRatio = maxScroll / (trackSize - thumbPixelSize)\n const scrollDelta = delta * scrollRatio\n\n if (isVertical) {\n vp.scrollTop = startScrollRef.current + scrollDelta\n } else {\n vp.scrollLeft = startScrollRef.current + scrollDelta\n }\n },\n [isVertical, maxScroll, trackSize, thumbPixelSize, viewportRef],\n )\n\n const handlePointerUp = useCallback(() => {\n draggingRef.current = false\n }, [])\n\n return (\n <html.div\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n style={[styles.thumb, thumbStyle]}\n />\n )\n}\n\nexport const ScrollArea = {\n Root,\n Viewport,\n Content,\n Scrollbar,\n Thumb,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n trigger: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: spacing.sm,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.text,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':hover': colors.accent,\n },\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n },\n value: {\n color: colors.text,\n },\n placeholder: {\n color: colors.textMuted,\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n color: colors.textMuted,\n },\n backdrop: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 49,\n },\n popup: {\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: spacing.xs,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n boxShadow: shadows.md,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n minWidth: 120,\n zIndex: 50,\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n fontFamily: typography.fontFamily,\n color: colors.text,\n borderRadius: radii.sm,\n cursor: 'pointer',\n backgroundColor: 'transparent',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n itemSelected: {\n color: colors.accent,\n fontWeight: typography.fontWeightMedium,\n },\n itemHighlighted: {\n backgroundColor: colors.bgCardHover,\n },\n hidden: {\n display: 'none',\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface SelectContextValue {\n open: boolean\n toggle: () => void\n close: () => void\n value: string | null\n setValue: (value: string) => void\n labels: Record<string, string>\n registerLabel: (value: string, label: string) => void\n listboxId: string\n highlightedId: string | null\n setHighlightedId: (id: string | null) => void\n registerItem: (id: string, value: string, element: HTMLElement) => () => void\n triggerRef: React.RefObject<HTMLButtonElement | null>\n}\n\nexport const SelectContext = createContext<SelectContextValue | null>(null)\n\nexport function useSelect() {\n const ctx = useContext(SelectContext)\n if (!ctx) throw new Error('Select compound components must be used within Select.Root')\n return ctx\n}\n","import {useState, useCallback} from 'react'\n\nexport function useControllableValue<T>(\n controlledValue: T | undefined,\n defaultValue: T,\n onChange?: (value: T) => void,\n) {\n const [internal, setInternal] = useState(defaultValue)\n const value = controlledValue !== undefined ? controlledValue : internal\n const setValue = useCallback(\n (v: T) => {\n if (controlledValue === undefined) setInternal(v)\n onChange?.(v)\n },\n [controlledValue, onChange],\n )\n return [value, setValue] as const\n}\n","import {useState, useCallback, useMemo, useRef, useId, useEffect} from 'react'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {SelectContextValue} from './SelectContext'\n\ninterface UseSelectRootOptions {\n defaultValue?: string\n value?: string\n onValueChange?: (value: string | null) => void\n initialLabels?: Record<string, string>\n}\n\nexport function useSelectRoot({\n defaultValue,\n value: controlledValue,\n onValueChange,\n initialLabels,\n}: UseSelectRootOptions) {\n const [value, setValue] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange,\n )\n const [open, setOpen] = useState(false)\n const [labels, setLabels] = useState<Record<string, string>>(initialLabels ?? {})\n const [highlightedId, setHighlightedId] = useState<string | null>(null)\n const listboxId = useId()\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement | null>(null)\n const itemsRef = useRef(new Map<string, {value: string; element: HTMLElement}>())\n const orderRef = useRef<string[]>([])\n\n const close = useCallback(() => {\n setOpen(false)\n setHighlightedId(null)\n triggerRef.current?.focus()\n }, [])\n\n const toggle = useCallback(() => {\n setOpen((prev) => {\n if (!prev) {\n const items = itemsRef.current\n const order = orderRef.current\n let found: string | null = null\n for (const id of order) {\n const item = items.get(id)\n if (item && item.value === value) {\n found = id\n break\n }\n }\n setHighlightedId(found ?? (order.length > 0 ? order[0] : null))\n } else {\n setHighlightedId(null)\n }\n return !prev\n })\n }, [value])\n\n const registerLabel = useCallback((v: string, label: string) => {\n setLabels((prev) => {\n if (prev[v] === label) return prev\n return {...prev, [v]: label}\n })\n }, [])\n\n const registerItem = useCallback((id: string, itemValue: string, element: HTMLElement) => {\n itemsRef.current.set(id, {value: itemValue, element})\n const map = itemsRef.current\n const ids = [...map.keys()]\n ids.sort((a, b) => {\n const elA = map.get(a)?.element\n const elB = map.get(b)?.element\n if (!elA || !elB) return 0\n return elA.compareDocumentPosition(elB) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n })\n orderRef.current = ids\n return () => {\n itemsRef.current.delete(id)\n orderRef.current = orderRef.current.filter((i) => i !== id)\n }\n }, [])\n\n // Native keydown for full KeyboardEvent access (preventDefault)\n useEffect(() => {\n const root = rootRef.current\n if (!root || !open) return\n\n function handleKeyDown(e: KeyboardEvent) {\n const order = orderRef.current\n const items = itemsRef.current\n if (order.length === 0) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : -1\n return order[(idx + 1) % order.length]\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : 0\n return order[(idx - 1 + order.length) % order.length]\n })\n break\n }\n case 'Home': {\n e.preventDefault()\n setHighlightedId(order[0])\n break\n }\n case 'End': {\n e.preventDefault()\n setHighlightedId(order[order.length - 1])\n break\n }\n case 'Enter':\n case ' ': {\n e.preventDefault()\n setHighlightedId((prev) => {\n if (prev) {\n const item = items.get(prev)\n if (item) {\n setValue(item.value)\n close()\n }\n }\n return prev\n })\n break\n }\n case 'Escape':\n case 'Tab': {\n close()\n break\n }\n }\n }\n\n root.addEventListener('keydown', handleKeyDown)\n return () => root.removeEventListener('keydown', handleKeyDown)\n }, [open, close, setValue])\n\n const ctx: SelectContextValue = useMemo(\n () => ({\n open,\n toggle,\n close,\n value,\n setValue,\n labels,\n registerLabel,\n listboxId,\n highlightedId,\n setHighlightedId,\n registerItem,\n triggerRef,\n }),\n [\n open,\n toggle,\n close,\n value,\n setValue,\n labels,\n registerLabel,\n listboxId,\n highlightedId,\n setHighlightedId,\n registerItem,\n ],\n )\n\n return {ctx, rootRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {SelectContext, useSelect} from './SelectContext'\nimport {useSelectRoot} from './useSelectRoot'\n\n// --- Root ---\ninterface RootProps {\n name?: string\n defaultValue?: string\n value?: string\n onValueChange?: (value: string | null) => void\n initialLabels?: Record<string, string>\n children: ReactNode\n}\n\nfunction Root({name, defaultValue, value, onValueChange, initialLabels, children}: RootProps) {\n const {ctx, rootRef} = useSelectRoot({defaultValue, value, onValueChange, initialLabels})\n\n return (\n <SelectContext.Provider value={ctx}>\n <html.div ref={rootRef} style={styles.root}>\n {name && <html.input type=\"hidden\" name={name} value={ctx.value ?? ''} />}\n {children}\n </html.div>\n </SelectContext.Provider>\n )\n}\n\n// --- Trigger ---\nfunction Trigger({\n children,\n 'aria-label': ariaLabel,\n}: {\n children: ReactNode\n 'aria-label'?: string\n}) {\n const {open, toggle, listboxId, highlightedId, triggerRef} = useSelect()\n const localRef = useRef<HTMLButtonElement>(null)\n\n // Sync local ref to context triggerRef\n useEffect(() => {\n triggerRef.current = localRef.current\n })\n\n return (\n <html.button\n ref={localRef}\n type=\"button\"\n role={'combobox' as 'listbox'}\n onClick={toggle}\n aria-label={ariaLabel}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={open ? listboxId : undefined}\n aria-activedescendant={highlightedId ?? undefined}\n style={styles.trigger}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Value ---\nfunction Value({placeholder}: {placeholder?: string}) {\n const {value, labels} = useSelect()\n const display = value ? (labels[value] ?? value) : null\n\n return (\n <html.span style={display ? styles.value : styles.placeholder}>\n {display ?? placeholder}\n </html.span>\n )\n}\n\n// --- Icon ---\nfunction Icon({children}: {children?: ReactNode}) {\n return (\n <html.span style={styles.icon}>\n {children ?? (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n )}\n </html.span>\n )\n}\n\n// --- Popup ---\nfunction Popup({children}: {children: ReactNode}) {\n const {open, close, listboxId} = useSelect()\n\n return (\n <>\n {open && <html.div style={styles.backdrop} onClick={close} />}\n <html.div\n id={listboxId}\n role=\"listbox\"\n aria-hidden={!open}\n style={[styles.popup, !open && styles.hidden]}\n >\n {children}\n </html.div>\n </>\n )\n}\n\n// --- Item ---\ninterface ItemProps {\n value: string\n children: ReactNode\n}\n\nfunction Item({value: itemValue, children}: ItemProps) {\n const {\n value: selectedValue,\n setValue,\n close,\n registerLabel,\n highlightedId,\n setHighlightedId,\n registerItem,\n } = useSelect()\n const id = useId()\n const ref = useRef<HTMLDivElement>(null)\n const isSelected = selectedValue === itemValue\n const isHighlighted = highlightedId === id\n\n // Register label from DOM text content (works with both string and JSX children)\n useEffect(() => {\n const el = ref.current\n if (!el) return\n const text = el.textContent\n if (text) registerLabel(itemValue, text)\n }, [itemValue, registerLabel])\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, itemValue, el)\n }, [id, itemValue, registerItem])\n\n const handleClick = () => {\n setValue(itemValue)\n close()\n }\n\n return (\n <html.div\n ref={ref}\n id={id}\n role=\"option\"\n aria-selected={isSelected}\n onClick={handleClick}\n onPointerEnter={() => setHighlightedId(id)}\n style={[\n styles.item,\n isSelected && styles.itemSelected,\n isHighlighted && styles.itemHighlighted,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- ItemText ---\nfunction ItemText({children}: {children: ReactNode}) {\n return <html.span>{children}</html.span>\n}\n\nexport const Select = {\n Root,\n Trigger,\n Value,\n Icon,\n Popup,\n Item,\n ItemText,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 0,\n },\n group: {\n display: 'flex',\n flexDirection: 'column',\n },\n groupTrigger: {\n display: 'flex',\n alignItems: 'center',\n gap: spacing.xs,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeXs,\n fontWeight: typography.fontWeightSemibold,\n textTransform: 'uppercase' as const,\n letterSpacing: '0.05em',\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: 'transparent',\n borderWidth: 0,\n cursor: 'pointer',\n transitionProperty: 'color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n groupTriggerActive: {\n color: colors.text,\n },\n chevron: {\n display: 'inline-flex',\n alignItems: 'center',\n transitionProperty: 'transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n chevronOpen: {\n transform: 'rotate(90deg)',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: '6px',\n paddingBottom: '6px',\n paddingLeft: spacing.lg,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightNormal,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 0,\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'color, background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n textAlign: 'left' as const,\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n },\n itemActive: {\n color: colors.accent,\n fontWeight: typography.fontWeightMedium,\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface SideNavContextValue {\n activeValue: string | null\n onSelect: (value: string) => void\n expandedGroups: Set<string>\n toggleGroup: (group: string) => void\n registerItem: (value: string) => () => void\n orderRef: React.RefObject<string[]>\n}\n\nexport const SideNavContext = createContext<SideNavContextValue | null>(null)\n\nexport function useSideNav() {\n const ctx = useContext(SideNavContext)\n if (!ctx) throw new Error('SideNav compound components must be used within SideNav.Root')\n return ctx\n}\n","import {type ReactNode, useState, useCallback, useRef, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {SideNavContext, useSideNav} from './SideNavContext'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n}\n\nfunction Root({children, value: controlledValue, defaultValue, onValueChange}: RootProps) {\n const [activeValue, onSelect] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange\n ? (v) => {\n if (v !== null) onValueChange(v)\n }\n : undefined,\n )\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(new Set())\n const orderRef = useRef<string[]>([])\n\n const toggleGroup = useCallback((group: string) => {\n setExpandedGroups((prev) => {\n const next = new Set(prev)\n if (next.has(group)) {\n next.delete(group)\n } else {\n next.add(group)\n }\n return next\n })\n }, [])\n\n const registerItem = useCallback((value: string) => {\n if (!orderRef.current.includes(value)) {\n orderRef.current.push(value)\n }\n return () => {\n orderRef.current = orderRef.current.filter((v) => v !== value)\n }\n }, [])\n\n // Auto-expand group containing active value\n useEffect(() => {\n if (activeValue) {\n setExpandedGroups((prev) => {\n // We don't know which group it belongs to here — Group handles this\n return prev\n })\n }\n }, [activeValue])\n\n return (\n <SideNavContext.Provider\n value={{activeValue, onSelect, expandedGroups, toggleGroup, registerItem, orderRef}}\n >\n <html.nav role=\"navigation\" style={styles.root}>\n {children}\n </html.nav>\n </SideNavContext.Provider>\n )\n}\n\n// --- Group ---\n\ninterface GroupProps {\n children: ReactNode\n label: string\n groupKey?: string\n defaultExpanded?: boolean\n}\n\nfunction Group({children, label, groupKey, defaultExpanded}: GroupProps) {\n const key = groupKey ?? label\n const {expandedGroups, toggleGroup, activeValue} = useSideNav()\n const isExpanded = expandedGroups.has(key)\n const groupRef = useRef<HTMLDivElement>(null)\n\n // Auto-expand if this group contains the active item\n useEffect(() => {\n if (!activeValue || expandedGroups.has(key)) return\n const el = groupRef.current\n if (!el) return\n const activeBtn = el.querySelector(`[data-nav-value=\"${activeValue}\"]`)\n if (activeBtn) {\n toggleGroup(key)\n }\n }, [activeValue, key, expandedGroups, toggleGroup])\n\n // Expand on first render if defaultExpanded\n useEffect(() => {\n if (defaultExpanded && !expandedGroups.has(key)) {\n toggleGroup(key)\n }\n // Only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const hasActiveChild = (() => {\n if (!activeValue || !groupRef.current) return false\n return !!groupRef.current.querySelector(`[data-nav-value=\"${activeValue}\"]`)\n })()\n\n return (\n <html.div ref={groupRef} style={styles.group}>\n <html.button\n type=\"button\"\n onClick={() => toggleGroup(key)}\n style={[styles.groupTrigger, hasActiveChild && styles.groupTriggerActive]}\n aria-expanded={isExpanded}\n >\n <html.span style={[styles.chevron, isExpanded && styles.chevronOpen]}>\n <svg\n width={10}\n height={10}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </html.span>\n {label}\n </html.button>\n {isExpanded && children}\n </html.div>\n )\n}\n\n// --- Item ---\n\ninterface ItemProps {\n value: string\n children: ReactNode\n}\n\nfunction Item({value, children}: ItemProps) {\n const {activeValue, onSelect, registerItem} = useSideNav()\n const isActive = activeValue === value\n\n useEffect(() => {\n return registerItem(value)\n }, [value, registerItem])\n\n return (\n <html.button\n type=\"button\"\n data-nav-value={value}\n onClick={() => onSelect(value)}\n style={[styles.item, isActive && styles.itemActive]}\n aria-current={isActive ? 'page' : undefined}\n >\n {children}\n </html.button>\n )\n}\n\nexport const SideNav = {\n Root,\n Group,\n Item,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\n\nconst spin = css.keyframes({\n '0%': {transform: 'rotate(0deg)'},\n '100%': {transform: 'rotate(360deg)'},\n})\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n spinner: {\n borderRadius: '50%',\n borderStyle: 'solid',\n borderColor: colors.border,\n borderTopColor: colors.accent,\n animationName: spin,\n animationDuration: '0.6s',\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite',\n },\n sm: {\n width: 16,\n height: 16,\n borderWidth: 2,\n },\n md: {\n width: 24,\n height: 24,\n borderWidth: 2,\n },\n lg: {\n width: 40,\n height: 40,\n borderWidth: 3,\n },\n srOnly: {\n position: 'absolute',\n width: 1,\n height: 1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n },\n})\n","import {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg'\n\ninterface SpinnerProps {\n size?: SpinnerSize\n label?: string\n}\n\nconst sizeMap = {\n sm: styles.sm,\n md: styles.md,\n lg: styles.lg,\n} as const\n\nexport function Spinner({size = 'md', label = 'Loading'}: SpinnerProps) {\n return (\n <html.div role=\"status\" style={styles.root}>\n <html.div style={[styles.spinner, sizeMap[size]]} aria-hidden />\n <html.span style={styles.srOnly}>{label}</html.span>\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: spacing.md,\n },\n error: {\n color: colors.error,\n },\n success: {\n color: colors.success,\n },\n warning: {\n color: colors.warning,\n },\n info: {\n color: colors.info,\n },\n muted: {\n color: colors.textMuted,\n },\n})\n","import {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type StatusIconName = Extract<\n IconName,\n 'x-circle' | 'check-circle' | 'check-done' | 'clock' | 'forbidden'\n>\nexport type StatusIconVariant = 'error' | 'success' | 'warning' | 'info' | 'muted'\n\ninterface StatusIconProps {\n name: StatusIconName\n size?: number\n variant?: StatusIconVariant\n}\n\nexport function StatusIcon({name, size = 48, variant = 'muted'}: StatusIconProps) {\n return (\n <html.div style={[styles.root, styles[variant]]}>\n <Icon name={name} size={size} />\n </html.div>\n )\n}\n","/**\n * @license react-strict-dom\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\nimport { jsx } from 'react/jsx-runtime';\nimport * as stylex from '@stylexjs/stylex';\nexport { stylex as css };\n\nconst loggedMessages = {};\nfunction errorMsg(msg) {\n if (process.env.NODE_ENV !== 'test' && loggedMessages[msg]) {\n return;\n }\n loggedMessages[msg] = true;\n console.error(`[error] React Strict DOM: ${msg}`);\n}\n\nconst strictAttributeSet = new Set(['alt', 'aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'autoCapitalize', 'autoComplete', 'autoFocus', 'checked', 'children', 'crossOrigin', 'decoding', 'defaultChecked', 'defaultValue', 'dir', 'disabled', 'download', 'draggable', 'elementTiming', 'enterKeyHint', 'fetchPriority', 'for', 'height', 'hidden', 'href', 'id', 'inert', 'inputMode', 'label', 'lang', 'loading', 'max', 'maxLength', 'min', 'minLength', 'multiple', 'name', 'onAuxClick', 'onBeforeInput', 'onBlur', 'onChange', 'onClick', 'onContextMenu', 'onCopy', 'onCut', 'onError', 'onFocus', 'onFocusIn', 'onFocusOut', 'onFullscreenChange', 'onFullscreenError', 'onGotPointerCapture', 'onInput', 'onInvalid', 'onKeyDown', 'onKeyUp', 'onLoad', 'onLostPointerCapture', 'onPaste', 'onPointerCancel', 'onPointerDown', 'onPointerEnter', 'onPointerLeave', 'onPointerMove', 'onPointerOut', 'onPointerOver', 'onPointerUp', 'onScroll', 'onSelect', 'onSelectionChange', 'onWheel', 'placeholder', 'readOnly', 'referrerPolicy', 'rel', 'required', 'role', 'rows', 'selected', 'spellCheck', 'src', 'srcSet', 'step', 'style', 'tabIndex', 'target', 'type', 'value', 'width', 'suppressHydrationWarning', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart']);\nfunction isPropAllowed(key) {\n return strictAttributeSet.has(key) || key.indexOf('data-') > -1;\n}\n\nvar styleq$1 = {};\n\nObject.defineProperty(styleq$1, \"__esModule\", {\n value: true\n});\nvar styleq_2 = styleq$1.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n return function styleq() {\n var definedProperties = [];\n var className = '';\n var inlineStyle = null;\n var debugString = '';\n var nextCache = disableCache ? null : cache;\n var styles = new Array(arguments.length);\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n }\n while (styles.length > 0) {\n var possibleStyle = styles.pop();\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n }\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n continue;\n }\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n if (style.$$css != null) {\n var classNameChunk = '';\n if (nextCache != null && nextCache.has(style)) {\n var cacheEntry = nextCache.get(style);\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0];\n debugString = cacheEntry[2];\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[3];\n }\n } else {\n var definedPropertiesChunk = [];\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) {\n var compiledKeyValue = style[prop];\n if (compiledKeyValue !== true) {\n debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;\n }\n continue;\n }\n if (typeof value === 'string' || value === null) {\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n }\n if (nextCache != null) {\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, debugString, weakMap]);\n nextCache = weakMap;\n }\n }\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n for (var _prop in style) {\n var _value = style[_prop];\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n if (subStyle == null) {\n subStyle = {};\n }\n subStyle[_prop] = _value;\n }\n definedProperties.push(_prop);\n nextCache = null;\n }\n }\n }\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n var styleProps = [className, inlineStyle, debugString];\n return styleProps;\n };\n}\nvar styleq = styleq_2 = styleq$1.styleq = createStyleq();\nstyleq.factory = createStyleq;\n\nconst optimizedStyleq = styleq_2.factory({\n disableMix: true\n});\nfunction merge(...styles) {\n const [className, style, dataStyleSrc] = optimizedStyleq(styles);\n const result = {};\n if (className != null && className !== '') {\n result.className = className;\n }\n if (style != null) {\n result.style = style;\n }\n if (dataStyleSrc != null && dataStyleSrc !== '') {\n const chunks = dataStyleSrc.split(';');\n const pathsMap = {};\n for (const chunk of chunks) {\n const trimmed = chunk.trim();\n const [path, line] = trimmed.split(':');\n if (line != null) {\n pathsMap[path] = pathsMap[path] != null ? `${pathsMap[path]},${line}` : line;\n }\n }\n result['data-style-src'] = Object.keys(pathsMap).map(path => `${path}:${pathsMap[path]}`).join('; ');\n }\n return result;\n}\n\nfunction validateStrictProps(props) {\n Object.keys(props).forEach(key => {\n const isValid = isPropAllowed(key);\n if (!isValid) {\n errorMsg(`invalid prop \"${key}\"`);\n delete props[key];\n }\n });\n}\nfunction createStrictDOMComponent(TagName, defaultStyle) {\n const debugStyle = {\n $$css: true,\n 'debug::name': `html-${TagName}`\n };\n function Component({\n ref,\n ...props\n }) {\n const {\n for: htmlFor,\n style,\n ...restProps\n } = props;\n const hostProps = restProps;\n validateStrictProps(hostProps);\n if (htmlFor != null) {\n hostProps.htmlFor = htmlFor;\n }\n if (props.role != null) {\n hostProps.role = props.role === 'none' ? 'presentation' : props.role;\n }\n if (TagName === 'button') {\n hostProps.type = hostProps.type ? hostProps.type : 'button';\n } else if (TagName === 'input' || TagName === 'textarea') {\n hostProps.dir = hostProps.dir ? hostProps.dir : 'auto';\n }\n const hostStyleProps = merge([debugStyle, defaultStyle, style]);\n const element = jsx(TagName, {\n ...hostProps,\n ...hostStyleProps,\n ref: ref\n });\n return element;\n }\n Component.displayName = `html.${TagName}`;\n return Component;\n}\n\nconst styles = stylex.create({\n block: {\n margin: 0,\n padding: 0\n },\n inline: {\n margin: 0,\n padding: 0,\n textDecoration: 'none',\n textAlign: 'inherit',\n wordWrap: 'break-word'\n },\n inlineblock: {\n borderStyle: 'solid',\n margin: 0,\n padding: 0\n },\n button: {\n borderWidth: 1\n },\n codePre: {\n fontFamily: 'monospace, \"monospace\"',\n fontSize: '1em',\n overflow: 'auto'\n },\n heading: {\n fontSize: '1.5rem',\n wordWrap: 'break-word'\n },\n hr: {\n backgroundColor: 'black',\n borderStyle: 'none',\n borderWidth: 0,\n boxSizing: 'border-box',\n height: 1\n },\n img: {\n aspectRatio: 'attr(width) / attr(height)',\n height: 'auto',\n maxWidth: '100%'\n },\n input: {\n borderWidth: 1,\n borderStyle: 'solid'\n },\n list: {\n listStyle: 'none'\n },\n strong: {\n fontWeight: 'bold'\n },\n textarea: {\n borderWidth: 1,\n borderStyle: 'solid',\n resize: 'vertical'\n }\n});\nconst a$1 = styles.inline;\nconst article$1 = styles.block;\nconst aside$1 = styles.block;\nconst b$1 = styles.inline;\nconst bdi$1 = styles.inline;\nconst bdo$1 = styles.inline;\nconst blockquote$1 = styles.block;\nconst br$1 = null;\nconst button$1 = [styles.inlineblock, styles.button];\nconst code$1 = [styles.inline, styles.codePre];\nconst del$1 = null;\nconst div$1 = styles.block;\nconst em$1 = styles.inline;\nconst fieldset$1 = styles.block;\nconst footer$1 = styles.block;\nconst form$1 = styles.block;\nconst heading = [styles.block, styles.heading];\nconst header$1 = styles.block;\nconst hr$1 = [styles.block, styles.hr];\nconst i$1 = styles.inline;\nconst img$1 = styles.img;\nconst input$1 = [styles.inlineblock, styles.input];\nconst ins$1 = null;\nconst kbd$1 = null;\nconst label$1 = styles.inline;\nconst li$1 = styles.block;\nconst main$1 = styles.block;\nconst mark$1 = styles.inline;\nconst nav$1 = styles.block;\nconst ol$1 = [styles.list, styles.block];\nconst optgroup$1 = null;\nconst option$1 = null;\nconst p$1 = styles.block;\nconst pre$1 = [styles.block, styles.codePre];\nconst s$1 = null;\nconst section$1 = styles.block;\nconst select$1 = styles.inlineblock;\nconst span$1 = styles.inline;\nconst strong$1 = [styles.inline, styles.strong];\nconst sub$1 = styles.inline;\nconst sup$1 = styles.inline;\nconst textarea$1 = [styles.inlineblock, styles.textarea];\nconst u$1 = null;\nconst ul$1 = [styles.list, styles.block];\nconst defaultStyles = {\n a: a$1,\n article: article$1,\n aside: aside$1,\n b: b$1,\n bdi: bdi$1,\n bdo: bdo$1,\n blockquote: blockquote$1,\n br: br$1,\n button: button$1,\n code: code$1,\n del: del$1,\n div: div$1,\n em: em$1,\n fieldset: fieldset$1,\n footer: footer$1,\n form: form$1,\n h1: heading,\n h2: heading,\n h3: heading,\n h4: heading,\n h5: heading,\n h6: heading,\n header: header$1,\n hr: hr$1,\n i: i$1,\n img: img$1,\n input: input$1,\n ins: ins$1,\n kbd: kbd$1,\n label: label$1,\n li: li$1,\n main: main$1,\n mark: mark$1,\n nav: nav$1,\n ol: ol$1,\n optgroup: optgroup$1,\n option: option$1,\n p: p$1,\n pre: pre$1,\n s: s$1,\n section: section$1,\n select: select$1,\n span: span$1,\n strong: strong$1,\n sub: sub$1,\n sup: sup$1,\n textarea: textarea$1,\n u: u$1,\n ul: ul$1\n};\n\nconst a = createStrictDOMComponent('a', defaultStyles.a);\nconst article = createStrictDOMComponent('article', defaultStyles.article);\nconst aside = createStrictDOMComponent('aside', defaultStyles.aside);\nconst b = createStrictDOMComponent('b', defaultStyles.b);\nconst bdi = createStrictDOMComponent('bdi', defaultStyles.bdi);\nconst bdo = createStrictDOMComponent('bdo', defaultStyles.bdo);\nconst blockquote = createStrictDOMComponent('blockquote', defaultStyles.blockquote);\nconst br = createStrictDOMComponent('br', defaultStyles.br);\nconst button = createStrictDOMComponent('button', defaultStyles.button);\nconst code = createStrictDOMComponent('code', defaultStyles.code);\nconst del = createStrictDOMComponent('del', defaultStyles.del);\nconst div = createStrictDOMComponent('div', defaultStyles.div);\nconst em = createStrictDOMComponent('em', defaultStyles.em);\nconst fieldset = createStrictDOMComponent('fieldset', defaultStyles.fieldset);\nconst footer = createStrictDOMComponent('footer', defaultStyles.footer);\nconst form = createStrictDOMComponent('form', defaultStyles.form);\nconst h1 = createStrictDOMComponent('h1', defaultStyles.h1);\nconst h2 = createStrictDOMComponent('h2', defaultStyles.h2);\nconst h3 = createStrictDOMComponent('h3', defaultStyles.h3);\nconst h4 = createStrictDOMComponent('h4', defaultStyles.h4);\nconst h5 = createStrictDOMComponent('h5', defaultStyles.h5);\nconst h6 = createStrictDOMComponent('h6', defaultStyles.h6);\nconst header = createStrictDOMComponent('header', defaultStyles.header);\nconst hr = createStrictDOMComponent('hr', defaultStyles.hr);\nconst i = createStrictDOMComponent('i', defaultStyles.i);\nconst img = createStrictDOMComponent('img', defaultStyles.img);\nconst input = createStrictDOMComponent('input', defaultStyles.input);\nconst ins = createStrictDOMComponent('ins', defaultStyles.ins);\nconst kbd = createStrictDOMComponent('kbd', defaultStyles.kbd);\nconst label = createStrictDOMComponent('label', defaultStyles.label);\nconst li = createStrictDOMComponent('li', defaultStyles.li);\nconst main = createStrictDOMComponent('main', defaultStyles.main);\nconst mark = createStrictDOMComponent('mark', defaultStyles.mark);\nconst nav = createStrictDOMComponent('nav', defaultStyles.nav);\nconst ol = createStrictDOMComponent('ol', defaultStyles.ol);\nconst optgroup = createStrictDOMComponent('optgroup', defaultStyles.optgroup);\nconst option = createStrictDOMComponent('option', defaultStyles.option);\nconst p = createStrictDOMComponent('p', defaultStyles.p);\nconst pre = createStrictDOMComponent('pre', defaultStyles.pre);\nconst s = createStrictDOMComponent('s', defaultStyles.s);\nconst section = createStrictDOMComponent('section', defaultStyles.section);\nconst select = createStrictDOMComponent('select', defaultStyles.select);\nconst span = createStrictDOMComponent('span', defaultStyles.span);\nconst strong = createStrictDOMComponent('strong', defaultStyles.strong);\nconst sub = createStrictDOMComponent('sub', defaultStyles.sub);\nconst sup = createStrictDOMComponent('sup', defaultStyles.sup);\nconst textarea = createStrictDOMComponent('textarea', defaultStyles.textarea);\nconst u = createStrictDOMComponent('u', defaultStyles.u);\nconst ul = createStrictDOMComponent('ul', defaultStyles.ul);\n\nvar html = /*#__PURE__*/Object.freeze({\n __proto__: null,\n a: a,\n article: article,\n aside: aside,\n b: b,\n bdi: bdi,\n bdo: bdo,\n blockquote: blockquote,\n br: br,\n button: button,\n code: code,\n del: del,\n div: div,\n em: em,\n fieldset: fieldset,\n footer: footer,\n form: form,\n h1: h1,\n h2: h2,\n h3: h3,\n h4: h4,\n h5: h5,\n h6: h6,\n header: header,\n hr: hr,\n i: i,\n img: img,\n input: input,\n ins: ins,\n kbd: kbd,\n label: label,\n li: li,\n main: main,\n mark: mark,\n nav: nav,\n ol: ol,\n optgroup: optgroup,\n option: option,\n p: p,\n pre: pre,\n s: s,\n section: section,\n select: select,\n span: span,\n strong: strong,\n sub: sub,\n sup: sup,\n textarea: textarea,\n u: u,\n ul: ul\n});\n\nexport { html };\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n // Root\n root: {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.md,\n overflow: 'hidden',\n backgroundColor: colors.bgCard,\n fontFamily: typography.fontFamily,\n color: colors.text,\n },\n\n // Header group\n header: {\n backgroundColor: colors.bgCard,\n },\n\n // Row\n row: {\n display: 'grid',\n borderBottomWidth: 1,\n borderBottomStyle: 'solid',\n borderBottomColor: colors.border,\n },\n rowLastChild: {\n borderBottomWidth: 0,\n },\n bodyRow: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n\n // Header cell\n headerCell: {\n fontWeight: typography.fontWeightSemibold,\n color: colors.textMuted,\n textAlign: 'start',\n },\n\n // Body cell\n cell: {\n color: colors.text,\n display: 'flex',\n alignItems: 'center',\n },\n\n // Size: sm\n cellSm: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n // Size: md\n cellMd: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n },\n\n // Variant: striped (even body rows)\n stripedEven: {\n backgroundColor: {\n default: colors.bgCardHover,\n ':hover': colors.bgCardHover,\n },\n },\n\n // Variant: bordered (cells get side borders)\n borderedCell: {\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n borderedCellLast: {\n borderRightWidth: 0,\n },\n\n // Dynamic styles — simple identifier params only (StyleX constraint)\n gridColumns: (columns: number) => ({\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n }),\n})\n","import {type ReactNode, createContext, useContext, Children} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\n// --- Types ---\n\nexport type TableVariant = 'default' | 'striped' | 'bordered'\nexport type TableSize = 'sm' | 'md'\n\n// --- Context ---\n\ninterface TableContextValue {\n variant: TableVariant\n size: TableSize\n columns: number\n isHeader: boolean\n}\n\nconst TableContext = createContext<TableContextValue | null>(null)\n\nfunction useTable() {\n const ctx = useContext(TableContext)\n if (!ctx) throw new Error('Table compound components must be used within Table.Root')\n return ctx\n}\n\n// --- HeaderContext (to distinguish header vs body rowgroup) ---\n\nconst HeaderContext = createContext(false)\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n variant?: TableVariant\n size?: TableSize\n columns: number\n}\n\nfunction Root({children, variant = 'default', size = 'md', columns}: RootProps) {\n return (\n <TableContext.Provider value={{variant, size, columns, isHeader: false}}>\n <html.div role=\"table\" style={styles.root}>\n {children}\n </html.div>\n </TableContext.Provider>\n )\n}\n\n// --- Header ---\n\nfunction Header({children}: {children: ReactNode}) {\n return (\n <HeaderContext.Provider value={true}>\n <html.div role=\"rowgroup\" style={styles.header}>\n {children}\n </html.div>\n </HeaderContext.Provider>\n )\n}\n\n// --- Body ---\n\nfunction Body({children}: {children: ReactNode}) {\n const {variant} = useTable()\n const childArray = Children.toArray(children)\n\n return (\n <HeaderContext.Provider value={false}>\n <html.div role=\"rowgroup\">\n {childArray.map((child, index) => {\n if (variant === 'striped') {\n return (\n <RowIndexContext.Provider key={index} value={index}>\n {child}\n </RowIndexContext.Provider>\n )\n }\n return child\n })}\n </html.div>\n </HeaderContext.Provider>\n )\n}\n\n// Row index context for striped variant\nconst RowIndexContext = createContext<number>(-1)\n\n// --- Row ---\n\nfunction Row({children}: {children: ReactNode}) {\n const {variant, columns} = useTable()\n const isHeader = useContext(HeaderContext)\n const rowIndex = useContext(RowIndexContext)\n const isEvenRow = rowIndex >= 0 && rowIndex % 2 === 1\n const childArray = Children.toArray(children)\n const isLastRow = false // handled by CSS or parent\n\n return (\n <html.div\n role=\"row\"\n style={[\n styles.row,\n styles.gridColumns(columns),\n !isHeader && styles.bodyRow,\n !isHeader && variant === 'striped' && isEvenRow && styles.stripedEven,\n ]}\n >\n {variant === 'bordered'\n ? childArray.map((child, index) => (\n <CellIndexContext.Provider key={index} value={{index, total: childArray.length}}>\n {child}\n </CellIndexContext.Provider>\n ))\n : children}\n </html.div>\n )\n}\n\n// Cell index context for bordered variant\nconst CellIndexContext = createContext<{index: number; total: number}>({\n index: 0,\n total: 0,\n})\n\n// --- HeaderCell ---\n\nfunction HeaderCell({\n children,\n 'aria-label': ariaLabel,\n}: {\n children?: ReactNode\n 'aria-label'?: string\n}) {\n const {size, variant} = useTable()\n const {index, total} = useContext(CellIndexContext)\n const isLast = variant === 'bordered' && index === total - 1\n\n return (\n <html.div\n role=\"columnheader\"\n aria-label={ariaLabel}\n style={[\n styles.headerCell,\n size === 'sm' ? styles.cellSm : styles.cellMd,\n variant === 'bordered' && styles.borderedCell,\n isLast && styles.borderedCellLast,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Cell ---\n\nfunction Cell({children}: {children: ReactNode}) {\n const {size, variant} = useTable()\n const {index, total} = useContext(CellIndexContext)\n const isLast = variant === 'bordered' && index === total - 1\n\n return (\n <html.div\n role=\"cell\"\n style={[\n styles.cell,\n size === 'sm' ? styles.cellSm : styles.cellMd,\n variant === 'bordered' && styles.borderedCell,\n isLast && styles.borderedCellLast,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Export ---\n\nexport const Table = {\n Root,\n Header,\n Body,\n Row,\n HeaderCell,\n Cell,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n rootVertical: {\n flexDirection: 'row',\n },\n list: {\n display: 'flex',\n flexDirection: 'row',\n borderBottomWidth: 1,\n borderBottomStyle: 'solid',\n borderBottomColor: colors.border,\n gap: spacing.xs,\n },\n listVertical: {\n flexDirection: 'column',\n borderBottomWidth: 0,\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n gap: 0,\n },\n tab: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderBottomWidth: 2,\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n cursor: 'pointer',\n transitionProperty: 'color, border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': -2,\n },\n },\n tabVertical: {\n justifyContent: 'flex-start',\n borderBottomWidth: 0,\n borderRightWidth: 2,\n borderRightStyle: 'solid',\n borderRightColor: 'transparent',\n },\n tabActiveHorizontal: {\n color: colors.text,\n borderBottomColor: colors.accent,\n },\n tabActiveVertical: {\n color: colors.text,\n borderRightColor: colors.accent,\n },\n tabDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n color: colors.textMuted,\n },\n panel: {\n paddingTop: spacing.md,\n },\n panelVertical: {\n paddingTop: 0,\n paddingLeft: spacing.md,\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport type Orientation = 'horizontal' | 'vertical'\n\nexport interface TabsContextValue {\n activeValue: string | null\n onSelect: (value: string) => void\n orientation: Orientation\n registerTab: (value: string, disabled: boolean) => () => void\n tabsRef: React.RefObject<Map<string, boolean>>\n orderRef: React.RefObject<string[]>\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null)\n\nexport function useTabs() {\n const ctx = useContext(TabsContext)\n if (!ctx) throw new Error('Tabs compound components must be used within Tabs.Root')\n return ctx\n}\n","import {useCallback, useRef} from 'react'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {Orientation, TabsContextValue} from './TabsContext'\n\ninterface UseTabsRootOptions {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n orientation?: Orientation\n}\n\nexport function useTabsRoot({\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n}: UseTabsRootOptions): TabsContextValue {\n const [activeValue, onSelect] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange\n ? (v) => {\n if (v !== null) onValueChange(v)\n }\n : undefined,\n )\n const tabsRef = useRef(new Map<string, boolean>())\n const orderRef = useRef<string[]>([])\n\n const registerTab = useCallback((value: string, disabled: boolean) => {\n tabsRef.current.set(value, disabled)\n if (!orderRef.current.includes(value)) {\n orderRef.current.push(value)\n }\n return () => {\n tabsRef.current.delete(value)\n orderRef.current = orderRef.current.filter((v) => v !== value)\n }\n }, [])\n\n return {activeValue, onSelect, orientation, registerTab, tabsRef, orderRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {TabsContext, useTabs} from './TabsContext'\nimport {useTabsRoot} from './useTabsRoot'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n orientation?: 'horizontal' | 'vertical'\n}\n\nfunction Root({\n children,\n value,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n}: RootProps) {\n const ctx = useTabsRoot({value, defaultValue, onValueChange, orientation})\n\n return (\n <TabsContext.Provider value={ctx}>\n <html.div style={[styles.root, orientation === 'vertical' && styles.rootVertical]}>\n {children}\n </html.div>\n </TabsContext.Provider>\n )\n}\n\n// --- List ---\n\ninterface ListProps {\n children: ReactNode\n}\n\nfunction List({children}: ListProps) {\n const {orientation, activeValue, onSelect, tabsRef, orderRef} = useTabs()\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const el = listRef.current\n if (!el) return\n\n function handleKeyDown(this: HTMLElement, e: KeyboardEvent) {\n const order = orderRef.current\n const tabs = tabsRef.current\n if (order.length === 0) return\n const listEl = this\n\n const prevKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp'\n const nextKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown'\n\n let targetValue: string | null = null\n\n switch (e.key) {\n case nextKey: {\n e.preventDefault()\n const currentIdx = activeValue ? order.indexOf(activeValue) : -1\n for (let i = 1; i <= order.length; i++) {\n const idx = (currentIdx + i) % order.length\n const val = order[idx]\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case prevKey: {\n e.preventDefault()\n const currentIdx = activeValue ? order.indexOf(activeValue) : 0\n for (let i = 1; i <= order.length; i++) {\n const idx = (currentIdx - i + order.length) % order.length\n const val = order[idx]\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case 'Home': {\n e.preventDefault()\n for (const val of order) {\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case 'End': {\n e.preventDefault()\n for (let i = order.length - 1; i >= 0; i--) {\n if (!tabs.get(order[i])) {\n targetValue = order[i]\n break\n }\n }\n break\n }\n }\n\n if (targetValue) {\n onSelect(targetValue)\n // Focus the newly activated tab button\n const tabEl = listEl.querySelector(\n `[data-tab-value=\"${targetValue}\"]`,\n ) as HTMLElement | null\n tabEl?.focus()\n }\n }\n\n el.addEventListener('keydown', handleKeyDown)\n return () => el.removeEventListener('keydown', handleKeyDown)\n }, [orientation, activeValue, onSelect, tabsRef, orderRef])\n\n return (\n <html.div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n style={[styles.list, orientation === 'vertical' && styles.listVertical]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Tab ---\n\ninterface TabProps {\n value: string\n disabled?: boolean\n children: ReactNode\n}\n\nfunction Tab({value, disabled = false, children}: TabProps) {\n const {activeValue, onSelect, orientation, registerTab} = useTabs()\n const isActive = activeValue === value\n const tabId = useId()\n const panelId = `${tabId}-panel`\n\n useEffect(() => {\n return registerTab(value, disabled)\n }, [value, disabled, registerTab])\n\n const handleClick = () => {\n if (!disabled) {\n onSelect(value)\n }\n }\n\n return (\n <html.button\n type=\"button\"\n role=\"tab\"\n id={tabId}\n aria-selected={isActive}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n data-tab-value={value}\n tabIndex={isActive ? 0 : -1}\n onClick={handleClick}\n style={[\n styles.tab,\n orientation === 'vertical' && styles.tabVertical,\n isActive &&\n (orientation === 'vertical' ? styles.tabActiveVertical : styles.tabActiveHorizontal),\n disabled && styles.tabDisabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Panel ---\n\ninterface PanelProps {\n value: string\n children: ReactNode\n}\n\nfunction Panel({value, children}: PanelProps) {\n const {activeValue, orientation} = useTabs()\n\n if (activeValue !== value) return null\n\n return (\n <html.div\n role=\"tabpanel\"\n style={[styles.panel, orientation === 'vertical' && styles.panelVertical]}\n >\n {children}\n </html.div>\n )\n}\n\nexport const Tabs = {\n Root,\n List,\n Tab,\n Panel,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n width: '100%',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n color: colors.text,\n backgroundColor: colors.bg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n resize: 'vertical' as const,\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 1,\n },\n },\n default: {\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n ':focus': colors.accent,\n },\n },\n error: {\n borderColor: {\n default: colors.error,\n ':focus': colors.error,\n },\n },\n})\n","import {html} from 'react-strict-dom'\nimport {useFieldContext} from '../Field/FieldContext'\nimport {styles} from './styles.css'\n\ntype StrictTextareaProps = React.ComponentProps<typeof html.textarea>\n\nexport type TextareaVariant = 'default' | 'error'\n\ninterface TextareaProps {\n variant?: TextareaVariant\n name?: string\n placeholder?: string\n required?: boolean\n rows?: number\n value?: string\n defaultValue?: string\n disabled?: boolean\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void\n onBlur?: () => void\n ref?: React.Ref<HTMLTextAreaElement>\n}\n\nexport function Textarea({\n variant = 'default',\n name,\n placeholder,\n required,\n rows = 3,\n value,\n defaultValue,\n disabled,\n onChange,\n onBlur,\n ref,\n}: TextareaProps) {\n const ctx = useFieldContext()\n\n const fieldCtx = ctx?.field\n const effectiveName = name ?? fieldCtx?.name\n const effectiveValue = value ?? (fieldCtx ? String(fieldCtx.value ?? '') : undefined)\n const effectiveOnChange = onChange ?? fieldCtx?.onChange\n const effectiveOnBlur = onBlur ?? fieldCtx?.onBlur\n const effectiveRef = ref ?? fieldCtx?.ref\n const effectiveVariant = ctx?.invalid ? 'error' : variant\n\n return (\n <html.textarea\n id={ctx?.controlId}\n name={effectiveName}\n placeholder={placeholder}\n required={required}\n rows={rows}\n value={effectiveValue}\n defaultValue={defaultValue}\n disabled={disabled}\n aria-describedby={\n ctx ? `${ctx.descriptionId} ${ctx.invalid ? ctx.errorId : ''}`.trim() : undefined\n }\n aria-invalid={ctx?.invalid || variant === 'error' || undefined}\n onChange={effectiveOnChange as StrictTextareaProps['onChange']}\n onBlur={effectiveOnBlur as StrictTextareaProps['onBlur']}\n ref={effectiveRef as React.Ref<HTMLTextAreaElement>}\n style={[styles.base, styles[effectiveVariant]]}\n />\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n // Colors\n default: {\n color: colors.text,\n },\n muted: {\n color: colors.textMuted,\n },\n accent: {\n color: colors.accent,\n },\n error: {\n color: colors.errorText,\n },\n success: {\n color: colors.successText,\n },\n warning: {\n color: colors.warningText,\n },\n\n // Weight overrides\n weightNormal: {\n fontWeight: typography.fontWeightNormal,\n },\n weightMedium: {\n fontWeight: typography.fontWeightMedium,\n },\n weightSemibold: {\n fontWeight: typography.fontWeightSemibold,\n },\n weightBold: {\n fontWeight: typography.fontWeightBold,\n },\n\n // Alignment\n alignStart: {\n textAlign: 'start',\n },\n alignCenter: {\n textAlign: 'center',\n },\n alignEnd: {\n textAlign: 'end',\n },\n\n // Truncate\n truncate: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {typePresets} from '@duro-app/tokens/tokens/type-presets.css'\nimport {styles} from './styles.css'\n\nexport type TextVariant = 'bodySm' | 'bodyMd' | 'bodyLg' | 'caption' | 'label' | 'code' | 'overline'\nexport type TextColor = 'default' | 'muted' | 'accent' | 'error' | 'success' | 'warning'\n\ninterface TextProps {\n variant?: TextVariant\n color?: TextColor\n weight?: 'normal' | 'medium' | 'semibold' | 'bold'\n align?: 'start' | 'center' | 'end'\n truncate?: boolean\n as?: 'span' | 'p' | 'div'\n children: ReactNode\n}\n\nconst weightMap = {\n normal: styles.weightNormal,\n medium: styles.weightMedium,\n semibold: styles.weightSemibold,\n bold: styles.weightBold,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nexport function Text({\n variant = 'bodyMd',\n color = 'default',\n weight,\n align,\n truncate,\n as = 'span',\n children,\n}: TextProps) {\n const style = [\n typePresets[variant],\n styles[color],\n weight && weightMap[weight],\n align && alignMap[align],\n truncate && styles.truncate,\n ]\n\n if (as === 'p') return <html.p style={style}>{children}</html.p>\n if (as === 'div') return <html.div style={style}>{children}</html.div>\n return <html.span style={style}>{children}</html.span>\n}\n","import {createContext, useContext} from 'react'\nimport type {ToggleSize} from '../Toggle/Toggle'\n\nexport type Orientation = 'horizontal' | 'vertical'\n\nexport interface ToggleGroupContextValue {\n value: string[]\n toggle: (itemValue: string) => void\n disabled: boolean\n orientation: Orientation\n size: ToggleSize\n}\n\nexport const ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null)\n\nexport function useToggleGroup() {\n return useContext(ToggleGroupContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 1,\n borderStyle: 'solid',\n cursor: 'pointer',\n fontFamily: typography.fontFamily,\n fontWeight: typography.fontWeightMedium,\n transitionProperty: 'background-color, border-color, color, opacity',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {default: 0, ':focus-visible': 2},\n outlineStyle: 'solid',\n outlineColor: colors.accent,\n outlineOffset: 2,\n },\n sizeDefault: {\n padding: `${spacing.sm} ${spacing.md}`,\n fontSize: typography.fontSizeSm,\n borderRadius: radii.sm,\n gap: spacing.sm,\n },\n sizeSmall: {\n padding: `${spacing.xs} ${spacing.sm}`,\n fontSize: typography.fontSizeXs,\n borderRadius: radii.sm,\n gap: spacing.xs,\n },\n unpressed: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n color: colors.textMuted,\n },\n pressed: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n borderColor: colors.accent,\n color: colors.accentContrast,\n },\n grouped: {\n borderWidth: 0,\n borderRadius: 0,\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n})\n","import {type ReactNode, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {useToggleGroup} from '../ToggleGroup/ToggleGroupContext'\nimport {styles} from './styles.css'\n\nexport type ToggleSize = 'default' | 'small'\n\ninterface ToggleProps {\n /** Controlled pressed state (standalone usage). */\n pressed?: boolean\n /** Initial pressed state (uncontrolled, standalone usage). */\n defaultPressed?: boolean\n /** Callback fired when the pressed state changes (standalone usage). */\n onPressedChange?: (pressed: boolean) => void\n /** Unique value when used inside a ToggleGroup. */\n value?: string\n /** Prevents user interaction. */\n disabled?: boolean\n /** Size variant (overridden by ToggleGroup when grouped). */\n size?: ToggleSize\n 'aria-label'?: string\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function Toggle({\n pressed: controlledPressed,\n defaultPressed = false,\n onPressedChange,\n value,\n disabled: disabledProp = false,\n size: sizeProp = 'default',\n 'aria-label': ariaLabel,\n children,\n}: ToggleProps) {\n const group = useToggleGroup()\n\n // When inside a ToggleGroup, derive pressed state from group context\n const groupPressed = group && value !== undefined ? group.value.includes(value) : undefined\n const isGrouped = group !== null\n const disabled = disabledProp || (group?.disabled ?? false)\n const size = group?.size ?? sizeProp\n\n const [standalonePressed, setStandalonePressed] = useControllableValue(\n controlledPressed,\n defaultPressed,\n onPressedChange,\n )\n\n const pressed = groupPressed ?? standalonePressed\n\n const handleClick = useCallback(() => {\n if (disabled) return\n if (isGrouped && value !== undefined) {\n group.toggle(value)\n } else {\n setStandalonePressed(!pressed)\n }\n }, [disabled, isGrouped, value, group, pressed, setStandalonePressed])\n\n return (\n <html.button\n type=\"button\"\n aria-pressed={pressed}\n aria-label={ariaLabel}\n disabled={disabled}\n onClick={handleClick}\n data-pressed={pressed ? '' : undefined}\n style={[\n styles.base,\n sizeMap[size],\n pressed ? styles.pressed : styles.unpressed,\n isGrouped && styles.grouped,\n disabled && styles.disabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {radii} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n overflow: 'hidden',\n },\n vertical: {\n flexDirection: 'column',\n },\n})\n","import {type ReactNode, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {ToggleSize} from '../Toggle/Toggle'\nimport {ToggleGroupContext, type Orientation} from './ToggleGroupContext'\nimport {styles} from './styles.css'\n\ninterface ToggleGroupProps {\n /** Controlled value — array of pressed item values. */\n value?: string[]\n /** Initial value (uncontrolled). */\n defaultValue?: string[]\n /** Callback fired when the set of pressed values changes. */\n onValueChange?: (value: string[]) => void\n /** When false, at most one item can be pressed at a time. */\n multiple?: boolean\n /** Prevents interaction with all items. */\n disabled?: boolean\n /** Layout direction. */\n orientation?: Orientation\n /** Size applied to all child toggles. */\n size?: ToggleSize\n children: ReactNode\n}\n\nexport function ToggleGroup({\n value: controlledValue,\n defaultValue = [],\n onValueChange,\n multiple = false,\n disabled = false,\n orientation = 'horizontal',\n size = 'default',\n children,\n}: ToggleGroupProps) {\n const [value, setValue] = useControllableValue(controlledValue, defaultValue, onValueChange)\n\n const toggle = useCallback(\n (itemValue: string) => {\n const nextPressed = !value.includes(itemValue)\n let next: string[]\n if (multiple) {\n next = nextPressed ? [...value, itemValue] : value.filter((v) => v !== itemValue)\n } else {\n next = nextPressed ? [itemValue] : []\n }\n setValue(next)\n },\n [value, multiple, setValue],\n )\n\n return (\n <ToggleGroupContext.Provider value={{value, toggle, disabled, orientation, size}}>\n <html.div\n role=\"toolbar\"\n aria-orientation={orientation}\n style={[styles.root, orientation === 'vertical' && styles.vertical]}\n >\n {children}\n </html.div>\n </ToggleGroupContext.Provider>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n popup: {\n position: 'absolute',\n zIndex: 50,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n backgroundColor: colors.bgCard,\n color: colors.text,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeXs,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n boxShadow: shadows.md,\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n },\n top: {\n bottom: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginBottom: spacing.xs,\n },\n bottom: {\n top: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginTop: spacing.xs,\n },\n left: {\n right: '100%',\n top: '50%',\n transform: 'translateY(-50%)',\n marginRight: spacing.xs,\n },\n right: {\n left: '100%',\n top: '50%',\n transform: 'translateY(-50%)',\n marginLeft: spacing.xs,\n },\n})\n","import {\n type ReactNode,\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n useId,\n} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\n// --- Context ---\n\ntype Placement = 'top' | 'bottom' | 'left' | 'right'\n\ninterface TooltipContextValue {\n open: boolean\n show: () => void\n hide: () => void\n tooltipId: string\n placement: Placement\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null)\n\nfunction useTooltip() {\n const ctx = useContext(TooltipContext)\n if (!ctx) throw new Error('Tooltip compound components must be used within Tooltip.Root')\n return ctx\n}\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n content: ReactNode\n placement?: Placement\n delay?: number\n}\n\nfunction Root({children, content, placement = 'top', delay = 300}: RootProps) {\n const [open, setOpen] = useState(false)\n const tooltipId = useId()\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const show = useCallback(() => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = setTimeout(() => setOpen(true), delay)\n }, [delay])\n\n const hide = useCallback(() => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = null\n setOpen(false)\n }, [])\n\n return (\n <TooltipContext.Provider value={{open, show, hide, tooltipId, placement}}>\n <html.div style={styles.root}>\n {children}\n {open && (\n <html.div id={tooltipId} role=\"tooltip\" style={[styles.popup, styles[placement]]}>\n {content}\n </html.div>\n )}\n </html.div>\n </TooltipContext.Provider>\n )\n}\n\n// --- Trigger ---\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nfunction Trigger({children}: TriggerProps) {\n const {open, show, hide, tooltipId} = useTooltip()\n\n return (\n <html.div\n onPointerEnter={show}\n onPointerLeave={hide}\n onFocus={show}\n onBlur={hide}\n aria-describedby={open ? tooltipId : undefined}\n >\n {children}\n </html.div>\n )\n}\n\nexport const Tooltip = {\n Root,\n Trigger,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n cursor: 'pointer',\n fontSize: typography.fontSizeSm,\n color: colors.text,\n lineHeight: typography.lineHeight,\n },\n rootDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n track: {\n position: 'relative',\n width: 36,\n height: 20,\n borderRadius: radii.full,\n borderWidth: 0,\n padding: 0,\n cursor: 'inherit',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {default: 0, ':focus-visible': 2},\n outlineStyle: 'solid',\n outlineColor: colors.accent,\n outlineOffset: 2,\n flexShrink: 0,\n },\n trackUnchecked: {\n backgroundColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n },\n trackChecked: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n },\n thumb: {\n position: 'absolute',\n top: 2,\n left: 2,\n width: 16,\n height: 16,\n borderRadius: radii.full,\n backgroundColor: '#fff',\n transitionProperty: 'transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n thumbChecked: {\n transform: 'translateX(16px)',\n },\n input: {\n position: 'absolute',\n width: 1,\n height: 1,\n opacity: 0,\n overflow: 'hidden',\n },\n})\n","import {type ReactNode, useCallback, useRef} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {styles} from './styles.css'\n\ninterface SwitchProps {\n /** Controlled checked state. */\n checked?: boolean\n /** Initial checked state (uncontrolled). */\n defaultChecked?: boolean\n /** Callback fired when the checked state changes. */\n onCheckedChange?: (checked: boolean) => void\n /** Prevents user interaction. */\n disabled?: boolean\n /** Form field name for the hidden input. */\n name?: string\n /** Value submitted when checked. */\n value?: string\n /** Label content rendered beside the switch. */\n children?: ReactNode\n}\n\nexport function Switch({\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n name,\n value,\n children,\n}: SwitchProps) {\n const [checked, setChecked] = useControllableValue(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n )\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleClick = useCallback(() => {\n if (disabled) return\n setChecked(!checked)\n // Keep hidden input in sync for form submission\n if (inputRef.current) {\n inputRef.current.checked = !checked\n }\n }, [disabled, checked, setChecked])\n\n return (\n <html.label style={[styles.root, disabled && styles.rootDisabled]}>\n <html.input\n ref={inputRef}\n type=\"checkbox\"\n role=\"switch\"\n name={name}\n value={value}\n checked={controlledChecked !== undefined ? controlledChecked : undefined}\n defaultChecked={controlledChecked === undefined ? defaultChecked : undefined}\n disabled={disabled}\n aria-checked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onCheckedChange?.(e.target.checked)\n }}\n style={styles.input}\n />\n <html.button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={disabled}\n onClick={handleClick}\n style={[styles.track, checked ? styles.trackChecked : styles.trackUnchecked]}\n >\n <html.span style={[styles.thumb, checked && styles.thumbChecked]} />\n </html.button>\n {children && <html.span>{children}</html.span>}\n </html.label>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'column',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n alignStretch: {alignItems: 'stretch'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type SpacingKey = 'xs' | 'sm' | 'ms' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl'\n\ninterface StackProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end' | 'stretch'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n stretch: styles.alignStretch,\n} as const\n\nexport function Stack({gap = 'md', align = 'stretch', children}: StackProps) {\n return <html.div style={[styles.base, gapMap[gap], alignMap[align]]}>{children}</html.div>\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n alignBaseline: {alignItems: 'baseline'},\n alignStretch: {alignItems: 'stretch'},\n justifyStart: {justifyContent: 'flex-start'},\n justifyCenter: {justifyContent: 'center'},\n justifyEnd: {justifyContent: 'flex-end'},\n justifyBetween: {justifyContent: 'space-between'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface InlineProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch'\n justify?: 'start' | 'center' | 'end' | 'between'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n baseline: styles.alignBaseline,\n stretch: styles.alignStretch,\n} as const\n\nconst justifyMap = {\n start: styles.justifyStart,\n center: styles.justifyCenter,\n end: styles.justifyEnd,\n between: styles.justifyBetween,\n} as const\n\nexport function Inline({gap = 'sm', align = 'center', justify = 'start', children}: InlineProps) {\n return (\n <html.div style={[styles.base, gapMap[gap], alignMap[align], justifyMap[justify]]}>\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n justifyStart: {justifyContent: 'flex-start'},\n justifyCenter: {justifyContent: 'center'},\n justifyEnd: {justifyContent: 'flex-end'},\n justifyBetween: {justifyContent: 'space-between'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface ClusterProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end'\n justify?: 'start' | 'center' | 'end' | 'between'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nconst justifyMap = {\n start: styles.justifyStart,\n center: styles.justifyCenter,\n end: styles.justifyEnd,\n between: styles.justifyBetween,\n} as const\n\nexport function Cluster({gap = 'sm', align = 'start', justify = 'start', children}: ClusterProps) {\n return (\n <html.div style={[styles.base, gapMap[gap], alignMap[align], justifyMap[justify]]}>\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'grid',\n },\n col1: {gridTemplateColumns: '1fr'},\n col2: {gridTemplateColumns: 'repeat(2, 1fr)'},\n col3: {gridTemplateColumns: 'repeat(3, 1fr)'},\n col4: {gridTemplateColumns: 'repeat(4, 1fr)'},\n col5: {gridTemplateColumns: 'repeat(5, 1fr)'},\n col6: {gridTemplateColumns: 'repeat(6, 1fr)'},\n autoFit: (minWidth: string) => ({\n gridTemplateColumns: `repeat(auto-fill, minmax(${minWidth}, 1fr))`,\n }),\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface GridProps {\n gap?: SpacingKey\n columns?: 1 | 2 | 3 | 4 | 5 | 6\n minColumnWidth?: string\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst columnsMap = {\n 1: styles.col1,\n 2: styles.col2,\n 3: styles.col3,\n 4: styles.col4,\n 5: styles.col5,\n 6: styles.col6,\n} as const\n\nexport function Grid({gap = 'md', columns, minColumnWidth, children}: GridProps) {\n const columnStyle = minColumnWidth\n ? styles.autoFit(minColumnWidth)\n : columns\n ? columnsMap[columns]\n : undefined\n\n return <html.div style={[styles.base, gapMap[gap], columnStyle]}>{children}</html.div>\n}\n","import {css} from 'react-strict-dom'\nimport {layoutSpacing} from '@duro-app/tokens/tokens/layout-spacing.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n width: '100%',\n },\n container: {\n width: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n // Max-width presets\n maxSm: {maxWidth: 600},\n maxMd: {maxWidth: 800},\n maxLg: {maxWidth: 1200},\n // Horizontal padding\n padSm: {paddingLeft: layoutSpacing.containerSm, paddingRight: layoutSpacing.containerSm},\n padMd: {paddingLeft: layoutSpacing.containerMd, paddingRight: layoutSpacing.containerMd},\n padLg: {paddingLeft: layoutSpacing.containerLg, paddingRight: layoutSpacing.containerLg},\n // Vertical spacing\n headerPadding: {paddingTop: spacing.lg},\n mainPadding: {paddingTop: spacing.xl, paddingBottom: spacing.xl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type PageShellMaxWidth = 'sm' | 'md' | 'lg' | 'full'\nexport type PageShellPadding = 'sm' | 'md' | 'lg'\n\ninterface PageShellProps {\n /** Max-width preset: sm (600), md (800), lg (1200), full (none). Default: 'lg' */\n maxWidth?: PageShellMaxWidth\n /** Horizontal padding preset. Default: 'md' (24px) */\n padding?: PageShellPadding\n /** Header element rendered above the main content with same constraints */\n header?: ReactNode\n children: ReactNode\n}\n\nconst maxWidthMap = {\n sm: styles.maxSm,\n md: styles.maxMd,\n lg: styles.maxLg,\n full: null,\n} as const\n\nconst paddingMap = {\n sm: styles.padSm,\n md: styles.padMd,\n lg: styles.padLg,\n} as const\n\nexport function PageShell({maxWidth = 'lg', padding = 'md', header, children}: PageShellProps) {\n const mw = maxWidthMap[maxWidth]\n const pad = paddingMap[padding]\n\n return (\n <html.div style={styles.root}>\n {header != null && (\n <html.header style={[styles.container, styles.maxLg, pad, styles.headerPadding]}>\n {header}\n </html.header>\n )}\n <html.main style={[styles.container, mw, pad, styles.mainPadding]}>{children}</html.main>\n </html.div>\n )\n}\n","import {useRef, useState, useEffect} from 'react'\n\nexport type ContainerSize = 'compact' | 'default' | 'spacious'\n\ninterface UseContainerQueryOptions {\n compactBelow?: number\n spaciousAbove?: number\n}\n\nexport function useContainerQuery<T extends HTMLElement = HTMLElement>(\n options: UseContainerQueryOptions = {},\n): {\n ref: React.RefObject<T | null>\n size: ContainerSize\n} {\n const {compactBelow = 480, spaciousAbove = 768} = options\n const ref = useRef<T | null>(null)\n const [size, setSize] = useState<ContainerSize>('default')\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n let rafId: number | null = null\n\n const observer = new ResizeObserver((entries) => {\n if (rafId !== null) cancelAnimationFrame(rafId)\n\n rafId = requestAnimationFrame(() => {\n const entry = entries[0]\n if (!entry) return\n\n const width = entry.contentBoxSize?.[0]?.inlineSize ?? entry.contentRect.width\n\n if (width < compactBelow) {\n setSize('compact')\n } else if (width >= spaciousAbove) {\n setSize('spacious')\n } else {\n setSize('default')\n }\n })\n })\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }, [compactBelow, spaciousAbove])\n\n return {ref, size}\n}\n"],"names":["styleq$1","styleq_2","cache","compiledKey","createStyleq","options","disableCache","disableMix","transform","definedProperties","className","inlineStyle","debugString","nextCache","styles","i","possibleStyle","_i","style","classNameChunk","cacheEntry","definedPropertiesChunk","prop","value","compiledKeyValue","weakMap","subStyle","_prop","_value","styleProps","styleq","optimizedStyleq","merge","dataStyleSrc","result","chunks","pathsMap","chunk","trimmed","path","line","a","button","div","form","heading","header","input","label","main","nav","p","span","textarea","defaultStyles","ReactSharedInternals","require$$0","reactCompilerRuntime_production","size","reactCompilerRuntime_development","dispatcher","compilerRuntimeModule","require$$1","lightTheme","xjvd03b","$$css","lightShadows","x13v825q","highContrastTheme","highContrastShadows","themeMap","light","root","OverlayContainerContext","createContext","useOverlayContainer","useContext","current","document","body","ThemeProvider","t0","$","_c","theme","t1","children","undefined","overlayRef","useRef","overrides","t2","t3","t4","themeStyles","t5","Symbol","for","jsx","_rsdMerge","_rsdDefaultStyles","t6","jsxs","t7","overlay","overlayEmphasized","selectedCount","selectedCountEmphasized","actions","closeButton","closeButtonEmphasized","separator","separatorEmphasized","ActionBarInner","selectedItemCount","selectedLabel","isEmphasized","onClearSelection","dismissible","container","countStr","t8","t9","t10","t11","t12","t13","bar","t14","createPortal","ActionBar","strokeIcons","Fragment","clock","forbidden","shield","lock","key","filledIcons","Icon","name","filled","base","iconWrap","content","error","success","warning","info","defaultIcons","resolveIcon","icon","variant","Alert","resolvedIcon","sizeMd","sizeSm","default","sizeMap","sm","md","Badge","sizeDefault","sizeSmall","primary","secondary","link","inverseSecondary","danger","fullWidth","disabled","small","Button","type","onClick","Callout","elevated","outlined","interactive","sizeCompact","sizeFull","compact","full","Card","rootDisabled","box","boxUnchecked","boxChecked","Checkbox","checked","controlledChecked","defaultChecked","ariaLabel","onChange","isControlled","internalChecked","setInternalChecked","useState","isChecked","e","target","handleChange","opacity","t15","t16","t17","t18","message","action","EmptyState","typePresets","bodySm","bodyMd","bodyLg","caption","code","overline","headingSm","headingMd","headingLg","headingXl","displaySm","displayMd","displayLg","muted","accent","alignStart","alignCenter","alignEnd","defaultVariantMap","alignMap","start","center","end","Heading","level","color","align","resolvedVariant","h1","h2","h3","h4","h5","h6","FieldContext","useFieldContext","FormContext","useFormContext","description","Root","props","insideForm","ControlledRoot","StaticRoot","invalid","invalidProp","id","useId","control","useRHFFormContext","field","fieldState","useController","onBlur","ref","controlId","descriptionId","errorId","errorMessage","ctx","Label","Description","Error","Field","Form","schema","defaultValues","onSubmit","effectTsResolver","resolver","mode","reValidateMode","methods","useForm","formRef","preventDefault","handleSubmit","el","addEventListener","removeEventListener","useEffect","FormProvider","legend","gapXs","gapSm","gapMs","gapMd","gapLg","gapXl","gapMap","xs","ms","lg","xl","gap","Legend","Fieldset","InputGroupContext","useInputGroupContext","inGroup","Input","placeholder","required","minLength","pattern","autoComplete","defaultValue","groupCtx","fieldCtx","effectiveName","effectiveValue","String","effectiveOnChange","effectiveOnBlur","effectiveRef","effectiveVariant","extraProps","trim","wrapper","addon","addonStart","addonEnd","addonClickable","addonDisabled","dynamicStyles","minWidth","val","Addon","position","positionStyle","InputGroup","LinkButton","href","rel","trigger","backdrop","popup","popupEnd","item","itemHighlighted","linkItem","MenuContext","useMenu","useMenuRoot","open","setOpen","highlightedId","setHighlightedId","menuId","rootRef","triggerRef","Map","itemsRef","orderRef","needsInitialHighlightRef","focus","close","prev","toggle","order","length","element","set","map","ids","keys","sort","b","elA","get","elB","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","delete","filter","registerItem","handleKeyDown","order_0","bb54","prev_2","idx_0","indexOf","idx","prev_1","items","prev_0","click","Trigger","localRef","Popup","Item","isHighlighted","handleClick","LinkItem","Menu","viewport","scrollbar","scrollbarVertical","scrollbarHorizontal","scrollbarHidden","scrollbarVisible","thumb","viewportMaxHeight","maxHeight","thumbVertical","height","thumbHorizontal","width","ScrollAreaContext","useScrollArea","useScrollAreaRoot","viewportRef","contentRef","scrollTop","setScrollTop","scrollLeft","setScrollLeft","scrollHeight","setScrollHeight","scrollWidth","setScrollWidth","clientHeight","setClientHeight","clientWidth","setClientWidth","scrolling","setScrolling","scrollTimerRef","vp","clearTimeout","setTimeout","handleScroll","vp_0","observer","ResizeObserver","observe","disconnect","vp_1","passive","Viewport","Content","Scrollbar","orientation","Thumb","draggingRef","startPosRef","startScrollRef","isVertical","thumbSizePercent","Math","max","maxScroll","trackSize","thumbPixelSize","scrollOffset","thumbOffset","thumbStyle","clientY","clientX","setPointerCapture","pointerId","handlePointerDown","e_0","delta","scrollRatio","scrollDelta","handlePointerMove","handlePointerUp","ScrollArea","itemSelected","hidden","SelectContext","useSelect","useControllableValue","controlledValue","internal","setInternal","v","setValue","useSelectRoot","onValueChange","initialLabels","labels","setLabels","listboxId","found","registerLabel","id_0","itemValue","items_0","bb86","prev_3","item_0","Value","display","selectedValue","isSelected","text","textContent","el_0","ItemText","Select","group","groupTrigger","groupTriggerActive","chevron","chevronOpen","itemActive","SideNavContext","useSideNav","activeValue","onSelect","Set","expandedGroups","setExpandedGroups","next","has","add","toggleGroup","includes","push","v_0","_temp","Group","groupKey","defaultExpanded","isExpanded","groupRef","querySelector","hasActiveChild","isActive","SideNav","spinner","srOnly","Spinner","StatusIcon","loggedMessages","errorMsg","msg","strictAttributeSet","isPropAllowed","validateStrictProps","createStrictDOMComponent","TagName","defaultStyle","debugStyle","Component","htmlFor","restProps","hostProps","hostStyleProps","a$1","article$1","aside$1","b$1","bdi$1","bdo$1","blockquote$1","br$1","button$1","code$1","del$1","div$1","em$1","fieldset$1","footer$1","form$1","header$1","hr$1","i$1","img$1","input$1","ins$1","kbd$1","label$1","li$1","main$1","mark$1","nav$1","ol$1","optgroup$1","option$1","p$1","pre$1","s$1","section$1","select$1","span$1","strong$1","sub$1","sup$1","textarea$1","u$1","ul$1","article","aside","bdi","bdo","blockquote","br","del","em","fieldset","footer","hr","img","ins","kbd","li","mark","ol","optgroup","option","pre","s","section","select","strong","sub","sup","u","ul","html","row","rowLastChild","bodyRow","headerCell","cell","cellSm","cellMd","stripedEven","borderedCell","borderedCellLast","gridColumns","columns","TableContext","useTable","HeaderContext","isHeader","Header","Body","T0","T1","childArray","Children","toArray","Provider","child","index","RowIndexContext","Row","rowIndex","isEvenRow","CellIndexContext","total","HeaderCell","isLast","Cell","Table","rootVertical","list","listVertical","tab","tabVertical","tabActiveHorizontal","tabActiveVertical","tabDisabled","panel","panelVertical","TabsContext","useTabs","useTabsRoot","tabsRef","registerTab","List","listRef","tabs","listEl","prevKey","nextKey","targetValue","currentIdx","Tab","tabId","panelId","Panel","Tabs","Textarea","rows","weightNormal","weightMedium","weightSemibold","weightBold","truncate","weightMap","normal","medium","semibold","bold","Text","weight","as","ToggleGroupContext","useToggleGroup","unpressed","pressed","grouped","Toggle","controlledPressed","defaultPressed","onPressedChange","disabledProp","sizeProp","groupPressed","isGrouped","standalonePressed","setStandalonePressed","vertical","ToggleGroup","multiple","nextPressed","top","bottom","left","right","TooltipContext","useTooltip","placement","delay","tooltipId","timerRef","show","hide","Tooltip","track","trackUnchecked","trackChecked","thumbChecked","Switch","onCheckedChange","setChecked","inputRef","alignStretch","gapXxl","gapXxxl","xxl","xxxl","stretch","Stack","alignBaseline","justifyStart","justifyCenter","justifyEnd","justifyBetween","baseline","justifyMap","between","Inline","justify","Cluster","col1","col2","col3","col4","col5","col6","autoFit","columnsMap","Grid","minColumnWidth","columnStyle","maxSm","maxMd","maxLg","padSm","padMd","padLg","headerPadding","mainPadding","maxWidthMap","paddingMap","PageShell","maxWidth","padding","mw","pad","useContainerQuery","compactBelow","spaciousAbove","setSize","rafId","entries","cancelAnimationFrame","requestAnimationFrame","entry","contentBoxSize","inlineSize","contentRect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,61]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/react-strict-dom@0.0.55_postcss@8.5.6_react-dom@19.2.4_react@19.2.4__react-native@0.84._1278be21509893d955b57d0db9435779/node_modules/react-strict-dom/dist/web/runtime.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-compiler-runtime.production.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-compiler-runtime.development.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/compiler-runtime.js","../../tokens/src/themes/light.css.ts","../../tokens/src/themes/high-contrast.css.ts","../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/ActionBar/styles.css.ts","../src/components/ActionBar/ActionBar.tsx","../src/components/Icon/Icon.tsx","../src/components/Alert/styles.css.ts","../src/components/Alert/Alert.tsx","../src/components/Badge/styles.css.ts","../src/components/Badge/Badge.tsx","../src/components/Button/styles.css.ts","../src/components/Button/Button.tsx","../src/components/Callout/styles.css.ts","../src/components/Callout/Callout.tsx","../src/components/Card/styles.css.ts","../src/components/Card/Card.tsx","../src/components/Checkbox/styles.css.ts","../src/components/Checkbox/Checkbox.tsx","../src/components/EmptyState/styles.css.ts","../src/components/EmptyState/EmptyState.tsx","../../tokens/src/tokens/type-presets.css.ts","../src/components/Heading/styles.css.ts","../src/components/Heading/Heading.tsx","../src/components/Field/FieldContext.ts","../src/components/Form/FormContext.ts","../src/components/Field/styles.css.ts","../src/components/Field/Field.tsx","../src/components/Form/Form.tsx","../src/components/Fieldset/styles.css.ts","../src/components/Fieldset/Fieldset.tsx","../src/components/InputGroup/InputGroupContext.ts","../src/components/Input/styles.css.ts","../src/components/Input/Input.tsx","../src/components/InputGroup/styles.css.ts","../src/components/InputGroup/InputGroup.tsx","../src/components/LinkButton/styles.css.ts","../src/components/LinkButton/LinkButton.tsx","../src/components/Menu/styles.css.ts","../src/components/Menu/MenuContext.ts","../src/components/Menu/useMenuRoot.ts","../src/components/Menu/Menu.tsx","../src/components/ScrollArea/styles.css.ts","../src/components/ScrollArea/ScrollAreaContext.ts","../src/components/ScrollArea/useScrollAreaRoot.ts","../src/components/ScrollArea/ScrollArea.tsx","../src/components/Select/styles.css.ts","../src/components/Select/SelectContext.ts","../src/hooks/useControllableValue.ts","../src/components/Select/useSelectRoot.ts","../src/components/Select/Select.tsx","../src/components/SideNav/styles.css.ts","../src/components/SideNav/SideNavContext.ts","../src/components/SideNav/SideNav.tsx","../src/components/Spinner/styles.css.ts","../src/components/Spinner/Spinner.tsx","../src/components/StatusIcon/styles.css.ts","../src/components/StatusIcon/StatusIcon.tsx","../../../node_modules/.pnpm/react-strict-dom@0.0.55_postcss@8.5.6_react-dom@19.2.4_react@19.2.4__react-native@0.84._1278be21509893d955b57d0db9435779/node_modules/react-strict-dom/dist/web/index.js","../src/components/Table/styles.css.ts","../src/components/Table/Table.tsx","../src/components/Tabs/styles.css.ts","../src/components/Tabs/TabsContext.ts","../src/components/Tabs/useTabsRoot.ts","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/styles.css.ts","../src/components/Textarea/Textarea.tsx","../src/components/Text/styles.css.ts","../src/components/Text/Text.tsx","../src/components/ToggleGroup/ToggleGroupContext.ts","../src/components/Toggle/styles.css.ts","../src/components/Toggle/Toggle.tsx","../src/components/ToggleGroup/styles.css.ts","../src/components/ToggleGroup/ToggleGroup.tsx","../src/components/Tooltip/styles.css.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/Switch/styles.css.ts","../src/components/Switch/Switch.tsx","../src/components/Stack/styles.css.ts","../src/components/Stack/Stack.tsx","../src/components/Inline/styles.css.ts","../src/components/Inline/Inline.tsx","../src/components/Cluster/styles.css.ts","../src/components/Cluster/Cluster.tsx","../src/components/Grid/styles.css.ts","../src/components/Grid/Grid.tsx","../src/components/PageShell/styles.css.ts","../src/components/PageShell/PageShell.tsx","../src/hooks/useContainerQuery.ts"],"sourcesContent":["/**\n * @license react-strict-dom\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\nimport * as stylex from '@stylexjs/stylex';\n\nvar styleq$1 = {};\n\nObject.defineProperty(styleq$1, \"__esModule\", {\n value: true\n});\nvar styleq_2 = styleq$1.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n return function styleq() {\n var definedProperties = [];\n var className = '';\n var inlineStyle = null;\n var debugString = '';\n var nextCache = disableCache ? null : cache;\n var styles = new Array(arguments.length);\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n }\n while (styles.length > 0) {\n var possibleStyle = styles.pop();\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n }\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n continue;\n }\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n if (style.$$css != null) {\n var classNameChunk = '';\n if (nextCache != null && nextCache.has(style)) {\n var cacheEntry = nextCache.get(style);\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0];\n debugString = cacheEntry[2];\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[3];\n }\n } else {\n var definedPropertiesChunk = [];\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) {\n var compiledKeyValue = style[prop];\n if (compiledKeyValue !== true) {\n debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;\n }\n continue;\n }\n if (typeof value === 'string' || value === null) {\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n }\n if (nextCache != null) {\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, debugString, weakMap]);\n nextCache = weakMap;\n }\n }\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n for (var _prop in style) {\n var _value = style[_prop];\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n if (subStyle == null) {\n subStyle = {};\n }\n subStyle[_prop] = _value;\n }\n definedProperties.push(_prop);\n nextCache = null;\n }\n }\n }\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n var styleProps = [className, inlineStyle, debugString];\n return styleProps;\n };\n}\nvar styleq = styleq_2 = styleq$1.styleq = createStyleq();\nstyleq.factory = createStyleq;\n\nconst optimizedStyleq = styleq_2.factory({\n disableMix: true\n});\nfunction merge(...styles) {\n const [className, style, dataStyleSrc] = optimizedStyleq(styles);\n const result = {};\n if (className != null && className !== '') {\n result.className = className;\n }\n if (style != null) {\n result.style = style;\n }\n if (dataStyleSrc != null && dataStyleSrc !== '') {\n const chunks = dataStyleSrc.split(';');\n const pathsMap = {};\n for (const chunk of chunks) {\n const trimmed = chunk.trim();\n const [path, line] = trimmed.split(':');\n if (line != null) {\n pathsMap[path] = pathsMap[path] != null ? `${pathsMap[path]},${line}` : line;\n }\n }\n result['data-style-src'] = Object.keys(pathsMap).map(path => `${path}:${pathsMap[path]}`).join('; ');\n }\n return result;\n}\n\nconst styles = stylex.create({\n block: {\n margin: 0,\n padding: 0\n },\n inline: {\n margin: 0,\n padding: 0,\n textDecoration: 'none',\n textAlign: 'inherit',\n wordWrap: 'break-word'\n },\n inlineblock: {\n borderStyle: 'solid',\n margin: 0,\n padding: 0\n },\n button: {\n borderWidth: 1\n },\n codePre: {\n fontFamily: 'monospace, \"monospace\"',\n fontSize: '1em',\n overflow: 'auto'\n },\n heading: {\n fontSize: '1.5rem',\n wordWrap: 'break-word'\n },\n hr: {\n backgroundColor: 'black',\n borderStyle: 'none',\n borderWidth: 0,\n boxSizing: 'border-box',\n height: 1\n },\n img: {\n aspectRatio: 'attr(width) / attr(height)',\n height: 'auto',\n maxWidth: '100%'\n },\n input: {\n borderWidth: 1,\n borderStyle: 'solid'\n },\n list: {\n listStyle: 'none'\n },\n strong: {\n fontWeight: 'bold'\n },\n textarea: {\n borderWidth: 1,\n borderStyle: 'solid',\n resize: 'vertical'\n }\n});\nconst a = styles.inline;\nconst article = styles.block;\nconst aside = styles.block;\nconst b = styles.inline;\nconst bdi = styles.inline;\nconst bdo = styles.inline;\nconst blockquote = styles.block;\nconst br = null;\nconst button = [styles.inlineblock, styles.button];\nconst code = [styles.inline, styles.codePre];\nconst del = null;\nconst div = styles.block;\nconst em = styles.inline;\nconst fieldset = styles.block;\nconst footer = styles.block;\nconst form = styles.block;\nconst heading = [styles.block, styles.heading];\nconst header = styles.block;\nconst hr = [styles.block, styles.hr];\nconst i = styles.inline;\nconst img = styles.img;\nconst input = [styles.inlineblock, styles.input];\nconst ins = null;\nconst kbd = null;\nconst label = styles.inline;\nconst li = styles.block;\nconst main = styles.block;\nconst mark = styles.inline;\nconst nav = styles.block;\nconst ol = [styles.list, styles.block];\nconst optgroup = null;\nconst option = null;\nconst p = styles.block;\nconst pre = [styles.block, styles.codePre];\nconst s = null;\nconst section = styles.block;\nconst select = styles.inlineblock;\nconst span = styles.inline;\nconst strong = [styles.inline, styles.strong];\nconst sub = styles.inline;\nconst sup = styles.inline;\nconst textarea = [styles.inlineblock, styles.textarea];\nconst u = null;\nconst ul = [styles.list, styles.block];\nconst defaultStyles = {\n a: a,\n article: article,\n aside: aside,\n b: b,\n bdi: bdi,\n bdo: bdo,\n blockquote: blockquote,\n br: br,\n button: button,\n code: code,\n del: del,\n div: div,\n em: em,\n fieldset: fieldset,\n footer: footer,\n form: form,\n h1: heading,\n h2: heading,\n h3: heading,\n h4: heading,\n h5: heading,\n h6: heading,\n header: header,\n hr: hr,\n i: i,\n img: img,\n input: input,\n ins: ins,\n kbd: kbd,\n label: label,\n li: li,\n main: main,\n mark: mark,\n nav: nav,\n ol: ol,\n optgroup: optgroup,\n option: option,\n p: p,\n pre: pre,\n s: s,\n section: section,\n select: select,\n span: span,\n strong: strong,\n sub: sub,\n sup: sup,\n textarea: textarea,\n u: u,\n ul: ul\n};\n\nexport { defaultStyles, merge };\n","/**\n * @license React\n * react-compiler-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nexports.c = function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n};\n","/**\n * @license React\n * react-compiler-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n var ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n exports.c = function (size) {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher.useMemoCache(size);\n };\n })();\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-compiler-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-compiler-runtime.development.js');\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const lightTheme = css.createTheme(colors, {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n})\n\nexport const lightShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.08)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.16)',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const highContrastTheme = css.createTheme(colors, {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n})\n\nexport const highContrastShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.6)',\n md: '0 4px 12px rgba(0, 0, 0, 0.7)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.8)',\n})\n","import {type ReactNode, createContext, useContext, useRef} from 'react'\nimport {css, html} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {lightTheme, lightShadows} from '@duro-app/tokens/themes/light.css'\nimport {highContrastTheme, highContrastShadows} from '@duro-app/tokens/themes/high-contrast.css'\n\nexport type ThemeName = 'dark' | 'light' | 'high-contrast'\n\ninterface ThemeProviderProps {\n theme?: ThemeName\n children: ReactNode\n}\n\nconst themeMap: Partial<Record<ThemeName, readonly [typeof lightTheme, typeof lightShadows]>> = {\n light: [lightTheme, lightShadows],\n 'high-contrast': [highContrastTheme, highContrastShadows],\n}\n\nconst styles = css.create({\n root: {\n display: 'contents',\n color: colors.text,\n },\n})\n\n// react-strict-dom's style prop rejects Theme<VarGroup<{named keys}>> because the\n// concrete VarGroup lacks the generic index signature. This is a known typing gap.\ntype DivStyle = Parameters<typeof html.div>[0]['style']\n\n/** Context providing a portal target inside the themed tree. */\nconst OverlayContainerContext = createContext<React.RefObject<HTMLDivElement | null> | null>(null)\n\n/** Returns the overlay container element for portals (inside the ThemeProvider). */\nexport function useOverlayContainer(): HTMLElement {\n const ref = useContext(OverlayContainerContext)\n return ref?.current ?? (typeof document !== 'undefined' ? document.body : null!)\n}\n\nexport function ThemeProvider({theme = 'dark', children}: ThemeProviderProps) {\n const overlayRef = useRef<HTMLDivElement>(null)\n const overrides = themeMap[theme]\n const themeStyles = [overrides?.[0], overrides?.[1], styles.root] as DivStyle\n\n return (\n <html.div style={themeStyles}>\n <OverlayContainerContext.Provider value={overlayRef}>\n {children}\n <html.div ref={overlayRef} />\n </OverlayContainerContext.Provider>\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n overlay: {\n position: 'fixed',\n bottom: spacing.lg,\n left: '50%',\n transform: 'translateX(-50%)',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.md,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.md,\n boxShadow: shadows.lg,\n zIndex: 50,\n maxWidth: 'calc(100vw - 48px)',\n },\n overlayEmphasized: {\n backgroundColor: colors.accent,\n borderColor: colors.accent,\n },\n selectedCount: {\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n fontFamily: typography.fontFamily,\n color: colors.text,\n whiteSpace: 'nowrap',\n },\n selectedCountEmphasized: {\n color: colors.accentContrast,\n },\n actions: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.sm,\n },\n closeButton: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n padding: 0,\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderRadius: radii.sm,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n cursor: 'pointer',\n transitionProperty: 'color, background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 2,\n },\n },\n closeButtonEmphasized: {\n color: {\n default: colors.accentContrast,\n ':hover': colors.accentContrast,\n },\n opacity: {\n default: 0.7,\n ':hover': 1,\n },\n },\n separator: {\n width: 1,\n alignSelf: 'stretch',\n backgroundColor: colors.border,\n marginTop: spacing.xs,\n marginBottom: spacing.xs,\n },\n separatorEmphasized: {\n backgroundColor: colors.accentContrast,\n opacity: 0.3,\n },\n})\n","import type {ReactNode} from 'react'\nimport {createPortal} from 'react-dom'\nimport {html} from 'react-strict-dom'\nimport {useOverlayContainer} from '../ThemeProvider/ThemeProvider'\nimport {styles} from './styles.css'\n\nexport interface ActionBarProps {\n /** Number of selected items, or 'all'. Hidden when 0. */\n selectedItemCount: number | 'all'\n /** Label for the selection count. Receives the count string. */\n selectedLabel?: (count: string) => string\n /** Whether to use emphasized (accent) styling. */\n isEmphasized?: boolean\n /** Called when the clear/close button is pressed. */\n onClearSelection: () => void\n /** Whether the bar can be dismissed. When false, the close button is hidden. @default true */\n dismissible?: boolean\n /** Action buttons to display. */\n children: ReactNode\n}\n\nfunction ActionBarInner({\n selectedItemCount,\n selectedLabel,\n isEmphasized = false,\n onClearSelection,\n dismissible = true,\n children,\n}: ActionBarProps) {\n const container = useOverlayContainer()\n\n if (selectedItemCount === 0) return null\n\n const countStr = selectedItemCount === 'all' ? 'All' : `${selectedItemCount}`\n const label = selectedLabel ? selectedLabel(countStr) : `${countStr} selected`\n\n const bar = (\n <html.div\n role=\"toolbar\"\n aria-label={label}\n style={[styles.overlay, isEmphasized && styles.overlayEmphasized]}\n >\n <html.span style={[styles.selectedCount, isEmphasized && styles.selectedCountEmphasized]}>\n {label}\n </html.span>\n <html.div style={[styles.separator, isEmphasized && styles.separatorEmphasized]} />\n <html.div style={styles.actions}>{children}</html.div>\n {dismissible && (\n <html.button\n type=\"button\"\n aria-label=\"Clear selection\"\n onClick={onClearSelection}\n style={[styles.closeButton, isEmphasized && styles.closeButtonEmphasized]}\n >\n <svg width={10} height={10} viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 1l8 8M9 1l-8 8\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n />\n </svg>\n </html.button>\n )}\n </html.div>\n )\n\n if (container) {\n return createPortal(bar, container)\n }\n\n return bar\n}\n\nexport const ActionBar = ActionBarInner\n","import type {ReactNode} from 'react'\n\nexport type IconName =\n | 'x-circle'\n | 'check-circle'\n | 'check-done'\n | 'clock'\n | 'forbidden'\n | 'info-circle'\n | 'alert-triangle'\n | 'shield'\n | 'lock'\n | 'key'\n // Filled variants (solid shape with cutout symbol)\n | 'info-circle-filled'\n | 'alert-triangle-filled'\n | 'check-circle-filled'\n | 'x-circle-filled'\n | 'shield-filled'\n | 'lock-filled'\n\n/** Stroke-based icons (Feather/Lucide style) */\nconst strokeIcons: Partial<Record<IconName, ReactNode>> = {\n 'x-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </>\n ),\n 'check-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"16 10 11 15 8 12\" />\n </>\n ),\n 'check-done': (\n <>\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </>\n ),\n clock: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"12 6 12 12 16 14\" />\n </>\n ),\n forbidden: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\" />\n </>\n ),\n 'info-circle': (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </>\n ),\n 'alert-triangle': (\n <>\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </>\n ),\n shield: <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />,\n lock: (\n <>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>\n ),\n key: (\n <>\n <path d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.78 7.78 5.5 5.5 0 0 1 7.78-7.78zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\" />\n </>\n ),\n}\n\n/**\n * Filled icons — solid shape with evenodd cutout for the inner symbol.\n * The cutout reveals the background color, so they work on any theme.\n * Uses fill=\"currentColor\" only, no stroke.\n */\nconst filledIcons: Partial<Record<IconName, ReactNode>> = {\n // Filled circle with \"i\" cutout (dot + line)\n 'info-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-.75 6a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0zM11 11a1 1 0 1 1 2 0v5a1 1 0 1 1-2 0v-5z\"\n />\n ),\n // Filled triangle with \"!\" cutout\n 'alert-triangle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM11 10a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0v-3zm.25 6a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z\"\n />\n ),\n // Filled circle with checkmark cutout\n 'check-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm4.707 8.707a1 1 0 0 0-1.414-1.414L11 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l5-5z\"\n />\n ),\n // Filled circle with X cutout\n 'x-circle-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM9.707 8.293a1 1 0 0 0-1.414 1.414L10.586 12l-2.293 2.293a1 1 0 1 0 1.414 1.414L12 13.414l2.293 2.293a1 1 0 0 0 1.414-1.414L13.414 12l2.293-2.293a1 1 0 0 0-1.414-1.414L12 10.586 9.707 8.293z\"\n />\n ),\n // Filled shield with checkmark cutout\n 'shield-filled': (\n <path\n fillRule=\"evenodd\"\n d=\"M12 1L3 5v7c0 6.5 8.5 10.5 9 10.73.5-.23 9-4.23 9-10.73V5l-9-4zm3.707 8.707a1 1 0 0 0-1.414-1.414L11 11.586l-1.293-1.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4z\"\n />\n ),\n // Filled lock body with stroke shackle\n 'lock-filled': (\n <>\n <path\n d=\"M7 11V7a5 5 0 0 1 10 0v4\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n </>\n ),\n}\n\ninterface IconProps {\n name: IconName\n size?: number\n}\n\nexport function Icon({name, size = 24}: IconProps) {\n const filled = filledIcons[name]\n if (filled) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width={size} height={size}>\n {filled}\n </svg>\n )\n }\n\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n width={size}\n height={size}\n >\n {strokeIcons[name]}\n </svg>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: spacing.sm,\n padding: spacing.md,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n },\n iconWrap: {\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: 1,\n },\n content: {\n flex: 1,\n minWidth: 0,\n },\n error: {\n backgroundColor: colors.errorBg,\n borderColor: colors.errorBorder,\n color: colors.errorText,\n },\n success: {\n backgroundColor: colors.successBg,\n borderColor: colors.successBorder,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n borderColor: colors.warningBorder,\n color: colors.warningText,\n },\n info: {\n backgroundColor: colors.infoBg,\n borderColor: colors.infoBorder,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type AlertVariant = 'error' | 'success' | 'warning' | 'info'\n\nconst defaultIcons: Record<AlertVariant, IconName> = {\n info: 'info-circle-filled',\n warning: 'alert-triangle-filled',\n success: 'check-circle-filled',\n error: 'x-circle-filled',\n}\n\ninterface AlertProps {\n variant?: AlertVariant\n /** Built-in icon name, custom ReactNode, or false to hide. Defaults to variant icon. */\n icon?: IconName | ReactNode | false\n children: ReactNode\n}\n\nfunction resolveIcon(icon: AlertProps['icon'], variant: AlertVariant): ReactNode | null {\n if (icon === false) return null\n if (icon === undefined) return <Icon name={defaultIcons[variant]} size={18} />\n if (typeof icon === 'string') return <Icon name={icon as IconName} size={18} />\n return icon\n}\n\nexport function Alert({variant = 'info', icon, children}: AlertProps) {\n const resolvedIcon = resolveIcon(icon, variant)\n\n return (\n <html.div role=\"alert\" style={[styles.base, styles[variant]]}>\n {resolvedIcon ? (\n <>\n <html.div style={styles.iconWrap}>{resolvedIcon}</html.div>\n <html.div style={styles.content}>{children}</html.div>\n </>\n ) : (\n children\n )}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: typography.fontFamily,\n fontWeight: typography.fontWeightMedium,\n lineHeight: 1,\n borderRadius: radii.full,\n whiteSpace: 'nowrap',\n },\n sizeMd: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n sizeSm: {\n paddingTop: 2,\n paddingBottom: 2,\n paddingLeft: spacing.xs,\n paddingRight: spacing.xs,\n fontSize: '0.625rem',\n },\n default: {\n backgroundColor: colors.bgCardHover,\n color: colors.textMuted,\n },\n success: {\n backgroundColor: colors.successBg,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n color: colors.warningText,\n },\n error: {\n backgroundColor: colors.errorBg,\n color: colors.errorText,\n },\n info: {\n backgroundColor: colors.infoBg,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info'\nexport type BadgeSize = 'sm' | 'md'\n\ninterface BadgeProps {\n variant?: BadgeVariant\n size?: BadgeSize\n children: ReactNode\n}\n\nconst sizeMap = {\n sm: styles.sizeSm,\n md: styles.sizeMd,\n} as const\n\nexport function Badge({variant = 'default', size = 'md', children}: BadgeProps) {\n return <html.span style={[styles.base, sizeMap[size], styles[variant]]}>{children}</html.span>\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color, color, opacity',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 2,\n },\n },\n sizeDefault: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n },\n sizeSmall: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n primary: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n ':active': colors.accentHover,\n },\n borderColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n color: colors.accentContrast,\n },\n secondary: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderColor: colors.border,\n color: colors.textMuted,\n },\n link: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n color: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n textDecoration: {\n default: 'none',\n ':hover': 'underline',\n },\n paddingLeft: 0,\n paddingRight: 0,\n },\n inverseSecondary: {\n backgroundColor: {\n default: 'rgba(0, 0, 0, 0.10)',\n ':hover': 'rgba(0, 0, 0, 0.18)',\n },\n borderColor: {\n default: 'rgba(0, 0, 0, 0.55)',\n ':hover': 'rgba(0, 0, 0, 0.70)',\n },\n color: colors.accentContrast,\n },\n danger: {\n backgroundColor: {\n default: colors.error,\n ':hover': colors.errorHover,\n ':active': colors.errorHover,\n },\n borderColor: {\n default: colors.error,\n ':hover': colors.errorHover,\n },\n color: colors.errorContrast,\n },\n fullWidth: {\n width: '100%',\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'inverseSecondary' | 'link' | 'danger'\nexport type ButtonSize = 'default' | 'small'\n\ninterface ButtonProps {\n variant?: ButtonVariant\n size?: ButtonSize\n fullWidth?: boolean\n disabled?: boolean\n type?: 'button' | 'submit'\n onClick?: () => void\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function Button({\n variant = 'primary',\n size = 'default',\n fullWidth = false,\n disabled = false,\n type = 'button',\n onClick,\n children,\n}: ButtonProps) {\n return (\n <html.button\n type={type}\n disabled={disabled}\n onClick={onClick}\n style={[\n styles.base,\n sizeMap[size],\n styles[variant],\n fullWidth && styles.fullWidth,\n disabled && styles.disabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n padding: spacing.md,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n overflow: 'hidden', // contain the float\n },\n icon: {\n float: 'left',\n marginRight: spacing.sm,\n marginBottom: spacing.xs,\n marginTop: 2,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n error: {\n backgroundColor: colors.errorBg,\n borderColor: colors.errorBorder,\n color: colors.errorText,\n },\n success: {\n backgroundColor: colors.successBg,\n borderColor: colors.successBorder,\n color: colors.successText,\n },\n warning: {\n backgroundColor: colors.warningBg,\n borderColor: colors.warningBorder,\n color: colors.warningText,\n },\n info: {\n backgroundColor: colors.infoBg,\n borderColor: colors.infoBorder,\n color: colors.infoText,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type CalloutVariant = 'error' | 'success' | 'warning' | 'info'\n\nconst defaultIcons: Record<CalloutVariant, IconName> = {\n info: 'info-circle-filled',\n warning: 'alert-triangle-filled',\n success: 'check-circle-filled',\n error: 'x-circle-filled',\n}\n\ninterface CalloutProps {\n variant?: CalloutVariant\n /** Built-in icon name, custom ReactNode, or false to hide. Defaults to variant icon. */\n icon?: IconName | ReactNode | false\n children: ReactNode\n}\n\nfunction resolveIcon(icon: CalloutProps['icon'], variant: CalloutVariant): ReactNode | null {\n if (icon === false) return null\n if (icon === undefined) return <Icon name={defaultIcons[variant]} size={36} />\n if (typeof icon === 'string') return <Icon name={icon as IconName} size={36} />\n return icon\n}\n\nexport function Callout({variant = 'info', icon, children}: CalloutProps) {\n const resolvedIcon = resolveIcon(icon, variant)\n\n return (\n <html.div role=\"note\" style={[styles.base, styles[variant]]}>\n {resolvedIcon && <html.span style={styles.icon}>{resolvedIcon}</html.span>}\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n base: {\n backgroundColor: colors.bgCard,\n color: colors.text,\n fontFamily: typography.fontFamily,\n },\n // Variants\n elevated: {\n borderRadius: radii.lg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n boxShadow: shadows.md,\n },\n outlined: {\n borderRadius: radii.md,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n },\n filled: {\n borderRadius: radii.md,\n },\n interactive: {\n borderRadius: radii.md,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':hover': colors.accent,\n },\n backgroundColor: {\n default: colors.bgCard,\n ':hover': colors.bgCardHover,\n },\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color, transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n transform: {\n default: 'translateY(0)',\n ':hover': 'translateY(-2px)',\n },\n },\n // Sizes (padding)\n sizeDefault: {\n padding: spacing.lg,\n },\n sizeCompact: {\n padding: spacing.md,\n },\n sizeFull: {\n padding: spacing.xl,\n },\n // Header\n header: {\n fontSize: typography.fontSizeLg,\n fontWeight: typography.fontWeightSemibold,\n marginBottom: spacing.md,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type CardVariant = 'elevated' | 'outlined' | 'filled' | 'interactive'\nexport type CardSize = 'default' | 'compact' | 'full'\n\ninterface CardProps {\n variant?: CardVariant\n size?: CardSize\n header?: string\n onClick?: () => void\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n compact: styles.sizeCompact,\n full: styles.sizeFull,\n} as const\n\nexport function Card({\n variant = 'outlined',\n size = 'default',\n header,\n onClick,\n children,\n}: CardProps) {\n return (\n <html.div onClick={onClick} style={[styles.base, styles[variant], sizeMap[size]]}>\n {header && <html.div style={styles.header}>{header}</html.div>}\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n cursor: 'pointer',\n fontSize: typography.fontSizeSm,\n color: colors.text,\n lineHeight: typography.lineHeight,\n },\n rootDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n box: {\n width: 18,\n height: 18,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n transitionProperty: 'background-color, border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n boxUnchecked: {\n backgroundColor: colors.bg,\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n },\n boxChecked: {\n backgroundColor: colors.accent,\n borderColor: colors.accent,\n },\n check: {\n width: 12,\n height: 12,\n color: colors.accentContrast,\n },\n input: {\n position: 'absolute',\n width: 1,\n height: 1,\n opacity: 0,\n overflow: 'hidden',\n },\n})\n","import {type ReactNode, useState, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\ninterface CheckboxProps {\n name?: string\n value?: string\n checked?: boolean\n defaultChecked?: boolean\n disabled?: boolean\n /** Accessible label when no visible label (children) is provided. */\n 'aria-label'?: string\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n children?: ReactNode\n}\n\nexport function Checkbox({\n name,\n value,\n checked: controlledChecked,\n defaultChecked = false,\n disabled = false,\n 'aria-label': ariaLabel,\n onChange,\n children,\n}: CheckboxProps) {\n const isControlled = controlledChecked !== undefined\n const [internalChecked, setInternalChecked] = useState(defaultChecked)\n const isChecked = isControlled ? controlledChecked : internalChecked\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(e.target.checked)\n }\n onChange?.(e)\n },\n [isControlled, onChange],\n )\n\n return (\n <html.label style={[styles.root, disabled && styles.rootDisabled]}>\n <html.input\n type=\"checkbox\"\n name={name}\n value={value}\n checked={isControlled ? controlledChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled}\n aria-label={!children ? ariaLabel : undefined}\n onChange={handleChange}\n style={styles.input}\n />\n <html.span\n style={[styles.box, isChecked ? styles.boxChecked : styles.boxUnchecked]}\n aria-hidden\n >\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n style={{opacity: isChecked ? 1 : 0}}\n >\n <polyline\n points=\"2.5 6 5 8.5 9.5 3.5\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </html.span>\n {children && <html.span>{children}</html.span>}\n </html.label>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n paddingTop: spacing.xl,\n paddingBottom: spacing.xl,\n textAlign: 'center',\n },\n message: {\n fontSize: typography.fontSizeSm,\n color: colors.textMuted,\n lineHeight: typography.lineHeight,\n },\n action: {\n marginTop: spacing.sm,\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\ninterface EmptyStateProps {\n message: string\n icon?: ReactNode\n action?: ReactNode\n}\n\nexport function EmptyState({message, icon, action}: EmptyStateProps) {\n return (\n <html.div style={styles.root}>\n {icon}\n <html.p style={styles.message}>{message}</html.p>\n {action && <html.div style={styles.action}>{action}</html.div>}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {typography, typeScale} from './typography.css'\n\nexport const typePresets = css.create({\n // Body\n bodySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize4,\n lineHeight: typeScale.lineHeight4,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize5,\n lineHeight: typeScale.lineHeight5,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n\n // UI\n caption: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingWide,\n },\n label: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightMedium,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n code: {\n fontFamily: typography.fontFamilyMono,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n overline: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingWide,\n textTransform: 'uppercase' as const,\n },\n\n // Heading\n headingSm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize6,\n lineHeight: typeScale.lineHeight6,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize7,\n lineHeight: typeScale.lineHeight7,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize8,\n lineHeight: typeScale.lineHeight8,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingXl: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize9,\n lineHeight: typeScale.lineHeight9,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n\n // Display (fluid)\n displaySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displaySm,\n lineHeight: 1.2,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayMd,\n lineHeight: 1.15,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayLg,\n lineHeight: 1.1,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\n\nexport const styles = css.create({\n // Colors\n default: {\n color: colors.text,\n },\n muted: {\n color: colors.textMuted,\n },\n accent: {\n color: colors.accent,\n },\n\n // Alignment\n alignStart: {\n textAlign: 'start',\n },\n alignCenter: {\n textAlign: 'center',\n },\n alignEnd: {\n textAlign: 'end',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {typePresets} from '@duro-app/tokens/tokens/type-presets.css'\nimport {styles} from './styles.css'\n\nexport type HeadingVariant =\n | 'displayLg'\n | 'displayMd'\n | 'displaySm'\n | 'headingXl'\n | 'headingLg'\n | 'headingMd'\n | 'headingSm'\n\ninterface HeadingProps {\n level: 1 | 2 | 3 | 4 | 5 | 6\n variant?: HeadingVariant\n color?: 'default' | 'muted' | 'accent'\n align?: 'start' | 'center' | 'end'\n children: ReactNode\n}\n\nconst defaultVariantMap: Record<number, HeadingVariant> = {\n 1: 'headingXl',\n 2: 'headingLg',\n 3: 'headingMd',\n 4: 'headingSm',\n 5: 'headingSm',\n 6: 'headingSm',\n}\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nexport function Heading({level, variant, color = 'default', align, children}: HeadingProps) {\n const resolvedVariant = variant ?? defaultVariantMap[level]\n const style = [typePresets[resolvedVariant], styles[color], align && alignMap[align]]\n\n if (level === 1) return <html.h1 style={style}>{children}</html.h1>\n if (level === 2) return <html.h2 style={style}>{children}</html.h2>\n if (level === 3) return <html.h3 style={style}>{children}</html.h3>\n if (level === 4) return <html.h4 style={style}>{children}</html.h4>\n if (level === 5) return <html.h5 style={style}>{children}</html.h5>\n return <html.h6 style={style}>{children}</html.h6>\n}\n","import {createContext, useContext} from 'react'\n\ninterface FieldContextValue {\n controlId: string\n descriptionId: string\n errorId: string\n invalid: boolean\n field?: {\n value: unknown\n onChange: (...event: unknown[]) => void\n onBlur: () => void\n ref: React.RefCallback<unknown>\n name: string\n }\n errorMessage?: string\n}\n\nexport type {FieldContextValue}\n\nexport const FieldContext = createContext<FieldContextValue | null>(null)\n\nexport function useFieldContext() {\n return useContext(FieldContext)\n}\n","import {createContext, useContext} from 'react'\n\nexport const FormContext = createContext(false)\n\nexport function useFormContext() {\n return useContext(FormContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: spacing.xs,\n },\n label: {\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: colors.text,\n },\n description: {\n fontSize: typography.fontSizeXs,\n color: colors.textMuted,\n },\n error: {\n fontSize: typography.fontSizeXs,\n color: colors.error,\n },\n})\n","import {type ReactNode, useId, useMemo} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useFormContext as useRHFFormContext, useController} from 'react-hook-form'\nimport {FieldContext, useFieldContext} from './FieldContext'\nimport {useFormContext} from '../Form/FormContext'\nimport {styles} from './styles.css'\n\n// --- Root ---\ninterface RootProps {\n name?: string\n invalid?: boolean\n children: ReactNode\n}\n\nfunction Root({name, ...props}: RootProps) {\n const insideForm = useFormContext()\n if (name && insideForm) {\n return <ControlledRoot name={name} {...props} />\n }\n return <StaticRoot {...props} />\n}\n\n// Always calls useController — no conditional hooks\nfunction ControlledRoot({\n name,\n invalid: invalidProp = false,\n children,\n}: {\n name: string\n invalid?: boolean\n children: ReactNode\n}) {\n const id = useId()\n const {control} = useRHFFormContext()\n const {field, fieldState} = useController({control, name})\n const invalid = invalidProp || !!fieldState.error\n\n const ctx = useMemo(\n () => ({\n controlId: `${id}-control`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n invalid,\n field: {\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n name: field.name,\n },\n errorMessage: fieldState.error?.message,\n }),\n [\n id,\n invalid,\n field.value,\n field.onChange,\n field.onBlur,\n field.ref,\n field.name,\n fieldState.error,\n ],\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </FieldContext.Provider>\n )\n}\n\n// Current behavior, no RHF dependency\nfunction StaticRoot({invalid = false, children}: {invalid?: boolean; children: ReactNode}) {\n const id = useId()\n const ctx = useMemo(\n () => ({\n controlId: `${id}-control`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n invalid,\n }),\n [id, invalid],\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </FieldContext.Provider>\n )\n}\n\n// --- Label ---\ninterface LabelProps {\n children: ReactNode\n}\n\nfunction Label({children}: LabelProps) {\n const ctx = useFieldContext()\n return (\n <html.label for={ctx?.controlId} style={styles.label}>\n {children}\n </html.label>\n )\n}\n\n// --- Description ---\ninterface DescriptionProps {\n children: ReactNode\n}\n\nfunction Description({children}: DescriptionProps) {\n const ctx = useFieldContext()\n return (\n <html.span id={ctx?.descriptionId} style={styles.description}>\n {children}\n </html.span>\n )\n}\n\n// --- Error ---\ninterface ErrorProps {\n children?: ReactNode\n}\n\nfunction Error({children}: ErrorProps) {\n const ctx = useFieldContext()\n const content = children ?? ctx?.errorMessage\n if (!ctx?.invalid && !content) return null\n\n return (\n <html.span id={ctx?.errorId} role=\"alert\" style={styles.error}>\n {content}\n </html.span>\n )\n}\n\nexport const Field = {\n Root,\n Label,\n Description,\n Error,\n}\n","import {type ReactNode, useCallback, useEffect, useRef} from 'react'\nimport {html} from 'react-strict-dom'\nimport {\n useForm,\n FormProvider,\n type UseFormReturn,\n type DefaultValues,\n type FieldValues,\n} from 'react-hook-form'\nimport {effectTsResolver} from '@hookform/resolvers/effect-ts'\nimport type {Schema} from 'effect'\nimport {FormContext} from './FormContext'\n\nexport interface FormProps<T extends FieldValues> {\n schema: Schema.Schema<T>\n defaultValues: DefaultValues<T>\n onSubmit: (data: T) => void | Promise<void>\n children: ReactNode | ((methods: UseFormReturn<T>) => ReactNode)\n}\n\nexport function Form<T extends FieldValues>({\n schema,\n defaultValues,\n onSubmit,\n children,\n}: FormProps<T>) {\n const methods = useForm<T>({\n resolver: effectTsResolver(schema),\n defaultValues,\n mode: 'onTouched',\n reValidateMode: 'onChange',\n })\n\n const formRef = useRef<HTMLFormElement>(null)\n const handleSubmit = useCallback(\n (e: Event) => {\n e.preventDefault()\n void methods.handleSubmit(onSubmit)()\n },\n [methods, onSubmit],\n )\n\n useEffect(() => {\n const el = formRef.current\n if (!el) return\n el.addEventListener('submit', handleSubmit)\n return () => el.removeEventListener('submit', handleSubmit)\n }, [handleSubmit])\n\n return (\n <FormProvider {...methods}>\n <FormContext.Provider value={true}>\n <html.form ref={formRef}>\n {typeof children === 'function' ? children(methods) : children}\n </html.form>\n </FormContext.Provider>\n </FormProvider>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n // Reset native fieldset chrome\n borderWidth: 0,\n margin: 0,\n padding: 0,\n minWidth: 0,\n },\n legend: {\n // Reset native legend quirks\n padding: 0,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: colors.text,\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type FieldsetGap = 'xs' | 'sm' | 'ms' | 'md' | 'lg' | 'xl'\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n} as const\n\n// --- Root ---\ninterface RootProps {\n /** Disables all form controls within the fieldset */\n disabled?: boolean\n /** Gap between child elements */\n gap?: FieldsetGap\n children: ReactNode\n}\n\nfunction Root({disabled = false, gap = 'md', children}: RootProps) {\n return (\n <html.div\n role=\"group\"\n aria-disabled={disabled || undefined}\n style={[styles.root, gapMap[gap], disabled && styles.disabled]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Legend ---\ninterface LegendProps {\n children: ReactNode\n}\n\nfunction Legend({children}: LegendProps) {\n return <html.span style={styles.legend}>{children}</html.span>\n}\n\nexport const Fieldset = {\n Root,\n Legend,\n}\n","import {createContext, useContext} from 'react'\n\ninterface InputGroupContextValue {\n inGroup: boolean\n}\n\nexport const InputGroupContext = createContext<InputGroupContextValue | null>(null)\n\nexport function useInputGroupContext() {\n return useContext(InputGroupContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n width: '100%',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n color: colors.text,\n backgroundColor: colors.bg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 1,\n },\n },\n default: {\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n ':focus': colors.accent,\n },\n },\n error: {\n borderColor: {\n default: colors.error,\n ':focus': colors.error,\n },\n },\n inGroup: {\n borderWidth: 0,\n borderRadius: 0,\n outlineWidth: 0,\n },\n})\n","import {html} from 'react-strict-dom'\nimport {useFieldContext} from '../Field/FieldContext'\nimport {useInputGroupContext} from '../InputGroup/InputGroupContext'\nimport {styles} from './styles.css'\n\ntype StrictInputProps = React.ComponentProps<typeof html.input>\nexport type InputType = NonNullable<StrictInputProps['type']>\n\nexport type InputVariant = 'default' | 'error'\n\ninterface InputProps {\n variant?: InputVariant\n type?: InputType\n name?: string\n placeholder?: string\n required?: boolean\n minLength?: number\n pattern?: string\n autoComplete?:\n | 'on'\n | 'off'\n | 'email'\n | 'username'\n | 'current-password'\n | 'new-password'\n | 'name'\n | 'tel'\n | 'url'\n value?: string\n defaultValue?: string\n disabled?: boolean\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n onBlur?: () => void\n ref?: React.Ref<HTMLInputElement>\n}\n\nexport function Input({\n variant = 'default',\n type = 'text',\n name,\n placeholder,\n required,\n minLength,\n pattern,\n autoComplete,\n value,\n defaultValue,\n disabled,\n onChange,\n onBlur,\n ref,\n}: InputProps) {\n const ctx = useFieldContext()\n const groupCtx = useInputGroupContext()\n\n const fieldCtx = ctx?.field\n const effectiveName = name ?? fieldCtx?.name\n const effectiveValue = value ?? (fieldCtx ? String(fieldCtx.value ?? '') : undefined)\n const effectiveOnChange = onChange ?? fieldCtx?.onChange\n const effectiveOnBlur = onBlur ?? fieldCtx?.onBlur\n const effectiveRef = ref ?? fieldCtx?.ref\n const effectiveVariant = ctx?.invalid ? 'error' : variant\n\n // react-strict-dom omits web-only `pattern` from its types, but the\n // underlying DOM element supports it. Type-assert to pass it through.\n const extraProps = pattern !== undefined ? {pattern} : undefined\n\n return (\n <html.input\n id={ctx?.controlId}\n type={type}\n name={effectiveName}\n placeholder={placeholder}\n required={required}\n minLength={minLength}\n autoComplete={autoComplete}\n value={effectiveValue}\n defaultValue={defaultValue}\n disabled={disabled}\n aria-describedby={\n ctx ? `${ctx.descriptionId} ${ctx.invalid ? ctx.errorId : ''}`.trim() : undefined\n }\n aria-invalid={ctx?.invalid || variant === 'error' || undefined}\n onChange={effectiveOnChange as StrictInputProps['onChange']}\n onBlur={effectiveOnBlur as StrictInputProps['onBlur']}\n ref={effectiveRef as React.Ref<HTMLInputElement>}\n style={[styles.base, styles[effectiveVariant], groupCtx?.inGroup && styles.inGroup]}\n {...(extraProps as Record<string, unknown>)}\n />\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n wrapper: {\n display: 'flex',\n alignItems: 'stretch',\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':focus-within': colors.accent,\n },\n borderRadius: radii.sm,\n overflow: 'hidden',\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n addon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n backgroundColor: colors.bgCardHover,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.textMuted,\n userSelect: 'none',\n borderWidth: 0,\n },\n addonStart: {\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n addonEnd: {\n borderLeftWidth: 1,\n borderLeftStyle: 'solid',\n borderLeftColor: colors.border,\n },\n addonClickable: {\n cursor: 'pointer',\n backgroundColor: {\n default: colors.bgCardHover,\n ':hover': colors.bgCard,\n ':active': colors.bg,\n },\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n addonDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n})\n","import type {ReactNode} from 'react'\nimport {useMemo} from 'react'\nimport {css, html} from 'react-strict-dom'\nimport {InputGroupContext} from './InputGroupContext'\nimport {styles} from './styles.css'\n\n// --- Root ---\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const ctx = useMemo(() => ({inGroup: true}), [])\n\n return (\n <InputGroupContext.Provider value={ctx}>\n <html.div style={styles.wrapper}>{children}</html.div>\n </InputGroupContext.Provider>\n )\n}\n\n// --- Addon ---\nconst dynamicStyles = css.create({\n minWidth: (value: number | string) => ({minWidth: value}),\n})\n\ninterface AddonProps {\n position?: 'start' | 'end'\n onClick?: () => void\n disabled?: boolean\n /** Optional minimum width to prevent layout shift (e.g. Copy → Copied!) */\n minWidth?: number | string\n children: ReactNode\n}\n\nfunction Addon({position = 'end', onClick, disabled, minWidth, children}: AddonProps) {\n const positionStyle = position === 'start' ? styles.addonStart : styles.addonEnd\n const style = [\n styles.addon,\n positionStyle,\n onClick && !disabled && styles.addonClickable,\n disabled && styles.addonDisabled,\n minWidth != null && dynamicStyles.minWidth(minWidth),\n ]\n\n if (onClick) {\n return (\n <html.button type=\"button\" onClick={onClick} disabled={disabled} style={style}>\n {children}\n </html.button>\n )\n }\n\n return <html.span style={style}>{children}</html.span>\n}\n\nexport const InputGroup = {\n Root,\n Addon,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: spacing.sm,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'background-color, border-color, color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n sizeDefault: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n },\n sizeSmall: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n primary: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n color: colors.accentContrast,\n },\n secondary: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n color: colors.textMuted,\n },\n fullWidth: {\n width: '100%',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type LinkButtonVariant = 'primary' | 'secondary'\nexport type LinkButtonSize = 'default' | 'small'\n\ninterface LinkButtonProps {\n href: string\n variant?: LinkButtonVariant\n size?: LinkButtonSize\n fullWidth?: boolean\n target?: '_blank' | '_self'\n rel?: string\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function LinkButton({\n href,\n variant = 'primary',\n size = 'default',\n fullWidth = false,\n target,\n rel,\n children,\n}: LinkButtonProps) {\n return (\n <html.a\n href={href}\n target={target}\n rel={rel}\n style={[styles.base, sizeMap[size], styles[variant], fullWidth && styles.fullWidth]}\n >\n {children}\n </html.a>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n trigger: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.text,\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'background-color, border-color',\n transitionDuration: '150ms',\n },\n backdrop: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 49,\n },\n popup: {\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: spacing.xs,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n boxShadow: shadows.md,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n minWidth: 160,\n zIndex: 50,\n },\n popupEnd: {\n left: 'auto',\n right: 0,\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n fontFamily: typography.fontFamily,\n color: colors.text,\n borderRadius: radii.sm,\n cursor: 'pointer',\n backgroundColor: 'transparent',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n itemHighlighted: {\n backgroundColor: colors.bgCardHover,\n },\n linkItem: {\n textDecoration: 'none',\n color: {\n default: colors.text,\n ':hover': colors.text,\n },\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface MenuContextValue {\n open: boolean\n toggle: () => void\n close: () => void\n menuId: string\n highlightedId: string | null\n setHighlightedId: (id: string | null) => void\n registerItem: (id: string, element: HTMLElement) => () => void\n triggerRef: React.RefObject<HTMLButtonElement | null>\n}\n\nexport const MenuContext = createContext<MenuContextValue | null>(null)\n\nexport function useMenu() {\n const ctx = useContext(MenuContext)\n if (!ctx) throw new Error('Menu compound components must be used within Menu.Root')\n return ctx\n}\n","import {useState, useCallback, useRef, useId, useEffect} from 'react'\nimport type {MenuContextValue} from './MenuContext'\n\nexport function useMenuRoot() {\n const [open, setOpen] = useState(false)\n const [highlightedId, setHighlightedId] = useState<string | null>(null)\n const menuId = useId()\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement | null>(null)\n const itemsRef = useRef(new Map<string, HTMLElement>())\n const orderRef = useRef<string[]>([])\n const needsInitialHighlightRef = useRef(false)\n\n const close = useCallback(() => {\n setOpen(false)\n setHighlightedId(null)\n needsInitialHighlightRef.current = false\n triggerRef.current?.focus()\n }, [])\n\n const toggle = useCallback(() => {\n setOpen((prev) => {\n if (!prev) {\n needsInitialHighlightRef.current = true\n } else {\n setHighlightedId(null)\n needsInitialHighlightRef.current = false\n }\n return !prev\n })\n }, [])\n\n // Highlight the first item after items register on open.\n // Child effects (item registration) run before this parent effect,\n // so orderRef is populated by the time this runs.\n useEffect(() => {\n if (open && needsInitialHighlightRef.current) {\n needsInitialHighlightRef.current = false\n const order = orderRef.current\n if (order.length > 0) {\n setHighlightedId(order[0])\n }\n }\n }, [open])\n\n const registerItem = useCallback((id: string, element: HTMLElement) => {\n itemsRef.current.set(id, element)\n const map = itemsRef.current\n const ids = [...map.keys()]\n ids.sort((a, b) => {\n const elA = map.get(a)\n const elB = map.get(b)\n if (!elA || !elB) return 0\n return elA.compareDocumentPosition(elB) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n })\n orderRef.current = ids\n return () => {\n itemsRef.current.delete(id)\n orderRef.current = orderRef.current.filter((i) => i !== id)\n }\n }, [])\n\n // Native keydown for full KeyboardEvent access (preventDefault)\n useEffect(() => {\n const root = rootRef.current\n if (!root || !open) return\n\n function handleKeyDown(e: KeyboardEvent) {\n const order = orderRef.current\n if (order.length === 0) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : -1\n return order[(idx + 1) % order.length]\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : 0\n return order[(idx - 1 + order.length) % order.length]\n })\n break\n }\n case 'Home': {\n e.preventDefault()\n setHighlightedId(order[0])\n break\n }\n case 'End': {\n e.preventDefault()\n setHighlightedId(order[order.length - 1])\n break\n }\n case 'Enter':\n case ' ': {\n e.preventDefault()\n const items = itemsRef.current\n setHighlightedId((prev) => {\n if (prev) {\n const el = items.get(prev)\n el?.click()\n }\n return prev\n })\n break\n }\n case 'Escape':\n case 'Tab': {\n close()\n break\n }\n }\n }\n\n root.addEventListener('keydown', handleKeyDown)\n return () => root.removeEventListener('keydown', handleKeyDown)\n }, [open, close])\n\n const ctx: MenuContextValue = {\n open,\n toggle,\n close,\n menuId,\n highlightedId,\n setHighlightedId,\n registerItem,\n triggerRef,\n }\n\n return {ctx, rootRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {MenuContext, useMenu} from './MenuContext'\nimport {useMenuRoot} from './useMenuRoot'\n\n// --- Root ---\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const {ctx, rootRef} = useMenuRoot()\n\n return (\n <MenuContext.Provider value={ctx}>\n <html.div ref={rootRef} style={styles.root}>\n {children}\n </html.div>\n </MenuContext.Provider>\n )\n}\n\n// --- Trigger ---\nfunction Trigger({children}: {children: ReactNode}) {\n const {open, toggle, menuId, triggerRef} = useMenu()\n const localRef = useRef<HTMLButtonElement>(null)\n\n // Sync local ref to context triggerRef\n useEffect(() => {\n triggerRef.current = localRef.current\n })\n\n return (\n <html.button\n ref={localRef}\n type=\"button\"\n onClick={toggle}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={open ? menuId : undefined}\n style={styles.trigger}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Popup ---\ninterface PopupProps {\n children: ReactNode\n align?: 'start' | 'end'\n}\n\nfunction Popup({children, align = 'start'}: PopupProps) {\n const {open, close, menuId, highlightedId} = useMenu()\n\n if (!open) return null\n\n return (\n <>\n <html.div style={styles.backdrop} onClick={close} />\n <html.div\n id={menuId}\n role=\"menu\"\n aria-activedescendant={highlightedId ?? undefined}\n style={[styles.popup, align === 'end' && styles.popupEnd]}\n >\n {children}\n </html.div>\n </>\n )\n}\n\n// --- Item ---\ninterface ItemProps {\n onClick?: () => void\n children: ReactNode\n}\n\nfunction Item({onClick, children}: ItemProps) {\n const {close, highlightedId, setHighlightedId, registerItem} = useMenu()\n const id = useId()\n const ref = useRef<HTMLDivElement>(null)\n const isHighlighted = highlightedId === id\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, el)\n }, [id, registerItem])\n\n const handleClick = () => {\n onClick?.()\n close()\n }\n\n return (\n <html.div\n ref={ref}\n id={id}\n role=\"menuitem\"\n onClick={handleClick}\n onPointerEnter={() => setHighlightedId(id)}\n style={[styles.item, isHighlighted && styles.itemHighlighted]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- LinkItem ---\ninterface LinkItemProps {\n href: string\n children: ReactNode\n}\n\nfunction LinkItem({href, children}: LinkItemProps) {\n const {close, highlightedId, setHighlightedId, registerItem} = useMenu()\n const id = useId()\n const ref = useRef<HTMLAnchorElement>(null)\n const isHighlighted = highlightedId === id\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, el)\n }, [id, registerItem])\n\n return (\n <html.a\n ref={ref}\n id={id}\n href={href}\n onClick={close}\n role=\"menuitem\"\n onPointerEnter={() => setHighlightedId(id)}\n style={[styles.item, styles.linkItem, isHighlighted && styles.itemHighlighted]}\n >\n {children}\n </html.a>\n )\n}\n\nexport const Menu = {\n Root,\n Trigger,\n Popup,\n Item,\n LinkItem,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {radii} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n overflow: 'hidden',\n },\n viewport: {\n width: '100%',\n height: '100%',\n overflowX: 'auto',\n overflowY: 'auto',\n // Hide native scrollbar\n scrollbarWidth: 'none',\n },\n content: {\n minWidth: '100%',\n minHeight: '100%',\n },\n scrollbar: {\n position: 'absolute',\n zIndex: 1,\n display: 'flex',\n touchAction: 'none',\n userSelect: 'none',\n transitionProperty: 'opacity',\n transitionDuration: '200ms',\n transitionTimingFunction: 'ease',\n },\n scrollbarVertical: {\n top: 0,\n right: 0,\n bottom: 0,\n width: 8,\n flexDirection: 'column',\n paddingTop: 2,\n paddingBottom: 2,\n paddingRight: 2,\n },\n scrollbarHorizontal: {\n left: 0,\n right: 0,\n bottom: 0,\n height: 8,\n flexDirection: 'row',\n paddingLeft: 2,\n paddingRight: 2,\n paddingBottom: 2,\n },\n scrollbarHidden: {\n opacity: 0,\n },\n scrollbarVisible: {\n opacity: 1,\n },\n thumb: {\n position: 'relative',\n flex: 1,\n backgroundColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n borderRadius: radii.full,\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n // Dynamic styles — simple identifier params only (StyleX constraint)\n viewportMaxHeight: (maxHeight: number | string) => ({\n maxHeight,\n }),\n thumbVertical: (height: string, transform: string) => ({\n height,\n transform,\n }),\n thumbHorizontal: (width: string, transform: string) => ({\n width,\n transform,\n }),\n})\n","import {createContext, useContext} from 'react'\n\nexport interface ScrollAreaContextValue {\n viewportRef: React.RefObject<HTMLDivElement | null>\n contentRef: React.RefObject<HTMLDivElement | null>\n scrollTop: number\n scrollLeft: number\n scrollHeight: number\n scrollWidth: number\n clientHeight: number\n clientWidth: number\n scrolling: boolean\n}\n\nexport const ScrollAreaContext = createContext<ScrollAreaContextValue | null>(null)\n\nexport function useScrollArea() {\n const ctx = useContext(ScrollAreaContext)\n if (!ctx) throw new Error('ScrollArea compound components must be used within ScrollArea.Root')\n return ctx\n}\n","import {useState, useCallback, useRef, useEffect} from 'react'\nimport type {ScrollAreaContextValue} from './ScrollAreaContext'\n\nexport function useScrollAreaRoot(): ScrollAreaContextValue {\n const viewportRef = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollLeft, setScrollLeft] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [scrollWidth, setScrollWidth] = useState(0)\n const [clientHeight, setClientHeight] = useState(0)\n const [clientWidth, setClientWidth] = useState(0)\n const [scrolling, setScrolling] = useState(false)\n const scrollTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const handleScroll = useCallback(() => {\n const vp = viewportRef.current\n if (!vp) return\n\n setScrollTop(vp.scrollTop)\n setScrollLeft(vp.scrollLeft)\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n setScrolling(true)\n\n if (scrollTimerRef.current) clearTimeout(scrollTimerRef.current)\n scrollTimerRef.current = setTimeout(() => setScrolling(false), 1000)\n }, [])\n\n // Observe viewport size changes\n useEffect(() => {\n const vp = viewportRef.current\n if (!vp) return\n\n const observer = new ResizeObserver(() => {\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n })\n observer.observe(vp)\n // Initial measurement\n setScrollHeight(vp.scrollHeight)\n setScrollWidth(vp.scrollWidth)\n setClientHeight(vp.clientHeight)\n setClientWidth(vp.clientWidth)\n\n return () => observer.disconnect()\n }, [])\n\n // Attach scroll listener directly to ensure we capture it\n useEffect(() => {\n const vp = viewportRef.current\n if (!vp) return\n vp.addEventListener('scroll', handleScroll, {passive: true})\n return () => vp.removeEventListener('scroll', handleScroll)\n }, [handleScroll])\n\n return {\n viewportRef,\n contentRef,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n scrolling,\n }\n}\n","import {type ReactNode, useRef, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {ScrollAreaContext, useScrollArea} from './ScrollAreaContext'\nimport {useScrollAreaRoot} from './useScrollAreaRoot'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n}\n\nfunction Root({children}: RootProps) {\n const ctx = useScrollAreaRoot()\n\n return (\n <ScrollAreaContext.Provider value={ctx}>\n <html.div style={styles.root}>{children}</html.div>\n </ScrollAreaContext.Provider>\n )\n}\n\n// --- Viewport ---\n\ninterface ViewportProps {\n children: ReactNode\n maxHeight?: number | string\n}\n\nfunction Viewport({children, maxHeight}: ViewportProps) {\n const {viewportRef} = useScrollArea()\n\n return (\n <html.div\n ref={viewportRef}\n style={[styles.viewport, maxHeight != null && styles.viewportMaxHeight(maxHeight)]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Content ---\n\ninterface ContentProps {\n children: ReactNode\n}\n\nfunction Content({children}: ContentProps) {\n const {contentRef} = useScrollArea()\n return (\n <html.div ref={contentRef} style={styles.content}>\n {children}\n </html.div>\n )\n}\n\n// --- Scrollbar ---\n\ntype ScrollbarOrientation = 'vertical' | 'horizontal'\n\ninterface ScrollbarProps {\n orientation?: ScrollbarOrientation\n children: ReactNode\n}\n\nfunction Scrollbar({orientation = 'vertical', children}: ScrollbarProps) {\n const {scrolling, scrollHeight, scrollWidth, clientHeight, clientWidth} = useScrollArea()\n\n // Hide scrollbar when content fits\n const hasOverflow =\n orientation === 'vertical' ? scrollHeight > clientHeight : scrollWidth > clientWidth\n\n if (!hasOverflow) return null\n\n return (\n <html.div\n style={[\n styles.scrollbar,\n orientation === 'vertical' ? styles.scrollbarVertical : styles.scrollbarHorizontal,\n scrolling ? styles.scrollbarVisible : styles.scrollbarHidden,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Thumb ---\n\ninterface ThumbProps {\n orientation?: ScrollbarOrientation\n}\n\nfunction Thumb({orientation = 'vertical'}: ThumbProps) {\n const {viewportRef, scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth} =\n useScrollArea()\n const draggingRef = useRef(false)\n const startPosRef = useRef(0)\n const startScrollRef = useRef(0)\n\n const isVertical = orientation === 'vertical'\n\n const thumbSizePercent = isVertical\n ? Math.max((clientHeight / scrollHeight) * 100, 10)\n : Math.max((clientWidth / scrollWidth) * 100, 10)\n\n const maxScroll = isVertical ? scrollHeight - clientHeight : scrollWidth - clientWidth\n const trackSize = isVertical ? clientHeight : clientWidth\n const thumbPixelSize = (thumbSizePercent / 100) * trackSize\n const scrollOffset = isVertical ? scrollTop : scrollLeft\n const thumbOffset = maxScroll > 0 ? (scrollOffset / maxScroll) * (trackSize - thumbPixelSize) : 0\n\n const thumbStyle = isVertical\n ? styles.thumbVertical(`${thumbSizePercent}%`, `translateY(${thumbOffset}px)`)\n : styles.thumbHorizontal(`${thumbSizePercent}%`, `translateX(${thumbOffset}px)`)\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault()\n draggingRef.current = true\n startPosRef.current = isVertical ? e.clientY : e.clientX\n startScrollRef.current = isVertical\n ? (viewportRef.current?.scrollTop ?? 0)\n : (viewportRef.current?.scrollLeft ?? 0)\n ;(e.target as HTMLElement).setPointerCapture(e.pointerId)\n },\n [isVertical, viewportRef],\n )\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!draggingRef.current) return\n const vp = viewportRef.current\n if (!vp) return\n\n const delta = (isVertical ? e.clientY : e.clientX) - startPosRef.current\n const scrollRatio = maxScroll / (trackSize - thumbPixelSize)\n const scrollDelta = delta * scrollRatio\n\n if (isVertical) {\n vp.scrollTop = startScrollRef.current + scrollDelta\n } else {\n vp.scrollLeft = startScrollRef.current + scrollDelta\n }\n },\n [isVertical, maxScroll, trackSize, thumbPixelSize, viewportRef],\n )\n\n const handlePointerUp = useCallback(() => {\n draggingRef.current = false\n }, [])\n\n return (\n <html.div\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n style={[styles.thumb, thumbStyle]}\n />\n )\n}\n\nexport const ScrollArea = {\n Root,\n Viewport,\n Content,\n Scrollbar,\n Thumb,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n trigger: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: spacing.sm,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n color: colors.text,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: colors.border,\n ':hover': colors.accent,\n },\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n },\n value: {\n color: colors.text,\n },\n placeholder: {\n color: colors.textMuted,\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n color: colors.textMuted,\n },\n backdrop: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 49,\n },\n popup: {\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: spacing.xs,\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.sm,\n boxShadow: shadows.md,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n minWidth: 120,\n zIndex: 50,\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n fontFamily: typography.fontFamily,\n color: colors.text,\n borderRadius: radii.sm,\n cursor: 'pointer',\n backgroundColor: 'transparent',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n },\n itemSelected: {\n color: colors.accent,\n fontWeight: typography.fontWeightMedium,\n },\n itemHighlighted: {\n backgroundColor: colors.bgCardHover,\n },\n hidden: {\n display: 'none',\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface SelectContextValue {\n open: boolean\n toggle: () => void\n close: () => void\n value: string | null\n setValue: (value: string) => void\n labels: Record<string, string>\n registerLabel: (value: string, label: string) => void\n listboxId: string\n highlightedId: string | null\n setHighlightedId: (id: string | null) => void\n registerItem: (id: string, value: string, element: HTMLElement) => () => void\n triggerRef: React.RefObject<HTMLButtonElement | null>\n}\n\nexport const SelectContext = createContext<SelectContextValue | null>(null)\n\nexport function useSelect() {\n const ctx = useContext(SelectContext)\n if (!ctx) throw new Error('Select compound components must be used within Select.Root')\n return ctx\n}\n","import {useState, useCallback} from 'react'\n\nexport function useControllableValue<T>(\n controlledValue: T | undefined,\n defaultValue: T,\n onChange?: (value: T) => void,\n) {\n const [internal, setInternal] = useState(defaultValue)\n const value = controlledValue !== undefined ? controlledValue : internal\n const setValue = useCallback(\n (v: T) => {\n if (controlledValue === undefined) setInternal(v)\n onChange?.(v)\n },\n [controlledValue, onChange],\n )\n return [value, setValue] as const\n}\n","import {useState, useCallback, useMemo, useRef, useId, useEffect} from 'react'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {SelectContextValue} from './SelectContext'\n\ninterface UseSelectRootOptions {\n defaultValue?: string\n value?: string\n onValueChange?: (value: string | null) => void\n initialLabels?: Record<string, string>\n}\n\nexport function useSelectRoot({\n defaultValue,\n value: controlledValue,\n onValueChange,\n initialLabels,\n}: UseSelectRootOptions) {\n const [value, setValue] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange,\n )\n const [open, setOpen] = useState(false)\n const [labels, setLabels] = useState<Record<string, string>>(initialLabels ?? {})\n const [highlightedId, setHighlightedId] = useState<string | null>(null)\n const listboxId = useId()\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement | null>(null)\n const itemsRef = useRef(new Map<string, {value: string; element: HTMLElement}>())\n const orderRef = useRef<string[]>([])\n\n const close = useCallback(() => {\n setOpen(false)\n setHighlightedId(null)\n triggerRef.current?.focus()\n }, [])\n\n const toggle = useCallback(() => {\n setOpen((prev) => {\n if (!prev) {\n const items = itemsRef.current\n const order = orderRef.current\n let found: string | null = null\n for (const id of order) {\n const item = items.get(id)\n if (item && item.value === value) {\n found = id\n break\n }\n }\n setHighlightedId(found ?? (order.length > 0 ? order[0] : null))\n } else {\n setHighlightedId(null)\n }\n return !prev\n })\n }, [value])\n\n const registerLabel = useCallback((v: string, label: string) => {\n setLabels((prev) => {\n if (prev[v] === label) return prev\n return {...prev, [v]: label}\n })\n }, [])\n\n const registerItem = useCallback((id: string, itemValue: string, element: HTMLElement) => {\n itemsRef.current.set(id, {value: itemValue, element})\n const map = itemsRef.current\n const ids = [...map.keys()]\n ids.sort((a, b) => {\n const elA = map.get(a)?.element\n const elB = map.get(b)?.element\n if (!elA || !elB) return 0\n return elA.compareDocumentPosition(elB) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n })\n orderRef.current = ids\n return () => {\n itemsRef.current.delete(id)\n orderRef.current = orderRef.current.filter((i) => i !== id)\n }\n }, [])\n\n // Native keydown for full KeyboardEvent access (preventDefault)\n useEffect(() => {\n const root = rootRef.current\n if (!root || !open) return\n\n function handleKeyDown(e: KeyboardEvent) {\n const order = orderRef.current\n const items = itemsRef.current\n if (order.length === 0) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : -1\n return order[(idx + 1) % order.length]\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n setHighlightedId((prev) => {\n const idx = prev ? order.indexOf(prev) : 0\n return order[(idx - 1 + order.length) % order.length]\n })\n break\n }\n case 'Home': {\n e.preventDefault()\n setHighlightedId(order[0])\n break\n }\n case 'End': {\n e.preventDefault()\n setHighlightedId(order[order.length - 1])\n break\n }\n case 'Enter':\n case ' ': {\n e.preventDefault()\n setHighlightedId((prev) => {\n if (prev) {\n const item = items.get(prev)\n if (item) {\n setValue(item.value)\n close()\n }\n }\n return prev\n })\n break\n }\n case 'Escape':\n case 'Tab': {\n close()\n break\n }\n }\n }\n\n root.addEventListener('keydown', handleKeyDown)\n return () => root.removeEventListener('keydown', handleKeyDown)\n }, [open, close, setValue])\n\n const ctx: SelectContextValue = useMemo(\n () => ({\n open,\n toggle,\n close,\n value,\n setValue,\n labels,\n registerLabel,\n listboxId,\n highlightedId,\n setHighlightedId,\n registerItem,\n triggerRef,\n }),\n [\n open,\n toggle,\n close,\n value,\n setValue,\n labels,\n registerLabel,\n listboxId,\n highlightedId,\n setHighlightedId,\n registerItem,\n ],\n )\n\n return {ctx, rootRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {SelectContext, useSelect} from './SelectContext'\nimport {useSelectRoot} from './useSelectRoot'\n\n// --- Root ---\ninterface RootProps {\n name?: string\n defaultValue?: string\n value?: string\n onValueChange?: (value: string | null) => void\n initialLabels?: Record<string, string>\n children: ReactNode\n}\n\nfunction Root({name, defaultValue, value, onValueChange, initialLabels, children}: RootProps) {\n const {ctx, rootRef} = useSelectRoot({defaultValue, value, onValueChange, initialLabels})\n\n return (\n <SelectContext.Provider value={ctx}>\n <html.div ref={rootRef} style={styles.root}>\n {name && <html.input type=\"hidden\" name={name} value={ctx.value ?? ''} />}\n {children}\n </html.div>\n </SelectContext.Provider>\n )\n}\n\n// --- Trigger ---\nfunction Trigger({\n children,\n 'aria-label': ariaLabel,\n}: {\n children: ReactNode\n 'aria-label'?: string\n}) {\n const {open, toggle, listboxId, highlightedId, triggerRef} = useSelect()\n const localRef = useRef<HTMLButtonElement>(null)\n\n // Sync local ref to context triggerRef\n useEffect(() => {\n triggerRef.current = localRef.current\n })\n\n return (\n <html.button\n ref={localRef}\n type=\"button\"\n role={'combobox' as 'listbox'}\n onClick={toggle}\n aria-label={ariaLabel}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={open ? listboxId : undefined}\n aria-activedescendant={highlightedId ?? undefined}\n style={styles.trigger}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Value ---\nfunction Value({placeholder}: {placeholder?: string}) {\n const {value, labels} = useSelect()\n const display = value ? (labels[value] ?? value) : null\n\n return (\n <html.span style={display ? styles.value : styles.placeholder}>\n {display ?? placeholder}\n </html.span>\n )\n}\n\n// --- Icon ---\nfunction Icon({children}: {children?: ReactNode}) {\n return (\n <html.span style={styles.icon}>\n {children ?? (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n )}\n </html.span>\n )\n}\n\n// --- Popup ---\nfunction Popup({children}: {children: ReactNode}) {\n const {open, close, listboxId} = useSelect()\n\n return (\n <>\n {open && <html.div style={styles.backdrop} onClick={close} />}\n <html.div\n id={listboxId}\n role=\"listbox\"\n aria-hidden={!open}\n style={[styles.popup, !open && styles.hidden]}\n >\n {children}\n </html.div>\n </>\n )\n}\n\n// --- Item ---\ninterface ItemProps {\n value: string\n children: ReactNode\n}\n\nfunction Item({value: itemValue, children}: ItemProps) {\n const {\n value: selectedValue,\n setValue,\n close,\n registerLabel,\n highlightedId,\n setHighlightedId,\n registerItem,\n } = useSelect()\n const id = useId()\n const ref = useRef<HTMLDivElement>(null)\n const isSelected = selectedValue === itemValue\n const isHighlighted = highlightedId === id\n\n // Register label from DOM text content (works with both string and JSX children)\n useEffect(() => {\n const el = ref.current\n if (!el) return\n const text = el.textContent\n if (text) registerLabel(itemValue, text)\n }, [itemValue, registerLabel])\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n return registerItem(id, itemValue, el)\n }, [id, itemValue, registerItem])\n\n const handleClick = () => {\n setValue(itemValue)\n close()\n }\n\n return (\n <html.div\n ref={ref}\n id={id}\n role=\"option\"\n aria-selected={isSelected}\n onClick={handleClick}\n onPointerEnter={() => setHighlightedId(id)}\n style={[\n styles.item,\n isSelected && styles.itemSelected,\n isHighlighted && styles.itemHighlighted,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- ItemText ---\nfunction ItemText({children}: {children: ReactNode}) {\n return <html.span>{children}</html.span>\n}\n\nexport const Select = {\n Root,\n Trigger,\n Value,\n Icon,\n Popup,\n Item,\n ItemText,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 0,\n },\n group: {\n display: 'flex',\n flexDirection: 'column',\n },\n groupTrigger: {\n display: 'flex',\n alignItems: 'center',\n gap: spacing.xs,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeXs,\n fontWeight: typography.fontWeightSemibold,\n textTransform: 'uppercase' as const,\n letterSpacing: '0.05em',\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: 'transparent',\n borderWidth: 0,\n cursor: 'pointer',\n transitionProperty: 'color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n groupTriggerActive: {\n color: colors.text,\n },\n chevron: {\n display: 'inline-flex',\n alignItems: 'center',\n transitionProperty: 'transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n chevronOpen: {\n transform: 'rotate(90deg)',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: '6px',\n paddingBottom: '6px',\n paddingLeft: spacing.lg,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightNormal,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderWidth: 0,\n borderRadius: radii.sm,\n cursor: 'pointer',\n transitionProperty: 'color, background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n textAlign: 'left' as const,\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n },\n itemActive: {\n color: colors.accent,\n fontWeight: typography.fontWeightMedium,\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport interface SideNavContextValue {\n activeValue: string | null\n onSelect: (value: string) => void\n expandedGroups: Set<string>\n toggleGroup: (group: string) => void\n registerItem: (value: string) => () => void\n orderRef: React.RefObject<string[]>\n}\n\nexport const SideNavContext = createContext<SideNavContextValue | null>(null)\n\nexport function useSideNav() {\n const ctx = useContext(SideNavContext)\n if (!ctx) throw new Error('SideNav compound components must be used within SideNav.Root')\n return ctx\n}\n","import {type ReactNode, useState, useCallback, useRef, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {SideNavContext, useSideNav} from './SideNavContext'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n}\n\nfunction Root({children, value: controlledValue, defaultValue, onValueChange}: RootProps) {\n const [activeValue, onSelect] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange\n ? (v) => {\n if (v !== null) onValueChange(v)\n }\n : undefined,\n )\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(new Set())\n const orderRef = useRef<string[]>([])\n\n const toggleGroup = useCallback((group: string) => {\n setExpandedGroups((prev) => {\n const next = new Set(prev)\n if (next.has(group)) {\n next.delete(group)\n } else {\n next.add(group)\n }\n return next\n })\n }, [])\n\n const registerItem = useCallback((value: string) => {\n if (!orderRef.current.includes(value)) {\n orderRef.current.push(value)\n }\n return () => {\n orderRef.current = orderRef.current.filter((v) => v !== value)\n }\n }, [])\n\n // Auto-expand group containing active value\n useEffect(() => {\n if (activeValue) {\n setExpandedGroups((prev) => {\n // We don't know which group it belongs to here — Group handles this\n return prev\n })\n }\n }, [activeValue])\n\n return (\n <SideNavContext.Provider\n value={{activeValue, onSelect, expandedGroups, toggleGroup, registerItem, orderRef}}\n >\n <html.nav role=\"navigation\" style={styles.root}>\n {children}\n </html.nav>\n </SideNavContext.Provider>\n )\n}\n\n// --- Group ---\n\ninterface GroupProps {\n children: ReactNode\n label: string\n groupKey?: string\n defaultExpanded?: boolean\n}\n\nfunction Group({children, label, groupKey, defaultExpanded}: GroupProps) {\n const key = groupKey ?? label\n const {expandedGroups, toggleGroup, activeValue} = useSideNav()\n const isExpanded = expandedGroups.has(key)\n const groupRef = useRef<HTMLDivElement>(null)\n\n // Auto-expand if this group contains the active item\n useEffect(() => {\n if (!activeValue || expandedGroups.has(key)) return\n const el = groupRef.current\n if (!el) return\n const activeBtn = el.querySelector(`[data-nav-value=\"${activeValue}\"]`)\n if (activeBtn) {\n toggleGroup(key)\n }\n }, [activeValue, key, expandedGroups, toggleGroup])\n\n // Expand on first render if defaultExpanded\n useEffect(() => {\n if (defaultExpanded && !expandedGroups.has(key)) {\n toggleGroup(key)\n }\n // Only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const hasActiveChild = (() => {\n if (!activeValue || !groupRef.current) return false\n return !!groupRef.current.querySelector(`[data-nav-value=\"${activeValue}\"]`)\n })()\n\n return (\n <html.div ref={groupRef} style={styles.group}>\n <html.button\n type=\"button\"\n onClick={() => toggleGroup(key)}\n style={[styles.groupTrigger, hasActiveChild && styles.groupTriggerActive]}\n aria-expanded={isExpanded}\n >\n <html.span style={[styles.chevron, isExpanded && styles.chevronOpen]}>\n <svg\n width={10}\n height={10}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </html.span>\n {label}\n </html.button>\n {isExpanded && children}\n </html.div>\n )\n}\n\n// --- Item ---\n\ninterface ItemProps {\n value: string\n children: ReactNode\n}\n\nfunction Item({value, children}: ItemProps) {\n const {activeValue, onSelect, registerItem} = useSideNav()\n const isActive = activeValue === value\n\n useEffect(() => {\n return registerItem(value)\n }, [value, registerItem])\n\n return (\n <html.button\n type=\"button\"\n data-nav-value={value}\n onClick={() => onSelect(value)}\n style={[styles.item, isActive && styles.itemActive]}\n aria-current={isActive ? 'page' : undefined}\n >\n {children}\n </html.button>\n )\n}\n\nexport const SideNav = {\n Root,\n Group,\n Item,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\n\nconst spin = css.keyframes({\n '0%': {transform: 'rotate(0deg)'},\n '100%': {transform: 'rotate(360deg)'},\n})\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n spinner: {\n borderRadius: '50%',\n borderStyle: 'solid',\n borderColor: colors.border,\n borderTopColor: colors.accent,\n animationName: spin,\n animationDuration: '0.6s',\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite',\n },\n sm: {\n width: 16,\n height: 16,\n borderWidth: 2,\n },\n md: {\n width: 24,\n height: 24,\n borderWidth: 2,\n },\n lg: {\n width: 40,\n height: 40,\n borderWidth: 3,\n },\n srOnly: {\n position: 'absolute',\n width: 1,\n height: 1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n },\n})\n","import {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg'\n\ninterface SpinnerProps {\n size?: SpinnerSize\n label?: string\n}\n\nconst sizeMap = {\n sm: styles.sm,\n md: styles.md,\n lg: styles.lg,\n} as const\n\nexport function Spinner({size = 'md', label = 'Loading'}: SpinnerProps) {\n return (\n <html.div role=\"status\" style={styles.root}>\n <html.div style={[styles.spinner, sizeMap[size]]} aria-hidden />\n <html.span style={styles.srOnly}>{label}</html.span>\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: spacing.md,\n },\n error: {\n color: colors.error,\n },\n success: {\n color: colors.success,\n },\n warning: {\n color: colors.warning,\n },\n info: {\n color: colors.info,\n },\n muted: {\n color: colors.textMuted,\n },\n})\n","import {html} from 'react-strict-dom'\nimport {Icon} from '../Icon'\nimport type {IconName} from '../Icon'\nimport {styles} from './styles.css'\n\nexport type StatusIconName = Extract<\n IconName,\n 'x-circle' | 'check-circle' | 'check-done' | 'clock' | 'forbidden'\n>\nexport type StatusIconVariant = 'error' | 'success' | 'warning' | 'info' | 'muted'\n\ninterface StatusIconProps {\n name: StatusIconName\n size?: number\n variant?: StatusIconVariant\n}\n\nexport function StatusIcon({name, size = 48, variant = 'muted'}: StatusIconProps) {\n return (\n <html.div style={[styles.root, styles[variant]]}>\n <Icon name={name} size={size} />\n </html.div>\n )\n}\n","/**\n * @license react-strict-dom\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\nimport { jsx } from 'react/jsx-runtime';\nimport * as stylex from '@stylexjs/stylex';\nexport { stylex as css };\n\nconst loggedMessages = {};\nfunction errorMsg(msg) {\n if (process.env.NODE_ENV !== 'test' && loggedMessages[msg]) {\n return;\n }\n loggedMessages[msg] = true;\n console.error(`[error] React Strict DOM: ${msg}`);\n}\n\nconst strictAttributeSet = new Set(['alt', 'aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'autoCapitalize', 'autoComplete', 'autoFocus', 'checked', 'children', 'crossOrigin', 'decoding', 'defaultChecked', 'defaultValue', 'dir', 'disabled', 'download', 'draggable', 'elementTiming', 'enterKeyHint', 'fetchPriority', 'for', 'height', 'hidden', 'href', 'id', 'inert', 'inputMode', 'label', 'lang', 'loading', 'max', 'maxLength', 'min', 'minLength', 'multiple', 'name', 'onAuxClick', 'onBeforeInput', 'onBlur', 'onChange', 'onClick', 'onContextMenu', 'onCopy', 'onCut', 'onError', 'onFocus', 'onFocusIn', 'onFocusOut', 'onFullscreenChange', 'onFullscreenError', 'onGotPointerCapture', 'onInput', 'onInvalid', 'onKeyDown', 'onKeyUp', 'onLoad', 'onLostPointerCapture', 'onPaste', 'onPointerCancel', 'onPointerDown', 'onPointerEnter', 'onPointerLeave', 'onPointerMove', 'onPointerOut', 'onPointerOver', 'onPointerUp', 'onScroll', 'onSelect', 'onSelectionChange', 'onWheel', 'placeholder', 'readOnly', 'referrerPolicy', 'rel', 'required', 'role', 'rows', 'selected', 'spellCheck', 'src', 'srcSet', 'step', 'style', 'tabIndex', 'target', 'type', 'value', 'width', 'suppressHydrationWarning', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart']);\nfunction isPropAllowed(key) {\n return strictAttributeSet.has(key) || key.indexOf('data-') > -1;\n}\n\nvar styleq$1 = {};\n\nObject.defineProperty(styleq$1, \"__esModule\", {\n value: true\n});\nvar styleq_2 = styleq$1.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n return function styleq() {\n var definedProperties = [];\n var className = '';\n var inlineStyle = null;\n var debugString = '';\n var nextCache = disableCache ? null : cache;\n var styles = new Array(arguments.length);\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n }\n while (styles.length > 0) {\n var possibleStyle = styles.pop();\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n }\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n continue;\n }\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n if (style.$$css != null) {\n var classNameChunk = '';\n if (nextCache != null && nextCache.has(style)) {\n var cacheEntry = nextCache.get(style);\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0];\n debugString = cacheEntry[2];\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[3];\n }\n } else {\n var definedPropertiesChunk = [];\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) {\n var compiledKeyValue = style[prop];\n if (compiledKeyValue !== true) {\n debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;\n }\n continue;\n }\n if (typeof value === 'string' || value === null) {\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n }\n if (nextCache != null) {\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, debugString, weakMap]);\n nextCache = weakMap;\n }\n }\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n for (var _prop in style) {\n var _value = style[_prop];\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n if (subStyle == null) {\n subStyle = {};\n }\n subStyle[_prop] = _value;\n }\n definedProperties.push(_prop);\n nextCache = null;\n }\n }\n }\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n var styleProps = [className, inlineStyle, debugString];\n return styleProps;\n };\n}\nvar styleq = styleq_2 = styleq$1.styleq = createStyleq();\nstyleq.factory = createStyleq;\n\nconst optimizedStyleq = styleq_2.factory({\n disableMix: true\n});\nfunction merge(...styles) {\n const [className, style, dataStyleSrc] = optimizedStyleq(styles);\n const result = {};\n if (className != null && className !== '') {\n result.className = className;\n }\n if (style != null) {\n result.style = style;\n }\n if (dataStyleSrc != null && dataStyleSrc !== '') {\n const chunks = dataStyleSrc.split(';');\n const pathsMap = {};\n for (const chunk of chunks) {\n const trimmed = chunk.trim();\n const [path, line] = trimmed.split(':');\n if (line != null) {\n pathsMap[path] = pathsMap[path] != null ? `${pathsMap[path]},${line}` : line;\n }\n }\n result['data-style-src'] = Object.keys(pathsMap).map(path => `${path}:${pathsMap[path]}`).join('; ');\n }\n return result;\n}\n\nfunction validateStrictProps(props) {\n Object.keys(props).forEach(key => {\n const isValid = isPropAllowed(key);\n if (!isValid) {\n errorMsg(`invalid prop \"${key}\"`);\n delete props[key];\n }\n });\n}\nfunction createStrictDOMComponent(TagName, defaultStyle) {\n const debugStyle = {\n $$css: true,\n 'debug::name': `html-${TagName}`\n };\n function Component({\n ref,\n ...props\n }) {\n const {\n for: htmlFor,\n style,\n ...restProps\n } = props;\n const hostProps = restProps;\n validateStrictProps(hostProps);\n if (htmlFor != null) {\n hostProps.htmlFor = htmlFor;\n }\n if (props.role != null) {\n hostProps.role = props.role === 'none' ? 'presentation' : props.role;\n }\n if (TagName === 'button') {\n hostProps.type = hostProps.type ? hostProps.type : 'button';\n } else if (TagName === 'input' || TagName === 'textarea') {\n hostProps.dir = hostProps.dir ? hostProps.dir : 'auto';\n }\n const hostStyleProps = merge([debugStyle, defaultStyle, style]);\n const element = jsx(TagName, {\n ...hostProps,\n ...hostStyleProps,\n ref: ref\n });\n return element;\n }\n Component.displayName = `html.${TagName}`;\n return Component;\n}\n\nconst styles = stylex.create({\n block: {\n margin: 0,\n padding: 0\n },\n inline: {\n margin: 0,\n padding: 0,\n textDecoration: 'none',\n textAlign: 'inherit',\n wordWrap: 'break-word'\n },\n inlineblock: {\n borderStyle: 'solid',\n margin: 0,\n padding: 0\n },\n button: {\n borderWidth: 1\n },\n codePre: {\n fontFamily: 'monospace, \"monospace\"',\n fontSize: '1em',\n overflow: 'auto'\n },\n heading: {\n fontSize: '1.5rem',\n wordWrap: 'break-word'\n },\n hr: {\n backgroundColor: 'black',\n borderStyle: 'none',\n borderWidth: 0,\n boxSizing: 'border-box',\n height: 1\n },\n img: {\n aspectRatio: 'attr(width) / attr(height)',\n height: 'auto',\n maxWidth: '100%'\n },\n input: {\n borderWidth: 1,\n borderStyle: 'solid'\n },\n list: {\n listStyle: 'none'\n },\n strong: {\n fontWeight: 'bold'\n },\n textarea: {\n borderWidth: 1,\n borderStyle: 'solid',\n resize: 'vertical'\n }\n});\nconst a$1 = styles.inline;\nconst article$1 = styles.block;\nconst aside$1 = styles.block;\nconst b$1 = styles.inline;\nconst bdi$1 = styles.inline;\nconst bdo$1 = styles.inline;\nconst blockquote$1 = styles.block;\nconst br$1 = null;\nconst button$1 = [styles.inlineblock, styles.button];\nconst code$1 = [styles.inline, styles.codePre];\nconst del$1 = null;\nconst div$1 = styles.block;\nconst em$1 = styles.inline;\nconst fieldset$1 = styles.block;\nconst footer$1 = styles.block;\nconst form$1 = styles.block;\nconst heading = [styles.block, styles.heading];\nconst header$1 = styles.block;\nconst hr$1 = [styles.block, styles.hr];\nconst i$1 = styles.inline;\nconst img$1 = styles.img;\nconst input$1 = [styles.inlineblock, styles.input];\nconst ins$1 = null;\nconst kbd$1 = null;\nconst label$1 = styles.inline;\nconst li$1 = styles.block;\nconst main$1 = styles.block;\nconst mark$1 = styles.inline;\nconst nav$1 = styles.block;\nconst ol$1 = [styles.list, styles.block];\nconst optgroup$1 = null;\nconst option$1 = null;\nconst p$1 = styles.block;\nconst pre$1 = [styles.block, styles.codePre];\nconst s$1 = null;\nconst section$1 = styles.block;\nconst select$1 = styles.inlineblock;\nconst span$1 = styles.inline;\nconst strong$1 = [styles.inline, styles.strong];\nconst sub$1 = styles.inline;\nconst sup$1 = styles.inline;\nconst textarea$1 = [styles.inlineblock, styles.textarea];\nconst u$1 = null;\nconst ul$1 = [styles.list, styles.block];\nconst defaultStyles = {\n a: a$1,\n article: article$1,\n aside: aside$1,\n b: b$1,\n bdi: bdi$1,\n bdo: bdo$1,\n blockquote: blockquote$1,\n br: br$1,\n button: button$1,\n code: code$1,\n del: del$1,\n div: div$1,\n em: em$1,\n fieldset: fieldset$1,\n footer: footer$1,\n form: form$1,\n h1: heading,\n h2: heading,\n h3: heading,\n h4: heading,\n h5: heading,\n h6: heading,\n header: header$1,\n hr: hr$1,\n i: i$1,\n img: img$1,\n input: input$1,\n ins: ins$1,\n kbd: kbd$1,\n label: label$1,\n li: li$1,\n main: main$1,\n mark: mark$1,\n nav: nav$1,\n ol: ol$1,\n optgroup: optgroup$1,\n option: option$1,\n p: p$1,\n pre: pre$1,\n s: s$1,\n section: section$1,\n select: select$1,\n span: span$1,\n strong: strong$1,\n sub: sub$1,\n sup: sup$1,\n textarea: textarea$1,\n u: u$1,\n ul: ul$1\n};\n\nconst a = createStrictDOMComponent('a', defaultStyles.a);\nconst article = createStrictDOMComponent('article', defaultStyles.article);\nconst aside = createStrictDOMComponent('aside', defaultStyles.aside);\nconst b = createStrictDOMComponent('b', defaultStyles.b);\nconst bdi = createStrictDOMComponent('bdi', defaultStyles.bdi);\nconst bdo = createStrictDOMComponent('bdo', defaultStyles.bdo);\nconst blockquote = createStrictDOMComponent('blockquote', defaultStyles.blockquote);\nconst br = createStrictDOMComponent('br', defaultStyles.br);\nconst button = createStrictDOMComponent('button', defaultStyles.button);\nconst code = createStrictDOMComponent('code', defaultStyles.code);\nconst del = createStrictDOMComponent('del', defaultStyles.del);\nconst div = createStrictDOMComponent('div', defaultStyles.div);\nconst em = createStrictDOMComponent('em', defaultStyles.em);\nconst fieldset = createStrictDOMComponent('fieldset', defaultStyles.fieldset);\nconst footer = createStrictDOMComponent('footer', defaultStyles.footer);\nconst form = createStrictDOMComponent('form', defaultStyles.form);\nconst h1 = createStrictDOMComponent('h1', defaultStyles.h1);\nconst h2 = createStrictDOMComponent('h2', defaultStyles.h2);\nconst h3 = createStrictDOMComponent('h3', defaultStyles.h3);\nconst h4 = createStrictDOMComponent('h4', defaultStyles.h4);\nconst h5 = createStrictDOMComponent('h5', defaultStyles.h5);\nconst h6 = createStrictDOMComponent('h6', defaultStyles.h6);\nconst header = createStrictDOMComponent('header', defaultStyles.header);\nconst hr = createStrictDOMComponent('hr', defaultStyles.hr);\nconst i = createStrictDOMComponent('i', defaultStyles.i);\nconst img = createStrictDOMComponent('img', defaultStyles.img);\nconst input = createStrictDOMComponent('input', defaultStyles.input);\nconst ins = createStrictDOMComponent('ins', defaultStyles.ins);\nconst kbd = createStrictDOMComponent('kbd', defaultStyles.kbd);\nconst label = createStrictDOMComponent('label', defaultStyles.label);\nconst li = createStrictDOMComponent('li', defaultStyles.li);\nconst main = createStrictDOMComponent('main', defaultStyles.main);\nconst mark = createStrictDOMComponent('mark', defaultStyles.mark);\nconst nav = createStrictDOMComponent('nav', defaultStyles.nav);\nconst ol = createStrictDOMComponent('ol', defaultStyles.ol);\nconst optgroup = createStrictDOMComponent('optgroup', defaultStyles.optgroup);\nconst option = createStrictDOMComponent('option', defaultStyles.option);\nconst p = createStrictDOMComponent('p', defaultStyles.p);\nconst pre = createStrictDOMComponent('pre', defaultStyles.pre);\nconst s = createStrictDOMComponent('s', defaultStyles.s);\nconst section = createStrictDOMComponent('section', defaultStyles.section);\nconst select = createStrictDOMComponent('select', defaultStyles.select);\nconst span = createStrictDOMComponent('span', defaultStyles.span);\nconst strong = createStrictDOMComponent('strong', defaultStyles.strong);\nconst sub = createStrictDOMComponent('sub', defaultStyles.sub);\nconst sup = createStrictDOMComponent('sup', defaultStyles.sup);\nconst textarea = createStrictDOMComponent('textarea', defaultStyles.textarea);\nconst u = createStrictDOMComponent('u', defaultStyles.u);\nconst ul = createStrictDOMComponent('ul', defaultStyles.ul);\n\nvar html = /*#__PURE__*/Object.freeze({\n __proto__: null,\n a: a,\n article: article,\n aside: aside,\n b: b,\n bdi: bdi,\n bdo: bdo,\n blockquote: blockquote,\n br: br,\n button: button,\n code: code,\n del: del,\n div: div,\n em: em,\n fieldset: fieldset,\n footer: footer,\n form: form,\n h1: h1,\n h2: h2,\n h3: h3,\n h4: h4,\n h5: h5,\n h6: h6,\n header: header,\n hr: hr,\n i: i,\n img: img,\n input: input,\n ins: ins,\n kbd: kbd,\n label: label,\n li: li,\n main: main,\n mark: mark,\n nav: nav,\n ol: ol,\n optgroup: optgroup,\n option: option,\n p: p,\n pre: pre,\n s: s,\n section: section,\n select: select,\n span: span,\n strong: strong,\n sub: sub,\n sup: sup,\n textarea: textarea,\n u: u,\n ul: ul\n});\n\nexport { html };\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n // Root\n root: {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n borderRadius: radii.md,\n overflow: 'hidden',\n backgroundColor: colors.bgCard,\n fontFamily: typography.fontFamily,\n color: colors.text,\n },\n\n // Header group\n header: {\n backgroundColor: colors.bgCard,\n },\n\n // Row\n row: {\n display: 'grid',\n borderBottomWidth: 1,\n borderBottomStyle: 'solid',\n borderBottomColor: colors.border,\n },\n rowLastChild: {\n borderBottomWidth: 0,\n },\n bodyRow: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n\n // Header cell\n headerCell: {\n fontWeight: typography.fontWeightSemibold,\n color: colors.textMuted,\n textAlign: 'start',\n },\n\n // Body cell\n cell: {\n color: colors.text,\n display: 'flex',\n alignItems: 'center',\n },\n\n // Size: sm\n cellSm: {\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n fontSize: typography.fontSizeXs,\n },\n // Size: md\n cellMd: {\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontSize: typography.fontSizeSm,\n },\n\n // Variant: striped (even body rows)\n stripedEven: {\n backgroundColor: {\n default: colors.bgCardHover,\n ':hover': colors.bgCardHover,\n },\n },\n\n // Variant: bordered (cells get side borders)\n borderedCell: {\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n borderedCellLast: {\n borderRightWidth: 0,\n },\n\n // Dynamic styles — simple identifier params only (StyleX constraint)\n gridColumns: (columns: number) => ({\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n }),\n})\n","import {type ReactNode, createContext, useContext, Children} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\n// --- Types ---\n\nexport type TableVariant = 'default' | 'striped' | 'bordered'\nexport type TableSize = 'sm' | 'md'\n\n// --- Context ---\n\ninterface TableContextValue {\n variant: TableVariant\n size: TableSize\n columns: number\n isHeader: boolean\n}\n\nconst TableContext = createContext<TableContextValue | null>(null)\n\nfunction useTable() {\n const ctx = useContext(TableContext)\n if (!ctx) throw new Error('Table compound components must be used within Table.Root')\n return ctx\n}\n\n// --- HeaderContext (to distinguish header vs body rowgroup) ---\n\nconst HeaderContext = createContext(false)\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n variant?: TableVariant\n size?: TableSize\n columns: number\n}\n\nfunction Root({children, variant = 'default', size = 'md', columns}: RootProps) {\n return (\n <TableContext.Provider value={{variant, size, columns, isHeader: false}}>\n <html.div role=\"table\" style={styles.root}>\n {children}\n </html.div>\n </TableContext.Provider>\n )\n}\n\n// --- Header ---\n\nfunction Header({children}: {children: ReactNode}) {\n return (\n <HeaderContext.Provider value={true}>\n <html.div role=\"rowgroup\" style={styles.header}>\n {children}\n </html.div>\n </HeaderContext.Provider>\n )\n}\n\n// --- Body ---\n\nfunction Body({children}: {children: ReactNode}) {\n const {variant} = useTable()\n const childArray = Children.toArray(children)\n\n return (\n <HeaderContext.Provider value={false}>\n <html.div role=\"rowgroup\">\n {childArray.map((child, index) => {\n if (variant === 'striped') {\n return (\n <RowIndexContext.Provider key={index} value={index}>\n {child}\n </RowIndexContext.Provider>\n )\n }\n return child\n })}\n </html.div>\n </HeaderContext.Provider>\n )\n}\n\n// Row index context for striped variant\nconst RowIndexContext = createContext<number>(-1)\n\n// --- Row ---\n\nfunction Row({children}: {children: ReactNode}) {\n const {variant, columns} = useTable()\n const isHeader = useContext(HeaderContext)\n const rowIndex = useContext(RowIndexContext)\n const isEvenRow = rowIndex >= 0 && rowIndex % 2 === 1\n const childArray = Children.toArray(children)\n const isLastRow = false // handled by CSS or parent\n\n return (\n <html.div\n role=\"row\"\n style={[\n styles.row,\n styles.gridColumns(columns),\n !isHeader && styles.bodyRow,\n !isHeader && variant === 'striped' && isEvenRow && styles.stripedEven,\n ]}\n >\n {variant === 'bordered'\n ? childArray.map((child, index) => (\n <CellIndexContext.Provider key={index} value={{index, total: childArray.length}}>\n {child}\n </CellIndexContext.Provider>\n ))\n : children}\n </html.div>\n )\n}\n\n// Cell index context for bordered variant\nconst CellIndexContext = createContext<{index: number; total: number}>({\n index: 0,\n total: 0,\n})\n\n// --- HeaderCell ---\n\nfunction HeaderCell({\n children,\n 'aria-label': ariaLabel,\n}: {\n children?: ReactNode\n 'aria-label'?: string\n}) {\n const {size, variant} = useTable()\n const {index, total} = useContext(CellIndexContext)\n const isLast = variant === 'bordered' && index === total - 1\n\n return (\n <html.div\n role=\"columnheader\"\n aria-label={ariaLabel}\n style={[\n styles.headerCell,\n size === 'sm' ? styles.cellSm : styles.cellMd,\n variant === 'bordered' && styles.borderedCell,\n isLast && styles.borderedCellLast,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Cell ---\n\nfunction Cell({children}: {children: ReactNode}) {\n const {size, variant} = useTable()\n const {index, total} = useContext(CellIndexContext)\n const isLast = variant === 'bordered' && index === total - 1\n\n return (\n <html.div\n role=\"cell\"\n style={[\n styles.cell,\n size === 'sm' ? styles.cellSm : styles.cellMd,\n variant === 'bordered' && styles.borderedCell,\n isLast && styles.borderedCellLast,\n ]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Export ---\n\nexport const Table = {\n Root,\n Header,\n Body,\n Row,\n HeaderCell,\n Cell,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n rootVertical: {\n flexDirection: 'row',\n },\n list: {\n display: 'flex',\n flexDirection: 'row',\n borderBottomWidth: 1,\n borderBottomStyle: 'solid',\n borderBottomColor: colors.border,\n gap: spacing.xs,\n },\n listVertical: {\n flexDirection: 'column',\n borderBottomWidth: 0,\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n gap: 0,\n },\n tab: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n fontWeight: typography.fontWeightMedium,\n color: {\n default: colors.textMuted,\n ':hover': colors.text,\n },\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderBottomWidth: 2,\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n cursor: 'pointer',\n transitionProperty: 'color, border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': -2,\n },\n },\n tabVertical: {\n justifyContent: 'flex-start',\n borderBottomWidth: 0,\n borderRightWidth: 2,\n borderRightStyle: 'solid',\n borderRightColor: 'transparent',\n },\n tabActiveHorizontal: {\n color: colors.text,\n borderBottomColor: colors.accent,\n },\n tabActiveVertical: {\n color: colors.text,\n borderRightColor: colors.accent,\n },\n tabDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n color: colors.textMuted,\n },\n panel: {\n paddingTop: spacing.md,\n },\n panelVertical: {\n paddingTop: 0,\n paddingLeft: spacing.md,\n },\n})\n","import {createContext, useContext} from 'react'\n\nexport type Orientation = 'horizontal' | 'vertical'\n\nexport interface TabsContextValue {\n activeValue: string | null\n onSelect: (value: string) => void\n orientation: Orientation\n registerTab: (value: string, disabled: boolean) => () => void\n tabsRef: React.RefObject<Map<string, boolean>>\n orderRef: React.RefObject<string[]>\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null)\n\nexport function useTabs() {\n const ctx = useContext(TabsContext)\n if (!ctx) throw new Error('Tabs compound components must be used within Tabs.Root')\n return ctx\n}\n","import {useCallback, useRef} from 'react'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {Orientation, TabsContextValue} from './TabsContext'\n\ninterface UseTabsRootOptions {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n orientation?: Orientation\n}\n\nexport function useTabsRoot({\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n}: UseTabsRootOptions): TabsContextValue {\n const [activeValue, onSelect] = useControllableValue<string | null>(\n controlledValue,\n defaultValue ?? null,\n onValueChange\n ? (v) => {\n if (v !== null) onValueChange(v)\n }\n : undefined,\n )\n const tabsRef = useRef(new Map<string, boolean>())\n const orderRef = useRef<string[]>([])\n\n const registerTab = useCallback((value: string, disabled: boolean) => {\n tabsRef.current.set(value, disabled)\n if (!orderRef.current.includes(value)) {\n orderRef.current.push(value)\n }\n return () => {\n tabsRef.current.delete(value)\n orderRef.current = orderRef.current.filter((v) => v !== value)\n }\n }, [])\n\n return {activeValue, onSelect, orientation, registerTab, tabsRef, orderRef}\n}\n","import {type ReactNode, useRef, useId, useEffect} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport {TabsContext, useTabs} from './TabsContext'\nimport {useTabsRoot} from './useTabsRoot'\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n orientation?: 'horizontal' | 'vertical'\n}\n\nfunction Root({\n children,\n value,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n}: RootProps) {\n const ctx = useTabsRoot({value, defaultValue, onValueChange, orientation})\n\n return (\n <TabsContext.Provider value={ctx}>\n <html.div style={[styles.root, orientation === 'vertical' && styles.rootVertical]}>\n {children}\n </html.div>\n </TabsContext.Provider>\n )\n}\n\n// --- List ---\n\ninterface ListProps {\n children: ReactNode\n}\n\nfunction List({children}: ListProps) {\n const {orientation, activeValue, onSelect, tabsRef, orderRef} = useTabs()\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const el = listRef.current\n if (!el) return\n\n function handleKeyDown(this: HTMLElement, e: KeyboardEvent) {\n const order = orderRef.current\n const tabs = tabsRef.current\n if (order.length === 0) return\n const listEl = this\n\n const prevKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp'\n const nextKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown'\n\n let targetValue: string | null = null\n\n switch (e.key) {\n case nextKey: {\n e.preventDefault()\n const currentIdx = activeValue ? order.indexOf(activeValue) : -1\n for (let i = 1; i <= order.length; i++) {\n const idx = (currentIdx + i) % order.length\n const val = order[idx]\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case prevKey: {\n e.preventDefault()\n const currentIdx = activeValue ? order.indexOf(activeValue) : 0\n for (let i = 1; i <= order.length; i++) {\n const idx = (currentIdx - i + order.length) % order.length\n const val = order[idx]\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case 'Home': {\n e.preventDefault()\n for (const val of order) {\n if (!tabs.get(val)) {\n targetValue = val\n break\n }\n }\n break\n }\n case 'End': {\n e.preventDefault()\n for (let i = order.length - 1; i >= 0; i--) {\n if (!tabs.get(order[i])) {\n targetValue = order[i]\n break\n }\n }\n break\n }\n }\n\n if (targetValue) {\n onSelect(targetValue)\n // Focus the newly activated tab button\n const tabEl = listEl.querySelector(\n `[data-tab-value=\"${targetValue}\"]`,\n ) as HTMLElement | null\n tabEl?.focus()\n }\n }\n\n el.addEventListener('keydown', handleKeyDown)\n return () => el.removeEventListener('keydown', handleKeyDown)\n }, [orientation, activeValue, onSelect, tabsRef, orderRef])\n\n return (\n <html.div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n style={[styles.list, orientation === 'vertical' && styles.listVertical]}\n >\n {children}\n </html.div>\n )\n}\n\n// --- Tab ---\n\ninterface TabProps {\n value: string\n disabled?: boolean\n children: ReactNode\n}\n\nfunction Tab({value, disabled = false, children}: TabProps) {\n const {activeValue, onSelect, orientation, registerTab} = useTabs()\n const isActive = activeValue === value\n const tabId = useId()\n const panelId = `${tabId}-panel`\n\n useEffect(() => {\n return registerTab(value, disabled)\n }, [value, disabled, registerTab])\n\n const handleClick = () => {\n if (!disabled) {\n onSelect(value)\n }\n }\n\n return (\n <html.button\n type=\"button\"\n role=\"tab\"\n id={tabId}\n aria-selected={isActive}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n data-tab-value={value}\n tabIndex={isActive ? 0 : -1}\n onClick={handleClick}\n style={[\n styles.tab,\n orientation === 'vertical' && styles.tabVertical,\n isActive &&\n (orientation === 'vertical' ? styles.tabActiveVertical : styles.tabActiveHorizontal),\n disabled && styles.tabDisabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n\n// --- Panel ---\n\ninterface PanelProps {\n value: string\n children: ReactNode\n}\n\nfunction Panel({value, children}: PanelProps) {\n const {activeValue, orientation} = useTabs()\n\n if (activeValue !== value) return null\n\n return (\n <html.div\n role=\"tabpanel\"\n style={[styles.panel, orientation === 'vertical' && styles.panelVertical]}\n >\n {children}\n </html.div>\n )\n}\n\nexport const Tabs = {\n Root,\n List,\n Tab,\n Panel,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n width: '100%',\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n paddingLeft: spacing.md,\n paddingRight: spacing.md,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeSm,\n lineHeight: typography.lineHeight,\n color: colors.text,\n backgroundColor: colors.bg,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: radii.sm,\n resize: 'vertical' as const,\n transitionProperty: 'border-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {\n default: 0,\n ':focus-visible': 2,\n },\n outlineStyle: {\n default: 'none',\n ':focus-visible': 'solid',\n },\n outlineColor: {\n default: 'transparent',\n ':focus-visible': colors.accent,\n },\n outlineOffset: {\n default: 0,\n ':focus-visible': 1,\n },\n },\n default: {\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n ':focus': colors.accent,\n },\n },\n error: {\n borderColor: {\n default: colors.error,\n ':focus': colors.error,\n },\n },\n})\n","import {html} from 'react-strict-dom'\nimport {useFieldContext} from '../Field/FieldContext'\nimport {styles} from './styles.css'\n\ntype StrictTextareaProps = React.ComponentProps<typeof html.textarea>\n\nexport type TextareaVariant = 'default' | 'error'\n\ninterface TextareaProps {\n variant?: TextareaVariant\n name?: string\n placeholder?: string\n required?: boolean\n rows?: number\n value?: string\n defaultValue?: string\n disabled?: boolean\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void\n onBlur?: () => void\n ref?: React.Ref<HTMLTextAreaElement>\n}\n\nexport function Textarea({\n variant = 'default',\n name,\n placeholder,\n required,\n rows = 3,\n value,\n defaultValue,\n disabled,\n onChange,\n onBlur,\n ref,\n}: TextareaProps) {\n const ctx = useFieldContext()\n\n const fieldCtx = ctx?.field\n const effectiveName = name ?? fieldCtx?.name\n const effectiveValue = value ?? (fieldCtx ? String(fieldCtx.value ?? '') : undefined)\n const effectiveOnChange = onChange ?? fieldCtx?.onChange\n const effectiveOnBlur = onBlur ?? fieldCtx?.onBlur\n const effectiveRef = ref ?? fieldCtx?.ref\n const effectiveVariant = ctx?.invalid ? 'error' : variant\n\n return (\n <html.textarea\n id={ctx?.controlId}\n name={effectiveName}\n placeholder={placeholder}\n required={required}\n rows={rows}\n value={effectiveValue}\n defaultValue={defaultValue}\n disabled={disabled}\n aria-describedby={\n ctx ? `${ctx.descriptionId} ${ctx.invalid ? ctx.errorId : ''}`.trim() : undefined\n }\n aria-invalid={ctx?.invalid || variant === 'error' || undefined}\n onChange={effectiveOnChange as StrictTextareaProps['onChange']}\n onBlur={effectiveOnBlur as StrictTextareaProps['onBlur']}\n ref={effectiveRef as React.Ref<HTMLTextAreaElement>}\n style={[styles.base, styles[effectiveVariant]]}\n />\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n // Colors\n default: {\n color: colors.text,\n },\n muted: {\n color: colors.textMuted,\n },\n accent: {\n color: colors.accent,\n },\n error: {\n color: colors.errorText,\n },\n success: {\n color: colors.successText,\n },\n warning: {\n color: colors.warningText,\n },\n\n // Weight overrides\n weightNormal: {\n fontWeight: typography.fontWeightNormal,\n },\n weightMedium: {\n fontWeight: typography.fontWeightMedium,\n },\n weightSemibold: {\n fontWeight: typography.fontWeightSemibold,\n },\n weightBold: {\n fontWeight: typography.fontWeightBold,\n },\n\n // Alignment\n alignStart: {\n textAlign: 'start',\n },\n alignCenter: {\n textAlign: 'center',\n },\n alignEnd: {\n textAlign: 'end',\n },\n\n // Truncate\n truncate: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {typePresets} from '@duro-app/tokens/tokens/type-presets.css'\nimport {styles} from './styles.css'\n\nexport type TextVariant = 'bodySm' | 'bodyMd' | 'bodyLg' | 'caption' | 'label' | 'code' | 'overline'\nexport type TextColor = 'default' | 'muted' | 'accent' | 'error' | 'success' | 'warning'\n\ninterface TextProps {\n variant?: TextVariant\n color?: TextColor\n weight?: 'normal' | 'medium' | 'semibold' | 'bold'\n align?: 'start' | 'center' | 'end'\n truncate?: boolean\n as?: 'span' | 'p' | 'div'\n children: ReactNode\n}\n\nconst weightMap = {\n normal: styles.weightNormal,\n medium: styles.weightMedium,\n semibold: styles.weightSemibold,\n bold: styles.weightBold,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nexport function Text({\n variant = 'bodyMd',\n color = 'default',\n weight,\n align,\n truncate,\n as = 'span',\n children,\n}: TextProps) {\n const style = [\n typePresets[variant],\n styles[color],\n weight && weightMap[weight],\n align && alignMap[align],\n truncate && styles.truncate,\n ]\n\n if (as === 'p') return <html.p style={style}>{children}</html.p>\n if (as === 'div') return <html.div style={style}>{children}</html.div>\n return <html.span style={style}>{children}</html.span>\n}\n","import {createContext, useContext} from 'react'\nimport type {ToggleSize} from '../Toggle/Toggle'\n\nexport type Orientation = 'horizontal' | 'vertical'\n\nexport interface ToggleGroupContextValue {\n value: string[]\n toggle: (itemValue: string) => void\n disabled: boolean\n orientation: Orientation\n size: ToggleSize\n}\n\nexport const ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null)\n\nexport function useToggleGroup() {\n return useContext(ToggleGroupContext)\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 1,\n borderStyle: 'solid',\n cursor: 'pointer',\n fontFamily: typography.fontFamily,\n fontWeight: typography.fontWeightMedium,\n transitionProperty: 'background-color, border-color, color, opacity',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {default: 0, ':focus-visible': 2},\n outlineStyle: 'solid',\n outlineColor: colors.accent,\n outlineOffset: 2,\n },\n sizeDefault: {\n padding: `${spacing.sm} ${spacing.md}`,\n fontSize: typography.fontSizeSm,\n borderRadius: radii.sm,\n gap: spacing.sm,\n },\n sizeSmall: {\n padding: `${spacing.xs} ${spacing.sm}`,\n fontSize: typography.fontSizeXs,\n borderRadius: radii.sm,\n gap: spacing.xs,\n },\n unpressed: {\n backgroundColor: {\n default: 'transparent',\n ':hover': colors.bgCardHover,\n },\n borderColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n color: colors.textMuted,\n },\n pressed: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n borderColor: colors.accent,\n color: colors.accentContrast,\n },\n grouped: {\n borderWidth: 0,\n borderRadius: 0,\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colors.border,\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n})\n","import {type ReactNode, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {useToggleGroup} from '../ToggleGroup/ToggleGroupContext'\nimport {styles} from './styles.css'\n\nexport type ToggleSize = 'default' | 'small'\n\ninterface ToggleProps {\n /** Controlled pressed state (standalone usage). */\n pressed?: boolean\n /** Initial pressed state (uncontrolled, standalone usage). */\n defaultPressed?: boolean\n /** Callback fired when the pressed state changes (standalone usage). */\n onPressedChange?: (pressed: boolean) => void\n /** Unique value when used inside a ToggleGroup. */\n value?: string\n /** Prevents user interaction. */\n disabled?: boolean\n /** Size variant (overridden by ToggleGroup when grouped). */\n size?: ToggleSize\n 'aria-label'?: string\n children: ReactNode\n}\n\nconst sizeMap = {\n default: styles.sizeDefault,\n small: styles.sizeSmall,\n} as const\n\nexport function Toggle({\n pressed: controlledPressed,\n defaultPressed = false,\n onPressedChange,\n value,\n disabled: disabledProp = false,\n size: sizeProp = 'default',\n 'aria-label': ariaLabel,\n children,\n}: ToggleProps) {\n const group = useToggleGroup()\n\n // When inside a ToggleGroup, derive pressed state from group context\n const groupPressed = group && value !== undefined ? group.value.includes(value) : undefined\n const isGrouped = group !== null\n const disabled = disabledProp || (group?.disabled ?? false)\n const size = group?.size ?? sizeProp\n\n const [standalonePressed, setStandalonePressed] = useControllableValue(\n controlledPressed,\n defaultPressed,\n onPressedChange,\n )\n\n const pressed = groupPressed ?? standalonePressed\n\n const handleClick = useCallback(() => {\n if (disabled) return\n if (isGrouped && value !== undefined) {\n group.toggle(value)\n } else {\n setStandalonePressed(!pressed)\n }\n }, [disabled, isGrouped, value, group, pressed, setStandalonePressed])\n\n return (\n <html.button\n type=\"button\"\n aria-pressed={pressed}\n aria-label={ariaLabel}\n disabled={disabled}\n onClick={handleClick}\n data-pressed={pressed ? '' : undefined}\n style={[\n styles.base,\n sizeMap[size],\n pressed ? styles.pressed : styles.unpressed,\n isGrouped && styles.grouped,\n disabled && styles.disabled,\n ]}\n >\n {children}\n </html.button>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {radii} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n overflow: 'hidden',\n },\n vertical: {\n flexDirection: 'column',\n },\n})\n","import {type ReactNode, useCallback} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport type {ToggleSize} from '../Toggle/Toggle'\nimport {ToggleGroupContext, type Orientation} from './ToggleGroupContext'\nimport {styles} from './styles.css'\n\ninterface ToggleGroupProps {\n /** Controlled value — array of pressed item values. */\n value?: string[]\n /** Initial value (uncontrolled). */\n defaultValue?: string[]\n /** Callback fired when the set of pressed values changes. */\n onValueChange?: (value: string[]) => void\n /** When false, at most one item can be pressed at a time. */\n multiple?: boolean\n /** Prevents interaction with all items. */\n disabled?: boolean\n /** Layout direction. */\n orientation?: Orientation\n /** Size applied to all child toggles. */\n size?: ToggleSize\n children: ReactNode\n}\n\nexport function ToggleGroup({\n value: controlledValue,\n defaultValue = [],\n onValueChange,\n multiple = false,\n disabled = false,\n orientation = 'horizontal',\n size = 'default',\n children,\n}: ToggleGroupProps) {\n const [value, setValue] = useControllableValue(controlledValue, defaultValue, onValueChange)\n\n const toggle = useCallback(\n (itemValue: string) => {\n const nextPressed = !value.includes(itemValue)\n let next: string[]\n if (multiple) {\n next = nextPressed ? [...value, itemValue] : value.filter((v) => v !== itemValue)\n } else {\n next = nextPressed ? [itemValue] : []\n }\n setValue(next)\n },\n [value, multiple, setValue],\n )\n\n return (\n <ToggleGroupContext.Provider value={{value, toggle, disabled, orientation, size}}>\n <html.div\n role=\"toolbar\"\n aria-orientation={orientation}\n style={[styles.root, orientation === 'vertical' && styles.vertical]}\n >\n {children}\n </html.div>\n </ToggleGroupContext.Provider>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\nimport {shadows} from '@duro-app/tokens/tokens/shadows.css'\n\nexport const styles = css.create({\n root: {\n position: 'relative',\n display: 'inline-flex',\n },\n popup: {\n position: 'absolute',\n zIndex: 50,\n paddingTop: spacing.xs,\n paddingBottom: spacing.xs,\n paddingLeft: spacing.sm,\n paddingRight: spacing.sm,\n backgroundColor: colors.bgCard,\n color: colors.text,\n fontFamily: typography.fontFamily,\n fontSize: typography.fontSizeXs,\n lineHeight: typography.lineHeight,\n borderRadius: radii.sm,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: colors.border,\n boxShadow: shadows.md,\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n },\n top: {\n bottom: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginBottom: spacing.xs,\n },\n bottom: {\n top: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginTop: spacing.xs,\n },\n left: {\n right: '100%',\n top: '50%',\n transform: 'translateY(-50%)',\n marginRight: spacing.xs,\n },\n right: {\n left: '100%',\n top: '50%',\n transform: 'translateY(-50%)',\n marginLeft: spacing.xs,\n },\n})\n","import {\n type ReactNode,\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n useId,\n} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\n// --- Context ---\n\ntype Placement = 'top' | 'bottom' | 'left' | 'right'\n\ninterface TooltipContextValue {\n open: boolean\n show: () => void\n hide: () => void\n tooltipId: string\n placement: Placement\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null)\n\nfunction useTooltip() {\n const ctx = useContext(TooltipContext)\n if (!ctx) throw new Error('Tooltip compound components must be used within Tooltip.Root')\n return ctx\n}\n\n// --- Root ---\n\ninterface RootProps {\n children: ReactNode\n content: ReactNode\n placement?: Placement\n delay?: number\n}\n\nfunction Root({children, content, placement = 'top', delay = 300}: RootProps) {\n const [open, setOpen] = useState(false)\n const tooltipId = useId()\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const show = useCallback(() => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = setTimeout(() => setOpen(true), delay)\n }, [delay])\n\n const hide = useCallback(() => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = null\n setOpen(false)\n }, [])\n\n return (\n <TooltipContext.Provider value={{open, show, hide, tooltipId, placement}}>\n <html.div style={styles.root}>\n {children}\n {open && (\n <html.div id={tooltipId} role=\"tooltip\" style={[styles.popup, styles[placement]]}>\n {content}\n </html.div>\n )}\n </html.div>\n </TooltipContext.Provider>\n )\n}\n\n// --- Trigger ---\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nfunction Trigger({children}: TriggerProps) {\n const {open, show, hide, tooltipId} = useTooltip()\n\n return (\n <html.div\n onPointerEnter={show}\n onPointerLeave={hide}\n onFocus={show}\n onBlur={hide}\n aria-describedby={open ? tooltipId : undefined}\n >\n {children}\n </html.div>\n )\n}\n\nexport const Tooltip = {\n Root,\n Trigger,\n}\n","import {css} from 'react-strict-dom'\nimport {colors} from '@duro-app/tokens/tokens/colors.css'\nimport {spacing, radii} from '@duro-app/tokens/tokens/spacing.css'\nimport {typography} from '@duro-app/tokens/tokens/typography.css'\n\nexport const styles = css.create({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: spacing.sm,\n cursor: 'pointer',\n fontSize: typography.fontSizeSm,\n color: colors.text,\n lineHeight: typography.lineHeight,\n },\n rootDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n track: {\n position: 'relative',\n width: 36,\n height: 20,\n borderRadius: radii.full,\n borderWidth: 0,\n padding: 0,\n cursor: 'inherit',\n transitionProperty: 'background-color',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n outlineWidth: {default: 0, ':focus-visible': 2},\n outlineStyle: 'solid',\n outlineColor: colors.accent,\n outlineOffset: 2,\n flexShrink: 0,\n },\n trackUnchecked: {\n backgroundColor: {\n default: colors.border,\n ':hover': colors.textMuted,\n },\n },\n trackChecked: {\n backgroundColor: {\n default: colors.accent,\n ':hover': colors.accentHover,\n },\n },\n thumb: {\n position: 'absolute',\n top: 2,\n left: 2,\n width: 16,\n height: 16,\n borderRadius: radii.full,\n backgroundColor: '#fff',\n transitionProperty: 'transform',\n transitionDuration: '150ms',\n transitionTimingFunction: 'ease',\n },\n thumbChecked: {\n transform: 'translateX(16px)',\n },\n input: {\n position: 'absolute',\n width: 1,\n height: 1,\n opacity: 0,\n overflow: 'hidden',\n },\n})\n","import {type ReactNode, useCallback, useRef} from 'react'\nimport {html} from 'react-strict-dom'\nimport {useControllableValue} from '../../hooks/useControllableValue'\nimport {styles} from './styles.css'\n\ninterface SwitchProps {\n /** Controlled checked state. */\n checked?: boolean\n /** Initial checked state (uncontrolled). */\n defaultChecked?: boolean\n /** Callback fired when the checked state changes. */\n onCheckedChange?: (checked: boolean) => void\n /** Prevents user interaction. */\n disabled?: boolean\n /** Form field name for the hidden input. */\n name?: string\n /** Value submitted when checked. */\n value?: string\n /** Label content rendered beside the switch. */\n children?: ReactNode\n}\n\nexport function Switch({\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n name,\n value,\n children,\n}: SwitchProps) {\n const [checked, setChecked] = useControllableValue(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n )\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleClick = useCallback(() => {\n if (disabled) return\n setChecked(!checked)\n // Keep hidden input in sync for form submission\n if (inputRef.current) {\n inputRef.current.checked = !checked\n }\n }, [disabled, checked, setChecked])\n\n return (\n <html.label style={[styles.root, disabled && styles.rootDisabled]}>\n <html.input\n ref={inputRef}\n type=\"checkbox\"\n role=\"switch\"\n name={name}\n value={value}\n checked={controlledChecked !== undefined ? controlledChecked : undefined}\n defaultChecked={controlledChecked === undefined ? defaultChecked : undefined}\n disabled={disabled}\n aria-checked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onCheckedChange?.(e.target.checked)\n }}\n style={styles.input}\n />\n <html.button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={disabled}\n onClick={handleClick}\n style={[styles.track, checked ? styles.trackChecked : styles.trackUnchecked]}\n >\n <html.span style={[styles.thumb, checked && styles.thumbChecked]} />\n </html.button>\n {children && <html.span>{children}</html.span>}\n </html.label>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'column',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n alignStretch: {alignItems: 'stretch'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type SpacingKey = 'xs' | 'sm' | 'ms' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl'\n\ninterface StackProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end' | 'stretch'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n stretch: styles.alignStretch,\n} as const\n\nexport function Stack({gap = 'md', align = 'stretch', children}: StackProps) {\n return <html.div style={[styles.base, gapMap[gap], alignMap[align]]}>{children}</html.div>\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n alignBaseline: {alignItems: 'baseline'},\n alignStretch: {alignItems: 'stretch'},\n justifyStart: {justifyContent: 'flex-start'},\n justifyCenter: {justifyContent: 'center'},\n justifyEnd: {justifyContent: 'flex-end'},\n justifyBetween: {justifyContent: 'space-between'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface InlineProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch'\n justify?: 'start' | 'center' | 'end' | 'between'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n baseline: styles.alignBaseline,\n stretch: styles.alignStretch,\n} as const\n\nconst justifyMap = {\n start: styles.justifyStart,\n center: styles.justifyCenter,\n end: styles.justifyEnd,\n between: styles.justifyBetween,\n} as const\n\nexport function Inline({gap = 'sm', align = 'center', justify = 'start', children}: InlineProps) {\n return (\n <html.div style={[styles.base, gapMap[gap], alignMap[align], justifyMap[justify]]}>\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n alignStart: {alignItems: 'flex-start'},\n alignCenter: {alignItems: 'center'},\n alignEnd: {alignItems: 'flex-end'},\n justifyStart: {justifyContent: 'flex-start'},\n justifyCenter: {justifyContent: 'center'},\n justifyEnd: {justifyContent: 'flex-end'},\n justifyBetween: {justifyContent: 'space-between'},\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface ClusterProps {\n gap?: SpacingKey\n align?: 'start' | 'center' | 'end'\n justify?: 'start' | 'center' | 'end' | 'between'\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst alignMap = {\n start: styles.alignStart,\n center: styles.alignCenter,\n end: styles.alignEnd,\n} as const\n\nconst justifyMap = {\n start: styles.justifyStart,\n center: styles.justifyCenter,\n end: styles.justifyEnd,\n between: styles.justifyBetween,\n} as const\n\nexport function Cluster({gap = 'sm', align = 'start', justify = 'start', children}: ClusterProps) {\n return (\n <html.div style={[styles.base, gapMap[gap], alignMap[align], justifyMap[justify]]}>\n {children}\n </html.div>\n )\n}\n","import {css} from 'react-strict-dom'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n base: {\n display: 'grid',\n },\n col1: {gridTemplateColumns: '1fr'},\n col2: {gridTemplateColumns: 'repeat(2, 1fr)'},\n col3: {gridTemplateColumns: 'repeat(3, 1fr)'},\n col4: {gridTemplateColumns: 'repeat(4, 1fr)'},\n col5: {gridTemplateColumns: 'repeat(5, 1fr)'},\n col6: {gridTemplateColumns: 'repeat(6, 1fr)'},\n autoFit: (minWidth: string) => ({\n gridTemplateColumns: `repeat(auto-fill, minmax(${minWidth}, 1fr))`,\n }),\n gapXs: {gap: spacing.xs},\n gapSm: {gap: spacing.sm},\n gapMs: {gap: spacing.ms},\n gapMd: {gap: spacing.md},\n gapLg: {gap: spacing.lg},\n gapXl: {gap: spacing.xl},\n gapXxl: {gap: spacing.xxl},\n gapXxxl: {gap: spacing.xxxl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\nimport type {SpacingKey} from '../Stack/Stack'\n\ninterface GridProps {\n gap?: SpacingKey\n columns?: 1 | 2 | 3 | 4 | 5 | 6\n minColumnWidth?: string\n children: ReactNode\n}\n\nconst gapMap = {\n xs: styles.gapXs,\n sm: styles.gapSm,\n ms: styles.gapMs,\n md: styles.gapMd,\n lg: styles.gapLg,\n xl: styles.gapXl,\n xxl: styles.gapXxl,\n xxxl: styles.gapXxxl,\n} as const\n\nconst columnsMap = {\n 1: styles.col1,\n 2: styles.col2,\n 3: styles.col3,\n 4: styles.col4,\n 5: styles.col5,\n 6: styles.col6,\n} as const\n\nexport function Grid({gap = 'md', columns, minColumnWidth, children}: GridProps) {\n const columnStyle = minColumnWidth\n ? styles.autoFit(minColumnWidth)\n : columns\n ? columnsMap[columns]\n : undefined\n\n return <html.div style={[styles.base, gapMap[gap], columnStyle]}>{children}</html.div>\n}\n","import {css} from 'react-strict-dom'\nimport {layoutSpacing} from '@duro-app/tokens/tokens/layout-spacing.css'\nimport {spacing} from '@duro-app/tokens/tokens/spacing.css'\n\nexport const styles = css.create({\n root: {\n width: '100%',\n },\n container: {\n width: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n // Max-width presets\n maxSm: {maxWidth: 600},\n maxMd: {maxWidth: 800},\n maxLg: {maxWidth: 1200},\n // Horizontal padding\n padSm: {paddingLeft: layoutSpacing.containerSm, paddingRight: layoutSpacing.containerSm},\n padMd: {paddingLeft: layoutSpacing.containerMd, paddingRight: layoutSpacing.containerMd},\n padLg: {paddingLeft: layoutSpacing.containerLg, paddingRight: layoutSpacing.containerLg},\n // Vertical spacing\n headerPadding: {paddingTop: spacing.lg},\n mainPadding: {paddingTop: spacing.xl, paddingBottom: spacing.xl},\n})\n","import type {ReactNode} from 'react'\nimport {html} from 'react-strict-dom'\nimport {styles} from './styles.css'\n\nexport type PageShellMaxWidth = 'sm' | 'md' | 'lg' | 'full'\nexport type PageShellPadding = 'sm' | 'md' | 'lg'\n\ninterface PageShellProps {\n /** Max-width preset: sm (600), md (800), lg (1200), full (none). Default: 'lg' */\n maxWidth?: PageShellMaxWidth\n /** Horizontal padding preset. Default: 'md' (24px) */\n padding?: PageShellPadding\n /** Header element rendered above the main content with same constraints */\n header?: ReactNode\n children: ReactNode\n}\n\nconst maxWidthMap = {\n sm: styles.maxSm,\n md: styles.maxMd,\n lg: styles.maxLg,\n full: null,\n} as const\n\nconst paddingMap = {\n sm: styles.padSm,\n md: styles.padMd,\n lg: styles.padLg,\n} as const\n\nexport function PageShell({maxWidth = 'lg', padding = 'md', header, children}: PageShellProps) {\n const mw = maxWidthMap[maxWidth]\n const pad = paddingMap[padding]\n\n return (\n <html.div style={styles.root}>\n {header != null && (\n <html.header style={[styles.container, styles.maxLg, pad, styles.headerPadding]}>\n {header}\n </html.header>\n )}\n <html.main style={[styles.container, mw, pad, styles.mainPadding]}>{children}</html.main>\n </html.div>\n )\n}\n","import {useRef, useState, useEffect} from 'react'\n\nexport type ContainerSize = 'compact' | 'default' | 'spacious'\n\ninterface UseContainerQueryOptions {\n compactBelow?: number\n spaciousAbove?: number\n}\n\nexport function useContainerQuery<T extends HTMLElement = HTMLElement>(\n options: UseContainerQueryOptions = {},\n): {\n ref: React.RefObject<T | null>\n size: ContainerSize\n} {\n const {compactBelow = 480, spaciousAbove = 768} = options\n const ref = useRef<T | null>(null)\n const [size, setSize] = useState<ContainerSize>('default')\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n let rafId: number | null = null\n\n const observer = new ResizeObserver((entries) => {\n if (rafId !== null) cancelAnimationFrame(rafId)\n\n rafId = requestAnimationFrame(() => {\n const entry = entries[0]\n if (!entry) return\n\n const width = entry.contentBoxSize?.[0]?.inlineSize ?? entry.contentRect.width\n\n if (width < compactBelow) {\n setSize('compact')\n } else if (width >= spaciousAbove) {\n setSize('spacious')\n } else {\n setSize('default')\n }\n })\n })\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }, [compactBelow, spaciousAbove])\n\n return {ref, size}\n}\n"],"names":["styleq$1","styleq_2","cache","compiledKey","createStyleq","options","disableCache","disableMix","transform","definedProperties","className","inlineStyle","debugString","nextCache","styles","i","possibleStyle","_i","style","classNameChunk","cacheEntry","definedPropertiesChunk","prop","value","compiledKeyValue","weakMap","subStyle","_prop","_value","styleProps","styleq","optimizedStyleq","merge","dataStyleSrc","result","chunks","pathsMap","chunk","trimmed","path","line","a","button","div","form","heading","header","input","label","main","nav","p","span","textarea","defaultStyles","ReactSharedInternals","require$$0","reactCompilerRuntime_production","size","reactCompilerRuntime_development","dispatcher","compilerRuntimeModule","require$$1","lightTheme","xjvd03b","$$css","lightShadows","x13v825q","highContrastTheme","highContrastShadows","themeMap","light","root","OverlayContainerContext","createContext","useOverlayContainer","useContext","current","document","body","ThemeProvider","t0","$","_c","theme","t1","children","undefined","overlayRef","useRef","overrides","t2","t3","t4","themeStyles","t5","Symbol","for","jsx","_rsdMerge","_rsdDefaultStyles","t6","jsxs","t7","overlay","overlayEmphasized","selectedCount","selectedCountEmphasized","actions","closeButton","closeButtonEmphasized","separator","separatorEmphasized","ActionBarInner","selectedItemCount","selectedLabel","isEmphasized","onClearSelection","dismissible","container","countStr","t8","t9","t10","t11","t12","t13","bar","t14","createPortal","ActionBar","strokeIcons","Fragment","clock","forbidden","shield","lock","key","filledIcons","Icon","name","filled","base","iconWrap","content","error","success","warning","info","defaultIcons","resolveIcon","icon","variant","Alert","resolvedIcon","sizeMd","sizeSm","default","sizeMap","sm","md","Badge","sizeDefault","sizeSmall","primary","secondary","link","inverseSecondary","danger","fullWidth","disabled","small","Button","type","onClick","Callout","elevated","outlined","interactive","sizeCompact","sizeFull","compact","full","Card","rootDisabled","box","boxUnchecked","boxChecked","Checkbox","checked","controlledChecked","defaultChecked","ariaLabel","onChange","isControlled","internalChecked","setInternalChecked","useState","isChecked","e","target","handleChange","opacity","t15","t16","t17","t18","message","action","EmptyState","typePresets","bodySm","bodyMd","bodyLg","caption","code","overline","headingSm","headingMd","headingLg","headingXl","displaySm","displayMd","displayLg","muted","accent","alignStart","alignCenter","alignEnd","defaultVariantMap","alignMap","start","center","end","Heading","level","color","align","resolvedVariant","h1","h2","h3","h4","h5","h6","FieldContext","useFieldContext","FormContext","useFormContext","description","Root","props","insideForm","ControlledRoot","StaticRoot","invalid","invalidProp","id","useId","control","useRHFFormContext","field","fieldState","useController","onBlur","ref","controlId","descriptionId","errorId","errorMessage","ctx","Label","Description","Error","Field","Form","schema","defaultValues","onSubmit","effectTsResolver","resolver","mode","reValidateMode","methods","useForm","formRef","preventDefault","handleSubmit","el","addEventListener","removeEventListener","useEffect","FormProvider","legend","gapXs","gapSm","gapMs","gapMd","gapLg","gapXl","gapMap","xs","ms","lg","xl","gap","Legend","Fieldset","InputGroupContext","useInputGroupContext","inGroup","Input","placeholder","required","minLength","pattern","autoComplete","defaultValue","groupCtx","fieldCtx","effectiveName","effectiveValue","String","effectiveOnChange","effectiveOnBlur","effectiveRef","effectiveVariant","extraProps","trim","wrapper","addon","addonStart","addonEnd","addonClickable","addonDisabled","dynamicStyles","minWidth","val","Addon","position","positionStyle","InputGroup","LinkButton","href","rel","trigger","backdrop","popup","popupEnd","item","itemHighlighted","linkItem","MenuContext","useMenu","useMenuRoot","open","setOpen","highlightedId","setHighlightedId","menuId","rootRef","triggerRef","Map","itemsRef","orderRef","needsInitialHighlightRef","focus","close","prev","toggle","order","length","element","set","map","ids","keys","sort","b","elA","get","elB","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","delete","filter","registerItem","handleKeyDown","order_0","bb54","prev_2","idx_0","indexOf","idx","prev_1","items","prev_0","click","Trigger","localRef","Popup","Item","isHighlighted","handleClick","LinkItem","Menu","viewport","scrollbar","scrollbarVertical","scrollbarHorizontal","scrollbarHidden","scrollbarVisible","thumb","viewportMaxHeight","maxHeight","thumbVertical","height","thumbHorizontal","width","ScrollAreaContext","useScrollArea","useScrollAreaRoot","viewportRef","contentRef","scrollTop","setScrollTop","scrollLeft","setScrollLeft","scrollHeight","setScrollHeight","scrollWidth","setScrollWidth","clientHeight","setClientHeight","clientWidth","setClientWidth","scrolling","setScrolling","scrollTimerRef","vp","clearTimeout","setTimeout","handleScroll","vp_0","observer","ResizeObserver","observe","disconnect","vp_1","passive","Viewport","Content","Scrollbar","orientation","Thumb","draggingRef","startPosRef","startScrollRef","isVertical","thumbSizePercent","Math","max","maxScroll","trackSize","thumbPixelSize","scrollOffset","thumbOffset","thumbStyle","clientY","clientX","setPointerCapture","pointerId","handlePointerDown","e_0","delta","scrollRatio","scrollDelta","handlePointerMove","handlePointerUp","ScrollArea","itemSelected","hidden","SelectContext","useSelect","useControllableValue","controlledValue","internal","setInternal","v","setValue","useSelectRoot","onValueChange","initialLabels","labels","setLabels","listboxId","found","registerLabel","id_0","itemValue","items_0","bb86","prev_3","item_0","Value","display","selectedValue","isSelected","text","textContent","el_0","ItemText","Select","group","groupTrigger","groupTriggerActive","chevron","chevronOpen","itemActive","SideNavContext","useSideNav","activeValue","onSelect","Set","expandedGroups","setExpandedGroups","next","has","add","toggleGroup","includes","push","v_0","_temp","Group","groupKey","defaultExpanded","isExpanded","groupRef","querySelector","hasActiveChild","isActive","SideNav","spinner","srOnly","Spinner","StatusIcon","loggedMessages","errorMsg","msg","strictAttributeSet","isPropAllowed","validateStrictProps","createStrictDOMComponent","TagName","defaultStyle","debugStyle","Component","htmlFor","restProps","hostProps","hostStyleProps","a$1","article$1","aside$1","b$1","bdi$1","bdo$1","blockquote$1","br$1","button$1","code$1","del$1","div$1","em$1","fieldset$1","footer$1","form$1","header$1","hr$1","i$1","img$1","input$1","ins$1","kbd$1","label$1","li$1","main$1","mark$1","nav$1","ol$1","optgroup$1","option$1","p$1","pre$1","s$1","section$1","select$1","span$1","strong$1","sub$1","sup$1","textarea$1","u$1","ul$1","article","aside","bdi","bdo","blockquote","br","del","em","fieldset","footer","hr","img","ins","kbd","li","mark","ol","optgroup","option","pre","s","section","select","strong","sub","sup","u","ul","html","row","rowLastChild","bodyRow","headerCell","cell","cellSm","cellMd","stripedEven","borderedCell","borderedCellLast","gridColumns","columns","TableContext","useTable","HeaderContext","isHeader","Header","Body","T0","T1","childArray","Children","toArray","Provider","child","index","RowIndexContext","Row","rowIndex","isEvenRow","CellIndexContext","total","HeaderCell","isLast","Cell","Table","rootVertical","list","listVertical","tab","tabVertical","tabActiveHorizontal","tabActiveVertical","tabDisabled","panel","panelVertical","TabsContext","useTabs","useTabsRoot","tabsRef","registerTab","List","listRef","tabs","listEl","prevKey","nextKey","targetValue","currentIdx","Tab","tabId","panelId","Panel","Tabs","Textarea","rows","weightNormal","weightMedium","weightSemibold","weightBold","truncate","weightMap","normal","medium","semibold","bold","Text","weight","as","ToggleGroupContext","useToggleGroup","unpressed","pressed","grouped","Toggle","controlledPressed","defaultPressed","onPressedChange","disabledProp","sizeProp","groupPressed","isGrouped","standalonePressed","setStandalonePressed","vertical","ToggleGroup","multiple","nextPressed","top","bottom","left","right","TooltipContext","useTooltip","placement","delay","tooltipId","timerRef","show","hide","Tooltip","track","trackUnchecked","trackChecked","thumbChecked","Switch","onCheckedChange","setChecked","inputRef","alignStretch","gapXxl","gapXxxl","xxl","xxxl","stretch","Stack","alignBaseline","justifyStart","justifyCenter","justifyEnd","justifyBetween","baseline","justifyMap","between","Inline","justify","Cluster","col1","col2","col3","col4","col5","col6","autoFit","columnsMap","Grid","minColumnWidth","columnStyle","maxSm","maxMd","maxLg","padSm","padMd","padLg","headerPadding","mainPadding","maxWidthMap","paddingMap","PageShell","maxWidth","padding","mw","pad","useContainerQuery","compactBelow","spaciousAbove","setSize","rafId","entries","cancelAnimationFrame","requestAnimationFrame","entry","contentBoxSize","inlineSize","contentRect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,61]}
|