@usefragments/ui 1.6.0 → 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 +4720 -4159
- package/dist/chart.cjs +24 -6
- package/dist/chart.js +24 -6
- package/dist/codeblock.cjs +55 -29
- package/dist/codeblock.js +55 -29
- package/dist/colorpicker.cjs +3 -1
- package/dist/colorpicker.js +3 -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 +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/Avatar/Avatar.module.scss.cjs +14 -14
- package/dist/components/Avatar/Avatar.module.scss.js +14 -14
- 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/Card/Card.module.scss.cjs +29 -17
- package/dist/components/Card/Card.module.scss.js +30 -18
- 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.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -9
- package/dist/components/Checkbox/Checkbox.module.scss.js +9 -9
- package/dist/components/Checkbox/index.cjs +2 -2
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +2 -2
- 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 +2 -1
- package/dist/components/Chip/index.d.ts.map +1 -1
- package/dist/components/Chip/index.js +2 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
- 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 -9
- package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
- package/dist/components/Combobox/Combobox.module.scss.js +21 -21
- package/dist/components/Combobox/index.cjs +17 -1
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +17 -1
- 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 +10 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
- 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 +27 -27
- package/dist/components/DataTable/DataTable.module.scss.js +27 -27
- 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 +29 -29
- package/dist/components/Drawer/Drawer.module.scss.js +29 -29
- package/dist/components/Editor/Editor.module.scss.cjs +17 -17
- package/dist/components/Editor/Editor.module.scss.js +17 -17
- 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 +11 -8
- package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
- 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 +5 -5
- package/dist/components/Field/Field.module.scss.js +5 -5
- package/dist/components/Field/index.cjs +9 -1
- package/dist/components/Field/index.d.ts.map +1 -1
- package/dist/components/Field/index.js +9 -1
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Grid/index.cjs +1 -1
- package/dist/components/Grid/index.js +1 -1
- 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 +17 -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 +17 -38
- package/dist/components/Icon/Icon.module.scss.cjs +15 -15
- package/dist/components/Icon/Icon.module.scss.js +15 -15
- 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 +17 -17
- package/dist/components/Input/Input.module.scss.js +17 -17
- 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/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- 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 +1 -1
- package/dist/components/Loading/index.js +1 -1
- 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 +14 -14
- package/dist/components/Menu/Menu.module.scss.js +14 -14
- package/dist/components/Message/Message.module.scss.cjs +18 -18
- package/dist/components/Message/Message.module.scss.js +18 -18
- 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 +10 -10
- package/dist/components/Pagination/Pagination.module.scss.js +10 -10
- 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 +25 -25
- package/dist/components/Progress/Progress.module.scss.js +25 -25
- package/dist/components/Prompt/Prompt.module.scss.cjs +28 -28
- package/dist/components/Prompt/Prompt.module.scss.js +28 -28
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -15
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -15
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
- package/dist/components/ScrollArea/index.d.ts +4 -4
- package/dist/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
- package/dist/components/Select/Select.module.scss.cjs +21 -21
- package/dist/components/Select/Select.module.scss.js +21 -21
- package/dist/components/Separator/Separator.module.scss.cjs +11 -11
- package/dist/components/Separator/Separator.module.scss.js +11 -11
- 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 +12 -35
- package/dist/components/Sidebar/index.d.ts +19 -19
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +12 -35
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
- package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
- 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 -25
- package/dist/components/Stack/Stack.module.scss.js +25 -25
- package/dist/components/Stack/index.cjs +1 -1
- package/dist/components/Stack/index.js +1 -1
- package/dist/components/Switch/Switch.module.scss.cjs +9 -9
- package/dist/components/Switch/Switch.module.scss.js +9 -9
- package/dist/components/Table/Table.module.scss.cjs +19 -19
- package/dist/components/Table/Table.module.scss.js +19 -19
- 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 +26 -6
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +26 -6
- package/dist/components/Text/Text.module.scss.cjs +87 -75
- package/dist/components/Text/Text.module.scss.js +87 -75
- package/dist/components/Text/index.cjs +49 -41
- package/dist/components/Text/index.d.ts +12 -11
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +49 -41
- package/dist/components/Textarea/Textarea.module.scss.cjs +24 -24
- package/dist/components/Textarea/Textarea.module.scss.js +24 -24
- package/dist/components/Theme/index.cjs +2 -1
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +2 -1
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +9 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +9 -6
- package/dist/components/ThemeToggle/index.cjs +31 -6
- package/dist/components/ThemeToggle/index.d.ts +7 -2
- package/dist/components/ThemeToggle/index.d.ts.map +1 -1
- package/dist/components/ThemeToggle/index.js +32 -7
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
- 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/index.d.ts +2 -2
- package/dist/data-table.cjs +2 -1
- package/dist/data-table.js +2 -1
- package/dist/datepicker.cjs +3 -2
- package/dist/datepicker.js +3 -2
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +21 -29
- package/dist/measurements/generated.cjs +9 -1
- package/dist/measurements/generated.d.ts +7 -0
- package/dist/measurements/generated.d.ts.map +1 -1
- package/dist/measurements/generated.js +9 -1
- 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/seed-derivation.cjs +10 -6
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +10 -6
- package/fragments.json +1 -1
- package/package.json +6 -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/Alert/Alert.contract.json +37 -53
- package/src/components/Alert/Alert.module.scss +24 -0
- package/src/components/Alert/index.tsx +55 -29
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +53 -40
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +4 -1
- package/src/components/Badge/Badge.contract.json +37 -42
- package/src/components/Badge/Badge.module.scss +9 -2
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +12 -7
- package/src/components/Button/Button.module.scss +8 -7
- package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
- package/src/components/Card/Card.module.scss +82 -1
- package/src/components/Card/index.tsx +21 -2
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/index.tsx +36 -6
- package/src/components/Checkbox/Checkbox.contract.json +24 -24
- package/src/components/Checkbox/Checkbox.module.scss +32 -23
- package/src/components/Checkbox/index.tsx +4 -2
- package/src/components/Chip/Chip.contract.json +33 -40
- package/src/components/Chip/Chip.module.scss +2 -2
- package/src/components/Chip/index.tsx +2 -1
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +40 -15
- 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/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +15 -12
- package/src/components/ColorPicker/index.tsx +5 -1
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +1 -1
- package/src/components/Combobox/index.tsx +31 -5
- package/src/components/Command/Command.contract.json +21 -43
- package/src/components/Command/index.tsx +58 -47
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +12 -8
- package/src/components/DataTable/index.tsx +8 -7
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +12 -5
- package/src/components/DatePicker/index.tsx +5 -2
- package/src/components/Dialog/Dialog.module.scss +3 -3
- package/src/components/Dialog/index.tsx +47 -37
- package/src/components/Drawer/Drawer.contract.json +22 -36
- package/src/components/Editor/Editor.contract.json +31 -48
- package/src/components/Editor/Editor.module.scss +36 -14
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +31 -43
- package/src/components/EmptyState/EmptyState.module.scss +8 -0
- package/src/components/EmptyState/index.tsx +48 -23
- package/src/components/Field/Field.contract.json +28 -46
- package/src/components/Field/index.tsx +5 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +10 -3
- package/src/components/Form/Form.contract.json +20 -20
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/index.tsx +10 -10
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +36 -21
- package/src/components/Header/index.tsx +134 -122
- package/src/components/Icon/Icon.contract.json +22 -62
- package/src/components/IconButton/IconButton.contract.json +34 -18
- package/src/components/IconButton/IconButton.module.scss +6 -7
- 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 +3 -2
- package/src/components/Link/Link.contract.json +32 -52
- package/src/components/Link/Link.module.scss +23 -6
- package/src/components/Link/index.tsx +1 -1
- package/src/components/List/List.contract.json +23 -52
- package/src/components/List/List.module.scss +1 -1
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Loading/Loading.contract.json +37 -61
- package/src/components/Loading/Loading.module.scss +10 -7
- package/src/components/Loading/index.tsx +2 -2
- package/src/components/Main/Main.contract.json +17 -9
- package/src/components/Markdown/Markdown.contract.json +22 -43
- package/src/components/Markdown/Markdown.module.scss +43 -5
- package/src/components/Markdown/index.tsx +48 -49
- package/src/components/Menu/Menu.contract.json +25 -41
- package/src/components/Menu/Menu.module.scss +23 -8
- package/src/components/Message/Message.contract.json +29 -52
- package/src/components/Message/Message.module.scss +12 -5
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +64 -19
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +2 -2
- package/src/components/Popover/Popover.contract.json +24 -46
- package/src/components/Popover/Popover.module.scss +6 -5
- package/src/components/Progress/Progress.contract.json +32 -28
- package/src/components/Progress/Progress.module.scss +3 -2
- package/src/components/Prompt/Prompt.contract.json +31 -47
- package/src/components/Prompt/Prompt.module.scss +13 -5
- package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
- package/src/components/RadioGroup/RadioGroup.module.scss +13 -14
- package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
- package/src/components/ScrollArea/ScrollArea.module.scss +15 -15
- package/src/components/ScrollArea/index.tsx +16 -16
- package/src/components/ScrollArea/scroll-state.ts +24 -24
- package/src/components/Select/Select.module.scss +2 -2
- package/src/components/Separator/Separator.contract.json +24 -48
- package/src/components/Sidebar/Sidebar.contract.json +35 -67
- package/src/components/Sidebar/Sidebar.module.scss +22 -13
- package/src/components/Sidebar/index.tsx +164 -164
- package/src/components/Skeleton/Skeleton.contract.json +28 -54
- package/src/components/Skeleton/Skeleton.module.scss +27 -10
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +3 -3
- package/src/components/Stack/Stack.contract.json +29 -56
- package/src/components/Stack/Stack.module.scss +13 -12
- package/src/components/Stack/index.tsx +3 -3
- package/src/components/Switch/Switch.contract.json +33 -46
- package/src/components/Switch/Switch.module.scss +64 -26
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +15 -3
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +15 -5
- package/src/components/TableOfContents/index.tsx +26 -9
- package/src/components/Tabs/Tabs.contract.json +24 -45
- package/src/components/Tabs/Tabs.module.scss +1 -1
- package/src/components/Tabs/index.tsx +15 -3
- package/src/components/Text/Text.contract.json +30 -72
- package/src/components/Text/Text.module.scss +21 -4
- package/src/components/Text/index.tsx +113 -75
- package/src/components/Textarea/Textarea.contract.json +25 -43
- package/src/components/Textarea/Textarea.module.scss +2 -4
- package/src/components/Theme/Theme.contract.json +32 -51
- package/src/components/Theme/index.tsx +2 -1
- package/src/components/ThemeToggle/ThemeToggle.module.scss +23 -7
- package/src/components/ThemeToggle/index.tsx +43 -7
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
- package/src/components/Toast/Toast.contract.json +30 -40
- package/src/components/Toast/Toast.module.scss +1 -1
- package/src/components/ToggleGroup/ToggleGroup.contract.json +29 -30
- package/src/components/ToggleGroup/ToggleGroup.module.scss +38 -5
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +2 -2
- package/src/measurements/generated.ts +9 -2
- package/src/measurements/measurements.json +7 -0
- package/src/recipes/_boolean-range.scss +3 -11
- package/src/recipes/_field.scss +5 -1
- package/src/recipes/_layout.scss +14 -7
- package/src/recipes/_popup.scss +12 -2
- package/src/recipes/_prose.scss +13 -5
- package/src/recipes/_table-chrome.scss +16 -2
- package/src/scss.d.ts +1 -1
- package/src/styles/globals.scss +20 -19
- package/src/tokens/_computed.scss +5 -16
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +6 -1
- package/src/tokens/_measurements.generated.scss +14 -1
- package/src/tokens/_mixins.scss +7 -8
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_seeds.scss +20 -20
- package/src/tokens/_variables.scss +183 -38
- 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/seed-derivation.ts +10 -6
- 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
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Avatar",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Shows who someone is — their photo, or their initials when there is none.",
|
|
5
5
|
"category": "display",
|
|
6
|
-
"tags": [
|
|
7
|
-
"user",
|
|
8
|
-
"profile",
|
|
9
|
-
"image",
|
|
10
|
-
"identity"
|
|
11
|
-
],
|
|
6
|
+
"tags": ["user", "profile", "image", "identity"],
|
|
12
7
|
"status": "stable",
|
|
13
8
|
"sourcePath": "src/components/Avatar/index.tsx",
|
|
14
9
|
"exportName": "Avatar",
|
|
@@ -52,13 +47,7 @@
|
|
|
52
47
|
"description": "Size variant",
|
|
53
48
|
"default": "md",
|
|
54
49
|
"required": false,
|
|
55
|
-
"values": [
|
|
56
|
-
"xs",
|
|
57
|
-
"sm",
|
|
58
|
-
"md",
|
|
59
|
-
"lg",
|
|
60
|
-
"xl"
|
|
61
|
-
]
|
|
50
|
+
"values": ["xs", "sm", "md", "lg", "xl"]
|
|
62
51
|
},
|
|
63
52
|
"customSize": {
|
|
64
53
|
"type": "union",
|
|
@@ -70,10 +59,7 @@
|
|
|
70
59
|
"description": "Shape variant",
|
|
71
60
|
"default": "circle",
|
|
72
61
|
"required": false,
|
|
73
|
-
"values": [
|
|
74
|
-
"circle",
|
|
75
|
-
"square"
|
|
76
|
-
]
|
|
62
|
+
"values": ["circle", "square"]
|
|
77
63
|
},
|
|
78
64
|
"color": {
|
|
79
65
|
"type": "string",
|
|
@@ -98,66 +84,67 @@
|
|
|
98
84
|
},
|
|
99
85
|
"usage": {
|
|
100
86
|
"when": [
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"Representing entities in lists or cards",
|
|
104
|
-
"User identification in comments or messages"
|
|
87
|
+
"A row, comment, or card needs to say who",
|
|
88
|
+
"Several people belong to one thing — use Avatar.Group"
|
|
105
89
|
],
|
|
106
90
|
"whenNot": [
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"Large profile headers (use custom layout)"
|
|
91
|
+
"The picture is content, not identity (use Image)",
|
|
92
|
+
"A profile hero at display size (build the layout yourself)"
|
|
110
93
|
],
|
|
111
94
|
"guidelines": [
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"Use imageProps for advanced img attributes (loading, decoding, referrerPolicy, etc.)"
|
|
95
|
+
"Pass name even when you pass src — it is the fallback and the label",
|
|
96
|
+
"Hold one size per context; mixed sizes read as a mistake",
|
|
97
|
+
"Avatar.Group max caps the stack and counts the rest",
|
|
98
|
+
"imageProps carries loading, decoding, referrerPolicy"
|
|
117
99
|
],
|
|
118
100
|
"accessibility": [
|
|
119
|
-
"
|
|
120
|
-
"Initials
|
|
121
|
-
"
|
|
101
|
+
"alt describes the person, not the word \"avatar\"",
|
|
102
|
+
"Initials come from name, so screen readers get the whole name",
|
|
103
|
+
"Purely decorative? Pass alt=\"\""
|
|
122
104
|
]
|
|
123
105
|
},
|
|
124
106
|
"examples": [
|
|
125
107
|
{
|
|
126
108
|
"name": "Default",
|
|
127
|
-
"description": "
|
|
109
|
+
"description": "A photo, cropped to the circle and centred.",
|
|
128
110
|
"code": "import { Avatar } from '@/components/Avatar';\n\n<Avatar\n src=\"https://i.pravatar.cc/150?u=jane\"\n alt=\"Jane Doe\"\n name=\"Jane Doe\"\n/>"
|
|
129
111
|
},
|
|
130
112
|
{
|
|
131
113
|
"name": "With Initials",
|
|
132
|
-
"description": "
|
|
114
|
+
"description": "No src, so the name collapses to initials.",
|
|
133
115
|
"code": "import { Avatar } from '@/components/Avatar';\n\n<Avatar name=\"John Smith\" />"
|
|
134
116
|
},
|
|
135
117
|
{
|
|
136
118
|
"name": "Sizes",
|
|
137
|
-
"description": "
|
|
119
|
+
"description": "Five steps, xs through xl — pick one per context and stick to it.",
|
|
138
120
|
"code": "import { Avatar } from '@/components/Avatar';\nimport { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" align=\"center\" wrap>\n <Avatar name=\"XS\" size=\"xs\" />\n <Avatar name=\"SM\" size=\"sm\" />\n <Avatar name=\"MD\" size=\"md\" />\n <Avatar name=\"LG\" size=\"lg\" />\n <Avatar name=\"XL\" size=\"xl\" />\n</Stack>"
|
|
139
121
|
},
|
|
140
122
|
{
|
|
141
123
|
"name": "Custom Size",
|
|
142
|
-
"description": "
|
|
124
|
+
"description": "customSize takes any number when the scale does not fit.",
|
|
143
125
|
"code": "import { Avatar } from '@/components/Avatar';\n\n<Avatar name=\"Conan McNicholl\" customSize={36} />"
|
|
144
126
|
},
|
|
145
127
|
{
|
|
146
128
|
"name": "Square Shape",
|
|
147
|
-
"description": "
|
|
129
|
+
"description": "Squares read as products or orgs, circles as people.",
|
|
148
130
|
"code": "import { Avatar } from '@/components/Avatar';\n\n<Avatar name=\"App\" shape=\"square\" />"
|
|
149
131
|
},
|
|
150
132
|
{
|
|
151
133
|
"name": "Group",
|
|
152
|
-
"description": "
|
|
134
|
+
"description": "Overlapping stack with a count for whoever did not fit.",
|
|
153
135
|
"code": "import { Avatar } from '@/components/Avatar';\n\n<Avatar.Group max={3} size=\"md\">\n <Avatar name=\"Alice Johnson\" />\n <Avatar name=\"Bob Smith\" />\n <Avatar name=\"Carol Williams\" />\n <Avatar name=\"David Brown\" />\n <Avatar name=\"Eve Davis\" />\n</Avatar.Group>"
|
|
154
136
|
}
|
|
155
137
|
],
|
|
156
138
|
"relations": [
|
|
157
139
|
{
|
|
158
|
-
"component": "
|
|
159
|
-
"relationship": "
|
|
160
|
-
"note": "Use
|
|
140
|
+
"component": "Image",
|
|
141
|
+
"relationship": "alternative",
|
|
142
|
+
"note": "Use Image for content pictures that are not a person or entity"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"component": "Badge",
|
|
146
|
+
"relationship": "sibling",
|
|
147
|
+
"note": "Pair with Badge to show presence or role beside a name"
|
|
161
148
|
}
|
|
162
149
|
],
|
|
163
150
|
"contract": {
|
|
@@ -170,15 +157,11 @@
|
|
|
170
157
|
"imageProps: ImgHTMLAttributes - advanced img attributes",
|
|
171
158
|
"shape: circle|square (default: circle)"
|
|
172
159
|
],
|
|
173
|
-
"a11yRules": [
|
|
174
|
-
"A11Y_IMG_ALT"
|
|
175
|
-
]
|
|
160
|
+
"a11yRules": ["A11Y_IMG_ALT"]
|
|
176
161
|
},
|
|
177
162
|
"ai": {
|
|
178
163
|
"compositionPattern": "compound",
|
|
179
|
-
"subComponents": [
|
|
180
|
-
"Group"
|
|
181
|
-
]
|
|
164
|
+
"subComponents": ["Group"]
|
|
182
165
|
},
|
|
183
166
|
"provenance": {
|
|
184
167
|
"source": "migrated",
|
|
@@ -84,7 +84,10 @@
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
// Must match the specificity of `.group .<size>.groupItem` above (and follow it
|
|
88
|
+
// in source order), otherwise the leading avatar keeps its negative margin and
|
|
89
|
+
// the whole stack sits offset from the content around it.
|
|
90
|
+
.group .groupItem:last-child {
|
|
88
91
|
margin-inline-start: 0;
|
|
89
92
|
}
|
|
90
93
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Badge",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Labels a status, count, or category without pulling focus.",
|
|
5
5
|
"category": "display",
|
|
6
6
|
"tags": ["status", "label", "tag", "count", "chip"],
|
|
7
7
|
"status": "stable",
|
|
@@ -87,71 +87,66 @@
|
|
|
87
87
|
},
|
|
88
88
|
"usage": {
|
|
89
89
|
"when": [
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
90
|
+
"Marking item status: active, pending, archived",
|
|
91
|
+
"Showing a count inline",
|
|
92
|
+
"Tagging or categorising content",
|
|
93
|
+
"Flagging what is new or changed"
|
|
94
94
|
],
|
|
95
95
|
"whenNot": [
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
96
|
+
"Real errors that need attention — use Alert",
|
|
97
|
+
"Anything longer than a few words — use Alert",
|
|
98
|
+
"Clickable filters — use Chip or ToggleGroup",
|
|
99
|
+
"View switching — use Tabs or links"
|
|
100
100
|
],
|
|
101
101
|
"guidelines": [
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"Badges are not announced as live status updates by default; use announce for screen-reader status announcements when appropriate"
|
|
102
|
+
"Under 20 characters",
|
|
103
|
+
"dot for live status; add dotPulse only while it is still changing",
|
|
104
|
+
"Semantic variants are borderless pills on shared status tokens",
|
|
105
|
+
"label pairs with dotColor; dim pairs with active for filter chrome",
|
|
106
|
+
"onRemove for user-created tags only, never system labels"
|
|
108
107
|
],
|
|
109
108
|
"accessibility": [
|
|
110
|
-
"
|
|
111
|
-
"Removable badges
|
|
112
|
-
"
|
|
109
|
+
"The text must carry the meaning — colour alone never does",
|
|
110
|
+
"Removable badges need a named dismiss button",
|
|
111
|
+
"Badges are silent to screen readers unless you pass announce",
|
|
112
|
+
"Do not make a badge the only signal that something changed"
|
|
113
113
|
]
|
|
114
114
|
},
|
|
115
115
|
"examples": [
|
|
116
|
-
{
|
|
117
|
-
"name": "Default",
|
|
118
|
-
"description": "Neutral badge for general labels",
|
|
119
|
-
"code": "import { Badge } from '@/components/Badge';\n\n<Badge>Default</Badge>"
|
|
120
|
-
},
|
|
121
116
|
{
|
|
122
117
|
"name": "Status Variants",
|
|
123
|
-
"description": "
|
|
124
|
-
"code": "import {
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"name": "Delivery Status",
|
|
128
|
-
"description": "Reference status pills with deep semantic fill and bright text",
|
|
129
|
-
"code": "import { Badge } from '@/components/Badge';\nimport { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" wrap>\n <Badge variant=\"success\" size=\"lg\">Delivered</Badge>\n <Badge variant=\"error\" size=\"lg\">Bounced</Badge>\n</Stack>"
|
|
118
|
+
"description": "Neutral through info, on shared status tokens.",
|
|
119
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" wrap>\n <Badge variant=\"default\">Default</Badge>\n <Badge variant=\"success\">Active</Badge>\n <Badge variant=\"warning\">Pending</Badge>\n <Badge variant=\"error\">Failed</Badge>\n <Badge variant=\"info\">New</Badge>\n</Stack>"
|
|
130
120
|
},
|
|
131
121
|
{
|
|
132
122
|
"name": "With Dot",
|
|
133
|
-
"description": "
|
|
134
|
-
"code": "import {
|
|
123
|
+
"description": "Leading dot for live state; it breathes while still moving.",
|
|
124
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" wrap>\n <Badge variant=\"success\" dot>Online</Badge>\n <Badge variant=\"warning\" dot>Away</Badge>\n <Badge variant=\"error\" dot>Offline</Badge>\n <Badge variant=\"info\" dot dotPulse>Syncing</Badge>\n</Stack>"
|
|
135
125
|
},
|
|
136
126
|
{
|
|
137
|
-
"name": "
|
|
138
|
-
"description": "
|
|
139
|
-
"code": "import {
|
|
127
|
+
"name": "Label and Filter",
|
|
128
|
+
"description": "Hairline metadata pill, and filter chrome that marks the active one.",
|
|
129
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" wrap>\n <Badge variant=\"label\" dotColor=\"var(--fui-color-accent)\">Design</Badge>\n <Badge variant=\"label\" dotColor=\"var(--fui-color-success)\">Shipped</Badge>\n <Badge variant=\"dim\" active>All</Badge>\n <Badge variant=\"dim\">Archived</Badge>\n</Stack>"
|
|
140
130
|
},
|
|
141
131
|
{
|
|
142
132
|
"name": "Outline",
|
|
143
|
-
"description": "
|
|
144
|
-
"code": "
|
|
133
|
+
"description": "Bordered and transparent, when a fill would shout.",
|
|
134
|
+
"code": "<Badge variant=\"outline\">Outline</Badge>"
|
|
145
135
|
},
|
|
146
136
|
{
|
|
147
|
-
"name": "
|
|
148
|
-
"description": "
|
|
149
|
-
"code": "import {
|
|
137
|
+
"name": "Sizes",
|
|
138
|
+
"description": "sm for dense tables, lg for reference status pills.",
|
|
139
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" align=\"center\" wrap>\n <Badge variant=\"success\" size=\"sm\">Small</Badge>\n <Badge variant=\"success\" size=\"md\">Medium</Badge>\n <Badge variant=\"success\" size=\"lg\">Large</Badge>\n</Stack>"
|
|
150
140
|
},
|
|
151
141
|
{
|
|
152
142
|
"name": "Removable",
|
|
153
|
-
"description": "
|
|
154
|
-
"code": "import {
|
|
143
|
+
"description": "Dismissible tags the user added themselves.",
|
|
144
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"sm\" wrap>\n <Badge variant=\"info\" onRemove={() => {}}>React</Badge>\n <Badge variant=\"info\" onRemove={() => {}}>TypeScript</Badge>\n <Badge variant=\"info\" onRemove={() => {}}>CSS</Badge>\n</Stack>"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"name": "Announced Status",
|
|
148
|
+
"description": "Looks the same, but screen readers now hear the change.",
|
|
149
|
+
"code": "<Badge variant=\"success\" announce>Saved</Badge>"
|
|
155
150
|
}
|
|
156
151
|
],
|
|
157
152
|
"relations": [
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/mixins" as *;
|
|
2
3
|
@use "../../recipes/action" as action;
|
|
3
4
|
@use "../../recipes/representation" as representation;
|
|
4
5
|
@use "../../recipes/target" as target;
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
|
|
86
87
|
&.active {
|
|
87
88
|
border-color: var(--fui-border, $fui-border);
|
|
88
|
-
background-color: var(--fui-bg
|
|
89
|
+
background-color: var(--fui-control-selected-bg, $fui-bg-active);
|
|
89
90
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -109,7 +110,7 @@
|
|
|
109
110
|
// motion the component has. Opacity only: nothing reflows, and a reader who has
|
|
110
111
|
// asked for less motion loses the breathing and keeps the badge.
|
|
111
112
|
.dotPulse {
|
|
112
|
-
animation: fui-badge-dot-pulse
|
|
113
|
+
animation: fui-badge-dot-pulse var(--fui-duration-pulse, $fui-duration-pulse) ease-in-out infinite;
|
|
113
114
|
}
|
|
114
115
|
|
|
115
116
|
@keyframes fui-badge-dot-pulse {
|
|
@@ -169,4 +170,10 @@
|
|
|
169
170
|
&:hover {
|
|
170
171
|
opacity: 1;
|
|
171
172
|
}
|
|
173
|
+
|
|
174
|
+
&:focus-visible {
|
|
175
|
+
@include focus-ring;
|
|
176
|
+
|
|
177
|
+
opacity: 1;
|
|
178
|
+
}
|
|
172
179
|
}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "BentoGrid",
|
|
4
|
-
"description": "Asymmetric grid
|
|
4
|
+
"description": "Asymmetric feature grid where tiles span different widths and heights.",
|
|
5
5
|
"category": "layout",
|
|
6
|
-
"tags": [
|
|
7
|
-
"bento",
|
|
8
|
-
"grid",
|
|
9
|
-
"layout",
|
|
10
|
-
"responsive",
|
|
11
|
-
"feature-grid",
|
|
12
|
-
"asymmetric"
|
|
13
|
-
],
|
|
6
|
+
"tags": ["bento", "grid", "layout", "responsive", "feature-grid", "asymmetric"],
|
|
14
7
|
"status": "stable",
|
|
15
8
|
"sourcePath": "src/components/BentoGrid/index.tsx",
|
|
16
9
|
"exportName": "BentoGrid",
|
|
@@ -31,25 +24,14 @@
|
|
|
31
24
|
"description": "Number of columns — auto-collapses responsively (3→2→1)",
|
|
32
25
|
"default": "3",
|
|
33
26
|
"required": false,
|
|
34
|
-
"values": [
|
|
35
|
-
"2",
|
|
36
|
-
"3",
|
|
37
|
-
"4"
|
|
38
|
-
]
|
|
27
|
+
"values": ["2", "3", "4"]
|
|
39
28
|
},
|
|
40
29
|
"gap": {
|
|
41
30
|
"type": "enum",
|
|
42
31
|
"description": "Gap between grid items, mapped to spacing tokens",
|
|
43
32
|
"default": "md",
|
|
44
33
|
"required": false,
|
|
45
|
-
"values": [
|
|
46
|
-
"none",
|
|
47
|
-
"xs",
|
|
48
|
-
"sm",
|
|
49
|
-
"md",
|
|
50
|
-
"lg",
|
|
51
|
-
"xl"
|
|
52
|
-
]
|
|
34
|
+
"values": ["none", "xs", "sm", "md", "lg", "xl"]
|
|
53
35
|
},
|
|
54
36
|
"style": {
|
|
55
37
|
"type": "object",
|
|
@@ -59,22 +41,21 @@
|
|
|
59
41
|
},
|
|
60
42
|
"usage": {
|
|
61
43
|
"when": [
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"Marketing
|
|
65
|
-
"Any layout where items need per-breakpoint column/row spans"
|
|
44
|
+
"Feature grids with one hero tile and supporting tiles",
|
|
45
|
+
"Dashboards where cards carry different weight",
|
|
46
|
+
"Marketing sections with mixed-size blocks"
|
|
66
47
|
],
|
|
67
48
|
"whenNot": [
|
|
68
|
-
"Uniform
|
|
69
|
-
"
|
|
70
|
-
"
|
|
49
|
+
"Uniform tiles of one size (use Grid)",
|
|
50
|
+
"Labelled form fields (use Grid)",
|
|
51
|
+
"A single column of content (use Stack)"
|
|
71
52
|
],
|
|
72
53
|
"guidelines": [
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
54
|
+
"colSpan and rowSpan take per-breakpoint objects",
|
|
55
|
+
"A hero tile is usually colSpan 2 and rowSpan 2 from lg up",
|
|
56
|
+
"Tiles carry their own surface — do not wrap them in Card",
|
|
57
|
+
"Columns collapse 3 to 2 below lg, and to 1 below sm",
|
|
58
|
+
"Keep source order equal to visual order for screen readers"
|
|
78
59
|
],
|
|
79
60
|
"accessibility": [
|
|
80
61
|
"Grid is purely visual — it does not affect reading order or semantics",
|
|
@@ -86,23 +67,18 @@
|
|
|
86
67
|
"examples": [
|
|
87
68
|
{
|
|
88
69
|
"name": "Default",
|
|
89
|
-
"description": "
|
|
90
|
-
"code": "<BentoGrid columns={3} gap=\"md\">\n
|
|
70
|
+
"description": "Equal tiles, each on its own surface.",
|
|
71
|
+
"code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n <BentoGrid.Item>Item 6</BentoGrid.Item>\n </BentoGrid>\n</Box>"
|
|
91
72
|
},
|
|
92
73
|
{
|
|
93
74
|
"name": "Hero Layout",
|
|
94
|
-
"description": "
|
|
95
|
-
"code": "<BentoGrid columns={3} gap=\"md\">\n
|
|
75
|
+
"description": "One tile takes two columns and two rows; the rest fill around it.",
|
|
76
|
+
"code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item colSpan={{ base: 1, lg: 2 }} rowSpan={{ base: 1, lg: 2 }}>\n Hero content\n </BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n </BentoGrid>\n</Box>"
|
|
96
77
|
},
|
|
97
78
|
{
|
|
98
79
|
"name": "Two Column",
|
|
99
|
-
"description": "
|
|
100
|
-
"code": "<BentoGrid columns={2} gap=\"md\">\n
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"name": "Full-Width Banner",
|
|
104
|
-
"description": "3-column grid with a full-width item spanning all columns",
|
|
105
|
-
"code": "<BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item colSpan={3}>Full-width banner</BentoGrid.Item>\n</BentoGrid>"
|
|
80
|
+
"description": "colSpan stretches a tile across the whole row.",
|
|
81
|
+
"code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={2} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item colSpan={2}>Wide item</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n </BentoGrid>\n</Box>"
|
|
106
82
|
}
|
|
107
83
|
],
|
|
108
84
|
"relations": [
|