@tosui/react 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +109 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Accordion/accordion.module.css +36 -0
- package/dist/components/Accordion/accordion.module.css.js +27 -0
- package/dist/components/Accordion/accordion.module.css.js.map +1 -0
- package/dist/components/Alert/Alert.js +109 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/Alert/alert.module.css +27 -0
- package/dist/components/Alert/alert.module.css.js +24 -0
- package/dist/components/Alert/alert.module.css.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js +72 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/avatar.module.css +14 -0
- package/dist/components/Avatar/avatar.module.css.js +15 -0
- package/dist/components/Avatar/avatar.module.css.js.map +1 -0
- package/dist/components/Badge/Badge.js +66 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Badge/badge.module.css +3 -0
- package/dist/components/Badge/badge.module.css.js +9 -0
- package/dist/components/Badge/badge.module.css.js.map +1 -0
- package/dist/components/Box/Box.js +217 -0
- package/dist/components/Box/Box.js.map +1 -0
- package/dist/components/Box/borders/borders.js +91 -0
- package/dist/components/Box/borders/borders.js.map +1 -0
- package/dist/components/Box/borders/borders.module.css +49 -0
- package/dist/components/Box/borders/borders.module.css.js +46 -0
- package/dist/components/Box/borders/borders.module.css.js.map +1 -0
- package/dist/components/Box/colors/colors.js +45 -0
- package/dist/components/Box/colors/colors.js.map +1 -0
- package/dist/components/Box/colors/colors.module.css +113 -0
- package/dist/components/Box/colors/colors.module.css.js +114 -0
- package/dist/components/Box/colors/colors.module.css.js.map +1 -0
- package/dist/components/Box/display/display.js +52 -0
- package/dist/components/Box/display/display.js.map +1 -0
- package/dist/components/Box/display/display.module.css +375 -0
- package/dist/components/Box/display/display.module.css.js +318 -0
- package/dist/components/Box/display/display.module.css.js.map +1 -0
- package/dist/components/Box/flexbox/flexbox.js +139 -0
- package/dist/components/Box/flexbox/flexbox.js.map +1 -0
- package/dist/components/Box/flexbox/flexbox.module.css +65 -0
- package/dist/components/Box/flexbox/flexbox.module.css.js +62 -0
- package/dist/components/Box/flexbox/flexbox.module.css.js.map +1 -0
- package/dist/components/Box/grid/grid.js +49 -0
- package/dist/components/Box/grid/grid.js.map +1 -0
- package/dist/components/Box/grid/grid.module.css +19 -0
- package/dist/components/Box/grid/grid.module.css.js +20 -0
- package/dist/components/Box/grid/grid.module.css.js.map +1 -0
- package/dist/components/Box/inset/inset.js +96 -0
- package/dist/components/Box/inset/inset.js.map +1 -0
- package/dist/components/Box/inset/inset.module.css +187 -0
- package/dist/components/Box/inset/inset.module.css.js +174 -0
- package/dist/components/Box/inset/inset.module.css.js.map +1 -0
- package/dist/components/Box/interactions/interactions.js +45 -0
- package/dist/components/Box/interactions/interactions.js.map +1 -0
- package/dist/components/Box/interactions/interactions.module.css +43 -0
- package/dist/components/Box/interactions/interactions.module.css.js +44 -0
- package/dist/components/Box/interactions/interactions.module.css.js.map +1 -0
- package/dist/components/Box/margin/margin.js +96 -0
- package/dist/components/Box/margin/margin.js.map +1 -0
- package/dist/components/Box/margin/margin.module.css +187 -0
- package/dist/components/Box/margin/margin.module.css.js +174 -0
- package/dist/components/Box/margin/margin.module.css.js.map +1 -0
- package/dist/components/Box/opacity/opacity.js +52 -0
- package/dist/components/Box/opacity/opacity.js.map +1 -0
- package/dist/components/Box/opacity/opacity.module.css +51 -0
- package/dist/components/Box/opacity/opacity.module.css.js +174 -0
- package/dist/components/Box/opacity/opacity.module.css.js.map +1 -0
- package/dist/components/Box/overflow/overflow.js +69 -0
- package/dist/components/Box/overflow/overflow.js.map +1 -0
- package/dist/components/Box/overflow/overflow.module.css +155 -0
- package/dist/components/Box/overflow/overflow.module.css.js +510 -0
- package/dist/components/Box/overflow/overflow.module.css.js.map +1 -0
- package/dist/components/Box/padding/padding.js +96 -0
- package/dist/components/Box/padding/padding.js.map +1 -0
- package/dist/components/Box/padding/padding.module.css +187 -0
- package/dist/components/Box/padding/padding.module.css.js +174 -0
- package/dist/components/Box/padding/padding.module.css.js.map +1 -0
- package/dist/components/Box/position/position.js +52 -0
- package/dist/components/Box/position/position.js.map +1 -0
- package/dist/components/Box/position/position.module.css +234 -0
- package/dist/components/Box/position/position.module.css.js +214 -0
- package/dist/components/Box/position/position.module.css.js.map +1 -0
- package/dist/components/Box/reset/reset.js +6 -0
- package/dist/components/Box/reset/reset.js.map +1 -0
- package/dist/components/Box/reset/reset.module.css +23 -0
- package/dist/components/Box/reset/reset.module.css.js +9 -0
- package/dist/components/Box/reset/reset.module.css.js.map +1 -0
- package/dist/components/Box/roundness/roundness.js +92 -0
- package/dist/components/Box/roundness/roundness.js.map +1 -0
- package/dist/components/Box/roundness/roundness.module.css +47 -0
- package/dist/components/Box/roundness/roundness.module.css.js +46 -0
- package/dist/components/Box/roundness/roundness.module.css.js.map +1 -0
- package/dist/components/Box/shadows/shadows.js +52 -0
- package/dist/components/Box/shadows/shadows.js.map +1 -0
- package/dist/components/Box/shadows/shadows.module.css +51 -0
- package/dist/components/Box/shadows/shadows.module.css.js +174 -0
- package/dist/components/Box/shadows/shadows.module.css.js.map +1 -0
- package/dist/components/Box/shared/constants.js +21 -0
- package/dist/components/Box/shared/constants.js.map +1 -0
- package/dist/components/Box/shared/spacing.js +10 -0
- package/dist/components/Box/shared/spacing.js.map +1 -0
- package/dist/components/Box/sizing/sizing.js +75 -0
- package/dist/components/Box/sizing/sizing.js.map +1 -0
- package/dist/components/Box/sizing/sizing.module.css +281 -0
- package/dist/components/Box/sizing/sizing.module.css.js +258 -0
- package/dist/components/Box/sizing/sizing.module.css.js.map +1 -0
- package/dist/components/Box/text/text.js +45 -0
- package/dist/components/Box/text/text.js.map +1 -0
- package/dist/components/Box/text/text.module.css +29 -0
- package/dist/components/Box/text/text.module.css.js +30 -0
- package/dist/components/Box/text/text.module.css.js.map +1 -0
- package/dist/components/Box/typography/typography.js +27 -0
- package/dist/components/Box/typography/typography.js.map +1 -0
- package/dist/components/Box/typography/typography.module.css +26 -0
- package/dist/components/Box/typography/typography.module.css.js +25 -0
- package/dist/components/Box/typography/typography.module.css.js.map +1 -0
- package/dist/components/Box/zIndex/zIndex.js +52 -0
- package/dist/components/Box/zIndex/zIndex.js.map +1 -0
- package/dist/components/Box/zIndex/zIndex.module.css +90 -0
- package/dist/components/Box/zIndex/zIndex.module.css.js +300 -0
- package/dist/components/Box/zIndex/zIndex.module.css.js.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.js +78 -0
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.module.css +25 -0
- package/dist/components/Breadcrumb/breadcrumb.module.css.js +21 -0
- package/dist/components/Breadcrumb/breadcrumb.module.css.js.map +1 -0
- package/dist/components/Button/Button.js +129 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/button.module.css +17 -0
- package/dist/components/Button/button.module.css.js +18 -0
- package/dist/components/Button/button.module.css.js.map +1 -0
- package/dist/components/Card/Card.js +60 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/card.module.css +16 -0
- package/dist/components/Card/card.module.css.js +18 -0
- package/dist/components/Card/card.module.css.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +74 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/checkbox.module.css +65 -0
- package/dist/components/Checkbox/checkbox.module.css.js +15 -0
- package/dist/components/Checkbox/checkbox.module.css.js.map +1 -0
- package/dist/components/Code/Code.js +32 -0
- package/dist/components/Code/Code.js.map +1 -0
- package/dist/components/Container/Container.js +44 -0
- package/dist/components/Container/Container.js.map +1 -0
- package/dist/components/Divider/Divider.js +48 -0
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Flex/Flex.js +48 -0
- package/dist/components/Flex/Flex.js.map +1 -0
- package/dist/components/FormField/FormField.js +52 -0
- package/dist/components/FormField/FormField.js.map +1 -0
- package/dist/components/Grid/Grid.js +41 -0
- package/dist/components/Grid/Grid.js.map +1 -0
- package/dist/components/HStack/HStack.js +17 -0
- package/dist/components/HStack/HStack.js.map +1 -0
- package/dist/components/Heading/Heading.js +42 -0
- package/dist/components/Heading/Heading.js.map +1 -0
- package/dist/components/IconButton/IconButton.js +93 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/IconButton/iconbutton.module.css +18 -0
- package/dist/components/IconButton/iconbutton.module.css.js +18 -0
- package/dist/components/IconButton/iconbutton.module.css.js.map +1 -0
- package/dist/components/Image/Image.d.ts.map +1 -1
- package/dist/components/Image/Image.js +101 -0
- package/dist/components/Image/Image.js.map +1 -0
- package/dist/components/Image/image.module.css +44 -0
- package/dist/components/Image/image.module.css.js +36 -0
- package/dist/components/Image/image.module.css.js.map +1 -0
- package/dist/components/Input/Input.js +57 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/input.module.css +29 -0
- package/dist/components/Input/input.module.css.js +12 -0
- package/dist/components/Input/input.module.css.js.map +1 -0
- package/dist/components/Label/Label.js +36 -0
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Link/Link.js +38 -0
- package/dist/components/Link/Link.js.map +1 -0
- package/dist/components/Link/link.module.css +28 -0
- package/dist/components/Link/link.module.css.js +16 -0
- package/dist/components/Link/link.module.css.js.map +1 -0
- package/dist/components/List/List.js +51 -0
- package/dist/components/List/List.js.map +1 -0
- package/dist/components/List/list.module.css +45 -0
- package/dist/components/List/list.module.css.js +24 -0
- package/dist/components/List/list.module.css.js.map +1 -0
- package/dist/components/Menu/Menu.d.ts.map +1 -1
- package/dist/components/Menu/Menu.js +143 -0
- package/dist/components/Menu/Menu.js.map +1 -0
- package/dist/components/Menu/menu.module.css +24 -0
- package/dist/components/Menu/menu.module.css.js +18 -0
- package/dist/components/Menu/menu.module.css.js.map +1 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +130 -0
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/modal.module.css +26 -0
- package/dist/components/Modal/modal.module.css.js +21 -0
- package/dist/components/Modal/modal.module.css.js.map +1 -0
- package/dist/components/Pagination/Pagination.js +125 -0
- package/dist/components/Pagination/Pagination.js.map +1 -0
- package/dist/components/Pagination/pagination.module.css +3 -0
- package/dist/components/Pagination/pagination.module.css.js +9 -0
- package/dist/components/Pagination/pagination.module.css.js.map +1 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js +144 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Popover/popover.module.css +11 -0
- package/dist/components/Popover/popover.module.css.js +15 -0
- package/dist/components/Popover/popover.module.css.js.map +1 -0
- package/dist/components/Progress/Progress.js +54 -0
- package/dist/components/Progress/Progress.js.map +1 -0
- package/dist/components/Progress/progress.module.css +24 -0
- package/dist/components/Progress/progress.module.css.js +15 -0
- package/dist/components/Progress/progress.module.css.js.map +1 -0
- package/dist/components/Radio/Radio.js +70 -0
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/radio.module.css +48 -0
- package/dist/components/Radio/radio.module.css.js +12 -0
- package/dist/components/Radio/radio.module.css.js.map +1 -0
- package/dist/components/Select/Select.js +57 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/select.module.css +43 -0
- package/dist/components/Select/select.module.css.js +12 -0
- package/dist/components/Select/select.module.css.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.js +37 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/skeleton.module.css +26 -0
- package/dist/components/Skeleton/skeleton.module.css.js +9 -0
- package/dist/components/Skeleton/skeleton.module.css.js.map +1 -0
- package/dist/components/Spacer/Spacer.js +16 -0
- package/dist/components/Spacer/Spacer.js.map +1 -0
- package/dist/components/Spinner/Spinner.js +41 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Spinner/spinner.module.css +21 -0
- package/dist/components/Spinner/spinner.module.css.js +9 -0
- package/dist/components/Spinner/spinner.module.css.js.map +1 -0
- package/dist/components/Stack/Stack.js +35 -0
- package/dist/components/Stack/Stack.js.map +1 -0
- package/dist/components/Switch/Switch.js +83 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/switch.module.css +48 -0
- package/dist/components/Switch/switch.module.css.js +15 -0
- package/dist/components/Switch/switch.module.css.js.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +87 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/tabs.module.css +55 -0
- package/dist/components/Tabs/tabs.module.css.js +27 -0
- package/dist/components/Tabs/tabs.module.css.js.map +1 -0
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/Text.js +40 -0
- package/dist/components/Text/Text.js.map +1 -0
- package/dist/components/Text/text.module.css +9 -0
- package/dist/components/Text/text.module.css.js +12 -0
- package/dist/components/Text/text.module.css.js.map +1 -0
- package/dist/components/Textarea/Textarea.js +70 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/textarea.module.css +46 -0
- package/dist/components/Textarea/textarea.module.css.js +24 -0
- package/dist/components/Textarea/textarea.module.css.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +135 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/tooltip.module.css +4 -0
- package/dist/components/Tooltip/tooltip.module.css.js +9 -0
- package/dist/components/Tooltip/tooltip.module.css.js.map +1 -0
- package/dist/components/VStack/VStack.js +17 -0
- package/dist/components/VStack/VStack.js.map +1 -0
- package/dist/fonts.css +23 -1
- package/dist/index.css +3320 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -5521
- package/dist/index.js.map +1 -1
- package/dist/styles/styles.css +353 -0
- package/package.json +8 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/components/Box/reset/reset.ts","../src/components/Box/shared/constants.ts","../src/components/Box/shared/spacing.ts","../src/components/Box/margin/margin.ts","../src/components/Box/padding/padding.ts","../src/components/Box/sizing/sizing.ts","../src/components/Box/inset/inset.ts","../src/components/Box/display/display.ts","../src/components/Box/position/position.ts","../src/components/Box/overflow/overflow.ts","../src/components/Box/zIndex/zIndex.ts","../src/components/Box/shadows/shadows.ts","../src/components/Box/opacity/opacity.ts","../src/components/Box/interactions/interactions.ts","../src/components/Box/text/text.ts","../src/components/Box/typography/typography.ts","../src/components/Box/colors/colors.ts","../src/components/Box/borders/borders.ts","../src/components/Box/roundness/roundness.ts","../src/components/Box/flexbox/flexbox.ts","../src/components/Box/grid/grid.ts","../src/components/Box/Box.tsx","../src/components/Text/Text.tsx","../src/components/Heading/Heading.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Button/Button.tsx","../src/components/Stack/Stack.tsx","../src/components/HStack/HStack.tsx","../src/components/VStack/VStack.tsx","../src/components/Flex/Flex.tsx","../src/components/Grid/Grid.tsx","../src/components/Container/Container.tsx","../src/components/Divider/Divider.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Code/Code.tsx","../src/components/Input/Input.tsx","../src/components/Label/Label.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Select/Select.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Radio/Radio.tsx","../src/components/Switch/Switch.tsx","../src/components/FormField/FormField.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Progress/Progress.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Card/Card.tsx","../src/components/Image/Image.tsx","../src/components/List/List.tsx","../src/components/Link/Link.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Menu/Menu.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Modal/Modal.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Popover/Popover.tsx","../src/components/Accordion/Accordion.tsx","../src/index.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import styles from \"./reset.module.css\";\n\nexport const resetClass = styles.reset;\n","export const RESPONSIVE_KEYS = [\"base\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"] as const;\n\nexport const STATE_SUFFIXES = {\n base: \"\",\n hover: \"-h\",\n focus: \"-f\",\n active: \"-a\",\n disabled: \"-d\",\n} as const;\n\nexport const STATE_CLASS_SUFFIXES = {\n base: \"\",\n hover: \":h\",\n focus: \":f\",\n active: \":a\",\n disabled: \":d\",\n} as const;\n","/**\n * Converts a spacing value to a CSS value string.\n * Used by margin, padding, and sizing style helpers.\n *\n * - Numbers are multiplied by the spacing unit (4px)\n * - Strings are passed through as-is (for custom values like \"100%\")\n * - 0 returns \"0\" (no unit needed)\n */\nexport function getRawValue(value?: string | number): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./margin.module.css\";\nimport clsx from \"clsx\";\n\ntype SpacingValue = string | number;\ntype MarginKey = \"mt\" | \"mr\" | \"mb\" | \"ml\";\ntype MarginShorthandKey = \"m\" | \"mx\" | \"my\";\n\nexport type MarginProps = {\n m?: ResponsiveValue<SpacingValue>;\n mt?: ResponsiveValue<SpacingValue>;\n mr?: ResponsiveValue<SpacingValue>;\n mb?: ResponsiveValue<SpacingValue>;\n ml?: ResponsiveValue<SpacingValue>;\n mx?: ResponsiveValue<SpacingValue>;\n my?: ResponsiveValue<SpacingValue>;\n};\n\nexport type MarginStateProps = {\n _hover?: MarginProps;\n _focus?: MarginProps;\n _active?: MarginProps;\n _disabled?: MarginProps;\n};\n\nfunction getSpacingProps(\n key: MarginKey,\n value: ResponsiveValue<SpacingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolveMarginValue(\n key: MarginKey,\n props: MarginProps\n): ResponsiveValue<SpacingValue> | undefined {\n const shorthandMap: Record<MarginKey, MarginShorthandKey> = {\n mt: \"my\",\n mb: \"my\",\n mr: \"mx\",\n ml: \"mx\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.m;\n}\n\nfunction getMarginStylesForState(\n props: MarginProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const marginTop = getSpacingProps(\"mt\", resolveMarginValue(\"mt\", props), state);\n const marginRight = getSpacingProps(\"mr\", resolveMarginValue(\"mr\", props), state);\n const marginBottom = getSpacingProps(\"mb\", resolveMarginValue(\"mb\", props), state);\n const marginLeft = getSpacingProps(\"ml\", resolveMarginValue(\"ml\", props), state);\n\n return {\n className: clsx(\n marginTop.className,\n marginRight.className,\n marginBottom.className,\n marginLeft.className\n ),\n style: {\n ...marginTop.style,\n ...marginRight.style,\n ...marginBottom.style,\n ...marginLeft.style,\n },\n };\n}\n\nexport function getMarginStyles(\n props: MarginProps & MarginStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getMarginStylesForState(baseProps, \"base\");\n const hoverStyles = getMarginStylesForState(_hover, \"hover\");\n const focusStyles = getMarginStylesForState(_focus, \"focus\");\n const activeStyles = getMarginStylesForState(_active, \"active\");\n const disabledStyles = getMarginStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./padding.module.css\";\nimport clsx from \"clsx\";\n\ntype SpacingValue = string | number;\ntype PaddingKey = \"pt\" | \"pr\" | \"pb\" | \"pl\";\ntype PaddingShorthandKey = \"p\" | \"px\" | \"py\";\n\nexport type PaddingProps = {\n p?: ResponsiveValue<SpacingValue>;\n pt?: ResponsiveValue<SpacingValue>;\n pr?: ResponsiveValue<SpacingValue>;\n pb?: ResponsiveValue<SpacingValue>;\n pl?: ResponsiveValue<SpacingValue>;\n px?: ResponsiveValue<SpacingValue>;\n py?: ResponsiveValue<SpacingValue>;\n};\n\nexport type PaddingStateProps = {\n _hover?: PaddingProps;\n _focus?: PaddingProps;\n _active?: PaddingProps;\n _disabled?: PaddingProps;\n};\n\nfunction getSpacingProps(\n key: PaddingKey,\n value: ResponsiveValue<SpacingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolvePaddingValue(\n key: PaddingKey,\n props: PaddingProps\n): ResponsiveValue<SpacingValue> | undefined {\n const shorthandMap: Record<PaddingKey, PaddingShorthandKey> = {\n pt: \"py\",\n pb: \"py\",\n pr: \"px\",\n pl: \"px\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.p;\n}\n\nfunction getPaddingStylesForState(\n props: PaddingProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const paddingTop = getSpacingProps(\"pt\", resolvePaddingValue(\"pt\", props), state);\n const paddingRight = getSpacingProps(\"pr\", resolvePaddingValue(\"pr\", props), state);\n const paddingBottom = getSpacingProps(\"pb\", resolvePaddingValue(\"pb\", props), state);\n const paddingLeft = getSpacingProps(\"pl\", resolvePaddingValue(\"pl\", props), state);\n\n return {\n className: clsx(\n paddingTop.className,\n paddingRight.className,\n paddingBottom.className,\n paddingLeft.className\n ),\n style: {\n ...paddingTop.style,\n ...paddingRight.style,\n ...paddingBottom.style,\n ...paddingLeft.style,\n },\n };\n}\n\nexport function getPaddingStyles(\n props: PaddingProps & PaddingStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getPaddingStylesForState(baseProps, \"base\");\n const hoverStyles = getPaddingStylesForState(_hover, \"hover\");\n const focusStyles = getPaddingStylesForState(_focus, \"focus\");\n const activeStyles = getPaddingStylesForState(_active, \"active\");\n const disabledStyles = getPaddingStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./sizing.module.css\";\nimport clsx from \"clsx\";\n\ntype SizingValue = string | number;\ntype SizingKey = \"w\" | \"h\" | \"minW\" | \"maxW\" | \"minH\" | \"maxH\";\n\nexport type SizingProps = {\n w?: ResponsiveValue<SizingValue>;\n h?: ResponsiveValue<SizingValue>;\n minW?: ResponsiveValue<SizingValue>;\n maxW?: ResponsiveValue<SizingValue>;\n minH?: ResponsiveValue<SizingValue>;\n maxH?: ResponsiveValue<SizingValue>;\n};\n\nexport type SizingStateProps = {\n _hover?: SizingProps;\n _focus?: SizingProps;\n _active?: SizingProps;\n _disabled?: SizingProps;\n};\n\nfunction getSizingProp(\n key: SizingKey,\n value: ResponsiveValue<SizingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction getSizingStylesForState(\n props: SizingProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const keys: SizingKey[] = [\"w\", \"h\", \"minW\", \"maxW\", \"minH\", \"maxH\"];\n const results = keys.map((key) => getSizingProp(key, props[key], state));\n\n return {\n className: clsx(...results.map((r) => r.className)),\n style: Object.assign({}, ...results.map((r) => r.style)),\n };\n}\n\nexport function getSizingStyles(\n props: SizingProps & SizingStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getSizingStylesForState(baseProps, \"base\");\n const hoverStyles = getSizingStylesForState(_hover, \"hover\");\n const focusStyles = getSizingStylesForState(_focus, \"focus\");\n const activeStyles = getSizingStylesForState(_active, \"active\");\n const disabledStyles = getSizingStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./inset.module.css\";\nimport clsx from \"clsx\";\n\ntype InsetValue = string | number;\ntype InsetKey = \"top\" | \"right\" | \"bottom\" | \"left\";\ntype InsetShorthandKey = \"inset\" | \"insetX\" | \"insetY\";\n\nexport type InsetProps = {\n inset?: ResponsiveValue<InsetValue>;\n insetX?: ResponsiveValue<InsetValue>;\n insetY?: ResponsiveValue<InsetValue>;\n top?: ResponsiveValue<InsetValue>;\n right?: ResponsiveValue<InsetValue>;\n bottom?: ResponsiveValue<InsetValue>;\n left?: ResponsiveValue<InsetValue>;\n};\n\nexport type InsetStateProps = {\n _hover?: InsetProps;\n _focus?: InsetProps;\n _active?: InsetProps;\n _disabled?: InsetProps;\n};\n\nfunction getInsetProp(\n key: InsetKey,\n value: ResponsiveValue<InsetValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolveInsetValue(\n key: InsetKey,\n props: InsetProps\n): ResponsiveValue<InsetValue> | undefined {\n const shorthandMap: Record<InsetKey, InsetShorthandKey> = {\n top: \"insetY\",\n bottom: \"insetY\",\n right: \"insetX\",\n left: \"insetX\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.inset;\n}\n\nfunction getInsetStylesForState(\n props: InsetProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const insetTop = getInsetProp(\"top\", resolveInsetValue(\"top\", props), state);\n const insetRight = getInsetProp(\"right\", resolveInsetValue(\"right\", props), state);\n const insetBottom = getInsetProp(\"bottom\", resolveInsetValue(\"bottom\", props), state);\n const insetLeft = getInsetProp(\"left\", resolveInsetValue(\"left\", props), state);\n\n return {\n className: clsx(\n insetTop.className,\n insetRight.className,\n insetBottom.className,\n insetLeft.className\n ),\n style: {\n ...insetTop.style,\n ...insetRight.style,\n ...insetBottom.style,\n ...insetLeft.style,\n },\n };\n}\n\nexport function getInsetStyles(\n props: InsetProps & InsetStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getInsetStylesForState(baseProps, \"base\");\n const hoverStyles = getInsetStylesForState(_hover, \"hover\");\n const focusStyles = getInsetStylesForState(_focus, \"focus\");\n const activeStyles = getInsetStylesForState(_active, \"active\");\n const disabledStyles = getInsetStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./display.module.css\";\nimport clsx from \"clsx\";\n\nexport type DisplayValue =\n | \"block\"\n | \"flex\"\n | \"inline-flex\"\n | \"grid\"\n | \"inline\"\n | \"inline-block\"\n | \"none\"\n | \"contents\";\n\nexport type DisplayProps = {\n display?: ResponsiveValue<DisplayValue>;\n};\n\nexport type DisplayStateProps = {\n _hover?: DisplayProps;\n _focus?: DisplayProps;\n _active?: DisplayProps;\n _disabled?: DisplayProps;\n};\n\nfunction getDisplayClass(\n value: DisplayValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getDisplayStylesForValue(\n value: ResponsiveValue<DisplayValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n // Simple value (non-responsive)\n if (typeof value === \"string\") {\n const className = getDisplayClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n // Responsive value\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const displayValue = value[responsiveKey];\n if (displayValue === undefined) continue;\n\n const className = getDisplayClass(displayValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getDisplayStyles(\n props: DisplayProps & DisplayStateProps\n): StyleResult {\n const { display, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getDisplayStylesForValue(display, \"base\");\n const hoverStyles = getDisplayStylesForValue(_hover?.display, \"hover\");\n const focusStyles = getDisplayStylesForValue(_focus?.display, \"focus\");\n const activeStyles = getDisplayStylesForValue(_active?.display, \"active\");\n const disabledStyles = getDisplayStylesForValue(_disabled?.display, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./position.module.css\";\nimport clsx from \"clsx\";\n\nexport type PositionValue = \"static\" | \"relative\" | \"absolute\" | \"fixed\" | \"sticky\";\n\nexport type PositionProps = {\n position?: ResponsiveValue<PositionValue>;\n};\n\nexport type PositionStateProps = {\n _hover?: PositionProps;\n _focus?: PositionProps;\n _active?: PositionProps;\n _disabled?: PositionProps;\n};\n\nfunction getPositionClass(\n value: PositionValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getPositionStylesForValue(\n value: ResponsiveValue<PositionValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getPositionClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const positionValue = value[responsiveKey];\n if (positionValue === undefined) continue;\n\n const className = getPositionClass(positionValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getPositionStyles(\n props: PositionProps & PositionStateProps\n): StyleResult {\n const { position, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getPositionStylesForValue(position, \"base\");\n const hoverStyles = getPositionStylesForValue(_hover?.position, \"hover\");\n const focusStyles = getPositionStylesForValue(_focus?.position, \"focus\");\n const activeStyles = getPositionStylesForValue(_active?.position, \"active\");\n const disabledStyles = getPositionStylesForValue(_disabled?.position, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./overflow.module.css\";\nimport clsx from \"clsx\";\n\nexport type OverflowValue = \"auto\" | \"hidden\" | \"scroll\" | \"visible\";\n\nexport type OverflowProps = {\n overflow?: ResponsiveValue<OverflowValue>;\n overflowX?: ResponsiveValue<OverflowValue>;\n overflowY?: ResponsiveValue<OverflowValue>;\n};\n\nexport type OverflowStateProps = {\n _hover?: OverflowProps;\n _focus?: OverflowProps;\n _active?: OverflowProps;\n _disabled?: OverflowProps;\n};\n\ntype OverflowType = \"overflow\" | \"overflowX\" | \"overflowY\";\n\nconst CLASS_SUFFIX_MAP: Record<OverflowType, string> = {\n overflow: \"\",\n overflowX: \"X\",\n overflowY: \"Y\",\n};\n\nfunction getOverflowClass(\n value: OverflowValue,\n type: OverflowType,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n const typeSuffix = CLASS_SUFFIX_MAP[type];\n const baseClassName = `${value}${typeSuffix}`;\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${baseClassName}${stateClassSuffix}`]\n : styles[baseClassName];\n }\n\n return stateClassSuffix\n ? styles[`${baseClassName}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${baseClassName}_${responsiveKey}`];\n}\n\nfunction getOverflowStylesForProp(\n value: ResponsiveValue<OverflowValue> | undefined,\n type: OverflowType,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getOverflowClass(value, type, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const overflowValue = value[responsiveKey];\n if (overflowValue === undefined) continue;\n\n const className = getOverflowClass(overflowValue, type, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nfunction getOverflowStylesForState(\n props: OverflowProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const overflow = getOverflowStylesForProp(props.overflow, \"overflow\", state);\n const overflowX = getOverflowStylesForProp(props.overflowX, \"overflowX\", state);\n const overflowY = getOverflowStylesForProp(props.overflowY, \"overflowY\", state);\n\n return {\n className: clsx(overflow.className, overflowX.className, overflowY.className),\n style: {},\n };\n}\n\nexport function getOverflowStyles(\n props: OverflowProps & OverflowStateProps\n): StyleResult {\n const { overflow, overflowX, overflowY, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getOverflowStylesForState({ overflow, overflowX, overflowY }, \"base\");\n const hoverStyles = getOverflowStylesForState(_hover, \"hover\");\n const focusStyles = getOverflowStylesForState(_focus, \"focus\");\n const activeStyles = getOverflowStylesForState(_active, \"active\");\n const disabledStyles = getOverflowStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./zIndex.module.css\";\nimport clsx from \"clsx\";\n\nexport type ZIndexValue = \"base\" | \"behind\" | \"dropdown\" | \"sticky\" | \"modal\" | \"toast\" | \"tooltip\";\n\nexport type ZIndexProps = {\n zIndex?: ResponsiveValue<ZIndexValue>;\n};\n\nexport type ZIndexStateProps = {\n _hover?: ZIndexProps;\n _focus?: ZIndexProps;\n _active?: ZIndexProps;\n _disabled?: ZIndexProps;\n};\n\nfunction getZIndexClass(\n value: ZIndexValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getZIndexStylesForValue(\n value: ResponsiveValue<ZIndexValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getZIndexClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const zIndexValue = value[responsiveKey];\n if (zIndexValue === undefined) continue;\n\n const className = getZIndexClass(zIndexValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getZIndexStyles(\n props: ZIndexProps & ZIndexStateProps\n): StyleResult {\n const { zIndex, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getZIndexStylesForValue(zIndex, \"base\");\n const hoverStyles = getZIndexStylesForValue(_hover?.zIndex, \"hover\");\n const focusStyles = getZIndexStylesForValue(_focus?.zIndex, \"focus\");\n const activeStyles = getZIndexStylesForValue(_active?.zIndex, \"active\");\n const disabledStyles = getZIndexStylesForValue(_disabled?.zIndex, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./shadows.module.css\";\nimport clsx from \"clsx\";\n\nexport type ShadowValue = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport type ShadowProps = {\n shadow?: ResponsiveValue<ShadowValue>;\n};\n\nexport type ShadowStateProps = {\n _hover?: ShadowProps;\n _focus?: ShadowProps;\n _active?: ShadowProps;\n _disabled?: ShadowProps;\n};\n\nfunction getShadowClass(\n value: ShadowValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getShadowStylesForValue(\n value: ResponsiveValue<ShadowValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getShadowClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const shadowValue = value[responsiveKey];\n if (shadowValue === undefined) continue;\n\n const className = getShadowClass(shadowValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getShadowStyles(\n props: ShadowProps & ShadowStateProps\n): StyleResult {\n const { shadow, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getShadowStylesForValue(shadow, \"base\");\n const hoverStyles = getShadowStylesForValue(_hover?.shadow, \"hover\");\n const focusStyles = getShadowStylesForValue(_focus?.shadow, \"focus\");\n const activeStyles = getShadowStylesForValue(_active?.shadow, \"active\");\n const disabledStyles = getShadowStylesForValue(_disabled?.shadow, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./opacity.module.css\";\nimport clsx from \"clsx\";\n\nexport type OpacityValue = \"invisible\" | \"faint\" | \"semi\" | \"full\";\n\nexport type OpacityProps = {\n opacity?: ResponsiveValue<OpacityValue>;\n};\n\nexport type OpacityStateProps = {\n _hover?: OpacityProps;\n _focus?: OpacityProps;\n _active?: OpacityProps;\n _disabled?: OpacityProps;\n};\n\nfunction getOpacityClass(\n value: OpacityValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getOpacityStylesForValue(\n value: ResponsiveValue<OpacityValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getOpacityClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const opacityValue = value[responsiveKey];\n if (opacityValue === undefined) continue;\n\n const className = getOpacityClass(opacityValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getOpacityStyles(\n props: OpacityProps & OpacityStateProps\n): StyleResult {\n const { opacity, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getOpacityStylesForValue(opacity, \"base\");\n const hoverStyles = getOpacityStylesForValue(_hover?.opacity, \"hover\");\n const focusStyles = getOpacityStylesForValue(_focus?.opacity, \"focus\");\n const activeStyles = getOpacityStylesForValue(_active?.opacity, \"active\");\n const disabledStyles = getOpacityStylesForValue(_disabled?.opacity, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./interactions.module.css\";\nimport clsx from \"clsx\";\n\nexport type CursorValue =\n | \"auto\"\n | \"default\"\n | \"pointer\"\n | \"wait\"\n | \"text\"\n | \"move\"\n | \"not-allowed\"\n | \"grab\"\n | \"grabbing\"\n | \"zoom-in\"\n | \"zoom-out\"\n | \"crosshair\";\n\nexport type PointerEventsValue = \"auto\" | \"none\" | \"all\";\n\nexport type UserSelectValue = \"auto\" | \"none\" | \"text\" | \"all\";\n\nexport type InteractionProps = {\n cursor?: CursorValue;\n pointerEvents?: PointerEventsValue;\n userSelect?: UserSelectValue;\n};\n\nexport type InteractionStateProps = {\n _hover?: InteractionProps;\n};\n\nfunction getCursorClass(value: CursorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`cursor-${value}${stateClassSuffix}`]\n : styles[`cursor-${value}`];\n}\n\nfunction getPointerEventsClass(value: PointerEventsValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`pointer-${value}${stateClassSuffix}`]\n : styles[`pointer-${value}`];\n}\n\nfunction getUserSelectClass(value: UserSelectValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`select-${value}${stateClassSuffix}`]\n : styles[`select-${value}`];\n}\n\nfunction getInteractionStylesForState(\n props: InteractionProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.cursor) {\n const cls = getCursorClass(props.cursor, state);\n if (cls) classes.push(cls);\n }\n\n if (props.pointerEvents) {\n const cls = getPointerEventsClass(props.pointerEvents, state);\n if (cls) classes.push(cls);\n }\n\n if (props.userSelect) {\n const cls = getUserSelectClass(props.userSelect, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getInteractionStyles(\n props: InteractionProps & InteractionStateProps\n): StyleResult {\n const { cursor, pointerEvents, userSelect, _hover } = props;\n\n const baseStyles = getInteractionStylesForState({ cursor, pointerEvents, userSelect }, \"base\");\n const hoverStyles = getInteractionStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./text.module.css\";\nimport clsx from \"clsx\";\n\nexport type TextAlignValue = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type WhiteSpaceValue = \"normal\" | \"nowrap\" | \"pre\" | \"pre-line\" | \"pre-wrap\";\nexport type TextDecorationValue = \"none\" | \"underline\" | \"line-through\";\n\nexport type TextStyleProps = {\n textAlign?: TextAlignValue;\n whiteSpace?: WhiteSpaceValue;\n textDecoration?: TextDecorationValue;\n};\n\nexport type TextStyleStateProps = {\n _hover?: TextStyleProps;\n};\n\nfunction getTextAlignClass(value: TextAlignValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`text-${value}${stateClassSuffix}`]\n : styles[`text-${value}`];\n}\n\nfunction getWhiteSpaceClass(value: WhiteSpaceValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`whitespace-${value}${stateClassSuffix}`]\n : styles[`whitespace-${value}`];\n}\n\nfunction getTextDecorationClass(value: TextDecorationValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`decoration-${value}${stateClassSuffix}`]\n : styles[`decoration-${value}`];\n}\n\nfunction getTextStylesForState(\n props: TextStyleProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.textAlign) {\n const cls = getTextAlignClass(props.textAlign, state);\n if (cls) classes.push(cls);\n }\n\n if (props.whiteSpace) {\n const cls = getWhiteSpaceClass(props.whiteSpace, state);\n if (cls) classes.push(cls);\n }\n\n if (props.textDecoration) {\n const cls = getTextDecorationClass(props.textDecoration, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getTextStyles(\n props: TextStyleProps & TextStyleStateProps\n): StyleResult {\n const { textAlign, whiteSpace, textDecoration, _hover } = props;\n\n const baseStyles = getTextStylesForState({ textAlign, whiteSpace, textDecoration }, \"base\");\n const hoverStyles = getTextStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import styles from \"./typography.module.css\";\nimport clsx from \"clsx\";\n\nexport type FontSizeValue = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\nexport type FontFamilyValue = \"body\" | \"heading\" | \"mono\";\nexport type FontWeightValue = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\nexport type LineHeightValue = \"tight\" | \"normal\" | \"relaxed\";\n\nexport type TypographyProps = {\n fontSize?: FontSizeValue;\n fontFamily?: FontFamilyValue;\n fontWeight?: FontWeightValue;\n lineHeight?: LineHeightValue;\n};\n\ntype StyleResult = {\n className: string;\n};\n\nexport function getTypographyStyles(props: TypographyProps): StyleResult {\n const { fontSize, fontFamily, fontWeight, lineHeight } = props;\n\n const classes: string[] = [];\n\n if (fontSize) {\n const cls = styles[`text-${fontSize}`];\n if (cls) classes.push(cls);\n }\n\n if (fontFamily) {\n const cls = styles[`font-${fontFamily}`];\n if (cls) classes.push(cls);\n }\n\n if (fontWeight) {\n const cls = styles[`weight-${fontWeight}`];\n if (cls) classes.push(cls);\n }\n\n if (lineHeight) {\n const cls = styles[`leading-${lineHeight}`];\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes) };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./colors.module.css\";\nimport clsx from \"clsx\";\n\nexport type ColorValue =\n | \"accent-emphasis\"\n | \"accent\"\n | \"error-emphasis\"\n | \"error\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"foreground-inverted\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground\"\n | \"info-emphasis\"\n | \"info\"\n | \"primary-emphasis\"\n | \"primary\"\n | \"success-emphasis\"\n | \"success\"\n | \"warning-emphasis\"\n | \"warning\";\n\nexport type BackgroundColorValue =\n | \"accent-default\"\n | \"accent-emphasis\"\n | \"accent-subtle\"\n | \"background\"\n | \"error-default\"\n | \"error-emphasis\"\n | \"error-subtle\"\n | \"foreground\"\n | \"info-default\"\n | \"info-emphasis\"\n | \"info-subtle\"\n | \"primary-default\"\n | \"primary-emphasis\"\n | \"primary-subtle\"\n | \"success-default\"\n | \"success-emphasis\"\n | \"success-subtle\"\n | \"surface\"\n | \"transparent\"\n | \"warning-default\"\n | \"warning-emphasis\"\n | \"warning-subtle\";\n\nexport type BorderColorValue =\n | \"accent-emphasis\"\n | \"accent\"\n | \"border-muted\"\n | \"border\"\n | \"error-emphasis\"\n | \"error\"\n | \"info-emphasis\"\n | \"info\"\n | \"primary-emphasis\"\n | \"primary\"\n | \"success-emphasis\"\n | \"success\"\n | \"warning-emphasis\"\n | \"warning\";\n\nexport type ColorProps = {\n color?: ColorValue;\n bg?: BackgroundColorValue;\n borderColor?: BorderColorValue;\n};\n\nexport type ColorStateProps = {\n _hover?: ColorProps;\n};\n\nfunction getColorClass(value: ColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`color-${value}${stateClassSuffix}`]\n : styles[`color-${value}`];\n}\n\nfunction getBgClass(value: BackgroundColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`bg-${value}${stateClassSuffix}`]\n : styles[`bg-${value}`];\n}\n\nfunction getBorderColorClass(value: BorderColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-color-${value}${stateClassSuffix}`]\n : styles[`border-color-${value}`];\n}\n\nfunction getColorStylesForState(\n props: ColorProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.color) {\n const cls = getColorClass(props.color, state);\n if (cls) classes.push(cls);\n }\n\n if (props.bg) {\n const cls = getBgClass(props.bg, state);\n if (cls) classes.push(cls);\n }\n\n if (props.borderColor) {\n const cls = getBorderColorClass(props.borderColor, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getColorStyles(\n props: ColorProps & ColorStateProps\n): StyleResult {\n const { color, bg, borderColor, _hover } = props;\n\n const baseStyles = getColorStylesForState({ color, bg, borderColor }, \"base\");\n const hoverStyles = getColorStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./borders.module.css\";\nimport clsx from \"clsx\";\n\nexport type BorderWidthValue = \"none\" | \"thin\" | \"medium\" | \"thick\";\nexport type BorderStyleValue = \"none\" | \"solid\" | \"dashed\" | \"dotted\";\n\nexport type BorderProps = {\n border?: BorderWidthValue;\n borderX?: BorderWidthValue;\n borderY?: BorderWidthValue;\n borderTop?: BorderWidthValue;\n borderRight?: BorderWidthValue;\n borderBottom?: BorderWidthValue;\n borderLeft?: BorderWidthValue;\n borderStyle?: BorderStyleValue;\n};\n\nexport type BorderStateProps = {\n _hover?: BorderProps;\n};\n\nfunction getBorderTopClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-top-${value}${stateClassSuffix}`]\n : styles[`border-top-${value}`];\n}\n\nfunction getBorderRightClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-right-${value}${stateClassSuffix}`]\n : styles[`border-right-${value}`];\n}\n\nfunction getBorderBottomClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-bottom-${value}${stateClassSuffix}`]\n : styles[`border-bottom-${value}`];\n}\n\nfunction getBorderLeftClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-left-${value}${stateClassSuffix}`]\n : styles[`border-left-${value}`];\n}\n\nfunction getBorderStyleClass(value: BorderStyleValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-style-${value}${stateClassSuffix}`]\n : styles[`border-style-${value}`];\n}\n\nfunction getBorderStylesForState(\n props: BorderProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n } = props;\n\n const classes: string[] = [];\n\n // Cascading specificity: individual > axis > all\n const topWidth = borderTop ?? borderY ?? border;\n const rightWidth = borderRight ?? borderX ?? border;\n const bottomWidth = borderBottom ?? borderY ?? border;\n const leftWidth = borderLeft ?? borderX ?? border;\n\n if (topWidth) {\n const cls = getBorderTopClass(topWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (rightWidth) {\n const cls = getBorderRightClass(rightWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomWidth) {\n const cls = getBorderBottomClass(bottomWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (leftWidth) {\n const cls = getBorderLeftClass(leftWidth, state);\n if (cls) classes.push(cls);\n }\n\n // Apply borderStyle, default to solid if any width is set\n if (borderStyle) {\n const cls = getBorderStyleClass(borderStyle, state);\n if (cls) classes.push(cls);\n } else if (topWidth || rightWidth || bottomWidth || leftWidth) {\n const cls = getBorderStyleClass(\"solid\", state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getBorderStyles(\n props: BorderProps & BorderStateProps\n): StyleResult {\n const {\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n _hover,\n } = props;\n\n const baseStyles = getBorderStylesForState(\n { border, borderX, borderY, borderTop, borderRight, borderBottom, borderLeft, borderStyle },\n \"base\"\n );\n const hoverStyles = getBorderStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./roundness.module.css\";\nimport clsx from \"clsx\";\n\nexport type RoundedValue = \"none\" | \"sm\" | \"md\" | \"lg\" | \"full\";\n\nexport type RoundnessProps = {\n rounded?: RoundedValue;\n roundedTop?: RoundedValue;\n roundedBottom?: RoundedValue;\n roundedLeft?: RoundedValue;\n roundedRight?: RoundedValue;\n roundedTopLeft?: RoundedValue;\n roundedTopRight?: RoundedValue;\n roundedBottomLeft?: RoundedValue;\n roundedBottomRight?: RoundedValue;\n};\n\nexport type RoundnessStateProps = {\n _hover?: RoundnessProps;\n};\n\nfunction getRoundedTopLeftClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-tl-${value}${stateClassSuffix}`]\n : styles[`rounded-tl-${value}`];\n}\n\nfunction getRoundedTopRightClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-tr-${value}${stateClassSuffix}`]\n : styles[`rounded-tr-${value}`];\n}\n\nfunction getRoundedBottomRightClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-br-${value}${stateClassSuffix}`]\n : styles[`rounded-br-${value}`];\n}\n\nfunction getRoundedBottomLeftClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-bl-${value}${stateClassSuffix}`]\n : styles[`rounded-bl-${value}`];\n}\n\nfunction getRoundnessStylesForState(\n props: RoundnessProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n } = props;\n\n const classes: string[] = [];\n\n // Cascading specificity: individual corner > side > all\n const topLeft = roundedTopLeft ?? roundedTop ?? roundedLeft ?? rounded;\n const topRight = roundedTopRight ?? roundedTop ?? roundedRight ?? rounded;\n const bottomRight = roundedBottomRight ?? roundedBottom ?? roundedRight ?? rounded;\n const bottomLeft = roundedBottomLeft ?? roundedBottom ?? roundedLeft ?? rounded;\n\n if (topLeft) {\n const cls = getRoundedTopLeftClass(topLeft, state);\n if (cls) classes.push(cls);\n }\n\n if (topRight) {\n const cls = getRoundedTopRightClass(topRight, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomRight) {\n const cls = getRoundedBottomRightClass(bottomRight, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomLeft) {\n const cls = getRoundedBottomLeftClass(bottomLeft, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getRoundnessStyles(\n props: RoundnessProps & RoundnessStateProps\n): StyleResult {\n const {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n _hover,\n } = props;\n\n const baseStyles = getRoundnessStylesForState(\n {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n },\n \"base\"\n );\n const hoverStyles = getRoundnessStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./flexbox.module.css\";\nimport clsx from \"clsx\";\n\nexport type FlexDirectionValue = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\nexport type JustifyContentValue = \"start\" | \"end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\nexport type AlignItemsValue = \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\nexport type AlignSelfValue = \"auto\" | \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\nexport type FlexWrapValue = \"nowrap\" | \"wrap\" | \"wrap-reverse\";\nexport type SpacingValue = number | string;\n\nexport type FlexboxProps = {\n flexDirection?: FlexDirectionValue;\n justifyContent?: JustifyContentValue;\n alignItems?: AlignItemsValue;\n alignSelf?: AlignSelfValue;\n flexWrap?: FlexWrapValue;\n gap?: SpacingValue;\n gapRow?: SpacingValue;\n gapColumn?: SpacingValue;\n flex?: string;\n flexGrow?: number;\n flexShrink?: number;\n flexBasis?: string;\n};\n\nexport type FlexboxStateProps = {\n _hover?: FlexboxProps;\n};\n\nfunction getFlexDirectionClass(value: FlexDirectionValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`flex-${value}${stateClassSuffix}`]\n : styles[`flex-${value}`];\n}\n\nfunction getJustifyContentClass(value: JustifyContentValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`justify-${value}${stateClassSuffix}`]\n : styles[`justify-${value}`];\n}\n\nfunction getAlignItemsClass(value: AlignItemsValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`items-${value}${stateClassSuffix}`]\n : styles[`items-${value}`];\n}\n\nfunction getAlignSelfClass(value: AlignSelfValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`self-${value}${stateClassSuffix}`]\n : styles[`self-${value}`];\n}\n\nfunction getFlexWrapClass(value: FlexWrapValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`flex-${value}${stateClassSuffix}`]\n : styles[`flex-${value}`];\n}\n\nfunction getSpacingValue(value?: SpacingValue): string {\n if (value === undefined) return \"normal\";\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getFlexboxStylesForState(\n props: FlexboxProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n } = props;\n\n const classes: string[] = [];\n const style: Record<string, string> = {};\n const stateVarSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n // Enumerated props\n if (flexDirection) {\n const cls = getFlexDirectionClass(flexDirection, state);\n if (cls) classes.push(cls);\n }\n\n if (justifyContent) {\n const cls = getJustifyContentClass(justifyContent, state);\n if (cls) classes.push(cls);\n }\n\n if (alignItems) {\n const cls = getAlignItemsClass(alignItems, state);\n if (cls) classes.push(cls);\n }\n\n if (alignSelf) {\n const cls = getAlignSelfClass(alignSelf, state);\n if (cls) classes.push(cls);\n }\n\n if (flexWrap) {\n const cls = getFlexWrapClass(flexWrap, state);\n if (cls) classes.push(cls);\n }\n\n // Variable-based props: gap\n if (gap !== undefined || gapRow !== undefined || gapColumn !== undefined) {\n const row = gapRow ?? gap;\n const column = gapColumn ?? gap;\n const rowValue = getSpacingValue(row);\n const columnValue = getSpacingValue(column);\n const gapValue = rowValue === columnValue ? rowValue : `${rowValue} ${columnValue}`;\n\n const gapClass = stateClassSuffix ? styles[`gap${stateClassSuffix}`] : styles.gap;\n if (gapClass) classes.push(gapClass);\n style[`--t-gap${stateVarSuffix}`] = gapValue;\n }\n\n // Variable-based props: flex\n if (flex !== undefined) {\n const flexClass = stateClassSuffix ? styles[`flex${stateClassSuffix}`] : styles.flex;\n if (flexClass) classes.push(flexClass);\n style[`--t-flex${stateVarSuffix}`] = flex;\n } else if (flexGrow !== undefined || flexShrink !== undefined || flexBasis !== undefined) {\n const grow = flexGrow ?? 0;\n const shrink = flexShrink ?? 1;\n const basis = flexBasis ?? \"auto\";\n const flexClass = stateClassSuffix ? styles[`flex${stateClassSuffix}`] : styles.flex;\n if (flexClass) classes.push(flexClass);\n style[`--t-flex${stateVarSuffix}`] = `${grow} ${shrink} ${basis}`;\n }\n\n return {\n className: clsx(...classes),\n style,\n };\n}\n\nexport function getFlexboxStyles(\n props: FlexboxProps & FlexboxStateProps\n): StyleResult {\n const {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n _hover,\n } = props;\n\n const baseStyles = getFlexboxStylesForState(\n {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n },\n \"base\"\n );\n const hoverStyles = getFlexboxStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: { ...baseStyles.style, ...hoverStyles.style } as Record<string, string>,\n };\n}\n","import {\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./grid.module.css\";\nimport clsx from \"clsx\";\n\nexport type JustifySelfValue = \"auto\" | \"start\" | \"end\" | \"center\" | \"stretch\";\n\nexport type GridProps = {\n justifySelf?: JustifySelfValue;\n gridTemplateColumns?: string;\n gridTemplateRows?: string;\n};\n\nexport type GridStateProps = {\n _hover?: GridProps;\n};\n\nfunction getJustifySelfClass(value: JustifySelfValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`justify-self-${value}${stateClassSuffix}`]\n : styles[`justify-self-${value}`];\n}\n\nfunction getGridStylesForState(\n props: GridProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const { justifySelf, gridTemplateColumns, gridTemplateRows } = props;\n\n const classes: string[] = [];\n const style: Record<string, string> = {};\n const stateVarSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n // Enumerated prop\n if (justifySelf) {\n const cls = getJustifySelfClass(justifySelf, state);\n if (cls) classes.push(cls);\n }\n\n // Variable-based props\n if (gridTemplateColumns !== undefined) {\n const gridColsClass = stateClassSuffix ? styles[`grid-cols${stateClassSuffix}`] : styles[\"grid-cols\"];\n if (gridColsClass) classes.push(gridColsClass);\n style[`--t-grid-cols${stateVarSuffix}`] = gridTemplateColumns;\n }\n\n if (gridTemplateRows !== undefined) {\n const gridRowsClass = stateClassSuffix ? styles[`grid-rows${stateClassSuffix}`] : styles[\"grid-rows\"];\n if (gridRowsClass) classes.push(gridRowsClass);\n style[`--t-grid-rows${stateVarSuffix}`] = gridTemplateRows;\n }\n\n return {\n className: clsx(...classes),\n style,\n };\n}\n\nexport function getGridStyles(\n props: GridProps & GridStateProps\n): StyleResult {\n const { justifySelf, gridTemplateColumns, gridTemplateRows, _hover } = props;\n\n const baseStyles = getGridStylesForState(\n { justifySelf, gridTemplateColumns, gridTemplateRows },\n \"base\"\n );\n const hoverStyles = getGridStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: { ...baseStyles.style, ...hoverStyles.style } as Record<string, string>,\n };\n}\n","import { type ElementType, type ReactNode, type CSSProperties } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { clsx } from \"clsx\";\nimport { resetClass } from \"./reset/reset\";\nimport { getMarginStyles, type MarginProps } from \"./margin/margin\";\nimport { getPaddingStyles, type PaddingProps } from \"./padding/padding\";\nimport { getSizingStyles, type SizingProps } from \"./sizing/sizing\";\nimport { getInsetStyles, type InsetProps } from \"./inset/inset\";\nimport { getDisplayStyles, type DisplayProps } from \"./display/display\";\nimport { getPositionStyles, type PositionProps } from \"./position/position\";\nimport { getOverflowStyles, type OverflowProps } from \"./overflow/overflow\";\nimport { getZIndexStyles, type ZIndexProps } from \"./zIndex/zIndex\";\nimport { getShadowStyles, type ShadowProps } from \"./shadows/shadows\";\nimport { getOpacityStyles, type OpacityProps } from \"./opacity/opacity\";\nimport {\n getInteractionStyles,\n type InteractionProps,\n} from \"./interactions/interactions\";\nimport { getTextStyles, type TextStyleProps } from \"./text/text\";\nimport {\n getTypographyStyles,\n type TypographyProps,\n} from \"./typography/typography\";\nimport { getColorStyles, type ColorProps } from \"./colors/colors\";\nimport { getBorderStyles, type BorderProps } from \"./borders/borders\";\nimport { getRoundnessStyles, type RoundnessProps } from \"./roundness/roundness\";\nimport { getFlexboxStyles, type FlexboxProps } from \"./flexbox/flexbox\";\nimport { getGridStyles, type GridProps } from \"./grid/grid\";\n\n// Combined state props for all style parts\ntype StateStyleProps = MarginProps &\n PaddingProps &\n SizingProps &\n InsetProps &\n DisplayProps &\n PositionProps &\n OverflowProps &\n ZIndexProps &\n ShadowProps &\n OpacityProps &\n InteractionProps &\n TextStyleProps &\n TypographyProps &\n ColorProps &\n BorderProps &\n RoundnessProps &\n FlexboxProps &\n GridProps;\n\ntype StateProps = {\n _hover?: StateStyleProps;\n _focus?: StateStyleProps;\n _active?: StateStyleProps;\n _disabled?: StateStyleProps;\n};\n\nexport type BoxOwnProps = MarginProps &\n PaddingProps &\n SizingProps &\n InsetProps &\n DisplayProps &\n PositionProps &\n OverflowProps &\n ZIndexProps &\n ShadowProps &\n OpacityProps &\n InteractionProps &\n TextStyleProps &\n TypographyProps &\n ColorProps &\n BorderProps &\n RoundnessProps &\n FlexboxProps &\n GridProps &\n StateProps & {\n className?: string;\n children?: ReactNode;\n };\n\nexport type BoxProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n BoxOwnProps\n>;\n\n// Helper to combine multiple style results\ntype StyleResult = {\n className?: string;\n style?: CSSProperties;\n};\n\nfunction combineStyles(...results: StyleResult[]): StyleResult {\n return {\n className: clsx(...results.map((r) => r.className)),\n style: Object.assign({}, ...results.map((r) => r.style)),\n };\n}\n\nexport function Box<T extends ElementType = \"div\">({\n as,\n children,\n className,\n style,\n // Margin props\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n // Padding props\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n // Sizing props\n w,\n h,\n minW,\n maxW,\n minH,\n maxH,\n // Inset props\n inset,\n insetX,\n insetY,\n top,\n right,\n bottom,\n left,\n // Display props\n display,\n // Position props\n position,\n // Overflow props\n overflow,\n overflowX,\n overflowY,\n // ZIndex props\n zIndex,\n // Shadow props\n shadow,\n // Opacity props\n opacity,\n // Interaction props\n cursor,\n pointerEvents,\n userSelect,\n // Text style props\n textAlign,\n whiteSpace,\n textDecoration,\n // Typography props\n fontSize,\n fontFamily,\n fontWeight,\n lineHeight,\n // Color props\n color,\n bg,\n borderColor,\n // Border props\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n // Roundness props\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n // Flexbox props\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n // Grid props\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n // State props\n _hover,\n _focus,\n _active,\n _disabled,\n ...rest\n}: BoxProps<T>) {\n const Component = as || \"div\";\n\n const stateProps = { _hover, _focus, _active, _disabled };\n\n const styles = combineStyles(\n getMarginStyles({ m, mt, mr, mb, ml, mx, my, ...stateProps }),\n getPaddingStyles({ p, pt, pr, pb, pl, px, py, ...stateProps }),\n getSizingStyles({ w, h, minW, maxW, minH, maxH, ...stateProps }),\n getInsetStyles({ inset, insetX, insetY, top, right, bottom, left, ...stateProps }),\n getDisplayStyles({ display, ...stateProps }),\n getPositionStyles({ position, ...stateProps }),\n getOverflowStyles({ overflow, overflowX, overflowY, ...stateProps }),\n getZIndexStyles({ zIndex, ...stateProps }),\n getShadowStyles({ shadow, ...stateProps }),\n getOpacityStyles({ opacity, ...stateProps }),\n getInteractionStyles({ cursor, pointerEvents, userSelect, ...stateProps }),\n getTextStyles({ textAlign, whiteSpace, textDecoration, ...stateProps }),\n getTypographyStyles({ fontSize, fontFamily, fontWeight, lineHeight }),\n getColorStyles({ color, bg, borderColor, ...stateProps }),\n getBorderStyles({\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n ...stateProps,\n }),\n getRoundnessStyles({\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n ...stateProps,\n }),\n getFlexboxStyles({\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n ...stateProps,\n }),\n getGridStyles({\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n ...stateProps,\n })\n );\n\n return (\n <Component\n className={clsx(resetClass, styles.className, className)}\n style={{\n ...styles.style,\n ...style,\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { Box, type BoxOwnProps } from \"../Box/Box\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport styles from \"./text.module.css\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype TextAlign = \"left\" | \"center\" | \"right\" | \"justify\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground-inverted\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\"\n | \"info\"\n | \"info-emphasis\";\n\nexport type TextOwnProps = Omit<\n BoxOwnProps,\n \"fontSize\" | \"fontWeight\" | \"textAlign\" | \"color\"\n> & {\n size?: FontSize;\n weight?: FontWeight;\n align?: TextAlign;\n color?: Color;\n truncate?: boolean;\n italic?: boolean;\n};\n\nexport type TextProps<T extends ElementType = \"span\"> = Polymorphic<\n T,\n TextOwnProps\n>;\n\n/**\n * Text - Semantic text component for body copy, labels, captions, etc.\n *\n * Built on top of Box with text-specific conveniences:\n * - Default element: <span> (inline)\n * - Shorthand props: size, weight, align, color\n * - Utility props: truncate (ellipsis), italic\n * - Can be changed to any element via `as` prop\n */\nexport function Text<T extends ElementType = \"span\">({\n as,\n size,\n weight,\n align,\n color,\n truncate,\n italic,\n className,\n ...rest\n}: TextProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Box\n as={as}\n fontSize={size}\n fontWeight={weight}\n textAlign={align}\n color={color}\n className={clsx(\n truncate && styles.truncate,\n italic && styles.italic,\n className\n )}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { Text, type TextOwnProps } from \"../Text/Text\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\";\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nconst defaultSizes: Record<HeadingLevel, FontSize> = {\n 1: \"3xl\",\n 2: \"2xl\",\n 3: \"xl\",\n 4: \"lg\",\n 5: \"md\",\n 6: \"sm\",\n};\n\ntype HeadingOwnProps = Omit<TextOwnProps, \"size\" | \"weight\" | \"color\"> & {\n level?: HeadingLevel;\n size?: FontSize;\n weight?: FontWeight;\n color?: Color;\n};\n\nexport type HeadingProps<T extends ElementType = \"h1\"> = Polymorphic<\n T,\n HeadingOwnProps\n>;\n\n/**\n * Heading - Semantic heading component with predefined sizes\n *\n * Built on top of Text with heading-specific defaults:\n * - level prop maps to h1-h6 elements (default: h1)\n * - Each level has a default font size\n * - Default font weight: bold\n * - Size can be overridden via size prop\n * - Can be changed to any element via `as` prop\n */\nexport function Heading<T extends ElementType = \"h1\">({\n as,\n level = 1,\n size,\n weight = \"bold\",\n color,\n children,\n ...rest\n}: HeadingProps<T>) {\n const headingElement = `h${level}` as const;\n const defaultSize = defaultSizes[level];\n const element = as ?? headingElement;\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Text\n as={element}\n size={size ?? defaultSize}\n weight={weight}\n color={color}\n {...rest}\n >\n {children}\n </Text>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./spinner.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SpinnerSize = \"sm\" | \"md\" | \"lg\";\n\nexport type SpinnerOwnProps = Omit<BoxOwnProps, \"as\"> & {\n size?: SpinnerSize;\n};\n\nexport type SpinnerProps<T extends ElementType = \"span\"> = Polymorphic<\n T,\n SpinnerOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { w: \"1em\", h: \"1em\", borderWidth: \"2px\" },\n md: { w: \"1.5em\", h: \"1.5em\", borderWidth: \"2px\" },\n lg: { w: \"2em\", h: \"2em\", borderWidth: \"3px\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Spinner - Loading indicator component\n *\n * A simple spinning indicator that inherits color from its parent.\n * Uses CSS animation for smooth performance.\n */\nexport function Spinner<T extends ElementType = \"span\">({\n as,\n size = \"md\",\n className,\n style,\n ...rest\n}: SpinnerProps<T>) {\n const Component = as || \"span\";\n const sizeProps = sizeConfig[size];\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n display=\"inline-block\"\n w={sizeProps.w}\n h={sizeProps.h}\n style={{ borderWidth: sizeProps.borderWidth, ...style }}\n className={clsx(styles.spinner, className)}\n role=\"status\"\n aria-label=\"Loading\"\n {...rest}\n />\n );\n}\n","import { type ElementType, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport { Spinner } from \"@/components/Spinner/Spinner\";\nimport styles from \"./button.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type ButtonOwnProps = Omit<BoxOwnProps, \"as\"> & {\n variant?: ButtonVariant;\n size?: ButtonSize;\n colorScheme?: ButtonColorScheme;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n};\n\nexport type ButtonProps<T extends ElementType = \"button\"> = Polymorphic<\n T,\n ButtonOwnProps\n>;\n\n// ============================================================================\n// Size configurations using Box props\n// ============================================================================\n\nconst sizeConfig = {\n sm: { py: 1, px: 3, fontSize: \"sm\", rounded: \"sm\" },\n md: { py: 2, px: 4, fontSize: \"md\", rounded: \"md\" },\n lg: { py: 3, px: 6, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n borderColor: string | undefined;\n hoverBg: string;\n};\n\nfunction getColorConfig(\n variant: ButtonVariant,\n colorScheme: ButtonColorScheme\n): ColorConfig {\n switch (variant) {\n case \"solid\":\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-emphasis)`,\n };\n case \"outline\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: colorScheme,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n case \"ghost\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n }\n}\n\n// ============================================================================\n// Variant border configurations\n// ============================================================================\n\nconst variantBorderConfig = {\n solid: \"none\",\n outline: \"thin\",\n ghost: \"none\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Button - Interactive button component\n *\n * A polymorphic button component that provides:\n * - Default element: <button>\n * - Variants: solid (default), outline, ghost\n * - Sizes: sm, md (default), lg\n * - Loading state with spinner\n * - Icon support (left and right)\n * - Full width option\n */\nexport function Button<T extends ElementType = \"button\">({\n as,\n variant = \"solid\",\n size = \"md\",\n colorScheme = \"primary\",\n disabled = false,\n loading = false,\n fullWidth = false,\n leftIcon,\n rightIcon,\n children,\n className,\n style,\n // Allow overriding default colors\n bg,\n color,\n borderColor,\n ...rest\n}: ButtonProps<T>) {\n const Component = as || \"button\";\n const isDisabled = disabled || loading;\n\n // Get config for variant, size, and color\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n // Determine what to show for left icon slot\n const leftContent = loading ? (\n <Spinner size=\"sm\" aria-hidden=\"true\" />\n ) : leftIcon ? (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n aria-hidden=\"true\"\n >\n {leftIcon}\n </Box>\n ) : null;\n\n // Right icon (never replaced by spinner)\n const rightContent = rightIcon ? (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n aria-hidden=\"true\"\n >\n {rightIcon}\n </Box>\n ) : null;\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Layout\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n // Size props\n py={sizeProps.py}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n fontWeight=\"medium\"\n // Color props (allow user overrides)\n bg={bg ?? colorConfig.bg}\n color={color ?? colorConfig.color}\n border={variantBorderConfig[variant]}\n borderColor={borderColor ?? colorConfig.borderColor}\n // Width\n w={fullWidth ? \"100%\" : undefined}\n // Interaction states\n cursor={isDisabled ? \"not-allowed\" : \"pointer\"}\n pointerEvents={isDisabled ? \"none\" : undefined}\n opacity={isDisabled ? \"faint\" : undefined}\n // Text decoration for links\n textDecoration=\"none\"\n // CSS module styles (transitions + hover)\n className={clsx(styles.button, styles[variant], className)}\n // Set hover color via CSS variable\n style={{ \"--button-hover-bg\": colorConfig.hoverBg, ...style }}\n // Accessibility\n disabled={isDisabled}\n aria-disabled={isDisabled}\n aria-busy={loading}\n {...rest}\n >\n {leftContent}\n {children}\n {rightContent}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n FlexDirectionValue,\n JustifyContentValue,\n AlignItemsValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n \"display\" | \"flexDirection\" | \"justifyContent\" | \"alignItems\" | \"flexWrap\" | \"gap\"\n> & {\n /** Stack direction: row, column, row-reverse, column-reverse */\n direction?: FlexDirectionValue;\n /** Gap between children (0-32 spacing multiplier) */\n gap?: SpacingValue;\n /** Align items along the cross axis */\n align?: AlignItemsValue;\n /** Justify content along the main axis */\n justify?: JustifyContentValue;\n /** Enable flex wrapping */\n wrap?: boolean;\n};\n\nexport type StackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n StackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Stack - Flex-based layout component\n *\n * A polymorphic flex container that provides:\n * - Default element: <div>\n * - Direction: column (default), row, row-reverse, column-reverse\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function Stack<T extends ElementType = \"div\">({\n as,\n direction = \"column\",\n gap,\n align,\n justify,\n wrap,\n children,\n ...rest\n}: StackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"flex\"\n flexDirection={direction}\n gap={gap}\n alignItems={align}\n justifyContent={justify}\n flexWrap={wrap ? \"wrap\" : undefined}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Stack, type StackOwnProps } from \"@/components/Stack/Stack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type HStackOwnProps = Omit<StackOwnProps, \"direction\">;\n\nexport type HStackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n HStackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * HStack - Horizontal stack component\n *\n * A convenience wrapper around Stack with direction=\"row\".\n * - Default element: <div>\n * - Direction: row (fixed)\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function HStack<T extends ElementType = \"div\">({\n as,\n children,\n ...rest\n}: HStackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Stack as={as || \"div\"} direction=\"row\" {...rest}>\n {children}\n </Stack>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Stack, type StackOwnProps } from \"@/components/Stack/Stack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type VStackOwnProps = Omit<StackOwnProps, \"direction\">;\n\nexport type VStackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n VStackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * VStack - Vertical stack component\n *\n * A convenience wrapper around Stack with direction=\"column\".\n * - Default element: <div>\n * - Direction: column (fixed)\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function VStack<T extends ElementType = \"div\">({\n as,\n children,\n ...rest\n}: VStackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Stack as={as || \"div\"} direction=\"column\" {...rest}>\n {children}\n </Stack>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n FlexDirectionValue,\n JustifyContentValue,\n AlignItemsValue,\n AlignSelfValue,\n FlexWrapValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type FlexOwnProps = Omit<\n BoxOwnProps,\n | \"display\"\n | \"flexDirection\"\n | \"justifyContent\"\n | \"alignItems\"\n | \"alignSelf\"\n | \"flexWrap\"\n | \"gap\"\n | \"gapRow\"\n | \"gapColumn\"\n | \"flexBasis\"\n | \"flexGrow\"\n | \"flexShrink\"\n> & {\n /** Flex direction: row (default), column, row-reverse, column-reverse */\n direction?: FlexDirectionValue;\n /** Flex wrapping: nowrap (default), wrap, wrap-reverse */\n wrap?: FlexWrapValue;\n /** Justify content along the main axis */\n justify?: JustifyContentValue;\n /** Align items along the cross axis */\n align?: AlignItemsValue;\n /** Align content when there are multiple lines */\n alignContent?: JustifyContentValue;\n /** Gap between children (0-32 spacing multiplier or string) */\n gap?: SpacingValue;\n /** Row gap between children (0-32 spacing multiplier or string) */\n gapRow?: SpacingValue;\n /** Column gap between children (0-32 spacing multiplier or string) */\n gapColumn?: SpacingValue;\n /** Flex basis of the container */\n basis?: string;\n /** Flex grow of the container */\n grow?: number;\n /** Flex shrink of the container */\n shrink?: number;\n /** Align self within parent flex container */\n alignSelf?: AlignSelfValue;\n};\n\nexport type FlexProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n FlexOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Flex - Explicit flexbox layout component\n *\n * A polymorphic flex container with shorthand props:\n * - Default element: <div>\n * - Always renders with display=\"flex\"\n * - direction -> flexDirection (default: row)\n * - wrap -> flexWrap\n * - justify -> justifyContent\n * - align -> alignItems\n * - gap, gapRow, gapColumn\n * - basis, grow, shrink -> flexBasis, flexGrow, flexShrink\n */\nexport function Flex<T extends ElementType = \"div\">({\n as,\n direction,\n wrap,\n justify,\n align,\n alignContent,\n gap,\n gapRow,\n gapColumn,\n basis,\n grow,\n shrink,\n alignSelf,\n children,\n ...rest\n}: FlexProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"flex\"\n flexDirection={direction}\n flexWrap={wrap}\n justifyContent={justify}\n alignItems={align}\n gap={gap}\n gapRow={gapRow}\n gapColumn={gapColumn}\n flexBasis={basis}\n flexGrow={grow}\n flexShrink={shrink}\n alignSelf={alignSelf}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n JustifyContentValue,\n AlignItemsValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type GridOwnProps = Omit<\n BoxOwnProps,\n | \"display\"\n | \"gridTemplateColumns\"\n | \"gridTemplateRows\"\n | \"gap\"\n | \"gapRow\"\n | \"gapColumn\"\n | \"justifyContent\"\n | \"alignItems\"\n> & {\n /** Grid template columns (CSS value) */\n columns?: string;\n /** Grid template rows (CSS value) */\n rows?: string;\n /** Gap between grid items (0-32 spacing multiplier or string) */\n gap?: SpacingValue;\n /** Row gap between grid items (0-32 spacing multiplier or string) */\n gapRow?: SpacingValue;\n /** Column gap between grid items (0-32 spacing multiplier or string) */\n gapColumn?: SpacingValue;\n /** Justify items along the inline (row) axis */\n justify?: JustifyContentValue;\n /** Align items along the block (column) axis */\n align?: AlignItemsValue;\n /** Justify content (distribute rows) */\n justifyContent?: JustifyContentValue;\n /** Align content (distribute columns) */\n alignContent?: JustifyContentValue;\n};\n\nexport type GridProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n GridOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Grid - Explicit CSS Grid layout component\n *\n * A polymorphic grid container with shorthand props:\n * - Default element: <div>\n * - Always renders with display=\"grid\"\n * - columns -> gridTemplateColumns\n * - rows -> gridTemplateRows\n * - gap, gapRow, gapColumn\n * - justify -> justifyItems (alignment within cells)\n * - align -> alignItems (alignment within cells)\n * - justifyContent, alignContent (distribution of grid tracks)\n */\nexport function Grid<T extends ElementType = \"div\">({\n as,\n columns,\n rows,\n gap,\n gapRow,\n gapColumn,\n justify,\n align,\n justifyContent,\n alignContent,\n children,\n ...rest\n}: GridProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"grid\"\n gridTemplateColumns={columns}\n gridTemplateRows={rows}\n gap={gap}\n gapRow={gapRow}\n gapColumn={gapColumn}\n justifyContent={justify ?? justifyContent}\n alignItems={align ?? alignContent}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Container size preset */\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\nexport type ContainerOwnProps = Omit<BoxOwnProps, \"maxW\" | \"mx\"> & {\n /** Max-width preset: sm=640px, md=768px, lg=1024px, xl=1280px, 2xl=1536px, full=100% (default: lg) */\n size?: ContainerSize;\n /** Center children using flexbox (default: false) */\n centerContent?: boolean;\n /** Horizontal padding (default: 4 = 16px) */\n px?: BoxOwnProps[\"px\"];\n};\n\nexport type ContainerProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n ContainerOwnProps\n>;\n\n// ============================================================================\n// Config\n// ============================================================================\n\nconst SIZE_MAP: Record<ContainerSize, string> = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n full: \"100%\",\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Container - Max-width centered content wrapper\n *\n * A polymorphic container for constraining content width:\n * - Default element: <div>\n * - Size presets: sm (640px), md (768px), lg (1024px), xl (1280px), 2xl (1536px), full (100%)\n * - Default: lg (1024px max-width)\n * - Centered horizontally with mx=\"auto\"\n * - Optional centerContent to center children vertically with flex\n */\nexport function Container<T extends ElementType = \"div\">({\n as,\n size = \"lg\",\n centerContent = false,\n px = 4,\n children,\n ...rest\n}: ContainerProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n w=\"100%\"\n maxW={SIZE_MAP[size]}\n mx=\"auto\"\n px={px}\n {...(centerContent && {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n })}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Divider color using semantic border color tokens */\nexport type DividerColor =\n | \"border\"\n | \"border-muted\"\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type DividerOwnProps = Omit<BoxOwnProps, \"w\" | \"h\" | \"bg\" | \"color\"> & {\n /** Divider orientation (default: \"horizontal\") */\n orientation?: \"horizontal\" | \"vertical\";\n /** Divider color token (default: \"border-muted\") */\n color?: DividerColor;\n /** Divider thickness in pixels 1-4 (default: 1) */\n thickness?: 1 | 2 | 3 | 4;\n};\n\nexport type DividerProps<T extends ElementType = \"hr\"> = Polymorphic<\n T,\n DividerOwnProps\n>;\n\n// ============================================================================\n// Config\n// ============================================================================\n\nconst COLOR_MAP: Record<DividerColor, string> = {\n border: \"var(--t-color-border)\",\n \"border-muted\": \"var(--t-color-border-muted)\",\n primary: \"var(--t-color-primary-default)\",\n accent: \"var(--t-color-accent-default)\",\n success: \"var(--t-color-success-default)\",\n warning: \"var(--t-color-warning-default)\",\n error: \"var(--t-color-error-default)\",\n info: \"var(--t-color-info-default)\",\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Divider - Visual separator between content sections\n *\n * A polymorphic divider component that provides:\n * - Default element: <hr> for horizontal, <div> for vertical\n * - Orientations: horizontal (default), vertical\n * - Customizable color and thickness\n * - Proper accessibility attributes (role=\"separator\", aria-orientation)\n */\nexport function Divider<T extends ElementType = \"hr\">({\n as,\n orientation = \"horizontal\",\n color = \"border-muted\",\n thickness = 1,\n style,\n ...rest\n}: DividerProps<T>) {\n const isHorizontal = orientation === \"horizontal\";\n const defaultElement = isHorizontal ? \"hr\" : \"div\";\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || defaultElement}\n role=\"separator\"\n aria-orientation={orientation}\n w={isHorizontal ? \"100%\" : undefined}\n h={isHorizontal ? undefined : \"100%\"}\n style={{\n backgroundColor: COLOR_MAP[color],\n ...(isHorizontal\n ? { height: `${thickness}px` }\n : { width: `${thickness}px` }),\n border: \"none\",\n ...style,\n }}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SpacerOwnProps = Omit<BoxOwnProps, \"flex\">;\n\nexport type SpacerProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n SpacerOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Spacer - Flexible space filler for flex layouts\n *\n * A polymorphic spacer component that fills available flex space:\n * - Default element: <div>\n * - Always has flex: 1 to fill available space\n * - Use to push items apart in flex containers (e.g., logo left, nav right)\n */\nexport function Spacer<T extends ElementType = \"div\">({\n as,\n ...rest\n}: SpacerProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box as={as || \"div\"} flex={1} {...rest} />\n );\n}\n","import { type ElementType } from \"react\";\nimport { Box, type BoxOwnProps } from \"../Box/Box\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground-inverted\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\"\n | \"info\"\n | \"info-emphasis\";\n\nexport type CodeVariant = \"plain\" | \"subtle\";\n\nexport type CodeOwnProps = Omit<\n BoxOwnProps,\n \"fontSize\" | \"fontFamily\" | \"color\" | \"bg\" | \"rounded\" | \"px\"\n> & {\n /** Font size */\n size?: FontSize;\n /** Text color */\n color?: Color;\n /** Visual variant: plain (no background) or subtle (surface background) */\n variant?: CodeVariant;\n};\n\nexport type CodeProps<T extends ElementType = \"code\"> = Polymorphic<\n T,\n CodeOwnProps\n>;\n\n/**\n * Code - Inline code styling component\n *\n * Built on top of Box with code-specific conveniences:\n * - Default element: <code>\n * - Always uses monospace font family\n * - Variants: plain (no background) or subtle (surface background with rounded corners)\n * - Can be changed to any element via `as` prop\n */\nexport function Code<T extends ElementType = \"code\">({\n as,\n size,\n color,\n variant = \"plain\",\n ...rest\n}: CodeProps<T>) {\n const isSubtle = variant === \"subtle\";\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Box\n as={as || \"code\"}\n fontSize={size}\n fontFamily=\"mono\"\n color={color}\n bg={isSubtle ? \"surface\" : undefined}\n rounded={isSubtle ? \"sm\" : undefined}\n px={isSubtle ? 1 : undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./input.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\nexport type InputVariant = \"outline\" | \"filled\";\n\nexport type InputOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"h\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Input size affecting height and font size */\n size?: InputSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: InputVariant;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Whether the input is in an invalid state */\n isInvalid?: boolean;\n};\n\nexport type InputProps<T extends ElementType = \"input\"> = Polymorphic<\n T,\n InputOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { h: 8, px: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { h: 10, px: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { h: 12, px: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Input - Text input field component\n *\n * A polymorphic input component that provides:\n * - Default element: <input>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Focus ring styling\n */\nexport function Input<T extends ElementType = \"input\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n className,\n ...rest\n}: InputProps<T>) {\n const Component = as || \"input\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n h={sizeProps.h}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // CSS module for states\n className={clsx(styles.input, isInvalid && styles.invalid, className)}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\n\nexport type LabelOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"fontSize\" | \"fontWeight\"\n> & {\n /** Label text size */\n size?: FontSize;\n /** Label font weight */\n weight?: FontWeight;\n /** Show required asterisk */\n required?: boolean;\n};\n\nexport type LabelProps<T extends ElementType = \"label\"> = Polymorphic<\n T,\n LabelOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Label - Form label component\n *\n * A polymorphic label component that provides:\n * - Default element: <label>\n * - Size and weight props for typography\n * - Required indicator (red asterisk)\n * - Passes through htmlFor for accessibility\n */\nexport function Label<T extends ElementType = \"label\">({\n as,\n size = \"sm\",\n weight = \"medium\",\n required = false,\n children,\n ...rest\n}: LabelProps<T>) {\n const Component = as || \"label\";\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n fontSize={size}\n fontWeight={weight}\n color=\"foreground\"\n display=\"inline-block\"\n mb={1}\n {...rest}\n >\n {children}\n {required && (\n <Box as=\"span\" color=\"error\" ml={1} aria-hidden=\"true\">\n *\n </Box>\n )}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./textarea.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TextareaSize = \"sm\" | \"md\" | \"lg\";\nexport type TextareaVariant = \"outline\" | \"filled\";\nexport type TextareaResize = \"none\" | \"vertical\" | \"horizontal\" | \"both\";\n\nexport type TextareaOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Textarea size affecting font size and padding */\n size?: TextareaSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: TextareaVariant;\n /** Whether the textarea is disabled */\n disabled?: boolean;\n /** Whether the textarea is in an invalid state */\n isInvalid?: boolean;\n /** Number of visible text rows */\n rows?: number;\n /** Resize behavior */\n resize?: TextareaResize;\n};\n\nexport type TextareaProps<T extends ElementType = \"textarea\"> = Polymorphic<\n T,\n TextareaOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { p: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { p: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { p: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Resize class map\n// ============================================================================\n\nconst resizeClassMap: Record<TextareaResize, string> = {\n none: styles.resizeNone,\n vertical: styles.resizeVertical,\n horizontal: styles.resizeHorizontal,\n both: styles.resizeBoth,\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Textarea - Multiline text input component\n *\n * A polymorphic textarea component that provides:\n * - Default element: <textarea>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Configurable rows and resize behavior\n */\nexport function Textarea<T extends ElementType = \"textarea\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n rows = 3,\n resize = \"vertical\",\n className,\n ...rest\n}: TextareaProps<T>) {\n const Component = as || \"textarea\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n p={sizeProps.p}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // Native props\n rows={rows}\n // CSS module for states and resize\n className={clsx(\n styles.textarea,\n isInvalid && styles.invalid,\n resizeClassMap[resize],\n className\n )}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./select.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SelectSize = \"sm\" | \"md\" | \"lg\";\nexport type SelectVariant = \"outline\" | \"filled\";\n\nexport type SelectOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"h\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Select size affecting height and font size */\n size?: SelectSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: SelectVariant;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether the select is in an invalid state */\n isInvalid?: boolean;\n};\n\nexport type SelectProps<T extends ElementType = \"select\"> = Polymorphic<\n T,\n SelectOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { h: 8, px: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { h: 10, px: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { h: 12, px: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Select - Dropdown select component\n *\n * A polymorphic select component that provides:\n * - Default element: <select>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Custom dropdown arrow\n * - Focus ring styling\n */\nexport function Select<T extends ElementType = \"select\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n className,\n ...rest\n}: SelectProps<T>) {\n const Component = as || \"select\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n h={sizeProps.h}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // CSS module for states and custom arrow\n className={clsx(styles.select, isInvalid && styles.invalid, className)}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./checkbox.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Checkbox size affecting box dimensions */\n size?: CheckboxSize;\n /** Whether the checkbox is disabled */\n disabled?: boolean;\n /** Whether the checkbox is in an invalid state */\n isInvalid?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { box: 16, fontSize: \"sm\" },\n md: { box: 20, fontSize: \"md\" },\n lg: { box: 24, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Checkbox - Toggle checkbox component\n *\n * A styled checkbox component that provides:\n * - Sizes: sm, md (default), lg\n * - Custom styled box with checkmark\n * - Optional inline label\n * - Disabled and invalid states\n * - Focus ring styling\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(\n {\n size = \"md\",\n disabled = false,\n isInvalid = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n ) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native checkbox */}\n <input\n type=\"checkbox\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom visual checkbox */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n rounded=\"sm\"\n border=\"thin\"\n borderColor={isInvalid ? \"error\" : \"border\"}\n flexShrink={0}\n className={clsx(styles.box, isInvalid && styles.invalid)}\n style={{\n width: sizeProps.box,\n height: sizeProps.box,\n }}\n />\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n }\n);\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./radio.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RadioSize = \"sm\" | \"md\" | \"lg\";\n\nexport type RadioProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Radio size affecting circle dimensions */\n size?: RadioSize;\n /** Whether the radio is disabled */\n disabled?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { circle: 16, fontSize: \"sm\" },\n md: { circle: 20, fontSize: \"md\" },\n lg: { circle: 24, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Radio - Radio button component\n *\n * A styled radio component that provides:\n * - Sizes: sm, md (default), lg\n * - Custom styled circle with inner dot\n * - Optional inline label\n * - Disabled state\n * - Focus ring styling\n * - Use name prop to group radios together\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n size = \"md\",\n disabled = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native radio */}\n <input\n type=\"radio\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom visual radio circle */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n rounded=\"full\"\n border=\"thin\"\n borderColor=\"border\"\n flexShrink={0}\n className={styles.circle}\n style={{\n width: sizeProps.circle,\n height: sizeProps.circle,\n }}\n />\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n});\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./switch.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SwitchSize = \"sm\" | \"md\" | \"lg\";\n\nexport type SwitchProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Switch size affecting track and thumb dimensions */\n size?: SwitchSize;\n /** Whether the switch is disabled */\n disabled?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { trackWidth: 32, trackHeight: 18, thumb: 14, fontSize: \"sm\" },\n md: { trackWidth: 40, trackHeight: 22, thumb: 18, fontSize: \"md\" },\n lg: { trackWidth: 48, trackHeight: 26, thumb: 22, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Switch - Toggle switch component\n *\n * A styled switch component that provides:\n * - Sizes: sm, md (default), lg\n * - Sliding thumb animation\n * - Optional inline label\n * - Disabled state\n * - Focus ring styling\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n {\n size = \"md\",\n disabled = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native checkbox with switch role */}\n <input\n type=\"checkbox\"\n role=\"switch\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom track */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n rounded=\"full\"\n flexShrink={0}\n className={styles.track}\n style={\n {\n width: sizeProps.trackWidth,\n height: sizeProps.trackHeight,\n \"--switch-thumb-size\": `${sizeProps.thumb}px`,\n \"--switch-track-width\": `${sizeProps.trackWidth}px`,\n } as React.CSSProperties\n }\n >\n {/* Thumb */}\n <Box\n as=\"span\"\n rounded=\"full\"\n bg=\"background\"\n className={styles.thumb}\n style={{\n width: sizeProps.thumb,\n height: sizeProps.thumb,\n }}\n />\n </Box>\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n});\n","import { type ReactNode, useId, cloneElement, isValidElement, Children } from \"react\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Label } from \"@/components/Label/Label\";\nimport { VStack } from \"@/components/VStack/VStack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type FormFieldProps = {\n /** Label text displayed above the control */\n label: string;\n /** Helper text displayed below the control (hidden when isInvalid) */\n helperText?: string;\n /** Error message displayed when isInvalid (replaces helperText) */\n errorMessage?: string;\n /** Whether the field is required (shows asterisk) */\n isRequired?: boolean;\n /** Whether the field is in an invalid state */\n isInvalid?: boolean;\n /** Whether the field is disabled */\n disabled?: boolean;\n /** Custom ID for the field (auto-generated if not provided) */\n id?: string;\n /** The form control to render */\n children: ReactNode;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * FormField - Form field wrapper component\n *\n * A composition component that provides:\n * - Label with required indicator\n * - Helper text for descriptions\n * - Error message for validation\n * - State propagation to child controls (isInvalid, disabled)\n * - Accessible aria-describedby linking\n */\nexport function FormField({\n label,\n helperText,\n errorMessage,\n isRequired = false,\n isInvalid = false,\n disabled = false,\n id: providedId,\n children,\n}: FormFieldProps) {\n // Generate ID for accessibility linking\n const generatedId = useId();\n const fieldId = providedId || generatedId;\n const helperId = `${fieldId}-helper`;\n\n // Determine which message to show\n const showError = isInvalid && errorMessage;\n const message = showError ? errorMessage : helperText;\n const hasMessage = Boolean(message);\n\n // Clone child to pass props and aria attributes\n const enhancedChild = Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return cloneElement(child as React.ReactElement<any>, {\n id: fieldId,\n isInvalid,\n disabled,\n \"aria-describedby\": hasMessage ? helperId : undefined,\n \"aria-invalid\": isInvalid || undefined,\n });\n });\n\n return (\n <VStack gap={1} align=\"stretch\">\n {/* Label */}\n <Label htmlFor={fieldId} required={isRequired}>\n {label}\n </Label>\n\n {/* Form control */}\n {enhancedChild}\n\n {/* Helper text or error message */}\n {hasMessage && (\n <Box\n as=\"span\"\n id={helperId}\n fontSize=\"sm\"\n color={showError ? \"error\" : \"foreground-muted\"}\n >\n {message}\n </Box>\n )}\n </VStack>\n );\n}\n","import { forwardRef, type CSSProperties, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Spinner } from \"@/components/Spinner/Spinner\";\nimport styles from \"./iconbutton.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type IconButtonProps = {\n /** The icon to display */\n icon: ReactNode;\n /** Accessible label (required for screen readers) */\n \"aria-label\": string;\n /** Visual variant */\n variant?: IconButtonVariant;\n /** Size of the button */\n size?: IconButtonSize;\n /** Color scheme */\n colorScheme?: IconButtonColorScheme;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Whether to show loading spinner */\n loading?: boolean;\n /** Additional class name */\n className?: string;\n /** Click handler */\n onClick?: () => void;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { dimension: \"28px\", iconSize: \"14px\", fontSize: \"sm\" },\n md: { dimension: \"36px\", iconSize: \"18px\", fontSize: \"md\" },\n lg: { dimension: \"44px\", iconSize: \"22px\", fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n borderColor: string | undefined;\n hoverBg: string;\n};\n\nfunction getColorConfig(\n variant: IconButtonVariant,\n colorScheme: IconButtonColorScheme\n): ColorConfig {\n switch (variant) {\n case \"solid\":\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-emphasis)`,\n };\n case \"outline\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: colorScheme,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n case \"ghost\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n }\n}\n\n// ============================================================================\n// Variant border configurations\n// ============================================================================\n\nconst variantBorderConfig = {\n solid: \"none\",\n outline: \"thin\",\n ghost: \"none\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * IconButton - Icon-only button component\n *\n * A compact button for icons that provides:\n * - Square sizing for icon-only use\n * - All Button variants (solid, outline, ghost)\n * - All color schemes\n * - Loading state with spinner\n * - Required aria-label for accessibility\n */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(\n {\n icon,\n \"aria-label\": ariaLabel,\n variant = \"solid\",\n size = \"md\",\n colorScheme = \"primary\",\n disabled = false,\n loading = false,\n className,\n onClick,\n ...rest\n },\n ref\n ) {\n const isDisabled = disabled || loading;\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"button\"\n ref={ref}\n // Layout\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n // Size (square)\n w={sizeProps.dimension}\n h={sizeProps.dimension}\n fontSize={sizeProps.fontSize}\n rounded=\"md\"\n // Colors (type assertions for computed values)\n bg={colorConfig.bg as any}\n color={colorConfig.color as any}\n border={variantBorderConfig[variant]}\n borderColor={colorConfig.borderColor as any}\n // Interaction states\n cursor={isDisabled ? \"not-allowed\" : \"pointer\"}\n pointerEvents={isDisabled ? \"none\" : undefined}\n opacity={isDisabled ? \"faint\" : undefined}\n // CSS module styles\n className={clsx(styles.iconButton, styles[variant], className)}\n // Hover color via CSS variable\n style={{ \"--iconbutton-hover-bg\": colorConfig.hoverBg } as CSSProperties}\n // Accessibility\n aria-label={ariaLabel}\n disabled={isDisabled}\n aria-disabled={isDisabled}\n aria-busy={loading}\n onClick={onClick}\n {...rest}\n >\n {loading ? (\n <Spinner size=\"sm\" aria-hidden=\"true\" />\n ) : (\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" aria-hidden=\"true\">\n {icon}\n </Box>\n )}\n </Box>\n );\n }\n);\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { HStack } from \"@/components/HStack/HStack\";\nimport { VStack } from \"@/components/VStack/VStack\";\nimport styles from \"./alert.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AlertStatus = \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport type AlertProps = {\n /** Status determines colors and default icon */\n status?: AlertStatus;\n /** Optional title displayed above description */\n title?: ReactNode;\n /** Description content */\n children?: ReactNode;\n /** Custom icon (overrides default per-status icon) */\n icon?: ReactNode;\n /** Callback when close button is clicked (omit to hide close button) */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Default icons per status (simple SVG)\n// ============================================================================\n\nconst defaultIcons: Record<AlertStatus, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n};\n\n// ============================================================================\n// Close button icon\n// ============================================================================\n\nconst CloseIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L8 6.586l2.293-2.293a1 1 0 111.414 1.414L9.414 8l2.293 2.293a1 1 0 01-1.414 1.414L8 9.414l-2.293 2.293a1 1 0 01-1.414-1.414L6.586 8 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Alert - Status notification banner\n *\n * A contextual feedback component that provides:\n * - Four status variants: success, warning, error, info\n * - Optional title and description\n * - Default icons per status (customizable)\n * - Optional close button\n * - Accessible with role=\"alert\"\n */\nexport function Alert({\n status = \"info\",\n title,\n children,\n icon,\n onClose,\n className,\n}: AlertProps) {\n const displayIcon = icon ?? defaultIcons[status];\n\n return (\n <Box\n role=\"alert\"\n p={4}\n rounded=\"md\"\n bg={`${status}-subtle` as any}\n className={clsx(styles.alert, styles[status], className)}\n >\n <HStack gap={3} align=\"start\">\n {/* Icon */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n color={status as any}\n aria-hidden=\"true\"\n >\n {displayIcon}\n </Box>\n\n {/* Content */}\n <VStack gap={1} flexGrow={1}>\n {title && (\n <Box as=\"span\" fontWeight=\"semibold\" color=\"foreground\">\n {title}\n </Box>\n )}\n {children && (\n <Box as=\"span\" color=\"foreground-muted\" fontSize=\"sm\">\n {children}\n </Box>\n )}\n </VStack>\n\n {/* Close button */}\n {onClose && (\n <Box\n as=\"button\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n p={1}\n rounded=\"sm\"\n bg=\"transparent\"\n color=\"foreground-muted\"\n cursor=\"pointer\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Dismiss\"\n >\n {CloseIcon}\n </Box>\n )}\n </HStack>\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./badge.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type BadgeColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"gray\";\n\nexport type BadgeVariant = \"solid\" | \"subtle\";\nexport type BadgeSize = \"sm\" | \"md\";\n\nexport type BadgeProps = {\n /** Color scheme */\n colorScheme?: BadgeColorScheme;\n /** Visual variant */\n variant?: BadgeVariant;\n /** Size */\n size?: BadgeSize;\n /** Badge content */\n children?: ReactNode;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { fontSize: \"xs\", px: 1.5, py: 0.5 },\n md: { fontSize: \"sm\", px: 2, py: 0.5 },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n};\n\nfunction getColorConfig(\n variant: BadgeVariant,\n colorScheme: BadgeColorScheme\n): ColorConfig {\n // Handle \"gray\" colorScheme specially since it uses different token names\n if (colorScheme === \"gray\") {\n if (variant === \"solid\") {\n return {\n bg: \"foreground\",\n color: \"foreground-inverted\",\n };\n }\n return {\n bg: \"surface\",\n color: \"foreground-muted\",\n };\n }\n\n if (variant === \"solid\") {\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n };\n }\n\n return {\n bg: `${colorScheme}-subtle`,\n color: colorScheme,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Badge - Small status indicator\n *\n * A compact label component for displaying:\n * - Counts and numbers\n * - Status indicators\n * - Categories and tags\n *\n * Features:\n * - 7 color schemes: primary, accent, success, warning, error, info, gray\n * - 2 variants: solid (bold) and subtle (muted)\n * - 2 sizes: sm and md\n * - Pill shape (fully rounded)\n */\nexport function Badge({\n colorScheme = \"gray\",\n variant = \"subtle\",\n size = \"md\",\n children,\n className,\n}: BadgeProps) {\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n px={sizeProps.px}\n py={sizeProps.py}\n fontSize={sizeProps.fontSize}\n fontWeight=\"medium\"\n lineHeight=\"tight\"\n rounded=\"full\"\n bg={colorConfig.bg as any}\n color={colorConfig.color as any}\n className={clsx(styles.badge, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./progress.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ProgressColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type ProgressSize = \"sm\" | \"md\" | \"lg\";\n\nexport type ProgressProps = {\n /** Progress value (0-100) */\n value?: number;\n /** Maximum value (default 100) */\n max?: number;\n /** Color scheme */\n colorScheme?: ProgressColorScheme;\n /** Size */\n size?: ProgressSize;\n /** Indeterminate mode (loading without known progress) */\n isIndeterminate?: boolean;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: \"4px\",\n md: \"8px\",\n lg: \"12px\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Progress - Progress bar indicator\n *\n * A visual indicator of completion progress:\n * - Value-based: shows percentage complete\n * - Indeterminate: animated loading state\n *\n * Features:\n * - 6 color schemes\n * - 3 sizes (sm, md, lg)\n * - Accessible with role=\"progressbar\" and ARIA attributes\n */\nexport function Progress({\n value = 0,\n max = 100,\n colorScheme = \"primary\",\n size = \"md\",\n isIndeterminate = false,\n className,\n}: ProgressProps) {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n const height = sizeConfig[size];\n\n return (\n <Box\n role=\"progressbar\"\n aria-valuenow={isIndeterminate ? undefined : value}\n aria-valuemin={0}\n aria-valuemax={max}\n position=\"relative\"\n overflow=\"hidden\"\n rounded=\"full\"\n bg=\"surface\"\n className={clsx(styles.track, className)}\n style={{ \"--progress-height\": height } as CSSProperties}\n >\n <Box\n position=\"absolute\"\n inset={0}\n rounded=\"full\"\n bg={`${colorScheme}-default` as any}\n className={clsx(\n styles.fill,\n isIndeterminate && styles.indeterminate\n )}\n style={\n isIndeterminate\n ? undefined\n : ({ \"--progress-width\": `${percentage}%` } as CSSProperties)\n }\n />\n </Box>\n );\n}\n","import { type ReactNode, type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport type { RoundedValue } from \"@/components/Box/roundness/roundness\";\nimport styles from \"./skeleton.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SkeletonProps = {\n /** Width (CSS value) */\n w?: string;\n /** Height (CSS value) */\n h?: string;\n /** Border radius */\n rounded?: RoundedValue;\n /** When true, shows children instead of skeleton */\n isLoaded?: boolean;\n /** Content to show when loaded */\n children?: ReactNode;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Skeleton - Loading placeholder\n *\n * A shimmer animation placeholder for content:\n * - Shows animated skeleton when loading\n * - Reveals children when isLoaded is true\n *\n * Features:\n * - Configurable width and height\n * - Rounded corners\n * - Shimmer animation\n */\nexport function Skeleton({\n w,\n h,\n rounded = \"md\",\n isLoaded = false,\n children,\n className,\n}: SkeletonProps) {\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <Box\n display=\"inline-block\"\n position=\"relative\"\n overflow=\"hidden\"\n rounded={rounded}\n bg=\"surface\"\n className={clsx(styles.skeleton, className)}\n style={\n {\n \"--skeleton-width\": w,\n \"--skeleton-height\": h,\n } as CSSProperties\n }\n aria-hidden=\"true\"\n />\n );\n}\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./avatar.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type AvatarProps = {\n /** Image source URL */\n src?: string;\n /** Name for generating initials fallback */\n name?: string;\n /** Size variant */\n size?: AvatarSize;\n /** Border radius */\n rounded?: \"full\" | \"md\";\n /** Alt text for image */\n alt?: string;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { dimension: \"32px\", fontSize: \"xs\" },\n md: { dimension: \"40px\", fontSize: \"sm\" },\n lg: { dimension: \"48px\", fontSize: \"md\" },\n xl: { dimension: \"64px\", fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/);\n if (words.length === 0) return \"\";\n if (words.length === 1) return words[0].charAt(0).toUpperCase();\n return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Avatar - User/entity display\n *\n * A circular or rounded avatar component:\n * - Shows image when src is provided\n * - Falls back to initials from name\n * - Falls back to generic placeholder if neither\n *\n * Features:\n * - 4 sizes: sm (32px), md (40px), lg (48px), xl (64px)\n * - 2 rounded variants: full (circle), md (rounded corners)\n * - Graceful image loading with error fallback\n */\nexport function Avatar({\n src,\n name,\n size = \"md\",\n rounded = \"full\",\n alt,\n className,\n}: AvatarProps) {\n const [hasError, setHasError] = useState(false);\n const sizeProps = sizeConfig[size];\n const showImage = src && !hasError;\n const initials = name ? getInitials(name) : \"\";\n\n return (\n <Box\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n overflow=\"hidden\"\n rounded={rounded}\n bg=\"primary-subtle\"\n color=\"primary\"\n fontWeight=\"medium\"\n fontSize={sizeProps.fontSize}\n className={clsx(styles.avatar, className)}\n style={{\n width: sizeProps.dimension,\n height: sizeProps.dimension,\n }}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt || name || \"Avatar\"}\n className={styles.image}\n onError={() => setHasError(true)}\n />\n ) : initials ? (\n <span>{initials}</span>\n ) : (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={styles.placeholder}\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport type { ShadowValue } from \"@/components/Box/shadows/shadows\";\nimport styles from \"./card.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type CardProps = {\n /** Shadow level */\n shadow?: ShadowValue;\n /** Additional class name */\n className?: string;\n /** Card content */\n children?: ReactNode;\n};\n\nexport type CardHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type CardBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\nexport type CardFooterProps = {\n /** Additional class name */\n className?: string;\n /** Footer content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Card - Content container\n *\n * A flexible content container with:\n * - Surface background with border\n * - Optional shadow elevation\n * - Composable Header/Body/Footer sections\n */\nexport function Card({\n shadow = \"sm\",\n className,\n children,\n}: CardProps) {\n return (\n <Box\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n overflow=\"hidden\"\n shadow={shadow}\n className={clsx(styles.card, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * CardHeader - Optional header section\n *\n * Use inside Card for header content with bottom border.\n */\nexport function CardHeader({ className, children }: CardHeaderProps) {\n return (\n <Box\n px={4}\n py={3}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.cardHeader, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * CardBody - Main content section\n *\n * Use inside Card for main content with padding.\n */\nexport function CardBody({ className, children }: CardBodyProps) {\n return (\n <Box p={4} className={clsx(styles.cardBody, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * CardFooter - Optional footer section\n *\n * Use inside Card for footer content with top border.\n */\nexport function CardFooter({ className, children }: CardFooterProps) {\n return (\n <Box\n px={4}\n py={3}\n borderTop=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.cardFooter, className)}\n >\n {children}\n </Box>\n );\n}\n","import { useState, type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Skeleton } from \"@/components/Skeleton/Skeleton\";\nimport type { RoundedValue } from \"@/components/Box/roundness/roundness\";\nimport styles from \"./image.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ImageObjectFit = \"cover\" | \"contain\" | \"fill\" | \"none\";\n\nexport type ImageProps = {\n /** Image source URL */\n src: string;\n /** Alt text (required for accessibility) */\n alt: string;\n /** Width (CSS value) */\n w?: string;\n /** Height (CSS value) */\n h?: string;\n /** Object fit behavior */\n objectFit?: ImageObjectFit;\n /** Fallback source if main image fails */\n fallbackSrc?: string;\n /** Border radius */\n rounded?: RoundedValue;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Image - Enhanced img element\n *\n * An image component with:\n * - Loading state with Skeleton placeholder\n * - Error fallback support\n * - Object-fit options\n * - Rounded corner variants\n */\nexport function Image({\n src,\n alt,\n w,\n h,\n objectFit = \"cover\",\n fallbackSrc,\n rounded = \"none\",\n className,\n}: ImageProps) {\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [currentSrc, setCurrentSrc] = useState(src);\n\n const handleLoad = () => {\n setIsLoading(false);\n };\n\n const handleError = () => {\n if (fallbackSrc && currentSrc !== fallbackSrc) {\n setCurrentSrc(fallbackSrc);\n setIsLoading(true);\n } else {\n setIsLoading(false);\n setHasError(true);\n }\n };\n\n const style: CSSProperties = {\n width: w,\n height: h,\n };\n\n if (hasError) {\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n bg=\"surface\"\n color=\"foreground-muted\"\n rounded={rounded}\n className={clsx(styles.placeholder, className)}\n style={style}\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={styles.placeholderIcon}\n >\n <path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\" />\n </svg>\n </Box>\n );\n }\n\n return (\n <Box\n position=\"relative\"\n display=\"inline-block\"\n overflow=\"hidden\"\n rounded={rounded}\n className={clsx(styles.container, className)}\n style={style}\n >\n {isLoading && (\n <Skeleton\n w=\"100%\"\n h=\"100%\"\n rounded={rounded}\n className={styles.skeleton}\n />\n )}\n <img\n src={currentSrc}\n alt={alt}\n onLoad={handleLoad}\n onError={handleError}\n className={clsx(\n styles.image,\n styles[objectFit],\n isLoading && styles.hidden\n )}\n />\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./list.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ListStyleType = \"none\" | \"disc\" | \"decimal\";\n\nexport type ListProps = {\n /** List element type */\n as?: \"ul\" | \"ol\";\n /** List style type */\n styleType?: ListStyleType;\n /** Spacing between items (gap multiplier) */\n spacing?: number;\n /** Additional class name */\n className?: string;\n /** List items */\n children?: ReactNode;\n};\n\nexport type ListItemProps = {\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\nexport type ListIconProps = {\n /** Additional class name */\n className?: string;\n /** Icon content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * List - Semantic list container\n *\n * A list component supporting:\n * - Unordered (ul) or ordered (ol) lists\n * - Various list style types\n * - Configurable spacing between items\n */\nexport function List({\n as = \"ul\",\n styleType,\n spacing = 0,\n className,\n children,\n}: ListProps) {\n const defaultStyleType = as === \"ol\" ? \"decimal\" : \"none\";\n const actualStyleType = styleType ?? defaultStyleType;\n\n return (\n <Box\n as={as}\n display=\"flex\"\n flexDirection=\"column\"\n gap={spacing}\n className={clsx(styles.list, styles[actualStyleType], className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * ListItem - Individual list item\n *\n * Use inside List for semantic list items.\n */\nexport function ListItem({ className, children }: ListItemProps) {\n return (\n <Box as=\"li\" display=\"flex\" alignItems=\"center\" className={clsx(styles.listItem, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * ListIcon - Icon prefix for list items\n *\n * Use inside ListItem to add an icon before content.\n */\nexport function ListIcon({ className, children }: ListIconProps) {\n return (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n mr={2}\n color=\"primary\"\n className={clsx(styles.listIcon, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./link.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type LinkVariant = \"default\" | \"underline\" | \"subtle\";\n\nexport type LinkOwnProps = Omit<BoxOwnProps, \"as\"> & {\n /** Visual variant */\n variant?: LinkVariant;\n /** External link (opens in new tab) */\n external?: boolean;\n /** Link content */\n children?: ReactNode;\n};\n\nexport type LinkProps<T extends ElementType = \"a\"> = Polymorphic<T, LinkOwnProps>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Link - Styled anchor element\n *\n * A polymorphic link component that provides:\n * - Default element: <a>\n * - Variants: default (underline on hover), underline (always), subtle (inherits color)\n * - External link support with target=\"_blank\"\n * - Router support via as prop\n */\nexport function Link<T extends ElementType = \"a\">({\n as,\n variant = \"default\",\n external = false,\n children,\n className,\n ...rest\n}: LinkProps<T>) {\n const Component = as || \"a\";\n\n const externalProps = external\n ? {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n }\n : {};\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n color={variant === \"subtle\" ? undefined : \"primary\"}\n cursor=\"pointer\"\n className={clsx(styles.link, styles[variant], className)}\n {...externalProps}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ReactNode, createContext, useContext, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./tabs.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype TabsContextValue = {\n activeIndex: number;\n setActiveIndex: (index: number) => void;\n};\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tab components must be used within Tabs\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TabsVariant = \"line\" | \"enclosed\";\n\nexport type TabsProps = {\n /** Default active tab index */\n defaultIndex?: number;\n /** Controlled active index */\n index?: number;\n /** Callback when tab changes */\n onChange?: (index: number) => void;\n /** Visual variant */\n variant?: TabsVariant;\n /** Additional class name */\n className?: string;\n /** Tab components */\n children?: ReactNode;\n};\n\nexport type TabListProps = {\n /** Additional class name */\n className?: string;\n /** Tab buttons */\n children?: ReactNode;\n};\n\nexport type TabProps = {\n /** Tab index (set automatically or manually) */\n index?: number;\n /** Disabled state */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Tab label */\n children?: ReactNode;\n};\n\nexport type TabPanelProps = {\n /** Panel index (set automatically or manually) */\n index?: number;\n /** Additional class name */\n className?: string;\n /** Panel content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Tabs - Tab container with state management\n *\n * Provides context for Tab and TabPanel components.\n * Supports controlled (index prop) and uncontrolled (defaultIndex) modes.\n */\nexport function Tabs({\n defaultIndex = 0,\n index,\n onChange,\n variant = \"line\",\n className,\n children,\n}: TabsProps) {\n const [internalIndex, setInternalIndex] = useState(defaultIndex);\n const activeIndex = index ?? internalIndex;\n\n const setActiveIndex = (newIndex: number) => {\n if (index === undefined) setInternalIndex(newIndex);\n onChange?.(newIndex);\n };\n\n return (\n <TabsContext.Provider value={{ activeIndex, setActiveIndex }}>\n <Box className={clsx(styles.tabs, styles[variant], className)}>\n {children}\n </Box>\n </TabsContext.Provider>\n );\n}\n\n/**\n * TabList - Horizontal container for Tab buttons\n */\nexport function TabList({ className, children }: TabListProps) {\n return (\n <Box\n as=\"div\"\n role=\"tablist\"\n display=\"flex\"\n gap={0}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.tabList, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * Tab - Individual tab button\n */\nexport function Tab({\n index = 0,\n disabled = false,\n className,\n children,\n}: TabProps) {\n const { activeIndex, setActiveIndex } = useTabsContext();\n const isActive = activeIndex === index;\n\n return (\n <Box\n as=\"button\"\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-disabled={disabled}\n disabled={disabled}\n onClick={() => !disabled && setActiveIndex(index)}\n py={2}\n px={4}\n fontSize=\"sm\"\n fontWeight={isActive ? \"medium\" : \"normal\"}\n color={isActive ? \"primary\" : \"foreground-muted\"}\n bg=\"transparent\"\n border=\"none\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.tab, isActive && styles.active, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * TabPanel - Content panel for a tab\n *\n * Only renders when its index matches the active tab.\n */\nexport function TabPanel({ index = 0, className, children }: TabPanelProps) {\n const { activeIndex } = useTabsContext();\n\n if (activeIndex !== index) return null;\n\n return (\n <Box role=\"tabpanel\" p={4} className={clsx(styles.tabPanel, className)}>\n {children}\n </Box>\n );\n}\n","import {\n type ReactNode,\n Children,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./breadcrumb.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type BreadcrumbProps = {\n /** Separator between items */\n separator?: ReactNode;\n /** Additional class name */\n className?: string;\n /** Breadcrumb items */\n children?: ReactNode;\n};\n\nexport type BreadcrumbItemProps = {\n /** Link href (if not current page) */\n href?: string;\n /** Is current page (last item) - set automatically */\n isCurrentPage?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Breadcrumb - Navigation trail container\n *\n * Renders BreadcrumbItem children with separators between them.\n * Automatically marks the last item as current page.\n */\nexport function Breadcrumb({\n separator = \"/\",\n className,\n children,\n}: BreadcrumbProps) {\n const items = Children.toArray(children);\n const lastIndex = items.length - 1;\n\n return (\n <Box\n as=\"nav\"\n aria-label=\"Breadcrumb\"\n className={clsx(styles.breadcrumb, className)}\n >\n <Box as=\"ol\" display=\"flex\" alignItems=\"center\" gap={2} m={0} p={0}>\n {items.map((child, index) => {\n const isLast = index === lastIndex;\n\n return (\n <Box as=\"li\" key={index} display=\"flex\" alignItems=\"center\" gap={2}>\n {isValidElement(child)\n ? cloneElement(\n child as React.ReactElement<BreadcrumbItemProps>,\n {\n isCurrentPage: isLast,\n }\n )\n : child}\n {!isLast && (\n <Box\n as=\"span\"\n color=\"foreground-muted\"\n aria-hidden=\"true\"\n className={styles.separator}\n >\n {separator}\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n </Box>\n );\n}\n\n/**\n * BreadcrumbItem - Individual breadcrumb link or text\n *\n * Renders as a link if href is provided, otherwise as text.\n * The last item is automatically marked as current page.\n */\nexport function BreadcrumbItem({\n href,\n isCurrentPage = false,\n className,\n children,\n}: BreadcrumbItemProps) {\n if (isCurrentPage || !href) {\n return (\n <Box\n as=\"span\"\n color={isCurrentPage ? \"foreground\" : \"foreground-muted\"}\n fontSize=\"sm\"\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={clsx(styles.item, styles.current, className)}\n >\n {children}\n </Box>\n );\n }\n\n return (\n <Box\n as=\"a\"\n href={href}\n color=\"foreground-muted\"\n fontSize=\"sm\"\n className={clsx(styles.item, styles.link, className)}\n >\n {children}\n </Box>\n );\n}\n","import {\n type ReactNode,\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport styles from \"./menu.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype MenuContextValue = {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n buttonRef: React.RefObject<HTMLButtonElement | null>;\n};\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nfunction useMenuContext() {\n const context = useContext(MenuContext);\n if (!context) throw new Error(\"Menu components must be used within Menu\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type MenuProps = {\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when menu opens */\n onOpen?: () => void;\n /** Callback when menu closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Menu components */\n children?: ReactNode;\n};\n\nexport type MenuButtonProps = Omit<ButtonProps<\"button\">, \"as\"> & {\n /** Button content */\n children?: ReactNode;\n};\n\nexport type MenuListProps = {\n /** Additional class name */\n className?: string;\n /** Menu items */\n children?: ReactNode;\n};\n\nexport type MenuItemProps = {\n /** Click handler */\n onClick?: () => void;\n /** Disabled state */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Menu - Dropdown menu container\n *\n * Provides context for MenuButton, MenuList, and MenuItem.\n * Handles open/close state and click-outside behavior.\n * Supports controlled mode via isOpen/onOpen/onClose.\n */\nexport function Menu({\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: MenuProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n\n const handleClick = (e: MouseEvent) => {\n if (buttonRef.current?.contains(e.target as Node)) return;\n setOpen(false);\n };\n\n document.addEventListener(\"click\", handleClick);\n return () => document.removeEventListener(\"click\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen]);\n\n return (\n <MenuContext.Provider value={{ isOpen, setIsOpen: setOpen, buttonRef }}>\n <Box\n position=\"relative\"\n display=\"inline-block\"\n className={clsx(styles.menu, className)}\n >\n {children}\n </Box>\n </MenuContext.Provider>\n );\n}\n\n/**\n * MenuButton - Trigger button for the menu\n *\n * Renders as a Button component with dropdown indicators.\n */\nexport function MenuButton({ children, className, ...rest }: MenuButtonProps) {\n const { isOpen, setIsOpen, buttonRef } = useMenuContext();\n\n return (\n <Button\n ref={buttonRef}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n onClick={() => setIsOpen(!isOpen)}\n className={className}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\n/**\n * MenuList - Dropdown container for menu items\n *\n * Only renders when menu is open.\n */\nexport function MenuList({ className, children }: MenuListProps) {\n const { isOpen } = useMenuContext();\n\n if (!isOpen) return null;\n\n return (\n <Box\n role=\"menu\"\n position=\"absolute\"\n top=\"100%\"\n left={0}\n mt={1}\n py={1}\n minW=\"160px\"\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n shadow=\"md\"\n zIndex=\"dropdown\"\n className={clsx(styles.menuList, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * MenuItem - Individual menu item\n *\n * Closes the menu when clicked (unless disabled).\n */\nexport function MenuItem({\n onClick,\n disabled = false,\n className,\n children,\n}: MenuItemProps) {\n const { setIsOpen } = useMenuContext();\n\n const handleClick = () => {\n if (disabled) return;\n onClick?.();\n setIsOpen(false);\n };\n\n return (\n <Box\n as=\"button\"\n type=\"button\"\n role=\"menuitem\"\n onClick={handleClick}\n disabled={disabled}\n display=\"flex\"\n alignItems=\"center\"\n w=\"100%\"\n py={2}\n px={3}\n fontSize=\"sm\"\n color={disabled ? \"foreground-muted\" : \"foreground\"}\n bg=\"transparent\"\n border=\"none\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n textAlign=\"left\"\n className={clsx(styles.menuItem, disabled && styles.disabled, className)}\n >\n {children}\n </Box>\n );\n}\n","import clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Button } from \"@/components/Button\";\nimport { HStack } from \"@/components/HStack\";\nimport styles from \"./pagination.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PaginationProps = {\n /** Current page (1-indexed) */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Number of sibling pages to show */\n siblings?: number;\n /** Show first/last page buttons */\n showEdges?: boolean;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction range(start: number, end: number): number[] {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\nfunction getPaginationRange(\n page: number,\n totalPages: number,\n siblings: number\n): (number | \"ellipsis\")[] {\n const totalNumbers = siblings * 2 + 3; // siblings on each side + current + 2 edges\n\n if (totalPages <= totalNumbers + 2) {\n return range(1, totalPages);\n }\n\n const leftSiblingIndex = Math.max(page - siblings, 1);\n const rightSiblingIndex = Math.min(page + siblings, totalPages);\n\n const showLeftEllipsis = leftSiblingIndex > 2;\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, 3 + siblings * 2);\n return [...leftRange, \"ellipsis\", totalPages];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = range(totalPages - (2 + siblings * 2), totalPages);\n return [1, \"ellipsis\", ...rightRange];\n }\n\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n return [1, \"ellipsis\", ...middleRange, \"ellipsis\", totalPages];\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Pagination - Page navigation component\n *\n * A pagination component that provides:\n * - Current page indicator\n * - Previous/next buttons\n * - Optional first/last page buttons\n * - Ellipsis for large page ranges\n * - Sibling page configuration\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n siblings = 1,\n showEdges = true,\n className,\n}: PaginationProps) {\n const pages = getPaginationRange(page, totalPages, siblings);\n\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <Box\n as=\"nav\"\n aria-label=\"Pagination\"\n className={clsx(styles.pagination, className)}\n >\n <HStack gap={1}>\n {showEdges && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoPrev}\n onClick={() => onPageChange(1)}\n aria-label=\"First page\"\n >\n ««\n </Button>\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoPrev}\n onClick={() => onPageChange(page - 1)}\n aria-label=\"Previous page\"\n >\n «\n </Button>\n\n {pages.map((p, index) =>\n p === \"ellipsis\" ? (\n <Box\n key={`ellipsis-${index}`}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n px={2}\n color=\"foreground-muted\"\n fontSize=\"sm\"\n >\n …\n </Box>\n ) : (\n <Button\n key={p}\n variant={p === page ? \"solid\" : \"ghost\"}\n size=\"sm\"\n onClick={() => onPageChange(p)}\n aria-label={`Page ${p}`}\n aria-current={p === page ? \"page\" : undefined}\n >\n {p}\n </Button>\n )\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoNext}\n onClick={() => onPageChange(page + 1)}\n aria-label=\"Next page\"\n >\n »\n </Button>\n\n {showEdges && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoNext}\n onClick={() => onPageChange(totalPages)}\n aria-label=\"Last page\"\n >\n »»\n </Button>\n )}\n </HStack>\n </Box>\n );\n}\n","import { type ReactNode, useEffect, useRef, useCallback } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./modal.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ModalProps = {\n /** Whether modal is open */\n isOpen: boolean;\n /** Callback when modal should close */\n onClose: () => void;\n /** Modal size */\n size?: ModalSize;\n /** Close on backdrop click */\n closeOnOverlayClick?: boolean;\n /** Close on Escape key */\n closeOnEsc?: boolean;\n /** Additional class name */\n className?: string;\n /** Modal content */\n children?: ReactNode;\n};\n\nexport type ModalHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type ModalBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\nexport type ModalFooterProps = {\n /** Additional class name */\n className?: string;\n /** Footer content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Size configuration\n// ============================================================================\n\nconst sizeConfig = {\n sm: \"400px\",\n md: \"500px\",\n lg: \"700px\",\n xl: \"900px\",\n full: \"100%\",\n} as const;\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Modal - Dialog overlay component\n *\n * A modal dialog that:\n * - Renders via portal to document.body\n * - Traps focus when open\n * - Prevents body scroll when open\n * - Closes on backdrop click and Escape key\n * - Returns focus after closing\n */\nexport function Modal({\n isOpen,\n onClose,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEsc = true,\n className,\n children,\n}: ModalProps) {\n const modalRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n\n // Store previous focus and focus modal when open\n useEffect(() => {\n if (isOpen) {\n previousFocusRef.current = document.activeElement as HTMLElement;\n modalRef.current?.focus();\n } else if (previousFocusRef.current) {\n previousFocusRef.current.focus();\n }\n }, [isOpen]);\n\n // Handle Escape key\n useEffect(() => {\n if (!isOpen || !closeOnEsc) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n // Prevent body scroll when modal is open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"\";\n }\n return () => {\n document.body.style.overflow = \"\";\n };\n }, [isOpen]);\n\n const handleOverlayClick = useCallback(\n (e: React.MouseEvent) => {\n if (closeOnOverlayClick && e.target === e.currentTarget) {\n onClose();\n }\n },\n [closeOnOverlayClick, onClose]\n );\n\n if (!isOpen) return null;\n\n return createPortal(\n <Box\n className={clsx(styles.overlay, className)}\n onClick={handleOverlayClick}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <Box\n ref={modalRef}\n tabIndex={-1}\n bg=\"surface\"\n rounded={size === \"full\" ? \"none\" : \"lg\"}\n shadow=\"lg\"\n maxH={size === \"full\" ? \"100vh\" : \"90vh\"}\n overflow=\"auto\"\n className={styles.modal}\n style={{\n width: sizeConfig[size],\n maxWidth: size === \"full\" ? \"100%\" : \"calc(100% - 2rem)\",\n }}\n >\n {children}\n </Box>\n </Box>,\n document.body\n );\n}\n\n/**\n * ModalHeader - Header section for modal\n */\nexport function ModalHeader({ className, children }: ModalHeaderProps) {\n return (\n <Box\n px={6}\n py={4}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.header, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * ModalBody - Body section for modal\n */\nexport function ModalBody({ className, children }: ModalBodyProps) {\n return (\n <Box px={6} py={4} className={clsx(styles.body, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * ModalFooter - Footer section for modal\n */\nexport function ModalFooter({ className, children }: ModalFooterProps) {\n return (\n <Box\n px={6}\n py={4}\n borderTop=\"thin\"\n borderColor=\"border\"\n display=\"flex\"\n justifyContent=\"end\"\n gap={2}\n className={clsx(styles.footer, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type ReactNode, useState, useRef, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./tooltip.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TooltipPlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type TooltipProps = {\n /** Tooltip content */\n label: ReactNode;\n /** Placement of tooltip */\n placement?: TooltipPlacement;\n /** Delay before showing (ms) */\n openDelay?: number;\n /** Delay before hiding (ms) */\n closeDelay?: number;\n /** Whether tooltip is disabled */\n disabled?: boolean;\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when tooltip opens */\n onOpen?: () => void;\n /** Callback when tooltip closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Trigger element */\n children: ReactNode;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Tooltip - Hover-triggered information overlay\n *\n * A tooltip component that:\n * - Shows on hover and focus\n * - Positions relative to trigger element\n * - Supports configurable delays\n * - Supports controlled mode via isOpen/onOpen/onClose\n * - Renders via portal\n */\nexport function Tooltip({\n label,\n placement = \"top\",\n openDelay = 0,\n closeDelay = 0,\n disabled = false,\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: TooltipProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const triggerRef = useRef<HTMLElement>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const openTimeoutRef = useRef<number | null>(null);\n const closeTimeoutRef = useRef<number | null>(null);\n\n const updatePosition = () => {\n if (!triggerRef.current || !tooltipRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (placement) {\n case \"top\":\n top = triggerRect.top - tooltipRect.height - gap;\n left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap;\n left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2;\n break;\n case \"left\":\n top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2;\n left = triggerRect.left - tooltipRect.width - gap;\n break;\n case \"right\":\n top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2;\n left = triggerRect.right + gap;\n break;\n }\n\n setPosition({ top: top + window.scrollY, left: left + window.scrollX });\n };\n\n useEffect(() => {\n if (isOpen) updatePosition();\n }, [isOpen, placement]);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n const handleOpen = () => {\n if (disabled) return;\n if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);\n\n if (openDelay > 0) {\n openTimeoutRef.current = window.setTimeout(() => setOpen(true), openDelay);\n } else {\n setOpen(true);\n }\n };\n\n const handleClose = () => {\n if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current);\n\n if (closeDelay > 0) {\n closeTimeoutRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n } else {\n setOpen(false);\n }\n };\n\n useEffect(() => {\n return () => {\n if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current);\n if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);\n };\n }, []);\n\n return (\n <>\n <Box\n as=\"span\"\n ref={triggerRef}\n display=\"inline-block\"\n onMouseEnter={handleOpen}\n onMouseLeave={handleClose}\n onFocus={handleOpen}\n onBlur={handleClose}\n >\n {children}\n </Box>\n {isOpen &&\n createPortal(\n <Box\n ref={tooltipRef}\n position=\"absolute\"\n px={2}\n py={1}\n bg=\"foreground\"\n color=\"foreground-inverted\"\n fontSize=\"sm\"\n rounded=\"sm\"\n shadow=\"md\"\n zIndex=\"tooltip\"\n className={clsx(styles.tooltip, styles[placement], className)}\n style={{ top: position.top, left: position.left }}\n role=\"tooltip\"\n >\n {label}\n </Box>,\n document.body\n )}\n </>\n );\n}\n","import { type ReactNode, useState, useRef, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./popover.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PopoverPlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type PopoverProps = {\n /** Popover content */\n content: ReactNode;\n /** Placement of popover */\n placement?: PopoverPlacement;\n /** Close on outside click */\n closeOnBlur?: boolean;\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when popover opens */\n onOpen?: () => void;\n /** Callback when popover closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Trigger element */\n children: ReactNode;\n};\n\nexport type PopoverHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type PopoverBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Popover - Click-triggered overlay with positioning\n *\n * A popover component that:\n * - Toggles on click\n * - Positions relative to trigger\n * - Closes on outside click and Escape\n * - Supports controlled mode via isOpen/onOpen/onClose\n * - Renders via portal\n */\nexport function Popover({\n content,\n placement = \"bottom\",\n closeOnBlur = true,\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: PopoverProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const triggerRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n const updatePosition = () => {\n if (!triggerRef.current || !popoverRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const popoverRect = popoverRef.current.getBoundingClientRect();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (placement) {\n case \"top\":\n top = triggerRect.top - popoverRect.height - gap;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case \"left\":\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - gap;\n break;\n case \"right\":\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + gap;\n break;\n }\n\n setPosition({ top: top + window.scrollY, left: left + window.scrollX });\n };\n\n useEffect(() => {\n if (isOpen) updatePosition();\n }, [isOpen, placement]);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen || !closeOnBlur) return;\n\n const handleClick = (e: MouseEvent) => {\n if (\n triggerRef.current?.contains(e.target as Node) ||\n popoverRef.current?.contains(e.target as Node)\n )\n return;\n setOpen(false);\n };\n\n document.addEventListener(\"click\", handleClick);\n return () => document.removeEventListener(\"click\", handleClick);\n }, [isOpen, closeOnBlur]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n setOpen(!isOpen);\n };\n\n return (\n <>\n <Box\n as=\"span\"\n ref={triggerRef}\n display=\"inline-block\"\n onClick={handleTriggerClick}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n cursor=\"pointer\"\n >\n {children}\n </Box>\n {isOpen &&\n createPortal(\n <Box\n ref={popoverRef}\n position=\"absolute\"\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n shadow=\"lg\"\n zIndex=\"dropdown\"\n minW=\"200px\"\n className={clsx(styles.popover, className)}\n style={{ top: position.top, left: position.left }}\n role=\"dialog\"\n >\n {content}\n </Box>,\n document.body\n )}\n </>\n );\n}\n\n/**\n * PopoverHeader - Header section for popover\n */\nexport function PopoverHeader({ className, children }: PopoverHeaderProps) {\n return (\n <Box\n px={4}\n py={3}\n borderBottom=\"thin\"\n borderColor=\"border\"\n fontWeight=\"medium\"\n className={clsx(styles.header, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * PopoverBody - Body section for popover\n */\nexport function PopoverBody({ className, children }: PopoverBodyProps) {\n return (\n <Box px={4} py={3} className={clsx(styles.body, className)}>\n {children}\n </Box>\n );\n}\n","import { type ReactNode, createContext, useContext, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./accordion.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype AccordionContextValue = {\n expandedIndex: number | number[] | null;\n toggleIndex: (index: number) => void;\n allowMultiple: boolean;\n};\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = useContext(AccordionContext);\n if (!context)\n throw new Error(\"AccordionItem must be used within Accordion\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AccordionProps = {\n /** Default expanded index(es) */\n defaultIndex?: number | number[];\n /** Allow multiple items expanded */\n allowMultiple?: boolean;\n /** Additional class name */\n className?: string;\n /** Accordion items */\n children?: ReactNode;\n};\n\nexport type AccordionItemProps = {\n /** Item index (set manually) */\n index: number;\n /** Item title */\n title: ReactNode;\n /** Whether disabled */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Accordion - Collapsible sections container\n *\n * An accordion component that:\n * - Supports single or multiple expanded items\n * - Uses context for state management\n * - Animated expand/collapse\n */\nexport function Accordion({\n defaultIndex,\n allowMultiple = false,\n className,\n children,\n}: AccordionProps) {\n const [expandedIndex, setExpandedIndex] = useState<\n number | number[] | null\n >(defaultIndex ?? (allowMultiple ? [] : null));\n\n const toggleIndex = (index: number) => {\n if (allowMultiple) {\n const current = (expandedIndex as number[]) || [];\n const newExpanded = current.includes(index)\n ? current.filter((i) => i !== index)\n : [...current, index];\n setExpandedIndex(newExpanded);\n } else {\n setExpandedIndex(expandedIndex === index ? null : index);\n }\n };\n\n return (\n <AccordionContext.Provider\n value={{ expandedIndex, toggleIndex, allowMultiple }}\n >\n <Box\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n overflow=\"hidden\"\n className={clsx(styles.accordion, className)}\n >\n {children}\n </Box>\n </AccordionContext.Provider>\n );\n}\n\n/**\n * AccordionItem - Individual collapsible section\n */\nexport function AccordionItem({\n index,\n title,\n disabled = false,\n className,\n children,\n}: AccordionItemProps) {\n const { expandedIndex, toggleIndex, allowMultiple } = useAccordionContext();\n\n const isExpanded = allowMultiple\n ? ((expandedIndex as number[]) || []).includes(index)\n : expandedIndex === index;\n\n return (\n <Box\n className={clsx(\n styles.item,\n isExpanded && styles.expanded,\n disabled && styles.disabled,\n className\n )}\n >\n <Box\n as=\"button\"\n type=\"button\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n w=\"100%\"\n p={4}\n bg=\"transparent\"\n border=\"none\"\n borderBottom={isExpanded ? \"thin\" : \"none\"}\n borderColor=\"border\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n onClick={() => !disabled && toggleIndex(index)}\n aria-expanded={isExpanded}\n aria-disabled={disabled}\n className={styles.button}\n >\n <Box fontWeight=\"medium\">{title}</Box>\n <Box\n as=\"span\"\n className={clsx(styles.icon, isExpanded && styles.rotated)}\n >\n ▾\n </Box>\n </Box>\n {isExpanded && (\n <Box p={4} className={styles.content}>\n {children}\n </Box>\n )}\n </Box>\n );\n}\n","import \"./styles/styles.css\";\n// Must be imported dynamically to split CSS into multiple files\nimport(\"./styles/fonts.css\");\n\n// Type utilities\nexport type { Polymorphic } from \"./types/Polymorphic\";\nexport type {\n ResponsiveValue,\n ResponsiveObject,\n FullResponsiveObject,\n} from \"./utils/breakpoints\";\n\nexport { Box, type BoxOwnProps, type BoxProps } from \"./components/Box/Box\";\nexport { Text } from \"./components/Text\";\nexport { Heading } from \"./components/Heading\";\nexport {\n Button,\n type ButtonColorScheme,\n type ButtonVariant,\n type ButtonSize,\n type ButtonProps,\n} from \"./components/Button\";\nexport { Spinner } from \"./components/Spinner\";\nexport { Stack, type StackProps, type StackOwnProps } from \"./components/Stack\";\nexport { HStack, type HStackProps, type HStackOwnProps } from \"./components/HStack\";\nexport { VStack, type VStackProps, type VStackOwnProps } from \"./components/VStack\";\nexport { Flex, type FlexProps, type FlexOwnProps } from \"./components/Flex\";\nexport { Grid, type GridProps, type GridOwnProps } from \"./components/Grid\";\nexport {\n Container,\n type ContainerSize,\n type ContainerProps,\n type ContainerOwnProps,\n} from \"./components/Container\";\nexport {\n Divider,\n type DividerColor,\n type DividerProps,\n type DividerOwnProps,\n} from \"./components/Divider\";\nexport { Spacer, type SpacerProps, type SpacerOwnProps } from \"./components/Spacer\";\nexport {\n Code,\n type CodeVariant,\n type CodeProps,\n type CodeOwnProps,\n} from \"./components/Code\";\nexport {\n Input,\n type InputSize,\n type InputVariant,\n type InputProps,\n type InputOwnProps,\n} from \"./components/Input\";\nexport { Label, type LabelProps, type LabelOwnProps } from \"./components/Label\";\nexport {\n Textarea,\n type TextareaSize,\n type TextareaVariant,\n type TextareaResize,\n type TextareaProps,\n type TextareaOwnProps,\n} from \"./components/Textarea\";\nexport {\n Select,\n type SelectSize,\n type SelectVariant,\n type SelectProps,\n} from \"./components/Select\";\nexport {\n Checkbox,\n type CheckboxSize,\n type CheckboxProps,\n} from \"./components/Checkbox\";\nexport { Radio, type RadioSize, type RadioProps } from \"./components/Radio\";\nexport { Switch, type SwitchSize, type SwitchProps } from \"./components/Switch\";\nexport { FormField, type FormFieldProps } from \"./components/FormField\";\nexport {\n IconButton,\n type IconButtonVariant,\n type IconButtonSize,\n type IconButtonColorScheme,\n type IconButtonProps,\n} from \"./components/IconButton\";\nexport { Alert, type AlertStatus, type AlertProps } from \"./components/Alert\";\nexport {\n Badge,\n type BadgeColorScheme,\n type BadgeVariant,\n type BadgeSize,\n type BadgeProps,\n} from \"./components/Badge\";\nexport {\n Progress,\n type ProgressColorScheme,\n type ProgressSize,\n type ProgressProps,\n} from \"./components/Progress\";\nexport { Skeleton, type SkeletonProps } from \"./components/Skeleton\";\nexport { Avatar, type AvatarSize, type AvatarProps } from \"./components/Avatar\";\nexport {\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n type CardProps,\n type CardHeaderProps,\n type CardBodyProps,\n type CardFooterProps,\n} from \"./components/Card\";\nexport { Image, type ImageObjectFit, type ImageProps } from \"./components/Image\";\nexport {\n List,\n ListItem,\n ListIcon,\n type ListStyleType,\n type ListProps,\n type ListItemProps,\n type ListIconProps,\n} from \"./components/List\";\nexport {\n Link,\n type LinkVariant,\n type LinkProps,\n type LinkOwnProps,\n} from \"./components/Link\";\nexport {\n Tabs,\n TabList,\n Tab,\n TabPanel,\n type TabsVariant,\n type TabsProps,\n type TabListProps,\n type TabProps,\n type TabPanelProps,\n} from \"./components/Tabs\";\nexport {\n Breadcrumb,\n BreadcrumbItem,\n type BreadcrumbProps,\n type BreadcrumbItemProps,\n} from \"./components/Breadcrumb\";\nexport {\n Menu,\n MenuButton,\n MenuList,\n MenuItem,\n type MenuProps,\n type MenuButtonProps,\n type MenuListProps,\n type MenuItemProps,\n} from \"./components/Menu\";\nexport { Pagination, type PaginationProps } from \"./components/Pagination\";\nexport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n type ModalSize,\n type ModalProps,\n type ModalHeaderProps,\n type ModalBodyProps,\n type ModalFooterProps,\n} from \"./components/Modal\";\nexport {\n Tooltip,\n type TooltipPlacement,\n type TooltipProps,\n} from \"./components/Tooltip\";\nexport {\n Popover,\n PopoverHeader,\n PopoverBody,\n type PopoverPlacement,\n type PopoverProps,\n type PopoverHeaderProps,\n type PopoverBodyProps,\n} from \"./components/Popover\";\nexport {\n Accordion,\n AccordionItem,\n type AccordionProps,\n type AccordionItemProps,\n} from \"./components/Accordion\";\n"],"names":["r","e","t","f","n","o","clsx","resetClass","styles","RESPONSIVE_KEYS","STATE_SUFFIXES","STATE_CLASS_SUFFIXES","getRawValue","value","getSpacingProps","key","state","result","stateSuffix","stateClassSuffix","rawValue","className","responsiveKey","varName","resolveMarginValue","props","shorthandMap","getMarginStylesForState","marginTop","marginRight","marginBottom","marginLeft","getMarginStyles","_hover","_focus","_active","_disabled","baseProps","baseStyles","hoverStyles","focusStyles","activeStyles","disabledStyles","resolvePaddingValue","getPaddingStylesForState","paddingTop","paddingRight","paddingBottom","paddingLeft","getPaddingStyles","getSizingProp","getSizingStylesForState","results","getSizingStyles","getInsetProp","resolveInsetValue","getInsetStylesForState","insetTop","insetRight","insetBottom","insetLeft","getInsetStyles","getDisplayClass","getDisplayStylesForValue","displayValue","getDisplayStyles","display","getPositionClass","getPositionStylesForValue","positionValue","getPositionStyles","position","CLASS_SUFFIX_MAP","getOverflowClass","type","typeSuffix","baseClassName","getOverflowStylesForProp","overflowValue","getOverflowStylesForState","overflow","overflowX","overflowY","getOverflowStyles","getZIndexClass","getZIndexStylesForValue","zIndexValue","getZIndexStyles","zIndex","getShadowClass","getShadowStylesForValue","shadowValue","getShadowStyles","shadow","getOpacityClass","getOpacityStylesForValue","opacityValue","getOpacityStyles","opacity","getCursorClass","getPointerEventsClass","getUserSelectClass","getInteractionStylesForState","classes","cls","getInteractionStyles","cursor","pointerEvents","userSelect","getTextAlignClass","getWhiteSpaceClass","getTextDecorationClass","getTextStylesForState","getTextStyles","textAlign","whiteSpace","textDecoration","getTypographyStyles","fontSize","fontFamily","fontWeight","lineHeight","getColorClass","getBgClass","getBorderColorClass","getColorStylesForState","getColorStyles","color","bg","borderColor","getBorderTopClass","getBorderRightClass","getBorderBottomClass","getBorderLeftClass","getBorderStyleClass","getBorderStylesForState","border","borderX","borderY","borderTop","borderRight","borderBottom","borderLeft","borderStyle","topWidth","rightWidth","bottomWidth","leftWidth","getBorderStyles","getRoundedTopLeftClass","getRoundedTopRightClass","getRoundedBottomRightClass","getRoundedBottomLeftClass","getRoundnessStylesForState","rounded","roundedTop","roundedBottom","roundedLeft","roundedRight","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","topLeft","topRight","bottomRight","bottomLeft","getRoundnessStyles","getFlexDirectionClass","getJustifyContentClass","getAlignItemsClass","getAlignSelfClass","getFlexWrapClass","getSpacingValue","getFlexboxStylesForState","flexDirection","justifyContent","alignItems","alignSelf","flexWrap","gap","gapRow","gapColumn","flex","flexGrow","flexShrink","flexBasis","style","stateVarSuffix","row","column","rowValue","columnValue","gapValue","gapClass","flexClass","grow","shrink","basis","getFlexboxStyles","getJustifySelfClass","getGridStylesForState","justifySelf","gridTemplateColumns","gridTemplateRows","gridColsClass","gridRowsClass","getGridStyles","combineStyles","Box","as","children","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","w","h","minW","maxW","minH","maxH","inset","insetX","insetY","top","right","bottom","left","rest","Component","stateProps","jsx","Text","size","weight","align","truncate","italic","defaultSizes","Heading","level","headingElement","defaultSize","sizeConfig","Spinner","sizeProps","getColorConfig","variant","colorScheme","variantBorderConfig","Button","disabled","loading","fullWidth","leftIcon","rightIcon","isDisabled","colorConfig","leftContent","rightContent","jsxs","Stack","direction","justify","wrap","HStack","VStack","Flex","alignContent","Grid","columns","rows","SIZE_MAP","Container","centerContent","COLOR_MAP","Divider","orientation","thickness","isHorizontal","Spacer","Code","isSubtle","Input","isInvalid","variantStyles","Label","required","resizeClassMap","Textarea","resize","Select","Checkbox","forwardRef","isChecked","label","ref","Radio","Switch","FormField","helperText","errorMessage","isRequired","providedId","generatedId","useId","fieldId","helperId","showError","message","hasMessage","enhancedChild","Children","child","isValidElement","cloneElement","IconButton","icon","ariaLabel","onClick","defaultIcons","CloseIcon","Alert","status","title","onClose","displayIcon","Badge","Progress","max","isIndeterminate","percentage","height","Skeleton","isLoaded","getInitials","name","words","Avatar","src","alt","hasError","setHasError","useState","showImage","initials","Card","CardHeader","CardBody","CardFooter","Image","objectFit","fallbackSrc","isLoading","setIsLoading","currentSrc","setCurrentSrc","handleLoad","handleError","List","styleType","spacing","actualStyleType","ListItem","ListIcon","Link","external","externalProps","TabsContext","createContext","useTabsContext","context","useContext","Tabs","defaultIndex","index","onChange","internalIndex","setInternalIndex","activeIndex","setActiveIndex","newIndex","TabList","Tab","isActive","TabPanel","Breadcrumb","separator","items","lastIndex","isLast","BreadcrumbItem","href","isCurrentPage","MenuContext","useMenuContext","Menu","controlledIsOpen","onOpen","internalIsOpen","setInternalIsOpen","isControlled","isOpen","buttonRef","useRef","setOpen","open","useEffect","handleClick","handleKeyDown","MenuButton","setIsOpen","MenuList","MenuItem","range","start","end","_","i","getPaginationRange","page","totalPages","siblings","totalNumbers","leftSiblingIndex","rightSiblingIndex","showLeftEllipsis","showRightEllipsis","Pagination","onPageChange","showEdges","pages","canGoPrev","canGoNext","Modal","closeOnOverlayClick","closeOnEsc","modalRef","previousFocusRef","handleOverlayClick","useCallback","createPortal","ModalHeader","ModalBody","ModalFooter","Tooltip","placement","openDelay","closeDelay","setPosition","triggerRef","tooltipRef","openTimeoutRef","closeTimeoutRef","updatePosition","triggerRect","tooltipRect","handleOpen","handleClose","Fragment","Popover","content","closeOnBlur","popoverRef","popoverRect","PopoverHeader","PopoverBody","AccordionContext","useAccordionContext","Accordion","allowMultiple","expandedIndex","setExpandedIndex","toggleIndex","current","newExpanded","AccordionItem","isExpanded"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|