@usefragments/ui 1.6.0 → 2.0.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 +54 -66
- 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/nav-glyph.cjs +139 -0
- package/dist/assets/nav-glyph.d.ts +28 -0
- package/dist/assets/nav-glyph.d.ts.map +1 -0
- package/dist/assets/nav-glyph.js +139 -0
- package/dist/assets/nav-glyph.module.scss.cjs +71 -0
- package/dist/assets/nav-glyph.module.scss.js +71 -0
- package/dist/assets/ui.css +6885 -6308
- package/dist/blocks/components/StatsCard.d.ts +1 -1
- package/dist/blocks/components/StatsCard.d.ts.map +1 -1
- package/dist/chart.cjs +24 -6
- package/dist/chart.js +24 -6
- package/dist/codeblock.cjs +76 -43
- package/dist/codeblock.js +71 -38
- package/dist/colorpicker.cjs +4 -1
- package/dist/colorpicker.js +4 -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 +23 -20
- package/dist/components/Alert/Alert.module.scss.js +23 -20
- package/dist/components/Alert/index.cjs +20 -8
- package/dist/components/Alert/index.d.ts +17 -11
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +20 -8
- 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 +2 -2
- package/dist/components/AppShell/index.js +2 -2
- 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 +33 -31
- package/dist/components/Badge/Badge.module.scss.js +33 -31
- package/dist/components/Badge/index.cjs +13 -3
- package/dist/components/Badge/index.d.ts +18 -13
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +13 -3
- 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 +11 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
- package/dist/components/Breadcrumbs/index.cjs +1 -1
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +1 -1
- package/dist/components/Button/Button.module.scss.cjs +36 -27
- package/dist/components/Button/Button.module.scss.js +36 -27
- package/dist/components/Button/index.cjs +20 -4
- package/dist/components/Button/index.d.ts +18 -10
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +20 -4
- 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 +31 -26
- package/dist/components/Card/Card.module.scss.js +32 -27
- package/dist/components/Card/index.cjs +16 -3
- package/dist/components/Card/index.d.ts +23 -15
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +16 -3
- 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 +11 -11
- package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
- package/dist/components/Checkbox/index.cjs +4 -4
- package/dist/components/Checkbox/index.d.ts +4 -6
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +4 -4
- package/dist/components/Chip/Chip.module.scss.cjs +19 -19
- package/dist/components/Chip/Chip.module.scss.js +19 -19
- package/dist/components/Chip/index.cjs +3 -3
- package/dist/components/Chip/index.d.ts +8 -3
- package/dist/components/Chip/index.d.ts.map +1 -1
- package/dist/components/Chip/index.js +3 -3
- 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 +20 -5
- 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 +26 -6
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +26 -6
- package/dist/components/Command/Command.module.scss.cjs +14 -11
- package/dist/components/Command/Command.module.scss.js +14 -11
- package/dist/components/Command/index.cjs +28 -16
- package/dist/components/Command/index.d.ts +8 -3
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +28 -16
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
- package/dist/components/ConversationList/index.cjs +2 -2
- package/dist/components/ConversationList/index.js +2 -2
- 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 +31 -28
- package/dist/components/DataTable/DataTable.module.scss.js +31 -28
- package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
- 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 +13 -16
- package/dist/components/Dialog/index.d.ts +11 -10
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +13 -16
- package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
- package/dist/components/Drawer/Drawer.module.scss.js +40 -40
- package/dist/components/Drawer/index.cjs +2 -2
- package/dist/components/Drawer/index.d.ts +5 -4
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +2 -2
- 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 +13 -6
- package/dist/components/EmptyState/index.d.ts +13 -5
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +13 -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/Grid.module.scss.cjs +54 -54
- package/dist/components/Grid/Grid.module.scss.js +54 -54
- 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 +30 -33
- package/dist/components/Icon/Icon.module.scss.js +30 -33
- package/dist/components/Icon/index.cjs +15 -14
- package/dist/components/Icon/index.d.ts +23 -12
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +15 -14
- package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
- package/dist/components/IconButton/IconButton.module.scss.js +12 -12
- package/dist/components/IconButton/index.cjs +2 -1
- package/dist/components/IconButton/index.d.ts +4 -4
- 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 +15 -21
- package/dist/components/Input/Input.module.scss.js +15 -21
- package/dist/components/Input/index.cjs +2 -14
- package/dist/components/Input/index.d.ts +0 -2
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +2 -14
- package/dist/components/Link/Link.module.scss.cjs +26 -14
- package/dist/components/Link/Link.module.scss.js +26 -14
- package/dist/components/Link/index.cjs +13 -2
- package/dist/components/Link/index.d.ts +11 -4
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/Link/index.js +13 -2
- package/dist/components/List/List.module.scss.cjs +23 -19
- package/dist/components/List/List.module.scss.js +23 -19
- package/dist/components/List/index.cjs +7 -7
- package/dist/components/List/index.d.ts +10 -7
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +7 -7
- 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 +5 -5
- package/dist/components/Loading/index.d.ts +8 -7
- package/dist/components/Loading/index.d.ts.map +1 -1
- package/dist/components/Loading/index.js +5 -5
- 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 +20 -20
- package/dist/components/Message/Message.module.scss.js +20 -20
- package/dist/components/Message/index.cjs +1 -1
- package/dist/components/Message/index.d.ts +1 -1
- package/dist/components/Message/index.js +1 -1
- 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 +28 -25
- package/dist/components/Progress/Progress.module.scss.js +28 -25
- package/dist/components/Progress/index.cjs +21 -12
- package/dist/components/Progress/index.d.ts +10 -6
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +21 -12
- package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
- package/dist/components/Prompt/Prompt.module.scss.js +30 -30
- package/dist/components/Prompt/index.cjs +7 -7
- package/dist/components/Prompt/index.d.ts +11 -9
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +7 -7
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
- package/dist/components/RadioGroup/index.cjs +10 -5
- package/dist/components/RadioGroup/index.d.ts +11 -7
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +10 -5
- 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/Select/index.cjs +26 -20
- package/dist/components/Select/index.d.ts +5 -5
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +26 -20
- package/dist/components/Separator/Separator.module.scss.cjs +25 -19
- package/dist/components/Separator/Separator.module.scss.js +25 -19
- package/dist/components/Separator/index.cjs +10 -8
- package/dist/components/Separator/index.d.ts +4 -2
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +10 -8
- 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 +15 -38
- 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 +15 -38
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
- package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
- package/dist/components/Skeleton/index.cjs +7 -7
- package/dist/components/Skeleton/index.d.ts +8 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +7 -7
- 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 +14 -10
- 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 +14 -10
- package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
- package/dist/components/Tabs/Tabs.module.scss.js +18 -18
- package/dist/components/Tabs/index.cjs +30 -11
- package/dist/components/Tabs/index.d.ts +8 -6
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +30 -11
- package/dist/components/Text/Text.module.scss.cjs +109 -97
- package/dist/components/Text/Text.module.scss.js +109 -97
- package/dist/components/Text/index.cjs +45 -41
- package/dist/components/Text/index.d.ts +24 -19
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +45 -41
- package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
- package/dist/components/Textarea/Textarea.module.scss.js +22 -28
- package/dist/components/Textarea/index.cjs +3 -10
- package/dist/components/Textarea/index.d.ts +0 -2
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +3 -10
- package/dist/components/Theme/index.cjs +22 -5
- package/dist/components/Theme/index.d.ts +6 -12
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +22 -5
- package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
- package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
- package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
- package/dist/components/ThemeToggle/ThemeButton.js +34 -0
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
- package/dist/components/ThemeToggle/icons.cjs +48 -0
- package/dist/components/ThemeToggle/icons.d.ts +10 -0
- package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
- package/dist/components/ThemeToggle/icons.js +48 -0
- package/dist/components/ThemeToggle/index.cjs +6 -50
- package/dist/components/ThemeToggle/index.d.ts +5 -3
- package/dist/components/ThemeToggle/index.d.ts.map +1 -1
- package/dist/components/ThemeToggle/index.js +3 -47
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
- package/dist/components/ThinkingIndicator/index.cjs +7 -8
- package/dist/components/ThinkingIndicator/index.d.ts +6 -5
- package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
- package/dist/components/ThinkingIndicator/index.js +7 -8
- package/dist/components/Toast/Toast.module.scss.cjs +28 -29
- package/dist/components/Toast/Toast.module.scss.js +29 -30
- package/dist/components/Toast/index.cjs +28 -30
- package/dist/components/Toast/index.d.ts +9 -8
- package/dist/components/Toast/index.d.ts.map +1 -1
- package/dist/components/Toast/index.js +28 -30
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
- package/dist/components/ToggleGroup/index.cjs +4 -5
- package/dist/components/ToggleGroup/index.d.ts +7 -6
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +4 -5
- 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-virtual.cjs +3 -2
- package/dist/data-table-virtual.js +3 -2
- package/dist/data-table.cjs +3 -2
- package/dist/data-table.js +3 -2
- package/dist/datepicker.cjs +26 -13
- package/dist/datepicker.js +26 -13
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +6 -2
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +21 -29
- package/dist/measurements/generated.cjs +46 -94
- package/dist/measurements/generated.d.ts +44 -92
- package/dist/measurements/generated.d.ts.map +1 -1
- package/dist/measurements/generated.js +46 -94
- package/dist/measurements/index.d.ts +1 -1
- package/dist/measurements/index.d.ts.map +1 -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 -7
- package/dist/utils/seed-derivation.d.ts +1 -3
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +10 -7
- package/dist/utils/theme-presets.cjs +5 -10
- package/dist/utils/theme-presets.d.ts +1 -2
- package/dist/utils/theme-presets.d.ts.map +1 -1
- package/dist/utils/theme-presets.js +5 -10
- package/fragments.json +1 -1
- package/package.json +9 -10
- package/src/assets/fragments-logo.tsx +2 -2
- package/src/assets/fragments-wordmark.tsx +4 -2
- package/src/assets/nav-glyph.module.scss +166 -0
- package/src/assets/nav-glyph.tsx +188 -0
- package/src/components/Accordion/Accordion.contract.json +24 -48
- package/src/components/Accordion/Accordion.module.scss +5 -3
- package/src/components/Alert/Alert.contract.json +49 -65
- package/src/components/Alert/Alert.module.scss +57 -47
- package/src/components/Alert/index.tsx +72 -39
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +99 -54
- package/src/components/AppShell/index.tsx +2 -2
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +4 -2
- package/src/components/Badge/Badge.contract.json +86 -55
- package/src/components/Badge/Badge.module.scss +80 -48
- package/src/components/Badge/index.tsx +34 -17
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/Box.module.scss +7 -6
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
- package/src/components/Breadcrumbs/index.tsx +5 -1
- package/src/components/Button/Button.module.scss +261 -185
- package/src/components/Button/index.tsx +41 -28
- package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
- package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
- package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
- package/src/components/Card/Card.module.scss +97 -76
- package/src/components/Card/index.tsx +44 -20
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/Chart.module.scss +6 -5
- package/src/components/Chart/index.tsx +36 -6
- package/src/components/Checkbox/Checkbox.contract.json +28 -27
- package/src/components/Checkbox/Checkbox.module.scss +47 -54
- package/src/components/Checkbox/index.tsx +10 -10
- package/src/components/Chip/Chip.contract.json +38 -45
- package/src/components/Chip/Chip.module.scss +24 -23
- package/src/components/Chip/index.tsx +12 -7
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
- package/src/components/CodeBlock/css-variables-theme.ts +102 -0
- package/src/components/CodeBlock/index.tsx +114 -51
- package/src/components/Collapsible/Collapsible.contract.json +21 -36
- package/src/components/Collapsible/Collapsible.module.scss +1 -7
- package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
- package/src/components/ColorPicker/index.tsx +6 -1
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +16 -19
- package/src/components/Combobox/index.tsx +41 -6
- package/src/components/Command/Command.contract.json +28 -44
- package/src/components/Command/Command.module.scss +19 -21
- package/src/components/Command/index.tsx +64 -47
- package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/ConversationList/ConversationList.module.scss +2 -3
- package/src/components/ConversationList/index.tsx +2 -2
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +24 -17
- package/src/components/DataTable/DataTable.virtual.tsx +3 -2
- package/src/components/DataTable/index.tsx +9 -8
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +41 -44
- package/src/components/DatePicker/index.tsx +23 -9
- package/src/components/Dialog/Dialog.module.scss +26 -32
- package/src/components/Dialog/index.tsx +51 -39
- package/src/components/Drawer/Drawer.contract.json +28 -42
- package/src/components/Drawer/Drawer.module.scss +123 -64
- package/src/components/Drawer/index.tsx +7 -5
- package/src/components/Editor/Editor.contract.json +32 -49
- package/src/components/Editor/Editor.module.scss +60 -25
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +33 -45
- package/src/components/EmptyState/EmptyState.module.scss +37 -21
- package/src/components/EmptyState/index.tsx +56 -23
- package/src/components/Field/Field.contract.json +28 -46
- package/src/components/Field/Field.module.scss +2 -1
- package/src/components/Field/index.tsx +5 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +15 -7
- package/src/components/Form/Form.contract.json +23 -23
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/Grid.module.scss +2 -2
- package/src/components/Grid/index.tsx +10 -10
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +57 -54
- package/src/components/Header/index.tsx +134 -122
- package/src/components/Icon/Icon.contract.json +37 -81
- package/src/components/Icon/Icon.module.scss +13 -12
- package/src/components/Icon/index.tsx +31 -31
- package/src/components/IconButton/IconButton.contract.json +37 -21
- package/src/components/IconButton/IconButton.module.scss +19 -11
- package/src/components/IconButton/index.tsx +6 -5
- package/src/components/Image/Image.contract.json +23 -56
- package/src/components/Input/Input.contract.json +25 -44
- package/src/components/Input/Input.module.scss +6 -55
- package/src/components/Input/index.tsx +2 -18
- package/src/components/Link/Link.contract.json +46 -58
- package/src/components/Link/Link.module.scss +41 -10
- package/src/components/Link/index.tsx +27 -6
- package/src/components/List/List.contract.json +33 -62
- package/src/components/List/List.module.scss +10 -5
- package/src/components/List/index.tsx +17 -13
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Listbox/Listbox.module.scss +14 -20
- package/src/components/Loading/Loading.contract.json +41 -65
- package/src/components/Loading/Loading.module.scss +37 -31
- package/src/components/Loading/index.tsx +15 -14
- 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 +45 -6
- package/src/components/Markdown/index.tsx +48 -49
- package/src/components/Menu/Menu.contract.json +30 -46
- package/src/components/Menu/Menu.module.scss +32 -16
- package/src/components/Message/Message.contract.json +31 -54
- package/src/components/Message/Message.module.scss +18 -9
- package/src/components/Message/index.tsx +2 -2
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +9 -16
- package/src/components/Popover/Popover.contract.json +28 -50
- package/src/components/Popover/Popover.module.scss +30 -28
- package/src/components/Progress/Progress.contract.json +39 -35
- package/src/components/Progress/Progress.module.scss +16 -10
- package/src/components/Progress/index.tsx +34 -16
- package/src/components/Prompt/Prompt.contract.json +40 -56
- package/src/components/Prompt/Prompt.module.scss +49 -48
- package/src/components/Prompt/index.tsx +17 -15
- package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
- package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
- package/src/components/RadioGroup/index.tsx +23 -10
- package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
- package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
- package/src/components/ScrollArea/index.tsx +16 -16
- package/src/components/ScrollArea/scroll-state.ts +24 -24
- package/src/components/Select/Select.module.scss +20 -19
- package/src/components/Select/index.tsx +26 -24
- package/src/components/Separator/Separator.contract.json +29 -53
- package/src/components/Separator/Separator.module.scss +24 -40
- package/src/components/Separator/index.tsx +16 -11
- package/src/components/Sidebar/Sidebar.contract.json +35 -67
- package/src/components/Sidebar/Sidebar.module.scss +94 -88
- package/src/components/Sidebar/index.tsx +167 -167
- package/src/components/Skeleton/Skeleton.contract.json +34 -60
- package/src/components/Skeleton/Skeleton.module.scss +50 -26
- package/src/components/Skeleton/index.tsx +16 -15
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +9 -22
- package/src/components/Stack/Stack.contract.json +30 -57
- package/src/components/Stack/Stack.module.scss +26 -24
- package/src/components/Stack/index.tsx +3 -3
- package/src/components/Switch/Switch.contract.json +33 -46
- package/src/components/Switch/Switch.module.scss +106 -59
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +24 -16
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
- package/src/components/TableOfContents/index.tsx +27 -10
- package/src/components/Tabs/Tabs.contract.json +35 -56
- package/src/components/Tabs/Tabs.module.scss +27 -31
- package/src/components/Tabs/index.tsx +30 -15
- package/src/components/Text/Text.contract.json +52 -72
- package/src/components/Text/Text.module.scss +34 -18
- package/src/components/Text/index.tsx +123 -83
- package/src/components/Textarea/Textarea.contract.json +24 -55
- package/src/components/Textarea/Textarea.module.scss +22 -52
- package/src/components/Textarea/index.tsx +3 -14
- package/src/components/Theme/Theme.contract.json +35 -53
- package/src/components/Theme/index.tsx +41 -13
- package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
- package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
- package/src/components/ThemeToggle/icons.tsx +46 -0
- package/src/components/ThemeToggle/index.tsx +9 -55
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
- package/src/components/ThinkingIndicator/index.tsx +12 -14
- package/src/components/Toast/Toast.contract.json +55 -49
- package/src/components/Toast/Toast.module.scss +50 -105
- package/src/components/Toast/index.tsx +39 -34
- package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
- package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
- package/src/components/ToggleGroup/index.tsx +11 -11
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/Tooltip.module.scss +16 -10
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +16 -12
- package/src/measurements/MeasurementTargets.module.scss +6 -7
- package/src/measurements/generated.ts +46 -97
- package/src/measurements/index.ts +0 -1
- package/src/measurements/measurements.json +44 -116
- package/src/recipes/_action.scss +4 -4
- package/src/recipes/_boolean-range.scss +12 -16
- package/src/recipes/_feedback.scss +17 -16
- package/src/recipes/_field.scss +28 -16
- package/src/recipes/_layout.scss +14 -7
- package/src/recipes/_navigation.scss +84 -29
- package/src/recipes/_overlay.scss +143 -43
- package/src/recipes/_popup.scss +54 -34
- package/src/recipes/_prose.scss +48 -28
- package/src/recipes/_representation.scss +10 -9
- package/src/recipes/_segmented.scss +1 -1
- package/src/recipes/_table-chrome.scss +42 -17
- package/src/recipes/_target.scss +2 -4
- package/src/recipes/_typography.scss +10 -0
- package/src/scss.d.ts +1 -1
- package/src/styles/globals.scss +31 -25
- package/src/tokens/_component-properties.scss +19 -1
- package/src/tokens/_computed.scss +32 -49
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +62 -44
- package/src/tokens/_measurements.generated.scss +119 -249
- package/src/tokens/_mixins.scss +49 -48
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_property-registrations.scss +9 -0
- package/src/tokens/_seeds.scss +20 -31
- package/src/tokens/_variables.scss +251 -94
- 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 +11 -14
- package/src/utils/theme-presets.ts +5 -12
- package/dist/blocks/AccountSettings.block.d.ts +0 -3
- package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
- package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
- package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/BlogEditor.block.d.ts +0 -3
- package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
- package/dist/blocks/ChatInterface.block.d.ts +0 -3
- package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
- package/dist/blocks/ChatMessages.block.d.ts +0 -3
- package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
- package/dist/blocks/CheckoutForm.block.d.ts +0 -3
- package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
- package/dist/blocks/CommandPalette.block.d.ts +0 -3
- package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
- package/dist/blocks/ContactForm.block.d.ts +0 -3
- package/dist/blocks/ContactForm.block.d.ts.map +0 -1
- package/dist/blocks/DashboardPage.block.d.ts +0 -3
- package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
- package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
- package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/DataTable.block.d.ts +0 -3
- package/dist/blocks/DataTable.block.d.ts.map +0 -1
- package/dist/blocks/EmptyState.block.d.ts +0 -3
- package/dist/blocks/EmptyState.block.d.ts.map +0 -1
- package/dist/blocks/FAQSection.block.d.ts +0 -3
- package/dist/blocks/FAQSection.block.d.ts.map +0 -1
- package/dist/blocks/FeatureGrid.block.d.ts +0 -3
- package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
- package/dist/blocks/HeroSection.block.d.ts +0 -3
- package/dist/blocks/HeroSection.block.d.ts.map +0 -1
- package/dist/blocks/NavigationHeader.block.d.ts +0 -3
- package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
- package/dist/blocks/PaginatedTable.block.d.ts +0 -3
- package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
- package/dist/blocks/PricingComparison.block.d.ts +0 -3
- package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
- package/dist/blocks/ProductCard.block.d.ts +0 -3
- package/dist/blocks/ProductCard.block.d.ts.map +0 -1
- package/dist/blocks/RegistrationForm.block.d.ts +0 -3
- package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
- package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
- package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
- package/dist/blocks/SettingsPanel.block.d.ts +0 -3
- package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
- package/dist/blocks/ShoppingCart.block.d.ts +0 -3
- package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
- package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
- package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/TableSkeleton.block.d.ts +0 -3
- package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/ThinkingStates.block.d.ts +0 -3
- package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
- package/dist/components/Toggle/index.d.ts +0 -3
- package/dist/components/Toggle/index.d.ts.map +0 -1
- 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/Toggle/index.ts +0 -7
- package/src/tokens/_density.scss +0 -85
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Loading",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Signals that something is happening when you cannot say how long it will take.",
|
|
5
5
|
"category": "feedback",
|
|
6
|
-
"tags": [
|
|
7
|
-
"loading",
|
|
8
|
-
"spinner",
|
|
9
|
-
"progress",
|
|
10
|
-
"feedback",
|
|
11
|
-
"indicator",
|
|
12
|
-
"async"
|
|
13
|
-
],
|
|
6
|
+
"tags": ["loading", "spinner", "progress", "feedback", "indicator", "async"],
|
|
14
7
|
"status": "stable",
|
|
15
8
|
"sourcePath": "src/components/Loading/index.tsx",
|
|
16
9
|
"exportName": "Loading",
|
|
17
10
|
"propsSummary": [
|
|
18
11
|
"size: sm|md|lg|xl (default: md)",
|
|
19
|
-
"
|
|
12
|
+
"kind: spinner|dots|pulse (default: spinner)",
|
|
20
13
|
"label: string (default: Loading...)",
|
|
21
14
|
"centered: boolean (default: false)",
|
|
22
15
|
"fill: boolean (default: false)",
|
|
@@ -29,23 +22,14 @@
|
|
|
29
22
|
"description": "Size of the loading indicator",
|
|
30
23
|
"default": "md",
|
|
31
24
|
"required": false,
|
|
32
|
-
"values": [
|
|
33
|
-
"sm",
|
|
34
|
-
"md",
|
|
35
|
-
"lg",
|
|
36
|
-
"xl"
|
|
37
|
-
]
|
|
25
|
+
"values": ["sm", "md", "lg", "xl"]
|
|
38
26
|
},
|
|
39
|
-
"
|
|
27
|
+
"kind": {
|
|
40
28
|
"type": "enum",
|
|
41
|
-
"description": "
|
|
29
|
+
"description": "Which animation plays",
|
|
42
30
|
"default": "spinner",
|
|
43
31
|
"required": false,
|
|
44
|
-
"values": [
|
|
45
|
-
"spinner",
|
|
46
|
-
"dots",
|
|
47
|
-
"pulse"
|
|
48
|
-
]
|
|
32
|
+
"values": ["spinner", "dots", "pulse"]
|
|
49
33
|
},
|
|
50
34
|
"label": {
|
|
51
35
|
"type": "string",
|
|
@@ -73,90 +57,82 @@
|
|
|
73
57
|
},
|
|
74
58
|
"color": {
|
|
75
59
|
"type": "enum",
|
|
76
|
-
"description": "
|
|
60
|
+
"description": "Colour. accent uses the theme accent, current inherits the surrounding text colour",
|
|
77
61
|
"default": "accent",
|
|
78
62
|
"required": false,
|
|
79
|
-
"values": [
|
|
80
|
-
"accent",
|
|
81
|
-
"current",
|
|
82
|
-
"muted"
|
|
83
|
-
]
|
|
63
|
+
"values": ["accent", "current", "muted"]
|
|
84
64
|
}
|
|
85
65
|
},
|
|
86
66
|
"usage": {
|
|
87
67
|
"when": [
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
68
|
+
"Fetching or processing content",
|
|
69
|
+
"Waiting on an async action to come back",
|
|
70
|
+
"Buttons, forms, and page sections mid-request",
|
|
71
|
+
"The first paint of an app or page"
|
|
92
72
|
],
|
|
93
73
|
"whenNot": [
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
74
|
+
"You know the percentage — use Progress",
|
|
75
|
+
"You know the page shape — use Skeleton",
|
|
76
|
+
"AI reasoning states — use ThinkingIndicator"
|
|
97
77
|
],
|
|
98
78
|
"guidelines": [
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"Always
|
|
103
|
-
"
|
|
104
|
-
"Use Loading.Inline when loading indicator should flow with text"
|
|
79
|
+
"spinner for general waits",
|
|
80
|
+
"dots for chat and messaging",
|
|
81
|
+
"pulse for quiet ambient waiting",
|
|
82
|
+
"Always pass a label describing what is loading",
|
|
83
|
+
"Loading.Screen for first page load, Loading.Inline to sit inside a sentence"
|
|
105
84
|
],
|
|
106
85
|
"accessibility": [
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
86
|
+
"Announced through role=\"status\" with aria-live=\"polite\"",
|
|
87
|
+
"label is what a screen reader reads — make it specific",
|
|
88
|
+
"Animation stops for prefers-reduced-motion"
|
|
110
89
|
]
|
|
111
90
|
},
|
|
112
91
|
"examples": [
|
|
113
92
|
{
|
|
114
93
|
"name": "Default",
|
|
115
|
-
"description": "
|
|
116
|
-
"code": "<Loading />"
|
|
94
|
+
"description": "Spinner at medium size, accent coloured.",
|
|
95
|
+
"code": "<Loading label=\"Loading content\" />"
|
|
117
96
|
},
|
|
118
97
|
{
|
|
119
98
|
"name": "Sizes",
|
|
120
|
-
"description": "
|
|
121
|
-
"code": "
|
|
99
|
+
"description": "sm inside controls, xl for a whole page.",
|
|
100
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"lg\" align=\"center\">\n <Loading size=\"sm\" label=\"Loading\" />\n <Loading size=\"md\" label=\"Loading\" />\n <Loading size=\"lg\" label=\"Loading\" />\n <Loading size=\"xl\" label=\"Loading\" />\n</Stack>"
|
|
122
101
|
},
|
|
123
102
|
{
|
|
124
103
|
"name": "Dots",
|
|
125
|
-
"description": "
|
|
126
|
-
"code": "<Loading
|
|
104
|
+
"description": "Three bouncing dots, at home in a message thread.",
|
|
105
|
+
"code": "<Loading kind=\"dots\" label=\"Sending message\" />"
|
|
127
106
|
},
|
|
128
107
|
{
|
|
129
108
|
"name": "Pulse",
|
|
130
|
-
"description": "
|
|
131
|
-
"code": "<Loading
|
|
109
|
+
"description": "One breathing dot for ambient background work.",
|
|
110
|
+
"code": "<Loading kind=\"pulse\" label=\"Syncing\" />"
|
|
132
111
|
},
|
|
133
112
|
{
|
|
134
113
|
"name": "Colors",
|
|
135
|
-
"description": "
|
|
136
|
-
"code": "
|
|
114
|
+
"description": "Accent, muted, or whatever the surrounding text is.",
|
|
115
|
+
"code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"lg\" align=\"center\">\n <Loading color=\"accent\" label=\"Loading\" />\n <Loading color=\"muted\" label=\"Loading\" />\n <span style={{ color: 'var(--fui-color-info)' }}>\n <Loading color=\"current\" label=\"Loading\" />\n </span>\n</Stack>"
|
|
137
116
|
},
|
|
138
117
|
{
|
|
139
118
|
"name": "Inline",
|
|
140
|
-
"description": "
|
|
141
|
-
"code": "<p style={{ margin: 0 }}>\n Processing your request <Loading.Inline /> please wait
|
|
119
|
+
"description": "Sits on the text baseline mid-sentence.",
|
|
120
|
+
"code": "<p style={{ margin: 0 }}>\n Processing your request <Loading.Inline label=\"Processing\" /> please wait…\n</p>"
|
|
142
121
|
},
|
|
143
122
|
{
|
|
144
123
|
"name": "Centered",
|
|
145
|
-
"description": "
|
|
146
|
-
"code": "<div
|
|
124
|
+
"description": "Fills its container and centres in it.",
|
|
125
|
+
"code": "<div\n style={{\n width: '200px',\n height: '100px',\n border: '1px dashed var(--fui-border)',\n borderRadius: 'var(--fui-radius-md)',\n }}\n>\n <Loading centered fill label=\"Loading section\" />\n</div>"
|
|
147
126
|
},
|
|
148
127
|
{
|
|
149
128
|
"name": "Screen",
|
|
150
|
-
"description": "
|
|
151
|
-
"code": "<div
|
|
129
|
+
"description": "Covers the surface it sits on and names the wait.",
|
|
130
|
+
"code": "<div\n style={{\n position: 'relative',\n contain: 'layout',\n width: '300px',\n height: '200px',\n border: '1px solid var(--fui-border)',\n borderRadius: 'var(--fui-radius-md)',\n overflow: 'hidden',\n }}\n>\n <Loading.Screen size=\"lg\" label=\"Loading application…\" showLabel />\n</div>"
|
|
152
131
|
}
|
|
153
132
|
],
|
|
154
133
|
"ai": {
|
|
155
134
|
"compositionPattern": "compound",
|
|
156
|
-
"subComponents": [
|
|
157
|
-
"Inline",
|
|
158
|
-
"Screen"
|
|
159
|
-
]
|
|
135
|
+
"subComponents": ["Inline", "Screen"]
|
|
160
136
|
},
|
|
161
137
|
"provenance": {
|
|
162
138
|
"source": "migrated",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/measurements.generated" as measurements;
|
|
2
3
|
@use "../../recipes/representation" as representation;
|
|
3
4
|
@use "../../recipes/typography" as typography;
|
|
4
5
|
|
|
@@ -58,17 +59,17 @@
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
// ============================================
|
|
61
|
-
// Spinner
|
|
62
|
+
// Spinner kind
|
|
62
63
|
// ============================================
|
|
63
64
|
|
|
64
65
|
.spinnerIcon {
|
|
65
66
|
inline-size: 100%;
|
|
66
67
|
block-size: 100%;
|
|
67
|
-
animation: spin
|
|
68
|
+
animation: spin var(--fui-duration-spin, $fui-duration-spin) linear infinite;
|
|
68
69
|
|
|
69
70
|
@media (prefers-reduced-motion: reduce) {
|
|
70
71
|
animation: none;
|
|
71
|
-
opacity:
|
|
72
|
+
opacity: var(--fui-opacity-muted, #{$fui-opacity-muted});
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
@@ -82,10 +83,13 @@
|
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
// ============================================
|
|
85
|
-
// Dots
|
|
86
|
+
// Dots kind
|
|
86
87
|
// ============================================
|
|
87
88
|
|
|
88
|
-
|
|
89
|
+
// `.dots`/`.pulse` on the root are kind hooks only — sizing lives on the
|
|
90
|
+
// inner track. Sharing one class between root and track let the track's
|
|
91
|
+
// 100% × 100% override the root's fixed activity footprint (rendered 0 × 0).
|
|
92
|
+
.dotsTrack {
|
|
89
93
|
display: flex;
|
|
90
94
|
align-items: center;
|
|
91
95
|
justify-content: space-between;
|
|
@@ -98,23 +102,23 @@
|
|
|
98
102
|
block-size: 25%;
|
|
99
103
|
border-radius: var(--fui-radius-full, $fui-radius-full);
|
|
100
104
|
background-color: currentColor;
|
|
101
|
-
animation: bounce
|
|
105
|
+
animation: bounce var(--fui-duration-pulse, $fui-duration-pulse) ease-in-out infinite;
|
|
102
106
|
|
|
103
107
|
&:nth-child(1) {
|
|
104
|
-
animation-delay:
|
|
108
|
+
animation-delay: var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
&:nth-child(2) {
|
|
108
|
-
animation-delay:
|
|
112
|
+
animation-delay: calc(var(--fui-duration-pulse, #{$fui-duration-pulse}) / 8);
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
&:nth-child(3) {
|
|
112
|
-
animation-delay:
|
|
116
|
+
animation-delay: calc(var(--fui-duration-pulse, #{$fui-duration-pulse}) / 4);
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
@media (prefers-reduced-motion: reduce) {
|
|
116
120
|
animation: none;
|
|
117
|
-
opacity:
|
|
121
|
+
opacity: var(--fui-opacity-muted, #{$fui-opacity-muted});
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
|
|
@@ -123,7 +127,7 @@
|
|
|
123
127
|
60%,
|
|
124
128
|
100% {
|
|
125
129
|
transform: translateY(0);
|
|
126
|
-
opacity:
|
|
130
|
+
opacity: var(--fui-opacity-disabled, #{$fui-opacity-disabled});
|
|
127
131
|
}
|
|
128
132
|
30% {
|
|
129
133
|
transform: translateY(-30%);
|
|
@@ -132,10 +136,10 @@
|
|
|
132
136
|
}
|
|
133
137
|
|
|
134
138
|
// ============================================
|
|
135
|
-
// Pulse
|
|
139
|
+
// Pulse kind
|
|
136
140
|
// ============================================
|
|
137
141
|
|
|
138
|
-
.
|
|
142
|
+
.pulseTrack {
|
|
139
143
|
position: relative;
|
|
140
144
|
inline-size: 100%;
|
|
141
145
|
block-size: 100%;
|
|
@@ -146,22 +150,22 @@
|
|
|
146
150
|
|
|
147
151
|
.pulseRing {
|
|
148
152
|
position: absolute;
|
|
149
|
-
|
|
150
|
-
|
|
153
|
+
inline-size: 100%;
|
|
154
|
+
block-size: 100%;
|
|
151
155
|
border-radius: var(--fui-radius-full, $fui-radius-full);
|
|
152
156
|
background-color: currentColor;
|
|
153
|
-
opacity:
|
|
154
|
-
animation: pulseRing
|
|
157
|
+
opacity: var(--fui-opacity-faint, #{$fui-opacity-faint});
|
|
158
|
+
animation: pulseRing var(--fui-duration-pulse, $fui-duration-pulse) ease-out infinite;
|
|
155
159
|
|
|
156
160
|
@media (prefers-reduced-motion: reduce) {
|
|
157
161
|
animation: none;
|
|
158
|
-
opacity:
|
|
162
|
+
opacity: var(--fui-opacity-faint, #{$fui-opacity-faint});
|
|
159
163
|
}
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
.pulseDot {
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
inline-size: 50%;
|
|
168
|
+
block-size: 50%;
|
|
165
169
|
border-radius: var(--fui-radius-full, $fui-radius-full);
|
|
166
170
|
background-color: currentColor;
|
|
167
171
|
z-index: 1;
|
|
@@ -170,7 +174,7 @@
|
|
|
170
174
|
@keyframes pulseRing {
|
|
171
175
|
0% {
|
|
172
176
|
transform: scale(0.5);
|
|
173
|
-
opacity:
|
|
177
|
+
opacity: var(--fui-opacity-faint, #{$fui-opacity-faint});
|
|
174
178
|
}
|
|
175
179
|
100% {
|
|
176
180
|
transform: scale(1.5);
|
|
@@ -189,7 +193,7 @@
|
|
|
189
193
|
align-items: center;
|
|
190
194
|
justify-content: center;
|
|
191
195
|
background-color: var(--fui-backdrop, $fui-backdrop);
|
|
192
|
-
z-index:
|
|
196
|
+
z-index: var(--fui-overlay-layer-backdrop, #{$fui-overlay-layer-backdrop});
|
|
193
197
|
}
|
|
194
198
|
|
|
195
199
|
.overlay {
|
|
@@ -197,7 +201,7 @@
|
|
|
197
201
|
}
|
|
198
202
|
|
|
199
203
|
// ============================================
|
|
200
|
-
// Inline
|
|
204
|
+
// Inline
|
|
201
205
|
// ============================================
|
|
202
206
|
|
|
203
207
|
.inline {
|
|
@@ -206,23 +210,25 @@
|
|
|
206
210
|
vertical-align: middle;
|
|
207
211
|
}
|
|
208
212
|
|
|
213
|
+
// The inline spinner scales with the surrounding text, so its box is an em
|
|
214
|
+
// measure rather than a glyph step; the md icon is the fallback.
|
|
209
215
|
.inline-sm {
|
|
210
|
-
--inline-size: 0.875em;
|
|
216
|
+
--_loading-inline-size: 0.875em;
|
|
211
217
|
}
|
|
212
218
|
|
|
213
219
|
.inline-md {
|
|
214
|
-
--inline-size: 1.125em;
|
|
220
|
+
--_loading-inline-size: 1.125em;
|
|
215
221
|
}
|
|
216
222
|
|
|
217
223
|
.inlineSpinner {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
animation: spin
|
|
224
|
+
inline-size: var(--_loading-inline-size, var(--fui-icon-md, #{$fui-icon-md}));
|
|
225
|
+
block-size: var(--_loading-inline-size, var(--fui-icon-md, #{$fui-icon-md}));
|
|
226
|
+
animation: spin var(--fui-duration-spin, $fui-duration-spin) linear infinite;
|
|
221
227
|
color: currentColor;
|
|
222
228
|
|
|
223
229
|
@media (prefers-reduced-motion: reduce) {
|
|
224
230
|
animation: none;
|
|
225
|
-
opacity:
|
|
231
|
+
opacity: var(--fui-opacity-muted, #{$fui-opacity-muted});
|
|
226
232
|
}
|
|
227
233
|
}
|
|
228
234
|
|
|
@@ -237,9 +243,9 @@
|
|
|
237
243
|
flex-direction: column;
|
|
238
244
|
align-items: center;
|
|
239
245
|
justify-content: center;
|
|
240
|
-
gap: var(--fui-raw-space-12,
|
|
246
|
+
gap: var(--fui-raw-space-12, #{measurements.raw-space(12)});
|
|
241
247
|
background-color: var(--fui-bg-primary, $fui-bg-primary);
|
|
242
|
-
z-index:
|
|
248
|
+
z-index: var(--fui-overlay-layer-modal, #{$fui-overlay-layer-modal});
|
|
243
249
|
}
|
|
244
250
|
|
|
245
251
|
.screenLabel {
|
|
@@ -8,13 +8,14 @@ import styles from "./Loading.module.scss";
|
|
|
8
8
|
// ============================================
|
|
9
9
|
|
|
10
10
|
export type LoadingSize = "sm" | "md" | "lg" | "xl";
|
|
11
|
-
export type
|
|
11
|
+
export type LoadingKind = "spinner" | "dots" | "pulse";
|
|
12
12
|
|
|
13
13
|
export interface LoadingProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
14
14
|
/** Size of the loading indicator */
|
|
15
15
|
size?: LoadingSize;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/** Which animation plays. Not chrome, so it is `kind`, not `variant`.
|
|
17
|
+
* @default "spinner" */
|
|
18
|
+
kind?: LoadingKind;
|
|
18
19
|
/** Accessible label for screen readers */
|
|
19
20
|
label?: string;
|
|
20
21
|
/** Whether to center the loading indicator in its container */
|
|
@@ -23,7 +24,7 @@ export interface LoadingProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
23
24
|
fill?: boolean;
|
|
24
25
|
/** Whether to show the loading indicator with a backdrop overlay */
|
|
25
26
|
overlay?: boolean;
|
|
26
|
-
/**
|
|
27
|
+
/** Colour. `accent` by default; `current` inherits the surrounding text colour */
|
|
27
28
|
color?: "accent" | "current" | "muted";
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -37,8 +38,8 @@ export interface LoadingInlineProps extends React.HTMLAttributes<HTMLSpanElement
|
|
|
37
38
|
export interface LoadingScreenProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
38
39
|
/** Loading indicator size */
|
|
39
40
|
size?: LoadingSize;
|
|
40
|
-
/**
|
|
41
|
-
|
|
41
|
+
/** Which animation plays */
|
|
42
|
+
kind?: LoadingKind;
|
|
42
43
|
/** Optional label text to display */
|
|
43
44
|
label?: string;
|
|
44
45
|
/** Whether to show the label text visually */
|
|
@@ -93,7 +94,7 @@ function PulseAnimation({ className }: { className?: string }) {
|
|
|
93
94
|
const LoadingRoot = React.forwardRef<HTMLDivElement, LoadingProps>(function LoadingRoot(
|
|
94
95
|
{
|
|
95
96
|
size = "md",
|
|
96
|
-
|
|
97
|
+
kind = "spinner",
|
|
97
98
|
label = "Loading...",
|
|
98
99
|
centered = false,
|
|
99
100
|
fill = false,
|
|
@@ -107,7 +108,7 @@ const LoadingRoot = React.forwardRef<HTMLDivElement, LoadingProps>(function Load
|
|
|
107
108
|
const classes = [
|
|
108
109
|
styles.loading,
|
|
109
110
|
styles[size],
|
|
110
|
-
styles[
|
|
111
|
+
styles[kind],
|
|
111
112
|
styles[`color-${color}`],
|
|
112
113
|
centered && styles.centered,
|
|
113
114
|
fill && styles.fill,
|
|
@@ -118,10 +119,10 @@ const LoadingRoot = React.forwardRef<HTMLDivElement, LoadingProps>(function Load
|
|
|
118
119
|
.join(" ");
|
|
119
120
|
|
|
120
121
|
const animation =
|
|
121
|
-
|
|
122
|
-
<DotsAnimation className={styles.
|
|
123
|
-
) :
|
|
124
|
-
<PulseAnimation className={styles.
|
|
122
|
+
kind === "dots" ? (
|
|
123
|
+
<DotsAnimation className={styles.dotsTrack} />
|
|
124
|
+
) : kind === "pulse" ? (
|
|
125
|
+
<PulseAnimation className={styles.pulseTrack} />
|
|
125
126
|
) : (
|
|
126
127
|
<SpinnerIcon className={styles.spinnerIcon} />
|
|
127
128
|
);
|
|
@@ -171,7 +172,7 @@ function LoadingInline({
|
|
|
171
172
|
|
|
172
173
|
function LoadingScreen({
|
|
173
174
|
size = "lg",
|
|
174
|
-
|
|
175
|
+
kind = "spinner",
|
|
175
176
|
label = "Loading...",
|
|
176
177
|
showLabel = false,
|
|
177
178
|
className,
|
|
@@ -181,7 +182,7 @@ function LoadingScreen({
|
|
|
181
182
|
|
|
182
183
|
return (
|
|
183
184
|
<div className={classes} role="status" aria-label={label} aria-live="polite" {...htmlProps}>
|
|
184
|
-
<LoadingRoot size={size}
|
|
185
|
+
<LoadingRoot size={size} kind={kind} label={label} />
|
|
185
186
|
{showLabel && <span className={styles.screenLabel}>{label}</span>}
|
|
186
187
|
</div>
|
|
187
188
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Main",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Owns a page's gutters, reading measure, and vertical rhythm.",
|
|
5
5
|
"category": "layout",
|
|
6
6
|
"tags": ["main", "page", "layout", "compound"],
|
|
7
7
|
"status": "stable",
|
|
@@ -45,11 +45,19 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"usage": {
|
|
48
|
-
"when": [
|
|
49
|
-
|
|
48
|
+
"when": [
|
|
49
|
+
"Laying out a page's header, description, content, and footer",
|
|
50
|
+
"Giving a page one consistent gutter and measure"
|
|
51
|
+
],
|
|
52
|
+
"whenNot": [
|
|
53
|
+
"Shell-level navigation chrome (use AppShell)",
|
|
54
|
+
"Arbitrary spacing inside a component (use Stack or Box)"
|
|
55
|
+
],
|
|
50
56
|
"guidelines": [
|
|
51
|
-
"
|
|
52
|
-
"
|
|
57
|
+
"One Main per page owns the gutters — do not nest them",
|
|
58
|
+
"measure=\"narrow\" caps content for reading; \"full\" uses the whole canvas",
|
|
59
|
+
"Compose regions with Main.Header, Main.Description, Main.Content, Main.Footer",
|
|
60
|
+
"Main.Description caps itself at 68ch regardless of measure"
|
|
53
61
|
],
|
|
54
62
|
"accessibility": [
|
|
55
63
|
"Use the default main element unless an existing shell already owns the main landmark"
|
|
@@ -58,13 +66,13 @@
|
|
|
58
66
|
"examples": [
|
|
59
67
|
{
|
|
60
68
|
"name": "Full Measure",
|
|
61
|
-
"description": "
|
|
62
|
-
"code": "<Main measure=\"full\">\n
|
|
69
|
+
"description": "Content fills the canvas, inset only by the page gutter.",
|
|
70
|
+
"code": "import { Box } from '@/components/Box';\nimport { Main } from '@/components/Main';\n\n<Box width=\"100%\" border rounded=\"md\">\n <Main measure=\"full\">\n <Main.Header>Findings</Main.Header>\n <Main.Description>\n Every governance finding raised against this repository, newest first.\n </Main.Description>\n <Main.Content>\n Content stretches edge to edge, inset only by the page gutter.\n </Main.Content>\n <Main.Footer>Export report</Main.Footer>\n </Main>\n</Box>"
|
|
63
71
|
},
|
|
64
72
|
{
|
|
65
73
|
"name": "Narrow Measure",
|
|
66
|
-
"description": "
|
|
67
|
-
"code": "<Main measure=\"narrow\">\n
|
|
74
|
+
"description": "Caps content at the reading measure and centres it on wide screens.",
|
|
75
|
+
"code": "import { Box } from '@/components/Box';\nimport { Main } from '@/components/Main';\n\n<Box width=\"100%\" border rounded=\"md\">\n <Main measure=\"narrow\">\n <Main.Header>Settings</Main.Header>\n <Main.Description>\n Manage the workspace contract, canonical components, and token files.\n </Main.Description>\n <Main.Content>\n Content is capped at the reading measure and centred, so long prose stays\n comfortable to read on wide displays.\n </Main.Content>\n <Main.Footer>Save changes</Main.Footer>\n </Main>\n</Box>"
|
|
68
76
|
}
|
|
69
77
|
],
|
|
70
78
|
"ai": {
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Markdown",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Turns a Markdown string into styled headings, lists, tables, code, and quotes.",
|
|
5
5
|
"category": "display",
|
|
6
|
-
"tags": [
|
|
7
|
-
"markdown",
|
|
8
|
-
"prose",
|
|
9
|
-
"content",
|
|
10
|
-
"text",
|
|
11
|
-
"ai",
|
|
12
|
-
"chat"
|
|
13
|
-
],
|
|
6
|
+
"tags": ["markdown", "prose", "content", "text", "ai", "chat"],
|
|
14
7
|
"status": "stable",
|
|
15
8
|
"dependencies": [
|
|
16
9
|
{
|
|
@@ -26,11 +19,7 @@
|
|
|
26
19
|
],
|
|
27
20
|
"sourcePath": "src/components/Markdown/index.tsx",
|
|
28
21
|
"exportName": "Markdown",
|
|
29
|
-
"propsSummary": [
|
|
30
|
-
"content: string (required)",
|
|
31
|
-
"components: object",
|
|
32
|
-
"className: string"
|
|
33
|
-
],
|
|
22
|
+
"propsSummary": ["content: string (required)", "components: object", "className: string"],
|
|
34
23
|
"props": {
|
|
35
24
|
"content": {
|
|
36
25
|
"type": "string",
|
|
@@ -50,50 +39,45 @@
|
|
|
50
39
|
},
|
|
51
40
|
"usage": {
|
|
52
41
|
"when": [
|
|
53
|
-
"Rendering
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"Rich text display without a WYSIWYG editor"
|
|
42
|
+
"Rendering an LLM reply",
|
|
43
|
+
"Showing text a user wrote in Markdown",
|
|
44
|
+
"Docs or readme content inside the app"
|
|
57
45
|
],
|
|
58
46
|
"whenNot": [
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"Rendering trusted HTML directly (use dangerouslySetInnerHTML)"
|
|
47
|
+
"The string has no formatting (use Text)",
|
|
48
|
+
"The user needs to edit it (use an editor)"
|
|
62
49
|
],
|
|
63
50
|
"guidelines": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"Standard div props (id, style, aria-*, data-*) are forwarded to the Markdown wrapper"
|
|
51
|
+
"react-markdown and remark-gfm are peer dependencies — install both",
|
|
52
|
+
"The parser loads on demand, so the first frame is plain text; call Markdown.preload() at startup to skip it",
|
|
53
|
+
"Without react-markdown installed it degrades to plain paragraphs",
|
|
54
|
+
"components overrides how any element renders",
|
|
55
|
+
"react-markdown sanitises the content for you"
|
|
70
56
|
],
|
|
71
57
|
"accessibility": [
|
|
72
|
-
"
|
|
73
|
-
"Links
|
|
74
|
-
"Images include alt text from markdown syntax",
|
|
75
|
-
"Tables use proper th/td structure for screen readers"
|
|
58
|
+
"Output is real headings, lists, and tables",
|
|
59
|
+
"Links render as anchors, images keep their alt text"
|
|
76
60
|
]
|
|
77
61
|
},
|
|
78
62
|
"examples": [
|
|
79
63
|
{
|
|
80
64
|
"name": "Default",
|
|
81
|
-
"description": "
|
|
65
|
+
"description": "Headings, emphasis, lists, and quotes all pick up the type scale.",
|
|
82
66
|
"code": "<Markdown content={`# Hello World\n\nThis is a paragraph with **bold text** and *italic text*.\n\nHere is some \\`inline code\\` within a sentence.\n\n- First item\n- Second item\n- Third item\n\n> A blockquote for emphasis.\n`} />"
|
|
83
67
|
},
|
|
84
68
|
{
|
|
85
69
|
"name": "GFM Table",
|
|
86
|
-
"description": "
|
|
70
|
+
"description": "remark-gfm adds tables and checkbox items on top of the basics.",
|
|
87
71
|
"code": "<Markdown content={`## Data Overview\n\n| Feature | Status | Priority |\n|------------|-----------|----------|\n| Markdown | Done | High |\n| Tables | Done | Medium |\n| Task Lists | Planned | Low |\n\nNotes:\n- [x] Support GFM tables\n- [x] Support task lists\n- [ ] Syntax highlighting\n`} />"
|
|
88
72
|
},
|
|
89
73
|
{
|
|
90
74
|
"name": "Code Block",
|
|
91
|
-
"description": "
|
|
92
|
-
"code": "<Markdown content={`## Code Example
|
|
75
|
+
"description": "Fenced blocks get the same code surface as CodeBlock.",
|
|
76
|
+
"code": "<Markdown content={`## Code Example\n\nHere is a JavaScript function:\n\n```js\nfunction greet(name) {\n return 'Hello, ' + name;\n}\n```\n\nAnd some inline code: \\`const x = 42;\\``} />"
|
|
93
77
|
},
|
|
94
78
|
{
|
|
95
79
|
"name": "Mixed Content",
|
|
96
|
-
"description": "
|
|
80
|
+
"description": "A realistic document — the worst case worth checking.",
|
|
97
81
|
"code": "<Markdown content={`# Project Update\n\n## Summary\n\nThe project is progressing well. Here are the **key highlights**:\n\n1. Completed the *design system* components\n2. Added markdown rendering support\n3. Integrated with the documentation site\n\n### Performance Metrics\n\n| Metric | Before | After |\n|-------------|--------|-------|\n| Bundle Size | 142kb | 98kb |\n| Load Time | 1.2s | 0.8s |\n| Lighthouse | 72 | 95 |\n\n> These improvements were achieved through tree-shaking and code splitting.\n\n### Next Steps\n\n- [ ] Add syntax highlighting\n- [ ] Support custom themes\n- [x] GFM table support\n`} />"
|
|
98
82
|
}
|
|
99
83
|
],
|
|
@@ -121,16 +105,11 @@
|
|
|
121
105
|
"className: string - Additional CSS class",
|
|
122
106
|
"Forwards standard HTML div attributes to the wrapper element"
|
|
123
107
|
],
|
|
124
|
-
"a11yRules": [
|
|
125
|
-
"A11Y_SEMANTIC_HTML"
|
|
126
|
-
]
|
|
108
|
+
"a11yRules": ["A11Y_SEMANTIC_HTML"]
|
|
127
109
|
},
|
|
128
110
|
"ai": {
|
|
129
111
|
"compositionPattern": "compound",
|
|
130
|
-
"subComponents": [
|
|
131
|
-
"Root",
|
|
132
|
-
"preload"
|
|
133
|
-
]
|
|
112
|
+
"subComponents": ["Root", "preload"]
|
|
134
113
|
},
|
|
135
114
|
"provenance": {
|
|
136
115
|
"source": "migrated",
|