@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,14 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Button as BaseButton } from
|
|
5
|
-
import styles from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Button as BaseButton } from "@base-ui/react/button";
|
|
5
|
+
import styles from "./Alert.module.scss";
|
|
6
6
|
|
|
7
7
|
// ============================================
|
|
8
8
|
// Types
|
|
9
9
|
// ============================================
|
|
10
10
|
|
|
11
|
-
export type AlertSeverity =
|
|
11
|
+
export type AlertSeverity = "info" | "success" | "warning" | "error";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Alert for contextual feedback messages (info, success, warning, error).
|
|
@@ -20,6 +20,12 @@ export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
20
20
|
* @default "info"
|
|
21
21
|
* @see https://usefragments.com/components/alert#variants */
|
|
22
22
|
severity?: AlertSeverity;
|
|
23
|
+
/** How much surface the severity claims. `tint` washes the whole card in the
|
|
24
|
+
* severity colour. `surface` keeps the card on the page's own background and
|
|
25
|
+
* spends the colour only on the hairline and the title — for a standing
|
|
26
|
+
* failure that owns the view, where a full wash would read as a red page.
|
|
27
|
+
* @default "tint" */
|
|
28
|
+
emphasis?: "tint" | "surface";
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
export interface AlertIconProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
@@ -38,12 +44,18 @@ export interface AlertActionsProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
38
44
|
children: React.ReactNode;
|
|
39
45
|
}
|
|
40
46
|
|
|
41
|
-
export interface AlertActionProps extends Omit<
|
|
47
|
+
export interface AlertActionProps extends Omit<
|
|
48
|
+
React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
49
|
+
"onClick"
|
|
50
|
+
> {
|
|
42
51
|
children: React.ReactNode;
|
|
43
52
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
44
53
|
}
|
|
45
54
|
|
|
46
|
-
export interface AlertCloseProps extends Omit<
|
|
55
|
+
export interface AlertCloseProps extends Omit<
|
|
56
|
+
React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
57
|
+
"children"
|
|
58
|
+
> {
|
|
47
59
|
children?: React.ReactNode;
|
|
48
60
|
}
|
|
49
61
|
|
|
@@ -67,7 +79,7 @@ const AlertContext = React.createContext<AlertContextValue | null>(null);
|
|
|
67
79
|
function useAlertContext() {
|
|
68
80
|
const context = React.useContext(AlertContext);
|
|
69
81
|
if (!context) {
|
|
70
|
-
throw new Error(
|
|
82
|
+
throw new Error("Alert compound components must be used within an Alert");
|
|
71
83
|
}
|
|
72
84
|
return context;
|
|
73
85
|
}
|
|
@@ -88,10 +100,10 @@ function composeEventHandlers<E extends { defaultPrevented: boolean }>(
|
|
|
88
100
|
// ============================================
|
|
89
101
|
|
|
90
102
|
const severityIcons: Record<AlertSeverity, string> = {
|
|
91
|
-
info:
|
|
92
|
-
success:
|
|
93
|
-
warning:
|
|
94
|
-
error:
|
|
103
|
+
info: "i",
|
|
104
|
+
success: "\u2713",
|
|
105
|
+
warning: "!",
|
|
106
|
+
error: "\u2717",
|
|
95
107
|
};
|
|
96
108
|
|
|
97
109
|
// ============================================
|
|
@@ -100,7 +112,8 @@ const severityIcons: Record<AlertSeverity, string> = {
|
|
|
100
112
|
|
|
101
113
|
function AlertRoot({
|
|
102
114
|
children,
|
|
103
|
-
severity =
|
|
115
|
+
severity = "info",
|
|
116
|
+
emphasis = "tint",
|
|
104
117
|
className,
|
|
105
118
|
...htmlProps
|
|
106
119
|
}: AlertProps) {
|
|
@@ -114,10 +127,15 @@ function AlertRoot({
|
|
|
114
127
|
|
|
115
128
|
if (dismissed) return null;
|
|
116
129
|
|
|
117
|
-
const classes = [
|
|
130
|
+
const classes = [
|
|
131
|
+
styles.alert,
|
|
132
|
+
styles[severity],
|
|
133
|
+
emphasis === "surface" ? styles.surface : null,
|
|
134
|
+
className,
|
|
135
|
+
]
|
|
118
136
|
.filter(Boolean)
|
|
119
|
-
.join(
|
|
120
|
-
const role = severity ===
|
|
137
|
+
.join(" ");
|
|
138
|
+
const role = severity === "warning" || severity === "error" ? "alert" : "status";
|
|
121
139
|
|
|
122
140
|
const contextValue: AlertContextValue = {
|
|
123
141
|
severity,
|
|
@@ -143,7 +161,7 @@ function AlertRoot({
|
|
|
143
161
|
|
|
144
162
|
function AlertIcon({ children, className, ...htmlProps }: AlertIconProps) {
|
|
145
163
|
const { severity } = useAlertContext();
|
|
146
|
-
const classes = [styles.icon, className].filter(Boolean).join(
|
|
164
|
+
const classes = [styles.icon, className].filter(Boolean).join(" ");
|
|
147
165
|
|
|
148
166
|
return (
|
|
149
167
|
<span {...htmlProps} className={classes} aria-hidden="true">
|
|
@@ -153,13 +171,17 @@ function AlertIcon({ children, className, ...htmlProps }: AlertIconProps) {
|
|
|
153
171
|
}
|
|
154
172
|
|
|
155
173
|
function AlertBody({ children, className, ...htmlProps }: AlertBodyProps) {
|
|
156
|
-
const classes = [styles.body, className].filter(Boolean).join(
|
|
157
|
-
return
|
|
174
|
+
const classes = [styles.body, className].filter(Boolean).join(" ");
|
|
175
|
+
return (
|
|
176
|
+
<div {...htmlProps} className={classes}>
|
|
177
|
+
{children}
|
|
178
|
+
</div>
|
|
179
|
+
);
|
|
158
180
|
}
|
|
159
181
|
|
|
160
182
|
function AlertTitle({ children, className, ...htmlProps }: AlertTitleProps) {
|
|
161
183
|
const { titleId } = useAlertContext();
|
|
162
|
-
const classes = [styles.title, className].filter(Boolean).join(
|
|
184
|
+
const classes = [styles.title, className].filter(Boolean).join(" ");
|
|
163
185
|
return (
|
|
164
186
|
<div {...htmlProps} id={htmlProps.id ?? titleId} className={classes}>
|
|
165
187
|
{children}
|
|
@@ -169,7 +191,7 @@ function AlertTitle({ children, className, ...htmlProps }: AlertTitleProps) {
|
|
|
169
191
|
|
|
170
192
|
function AlertContent({ children, className, ...htmlProps }: AlertContentProps) {
|
|
171
193
|
const { descId } = useAlertContext();
|
|
172
|
-
const classes = [styles.content, className].filter(Boolean).join(
|
|
194
|
+
const classes = [styles.content, className].filter(Boolean).join(" ");
|
|
173
195
|
return (
|
|
174
196
|
<div {...htmlProps} id={htmlProps.id ?? descId} className={classes}>
|
|
175
197
|
{children}
|
|
@@ -178,18 +200,22 @@ function AlertContent({ children, className, ...htmlProps }: AlertContentProps)
|
|
|
178
200
|
}
|
|
179
201
|
|
|
180
202
|
function AlertActions({ children, className, ...htmlProps }: AlertActionsProps) {
|
|
181
|
-
const classes = [styles.actions, className].filter(Boolean).join(
|
|
182
|
-
return
|
|
203
|
+
const classes = [styles.actions, className].filter(Boolean).join(" ");
|
|
204
|
+
return (
|
|
205
|
+
<div {...htmlProps} className={classes}>
|
|
206
|
+
{children}
|
|
207
|
+
</div>
|
|
208
|
+
);
|
|
183
209
|
}
|
|
184
210
|
|
|
185
211
|
function AlertAction({
|
|
186
212
|
children,
|
|
187
213
|
onClick,
|
|
188
|
-
type =
|
|
214
|
+
type = "button",
|
|
189
215
|
className,
|
|
190
216
|
...htmlProps
|
|
191
217
|
}: AlertActionProps) {
|
|
192
|
-
const classes = [styles.action, className].filter(Boolean).join(
|
|
218
|
+
const classes = [styles.action, className].filter(Boolean).join(" ");
|
|
193
219
|
return (
|
|
194
220
|
<BaseButton {...htmlProps} onClick={onClick} type={type} className={classes}>
|
|
195
221
|
{children}
|
|
@@ -201,12 +227,12 @@ function AlertClose({
|
|
|
201
227
|
children,
|
|
202
228
|
className,
|
|
203
229
|
onClick,
|
|
204
|
-
type =
|
|
205
|
-
|
|
230
|
+
type = "button",
|
|
231
|
+
"aria-label": ariaLabel = "Dismiss alert",
|
|
206
232
|
...htmlProps
|
|
207
233
|
}: AlertCloseProps) {
|
|
208
234
|
const { dismiss } = useAlertContext();
|
|
209
|
-
const classes = [styles.close, className].filter(Boolean).join(
|
|
235
|
+
const classes = [styles.close, className].filter(Boolean).join(" ");
|
|
210
236
|
|
|
211
237
|
return (
|
|
212
238
|
<BaseButton
|
|
@@ -216,7 +242,7 @@ function AlertClose({
|
|
|
216
242
|
aria-label={ariaLabel}
|
|
217
243
|
className={classes}
|
|
218
244
|
>
|
|
219
|
-
{children ??
|
|
245
|
+
{children ?? "\u00D7"}
|
|
220
246
|
</BaseButton>
|
|
221
247
|
);
|
|
222
248
|
}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "AppShell",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Lays out header, sidebar, main, and optional aside as one responsive app frame.",
|
|
5
5
|
"category": "layout",
|
|
6
|
-
"tags": [
|
|
7
|
-
"layout",
|
|
8
|
-
"shell",
|
|
9
|
-
"scaffold",
|
|
10
|
-
"dashboard",
|
|
11
|
-
"app-layout"
|
|
12
|
-
],
|
|
6
|
+
"tags": ["layout", "shell", "scaffold", "dashboard", "app-layout"],
|
|
13
7
|
"status": "stable",
|
|
14
8
|
"sourcePath": "src/components/AppShell/index.tsx",
|
|
15
9
|
"exportName": "AppShell",
|
|
@@ -30,12 +24,7 @@
|
|
|
30
24
|
"description": "Structural layout for CSS grid areas",
|
|
31
25
|
"default": "default",
|
|
32
26
|
"required": false,
|
|
33
|
-
"values": [
|
|
34
|
-
"default",
|
|
35
|
-
"sidebar",
|
|
36
|
-
"sidebar-floating",
|
|
37
|
-
"floating"
|
|
38
|
-
]
|
|
27
|
+
"values": ["default", "sidebar", "sidebar-floating", "floating"]
|
|
39
28
|
},
|
|
40
29
|
"bg": {
|
|
41
30
|
"type": "string",
|
|
@@ -50,26 +39,25 @@
|
|
|
50
39
|
},
|
|
51
40
|
"usage": {
|
|
52
41
|
"when": [
|
|
53
|
-
"
|
|
42
|
+
"Dashboards and internal tools",
|
|
54
43
|
"Apps with persistent sidebar navigation",
|
|
55
|
-
"Layouts
|
|
56
|
-
"
|
|
44
|
+
"Layouts needing header, sidebar, and main together",
|
|
45
|
+
"Navigation that must collapse to a drawer on mobile"
|
|
57
46
|
],
|
|
58
47
|
"whenNot": [
|
|
59
|
-
"
|
|
60
|
-
"Content-first sites
|
|
61
|
-
"Single-
|
|
48
|
+
"Marketing and landing pages",
|
|
49
|
+
"Content-first sites with no app navigation",
|
|
50
|
+
"Single-screen tools with no chrome"
|
|
62
51
|
],
|
|
63
52
|
"guidelines": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"Aside panel is hidden on mobile automatically"
|
|
53
|
+
"layout=\"default\" puts the logo in a full-width header",
|
|
54
|
+
"layout=\"sidebar\" puts the logo in a full-height sidebar",
|
|
55
|
+
"variant=\"floating\" is per slot — mix it with any layout",
|
|
56
|
+
"bg overrides one slot's background without touching the rest",
|
|
57
|
+
"AppShell supplies SidebarProvider; do not add your own",
|
|
58
|
+
"Set width and collapse behaviour on AppShell.Sidebar",
|
|
59
|
+
"Main reflows automatically when the sidebar collapses",
|
|
60
|
+
"Aside hides itself on mobile"
|
|
73
61
|
],
|
|
74
62
|
"accessibility": [
|
|
75
63
|
"Main content area has id=\"main-content\" for skip links",
|
|
@@ -81,43 +69,43 @@
|
|
|
81
69
|
"examples": [
|
|
82
70
|
{
|
|
83
71
|
"name": "Default Layout",
|
|
84
|
-
"description": "Header spans full width above sidebar
|
|
85
|
-
"code": "import { ChartBar, Gear, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
72
|
+
"description": "Header spans the full width above the sidebar.",
|
|
73
|
+
"code": "import { ChartBar, Gear, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"default\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Brand>MyApp</Header.Brand>\n <Header.Nav>\n <Header.NavItem active>Dashboard</Header.NavItem>\n <Header.NavItem>Settings</Header.NavItem>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"200px\" collapsible=\"offcanvas\">\n <Sidebar.Nav>\n <Sidebar.Section label=\"Menu\">\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={Gear} size=\"md\" />}>Settings</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Default Layout</Text>\n <Text as=\"p\" color=\"secondary\">\n Header spans full width. Logo is in the header.\n </Text>\n </Stack>\n </AppShell.Main>\n </AppShell>\n</Box>"
|
|
86
74
|
},
|
|
87
75
|
{
|
|
88
76
|
"name": "Sidebar Layout",
|
|
89
|
-
"description": "Sidebar
|
|
90
|
-
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
77
|
+
"description": "Sidebar runs full height with the header beside it.",
|
|
78
|
+
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"sidebar\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Search>\n <Box background=\"secondary\" rounded=\"sm\" paddingX=\"sm\" paddingY=\"xs\">\n <Stack direction=\"row\" align=\"center\" gap=\"sm\">\n <Icon icon={MagnifyingGlass} size=\"sm\" variant=\"tertiary\" />\n <Text size=\"sm\" color=\"tertiary\">Search...</Text>\n </Stack>\n </Box>\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"200px\" collapsible=\"offcanvas\">\n <Sidebar.Header>\n <Text weight=\"semibold\">MyApp</Text>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section label=\"Menu\">\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={Gear} size=\"md\" />}>Settings</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n <Sidebar.Footer>v1.0.0</Sidebar.Footer>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Sidebar Layout</Text>\n <Text as=\"p\" color=\"secondary\">\n Sidebar is full height. Logo is in the sidebar header.\n </Text>\n </Stack>\n </AppShell.Main>\n </AppShell>\n</Box>"
|
|
91
79
|
},
|
|
92
80
|
{
|
|
93
81
|
"name": "With Aside Panel",
|
|
94
|
-
"description": "
|
|
95
|
-
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
82
|
+
"description": "Adds a right rail for context, filters, or actions.",
|
|
83
|
+
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"default\">\n <AppShell.Header>\n <Header>\n <Header.Brand>App</Header.Brand>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"180px\" collapsible=\"offcanvas\">\n <Sidebar.Nav>\n <Sidebar.Section>\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Stats</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Main Content</Text>\n <Text as=\"p\">Content with aside panel on the right.</Text>\n </Stack>\n </AppShell.Main>\n\n <AppShell.Aside width=\"180px\">\n <Box padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h3\" size=\"sm\" weight=\"semibold\">Aside Panel</Text>\n <Text as=\"p\" size=\"sm\" color=\"secondary\">\n Additional context, filters, or quick actions.\n </Text>\n </Stack>\n </Box>\n </AppShell.Aside>\n </AppShell>\n</Box>"
|
|
96
84
|
},
|
|
97
85
|
{
|
|
98
86
|
"name": "Collapsible Icon Sidebar",
|
|
99
|
-
"description": "Sidebar
|
|
100
|
-
"code": "import { ChartBar, Gear, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
87
|
+
"description": "Sidebar shrinks to icons on desktop via the footer toggle.",
|
|
88
|
+
"code": "import { ChartBar, Gear, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"sidebar\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar collapsible=\"icon\" width=\"200px\" collapsedWidth=\"56px\">\n <Sidebar.Header>\n <Text weight=\"semibold\">App</Text>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section>\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={Gear} size=\"md\" />}>Settings</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n <Sidebar.Footer>\n <Sidebar.CollapseToggle />\n </Sidebar.Footer>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\">\n <Text as=\"p\">\n Click the collapse button in the sidebar footer to toggle between expanded and icon-only modes.\n </Text>\n </AppShell.Main>\n </AppShell>\n</Box>"
|
|
101
89
|
},
|
|
102
90
|
{
|
|
103
91
|
"name": "Floating Main",
|
|
104
|
-
"description": "
|
|
105
|
-
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
92
|
+
"description": "Only the main slot floats — rounded, raised, on its own background.",
|
|
93
|
+
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"sidebar\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Search>\n <Box background=\"primary\" border rounded=\"sm\" paddingX=\"sm\" paddingY=\"xs\">\n <Stack direction=\"row\" align=\"center\" gap=\"sm\">\n <Icon icon={MagnifyingGlass} size=\"sm\" variant=\"tertiary\" />\n <Text size=\"sm\" color=\"tertiary\">Search...</Text>\n </Stack>\n </Box>\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"200px\" collapsible=\"offcanvas\" variant=\"floating\">\n <Sidebar.Header>\n <Text weight=\"semibold\">MyApp</Text>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section label=\"Menu\">\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={Gear} size=\"md\" />}>Settings</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n <Sidebar.Footer>v1.0.0</Sidebar.Footer>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\" variant=\"floating\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Floating Main</Text>\n <Text as=\"p\" color=\"secondary\">\n Main content has rounded corners and visual separation from the sidebar.\n </Text>\n </Stack>\n </AppShell.Main>\n </AppShell>\n</Box>"
|
|
106
94
|
},
|
|
107
95
|
{
|
|
108
96
|
"name": "Floating Main & Aside",
|
|
109
|
-
"description": "
|
|
110
|
-
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
97
|
+
"description": "Two slots float independently; the sidebar stays flush.",
|
|
98
|
+
"code": "import { ChartBar, Gear, House, MagnifyingGlass } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"sidebar\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Search>\n <Box background=\"primary\" border rounded=\"sm\" paddingX=\"sm\" paddingY=\"xs\">\n <Stack direction=\"row\" align=\"center\" gap=\"sm\">\n <Icon icon={MagnifyingGlass} size=\"sm\" variant=\"tertiary\" />\n <Text size=\"sm\" color=\"tertiary\">Search...</Text>\n </Stack>\n </Box>\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"200px\" collapsible=\"offcanvas\" variant=\"floating\">\n <Sidebar.Header>\n <Text weight=\"semibold\">MyApp</Text>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section label=\"Menu\">\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={Gear} size=\"md\" />}>Settings</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n <Sidebar.Footer>v1.0.0</Sidebar.Footer>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\" variant=\"floating\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Floating Main & Aside</Text>\n <Text as=\"p\" color=\"secondary\">\n Both main content and aside panel float with rounded corners.\n </Text>\n </Stack>\n </AppShell.Main>\n\n <AppShell.Aside width=\"200px\" variant=\"floating\">\n <Box padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h3\" size=\"sm\" weight=\"semibold\">Aside Panel</Text>\n <Text as=\"p\" size=\"sm\" color=\"secondary\">\n This aside also floats, matching the main content area.\n </Text>\n </Stack>\n </Box>\n </AppShell.Aside>\n </AppShell>\n</Box>"
|
|
111
99
|
},
|
|
112
100
|
{
|
|
113
101
|
"name": "Floating Default Layout",
|
|
114
|
-
"description": "
|
|
115
|
-
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
102
|
+
"description": "Floating works under any layout, including header-on-top.",
|
|
103
|
+
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"default\">\n <AppShell.Header>\n <Header>\n <Header.Brand>MyApp</Header.Brand>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"180px\" collapsible=\"offcanvas\" variant=\"floating\">\n <Sidebar.Nav>\n <Sidebar.Section>\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Stats</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\" variant=\"floating\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Floating Default Layout</Text>\n <Text as=\"p\" color=\"secondary\">\n Default structure (header on top) with floating main content. Any slot can float in any layout.\n </Text>\n </Stack>\n </AppShell.Main>\n </AppShell>\n</Box>"
|
|
116
104
|
},
|
|
117
105
|
{
|
|
118
106
|
"name": "Custom Backgrounds",
|
|
119
|
-
"description": "Each slot
|
|
120
|
-
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box
|
|
107
|
+
"description": "Each slot takes its own bg, so regions read apart.",
|
|
108
|
+
"code": "import { ChartBar, House } from '@phosphor-icons/react';\nimport { AppShell } from '@/components/AppShell';\nimport { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Icon } from '@/components/Icon';\nimport { Sidebar } from '@/components/Sidebar';\nimport { Stack } from '@/components/Stack';\nimport { Text } from '@/components/Text';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box height=\"360px\" overflow=\"hidden\" border rounded=\"md\">\n <AppShell layout=\"sidebar\">\n <AppShell.Header>\n <Header>\n <Header.Trigger />\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"sm\" />\n </Header.Actions>\n </Header>\n </AppShell.Header>\n\n <AppShell.Sidebar width=\"200px\" collapsible=\"offcanvas\" bg=\"var(--fui-bg-elevated)\">\n <Sidebar.Header>\n <Text weight=\"semibold\">MyApp</Text>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section label=\"Menu\">\n <Sidebar.Item icon={<Icon icon={House} size=\"md\" />} active>Home</Sidebar.Item>\n <Sidebar.Item icon={<Icon icon={ChartBar} size=\"md\" />}>Analytics</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </AppShell.Sidebar>\n\n <AppShell.Main padding=\"md\" bg=\"var(--fui-bg-primary)\">\n <Stack gap=\"xs\">\n <Text as=\"h2\" size=\"xl\" weight=\"semibold\">Custom Backgrounds</Text>\n <Text as=\"p\" color=\"secondary\">\n Sidebar uses bg-elevated (lighter), main uses bg-primary (darker). Any CSS color or token works.\n </Text>\n </Stack>\n </AppShell.Main>\n\n <AppShell.Aside width=\"200px\" bg=\"var(--fui-bg-elevated)\">\n <Box padding=\"md\">\n <Stack gap=\"xs\">\n <Text as=\"h3\" size=\"sm\" weight=\"semibold\">Aside Panel</Text>\n <Text as=\"p\" size=\"sm\" color=\"secondary\">\n Aside with bg-elevated background matching the sidebar.\n </Text>\n </Stack>\n </Box>\n </AppShell.Aside>\n </AppShell>\n</Box>"
|
|
121
109
|
}
|
|
122
110
|
],
|
|
123
111
|
"relations": [
|
|
@@ -139,12 +127,7 @@
|
|
|
139
127
|
],
|
|
140
128
|
"ai": {
|
|
141
129
|
"compositionPattern": "compound",
|
|
142
|
-
"subComponents": [
|
|
143
|
-
"Header",
|
|
144
|
-
"Sidebar",
|
|
145
|
-
"Main",
|
|
146
|
-
"Aside"
|
|
147
|
-
]
|
|
130
|
+
"subComponents": ["Header", "Sidebar", "Main", "Aside"]
|
|
148
131
|
},
|
|
149
132
|
"provenance": {
|
|
150
133
|
"source": "migrated",
|
|
@@ -32,8 +32,13 @@
|
|
|
32
32
|
var(--appshell-header-height, var(--fui-appshell-header-height, $fui-appshell-header-height))
|
|
33
33
|
1fr;
|
|
34
34
|
|
|
35
|
-
// Smooth transition for sidebar collapse/expand
|
|
36
|
-
|
|
35
|
+
// Smooth transition for sidebar collapse/expand.
|
|
36
|
+
// The token already carries its own easing curve — do not append another.
|
|
37
|
+
transition: grid-template-columns var(--fui-transition-normal, $fui-transition-normal);
|
|
38
|
+
|
|
39
|
+
@media (prefers-reduced-motion: reduce) {
|
|
40
|
+
transition: none;
|
|
41
|
+
}
|
|
37
42
|
|
|
38
43
|
// Mobile: single column layout
|
|
39
44
|
@include below-md {
|
|
@@ -80,10 +85,11 @@
|
|
|
80
85
|
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
81
86
|
);
|
|
82
87
|
z-index: var(--fui-header-z-index, $fui-header-z-index);
|
|
83
|
-
|
|
88
|
+
// Match the reading pane (`--fui-app-main-bg`), not the rail.
|
|
89
|
+
background-color: var(--fui-app-main-bg, var(--fui-main-bg, #{$fui-main-bg}));
|
|
84
90
|
|
|
85
91
|
> header {
|
|
86
|
-
background-color:
|
|
92
|
+
background-color: var(--fui-app-main-bg, var(--fui-main-bg, #{$fui-main-bg}));
|
|
87
93
|
}
|
|
88
94
|
}
|
|
89
95
|
|
|
@@ -93,29 +99,42 @@
|
|
|
93
99
|
|
|
94
100
|
.sidebar {
|
|
95
101
|
grid-area: sidebar;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
);
|
|
101
|
-
height: calc(
|
|
102
|
-
100vh - var(
|
|
103
|
-
--appshell-header-height,
|
|
104
|
-
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
105
|
-
)
|
|
106
|
-
);
|
|
107
|
-
height: calc(
|
|
108
|
-
100dvh - var(
|
|
109
|
-
--appshell-header-height,
|
|
110
|
-
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
111
|
-
)
|
|
112
|
-
);
|
|
102
|
+
align-self: stretch;
|
|
103
|
+
position: relative;
|
|
104
|
+
height: auto;
|
|
105
|
+
min-height: 100%;
|
|
113
106
|
z-index: 30;
|
|
114
|
-
overflow:
|
|
107
|
+
overflow: visible;
|
|
115
108
|
background-color: inherit;
|
|
109
|
+
// Border lives on the grid column so the rail runs the full content
|
|
110
|
+
// height; the sticky inner sidebar is viewport-tall for nav scrolling.
|
|
111
|
+
border-inline-end: var(--fui-stroke-hairline, 1px) solid
|
|
112
|
+
var(
|
|
113
|
+
--fui-sidebar-border,
|
|
114
|
+
var(--fui-border-subtle, var(--fui-border-default, #{$fui-border-default}))
|
|
115
|
+
);
|
|
116
116
|
|
|
117
117
|
> aside {
|
|
118
|
+
position: sticky;
|
|
119
|
+
top: var(
|
|
120
|
+
--appshell-header-height,
|
|
121
|
+
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
122
|
+
);
|
|
123
|
+
height: calc(
|
|
124
|
+
100vh - var(
|
|
125
|
+
--appshell-header-height,
|
|
126
|
+
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
127
|
+
)
|
|
128
|
+
);
|
|
129
|
+
height: calc(
|
|
130
|
+
100dvh - var(
|
|
131
|
+
--appshell-header-height,
|
|
132
|
+
var(--fui-appshell-header-height, $fui-appshell-header-height)
|
|
133
|
+
)
|
|
134
|
+
);
|
|
135
|
+
overflow: hidden;
|
|
118
136
|
background-color: inherit;
|
|
137
|
+
border-inline-end: 0;
|
|
119
138
|
}
|
|
120
139
|
|
|
121
140
|
// On mobile, sidebar becomes a fixed overlay
|
|
@@ -128,33 +147,27 @@
|
|
|
128
147
|
height: 100vh;
|
|
129
148
|
height: 100dvh;
|
|
130
149
|
z-index: 51;
|
|
150
|
+
border-inline-end: 0;
|
|
131
151
|
|
|
132
|
-
|
|
133
|
-
|
|
152
|
+
> aside {
|
|
153
|
+
position: relative;
|
|
154
|
+
top: 0;
|
|
134
155
|
width: var(--appshell-sidebar-expanded-width, 240px);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Override Sidebar component's height
|
|
139
|
-
:global(.root) {
|
|
140
|
-
height: 100%;
|
|
141
|
-
|
|
142
|
-
@include below-md {
|
|
143
156
|
height: 100vh;
|
|
144
157
|
height: 100dvh;
|
|
145
158
|
}
|
|
146
159
|
}
|
|
147
160
|
}
|
|
148
161
|
|
|
149
|
-
// Sidebar in sidebar structure:
|
|
162
|
+
// Sidebar in sidebar structure: column stretches both rows; inner sticks
|
|
163
|
+
// from the top of the viewport.
|
|
150
164
|
.sidebarFullHeight {
|
|
151
|
-
top: 0;
|
|
152
|
-
height: 100vh;
|
|
153
|
-
height: 100dvh;
|
|
154
165
|
z-index: var(--fui-header-z-index, $fui-header-z-index);
|
|
155
166
|
|
|
156
|
-
|
|
157
|
-
|
|
167
|
+
> aside {
|
|
168
|
+
top: 0;
|
|
169
|
+
height: 100vh;
|
|
170
|
+
height: 100dvh;
|
|
158
171
|
}
|
|
159
172
|
}
|
|
160
173
|
|
|
@@ -190,7 +203,7 @@
|
|
|
190
203
|
border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
|
|
191
204
|
border-radius: var(--fui-radius-xl, $fui-radius-xl);
|
|
192
205
|
background-color: var(--fui-app-main-bg, var(--fui-main-bg, #{$fui-main-bg}));
|
|
193
|
-
box-shadow: inset 0 1px 0
|
|
206
|
+
box-shadow: inset 0 var(--fui-stroke-hairline, 1px) 0
|
|
194
207
|
color-mix(in srgb, var(--fui-text-primary, #{$fui-text-primary}) 5%, transparent);
|
|
195
208
|
overflow: hidden auto;
|
|
196
209
|
|
|
@@ -285,7 +298,7 @@
|
|
|
285
298
|
border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
|
|
286
299
|
border-radius: var(--fui-radius-xl, $fui-radius-xl);
|
|
287
300
|
background-color: var(--fui-panel-bg, inherit);
|
|
288
|
-
box-shadow: inset 0 1px 0
|
|
301
|
+
box-shadow: inset 0 var(--fui-stroke-hairline, 1px) 0
|
|
289
302
|
color-mix(in srgb, var(--fui-text-primary, #{$fui-text-primary}) 5%, transparent);
|
|
290
303
|
overflow: hidden;
|
|
291
304
|
|