@usefragments/ui 1.5.3 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/assets/ui.css +8808 -5810
- package/dist/chart.cjs +7 -20
- package/dist/chart.js +7 -20
- package/dist/colorpicker.cjs +2 -1
- package/dist/colorpicker.js +2 -1
- package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
- package/dist/components/Accordion/Accordion.module.scss.js +8 -8
- package/dist/components/Alert/Alert.module.scss.cjs +12 -12
- package/dist/components/Alert/Alert.module.scss.js +12 -12
- package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
- package/dist/components/AppShell/AppShell.module.scss.js +14 -14
- package/dist/components/AppShell/index.cjs +5 -3
- package/dist/components/AppShell/index.d.ts +4 -2
- package/dist/components/AppShell/index.d.ts.map +1 -1
- package/dist/components/AppShell/index.js +5 -3
- package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
- package/dist/components/Avatar/Avatar.module.scss.js +17 -14
- package/dist/components/Avatar/index.cjs +100 -118
- package/dist/components/Avatar/index.d.ts +7 -5
- package/dist/components/Avatar/index.d.ts.map +1 -1
- package/dist/components/Avatar/index.js +100 -118
- package/dist/components/Badge/Badge.module.scss.cjs +19 -19
- package/dist/components/Badge/Badge.module.scss.js +19 -19
- package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
- package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
- package/dist/components/Box/Box.module.scss.cjs +152 -152
- package/dist/components/Box/Box.module.scss.js +152 -152
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
- package/dist/components/Button/Button.module.scss.cjs +14 -14
- package/dist/components/Button/Button.module.scss.js +14 -14
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
- package/dist/components/Card/Card.module.scss.cjs +18 -18
- package/dist/components/Card/Card.module.scss.js +18 -18
- package/dist/components/Chart/Chart.module.scss.cjs +15 -15
- package/dist/components/Chart/Chart.module.scss.js +15 -15
- package/dist/components/Chart/index.d.ts +7 -7
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
- package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
- package/dist/components/Checkbox/index.cjs +4 -6
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +4 -6
- package/dist/components/Chip/Chip.module.scss.cjs +15 -15
- package/dist/components/Chip/Chip.module.scss.js +15 -15
- package/dist/components/Chip/index.cjs +4 -5
- package/dist/components/Chip/index.d.ts +1 -1
- package/dist/components/Chip/index.d.ts.map +1 -1
- package/dist/components/Chip/index.js +2 -3
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +22 -22
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +22 -22
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
- package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
- package/dist/components/Collapsible/index.cjs +3 -2
- package/dist/components/Collapsible/index.d.ts +3 -3
- package/dist/components/Collapsible/index.d.ts.map +1 -1
- package/dist/components/Collapsible/index.js +3 -2
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
- package/dist/components/Combobox/Combobox.module.scss.js +21 -27
- package/dist/components/Combobox/index.cjs +4 -4
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +4 -4
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
- package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
- package/dist/components/ConversationList/index.cjs +40 -44
- package/dist/components/ConversationList/index.d.ts +3 -3
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +40 -44
- package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
- package/dist/components/DataTable/DataTable.module.scss.js +32 -56
- package/dist/components/DataTable/index.d.ts +5 -4
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
- package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
- package/dist/components/Dialog/Dialog.module.scss.js +14 -14
- package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
- package/dist/components/Drawer/Drawer.module.scss.js +31 -28
- package/dist/components/Drawer/index.cjs +1 -1
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/Editor/Editor.module.scss.cjs +23 -23
- package/dist/components/Editor/Editor.module.scss.js +23 -23
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +12 -12
- package/dist/components/EmptyState/EmptyState.module.scss.js +12 -12
- package/dist/components/Field/Field.module.scss.cjs +8 -5
- package/dist/components/Field/Field.module.scss.js +8 -5
- package/dist/components/Field/index.cjs +10 -1
- package/dist/components/Field/index.d.ts +9 -2
- package/dist/components/Field/index.d.ts.map +1 -1
- package/dist/components/Field/index.js +10 -1
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Form/Form.module.scss.cjs +5 -2
- package/dist/components/Form/Form.module.scss.js +5 -2
- package/dist/components/Form/index.cjs +6 -1
- package/dist/components/Form/index.d.ts +8 -3
- package/dist/components/Form/index.d.ts.map +1 -1
- package/dist/components/Form/index.js +6 -1
- package/dist/components/Grid/Grid.module.scss.cjs +54 -72
- package/dist/components/Grid/Grid.module.scss.js +54 -72
- package/dist/components/Grid/index.cjs +57 -77
- package/dist/components/Grid/index.d.ts +11 -11
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +57 -77
- package/dist/components/Header/Header.module.scss.cjs +33 -33
- package/dist/components/Header/Header.module.scss.js +33 -33
- package/dist/components/Header/index.cjs +2 -1
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +2 -1
- package/dist/components/Icon/Icon.module.scss.cjs +29 -8
- package/dist/components/Icon/Icon.module.scss.js +30 -9
- package/dist/components/Icon/index.cjs +30 -48
- package/dist/components/Icon/index.d.ts +6 -6
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +30 -48
- package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
- package/dist/components/IconButton/IconButton.module.scss.js +8 -8
- package/dist/components/Input/Input.module.scss.cjs +19 -25
- package/dist/components/Input/Input.module.scss.js +19 -25
- package/dist/components/Input/index.cjs +1 -2
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +1 -2
- package/dist/components/Link/Link.module.scss.cjs +10 -10
- package/dist/components/Link/Link.module.scss.js +10 -10
- package/dist/components/List/List.module.scss.cjs +19 -19
- package/dist/components/List/List.module.scss.js +19 -19
- package/dist/components/List/index.cjs +4 -7
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +4 -7
- package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
- package/dist/components/Listbox/Listbox.module.scss.js +9 -9
- package/dist/components/Loading/Loading.module.scss.cjs +30 -30
- package/dist/components/Loading/Loading.module.scss.js +30 -30
- package/dist/components/Loading/index.cjs +39 -67
- package/dist/components/Loading/index.d.ts +6 -6
- package/dist/components/Loading/index.d.ts.map +1 -1
- package/dist/components/Loading/index.js +39 -67
- package/dist/components/Main/Main.module.scss.cjs +7 -7
- package/dist/components/Main/Main.module.scss.js +7 -7
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +16 -16
- package/dist/components/Menu/Menu.module.scss.js +16 -16
- package/dist/components/Menu/index.cjs +19 -61
- package/dist/components/Menu/index.d.ts +10 -10
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +19 -61
- package/dist/components/Message/Message.module.scss.cjs +18 -21
- package/dist/components/Message/Message.module.scss.js +18 -21
- package/dist/components/Message/index.cjs +15 -2
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +15 -2
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
- package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
- package/dist/components/Pagination/Pagination.module.scss.js +19 -10
- package/dist/components/Pagination/index.cjs +5 -2
- package/dist/components/Pagination/index.d.ts +3 -1
- package/dist/components/Pagination/index.d.ts.map +1 -1
- package/dist/components/Pagination/index.js +5 -2
- package/dist/components/Popover/Popover.module.scss.cjs +10 -10
- package/dist/components/Popover/Popover.module.scss.js +10 -10
- package/dist/components/Progress/Progress.module.scss.cjs +29 -32
- package/dist/components/Progress/Progress.module.scss.js +29 -32
- package/dist/components/Progress/geometry.cjs +30 -0
- package/dist/components/Progress/geometry.d.ts +8 -0
- package/dist/components/Progress/geometry.d.ts.map +1 -0
- package/dist/components/Progress/geometry.js +30 -0
- package/dist/components/Progress/index.cjs +40 -29
- package/dist/components/Progress/index.d.ts +4 -3
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +40 -29
- package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
- package/dist/components/Prompt/Prompt.module.scss.js +29 -29
- package/dist/components/Prompt/index.cjs +5 -4
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +5 -4
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
- package/dist/components/RadioGroup/index.cjs +7 -6
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +7 -6
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
- package/dist/components/ScrollArea/index.cjs +66 -42
- package/dist/components/ScrollArea/index.d.ts +3 -2
- package/dist/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/components/ScrollArea/index.js +66 -42
- package/dist/components/ScrollArea/scroll-state.cjs +58 -0
- package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
- package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
- package/dist/components/ScrollArea/scroll-state.js +58 -0
- package/dist/components/Select/Select.module.scss.cjs +21 -21
- package/dist/components/Select/Select.module.scss.js +21 -21
- package/dist/components/Select/index.cjs +3 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +3 -2
- package/dist/components/Separator/Separator.module.scss.cjs +13 -10
- package/dist/components/Separator/Separator.module.scss.js +13 -10
- package/dist/components/Separator/index.cjs +37 -38
- package/dist/components/Separator/index.d.ts +4 -4
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +37 -38
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
- package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
- package/dist/components/Sidebar/index.cjs +5 -3
- package/dist/components/Sidebar/index.d.ts +6 -1
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +5 -3
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -38
- package/dist/components/Skeleton/Skeleton.module.scss.js +50 -38
- package/dist/components/Skeleton/index.cjs +41 -55
- package/dist/components/Skeleton/index.d.ts +7 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +41 -55
- package/dist/components/Slider/Slider.module.scss.cjs +12 -12
- package/dist/components/Slider/Slider.module.scss.js +12 -12
- package/dist/components/Stack/Stack.module.scss.cjs +25 -45
- package/dist/components/Stack/Stack.module.scss.js +25 -45
- package/dist/components/Stack/index.cjs +106 -101
- package/dist/components/Stack/index.d.ts +7 -7
- package/dist/components/Stack/index.d.ts.map +1 -1
- package/dist/components/Stack/index.js +106 -101
- package/dist/components/Switch/Switch.module.scss.cjs +32 -0
- package/dist/components/Switch/Switch.module.scss.js +32 -0
- package/dist/components/{Toggle → Switch}/index.cjs +9 -14
- package/dist/components/Switch/index.d.ts +37 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/{Toggle → Switch}/index.js +5 -10
- package/dist/components/Table/Table.module.scss.cjs +18 -27
- package/dist/components/Table/Table.module.scss.js +18 -27
- package/dist/components/Table/index.d.ts +6 -5
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
- package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
- package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
- package/dist/components/Tabs/Tabs.module.scss.js +12 -12
- package/dist/components/Tabs/index.cjs +2 -2
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Text/Text.module.scss.cjs +93 -57
- package/dist/components/Text/Text.module.scss.js +93 -57
- package/dist/components/Text/index.cjs +14 -6
- package/dist/components/Text/index.d.ts +25 -15
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +14 -6
- package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
- package/dist/components/Textarea/Textarea.module.scss.js +26 -23
- package/dist/components/Textarea/index.cjs +5 -10
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +5 -10
- package/dist/components/Theme/context.cjs +39 -0
- package/dist/components/Theme/context.d.ts +21 -0
- package/dist/components/Theme/context.d.ts.map +1 -0
- package/dist/components/Theme/context.js +22 -0
- package/dist/components/Theme/index.cjs +14 -209
- package/dist/components/Theme/index.d.ts +4 -37
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +9 -204
- package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +6 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +23 -0
- package/dist/components/ThemeToggle/index.cjs +115 -0
- package/dist/components/ThemeToggle/index.d.ts +21 -0
- package/dist/components/ThemeToggle/index.d.ts.map +1 -0
- package/dist/components/ThemeToggle/index.js +115 -0
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
- package/dist/components/ThinkingIndicator/index.cjs +34 -41
- package/dist/components/ThinkingIndicator/index.d.ts +4 -4
- package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
- package/dist/components/ThinkingIndicator/index.js +34 -41
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/Toggle/index.d.ts +2 -42
- package/dist/components/Toggle/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
- package/dist/components/ToggleGroup/index.cjs +3 -2
- package/dist/components/ToggleGroup/index.d.ts +2 -1
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +3 -2
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
- package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
- package/dist/data-table.cjs +12 -9
- package/dist/data-table.js +12 -9
- package/dist/datepicker.cjs +2 -1
- package/dist/datepicker.js +2 -1
- package/dist/index.cjs +100 -98
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/markdown.cjs +1 -1
- package/dist/markdown.js +2 -2
- package/dist/measurements/generated.cjs +296 -0
- package/dist/measurements/generated.d.ts +261 -0
- package/dist/measurements/generated.d.ts.map +1 -0
- package/dist/measurements/generated.js +296 -0
- package/dist/measurements/index.d.ts +2 -0
- package/dist/measurements/index.d.ts.map +1 -0
- package/dist/measurements.cjs +6 -0
- package/dist/measurements.js +6 -0
- package/dist/recipes/popup.cjs +14 -0
- package/dist/recipes/popup.d.ts +4 -0
- package/dist/recipes/popup.d.ts.map +1 -0
- package/dist/recipes/popup.js +14 -0
- package/dist/recipes/table-chrome.cjs +18 -0
- package/dist/recipes/table-chrome.d.ts +10 -0
- package/dist/recipes/table-chrome.d.ts.map +1 -0
- package/dist/recipes/table-chrome.js +18 -0
- package/dist/table.cjs +5 -2
- package/dist/table.js +5 -2
- package/dist/utils/layout-spacing.cjs +27 -0
- package/dist/utils/layout-spacing.d.ts +5 -0
- package/dist/utils/layout-spacing.d.ts.map +1 -0
- package/dist/utils/layout-spacing.js +27 -0
- package/dist/utils/seed-derivation.cjs +4 -42
- package/dist/utils/seed-derivation.d.ts +4 -3
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +4 -42
- package/dist/utils/theme-presets.cjs +1 -0
- package/dist/utils/theme-presets.d.ts +3 -2
- package/dist/utils/theme-presets.d.ts.map +1 -1
- package/dist/utils/theme-presets.js +1 -0
- package/fragments.json +1 -1
- package/package.json +23 -4
- package/src/components/Accordion/Accordion.module.scss +31 -52
- package/src/components/Alert/Alert.module.scss +28 -44
- package/src/components/AppShell/AppShell.module.scss +6 -3
- package/src/components/AppShell/index.tsx +8 -4
- package/src/components/Avatar/Avatar.module.scss +22 -60
- package/src/components/Avatar/index.tsx +152 -146
- package/src/components/Badge/Badge.module.scss +51 -46
- package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
- package/src/components/Box/Box.module.scss +253 -81
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +10 -11
- package/src/components/Button/Button.module.scss +52 -57
- package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
- package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
- package/src/components/Card/Card.module.scss +211 -175
- package/src/components/Chart/Chart.module.scss +28 -29
- package/src/components/Chart/index.tsx +40 -53
- package/src/components/Checkbox/Checkbox.module.scss +43 -64
- package/src/components/Checkbox/index.tsx +4 -9
- package/src/components/Chip/Chip.contract.json +4 -3
- package/src/components/Chip/Chip.module.scss +23 -34
- package/src/components/Chip/index.tsx +3 -4
- package/src/components/CodeBlock/CodeBlock.module.scss +102 -215
- package/src/components/Collapsible/Collapsible.module.scss +29 -63
- package/src/components/Collapsible/index.tsx +22 -26
- package/src/components/ColorPicker/ColorPicker.module.scss +42 -24
- package/src/components/ColorPicker/index.tsx +2 -1
- package/src/components/Combobox/Combobox.module.scss +60 -73
- package/src/components/Combobox/index.tsx +7 -5
- package/src/components/Command/Command.module.scss +47 -77
- package/src/components/ConversationList/ConversationList.module.scss +20 -78
- package/src/components/ConversationList/index.tsx +55 -59
- package/src/components/DataTable/DataTable.module.scss +76 -216
- package/src/components/DataTable/index.tsx +20 -25
- package/src/components/DatePicker/DatePicker.module.scss +54 -33
- package/src/components/DatePicker/index.tsx +2 -1
- package/src/components/Dialog/Dialog.module.scss +42 -66
- package/src/components/Drawer/Drawer.module.scss +93 -99
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Editor/Editor.module.scss +115 -220
- package/src/components/EmptyState/EmptyState.module.scss +38 -85
- package/src/components/Field/Field.contract.json +2 -1
- package/src/components/Field/Field.module.scss +9 -11
- package/src/components/Field/index.tsx +27 -1
- package/src/components/Fieldset/Fieldset.module.scss +14 -6
- package/src/components/Form/Form.contract.json +10 -23
- package/src/components/Form/Form.module.scss +9 -4
- package/src/components/Form/index.tsx +22 -7
- package/src/components/Grid/Grid.module.scss +159 -63
- package/src/components/Grid/index.tsx +107 -126
- package/src/components/Header/Header.module.scss +25 -32
- package/src/components/Header/index.tsx +2 -1
- package/src/components/Icon/Icon.module.scss +16 -0
- package/src/components/Icon/index.tsx +74 -86
- package/src/components/IconButton/IconButton.module.scss +11 -21
- package/src/components/Input/Input.module.scss +67 -55
- package/src/components/Input/index.tsx +1 -2
- package/src/components/Link/Link.module.scss +8 -9
- package/src/components/List/List.module.scss +16 -21
- package/src/components/List/index.tsx +4 -10
- package/src/components/Listbox/Listbox.module.scss +26 -54
- package/src/components/Loading/Loading.module.scss +23 -33
- package/src/components/Loading/index.tsx +68 -97
- package/src/components/Main/Main.module.scss +3 -5
- package/src/components/Markdown/Markdown.module.scss +36 -184
- package/src/components/Markdown/index.tsx +2 -2
- package/src/components/Menu/Menu.module.scss +48 -133
- package/src/components/Menu/index.tsx +57 -89
- package/src/components/Message/Message.module.scss +52 -142
- package/src/components/Message/index.tsx +16 -6
- package/src/components/NavigationMenu/NavigationMenu.module.scss +59 -52
- package/src/components/Pagination/Pagination.module.scss +32 -25
- package/src/components/Pagination/index.tsx +7 -2
- package/src/components/Popover/Popover.module.scss +37 -73
- package/src/components/Progress/Progress.module.scss +61 -41
- package/src/components/Progress/geometry.ts +41 -0
- package/src/components/Progress/index.tsx +44 -30
- package/src/components/Prompt/Prompt.module.scss +45 -82
- package/src/components/Prompt/index.tsx +6 -5
- package/src/components/RadioGroup/RadioGroup.module.scss +50 -69
- package/src/components/RadioGroup/index.tsx +7 -9
- package/src/components/ScrollArea/ScrollArea.contract.json +8 -24
- package/src/components/ScrollArea/ScrollArea.module.scss +122 -96
- package/src/components/ScrollArea/index.tsx +78 -60
- package/src/components/ScrollArea/scroll-state.ts +87 -0
- package/src/components/Select/Select.module.scss +53 -41
- package/src/components/Select/index.tsx +6 -2
- package/src/components/Separator/Separator.module.scss +29 -19
- package/src/components/Separator/index.tsx +55 -51
- package/src/components/Sidebar/Sidebar.contract.json +12 -0
- package/src/components/Sidebar/Sidebar.module.scss +101 -99
- package/src/components/Sidebar/index.tsx +10 -3
- package/src/components/Skeleton/Skeleton.module.scss +26 -26
- package/src/components/Skeleton/index.tsx +65 -72
- package/src/components/Slider/Slider.module.scss +31 -25
- package/src/components/Stack/Stack.module.scss +101 -30
- package/src/components/Stack/index.tsx +157 -127
- package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +1 -1
- package/src/components/{Toggle/Toggle.module.scss → Switch/Switch.module.scss} +55 -82
- package/src/components/{Toggle → Switch}/index.tsx +5 -21
- package/src/components/Table/Table.module.scss +38 -129
- package/src/components/Table/index.tsx +13 -6
- package/src/components/TableOfContents/TableOfContents.module.scss +20 -177
- package/src/components/Tabs/Tabs.module.scss +27 -22
- package/src/components/Tabs/index.tsx +2 -2
- package/src/components/Text/Text.module.scss +22 -3
- package/src/components/Text/index.tsx +56 -21
- package/src/components/Textarea/Textarea.module.scss +59 -39
- package/src/components/Textarea/index.tsx +5 -12
- package/src/components/Theme/context.ts +42 -0
- package/src/components/Theme/index.tsx +14 -309
- package/src/components/ThemeToggle/ThemeToggle.module.scss +73 -0
- package/src/components/ThemeToggle/index.tsx +144 -0
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
- package/src/components/ThinkingIndicator/index.tsx +44 -54
- package/src/components/Toast/Toast.contract.json +5 -21
- package/src/components/Toast/Toast.module.scss +61 -138
- package/src/components/Toggle/index.ts +7 -0
- package/src/components/ToggleGroup/ToggleGroup.contract.json +12 -39
- package/src/components/ToggleGroup/ToggleGroup.module.scss +132 -88
- package/src/components/ToggleGroup/index.tsx +5 -3
- package/src/components/Tooltip/Tooltip.module.scss +23 -39
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
- package/src/index.ts +2 -1
- package/src/measurements/MeasurementTargets.module.scss +229 -0
- package/src/measurements/generated.ts +317 -0
- package/src/measurements/index.ts +8 -0
- package/src/measurements/measurements.json +361 -0
- package/src/recipes/_action.scss +138 -0
- package/src/recipes/_boolean-range.scss +124 -0
- package/src/recipes/_feedback.scss +171 -0
- package/src/recipes/_field.scss +98 -0
- package/src/recipes/_layout.scss +67 -0
- package/src/recipes/_navigation.scss +110 -0
- package/src/recipes/_overlay.scss +191 -0
- package/src/recipes/_popup.scss +92 -0
- package/src/recipes/_prose.scss +174 -0
- package/src/recipes/_representation.scss +193 -0
- package/src/recipes/_segmented.scss +26 -0
- package/src/recipes/_surface.scss +13 -0
- package/src/recipes/_table-chrome.scss +105 -0
- package/src/recipes/_target.scss +31 -0
- package/src/recipes/_typography.scss +38 -0
- package/src/recipes/popup.ts +12 -0
- package/src/recipes/table-chrome.ts +30 -0
- package/src/styles/globals.scss +2 -2
- package/src/tokens/_component-properties.scss +2 -2
- package/src/tokens/_computed.scss +9 -9
- package/src/tokens/_density.scss +41 -132
- package/src/tokens/_measurements.catalog.generated.css +91 -0
- package/src/tokens/_measurements.generated.scss +604 -0
- package/src/tokens/_mixins.scss +0 -276
- package/src/tokens/_property-registrations.scss +96 -92
- package/src/tokens/_radius.scss +16 -70
- package/src/tokens/_seeds.scss +8 -7
- package/src/tokens/_variables.scss +163 -148
- package/src/utils/layout-spacing.ts +31 -0
- package/src/utils/seed-derivation.ts +134 -172
- package/src/utils/theme-presets.ts +58 -30
- package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
- package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
- package/dist/components/Toggle/Toggle.module.scss.js +0 -44
- package/src/components/Switch/index.ts +0 -3
- package/src/components/Theme/ThemeToggle.module.scss +0 -91
package/src/tokens/_radius.scss
CHANGED
|
@@ -2,75 +2,29 @@
|
|
|
2
2
|
// @usefragments/ui Radius Styles
|
|
3
3
|
// ============================================
|
|
4
4
|
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
5
|
+
// Compatibility adapter over the generated Measurement Module. Existing Sass
|
|
6
|
+
// callers retain their public maps and helpers without owning numeric copies.
|
|
7
7
|
//
|
|
8
8
|
// ============================================
|
|
9
9
|
|
|
10
|
-
@use
|
|
10
|
+
@use "sass:map";
|
|
11
|
+
@use "measurements.generated" as measurements;
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
$radius-sharp: measurements.radius-profile("sharp");
|
|
14
|
+
$radius-subtle: measurements.radius-profile("subtle");
|
|
15
|
+
$radius-default: measurements.radius-profile("default");
|
|
16
|
+
$radius-rounded: measurements.radius-profile("rounded");
|
|
17
|
+
$radius-pill: measurements.radius-profile("pill");
|
|
15
18
|
|
|
16
|
-
// Sharp - No visible rounding (technical, precise)
|
|
17
|
-
$radius-sharp: (
|
|
18
|
-
sm: 0,
|
|
19
|
-
md: 0,
|
|
20
|
-
lg: 0,
|
|
21
|
-
xl: 0
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
// Subtle - Minimal rounding (modern minimal)
|
|
25
|
-
$radius-subtle: (
|
|
26
|
-
sm: 0.125rem, // 2px
|
|
27
|
-
md: 0.25rem, // 4px
|
|
28
|
-
lg: 0.375rem, // 6px
|
|
29
|
-
xl: 0.5rem // 8px
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
// Default - Balanced rounding (current values)
|
|
33
|
-
$radius-default: (
|
|
34
|
-
sm: 0.25rem, // 3.5px -> 4px
|
|
35
|
-
md: 0.429rem, // 6px
|
|
36
|
-
lg: 0.571rem, // 8px
|
|
37
|
-
xl: 0.857rem // 12px
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
// Rounded - More prominent rounding (friendly)
|
|
41
|
-
$radius-rounded: (
|
|
42
|
-
sm: 0.375rem, // 6px
|
|
43
|
-
md: 0.5rem, // 8px
|
|
44
|
-
lg: 0.75rem, // 12px
|
|
45
|
-
xl: 1rem // 16px
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
// Pill - Maximum rounding (playful, soft)
|
|
49
|
-
$radius-pill: (
|
|
50
|
-
sm: 0.5rem, // 8px
|
|
51
|
-
md: 0.75rem, // 12px
|
|
52
|
-
lg: 1rem, // 16px
|
|
53
|
-
xl: 1.5rem // 24px
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
// --------------------------------------------
|
|
57
|
-
// Radius Map for Dynamic Access
|
|
58
|
-
// --------------------------------------------
|
|
59
19
|
$radius-styles: (
|
|
60
20
|
"sharp": $radius-sharp,
|
|
61
21
|
"subtle": $radius-subtle,
|
|
62
22
|
"default": $radius-default,
|
|
63
23
|
"rounded": $radius-rounded,
|
|
64
|
-
"pill": $radius-pill
|
|
24
|
+
"pill": $radius-pill,
|
|
65
25
|
);
|
|
66
26
|
|
|
67
|
-
|
|
68
|
-
// Helper Functions
|
|
69
|
-
// --------------------------------------------
|
|
70
|
-
|
|
71
|
-
/// Get a radius style configuration by name
|
|
72
|
-
/// @param {String} $name - Radius style name (sharp, subtle, default, rounded, pill)
|
|
73
|
-
/// @return {Map} The radius configuration map
|
|
27
|
+
/// Get a radius style configuration by name.
|
|
74
28
|
@function get-radius-style($name) {
|
|
75
29
|
@if not map.has-key($radius-styles, $name) {
|
|
76
30
|
@warn "Unknown radius style '#{$name}'. Using 'default' as fallback.";
|
|
@@ -79,29 +33,21 @@ $radius-styles: (
|
|
|
79
33
|
@return map.get($radius-styles, $name);
|
|
80
34
|
}
|
|
81
35
|
|
|
82
|
-
/// Get a specific radius value from a style
|
|
83
|
-
/// @param {Map} $style - A radius style map
|
|
84
|
-
/// @param {String} $size - Size key (sm, md, lg, xl)
|
|
85
|
-
/// @return {Number} The radius value
|
|
36
|
+
/// Get a specific radius value from a style map.
|
|
86
37
|
@function radius-value($style, $size) {
|
|
87
38
|
@if not map.has-key($style, $size) {
|
|
88
39
|
@warn "Unknown radius size '#{$size}'.";
|
|
89
|
-
@return map.get($style, md);
|
|
40
|
+
@return map.get($style, "md");
|
|
90
41
|
}
|
|
91
42
|
@return map.get($style, $size);
|
|
92
43
|
}
|
|
93
44
|
|
|
94
|
-
/// Get radius by style name and size
|
|
95
|
-
/// @param {String} $style-name - Radius style name
|
|
96
|
-
/// @param {String} $size - Size key (sm, md, lg, xl)
|
|
97
|
-
/// @return {Number} The radius value
|
|
45
|
+
/// Get a radius by style name and size.
|
|
98
46
|
@function radius($style-name, $size) {
|
|
99
|
-
|
|
100
|
-
@return radius-value($style, $size);
|
|
47
|
+
@return radius-value(get-radius-style($style-name), $size);
|
|
101
48
|
}
|
|
102
49
|
|
|
103
|
-
/// Full/circular radius
|
|
104
|
-
/// @return {Number} The full radius value
|
|
50
|
+
/// Full/circular radius remains an intentional non-profile sentinel.
|
|
105
51
|
@function radius-full() {
|
|
106
52
|
@return 9999px;
|
|
107
53
|
}
|
package/src/tokens/_seeds.scss
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
@use
|
|
1
|
+
@use "sass:list";
|
|
2
|
+
@use "measurements.generated" as measurements;
|
|
2
3
|
|
|
3
4
|
// ============================================
|
|
4
5
|
// @usefragments/ui Design Token Seeds
|
|
@@ -53,12 +54,12 @@ $_valid-neutrals: "carbon", "stone", "mono", "ice", "earth", "sand", "fire", "fr
|
|
|
53
54
|
@error "Invalid $fui-neutral: '#{$fui-neutral}'. Must be one of: #{$_valid-neutrals}";
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
$_valid-densities:
|
|
57
|
+
$_valid-densities: measurements.$density-profile-names;
|
|
57
58
|
@if not list.index($_valid-densities, $fui-density) {
|
|
58
59
|
@error "Invalid $fui-density: '#{$fui-density}'. Must be one of: #{$_valid-densities}";
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
$_valid-radii:
|
|
62
|
+
$_valid-radii: measurements.$radius-profile-names;
|
|
62
63
|
@if not list.index($_valid-radii, $fui-radius-style) {
|
|
63
64
|
@error "Invalid $fui-radius-style: '#{$fui-radius-style}'. Must be one of: #{$_valid-radii}";
|
|
64
65
|
}
|
|
@@ -70,13 +71,13 @@ $_valid-radii: "sharp", "subtle", "default", "rounded", "pill";
|
|
|
70
71
|
// If not overridden, they use sensible defaults.
|
|
71
72
|
|
|
72
73
|
// The status seeds below are tuned to sit in one family with the sage brand
|
|
73
|
-
// (`$fui-brand` / success `#7fc9b3`):
|
|
74
|
-
//
|
|
74
|
+
// (`$fui-brand` / success `#7fc9b3`): muted and mineral rather than neon.
|
|
75
|
+
// Danger is the deep clay complement of sage, warning its split-complement,
|
|
75
76
|
// info a cool teal-adjacent slate — so they read as one palette, not bolted-on.
|
|
76
77
|
|
|
77
|
-
/// Danger/error color — muted
|
|
78
|
+
/// Danger/error color — deep muted clay, sage's warm complement.
|
|
78
79
|
/// @type Color
|
|
79
|
-
$fui-danger: #
|
|
80
|
+
$fui-danger: #a54f46 !default;
|
|
80
81
|
|
|
81
82
|
/// Success color (Fragments brand default — sage; green means "contract passing")
|
|
82
83
|
/// @type Color
|
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
// Import computed values from seed system
|
|
25
25
|
@use "sass:string";
|
|
26
|
+
@use "sass:map";
|
|
26
27
|
@use "computed" as computed;
|
|
28
|
+
@use "measurements.generated" as measurements;
|
|
27
29
|
|
|
28
30
|
// --------------------------------------------
|
|
29
31
|
// Base Configuration
|
|
@@ -55,23 +57,18 @@ $fui-font-sans:
|
|
|
55
57
|
$fui-font-mono:
|
|
56
58
|
"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace !default;
|
|
57
59
|
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
$fui-font-size-
|
|
66
|
-
$fui-font-size-
|
|
67
|
-
$fui-font-size-
|
|
68
|
-
$fui-font-size-
|
|
69
|
-
$fui-font-size-
|
|
70
|
-
$fui-font-size-lg: 1.429rem !default; // 20px (h3, dialog/drawer/alert title)
|
|
71
|
-
$fui-font-size-xl: 1.714rem !default; // 24px (h2, section heading)
|
|
72
|
-
$fui-font-size-2xl: 2.143rem !default; // 30px (large display)
|
|
73
|
-
$fui-font-size-3xl: 2.571rem !default; // 36px (h1, page title)
|
|
74
|
-
$fui-font-size-4xl: 3.429rem !default; // 48px (hero display)
|
|
60
|
+
// Legacy public typography variables are generated compatibility views. New
|
|
61
|
+
// component work uses the semantic typography recipe.
|
|
62
|
+
$fui-font-size-2xs: map.get(measurements.$legacy, "typography", "fontSize", "2xs") !default;
|
|
63
|
+
$fui-font-size-xs: map.get(measurements.$legacy, "typography", "fontSize", "xs") !default;
|
|
64
|
+
$fui-font-size-sm: map.get(measurements.$legacy, "typography", "fontSize", "sm") !default;
|
|
65
|
+
$fui-font-size-base: map.get(measurements.$legacy, "typography", "fontSize", "base") !default;
|
|
66
|
+
$fui-font-size-md: map.get(measurements.$legacy, "typography", "fontSize", "md") !default;
|
|
67
|
+
$fui-font-size-lg: map.get(measurements.$legacy, "typography", "fontSize", "lg") !default;
|
|
68
|
+
$fui-font-size-xl: map.get(measurements.$legacy, "typography", "fontSize", "xl") !default;
|
|
69
|
+
$fui-font-size-2xl: map.get(measurements.$legacy, "typography", "fontSize", "2xl") !default;
|
|
70
|
+
$fui-font-size-3xl: map.get(measurements.$legacy, "typography", "fontSize", "3xl") !default;
|
|
71
|
+
$fui-font-size-4xl: map.get(measurements.$legacy, "typography", "fontSize", "4xl") !default;
|
|
75
72
|
|
|
76
73
|
// Dropdown/popup list items — menus, selects, comboboxes, listboxes, command
|
|
77
74
|
// palettes. One step below chrome text: a popup is a dense list scanned against
|
|
@@ -81,23 +78,73 @@ $fui-font-size-4xl: 3.429rem !default; // 48px (hero display)
|
|
|
81
78
|
// literal in the mixin would let the height calcs drift out of step with it.
|
|
82
79
|
$fui-popup-item-font-size: $fui-font-size-xs !default; // 12px
|
|
83
80
|
|
|
84
|
-
$fui-font-weight-normal:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
$fui-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
81
|
+
$fui-font-weight-normal: map.get(
|
|
82
|
+
measurements.$legacy,
|
|
83
|
+
"typography",
|
|
84
|
+
"fontWeight",
|
|
85
|
+
"normal"
|
|
86
|
+
) !default;
|
|
87
|
+
$fui-font-weight-medium: map.get(
|
|
88
|
+
measurements.$legacy,
|
|
89
|
+
"typography",
|
|
90
|
+
"fontWeight",
|
|
91
|
+
"medium"
|
|
92
|
+
) !default;
|
|
93
|
+
$fui-font-weight-semibold: map.get(
|
|
94
|
+
measurements.$legacy,
|
|
95
|
+
"typography",
|
|
96
|
+
"fontWeight",
|
|
97
|
+
"semibold"
|
|
98
|
+
) !default;
|
|
99
|
+
$fui-font-weight-bold: map.get(measurements.$legacy, "typography", "fontWeight", "bold") !default;
|
|
100
|
+
|
|
101
|
+
$fui-line-height-tight: map.get(measurements.$legacy, "typography", "lineHeight", "tight") !default;
|
|
102
|
+
$fui-line-height-normal: map.get(
|
|
103
|
+
measurements.$legacy,
|
|
104
|
+
"typography",
|
|
105
|
+
"lineHeight",
|
|
106
|
+
"normal"
|
|
107
|
+
) !default;
|
|
108
|
+
$fui-line-height-relaxed: map.get(
|
|
109
|
+
measurements.$legacy,
|
|
110
|
+
"typography",
|
|
111
|
+
"lineHeight",
|
|
112
|
+
"relaxed"
|
|
113
|
+
) !default;
|
|
114
|
+
$fui-line-height-display: map.get(
|
|
115
|
+
measurements.$legacy,
|
|
116
|
+
"typography",
|
|
117
|
+
"lineHeight",
|
|
118
|
+
"display"
|
|
119
|
+
) !default;
|
|
120
|
+
$fui-line-height-prose: map.get(measurements.$legacy, "typography", "lineHeight", "prose") !default;
|
|
94
121
|
|
|
95
122
|
// Letter spacing — keep neutral by default so dense product chrome, headings,
|
|
96
123
|
// and generated app surfaces do not drift into separate typographic systems.
|
|
97
|
-
$fui-letter-spacing-tight:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
124
|
+
$fui-letter-spacing-tight: map.get(
|
|
125
|
+
measurements.$legacy,
|
|
126
|
+
"typography",
|
|
127
|
+
"letterSpacing",
|
|
128
|
+
"tight"
|
|
129
|
+
) !default;
|
|
130
|
+
$fui-letter-spacing-normal: map.get(
|
|
131
|
+
measurements.$legacy,
|
|
132
|
+
"typography",
|
|
133
|
+
"letterSpacing",
|
|
134
|
+
"normal"
|
|
135
|
+
) !default;
|
|
136
|
+
$fui-letter-spacing-display: map.get(
|
|
137
|
+
measurements.$legacy,
|
|
138
|
+
"typography",
|
|
139
|
+
"letterSpacing",
|
|
140
|
+
"display"
|
|
141
|
+
) !default;
|
|
142
|
+
$fui-letter-spacing-wide: map.get(
|
|
143
|
+
measurements.$legacy,
|
|
144
|
+
"typography",
|
|
145
|
+
"letterSpacing",
|
|
146
|
+
"wide"
|
|
147
|
+
) !default;
|
|
101
148
|
|
|
102
149
|
// --------------------------------------------
|
|
103
150
|
// Spacing (derived from density seed)
|
|
@@ -323,19 +370,23 @@ $fui-breakpoint-xl: 1280px !default;
|
|
|
323
370
|
// Component-specific tokens
|
|
324
371
|
// --------------------------------------------
|
|
325
372
|
|
|
326
|
-
//
|
|
327
|
-
|
|
328
|
-
$fui-
|
|
329
|
-
$fui-
|
|
330
|
-
$fui-
|
|
331
|
-
$fui-
|
|
332
|
-
light-dark(color-mix(in srgb, white 72%, transparent), color-mix(in srgb, white 5%, transparent)) !default;
|
|
373
|
+
// Interactive control heights are fixed geometry. Density still governs
|
|
374
|
+
// composition spacing, but it cannot resize a named control.
|
|
375
|
+
$fui-control-height-xs: measurements.target-value("controlTrack", "micro") !default;
|
|
376
|
+
$fui-control-height-sm: measurements.target-value("controlTrack", "sm") !default;
|
|
377
|
+
$fui-control-height-md: measurements.target-value("controlTrack", "md") !default;
|
|
378
|
+
$fui-control-height-lg: measurements.target-value("controlTrack", "lg") !default;
|
|
333
379
|
|
|
334
|
-
//
|
|
335
|
-
|
|
336
|
-
$fui-
|
|
337
|
-
$fui-
|
|
338
|
-
$fui-
|
|
380
|
+
// Legacy aliases — prefer --fui-control-height-* in new code
|
|
381
|
+
$fui-button-height-xs: $fui-control-height-xs !default;
|
|
382
|
+
$fui-button-height-sm: $fui-control-height-sm !default;
|
|
383
|
+
$fui-button-height-md: $fui-control-height-md !default;
|
|
384
|
+
$fui-button-height-lg: $fui-control-height-lg !default;
|
|
385
|
+
$fui-button-outlined-shadow: none !default;
|
|
386
|
+
|
|
387
|
+
$fui-input-height-sm: measurements.target-value("fieldTrack", "sm") !default;
|
|
388
|
+
$fui-input-height: measurements.target-value("fieldTrack", "md") !default;
|
|
389
|
+
$fui-input-height-lg: measurements.target-value("fieldTrack", "lg") !default;
|
|
339
390
|
|
|
340
391
|
// Touch targets (derived from density seed)
|
|
341
392
|
$fui-touch-sm: computed.$computed-touch-sm !default;
|
|
@@ -346,16 +397,17 @@ $fui-touch-lg: computed.$computed-touch-lg !default;
|
|
|
346
397
|
// Keep this token globally available to preserve a product-control floor for
|
|
347
398
|
// touch/pointer targets. WCAG 2.2 allows 24px, but Fragments uses 32px so
|
|
348
399
|
// field controls, toolbar buttons, tabs, and picker triggers align.
|
|
349
|
-
$fui-target-size-min:
|
|
400
|
+
$fui-target-size-min: map.get(measurements.$legacy, "touch", "minimum") !default;
|
|
350
401
|
$fui-target-size-comfortable: $fui-touch-md !default;
|
|
351
402
|
|
|
352
|
-
//
|
|
353
|
-
|
|
354
|
-
$fui-icon-
|
|
355
|
-
$fui-icon-
|
|
356
|
-
$fui-icon-
|
|
357
|
-
$fui-icon-
|
|
358
|
-
$fui-icon-
|
|
403
|
+
// Fixed icon geometry. The legacy rem records remain frozen for compatibility
|
|
404
|
+
// auditing, while active Sass and runtime values project the accepted px targets.
|
|
405
|
+
$fui-icon-xs: measurements.target-value("icon", "xs") !default;
|
|
406
|
+
$fui-icon-sm: measurements.target-value("icon", "sm") !default;
|
|
407
|
+
$fui-icon-md: measurements.target-value("icon", "md") !default;
|
|
408
|
+
$fui-icon-lg: measurements.target-value("icon", "lg") !default;
|
|
409
|
+
$fui-icon-xl: measurements.target-value("icon", "xl") !default;
|
|
410
|
+
$fui-icon-2xl: measurements.target-value("icon", "2xl") !default;
|
|
359
411
|
|
|
360
412
|
// Animation offsets
|
|
361
413
|
$fui-anim-offset-sm: 4px !default; // Small slide animation
|
|
@@ -365,7 +417,11 @@ $fui-anim-offset-md: 8px !default; // Medium slide animation
|
|
|
365
417
|
$fui-sidebar-item-height: computed.$computed-sidebar-item-height !default; // density-responsive (compact/default: 32px, relaxed: 36px)
|
|
366
418
|
|
|
367
419
|
// AppShell Layout
|
|
368
|
-
$fui-appshell-header-height:
|
|
420
|
+
$fui-appshell-header-height: map.get(
|
|
421
|
+
measurements.$legacy,
|
|
422
|
+
"navigation",
|
|
423
|
+
"appShellHeaderHeight"
|
|
424
|
+
) !default;
|
|
369
425
|
$fui-header-z-index: 40 !default;
|
|
370
426
|
|
|
371
427
|
// CodeBlock background — shared with Markdown's <pre> prose styling — and
|
|
@@ -394,6 +450,7 @@ $fui-code-selection-bg: color-mix(
|
|
|
394
450
|
// Base configuration
|
|
395
451
|
font-size: #{$fui-base-font-size};
|
|
396
452
|
--fui-base-unit: #{$fui-base-unit};
|
|
453
|
+
@include measurements.emit-fixed-custom-properties;
|
|
397
454
|
|
|
398
455
|
// Seed colors — the 5 configurable seeds exposed as custom properties.
|
|
399
456
|
// Tracks SCSS seed variables, so compile-time customization is reflected.
|
|
@@ -614,10 +671,9 @@ $fui-code-selection-bg: color-mix(
|
|
|
614
671
|
--fui-kbd-radius: var(--fui-radius-sm);
|
|
615
672
|
--fui-kbd-reserved-width: 2.714rem; // 38px, enough for "⌘K"
|
|
616
673
|
|
|
617
|
-
// Button chrome.
|
|
618
|
-
//
|
|
619
|
-
//
|
|
620
|
-
// raised-gradient recipe with crisp border, top highlight, and pressed inset.
|
|
674
|
+
// Button chrome. Every theme uses flat fills: hierarchy comes from colour,
|
|
675
|
+
// border, and state contrast rather than a second raised/gradient material.
|
|
676
|
+
// Radius remains brand-aware for compatibility with consumer themes.
|
|
621
677
|
--fui-button-primary-base: light-dark(#006b57, #006b57);
|
|
622
678
|
--fui-button-primary-hover: light-dark(#187762, #187762);
|
|
623
679
|
--fui-button-primary-active: light-dark(#005f4c, #005f4c);
|
|
@@ -634,76 +690,28 @@ $fui-code-selection-bg: color-mix(
|
|
|
634
690
|
--fui-button-primary-color: #fff;
|
|
635
691
|
|
|
636
692
|
@if $fui-brand-is-default {
|
|
637
|
-
// Flat solid pill — hybrid-skin treatment.
|
|
638
693
|
--fui-button-radius: var(--fui-radius-full);
|
|
639
|
-
--fui-button-primary-bg: var(--fui-button-primary-base);
|
|
640
|
-
--fui-button-primary-bg-hover: var(--fui-button-primary-hover);
|
|
641
|
-
--fui-button-primary-bg-active: var(--fui-button-primary-active);
|
|
642
|
-
--fui-button-primary-shadow: none;
|
|
643
|
-
--fui-button-primary-shadow-active: inset
|
|
644
|
-
0
|
|
645
|
-
1px
|
|
646
|
-
2px
|
|
647
|
-
color-mix(in srgb, black 22%, transparent);
|
|
648
694
|
} @else {
|
|
649
|
-
// Raised-gradient recipe for consumer-branded builds.
|
|
650
695
|
--fui-button-radius: var(--fui-radius-lg);
|
|
651
|
-
--fui-button-primary-bg: linear-gradient(
|
|
652
|
-
to bottom,
|
|
653
|
-
color-mix(in srgb, var(--fui-button-primary-base) 78%, white 22%) 0%,
|
|
654
|
-
var(--fui-button-primary-base) 52%,
|
|
655
|
-
color-mix(in srgb, var(--fui-button-primary-active) 88%, black 12%) 100%
|
|
656
|
-
);
|
|
657
|
-
--fui-button-primary-bg-hover: linear-gradient(
|
|
658
|
-
to bottom,
|
|
659
|
-
color-mix(in srgb, var(--fui-button-primary-hover) 76%, white 24%) 0%,
|
|
660
|
-
var(--fui-button-primary-hover) 52%,
|
|
661
|
-
color-mix(in srgb, var(--fui-button-primary-active) 84%, black 16%) 100%
|
|
662
|
-
);
|
|
663
|
-
--fui-button-primary-bg-active: linear-gradient(
|
|
664
|
-
to bottom,
|
|
665
|
-
color-mix(in srgb, var(--fui-button-primary-active) 88%, black 12%) 0%,
|
|
666
|
-
var(--fui-button-primary-active) 100%
|
|
667
|
-
);
|
|
668
|
-
--fui-button-primary-shadow:
|
|
669
|
-
inset 0 1px 0 color-mix(in srgb, white 30%, transparent),
|
|
670
|
-
inset 0 -1px 0 color-mix(in srgb, black 18%, transparent),
|
|
671
|
-
0 1px 1px color-mix(in srgb, black 16%, transparent);
|
|
672
|
-
--fui-button-primary-shadow-active:
|
|
673
|
-
inset 0 1px 2px color-mix(in srgb, black 30%, transparent),
|
|
674
|
-
0 1px 0 color-mix(in srgb, white 8%, transparent);
|
|
675
696
|
}
|
|
676
697
|
|
|
677
|
-
--fui-button-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
color-mix(in srgb, var(--fui-bg-elevated) 96%, var(--fui-text-primary) 4%)
|
|
687
|
-
)
|
|
688
|
-
100%
|
|
698
|
+
--fui-button-primary-bg: var(--fui-button-primary-base);
|
|
699
|
+
--fui-button-primary-bg-hover: var(--fui-button-primary-hover);
|
|
700
|
+
--fui-button-primary-bg-active: var(--fui-button-primary-active);
|
|
701
|
+
--fui-button-primary-shadow: none;
|
|
702
|
+
--fui-button-primary-shadow-active: none;
|
|
703
|
+
|
|
704
|
+
--fui-button-neutral-bg: light-dark(
|
|
705
|
+
color-mix(in srgb, var(--fui-bg-elevated) 94%, var(--fui-text-primary) 6%),
|
|
706
|
+
color-mix(in srgb, var(--fui-bg-elevated) 92%, var(--fui-text-primary) 8%)
|
|
689
707
|
);
|
|
690
|
-
--fui-button-neutral-bg-hover:
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
color-mix(in srgb, var(--fui-bg-elevated) 99%, var(--fui-text-primary) 1%),
|
|
694
|
-
color-mix(in srgb, var(--fui-bg-elevated) 82%, var(--fui-text-primary) 18%)
|
|
695
|
-
)
|
|
696
|
-
0%,
|
|
697
|
-
light-dark(
|
|
698
|
-
color-mix(in srgb, var(--fui-bg-elevated) 88%, var(--fui-text-primary) 12%),
|
|
699
|
-
color-mix(in srgb, var(--fui-bg-elevated) 92%, var(--fui-text-primary) 8%)
|
|
700
|
-
)
|
|
701
|
-
100%
|
|
708
|
+
--fui-button-neutral-bg-hover: light-dark(
|
|
709
|
+
color-mix(in srgb, var(--fui-bg-elevated) 90%, var(--fui-text-primary) 10%),
|
|
710
|
+
color-mix(in srgb, var(--fui-bg-elevated) 86%, var(--fui-text-primary) 14%)
|
|
702
711
|
);
|
|
703
|
-
--fui-button-neutral-bg-active:
|
|
704
|
-
|
|
705
|
-
color-mix(in srgb, var(--fui-bg-elevated)
|
|
706
|
-
color-mix(in srgb, var(--fui-bg-elevated) 90%, var(--fui-text-primary) 10%) 100%
|
|
712
|
+
--fui-button-neutral-bg-active: light-dark(
|
|
713
|
+
color-mix(in srgb, var(--fui-bg-elevated) 84%, var(--fui-text-primary) 16%),
|
|
714
|
+
color-mix(in srgb, var(--fui-bg-elevated) 80%, var(--fui-text-primary) 20%)
|
|
707
715
|
);
|
|
708
716
|
--fui-button-neutral-border: color-mix(
|
|
709
717
|
in srgb,
|
|
@@ -716,18 +724,9 @@ $fui-code-selection-bg: color-mix(
|
|
|
716
724
|
var(--fui-text-primary) 42%
|
|
717
725
|
);
|
|
718
726
|
--fui-button-neutral-color: var(--fui-text-primary);
|
|
719
|
-
--fui-button-outlined-shadow:
|
|
720
|
-
--fui-button-neutral-shadow:
|
|
721
|
-
|
|
722
|
-
light-dark(
|
|
723
|
-
color-mix(in srgb, white 88%, transparent),
|
|
724
|
-
color-mix(in srgb, white 7%, transparent)
|
|
725
|
-
),
|
|
726
|
-
inset 0 -1px 0 color-mix(in srgb, var(--fui-text-primary) 7%, transparent),
|
|
727
|
-
0 1px 1px color-mix(in srgb, black 12%, transparent);
|
|
728
|
-
--fui-button-neutral-shadow-active:
|
|
729
|
-
inset 0 1px 2px color-mix(in srgb, black 16%, transparent),
|
|
730
|
-
inset 0 0 0 1px color-mix(in srgb, var(--fui-text-primary) 6%, transparent);
|
|
727
|
+
--fui-button-outlined-shadow: none;
|
|
728
|
+
--fui-button-neutral-shadow: none;
|
|
729
|
+
--fui-button-neutral-shadow-active: none;
|
|
731
730
|
|
|
732
731
|
--fui-code-bg: #{$fui-code-bg};
|
|
733
732
|
--fui-code-selection-bg: #{$fui-code-selection-bg};
|
|
@@ -803,8 +802,12 @@ $fui-code-selection-bg: color-mix(
|
|
|
803
802
|
--fui-tabs-pill-active-bg: color-mix(in srgb, var(--fui-text-primary) 9%, transparent);
|
|
804
803
|
--fui-tabs-pill-active-border: transparent;
|
|
805
804
|
--fui-tabs-pill-active-shadow: none;
|
|
806
|
-
--fui-toggle-group-selected-bg:
|
|
807
|
-
--fui-toggle-group-selected-border:
|
|
805
|
+
--fui-toggle-group-selected-bg: var(--fui-selection-bg);
|
|
806
|
+
--fui-toggle-group-selected-border: color-mix(
|
|
807
|
+
in srgb,
|
|
808
|
+
var(--fui-color-accent) 42%,
|
|
809
|
+
transparent
|
|
810
|
+
);
|
|
808
811
|
--fui-toggle-group-selected-shadow: none;
|
|
809
812
|
|
|
810
813
|
// Shadows (not <color> type — light-dark() can't be used, handled in dark overrides)
|
|
@@ -826,14 +829,18 @@ $fui-code-selection-bg: color-mix(
|
|
|
826
829
|
#{$fui-dark-scrollbar-thumb-hover}
|
|
827
830
|
);
|
|
828
831
|
|
|
829
|
-
//
|
|
830
|
-
--fui-
|
|
831
|
-
--fui-
|
|
832
|
-
--fui-
|
|
833
|
-
--fui-
|
|
834
|
-
--fui-
|
|
835
|
-
--fui-
|
|
836
|
-
--fui-
|
|
832
|
+
// Fixed component tracks plus compatibility aliases.
|
|
833
|
+
--fui-control-height-xs: #{$fui-control-height-xs};
|
|
834
|
+
--fui-control-height-sm: #{$fui-control-height-sm};
|
|
835
|
+
--fui-control-height-md: #{$fui-control-height-md};
|
|
836
|
+
--fui-control-height-lg: #{$fui-control-height-lg};
|
|
837
|
+
--fui-button-height-xs: var(--fui-control-height-xs);
|
|
838
|
+
--fui-button-height-sm: var(--fui-control-height-sm);
|
|
839
|
+
--fui-button-height-md: var(--fui-control-height-md);
|
|
840
|
+
--fui-button-height-lg: var(--fui-control-height-lg);
|
|
841
|
+
--fui-input-height-sm: var(--fui-field-track-sm);
|
|
842
|
+
--fui-input-height: var(--fui-field-track-md);
|
|
843
|
+
--fui-input-height-lg: var(--fui-field-track-lg);
|
|
837
844
|
|
|
838
845
|
// Touch targets (density-responsive, Fragments control floor: ≥32px)
|
|
839
846
|
--fui-touch-sm: #{$fui-touch-sm};
|
|
@@ -847,14 +854,22 @@ $fui-code-selection-bg: color-mix(
|
|
|
847
854
|
// AppShell Layout
|
|
848
855
|
--fui-appshell-header-height: #{$fui-appshell-header-height};
|
|
849
856
|
--fui-header-z-index: #{$fui-header-z-index};
|
|
857
|
+
}
|
|
850
858
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
859
|
+
// Named runtime selectors use the same generated profiles as compile-time
|
|
860
|
+
// Sass seeds. Attribute specificity intentionally matches :root so these
|
|
861
|
+
// later rules can override the compiled default on either the document root
|
|
862
|
+
// or a scoped provider without inline numeric maps.
|
|
863
|
+
@each $density in measurements.$density-profile-names {
|
|
864
|
+
[data-fui-density="#{$density}"] {
|
|
865
|
+
@include measurements.emit-density-profile($density);
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
@each $radius-style in measurements.$radius-profile-names {
|
|
870
|
+
[data-fui-radius-style="#{$radius-style}"] {
|
|
871
|
+
@include measurements.emit-radius-profile($radius-style);
|
|
872
|
+
}
|
|
858
873
|
}
|
|
859
874
|
|
|
860
875
|
// Dark mode via data-theme attribute (manual toggle).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { MEASUREMENT_PROFILES } from "../measurements";
|
|
2
|
+
|
|
3
|
+
export type LayoutGapName = "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
4
|
+
export type LayoutGapStep = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
5
|
+
export type LayoutGapValue = LayoutGapName | LayoutGapStep;
|
|
6
|
+
|
|
7
|
+
const namedSteps: Record<LayoutGapName, keyof typeof MEASUREMENT_PROFILES.rawSpace> = {
|
|
8
|
+
none: "0",
|
|
9
|
+
xs: "4",
|
|
10
|
+
sm: "8",
|
|
11
|
+
md: "12",
|
|
12
|
+
lg: "16",
|
|
13
|
+
xl: "24",
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const numericSteps: Record<LayoutGapStep, keyof typeof MEASUREMENT_PROFILES.rawSpace> = {
|
|
17
|
+
1: "4",
|
|
18
|
+
2: "8",
|
|
19
|
+
3: "12",
|
|
20
|
+
4: "16",
|
|
21
|
+
5: "20",
|
|
22
|
+
6: "24",
|
|
23
|
+
7: "32",
|
|
24
|
+
8: "40",
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export function resolveLayoutGap(value: LayoutGapValue): string {
|
|
28
|
+
const step = typeof value === "number" ? numericSteps[value] : namedSteps[value];
|
|
29
|
+
const fallback = MEASUREMENT_PROFILES.rawSpace[step];
|
|
30
|
+
return `var(--fui-raw-space-${step}, ${fallback})`;
|
|
31
|
+
}
|