@usefragments/ui 1.5.4 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/assets/fragments-wordmark.cjs +2 -2
- package/dist/assets/fragments-wordmark.d.ts.map +1 -1
- package/dist/assets/fragments-wordmark.js +2 -2
- package/dist/assets/ui.css +10468 -6909
- package/dist/chart.cjs +31 -26
- package/dist/chart.js +31 -26
- package/dist/codeblock.cjs +55 -29
- package/dist/codeblock.js +55 -29
- package/dist/colorpicker.cjs +5 -2
- package/dist/colorpicker.js +5 -2
- package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
- package/dist/components/Accordion/Accordion.module.scss.js +8 -8
- package/dist/components/Alert/Alert.module.scss.cjs +15 -12
- package/dist/components/Alert/Alert.module.scss.js +15 -12
- package/dist/components/Alert/index.cjs +7 -1
- package/dist/components/Alert/index.d.ts +12 -6
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +7 -1
- package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
- package/dist/components/AppShell/AppShell.module.scss.js +14 -14
- package/dist/components/AppShell/index.cjs +5 -3
- package/dist/components/AppShell/index.d.ts +4 -2
- package/dist/components/AppShell/index.d.ts.map +1 -1
- package/dist/components/AppShell/index.js +5 -3
- package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
- package/dist/components/Avatar/Avatar.module.scss.js +17 -14
- package/dist/components/Avatar/index.cjs +100 -118
- package/dist/components/Avatar/index.d.ts +7 -5
- package/dist/components/Avatar/index.d.ts.map +1 -1
- package/dist/components/Avatar/index.js +100 -118
- package/dist/components/Badge/Badge.module.scss.cjs +19 -19
- package/dist/components/Badge/Badge.module.scss.js +19 -19
- package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
- package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
- package/dist/components/Box/Box.module.scss.cjs +152 -152
- package/dist/components/Box/Box.module.scss.js +152 -152
- package/dist/components/Box/index.cjs +64 -75
- package/dist/components/Box/index.d.ts +16 -16
- package/dist/components/Box/index.d.ts.map +1 -1
- package/dist/components/Box/index.js +64 -75
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
- package/dist/components/Button/Button.module.scss.cjs +14 -14
- package/dist/components/Button/Button.module.scss.js +14 -14
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
- package/dist/components/Card/Card.module.scss.cjs +30 -18
- package/dist/components/Card/Card.module.scss.js +31 -19
- package/dist/components/Card/index.cjs +8 -0
- package/dist/components/Card/index.d.ts +12 -2
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +8 -0
- package/dist/components/Chart/Chart.module.scss.cjs +15 -15
- package/dist/components/Chart/Chart.module.scss.js +15 -15
- package/dist/components/Chart/index.d.ts +7 -7
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
- package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
- package/dist/components/Checkbox/index.cjs +6 -8
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +6 -8
- package/dist/components/Chip/Chip.module.scss.cjs +15 -15
- package/dist/components/Chip/Chip.module.scss.js +15 -15
- package/dist/components/Chip/index.cjs +6 -6
- package/dist/components/Chip/index.d.ts +1 -1
- package/dist/components/Chip/index.js +4 -4
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
- package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
- package/dist/components/CodeBlock/css-variables-theme.js +98 -0
- package/dist/components/CodeBlock/index.d.ts +17 -3
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
- package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
- package/dist/components/Collapsible/index.cjs +3 -2
- package/dist/components/Collapsible/index.d.ts +3 -3
- package/dist/components/Collapsible/index.d.ts.map +1 -1
- package/dist/components/Collapsible/index.js +3 -2
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
- package/dist/components/Combobox/Combobox.module.scss.js +21 -27
- package/dist/components/Combobox/index.cjs +21 -5
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +21 -5
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/Command/index.cjs +26 -15
- package/dist/components/Command/index.d.ts +2 -2
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +26 -15
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
- package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
- package/dist/components/ConversationList/index.cjs +40 -44
- package/dist/components/ConversationList/index.d.ts +3 -3
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +40 -44
- package/dist/components/DataTable/DataTable.icons.cjs +6 -33
- package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.icons.js +6 -33
- package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
- package/dist/components/DataTable/DataTable.module.scss.js +32 -56
- package/dist/components/DataTable/index.d.ts +5 -4
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
- package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
- package/dist/components/Dialog/Dialog.module.scss.js +14 -14
- package/dist/components/Dialog/index.cjs +11 -14
- package/dist/components/Dialog/index.d.ts +7 -7
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +11 -14
- package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
- package/dist/components/Drawer/Drawer.module.scss.js +31 -28
- package/dist/components/Drawer/index.cjs +1 -1
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/Editor/Editor.module.scss.cjs +23 -23
- package/dist/components/Editor/Editor.module.scss.js +23 -23
- package/dist/components/Editor/index.d.ts +10 -10
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
- package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
- package/dist/components/EmptyState/index.cjs +8 -6
- package/dist/components/EmptyState/index.d.ts +9 -4
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +8 -6
- package/dist/components/Field/Field.module.scss.cjs +8 -5
- package/dist/components/Field/Field.module.scss.js +8 -5
- package/dist/components/Field/index.cjs +18 -1
- package/dist/components/Field/index.d.ts +9 -2
- package/dist/components/Field/index.d.ts.map +1 -1
- package/dist/components/Field/index.js +18 -1
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Form/Form.module.scss.cjs +5 -2
- package/dist/components/Form/Form.module.scss.js +5 -2
- package/dist/components/Form/index.cjs +6 -1
- package/dist/components/Form/index.d.ts +8 -3
- package/dist/components/Form/index.d.ts.map +1 -1
- package/dist/components/Form/index.js +6 -1
- package/dist/components/Grid/Grid.module.scss.cjs +54 -72
- package/dist/components/Grid/Grid.module.scss.js +54 -72
- package/dist/components/Grid/index.cjs +57 -77
- package/dist/components/Grid/index.d.ts +11 -11
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +57 -77
- package/dist/components/Header/Header.module.scss.cjs +33 -33
- package/dist/components/Header/Header.module.scss.js +33 -33
- package/dist/components/Header/index.cjs +18 -38
- package/dist/components/Header/index.d.ts +15 -11
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +18 -38
- package/dist/components/Icon/Icon.module.scss.cjs +29 -8
- package/dist/components/Icon/Icon.module.scss.js +30 -9
- package/dist/components/Icon/index.cjs +30 -48
- package/dist/components/Icon/index.d.ts +6 -6
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +30 -48
- package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
- package/dist/components/IconButton/IconButton.module.scss.js +8 -8
- package/dist/components/IconButton/index.cjs +2 -1
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.js +2 -1
- package/dist/components/Image/Image.module.scss.cjs +27 -27
- package/dist/components/Image/Image.module.scss.js +27 -27
- package/dist/components/Input/Input.module.scss.cjs +19 -25
- package/dist/components/Input/Input.module.scss.js +19 -25
- package/dist/components/Input/index.cjs +1 -2
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +1 -2
- package/dist/components/Link/Link.module.scss.cjs +14 -10
- package/dist/components/Link/Link.module.scss.js +14 -10
- package/dist/components/Link/index.d.ts +1 -1
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/List/List.module.scss.cjs +19 -19
- package/dist/components/List/List.module.scss.js +19 -19
- package/dist/components/List/index.cjs +4 -7
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +4 -7
- package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
- package/dist/components/Listbox/Listbox.module.scss.js +9 -9
- package/dist/components/Loading/Loading.module.scss.cjs +34 -34
- package/dist/components/Loading/Loading.module.scss.js +34 -34
- package/dist/components/Loading/index.cjs +39 -67
- package/dist/components/Loading/index.d.ts +6 -6
- package/dist/components/Loading/index.d.ts.map +1 -1
- package/dist/components/Loading/index.js +39 -67
- package/dist/components/Main/Main.module.scss.cjs +7 -7
- package/dist/components/Main/Main.module.scss.js +7 -7
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +2 -2
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +16 -16
- package/dist/components/Menu/Menu.module.scss.js +16 -16
- package/dist/components/Menu/index.cjs +19 -61
- package/dist/components/Menu/index.d.ts +10 -10
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +19 -61
- package/dist/components/Message/Message.module.scss.cjs +18 -21
- package/dist/components/Message/Message.module.scss.js +18 -21
- package/dist/components/Message/index.cjs +15 -2
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +15 -2
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
- package/dist/components/NavigationMenu/index.cjs +32 -15
- package/dist/components/NavigationMenu/index.d.ts +12 -6
- package/dist/components/NavigationMenu/index.d.ts.map +1 -1
- package/dist/components/NavigationMenu/index.js +32 -15
- package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
- package/dist/components/Pagination/Pagination.module.scss.js +19 -10
- package/dist/components/Pagination/index.cjs +5 -2
- package/dist/components/Pagination/index.d.ts +3 -1
- package/dist/components/Pagination/index.d.ts.map +1 -1
- package/dist/components/Pagination/index.js +5 -2
- package/dist/components/Popover/Popover.module.scss.cjs +10 -10
- package/dist/components/Popover/Popover.module.scss.js +10 -10
- package/dist/components/Progress/Progress.module.scss.cjs +29 -32
- package/dist/components/Progress/Progress.module.scss.js +29 -32
- package/dist/components/Progress/geometry.cjs +30 -0
- package/dist/components/Progress/geometry.d.ts +8 -0
- package/dist/components/Progress/geometry.d.ts.map +1 -0
- package/dist/components/Progress/geometry.js +30 -0
- package/dist/components/Progress/index.cjs +40 -29
- package/dist/components/Progress/index.d.ts +4 -3
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +40 -29
- package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
- package/dist/components/Prompt/Prompt.module.scss.js +29 -29
- package/dist/components/Prompt/index.cjs +5 -4
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +5 -4
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
- package/dist/components/RadioGroup/index.cjs +7 -6
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +7 -6
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
- package/dist/components/ScrollArea/index.cjs +66 -42
- package/dist/components/ScrollArea/index.d.ts +6 -5
- package/dist/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/components/ScrollArea/index.js +66 -42
- package/dist/components/ScrollArea/scroll-state.cjs +58 -0
- package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
- package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
- package/dist/components/ScrollArea/scroll-state.js +58 -0
- package/dist/components/Select/Select.module.scss.cjs +21 -21
- package/dist/components/Select/Select.module.scss.js +21 -21
- package/dist/components/Select/index.cjs +3 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +3 -2
- package/dist/components/Separator/Separator.module.scss.cjs +13 -10
- package/dist/components/Separator/Separator.module.scss.js +13 -10
- package/dist/components/Separator/index.cjs +37 -38
- package/dist/components/Separator/index.d.ts +4 -4
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +37 -38
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
- package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
- package/dist/components/Sidebar/index.cjs +17 -38
- package/dist/components/Sidebar/index.d.ts +23 -18
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +17 -38
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
- package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
- package/dist/components/Skeleton/index.cjs +41 -55
- package/dist/components/Skeleton/index.d.ts +7 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +41 -55
- package/dist/components/Slider/Slider.module.scss.cjs +12 -12
- package/dist/components/Slider/Slider.module.scss.js +12 -12
- package/dist/components/Stack/Stack.module.scss.cjs +25 -45
- package/dist/components/Stack/Stack.module.scss.js +25 -45
- package/dist/components/Stack/index.cjs +106 -101
- package/dist/components/Stack/index.d.ts +7 -7
- package/dist/components/Stack/index.d.ts.map +1 -1
- package/dist/components/Stack/index.js +106 -101
- package/dist/components/Switch/Switch.module.scss.cjs +32 -0
- package/dist/components/Switch/Switch.module.scss.js +32 -0
- package/dist/components/{Toggle → Switch}/index.cjs +9 -14
- package/dist/components/Switch/index.d.ts +37 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/{Toggle → Switch}/index.js +5 -10
- package/dist/components/Table/Table.module.scss.cjs +21 -30
- package/dist/components/Table/Table.module.scss.js +21 -30
- package/dist/components/Table/index.d.ts +6 -5
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
- package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
- package/dist/components/TableOfContents/index.cjs +13 -9
- package/dist/components/TableOfContents/index.d.ts +5 -3
- package/dist/components/TableOfContents/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.js +13 -9
- package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
- package/dist/components/Tabs/Tabs.module.scss.js +12 -12
- package/dist/components/Tabs/index.cjs +28 -8
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +28 -8
- package/dist/components/Text/Text.module.scss.cjs +105 -57
- package/dist/components/Text/Text.module.scss.js +105 -57
- package/dist/components/Text/index.cjs +49 -33
- package/dist/components/Text/index.d.ts +30 -19
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +49 -33
- package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
- package/dist/components/Textarea/Textarea.module.scss.js +26 -23
- package/dist/components/Textarea/index.cjs +5 -10
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +5 -10
- package/dist/components/Theme/context.cjs +39 -0
- package/dist/components/Theme/context.d.ts +21 -0
- package/dist/components/Theme/context.d.ts.map +1 -0
- package/dist/components/Theme/context.js +22 -0
- package/dist/components/Theme/index.cjs +16 -210
- package/dist/components/Theme/index.d.ts +4 -37
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +11 -205
- package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
- package/dist/components/ThemeToggle/index.cjs +140 -0
- package/dist/components/ThemeToggle/index.d.ts +26 -0
- package/dist/components/ThemeToggle/index.d.ts.map +1 -0
- package/dist/components/ThemeToggle/index.js +140 -0
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
- package/dist/components/ThinkingIndicator/index.cjs +34 -41
- package/dist/components/ThinkingIndicator/index.d.ts +4 -4
- package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
- package/dist/components/ThinkingIndicator/index.js +34 -41
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/Toggle/index.d.ts +2 -42
- package/dist/components/Toggle/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
- package/dist/components/ToggleGroup/index.cjs +3 -2
- package/dist/components/ToggleGroup/index.d.ts +2 -1
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +3 -2
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
- package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
- package/dist/components/Tooltip/index.cjs +24 -40
- package/dist/components/Tooltip/index.d.ts +4 -4
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +24 -40
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
- package/dist/components/VisuallyHidden/index.d.ts +2 -2
- package/dist/data-table.cjs +14 -10
- package/dist/data-table.js +14 -10
- package/dist/datepicker.cjs +5 -3
- package/dist/datepicker.js +5 -3
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +101 -99
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +22 -30
- package/dist/measurements/generated.cjs +304 -0
- package/dist/measurements/generated.d.ts +268 -0
- package/dist/measurements/generated.d.ts.map +1 -0
- package/dist/measurements/generated.js +304 -0
- package/dist/measurements/index.d.ts +2 -0
- package/dist/measurements/index.d.ts.map +1 -0
- package/dist/measurements.cjs +6 -0
- package/dist/measurements.js +6 -0
- package/dist/recipes/popup.cjs +14 -0
- package/dist/recipes/popup.d.ts +4 -0
- package/dist/recipes/popup.d.ts.map +1 -0
- package/dist/recipes/popup.js +14 -0
- package/dist/recipes/table-chrome.cjs +18 -0
- package/dist/recipes/table-chrome.d.ts +10 -0
- package/dist/recipes/table-chrome.d.ts.map +1 -0
- package/dist/recipes/table-chrome.js +18 -0
- package/dist/table.cjs +5 -2
- package/dist/table.js +5 -2
- package/dist/utils/a11y.cjs +5 -2
- package/dist/utils/a11y.d.ts +5 -5
- package/dist/utils/a11y.d.ts.map +1 -1
- package/dist/utils/a11y.js +5 -2
- package/dist/utils/canonical-stamp.cjs +2 -8
- package/dist/utils/canonical-stamp.d.ts.map +1 -1
- package/dist/utils/canonical-stamp.js +1 -7
- package/dist/utils/css-warning.cjs +1 -1
- package/dist/utils/css-warning.js +1 -1
- package/dist/utils/env.cjs +17 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +17 -0
- package/dist/utils/keyboard-shortcuts.cjs +3 -10
- package/dist/utils/keyboard-shortcuts.d.ts +4 -4
- package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
- package/dist/utils/keyboard-shortcuts.js +3 -10
- package/dist/utils/layout-spacing.cjs +27 -0
- package/dist/utils/layout-spacing.d.ts +5 -0
- package/dist/utils/layout-spacing.d.ts.map +1 -0
- package/dist/utils/layout-spacing.js +27 -0
- package/dist/utils/seed-derivation.cjs +14 -48
- package/dist/utils/seed-derivation.d.ts +4 -3
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +14 -48
- package/dist/utils/theme-presets.cjs +1 -0
- package/dist/utils/theme-presets.d.ts +3 -2
- package/dist/utils/theme-presets.d.ts.map +1 -1
- package/dist/utils/theme-presets.js +1 -0
- package/fragments.json +1 -1
- package/package.json +25 -4
- package/src/assets/fragments-logo.tsx +2 -2
- package/src/assets/fragments-wordmark.tsx +4 -2
- package/src/components/Accordion/Accordion.contract.json +24 -48
- package/src/components/Accordion/Accordion.module.scss +31 -52
- package/src/components/Alert/Alert.contract.json +37 -53
- package/src/components/Alert/Alert.module.scss +52 -44
- package/src/components/Alert/index.tsx +55 -29
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +59 -43
- package/src/components/AppShell/index.tsx +8 -4
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +25 -60
- package/src/components/Avatar/index.tsx +152 -146
- package/src/components/Badge/Badge.contract.json +37 -42
- package/src/components/Badge/Badge.module.scss +59 -47
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/Box.module.scss +253 -81
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
- package/src/components/Button/Button.module.scss +60 -64
- package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
- package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
- package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
- package/src/components/Card/Card.module.scss +284 -167
- package/src/components/Card/index.tsx +21 -2
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/Chart.module.scss +28 -29
- package/src/components/Chart/index.tsx +72 -55
- package/src/components/Checkbox/Checkbox.contract.json +24 -24
- package/src/components/Checkbox/Checkbox.module.scss +75 -87
- package/src/components/Checkbox/index.tsx +8 -11
- package/src/components/Chip/Chip.contract.json +36 -42
- package/src/components/Chip/Chip.module.scss +25 -36
- package/src/components/Chip/index.tsx +5 -5
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
- package/src/components/CodeBlock/css-variables-theme.ts +102 -0
- package/src/components/CodeBlock/index.tsx +91 -35
- package/src/components/Collapsible/Collapsible.contract.json +21 -36
- package/src/components/Collapsible/Collapsible.module.scss +29 -63
- package/src/components/Collapsible/index.tsx +22 -26
- package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
- package/src/components/ColorPicker/index.tsx +7 -2
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +61 -74
- package/src/components/Combobox/index.tsx +34 -6
- package/src/components/Command/Command.contract.json +21 -43
- package/src/components/Command/Command.module.scss +47 -77
- package/src/components/Command/index.tsx +58 -47
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/ConversationList/ConversationList.module.scss +20 -78
- package/src/components/ConversationList/index.tsx +55 -59
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +81 -217
- package/src/components/DataTable/index.tsx +28 -32
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +66 -38
- package/src/components/DatePicker/index.tsx +7 -3
- package/src/components/Dialog/Dialog.module.scss +45 -69
- package/src/components/Dialog/index.tsx +47 -37
- package/src/components/Drawer/Drawer.contract.json +22 -36
- package/src/components/Drawer/Drawer.module.scss +93 -99
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Editor/Editor.contract.json +31 -48
- package/src/components/Editor/Editor.module.scss +137 -220
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +31 -43
- package/src/components/EmptyState/EmptyState.module.scss +45 -84
- package/src/components/EmptyState/index.tsx +48 -23
- package/src/components/Field/Field.contract.json +28 -45
- package/src/components/Field/Field.module.scss +9 -11
- package/src/components/Field/index.tsx +31 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +23 -8
- package/src/components/Form/Form.contract.json +27 -40
- package/src/components/Form/Form.module.scss +9 -4
- package/src/components/Form/index.tsx +22 -7
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/Grid.module.scss +159 -63
- package/src/components/Grid/index.tsx +114 -133
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +56 -48
- package/src/components/Header/index.tsx +134 -121
- package/src/components/Icon/Icon.contract.json +22 -62
- package/src/components/Icon/Icon.module.scss +16 -0
- package/src/components/Icon/index.tsx +74 -86
- package/src/components/IconButton/IconButton.contract.json +34 -18
- package/src/components/IconButton/IconButton.module.scss +15 -26
- package/src/components/IconButton/index.tsx +2 -1
- package/src/components/Image/Image.contract.json +23 -56
- package/src/components/Input/Input.contract.json +26 -32
- package/src/components/Input/Input.module.scss +69 -56
- package/src/components/Input/index.tsx +1 -2
- package/src/components/Link/Link.contract.json +32 -52
- package/src/components/Link/Link.module.scss +29 -13
- package/src/components/Link/index.tsx +1 -1
- package/src/components/List/List.contract.json +23 -52
- package/src/components/List/List.module.scss +16 -21
- package/src/components/List/index.tsx +4 -10
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Listbox/Listbox.module.scss +26 -54
- package/src/components/Loading/Loading.contract.json +37 -61
- package/src/components/Loading/Loading.module.scss +33 -40
- package/src/components/Loading/index.tsx +68 -97
- package/src/components/Main/Main.contract.json +17 -9
- package/src/components/Main/Main.module.scss +3 -5
- package/src/components/Markdown/Markdown.contract.json +22 -43
- package/src/components/Markdown/Markdown.module.scss +72 -182
- package/src/components/Markdown/index.tsx +50 -51
- package/src/components/Menu/Menu.contract.json +25 -41
- package/src/components/Menu/Menu.module.scss +63 -133
- package/src/components/Menu/index.tsx +57 -89
- package/src/components/Message/Message.contract.json +29 -52
- package/src/components/Message/Message.module.scss +60 -143
- package/src/components/Message/index.tsx +16 -6
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +34 -27
- package/src/components/Pagination/index.tsx +7 -2
- package/src/components/Popover/Popover.contract.json +24 -46
- package/src/components/Popover/Popover.module.scss +43 -78
- package/src/components/Progress/Progress.contract.json +32 -28
- package/src/components/Progress/Progress.module.scss +64 -43
- package/src/components/Progress/geometry.ts +41 -0
- package/src/components/Progress/index.tsx +44 -30
- package/src/components/Prompt/Prompt.contract.json +31 -47
- package/src/components/Prompt/Prompt.module.scss +58 -87
- package/src/components/Prompt/index.tsx +6 -5
- package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
- package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
- package/src/components/RadioGroup/index.tsx +7 -9
- package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
- package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
- package/src/components/ScrollArea/index.tsx +85 -67
- package/src/components/ScrollArea/scroll-state.ts +87 -0
- package/src/components/Select/Select.module.scss +55 -43
- package/src/components/Select/index.tsx +6 -2
- package/src/components/Separator/Separator.contract.json +24 -48
- package/src/components/Separator/Separator.module.scss +29 -19
- package/src/components/Separator/index.tsx +55 -51
- package/src/components/Sidebar/Sidebar.contract.json +42 -62
- package/src/components/Sidebar/Sidebar.module.scss +117 -106
- package/src/components/Sidebar/index.tsx +169 -162
- package/src/components/Skeleton/Skeleton.contract.json +28 -54
- package/src/components/Skeleton/Skeleton.module.scss +51 -34
- package/src/components/Skeleton/index.tsx +65 -72
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +33 -27
- package/src/components/Stack/Stack.contract.json +29 -56
- package/src/components/Stack/Stack.module.scss +110 -38
- package/src/components/Stack/index.tsx +157 -127
- package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
- package/src/components/Switch/Switch.module.scss +255 -0
- package/src/components/{Toggle → Switch}/index.tsx +5 -21
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +50 -129
- package/src/components/Table/index.tsx +13 -6
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
- package/src/components/TableOfContents/index.tsx +26 -9
- package/src/components/Tabs/Tabs.contract.json +24 -45
- package/src/components/Tabs/Tabs.module.scss +28 -23
- package/src/components/Tabs/index.tsx +17 -5
- package/src/components/Text/Text.contract.json +30 -72
- package/src/components/Text/Text.module.scss +43 -7
- package/src/components/Text/index.tsx +136 -63
- package/src/components/Textarea/Textarea.contract.json +25 -43
- package/src/components/Textarea/Textarea.module.scss +58 -40
- package/src/components/Textarea/index.tsx +5 -12
- package/src/components/Theme/Theme.contract.json +32 -51
- package/src/components/Theme/context.ts +42 -0
- package/src/components/Theme/index.tsx +16 -310
- package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
- package/src/components/ThemeToggle/index.tsx +180 -0
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
- package/src/components/ThinkingIndicator/index.tsx +44 -54
- package/src/components/Toast/Toast.contract.json +35 -61
- package/src/components/Toast/Toast.module.scss +62 -139
- package/src/components/Toggle/index.ts +7 -0
- package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
- package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
- package/src/components/ToggleGroup/index.tsx +5 -3
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/Tooltip.module.scss +23 -39
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +4 -3
- package/src/measurements/MeasurementTargets.module.scss +229 -0
- package/src/measurements/generated.ts +324 -0
- package/src/measurements/index.ts +8 -0
- package/src/measurements/measurements.json +368 -0
- package/src/recipes/_action.scss +138 -0
- package/src/recipes/_boolean-range.scss +116 -0
- package/src/recipes/_feedback.scss +171 -0
- package/src/recipes/_field.scss +102 -0
- package/src/recipes/_layout.scss +74 -0
- package/src/recipes/_navigation.scss +110 -0
- package/src/recipes/_overlay.scss +191 -0
- package/src/recipes/_popup.scss +102 -0
- package/src/recipes/_prose.scss +182 -0
- package/src/recipes/_representation.scss +193 -0
- package/src/recipes/_segmented.scss +26 -0
- package/src/recipes/_surface.scss +13 -0
- package/src/recipes/_table-chrome.scss +119 -0
- package/src/recipes/_target.scss +31 -0
- package/src/recipes/_typography.scss +38 -0
- package/src/recipes/popup.ts +12 -0
- package/src/recipes/table-chrome.ts +30 -0
- package/src/scss.d.ts +1 -1
- package/src/styles/globals.scss +21 -20
- package/src/tokens/_component-properties.scss +2 -2
- package/src/tokens/_computed.scss +14 -25
- package/src/tokens/_density.scss +41 -132
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +96 -0
- package/src/tokens/_measurements.generated.scss +617 -0
- package/src/tokens/_mixins.scss +7 -284
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_property-registrations.scss +96 -92
- package/src/tokens/_radius.scss +16 -70
- package/src/tokens/_seeds.scss +24 -23
- package/src/tokens/_variables.scss +338 -178
- package/src/utils/a11y.tsx +69 -69
- package/src/utils/aria.ts +3 -3
- package/src/utils/canonical-stamp.ts +2 -12
- package/src/utils/css-warning.ts +7 -7
- package/src/utils/env.ts +25 -0
- package/src/utils/keyboard-shortcuts.ts +131 -126
- package/src/utils/layout-spacing.ts +31 -0
- package/src/utils/seed-derivation.ts +144 -178
- package/src/utils/theme-presets.ts +58 -30
- package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
- package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
- package/dist/components/Toggle/Toggle.module.scss.js +0 -44
- package/src/components/Button/Button.contract.json +0 -218
- package/src/components/Card/Card.contract.json +0 -175
- package/src/components/DataTable/DataTable.contract.json +0 -302
- package/src/components/Dialog/Dialog.contract.json +0 -159
- package/src/components/Select/Select.contract.json +0 -259
- package/src/components/Switch/index.ts +0 -3
- package/src/components/Theme/ThemeToggle.module.scss +0 -91
- package/src/components/Toggle/Toggle.module.scss +0 -244
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "NavigationMenu",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Site navigation whose dropdowns become a drawer on small screens.",
|
|
5
5
|
"category": "navigation",
|
|
6
|
-
"tags": [
|
|
7
|
-
"navigation",
|
|
8
|
-
"menu",
|
|
9
|
-
"header",
|
|
10
|
-
"dropdown",
|
|
11
|
-
"navbar",
|
|
12
|
-
"mobile",
|
|
13
|
-
"responsive",
|
|
14
|
-
"drawer"
|
|
15
|
-
],
|
|
6
|
+
"tags": ["navigation", "menu", "header", "dropdown", "navbar", "mobile", "responsive", "drawer"],
|
|
16
7
|
"status": "stable",
|
|
17
8
|
"sourcePath": "src/components/NavigationMenu/index.tsx",
|
|
18
9
|
"exportName": "NavigationMenu",
|
|
@@ -24,7 +15,8 @@
|
|
|
24
15
|
"orientation: horizontal|vertical (default: horizontal)",
|
|
25
16
|
"delayDuration: number (default: 200)",
|
|
26
17
|
"skipDelayDuration: number (default: 300)",
|
|
27
|
-
"icons: object"
|
|
18
|
+
"icons: object",
|
|
19
|
+
"mobileBreakpoint: md|lg (default: md)"
|
|
28
20
|
],
|
|
29
21
|
"props": {
|
|
30
22
|
"children": {
|
|
@@ -53,10 +45,7 @@
|
|
|
53
45
|
"description": "'horizontal' | 'vertical'",
|
|
54
46
|
"default": "horizontal",
|
|
55
47
|
"required": false,
|
|
56
|
-
"values": [
|
|
57
|
-
"horizontal",
|
|
58
|
-
"vertical"
|
|
59
|
-
]
|
|
48
|
+
"values": ["horizontal", "vertical"]
|
|
60
49
|
},
|
|
61
50
|
"delayDuration": {
|
|
62
51
|
"type": "number",
|
|
@@ -74,30 +63,37 @@
|
|
|
74
63
|
"type": "object",
|
|
75
64
|
"description": "Optional icon overrides for triggerChevron, mobileMenu, mobileClose, and drawerClose controls",
|
|
76
65
|
"required": false
|
|
66
|
+
},
|
|
67
|
+
"mobileBreakpoint": {
|
|
68
|
+
"type": "enum",
|
|
69
|
+
"description": "Viewport breakpoint below which the mobile drawer replaces desktop navigation",
|
|
70
|
+
"default": "md",
|
|
71
|
+
"required": false,
|
|
72
|
+
"values": ["md", "lg"]
|
|
77
73
|
}
|
|
78
74
|
},
|
|
79
75
|
"usage": {
|
|
80
76
|
"when": [
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
77
|
+
"Header navigation with more than links",
|
|
78
|
+
"Dropdowns carrying titles, descriptions, or icons",
|
|
79
|
+
"Navigation that must survive a phone screen",
|
|
80
|
+
"Several sections that animate between each other"
|
|
85
81
|
],
|
|
86
82
|
"whenNot": [
|
|
87
|
-
"
|
|
88
|
-
"Application
|
|
89
|
-
"
|
|
90
|
-
"
|
|
83
|
+
"Flat links with no dropdowns (use Header.Nav)",
|
|
84
|
+
"Application actions like cut and paste (use Menu)",
|
|
85
|
+
"Persistent side navigation (use Sidebar)",
|
|
86
|
+
"Showing where the user already is (use Breadcrumbs)"
|
|
91
87
|
],
|
|
92
88
|
"guidelines": [
|
|
93
|
-
"Place inside Header
|
|
94
|
-
"
|
|
95
|
-
"Use
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
89
|
+
"Place it inside Header for site-level navigation",
|
|
90
|
+
"Add Viewport to animate between panels",
|
|
91
|
+
"Use MobileContent for sections that only make sense in the drawer",
|
|
92
|
+
"Title plus description for rich panels, plain Link for the rest",
|
|
93
|
+
"asChild on Link composes your handler and honours preventDefault()",
|
|
94
|
+
"Desktop triggers open on hover after a configurable delay",
|
|
95
|
+
"Point icons at your own icon package to replace the chevrons",
|
|
96
|
+
"Set mobileBreakpoint=\"lg\" when the shell drops its sidebar below 1024px"
|
|
101
97
|
],
|
|
102
98
|
"accessibility": [
|
|
103
99
|
"Uses disclosure pattern (not menu role) per W3C guidance",
|
|
@@ -110,27 +106,27 @@
|
|
|
110
106
|
"examples": [
|
|
111
107
|
{
|
|
112
108
|
"name": "Default",
|
|
113
|
-
"description": "Two
|
|
109
|
+
"description": "Two dropdowns beside one plain link.",
|
|
114
110
|
"code": "<NavigationMenu>\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"products\">\n <NavigationMenu.Trigger>Products</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <NavigationMenu.Link href=\"/analytics\" title=\"Analytics\" description=\"Track your metrics and KPIs.\" />\n <NavigationMenu.Link href=\"/automation\" title=\"Automation\" description=\"Automate your workflows.\" />\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item value=\"resources\">\n <NavigationMenu.Trigger>Resources</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <NavigationMenu.Link href=\"/docs\" title=\"Documentation\" description=\"Comprehensive API reference.\" />\n <NavigationMenu.Link href=\"/blog\" title=\"Blog\" description=\"Latest news and updates.\" />\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Link href=\"/pricing\">Pricing</NavigationMenu.Link>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu>"
|
|
115
111
|
},
|
|
116
112
|
{
|
|
117
113
|
"name": "With Rich Content",
|
|
118
|
-
"description": "
|
|
114
|
+
"description": "A grid of icons, titles, and descriptions.",
|
|
119
115
|
"code": "<NavigationMenu>\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"platform\">\n <NavigationMenu.Trigger>Platform</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '4px', padding: '8px', minWidth: '400px' }}>\n <NavigationMenu.Link\n href=\"/dashboard\"\n title=\"Dashboard\"\n description=\"Overview of your project metrics.\"\n />\n <NavigationMenu.Link\n href=\"/analytics\"\n title=\"Analytics\"\n description=\"Deep dive into your data.\"\n />\n <NavigationMenu.Link\n href=\"/reports\"\n title=\"Reports\"\n description=\"Generate custom reports.\"\n />\n <NavigationMenu.Link\n href=\"/settings\"\n title=\"Settings\"\n description=\"Configure your workspace.\"\n />\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu>"
|
|
120
116
|
},
|
|
121
117
|
{
|
|
122
118
|
"name": "With Simple Links",
|
|
123
|
-
"description": "
|
|
119
|
+
"description": "Link lists where descriptions would be noise.",
|
|
124
120
|
"code": "<NavigationMenu>\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"company\">\n <NavigationMenu.Trigger>Company</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ display: 'flex', flexDirection: 'column', padding: '4px', minWidth: '160px' }}>\n <NavigationMenu.Link href=\"/about\">About</NavigationMenu.Link>\n <NavigationMenu.Link href=\"/careers\">Careers</NavigationMenu.Link>\n <NavigationMenu.Link href=\"/contact\">Contact</NavigationMenu.Link>\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Link href=\"/blog\">Blog</NavigationMenu.Link>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Link href=\"/docs\">Docs</NavigationMenu.Link>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu>"
|
|
125
121
|
},
|
|
126
122
|
{
|
|
127
123
|
"name": "With Featured Card",
|
|
128
|
-
"description": "
|
|
124
|
+
"description": "One promoted item leads the panel.",
|
|
129
125
|
"code": "<NavigationMenu>\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"learn\">\n <NavigationMenu.Trigger>Learn</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '8px', padding: '8px', minWidth: '420px' }}>\n <NavigationMenu.Link\n href=\"/quickstart\"\n title=\"Quick Start\"\n description=\"Get up and running in 5 minutes with our getting started guide.\"\n featured\n />\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <NavigationMenu.Link href=\"/docs\" title=\"Documentation\" description=\"API reference and guides.\" />\n <NavigationMenu.Link href=\"/examples\" title=\"Examples\" description=\"Browse example projects.\" />\n </div>\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu>"
|
|
130
126
|
},
|
|
131
127
|
{
|
|
132
128
|
"name": "Vertical",
|
|
133
|
-
"description": "
|
|
129
|
+
"description": "Panels open to the side instead of below.",
|
|
134
130
|
"code": "<div style={{ display: 'flex' }}>\n <NavigationMenu orientation=\"vertical\">\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"overview\">\n <NavigationMenu.Trigger>Overview</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ padding: '8px', minWidth: '200px' }}>\n <NavigationMenu.Link href=\"/intro\" title=\"Introduction\" description=\"Learn the basics.\" />\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item value=\"guides\">\n <NavigationMenu.Trigger>Guides</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ padding: '8px', minWidth: '200px' }}>\n <NavigationMenu.Link href=\"/install\" title=\"Installation\" description=\"Get started quickly.\" />\n <NavigationMenu.Link href=\"/config\" title=\"Configuration\" description=\"Customize your setup.\" />\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n </NavigationMenu>\n</div>"
|
|
135
131
|
}
|
|
136
132
|
],
|
|
@@ -163,15 +159,12 @@
|
|
|
163
159
|
"orientation: horizontal | vertical — layout direction",
|
|
164
160
|
"delayDuration: number — hover open delay (default: 200ms)",
|
|
165
161
|
"icons: { triggerChevron?, mobileMenu?, mobileClose?, drawerClose? } — custom internal control icons",
|
|
162
|
+
"mobileBreakpoint: md | lg — mobile drawer breakpoint (default: md)",
|
|
166
163
|
"NavigationMenu.Link: title + description + icon for structured links, or children for simple links",
|
|
167
164
|
"NavigationMenu.Link asChild: composes child and menu click handlers (preventDefault keeps menu open)",
|
|
168
165
|
"NavigationMenu.MobileContent: slot for extra mobile-only sections"
|
|
169
166
|
],
|
|
170
|
-
"a11yRules": [
|
|
171
|
-
"A11Y_DISCLOSURE_PATTERN",
|
|
172
|
-
"A11Y_KEYBOARD_NAV",
|
|
173
|
-
"A11Y_FOCUS_TRAP"
|
|
174
|
-
]
|
|
167
|
+
"a11yRules": ["A11Y_DISCLOSURE_PATTERN", "A11Y_KEYBOARD_NAV", "A11Y_FOCUS_TRAP"]
|
|
175
168
|
},
|
|
176
169
|
"ai": {
|
|
177
170
|
"compositionPattern": "compound",
|
|
@@ -187,9 +180,7 @@
|
|
|
187
180
|
"MobileContent",
|
|
188
181
|
"MobileSection"
|
|
189
182
|
],
|
|
190
|
-
"requiredChildren": [
|
|
191
|
-
"List"
|
|
192
|
-
],
|
|
183
|
+
"requiredChildren": ["List"],
|
|
193
184
|
"commonPatterns": [
|
|
194
185
|
"<NavigationMenu><NavigationMenu.List><NavigationMenu.Item value=\"docs\"><NavigationMenu.Trigger>Docs</NavigationMenu.Trigger><NavigationMenu.Content><NavigationMenu.Link href=\"/guides\" title=\"Guides\" description=\"Learn the basics\" /></NavigationMenu.Content></NavigationMenu.Item></NavigationMenu.List><NavigationMenu.Viewport /></NavigationMenu>"
|
|
195
186
|
]
|
|
@@ -1,17 +1,40 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/mixins" as *;
|
|
3
|
+
@use "../../recipes/action" as action;
|
|
4
|
+
@use "../../recipes/layout" as layout;
|
|
5
|
+
@use "../../recipes/navigation" as navigation;
|
|
6
|
+
@use "../../recipes/popup" as popup;
|
|
7
|
+
@use "../../recipes/typography" as typography;
|
|
3
8
|
|
|
4
9
|
// ============================================
|
|
5
10
|
// Root
|
|
6
11
|
// ============================================
|
|
7
12
|
|
|
8
13
|
.root {
|
|
9
|
-
|
|
10
|
-
@include container(fui-navmenu);
|
|
14
|
+
@include navigation.properties;
|
|
11
15
|
|
|
16
|
+
// Do not set container-type here. Size containment makes width:auto resolve as
|
|
17
|
+
// if the element were empty, so when the desktop list is display:none the nav
|
|
18
|
+
// collapses to 0px in a header flex row and the hamburger overflows onto the
|
|
19
|
+
// next slot (search). Mobile/desktop visibility uses viewport breakpoints.
|
|
12
20
|
position: relative;
|
|
13
21
|
display: flex;
|
|
14
22
|
align-items: center;
|
|
23
|
+
flex-shrink: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.root[data-mobile] {
|
|
27
|
+
// JS owns the breakpoint so hosts can retire a persistent rail at `lg`
|
|
28
|
+
// without forking the canonical drawer. These selectors keep the rendered
|
|
29
|
+
// desktop and mobile controls in lockstep with that resolved mode.
|
|
30
|
+
.list,
|
|
31
|
+
.viewport {
|
|
32
|
+
display: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.hamburger {
|
|
36
|
+
display: flex;
|
|
37
|
+
}
|
|
15
38
|
}
|
|
16
39
|
|
|
17
40
|
.rootVertical {
|
|
@@ -51,16 +74,14 @@
|
|
|
51
74
|
.trigger {
|
|
52
75
|
@include button-reset;
|
|
53
76
|
@include interactive-base;
|
|
54
|
-
@include
|
|
77
|
+
@include action.base;
|
|
78
|
+
@include action.size("md");
|
|
55
79
|
|
|
56
80
|
display: flex;
|
|
57
81
|
align-items: center;
|
|
58
|
-
gap: var(--fui-space-1, $fui-space-1);
|
|
59
|
-
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-2, $fui-space-2);
|
|
60
82
|
border-radius: var(--fui-radius-md, $fui-radius-md);
|
|
61
83
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
62
84
|
white-space: nowrap;
|
|
63
|
-
min-height: var(--fui-button-height-md, $fui-button-height-md);
|
|
64
85
|
cursor: pointer;
|
|
65
86
|
|
|
66
87
|
&:hover {
|
|
@@ -72,7 +93,7 @@
|
|
|
72
93
|
background-color: var(--fui-bg-active, $fui-bg-active);
|
|
73
94
|
}
|
|
74
95
|
|
|
75
|
-
&[data-state=
|
|
96
|
+
&[data-state="open"] {
|
|
76
97
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
77
98
|
}
|
|
78
99
|
}
|
|
@@ -81,7 +102,7 @@
|
|
|
81
102
|
transition: transform var(--fui-transition-fast, $fui-transition-fast);
|
|
82
103
|
flex-shrink: 0;
|
|
83
104
|
|
|
84
|
-
[data-state=
|
|
105
|
+
[data-state="open"] > & {
|
|
85
106
|
transform: rotate(180deg);
|
|
86
107
|
}
|
|
87
108
|
}
|
|
@@ -93,32 +114,32 @@
|
|
|
93
114
|
.content {
|
|
94
115
|
display: flex;
|
|
95
116
|
flex-direction: column;
|
|
96
|
-
gap: 1px;
|
|
117
|
+
gap: var(--fui-stroke-hairline, 1px);
|
|
97
118
|
position: absolute;
|
|
98
119
|
left: 0;
|
|
99
120
|
top: 0;
|
|
100
121
|
width: 100%;
|
|
101
|
-
min-width:
|
|
122
|
+
min-width: layout.measure("menu-min");
|
|
102
123
|
|
|
103
124
|
// Motion direction for directional slide
|
|
104
|
-
&[data-motion=
|
|
105
|
-
animation: slideFromStart var(--fui-transition-normal, $fui-transition-normal)
|
|
125
|
+
&[data-motion="from-start"] {
|
|
126
|
+
animation: slideFromStart var(--fui-transition-normal, $fui-transition-normal) forwards;
|
|
106
127
|
}
|
|
107
|
-
&[data-motion=
|
|
108
|
-
animation: slideFromEnd var(--fui-transition-normal, $fui-transition-normal)
|
|
128
|
+
&[data-motion="from-end"] {
|
|
129
|
+
animation: slideFromEnd var(--fui-transition-normal, $fui-transition-normal) forwards;
|
|
109
130
|
}
|
|
110
|
-
&[data-motion=
|
|
111
|
-
animation: slideToStart var(--fui-transition-normal, $fui-transition-normal)
|
|
131
|
+
&[data-motion="to-start"] {
|
|
132
|
+
animation: slideToStart var(--fui-transition-normal, $fui-transition-normal) forwards;
|
|
112
133
|
}
|
|
113
|
-
&[data-motion=
|
|
114
|
-
animation: slideToEnd var(--fui-transition-normal, $fui-transition-normal)
|
|
134
|
+
&[data-motion="to-end"] {
|
|
135
|
+
animation: slideToEnd var(--fui-transition-normal, $fui-transition-normal) forwards;
|
|
115
136
|
}
|
|
116
137
|
}
|
|
117
138
|
|
|
118
139
|
@keyframes slideFromStart {
|
|
119
140
|
from {
|
|
120
141
|
opacity: 0;
|
|
121
|
-
transform: translateX(calc(-1 * #{$fui-anim-offset-md}));
|
|
142
|
+
transform: translateX(calc(-1 * var(--fui-anim-offset-md, #{$fui-anim-offset-md})));
|
|
122
143
|
}
|
|
123
144
|
to {
|
|
124
145
|
opacity: 1;
|
|
@@ -129,7 +150,7 @@
|
|
|
129
150
|
@keyframes slideFromEnd {
|
|
130
151
|
from {
|
|
131
152
|
opacity: 0;
|
|
132
|
-
transform: translateX($fui-anim-offset-md);
|
|
153
|
+
transform: translateX(var(--fui-anim-offset-md, #{$fui-anim-offset-md}));
|
|
133
154
|
}
|
|
134
155
|
to {
|
|
135
156
|
opacity: 1;
|
|
@@ -144,7 +165,7 @@
|
|
|
144
165
|
}
|
|
145
166
|
to {
|
|
146
167
|
opacity: 0;
|
|
147
|
-
transform: translateX(calc(-1 * #{$fui-anim-offset-md}));
|
|
168
|
+
transform: translateX(calc(-1 * var(--fui-anim-offset-md, #{$fui-anim-offset-md})));
|
|
148
169
|
}
|
|
149
170
|
}
|
|
150
171
|
|
|
@@ -155,7 +176,7 @@
|
|
|
155
176
|
}
|
|
156
177
|
to {
|
|
157
178
|
opacity: 0;
|
|
158
|
-
transform: translateX($fui-anim-offset-md);
|
|
179
|
+
transform: translateX(var(--fui-anim-offset-md, #{$fui-anim-offset-md}));
|
|
159
180
|
}
|
|
160
181
|
}
|
|
161
182
|
|
|
@@ -164,13 +185,13 @@
|
|
|
164
185
|
// ============================================
|
|
165
186
|
|
|
166
187
|
.link {
|
|
167
|
-
@include popup
|
|
188
|
+
@include popup.row;
|
|
168
189
|
|
|
169
190
|
text-decoration: none;
|
|
170
191
|
white-space: nowrap;
|
|
171
192
|
|
|
172
193
|
&:hover {
|
|
173
|
-
@include popup-
|
|
194
|
+
@include popup.highlight-state;
|
|
174
195
|
}
|
|
175
196
|
|
|
176
197
|
// Links are real tab stops, so keep the focus ring on top of the highlight.
|
|
@@ -197,7 +218,7 @@
|
|
|
197
218
|
min-height: auto;
|
|
198
219
|
|
|
199
220
|
&:hover {
|
|
200
|
-
@include popup-
|
|
221
|
+
@include popup.highlight-state;
|
|
201
222
|
}
|
|
202
223
|
}
|
|
203
224
|
|
|
@@ -220,24 +241,23 @@
|
|
|
220
241
|
}
|
|
221
242
|
|
|
222
243
|
.linkTitle {
|
|
223
|
-
|
|
244
|
+
@include typography.role("ui-standard");
|
|
245
|
+
|
|
224
246
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
225
|
-
font-size: var(--fui-font-size-sm, $fui-font-size-sm);
|
|
226
|
-
line-height: var(--fui-line-height-tight, $fui-line-height-tight);
|
|
227
247
|
}
|
|
228
248
|
|
|
229
249
|
.linkDescription {
|
|
230
|
-
|
|
250
|
+
@include typography.role("caption");
|
|
251
|
+
|
|
231
252
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
232
|
-
line-height: var(--fui-line-height-normal, $fui-line-height-normal);
|
|
233
253
|
}
|
|
234
254
|
|
|
235
255
|
.linkFeatured {
|
|
236
256
|
background-color: var(--fui-bg-secondary, $fui-bg-secondary);
|
|
237
|
-
border: 1px solid var(--fui-border, $fui-border);
|
|
257
|
+
border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
|
|
238
258
|
|
|
239
259
|
&:hover {
|
|
240
|
-
@include popup-
|
|
260
|
+
@include popup.highlight-state;
|
|
241
261
|
border-color: var(--fui-border-strong, $fui-border-strong);
|
|
242
262
|
}
|
|
243
263
|
}
|
|
@@ -249,7 +269,7 @@
|
|
|
249
269
|
.indicator {
|
|
250
270
|
position: absolute;
|
|
251
271
|
bottom: 0;
|
|
252
|
-
height: 2px;
|
|
272
|
+
height: var(--fui-stroke-default, 2px);
|
|
253
273
|
background-color: var(--fui-color-accent, $fui-color-accent);
|
|
254
274
|
border-radius: var(--fui-radius-full, $fui-radius-full);
|
|
255
275
|
transition:
|
|
@@ -263,24 +283,22 @@
|
|
|
263
283
|
// ============================================
|
|
264
284
|
|
|
265
285
|
.viewport {
|
|
266
|
-
@include
|
|
286
|
+
@include popup.container;
|
|
267
287
|
|
|
268
288
|
position: absolute;
|
|
269
289
|
top: calc(100% + var(--fui-space-1, #{$fui-space-1}));
|
|
270
290
|
left: var(--fui-navmenu-viewport-left, 0);
|
|
271
291
|
overflow: hidden;
|
|
272
|
-
padding: var(--fui-space-1, $fui-space-1);
|
|
273
292
|
border-color: var(--fui-border-strong, $fui-border-strong);
|
|
274
293
|
box-shadow: var(--fui-shadow-md, $fui-shadow-md);
|
|
275
294
|
z-index: calc(var(--fui-header-z-index, $fui-header-z-index) + 1);
|
|
276
295
|
|
|
277
296
|
width: var(--fui-navmenu-viewport-width);
|
|
278
297
|
height: var(--fui-navmenu-viewport-height);
|
|
279
|
-
transition:
|
|
280
|
-
opacity var(--fui-transition-fast, $fui-transition-fast);
|
|
298
|
+
transition: opacity var(--fui-transition-fast, $fui-transition-fast);
|
|
281
299
|
|
|
282
300
|
// Hidden when no item is open
|
|
283
|
-
&[data-state=
|
|
301
|
+
&[data-state="closed"] {
|
|
284
302
|
opacity: 0;
|
|
285
303
|
pointer-events: none;
|
|
286
304
|
// Collapse to avoid layout space
|
|
@@ -289,7 +307,7 @@
|
|
|
289
307
|
overflow: hidden;
|
|
290
308
|
}
|
|
291
309
|
|
|
292
|
-
&[data-state=
|
|
310
|
+
&[data-state="open"] {
|
|
293
311
|
opacity: 1;
|
|
294
312
|
}
|
|
295
313
|
|
|
@@ -306,23 +324,24 @@
|
|
|
306
324
|
.hamburger {
|
|
307
325
|
@include button-reset;
|
|
308
326
|
@include interactive-base;
|
|
327
|
+
@include action.base;
|
|
328
|
+
@include action.icon-only("lg");
|
|
309
329
|
|
|
310
330
|
display: none;
|
|
311
331
|
align-items: center;
|
|
312
332
|
justify-content: center;
|
|
313
|
-
width: var(--fui-touch-lg, $fui-touch-lg);
|
|
314
|
-
height: var(--fui-touch-lg, $fui-touch-lg);
|
|
315
333
|
border-radius: var(--fui-radius-md, $fui-radius-md);
|
|
316
334
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
317
335
|
flex-shrink: 0;
|
|
336
|
+
width: var(--fui-navigation-mobile-target, var(--_fui-action-track));
|
|
337
|
+
height: var(--fui-navigation-mobile-target, var(--_fui-action-track));
|
|
318
338
|
|
|
319
339
|
&:hover {
|
|
320
340
|
background-color: var(--fui-bg-hover, $fui-bg-hover);
|
|
321
341
|
}
|
|
322
342
|
|
|
323
343
|
svg {
|
|
324
|
-
|
|
325
|
-
height: var(--fui-icon-xl, $fui-icon-xl);
|
|
344
|
+
@include action.glyph("lg");
|
|
326
345
|
}
|
|
327
346
|
|
|
328
347
|
// Keep viewport visibility in sync with JS mobile mode.
|
|
@@ -340,7 +359,7 @@
|
|
|
340
359
|
inset: 0;
|
|
341
360
|
background: var(--fui-backdrop, $fui-backdrop);
|
|
342
361
|
z-index: calc(var(--fui-header-z-index, $fui-header-z-index) + 10);
|
|
343
|
-
animation: fadeIn var(--fui-transition-normal, $fui-transition-normal)
|
|
362
|
+
animation: fadeIn var(--fui-transition-normal, $fui-transition-normal);
|
|
344
363
|
}
|
|
345
364
|
|
|
346
365
|
.drawer {
|
|
@@ -354,8 +373,9 @@
|
|
|
354
373
|
z-index: calc(var(--fui-header-z-index, $fui-header-z-index) + 11);
|
|
355
374
|
display: flex;
|
|
356
375
|
flex-direction: column;
|
|
357
|
-
|
|
358
|
-
|
|
376
|
+
// Keep the header pinned; ScrollArea in .drawerBody owns vertical scroll.
|
|
377
|
+
overflow: hidden;
|
|
378
|
+
animation: slideInLeft var(--fui-transition-normal, $fui-transition-normal);
|
|
359
379
|
|
|
360
380
|
@media (min-width: 480px) {
|
|
361
381
|
width: min(380px, 85vw);
|
|
@@ -365,7 +385,7 @@
|
|
|
365
385
|
.drawerRight {
|
|
366
386
|
left: auto;
|
|
367
387
|
right: 0;
|
|
368
|
-
animation: slideInRight var(--fui-transition-normal, $fui-transition-normal)
|
|
388
|
+
animation: slideInRight var(--fui-transition-normal, $fui-transition-normal);
|
|
369
389
|
}
|
|
370
390
|
|
|
371
391
|
.drawerHeader {
|
|
@@ -373,21 +393,23 @@
|
|
|
373
393
|
align-items: center;
|
|
374
394
|
justify-content: space-between;
|
|
375
395
|
padding: 0 var(--fui-space-4, $fui-space-4);
|
|
376
|
-
border-bottom: 1px solid var(--fui-border, $fui-border);
|
|
396
|
+
border-bottom: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
|
|
377
397
|
min-height: var(--fui-appshell-header-height, $fui-appshell-header-height);
|
|
378
398
|
}
|
|
379
399
|
|
|
380
400
|
.drawerClose {
|
|
381
401
|
@include button-reset;
|
|
382
402
|
@include interactive-base;
|
|
403
|
+
@include action.base;
|
|
404
|
+
@include action.icon-only("md");
|
|
383
405
|
|
|
384
406
|
display: flex;
|
|
385
407
|
align-items: center;
|
|
386
408
|
justify-content: center;
|
|
387
|
-
width: var(--fui-touch-md, $fui-touch-md);
|
|
388
|
-
height: var(--fui-touch-md, $fui-touch-md);
|
|
389
409
|
border-radius: var(--fui-radius-md, $fui-radius-md);
|
|
390
410
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
411
|
+
width: var(--fui-navigation-mobile-target, var(--_fui-action-track));
|
|
412
|
+
height: var(--fui-navigation-mobile-target, var(--_fui-action-track));
|
|
391
413
|
|
|
392
414
|
&:hover {
|
|
393
415
|
background-color: var(--fui-bg-hover, $fui-bg-hover);
|
|
@@ -396,9 +418,14 @@
|
|
|
396
418
|
}
|
|
397
419
|
|
|
398
420
|
.drawerBody {
|
|
421
|
+
@include navigation.properties;
|
|
422
|
+
|
|
399
423
|
flex: 1;
|
|
400
|
-
|
|
401
|
-
|
|
424
|
+
// Flex item default min-height:auto prevents shrinking below content, which
|
|
425
|
+
// blocks ScrollArea from receiving a bounded height and scrolling.
|
|
426
|
+
min-height: 0;
|
|
427
|
+
// Match Sidebar.nav: outer gutter + row inset so links aren't flush to the edge.
|
|
428
|
+
padding: var(--fui-space-2, $fui-space-2) var(--fui-navigation-gutter);
|
|
402
429
|
}
|
|
403
430
|
|
|
404
431
|
.drawerNav {
|
|
@@ -408,41 +435,54 @@
|
|
|
408
435
|
|
|
409
436
|
.drawerLink {
|
|
410
437
|
@include button-reset;
|
|
411
|
-
@include
|
|
438
|
+
@include navigation.row;
|
|
412
439
|
|
|
413
440
|
display: flex;
|
|
414
441
|
align-items: center;
|
|
442
|
+
min-block-size: var(--fui-navigation-mobile-row-track, var(--fui-navigation-row-track));
|
|
415
443
|
width: 100%;
|
|
416
|
-
padding: var(--fui-space-2, $fui-space-2) var(--fui-space-4, $fui-space-4);
|
|
417
444
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
418
445
|
text-decoration: none;
|
|
419
|
-
min-height: var(--fui-sidebar-item-height, $fui-sidebar-item-height);
|
|
420
446
|
transition: background-color var(--fui-transition-fast, $fui-transition-fast);
|
|
421
447
|
|
|
422
448
|
&:hover {
|
|
423
|
-
@include popup-
|
|
449
|
+
@include popup.highlight-state;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.drawerLinkActive {
|
|
454
|
+
color: var(--fui-text-primary, $fui-text-primary);
|
|
455
|
+
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
456
|
+
background-color: var(--fui-control-selected-bg, $fui-bg-active);
|
|
457
|
+
|
|
458
|
+
&:hover {
|
|
459
|
+
background-color: var(--fui-control-selected-bg, $fui-bg-active);
|
|
460
|
+
color: var(--fui-text-primary, $fui-text-primary);
|
|
424
461
|
}
|
|
425
462
|
}
|
|
426
463
|
|
|
427
464
|
.drawerSectionLabel {
|
|
428
|
-
@include section-
|
|
465
|
+
@include navigation.section-row;
|
|
429
466
|
|
|
430
|
-
|
|
431
|
-
|
|
467
|
+
// Keep inline inset from navigation.section-row so labels align with .drawerLink.
|
|
468
|
+
// The previous shorthand padding used space-4 and made labels look more indented
|
|
469
|
+
// than their items (MobileContent links previously used popup-row geometry).
|
|
470
|
+
padding-block: var(--fui-space-3, $fui-space-3) var(--fui-space-1, $fui-space-1);
|
|
471
|
+
margin-block-start: var(--fui-space-2, $fui-space-2);
|
|
472
|
+
color: var(--fui-text-tertiary, $fui-text-tertiary);
|
|
432
473
|
}
|
|
433
474
|
|
|
434
475
|
.drawerCollapsibleTrigger {
|
|
435
476
|
@include button-reset;
|
|
436
|
-
@include
|
|
477
|
+
@include navigation.row;
|
|
437
478
|
|
|
438
479
|
display: flex;
|
|
439
480
|
align-items: center;
|
|
481
|
+
min-block-size: var(--fui-navigation-mobile-row-track, var(--fui-navigation-row-track));
|
|
440
482
|
justify-content: space-between;
|
|
441
483
|
width: 100%;
|
|
442
|
-
padding: var(--fui-space-2, $fui-space-2) var(--fui-space-4, $fui-space-4);
|
|
443
484
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
444
485
|
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
445
|
-
min-height: var(--fui-sidebar-item-height, $fui-sidebar-item-height);
|
|
446
486
|
transition: background-color var(--fui-transition-fast, $fui-transition-fast);
|
|
447
487
|
|
|
448
488
|
&:hover {
|
|
@@ -455,7 +495,7 @@
|
|
|
455
495
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
456
496
|
flex-shrink: 0;
|
|
457
497
|
|
|
458
|
-
&[data-open=
|
|
498
|
+
&[data-open="true"] {
|
|
459
499
|
transform: rotate(90deg);
|
|
460
500
|
}
|
|
461
501
|
}
|
|
@@ -469,18 +509,30 @@
|
|
|
469
509
|
// ============================================
|
|
470
510
|
|
|
471
511
|
@keyframes fadeIn {
|
|
472
|
-
from {
|
|
473
|
-
|
|
512
|
+
from {
|
|
513
|
+
opacity: 0;
|
|
514
|
+
}
|
|
515
|
+
to {
|
|
516
|
+
opacity: 1;
|
|
517
|
+
}
|
|
474
518
|
}
|
|
475
519
|
|
|
476
520
|
@keyframes slideInLeft {
|
|
477
|
-
from {
|
|
478
|
-
|
|
521
|
+
from {
|
|
522
|
+
transform: translateX(-100%);
|
|
523
|
+
}
|
|
524
|
+
to {
|
|
525
|
+
transform: translateX(0);
|
|
526
|
+
}
|
|
479
527
|
}
|
|
480
528
|
|
|
481
529
|
@keyframes slideInRight {
|
|
482
|
-
from {
|
|
483
|
-
|
|
530
|
+
from {
|
|
531
|
+
transform: translateX(100%);
|
|
532
|
+
}
|
|
533
|
+
to {
|
|
534
|
+
transform: translateX(0);
|
|
535
|
+
}
|
|
484
536
|
}
|
|
485
537
|
|
|
486
538
|
// ============================================
|