@usefragments/ui 1.5.4 → 1.7.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 +4 -4
- package/dist/assets/fragments-wordmark.cjs +2 -2
- package/dist/assets/fragments-wordmark.d.ts.map +1 -1
- package/dist/assets/fragments-wordmark.js +2 -2
- package/dist/assets/ui.css +10468 -6909
- package/dist/chart.cjs +31 -26
- package/dist/chart.js +31 -26
- package/dist/codeblock.cjs +55 -29
- package/dist/codeblock.js +55 -29
- package/dist/colorpicker.cjs +5 -2
- package/dist/colorpicker.js +5 -2
- 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 +15 -12
- package/dist/components/Alert/Alert.module.scss.js +15 -12
- package/dist/components/Alert/index.cjs +7 -1
- package/dist/components/Alert/index.d.ts +12 -6
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +7 -1
- 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/Box/index.cjs +64 -75
- package/dist/components/Box/index.d.ts +16 -16
- package/dist/components/Box/index.d.ts.map +1 -1
- package/dist/components/Box/index.js +64 -75
- 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 +30 -18
- package/dist/components/Card/Card.module.scss.js +31 -19
- package/dist/components/Card/index.cjs +8 -0
- package/dist/components/Card/index.d.ts +12 -2
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +8 -0
- 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 +6 -8
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +6 -8
- 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 +6 -6
- package/dist/components/Chip/index.d.ts +1 -1
- package/dist/components/Chip/index.js +4 -4
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
- package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
- package/dist/components/CodeBlock/css-variables-theme.js +98 -0
- package/dist/components/CodeBlock/index.d.ts +17 -3
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- 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 +21 -5
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +21 -5
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/Command/index.cjs +26 -15
- package/dist/components/Command/index.d.ts +2 -2
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +26 -15
- 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.icons.cjs +6 -33
- package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.icons.js +6 -33
- 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/Dialog/index.cjs +11 -14
- package/dist/components/Dialog/index.d.ts +7 -7
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +11 -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/Editor/index.d.ts +10 -10
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
- package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
- package/dist/components/EmptyState/index.cjs +8 -6
- package/dist/components/EmptyState/index.d.ts +9 -4
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +8 -6
- 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 +18 -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 +18 -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 +18 -38
- package/dist/components/Header/index.d.ts +15 -11
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +18 -38
- 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/IconButton/index.cjs +2 -1
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.js +2 -1
- package/dist/components/Image/Image.module.scss.cjs +27 -27
- package/dist/components/Image/Image.module.scss.js +27 -27
- 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 +14 -10
- package/dist/components/Link/Link.module.scss.js +14 -10
- package/dist/components/Link/index.d.ts +1 -1
- package/dist/components/Link/index.d.ts.map +1 -1
- 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 +34 -34
- package/dist/components/Loading/Loading.module.scss.js +34 -34
- 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/Markdown/index.d.ts +2 -2
- package/dist/components/Markdown/index.d.ts.map +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 +34 -31
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
- package/dist/components/NavigationMenu/index.cjs +32 -15
- package/dist/components/NavigationMenu/index.d.ts +12 -6
- package/dist/components/NavigationMenu/index.d.ts.map +1 -1
- package/dist/components/NavigationMenu/index.js +32 -15
- 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 +6 -5
- 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 +17 -38
- package/dist/components/Sidebar/index.d.ts +23 -18
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +17 -38
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
- package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
- 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 +21 -30
- package/dist/components/Table/Table.module.scss.js +21 -30
- 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/TableOfContents/index.cjs +13 -9
- package/dist/components/TableOfContents/index.d.ts +5 -3
- package/dist/components/TableOfContents/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.js +13 -9
- 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 +28 -8
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +28 -8
- package/dist/components/Text/Text.module.scss.cjs +105 -57
- package/dist/components/Text/Text.module.scss.js +105 -57
- package/dist/components/Text/index.cjs +49 -33
- package/dist/components/Text/index.d.ts +30 -19
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +49 -33
- 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 +16 -210
- 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 +11 -205
- package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
- package/dist/components/ThemeToggle/index.cjs +140 -0
- package/dist/components/ThemeToggle/index.d.ts +26 -0
- package/dist/components/ThemeToggle/index.d.ts.map +1 -0
- package/dist/components/ThemeToggle/index.js +140 -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/Tooltip/index.cjs +24 -40
- package/dist/components/Tooltip/index.d.ts +4 -4
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +24 -40
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
- package/dist/components/VisuallyHidden/index.d.ts +2 -2
- package/dist/data-table.cjs +14 -10
- package/dist/data-table.js +14 -10
- package/dist/datepicker.cjs +5 -3
- package/dist/datepicker.js +5 -3
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +101 -99
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +22 -30
- package/dist/measurements/generated.cjs +304 -0
- package/dist/measurements/generated.d.ts +268 -0
- package/dist/measurements/generated.d.ts.map +1 -0
- package/dist/measurements/generated.js +304 -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/a11y.cjs +5 -2
- package/dist/utils/a11y.d.ts +5 -5
- package/dist/utils/a11y.d.ts.map +1 -1
- package/dist/utils/a11y.js +5 -2
- package/dist/utils/canonical-stamp.cjs +2 -8
- package/dist/utils/canonical-stamp.d.ts.map +1 -1
- package/dist/utils/canonical-stamp.js +1 -7
- package/dist/utils/css-warning.cjs +1 -1
- package/dist/utils/css-warning.js +1 -1
- package/dist/utils/env.cjs +17 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +17 -0
- package/dist/utils/keyboard-shortcuts.cjs +3 -10
- package/dist/utils/keyboard-shortcuts.d.ts +4 -4
- package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
- package/dist/utils/keyboard-shortcuts.js +3 -10
- 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 +14 -48
- 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 +14 -48
- 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 +25 -4
- package/src/assets/fragments-logo.tsx +2 -2
- package/src/assets/fragments-wordmark.tsx +4 -2
- package/src/components/Accordion/Accordion.contract.json +24 -48
- package/src/components/Accordion/Accordion.module.scss +31 -52
- package/src/components/Alert/Alert.contract.json +37 -53
- package/src/components/Alert/Alert.module.scss +52 -44
- package/src/components/Alert/index.tsx +55 -29
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +59 -43
- package/src/components/AppShell/index.tsx +8 -4
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +25 -60
- package/src/components/Avatar/index.tsx +152 -146
- package/src/components/Badge/Badge.contract.json +37 -42
- package/src/components/Badge/Badge.module.scss +59 -47
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/Box.module.scss +253 -81
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
- package/src/components/Button/Button.module.scss +60 -64
- package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
- 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 +284 -167
- package/src/components/Card/index.tsx +21 -2
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/Chart.module.scss +28 -29
- package/src/components/Chart/index.tsx +72 -55
- package/src/components/Checkbox/Checkbox.contract.json +24 -24
- package/src/components/Checkbox/Checkbox.module.scss +75 -87
- package/src/components/Checkbox/index.tsx +8 -11
- package/src/components/Chip/Chip.contract.json +36 -42
- package/src/components/Chip/Chip.module.scss +25 -36
- package/src/components/Chip/index.tsx +5 -5
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
- package/src/components/CodeBlock/css-variables-theme.ts +102 -0
- package/src/components/CodeBlock/index.tsx +91 -35
- package/src/components/Collapsible/Collapsible.contract.json +21 -36
- package/src/components/Collapsible/Collapsible.module.scss +29 -63
- package/src/components/Collapsible/index.tsx +22 -26
- package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
- package/src/components/ColorPicker/index.tsx +7 -2
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +61 -74
- package/src/components/Combobox/index.tsx +34 -6
- package/src/components/Command/Command.contract.json +21 -43
- package/src/components/Command/Command.module.scss +47 -77
- package/src/components/Command/index.tsx +58 -47
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/ConversationList/ConversationList.module.scss +20 -78
- package/src/components/ConversationList/index.tsx +55 -59
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +81 -217
- package/src/components/DataTable/index.tsx +28 -32
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +66 -38
- package/src/components/DatePicker/index.tsx +7 -3
- package/src/components/Dialog/Dialog.module.scss +45 -69
- package/src/components/Dialog/index.tsx +47 -37
- package/src/components/Drawer/Drawer.contract.json +22 -36
- package/src/components/Drawer/Drawer.module.scss +93 -99
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Editor/Editor.contract.json +31 -48
- package/src/components/Editor/Editor.module.scss +137 -220
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +31 -43
- package/src/components/EmptyState/EmptyState.module.scss +45 -84
- package/src/components/EmptyState/index.tsx +48 -23
- package/src/components/Field/Field.contract.json +28 -45
- package/src/components/Field/Field.module.scss +9 -11
- package/src/components/Field/index.tsx +31 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +23 -8
- package/src/components/Form/Form.contract.json +27 -40
- package/src/components/Form/Form.module.scss +9 -4
- package/src/components/Form/index.tsx +22 -7
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/Grid.module.scss +159 -63
- package/src/components/Grid/index.tsx +114 -133
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +56 -48
- package/src/components/Header/index.tsx +134 -121
- package/src/components/Icon/Icon.contract.json +22 -62
- package/src/components/Icon/Icon.module.scss +16 -0
- package/src/components/Icon/index.tsx +74 -86
- package/src/components/IconButton/IconButton.contract.json +34 -18
- package/src/components/IconButton/IconButton.module.scss +15 -26
- package/src/components/IconButton/index.tsx +2 -1
- package/src/components/Image/Image.contract.json +23 -56
- package/src/components/Input/Input.contract.json +26 -32
- package/src/components/Input/Input.module.scss +69 -56
- package/src/components/Input/index.tsx +1 -2
- package/src/components/Link/Link.contract.json +32 -52
- package/src/components/Link/Link.module.scss +29 -13
- package/src/components/Link/index.tsx +1 -1
- package/src/components/List/List.contract.json +23 -52
- package/src/components/List/List.module.scss +16 -21
- package/src/components/List/index.tsx +4 -10
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Listbox/Listbox.module.scss +26 -54
- package/src/components/Loading/Loading.contract.json +37 -61
- package/src/components/Loading/Loading.module.scss +33 -40
- package/src/components/Loading/index.tsx +68 -97
- package/src/components/Main/Main.contract.json +17 -9
- package/src/components/Main/Main.module.scss +3 -5
- package/src/components/Markdown/Markdown.contract.json +22 -43
- package/src/components/Markdown/Markdown.module.scss +72 -182
- package/src/components/Markdown/index.tsx +50 -51
- package/src/components/Menu/Menu.contract.json +25 -41
- package/src/components/Menu/Menu.module.scss +63 -133
- package/src/components/Menu/index.tsx +57 -89
- package/src/components/Message/Message.contract.json +29 -52
- package/src/components/Message/Message.module.scss +60 -143
- package/src/components/Message/index.tsx +16 -6
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +34 -27
- package/src/components/Pagination/index.tsx +7 -2
- package/src/components/Popover/Popover.contract.json +24 -46
- package/src/components/Popover/Popover.module.scss +43 -78
- package/src/components/Progress/Progress.contract.json +32 -28
- package/src/components/Progress/Progress.module.scss +64 -43
- package/src/components/Progress/geometry.ts +41 -0
- package/src/components/Progress/index.tsx +44 -30
- package/src/components/Prompt/Prompt.contract.json +31 -47
- package/src/components/Prompt/Prompt.module.scss +58 -87
- package/src/components/Prompt/index.tsx +6 -5
- package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
- package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
- package/src/components/RadioGroup/index.tsx +7 -9
- package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
- package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
- package/src/components/ScrollArea/index.tsx +85 -67
- package/src/components/ScrollArea/scroll-state.ts +87 -0
- package/src/components/Select/Select.module.scss +55 -43
- package/src/components/Select/index.tsx +6 -2
- package/src/components/Separator/Separator.contract.json +24 -48
- package/src/components/Separator/Separator.module.scss +29 -19
- package/src/components/Separator/index.tsx +55 -51
- package/src/components/Sidebar/Sidebar.contract.json +42 -62
- package/src/components/Sidebar/Sidebar.module.scss +117 -106
- package/src/components/Sidebar/index.tsx +169 -162
- package/src/components/Skeleton/Skeleton.contract.json +28 -54
- package/src/components/Skeleton/Skeleton.module.scss +51 -34
- package/src/components/Skeleton/index.tsx +65 -72
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +33 -27
- package/src/components/Stack/Stack.contract.json +29 -56
- package/src/components/Stack/Stack.module.scss +110 -38
- package/src/components/Stack/index.tsx +157 -127
- package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
- package/src/components/Switch/Switch.module.scss +255 -0
- package/src/components/{Toggle → Switch}/index.tsx +5 -21
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +50 -129
- package/src/components/Table/index.tsx +13 -6
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
- package/src/components/TableOfContents/index.tsx +26 -9
- package/src/components/Tabs/Tabs.contract.json +24 -45
- package/src/components/Tabs/Tabs.module.scss +28 -23
- package/src/components/Tabs/index.tsx +17 -5
- package/src/components/Text/Text.contract.json +30 -72
- package/src/components/Text/Text.module.scss +43 -7
- package/src/components/Text/index.tsx +136 -63
- package/src/components/Textarea/Textarea.contract.json +25 -43
- package/src/components/Textarea/Textarea.module.scss +58 -40
- package/src/components/Textarea/index.tsx +5 -12
- package/src/components/Theme/Theme.contract.json +32 -51
- package/src/components/Theme/context.ts +42 -0
- package/src/components/Theme/index.tsx +16 -310
- package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
- package/src/components/ThemeToggle/index.tsx +180 -0
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
- package/src/components/ThinkingIndicator/index.tsx +44 -54
- package/src/components/Toast/Toast.contract.json +35 -61
- package/src/components/Toast/Toast.module.scss +62 -139
- package/src/components/Toggle/index.ts +7 -0
- package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
- package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
- package/src/components/ToggleGroup/index.tsx +5 -3
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/Tooltip.module.scss +23 -39
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +4 -3
- package/src/measurements/MeasurementTargets.module.scss +229 -0
- package/src/measurements/generated.ts +324 -0
- package/src/measurements/index.ts +8 -0
- package/src/measurements/measurements.json +368 -0
- package/src/recipes/_action.scss +138 -0
- package/src/recipes/_boolean-range.scss +116 -0
- package/src/recipes/_feedback.scss +171 -0
- package/src/recipes/_field.scss +102 -0
- package/src/recipes/_layout.scss +74 -0
- package/src/recipes/_navigation.scss +110 -0
- package/src/recipes/_overlay.scss +191 -0
- package/src/recipes/_popup.scss +102 -0
- package/src/recipes/_prose.scss +182 -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 +119 -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/scss.d.ts +1 -1
- package/src/styles/globals.scss +21 -20
- package/src/tokens/_component-properties.scss +2 -2
- package/src/tokens/_computed.scss +14 -25
- package/src/tokens/_density.scss +41 -132
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +96 -0
- package/src/tokens/_measurements.generated.scss +617 -0
- package/src/tokens/_mixins.scss +7 -284
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_property-registrations.scss +96 -92
- package/src/tokens/_radius.scss +16 -70
- package/src/tokens/_seeds.scss +24 -23
- package/src/tokens/_variables.scss +338 -178
- package/src/utils/a11y.tsx +69 -69
- package/src/utils/aria.ts +3 -3
- package/src/utils/canonical-stamp.ts +2 -12
- package/src/utils/css-warning.ts +7 -7
- package/src/utils/env.ts +25 -0
- package/src/utils/keyboard-shortcuts.ts +131 -126
- package/src/utils/layout-spacing.ts +31 -0
- package/src/utils/seed-derivation.ts +144 -178
- 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/Button/Button.contract.json +0 -218
- package/src/components/Card/Card.contract.json +0 -175
- package/src/components/DataTable/DataTable.contract.json +0 -302
- package/src/components/Dialog/Dialog.contract.json +0 -159
- package/src/components/Select/Select.contract.json +0 -259
- package/src/components/Switch/index.ts +0 -3
- package/src/components/Theme/ThemeToggle.module.scss +0 -91
- package/src/components/Toggle/Toggle.module.scss +0 -244
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "ColorPicker",
|
|
4
|
-
"description": "
|
|
5
|
-
"category": "
|
|
6
|
-
"tags": [
|
|
7
|
-
"color",
|
|
8
|
-
"picker",
|
|
9
|
-
"input",
|
|
10
|
-
"hex",
|
|
11
|
-
"swatch",
|
|
12
|
-
"theme"
|
|
13
|
-
],
|
|
4
|
+
"description": "Selects a color through a visual picker and hexadecimal input.",
|
|
5
|
+
"category": "inputs",
|
|
6
|
+
"tags": ["color", "picker", "input", "hex", "swatch", "theme"],
|
|
14
7
|
"status": "stable",
|
|
15
8
|
"dependencies": [
|
|
16
9
|
{
|
|
@@ -88,11 +81,7 @@
|
|
|
88
81
|
"description": "Size variant",
|
|
89
82
|
"default": "md",
|
|
90
83
|
"required": false,
|
|
91
|
-
"values": [
|
|
92
|
-
"sm",
|
|
93
|
-
"md",
|
|
94
|
-
"lg"
|
|
95
|
-
]
|
|
84
|
+
"values": ["sm", "md", "lg"]
|
|
96
85
|
},
|
|
97
86
|
"showInput": {
|
|
98
87
|
"type": "boolean",
|
|
@@ -103,68 +92,67 @@
|
|
|
103
92
|
},
|
|
104
93
|
"usage": {
|
|
105
94
|
"when": [
|
|
106
|
-
"Theme
|
|
107
|
-
"
|
|
108
|
-
"Design tool
|
|
109
|
-
"User preference settings for colors"
|
|
95
|
+
"Theme and brand customisation",
|
|
96
|
+
"Any colour the user must pick freely",
|
|
97
|
+
"Design tool inputs"
|
|
110
98
|
],
|
|
111
99
|
"whenNot": [
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
100
|
+
"A fixed palette (use RadioGroup with swatches)",
|
|
101
|
+
"Showing a colour without editing it (use a tinted Badge)",
|
|
102
|
+
"Status colour that should come from a token"
|
|
115
103
|
],
|
|
116
104
|
"guidelines": [
|
|
117
|
-
"
|
|
118
|
-
"Use helperText
|
|
119
|
-
"
|
|
120
|
-
"Validate hex
|
|
105
|
+
"Label says what the colour is for",
|
|
106
|
+
"Use helperText for constraints, such as contrast rules",
|
|
107
|
+
"Offer presets next to the picker for the common choices",
|
|
108
|
+
"Validate the hex as #RRGGBB before accepting it"
|
|
121
109
|
],
|
|
122
110
|
"accessibility": [
|
|
123
|
-
"Label is
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
111
|
+
"Label is tied to the hex input",
|
|
112
|
+
"The swatch button carries its own aria-label",
|
|
113
|
+
"The picker popup is reachable from the keyboard",
|
|
114
|
+
"Users can type a hex instead of dragging"
|
|
127
115
|
]
|
|
128
116
|
},
|
|
129
117
|
"examples": [
|
|
130
118
|
{
|
|
131
119
|
"name": "Default",
|
|
132
|
-
"description": "
|
|
120
|
+
"description": "Swatch opens the picker; the hex field accepts typing.",
|
|
133
121
|
"code": "<ColorPicker\n label=\"Brand Color\"\n defaultValue=\"#3b82f6\"\n/>"
|
|
134
122
|
},
|
|
135
123
|
{
|
|
136
124
|
"name": "With Helper Text",
|
|
137
|
-
"description": "
|
|
125
|
+
"description": "Supporting line says where the colour will be used.",
|
|
138
126
|
"code": "<ColorPicker\n label=\"Primary Color\"\n defaultValue=\"#10b981\"\n helperText=\"This color will be used for buttons and links\"\n/>"
|
|
139
127
|
},
|
|
140
128
|
{
|
|
141
129
|
"name": "Controlled",
|
|
142
|
-
"description": "
|
|
130
|
+
"description": "The parent owns the value and sees every change.",
|
|
143
131
|
"code": "<ControlledColorPickerDemo />"
|
|
144
132
|
},
|
|
145
133
|
{
|
|
146
134
|
"name": "Multiple Pickers",
|
|
147
|
-
"description": "
|
|
135
|
+
"description": "A stacked set reads as one palette.",
|
|
148
136
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: '16px', maxWidth: '240px' }}>\n <ColorPicker label=\"Primary\" defaultValue=\"#3b82f6\" />\n <ColorPicker label=\"Success\" defaultValue=\"#22c55e\" />\n <ColorPicker label=\"Warning\" defaultValue=\"#f59e0b\" />\n <ColorPicker label=\"Danger\" defaultValue=\"#ef4444\" />\n</div>"
|
|
149
137
|
},
|
|
150
138
|
{
|
|
151
139
|
"name": "Compact",
|
|
152
|
-
"description": "
|
|
140
|
+
"description": "showInput={false} drops the hex field, leaving a swatch row.",
|
|
153
141
|
"code": "<div style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <ColorPicker defaultValue=\"#ef4444\" size=\"sm\" showInput={false} />\n <ColorPicker defaultValue=\"#f59e0b\" size=\"sm\" showInput={false} />\n <ColorPicker defaultValue=\"#22c55e\" size=\"sm\" showInput={false} />\n <ColorPicker defaultValue=\"#3b82f6\" size=\"sm\" showInput={false} />\n</div>"
|
|
154
142
|
},
|
|
155
143
|
{
|
|
156
144
|
"name": "Sizes",
|
|
157
|
-
"description": "
|
|
145
|
+
"description": "Three swatch sizes: sm, md, lg.",
|
|
158
146
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: '16px', maxWidth: '240px' }}>\n <ColorPicker label=\"Small\" defaultValue=\"#3b82f6\" size=\"sm\" />\n <ColorPicker label=\"Medium (default)\" defaultValue=\"#3b82f6\" size=\"md\" />\n <ColorPicker label=\"Large\" defaultValue=\"#3b82f6\" size=\"lg\" />\n</div>"
|
|
159
147
|
},
|
|
160
148
|
{
|
|
161
149
|
"name": "Error State",
|
|
162
|
-
"description": "
|
|
163
|
-
"code": "<ColorPicker\n label=\"Brand Color\"\n defaultValue=\"#
|
|
150
|
+
"description": "Red border on the hex field, and the reason below it.",
|
|
151
|
+
"code": "<ColorPicker\n label=\"Brand Color\"\n defaultValue=\"#7c3aed\"\n error\n helperText=\"This color fails contrast against the page background\"\n/>"
|
|
164
152
|
},
|
|
165
153
|
{
|
|
166
154
|
"name": "Disabled",
|
|
167
|
-
"description": "
|
|
155
|
+
"description": "Swatch will not open and the hex field will not accept typing.",
|
|
168
156
|
"code": "<ColorPicker\n label=\"Locked Color\"\n defaultValue=\"#64748b\"\n helperText=\"This color cannot be changed\"\n disabled\n/>"
|
|
169
157
|
}
|
|
170
158
|
],
|
|
@@ -198,18 +186,11 @@
|
|
|
198
186
|
"size: sm|md|lg - size variant",
|
|
199
187
|
"showInput: boolean - show hex input field"
|
|
200
188
|
],
|
|
201
|
-
"a11yRules": [
|
|
202
|
-
"A11Y_LABEL_REQUIRED",
|
|
203
|
-
"A11Y_FOCUS_VISIBLE",
|
|
204
|
-
"A11Y_TARGET_SIZE_MIN"
|
|
205
|
-
]
|
|
189
|
+
"a11yRules": ["A11Y_LABEL_REQUIRED", "A11Y_FOCUS_VISIBLE", "A11Y_TARGET_SIZE_MIN"]
|
|
206
190
|
},
|
|
207
191
|
"ai": {
|
|
208
192
|
"compositionPattern": "compound",
|
|
209
|
-
"subComponents": [
|
|
210
|
-
"Root",
|
|
211
|
-
"preload"
|
|
212
|
-
]
|
|
193
|
+
"subComponents": ["Root", "preload"]
|
|
213
194
|
},
|
|
214
195
|
"provenance": {
|
|
215
196
|
"source": "migrated",
|
|
@@ -1,73 +1,96 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/mixins" as *;
|
|
3
|
+
@use "../../recipes/action";
|
|
4
|
+
@use "../../recipes/field";
|
|
5
|
+
@use "../../recipes/popup";
|
|
6
|
+
|
|
7
|
+
// Local component tokens.
|
|
8
|
+
//
|
|
9
|
+
// The raw pixel values in this file (200px here, and the 80px/120px hex-input
|
|
10
|
+
// min-widths below) are deliberate, not missed tokens: react-colorful lays the
|
|
11
|
+
// saturation/hue canvas out in fixed pixels, and the hex field has to stay wide
|
|
12
|
+
// enough for a full "#rrggbb" string. Spacing tokens do not map onto either
|
|
13
|
+
// constraint, so these stay literal.
|
|
5
14
|
$fui-colorpicker-size: 200px !default; // react-colorful saturation/hue square
|
|
6
15
|
$fui-colorpicker-hue-height: $fui-target-size-min !default;
|
|
7
16
|
$fui-colorpicker-pointer-size: $fui-target-size-min !default;
|
|
8
|
-
$fui-colorpicker-pointer-border: 2px !default;
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
@include
|
|
18
|
+
.wrapper {
|
|
19
|
+
@include field.wrapper;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.label {
|
|
23
|
+
@include field.label;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.helper {
|
|
27
|
+
@include field.helper;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.helperError,
|
|
31
|
+
.errorMessage {
|
|
32
|
+
@include field.error;
|
|
33
|
+
}
|
|
12
34
|
|
|
13
35
|
// Size variants
|
|
14
36
|
.sizeSm {
|
|
15
37
|
.inputWrapper {
|
|
16
|
-
gap:
|
|
38
|
+
gap: action.gap("sm");
|
|
17
39
|
}
|
|
18
40
|
|
|
19
41
|
.swatch {
|
|
20
|
-
|
|
21
|
-
|
|
42
|
+
@include field.size("sm");
|
|
43
|
+
|
|
44
|
+
width: field.track("sm");
|
|
45
|
+
height: field.track("sm");
|
|
22
46
|
}
|
|
23
47
|
|
|
24
48
|
.hexInput {
|
|
25
49
|
min-width: 80px;
|
|
26
50
|
flex: 0 0 auto;
|
|
27
51
|
}
|
|
28
|
-
|
|
29
|
-
.label {
|
|
30
|
-
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
31
|
-
}
|
|
32
52
|
}
|
|
33
53
|
|
|
34
54
|
.sizeMd {
|
|
35
|
-
|
|
55
|
+
.inputWrapper {
|
|
56
|
+
gap: action.gap("md");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.swatch {
|
|
60
|
+
@include field.size("md");
|
|
61
|
+
|
|
62
|
+
width: field.track("md");
|
|
63
|
+
height: field.track("md");
|
|
64
|
+
}
|
|
36
65
|
}
|
|
37
66
|
|
|
38
67
|
.sizeLg {
|
|
39
68
|
.inputWrapper {
|
|
40
|
-
gap:
|
|
69
|
+
gap: action.gap("lg");
|
|
41
70
|
}
|
|
42
71
|
|
|
43
72
|
.swatch {
|
|
44
|
-
|
|
45
|
-
|
|
73
|
+
@include field.size("lg");
|
|
74
|
+
|
|
75
|
+
width: field.track("lg");
|
|
76
|
+
height: field.track("lg");
|
|
46
77
|
}
|
|
47
78
|
|
|
48
79
|
.hexInput {
|
|
49
80
|
min-width: 120px;
|
|
50
81
|
}
|
|
51
|
-
|
|
52
|
-
.label {
|
|
53
|
-
font-size: var(--fui-font-size-base, $fui-font-size-base);
|
|
54
|
-
}
|
|
55
82
|
}
|
|
56
83
|
|
|
57
84
|
.inputWrapper {
|
|
58
85
|
display: flex;
|
|
59
|
-
gap: var(--fui-space-2, $fui-space-2);
|
|
60
86
|
align-items: center;
|
|
61
87
|
}
|
|
62
88
|
|
|
63
89
|
.swatch {
|
|
64
90
|
@include button-reset;
|
|
65
91
|
@include interactive-base;
|
|
66
|
-
@include
|
|
67
|
-
@include field-shell;
|
|
92
|
+
@include field.shell;
|
|
68
93
|
|
|
69
|
-
width: var(--fui-input-height, $fui-input-height);
|
|
70
|
-
height: var(--fui-input-height, $fui-input-height);
|
|
71
94
|
flex-shrink: 0;
|
|
72
95
|
// Disabled state (opacity + pointer-events) comes from @include interactive-base.
|
|
73
96
|
}
|
|
@@ -80,7 +103,7 @@ $fui-colorpicker-pointer-border: 2px !default;
|
|
|
80
103
|
|
|
81
104
|
// Style the actual input field inside Input component
|
|
82
105
|
.hexInputField {
|
|
83
|
-
font-family: var(--fui-font-mono, $fui-font-mono)
|
|
106
|
+
font-family: var(--fui-font-mono, $fui-font-mono);
|
|
84
107
|
text-transform: lowercase;
|
|
85
108
|
}
|
|
86
109
|
|
|
@@ -90,11 +113,9 @@ $fui-colorpicker-pointer-border: 2px !default;
|
|
|
90
113
|
}
|
|
91
114
|
|
|
92
115
|
.popup {
|
|
93
|
-
@include
|
|
116
|
+
@include popup.container;
|
|
94
117
|
|
|
95
|
-
border-color: var(--fui-form-group-border, $fui-border);
|
|
96
118
|
border-radius: var(--fui-radius-lg, $fui-radius-lg);
|
|
97
|
-
padding: var(--fui-space-2, $fui-space-2);
|
|
98
119
|
|
|
99
120
|
// react-colorful styling overrides
|
|
100
121
|
:global(.react-colorful) {
|
|
@@ -115,7 +136,7 @@ $fui-colorpicker-pointer-border: 2px !default;
|
|
|
115
136
|
:global(.react-colorful__pointer) {
|
|
116
137
|
width: var(--fui-colorpicker-pointer-size, #{$fui-colorpicker-pointer-size});
|
|
117
138
|
height: var(--fui-colorpicker-pointer-size, #{$fui-colorpicker-pointer-size});
|
|
118
|
-
border:
|
|
139
|
+
border: var(--fui-stroke-default, 2px) solid var(--fui-text-inverse, $fui-text-inverse);
|
|
119
140
|
box-shadow: var(--fui-shadow-md, $fui-shadow-md);
|
|
120
141
|
}
|
|
121
142
|
}
|
|
@@ -126,7 +147,7 @@ $fui-colorpicker-pointer-border: 2px !default;
|
|
|
126
147
|
|
|
127
148
|
@media (prefers-contrast: more) {
|
|
128
149
|
.swatch {
|
|
129
|
-
border-width: 2px;
|
|
150
|
+
border-width: var(--fui-stroke-default, 2px);
|
|
130
151
|
border-color: var(--fui-text-primary, $fui-text-primary);
|
|
131
152
|
}
|
|
132
153
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Popover as BasePopover } from "@base-ui/react/popover";
|
|
5
|
+
import { POPUP_OFFSET_PX } from "../../recipes/popup";
|
|
5
6
|
|
|
6
7
|
// ============================================
|
|
7
8
|
// Lazy-loaded dependency (react-colorful)
|
|
@@ -24,7 +25,7 @@ function loadColorfulDeps(): Promise<void> {
|
|
|
24
25
|
_HexColorPicker = rc.HexColorPicker;
|
|
25
26
|
} catch {
|
|
26
27
|
_colorfulFailed = true;
|
|
27
|
-
if (
|
|
28
|
+
if (isDevelopmentBuild()) {
|
|
28
29
|
console.warn(
|
|
29
30
|
"[@usefragments/ui] ColorPicker: react-colorful is not installed. " +
|
|
30
31
|
"Install it with: npm install react-colorful"
|
|
@@ -54,6 +55,7 @@ import { Field } from "@base-ui/react/field";
|
|
|
54
55
|
import { useResolvedControlSize } from "../ComponentDefaults";
|
|
55
56
|
import { Input } from "../Input";
|
|
56
57
|
import styles from "./ColorPicker.module.scss";
|
|
58
|
+
import { isDevelopmentBuild } from "../../utils/env";
|
|
57
59
|
|
|
58
60
|
export interface ColorPickerProps extends Omit<
|
|
59
61
|
React.HTMLAttributes<HTMLDivElement>,
|
|
@@ -171,7 +173,7 @@ const ColorPickerRoot = React.forwardRef<HTMLDivElement, ColorPickerProps>(funct
|
|
|
171
173
|
<BasePopover.Positioner
|
|
172
174
|
side="bottom"
|
|
173
175
|
align="start"
|
|
174
|
-
sideOffset={
|
|
176
|
+
sideOffset={POPUP_OFFSET_PX}
|
|
175
177
|
className={styles.positioner}
|
|
176
178
|
>
|
|
177
179
|
<BasePopover.Popup
|
|
@@ -191,6 +193,9 @@ const ColorPickerRoot = React.forwardRef<HTMLDivElement, ColorPickerProps>(funct
|
|
|
191
193
|
onChange={handleInputChange}
|
|
192
194
|
onBlur={handleInputBlur}
|
|
193
195
|
disabled={disabled}
|
|
196
|
+
// Without this the hex field keeps its neutral border while the
|
|
197
|
+
// helper text turns red, so the error reads as a stray message.
|
|
198
|
+
error={error}
|
|
194
199
|
size={size}
|
|
195
200
|
className={styles.hexInput}
|
|
196
201
|
inputClassName={styles.hexInputField}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Combobox",
|
|
4
|
-
"description": "
|
|
5
|
-
"category": "
|
|
4
|
+
"description": "Filters a list of options as the user types.",
|
|
5
|
+
"category": "inputs",
|
|
6
6
|
"tags": ["combobox", "autocomplete", "search", "select", "typeahead", "form", "multiselect"],
|
|
7
7
|
"status": "stable",
|
|
8
8
|
"sourcePath": "src/components/Combobox/index.tsx",
|
|
@@ -133,86 +133,85 @@
|
|
|
133
133
|
},
|
|
134
134
|
"usage": {
|
|
135
135
|
"when": [
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"Multiple selections from a searchable list"
|
|
136
|
+
"Lists too long to scan by eye",
|
|
137
|
+
"The user roughly knows the value they want",
|
|
138
|
+
"Autocomplete or typeahead",
|
|
139
|
+
"Multi-select from a searchable list"
|
|
141
140
|
],
|
|
142
141
|
"whenNot": [
|
|
143
|
-
"
|
|
144
|
-
"Free-form text with no
|
|
145
|
-
"
|
|
146
|
-
"Actions
|
|
142
|
+
"Under five options (use Select or RadioGroup)",
|
|
143
|
+
"Free-form text with no known options (use Input)",
|
|
144
|
+
"Short list nobody needs to search (use Select)",
|
|
145
|
+
"Actions rather than values (use Menu)"
|
|
147
146
|
],
|
|
148
147
|
"guidelines": [
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"Group related options with Combobox.Group
|
|
154
|
-
"
|
|
155
|
-
"Keep option text
|
|
156
|
-
"
|
|
148
|
+
"Placeholder names what is searchable",
|
|
149
|
+
"Set label so the field is announced",
|
|
150
|
+
"helperText for guidance, error for the failure reason",
|
|
151
|
+
"Override the built-in \"No results found\" with Combobox.Empty when you have better wording",
|
|
152
|
+
"Group related options with Combobox.Group in long lists",
|
|
153
|
+
"Filtering keeps wrapper composition, so groups and fragments survive",
|
|
154
|
+
"Keep option text short and searchable",
|
|
155
|
+
"multiple turns selections into removable chips"
|
|
157
156
|
],
|
|
158
157
|
"accessibility": [
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
158
|
+
"Arrow keys, Enter, and Escape all work",
|
|
159
|
+
"Typing filters the list in place",
|
|
160
|
+
"Correct ARIA combobox roles and attributes",
|
|
161
|
+
"Filtered result counts are announced",
|
|
162
|
+
"Chips can be removed from the keyboard"
|
|
164
163
|
]
|
|
165
164
|
},
|
|
166
165
|
"examples": [
|
|
167
166
|
{
|
|
168
167
|
"name": "Default",
|
|
169
|
-
"description": "
|
|
168
|
+
"description": "Type to narrow the list; unmatched queries show a no-results row.",
|
|
170
169
|
"code": "<StatefulCombobox placeholder=\"Select a fruit\">\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Item value=\"apple\">Apple</Combobox.Item>\n <Combobox.Item value=\"banana\">Banana</Combobox.Item>\n <Combobox.Item value=\"orange\">Orange</Combobox.Item>\n <Combobox.Item value=\"grape\">Grape</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
171
170
|
},
|
|
172
171
|
{
|
|
173
172
|
"name": "Multiple Selection",
|
|
174
|
-
"description": "
|
|
173
|
+
"description": "Each pick becomes a removable chip in the field.",
|
|
175
174
|
"code": "<StatefulCombobox multiple placeholder=\"Select fruits...\">\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Item value=\"apple\">Apple</Combobox.Item>\n <Combobox.Item value=\"banana\">Banana</Combobox.Item>\n <Combobox.Item value=\"orange\">Orange</Combobox.Item>\n <Combobox.Item value=\"grape\">Grape</Combobox.Item>\n <Combobox.Item value=\"mango\">Mango</Combobox.Item>\n <Combobox.Item value=\"kiwi\">Kiwi</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
176
175
|
},
|
|
177
176
|
{
|
|
178
177
|
"name": "With Label and Helper Text",
|
|
179
|
-
"description": "
|
|
178
|
+
"description": "Helper text tells the user the field is searchable.",
|
|
180
179
|
"code": "<StatefulCombobox\n label=\"Assignee\"\n placeholder=\"Search assignees...\"\n helperText=\"Type to filter the list of available assignees.\"\n>\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Empty>No matches</Combobox.Empty>\n <Combobox.Item value=\"alice\">Alice Johnson</Combobox.Item>\n <Combobox.Item value=\"bob\">Bob Chen</Combobox.Item>\n <Combobox.Item value=\"carol\">Carol Smith</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
181
180
|
},
|
|
182
181
|
{
|
|
183
182
|
"name": "Error State",
|
|
184
|
-
"description": "
|
|
185
|
-
"code": "<Combobox\n label=\"Reviewer\"\n placeholder=\"Search reviewers...\"\n error=\"Please select a reviewer\"\n
|
|
183
|
+
"description": "Red border, and the message replaces helper text.",
|
|
184
|
+
"code": "<Combobox\n label=\"Reviewer\"\n placeholder=\"Search reviewers...\"\n error=\"Please select a reviewer\"\n>\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Item value=\"alice\">Alice</Combobox.Item>\n </Combobox.Content>\n</Combobox>"
|
|
186
185
|
},
|
|
187
186
|
{
|
|
188
187
|
"name": "With Groups",
|
|
189
|
-
"description": "
|
|
188
|
+
"description": "Headed sections stay intact while filtering.",
|
|
190
189
|
"code": "<StatefulCombobox placeholder=\"Search countries...\">\n <Combobox.Input />\n <Combobox.Content>\n <>\n <Combobox.Group>\n <Combobox.GroupLabel>North America</Combobox.GroupLabel>\n <Combobox.Item value=\"us\">United States</Combobox.Item>\n <Combobox.Item value=\"ca\">Canada</Combobox.Item>\n <Combobox.Item value=\"mx\">Mexico</Combobox.Item>\n </Combobox.Group>\n <Combobox.Group>\n <Combobox.GroupLabel>Europe</Combobox.GroupLabel>\n <Combobox.Item value=\"uk\">United Kingdom</Combobox.Item>\n <Combobox.Item value=\"de\">Germany</Combobox.Item>\n <Combobox.Item value=\"fr\">France</Combobox.Item>\n </Combobox.Group>\n <Combobox.Empty>No matching country</Combobox.Empty>\n </>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
191
190
|
},
|
|
192
191
|
{
|
|
193
192
|
"name": "With Empty State",
|
|
194
|
-
"description": "
|
|
195
|
-
"code": "<StatefulCombobox placeholder=\"
|
|
193
|
+
"description": "Combobox.Empty replaces the default no-results wording.",
|
|
194
|
+
"code": "<StatefulCombobox placeholder=\"Filter languages...\">\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Empty>No language matches that search</Combobox.Empty>\n <Combobox.Item value=\"js\">JavaScript</Combobox.Item>\n <Combobox.Item value=\"ts\">TypeScript</Combobox.Item>\n <Combobox.Item value=\"py\">Python</Combobox.Item>\n <Combobox.Item value=\"rs\">Rust</Combobox.Item>\n <Combobox.Item value=\"go\">Go</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
196
195
|
},
|
|
197
196
|
{
|
|
198
197
|
"name": "Scrollable List",
|
|
199
|
-
"description": "
|
|
198
|
+
"description": "Caps at four rows and half-shows the fifth as a scroll hint.",
|
|
200
199
|
"code": "<StatefulCombobox placeholder=\"Search languages...\">\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Empty>No results found</Combobox.Empty>\n <Combobox.Item value=\"js\">JavaScript</Combobox.Item>\n <Combobox.Item value=\"ts\">TypeScript</Combobox.Item>\n <Combobox.Item value=\"py\">Python</Combobox.Item>\n <Combobox.Item value=\"rs\">Rust</Combobox.Item>\n <Combobox.Item value=\"go\">Go</Combobox.Item>\n <Combobox.Item value=\"rb\">Ruby</Combobox.Item>\n <Combobox.Item value=\"java\">Java</Combobox.Item>\n <Combobox.Item value=\"swift\">Swift</Combobox.Item>\n <Combobox.Item value=\"kt\">Kotlin</Combobox.Item>\n <Combobox.Item value=\"cpp\">C++</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
201
200
|
},
|
|
202
201
|
{
|
|
203
202
|
"name": "Custom Max Visible Items",
|
|
204
|
-
"description": "
|
|
203
|
+
"description": "maxVisibleItems raises the cap to six rows.",
|
|
205
204
|
"code": "<StatefulCombobox placeholder=\"Search cities...\">\n <Combobox.Input />\n <Combobox.Content maxVisibleItems={6}>\n <Combobox.Empty>No results found</Combobox.Empty>\n <Combobox.Item value=\"nyc\">New York</Combobox.Item>\n <Combobox.Item value=\"lon\">London</Combobox.Item>\n <Combobox.Item value=\"tok\">Tokyo</Combobox.Item>\n <Combobox.Item value=\"par\">Paris</Combobox.Item>\n <Combobox.Item value=\"syd\">Sydney</Combobox.Item>\n <Combobox.Item value=\"ber\">Berlin</Combobox.Item>\n <Combobox.Item value=\"tor\">Toronto</Combobox.Item>\n <Combobox.Item value=\"sin\">Singapore</Combobox.Item>\n <Combobox.Item value=\"dub\">Dubai</Combobox.Item>\n <Combobox.Item value=\"sao\">São Paulo</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
206
205
|
},
|
|
207
206
|
{
|
|
208
207
|
"name": "Disabled",
|
|
209
|
-
"description": "
|
|
208
|
+
"description": "Dimmed and unfocusable.",
|
|
210
209
|
"code": "<Combobox disabled placeholder=\"Search...\">\n <Combobox.Input />\n <Combobox.Content>\n <Combobox.Item value=\"1\">Option 1</Combobox.Item>\n </Combobox.Content>\n</Combobox>"
|
|
211
210
|
},
|
|
212
211
|
{
|
|
213
212
|
"name": "Explicit Trigger",
|
|
214
|
-
"description": "
|
|
215
|
-
"code": "<StatefulCombobox placeholder=\"Search assignees...\">\n <Combobox.Input showTrigger={false} />\n
|
|
213
|
+
"description": "showTrigger={false} hands the open control to your own Combobox.Trigger.",
|
|
214
|
+
"code": "<StatefulCombobox placeholder=\"Search assignees...\">\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <Combobox.Input showTrigger={false} />\n <Combobox.Trigger aria-label=\"Open assignee list\" />\n </div>\n <Combobox.Content>\n <Combobox.Item value=\"alice\">Alice</Combobox.Item>\n <Combobox.Item value=\"bob\">Bob</Combobox.Item>\n <Combobox.Item value=\"carol\">Carol</Combobox.Item>\n </Combobox.Content>\n</StatefulCombobox>"
|
|
216
215
|
}
|
|
217
216
|
],
|
|
218
217
|
"relations": [
|