@fragments-sdk/ui 0.13.0 → 0.14.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/dist/assets/ui.css +1642 -1679
- package/dist/chart.cjs.map +1 -1
- package/dist/chart.js.map +1 -1
- package/dist/codeblock.cjs +26 -18
- package/dist/codeblock.cjs.map +1 -1
- package/dist/codeblock.js +26 -18
- package/dist/codeblock.js.map +1 -1
- package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
- package/dist/components/Accordion/Accordion.module.scss.js +8 -8
- package/dist/components/Accordion/index.cjs +7 -3
- package/dist/components/Accordion/index.cjs.map +1 -1
- package/dist/components/Accordion/index.d.ts +24 -11
- package/dist/components/Accordion/index.d.ts.map +1 -1
- package/dist/components/Accordion/index.js +7 -3
- package/dist/components/Accordion/index.js.map +1 -1
- package/dist/components/Alert/Alert.module.scss.cjs +12 -12
- package/dist/components/Alert/Alert.module.scss.js +12 -12
- package/dist/components/Alert/index.cjs +37 -15
- package/dist/components/Alert/index.cjs.map +1 -1
- package/dist/components/Alert/index.d.ts +15 -22
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +37 -15
- package/dist/components/Alert/index.js.map +1 -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 +3 -1
- package/dist/components/AppShell/index.cjs.map +1 -1
- package/dist/components/AppShell/index.d.ts.map +1 -1
- package/dist/components/AppShell/index.js +3 -1
- package/dist/components/AppShell/index.js.map +1 -1
- package/dist/components/Avatar/index.cjs +9 -1
- package/dist/components/Avatar/index.cjs.map +1 -1
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.d.ts.map +1 -1
- package/dist/components/Avatar/index.js +9 -1
- package/dist/components/Avatar/index.js.map +1 -1
- package/dist/components/Badge/index.cjs +4 -2
- package/dist/components/Badge/index.cjs.map +1 -1
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +4 -2
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +11 -11
- package/dist/components/BentoGrid/BentoGrid.module.scss.js +11 -11
- package/dist/components/BentoGrid/index.cjs +8 -5
- package/dist/components/BentoGrid/index.cjs.map +1 -1
- package/dist/components/BentoGrid/index.d.ts +2 -8
- package/dist/components/BentoGrid/index.d.ts.map +1 -1
- package/dist/components/BentoGrid/index.js +8 -5
- package/dist/components/BentoGrid/index.js.map +1 -1
- package/dist/components/Box/index.cjs +12 -2
- package/dist/components/Box/index.cjs.map +1 -1
- package/dist/components/Box/index.d.ts +1 -1
- package/dist/components/Box/index.d.ts.map +1 -1
- package/dist/components/Box/index.js +12 -2
- package/dist/components/Box/index.js.map +1 -1
- package/dist/components/Breadcrumbs/index.cjs +3 -1
- package/dist/components/Breadcrumbs/index.cjs.map +1 -1
- package/dist/components/Breadcrumbs/index.d.ts +3 -1
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +3 -1
- package/dist/components/Breadcrumbs/index.js.map +1 -1
- package/dist/components/Button/Button.module.scss.cjs +11 -11
- package/dist/components/Button/Button.module.scss.js +11 -11
- package/dist/components/Button/index.cjs +5 -2
- package/dist/components/Button/index.cjs.map +1 -1
- package/dist/components/Button/index.d.ts +3 -3
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +5 -2
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/ButtonGroup/index.cjs +3 -2
- package/dist/components/ButtonGroup/index.cjs.map +1 -1
- package/dist/components/ButtonGroup/index.d.ts +1 -2
- package/dist/components/ButtonGroup/index.d.ts.map +1 -1
- package/dist/components/ButtonGroup/index.js +3 -2
- package/dist/components/ButtonGroup/index.js.map +1 -1
- package/dist/components/Card/Card.module.scss.cjs +14 -14
- package/dist/components/Card/Card.module.scss.js +14 -14
- package/dist/components/Card/index.cjs +3 -22
- package/dist/components/Card/index.cjs.map +1 -1
- package/dist/components/Card/index.d.ts +6 -11
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +3 -22
- package/dist/components/Card/index.js.map +1 -1
- 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 +3 -3
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
- package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
- package/dist/components/Checkbox/index.cjs +11 -4
- package/dist/components/Checkbox/index.cjs.map +1 -1
- package/dist/components/Checkbox/index.d.ts +6 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +11 -4
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/Chip/index.cjs +11 -3
- package/dist/components/Chip/index.cjs.map +1 -1
- package/dist/components/Chip/index.d.ts +1 -2
- package/dist/components/Chip/index.d.ts.map +1 -1
- package/dist/components/Chip/index.js +11 -3
- package/dist/components/Chip/index.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -20
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -20
- package/dist/components/CodeBlock/index.d.ts +8 -2
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
- package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
- package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
- package/dist/components/Combobox/Combobox.module.scss.js +15 -15
- package/dist/components/Combobox/index.cjs +68 -18
- package/dist/components/Combobox/index.cjs.map +1 -1
- package/dist/components/Combobox/index.d.ts +32 -11
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +68 -18
- package/dist/components/Combobox/index.js.map +1 -1
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/Command/index.cjs +4 -4
- package/dist/components/Command/index.cjs.map +1 -1
- package/dist/components/Command/index.d.ts +1 -1
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +4 -4
- package/dist/components/Command/index.js.map +1 -1
- 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 +6 -3
- package/dist/components/ConversationList/index.cjs.map +1 -1
- package/dist/components/ConversationList/index.d.ts +1 -1
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +6 -3
- package/dist/components/ConversationList/index.js.map +1 -1
- package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
- package/dist/components/DataTable/DataTable.module.scss.js +26 -26
- package/dist/components/DataTable/index.cjs +13 -4
- package/dist/components/DataTable/index.cjs.map +1 -1
- package/dist/components/DataTable/index.d.ts +7 -2
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DataTable/index.js +13 -4
- package/dist/components/DataTable/index.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +26 -26
- package/dist/components/DatePicker/DatePicker.module.scss.js +26 -26
- package/dist/components/DatePicker/index.d.ts +2 -2
- 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 +2 -1
- package/dist/components/Dialog/index.cjs.map +1 -1
- package/dist/components/Dialog/index.d.ts +20 -7
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +2 -1
- package/dist/components/Dialog/index.js.map +1 -1
- package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
- package/dist/components/Drawer/Drawer.module.scss.js +26 -26
- package/dist/components/Drawer/index.cjs +30 -3
- package/dist/components/Drawer/index.cjs.map +1 -1
- package/dist/components/Drawer/index.d.ts +3 -1
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +13 -3
- package/dist/components/Drawer/index.js.map +1 -1
- 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.cjs +32 -7
- package/dist/components/Editor/index.cjs.map +1 -1
- package/dist/components/Editor/index.d.ts +16 -3
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/Editor/index.js +32 -7
- package/dist/components/Editor/index.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
- package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
- package/dist/components/EmptyState/index.cjs +12 -8
- package/dist/components/EmptyState/index.cjs.map +1 -1
- package/dist/components/EmptyState/index.d.ts +8 -12
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +12 -8
- package/dist/components/EmptyState/index.js.map +1 -1
- package/dist/components/Fieldset/index.cjs +2 -2
- package/dist/components/Fieldset/index.cjs.map +1 -1
- package/dist/components/Fieldset/index.d.ts +2 -3
- package/dist/components/Fieldset/index.d.ts.map +1 -1
- package/dist/components/Fieldset/index.js +2 -2
- package/dist/components/Fieldset/index.js.map +1 -1
- package/dist/components/Form/index.cjs +13 -13
- package/dist/components/Form/index.cjs.map +1 -1
- package/dist/components/Form/index.d.ts +5 -2
- package/dist/components/Form/index.d.ts.map +1 -1
- package/dist/components/Form/index.js +13 -13
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/Grid/Grid.module.scss.cjs +57 -57
- package/dist/components/Grid/Grid.module.scss.js +57 -57
- package/dist/components/Grid/index.cjs +7 -4
- package/dist/components/Grid/index.cjs.map +1 -1
- package/dist/components/Grid/index.d.ts +5 -3
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +7 -4
- package/dist/components/Grid/index.js.map +1 -1
- package/dist/components/Header/Header.module.scss.cjs +21 -21
- package/dist/components/Header/Header.module.scss.js +21 -21
- package/dist/components/Header/index.cjs +61 -23
- package/dist/components/Header/index.cjs.map +1 -1
- package/dist/components/Header/index.d.ts +27 -34
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +61 -23
- package/dist/components/Header/index.js.map +1 -1
- package/dist/components/Icon/index.cjs +11 -1
- package/dist/components/Icon/index.cjs.map +1 -1
- package/dist/components/Icon/index.d.ts +28 -9
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +11 -1
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/Image/index.cjs +15 -4
- package/dist/components/Image/index.cjs.map +1 -1
- package/dist/components/Image/index.d.ts +7 -1
- package/dist/components/Image/index.d.ts.map +1 -1
- package/dist/components/Image/index.js +15 -4
- package/dist/components/Image/index.js.map +1 -1
- package/dist/components/Input/Input.module.scss.cjs +13 -13
- package/dist/components/Input/Input.module.scss.js +13 -13
- package/dist/components/Input/index.cjs +79 -31
- package/dist/components/Input/index.cjs.map +1 -1
- package/dist/components/Input/index.d.ts +17 -3
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +79 -31
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Link/index.cjs +17 -0
- package/dist/components/Link/index.cjs.map +1 -1
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/Link/index.js +17 -0
- package/dist/components/Link/index.js.map +1 -1
- package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- package/dist/components/Listbox/index.cjs +10 -6
- package/dist/components/Listbox/index.cjs.map +1 -1
- package/dist/components/Listbox/index.d.ts +2 -2
- package/dist/components/Listbox/index.d.ts.map +1 -1
- package/dist/components/Listbox/index.js +10 -6
- package/dist/components/Listbox/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +4 -2
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +13 -13
- package/dist/components/Menu/Menu.module.scss.js +13 -13
- package/dist/components/Menu/index.cjs +12 -1
- package/dist/components/Menu/index.cjs.map +1 -1
- package/dist/components/Menu/index.d.ts +9 -4
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +12 -1
- package/dist/components/Menu/index.js.map +1 -1
- package/dist/components/Message/Message.module.scss.cjs +18 -18
- package/dist/components/Message/Message.module.scss.js +18 -18
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
- package/dist/components/NavigationMenu/NavigationMenuContext.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContext.d.ts +8 -0
- package/dist/components/NavigationMenu/NavigationMenuContext.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContext.js.map +1 -1
- package/dist/components/NavigationMenu/index.cjs +49 -10
- package/dist/components/NavigationMenu/index.cjs.map +1 -1
- package/dist/components/NavigationMenu/index.d.ts +5 -1
- package/dist/components/NavigationMenu/index.d.ts.map +1 -1
- package/dist/components/NavigationMenu/index.js +49 -10
- package/dist/components/NavigationMenu/index.js.map +1 -1
- package/dist/components/Pagination/index.cjs +37 -9
- package/dist/components/Pagination/index.cjs.map +1 -1
- package/dist/components/Pagination/index.d.ts +2 -3
- package/dist/components/Pagination/index.d.ts.map +1 -1
- package/dist/components/Pagination/index.js +37 -9
- package/dist/components/Pagination/index.js.map +1 -1
- package/dist/components/Popover/Popover.module.scss.cjs +10 -10
- package/dist/components/Popover/Popover.module.scss.js +10 -10
- package/dist/components/Popover/index.cjs +43 -2
- package/dist/components/Popover/index.cjs.map +1 -1
- package/dist/components/Popover/index.d.ts +16 -6
- package/dist/components/Popover/index.d.ts.map +1 -1
- package/dist/components/Popover/index.js +26 -2
- package/dist/components/Popover/index.js.map +1 -1
- package/dist/components/Progress/index.cjs +3 -1
- package/dist/components/Progress/index.cjs.map +1 -1
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +3 -1
- package/dist/components/Progress/index.js.map +1 -1
- package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
- package/dist/components/Prompt/Prompt.module.scss.js +14 -14
- package/dist/components/Prompt/index.cjs +14 -2
- package/dist/components/Prompt/index.cjs.map +1 -1
- package/dist/components/Prompt/index.d.ts +8 -5
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +14 -2
- package/dist/components/Prompt/index.js.map +1 -1
- package/dist/components/RadioGroup/index.cjs +14 -6
- package/dist/components/RadioGroup/index.cjs.map +1 -1
- package/dist/components/RadioGroup/index.d.ts +12 -2
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +14 -6
- package/dist/components/RadioGroup/index.js.map +1 -1
- package/dist/components/Select/Select.module.scss.cjs +10 -10
- package/dist/components/Select/Select.module.scss.js +10 -10
- package/dist/components/Select/index.cjs +37 -24
- package/dist/components/Select/index.cjs.map +1 -1
- package/dist/components/Select/index.d.ts +6 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +37 -24
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
- package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
- package/dist/components/Sidebar/index.cjs +2 -2
- package/dist/components/Sidebar/index.cjs.map +1 -1
- package/dist/components/Sidebar/index.d.ts +3 -3
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +2 -2
- package/dist/components/Sidebar/index.js.map +1 -1
- package/dist/components/Skeleton/index.cjs +6 -3
- package/dist/components/Skeleton/index.cjs.map +1 -1
- package/dist/components/Skeleton/index.d.ts +3 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +6 -3
- package/dist/components/Skeleton/index.js.map +1 -1
- package/dist/components/Slider/Slider.module.scss.cjs +13 -10
- package/dist/components/Slider/Slider.module.scss.cjs.map +1 -1
- package/dist/components/Slider/Slider.module.scss.js +13 -10
- package/dist/components/Slider/Slider.module.scss.js.map +1 -1
- package/dist/components/Slider/index.cjs +33 -1
- package/dist/components/Slider/index.cjs.map +1 -1
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.d.ts.map +1 -1
- package/dist/components/Slider/index.js +33 -1
- package/dist/components/Slider/index.js.map +1 -1
- package/dist/components/Stack/index.cjs +12 -2
- package/dist/components/Stack/index.cjs.map +1 -1
- package/dist/components/Stack/index.d.ts +3 -2
- package/dist/components/Stack/index.d.ts.map +1 -1
- package/dist/components/Stack/index.js +12 -2
- package/dist/components/Stack/index.js.map +1 -1
- package/dist/components/Table/Table.module.scss.cjs +16 -16
- package/dist/components/Table/Table.module.scss.js +16 -16
- package/dist/components/Table/index.d.ts +10 -4
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.cjs +8 -5
- package/dist/components/TableOfContents/index.cjs.map +1 -1
- package/dist/components/TableOfContents/index.d.ts +2 -2
- package/dist/components/TableOfContents/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.js +8 -5
- package/dist/components/TableOfContents/index.js.map +1 -1
- package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
- package/dist/components/Tabs/Tabs.module.scss.js +9 -9
- package/dist/components/Tabs/index.cjs +9 -6
- package/dist/components/Tabs/index.cjs.map +1 -1
- package/dist/components/Tabs/index.d.ts +4 -1
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +9 -6
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Textarea/index.cjs +61 -43
- package/dist/components/Textarea/index.cjs.map +1 -1
- package/dist/components/Textarea/index.d.ts +9 -1
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +61 -43
- package/dist/components/Textarea/index.js.map +1 -1
- package/dist/components/Theme/index.cjs +3 -1
- package/dist/components/Theme/index.cjs.map +1 -1
- package/dist/components/Theme/index.d.ts +2 -4
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +3 -1
- package/dist/components/Theme/index.js.map +1 -1
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/Toast/index.cjs +15 -14
- package/dist/components/Toast/index.cjs.map +1 -1
- package/dist/components/Toast/index.d.ts +9 -5
- package/dist/components/Toast/index.d.ts.map +1 -1
- package/dist/components/Toast/index.js +15 -14
- package/dist/components/Toast/index.js.map +1 -1
- package/dist/components/Toggle/Toggle.module.scss.cjs +11 -11
- package/dist/components/Toggle/Toggle.module.scss.js +11 -11
- package/dist/components/Toggle/index.cjs +1 -1
- package/dist/components/Toggle/index.cjs.map +1 -1
- package/dist/components/Toggle/index.js +1 -1
- package/dist/components/Toggle/index.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
- package/dist/components/ToggleGroup/index.cjs +27 -8
- package/dist/components/ToggleGroup/index.cjs.map +1 -1
- package/dist/components/ToggleGroup/index.d.ts +8 -3
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +27 -8
- package/dist/components/ToggleGroup/index.js.map +1 -1
- 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 +20 -4
- package/dist/components/Tooltip/index.cjs.map +1 -1
- package/dist/components/Tooltip/index.d.ts +3 -1
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +20 -4
- package/dist/components/Tooltip/index.js.map +1 -1
- package/dist/components/VisuallyHidden/index.cjs +10 -2
- package/dist/components/VisuallyHidden/index.cjs.map +1 -1
- package/dist/components/VisuallyHidden/index.d.ts +1 -1
- package/dist/components/VisuallyHidden/index.d.ts.map +1 -1
- package/dist/components/VisuallyHidden/index.js +10 -2
- package/dist/components/VisuallyHidden/index.js.map +1 -1
- package/dist/datepicker.cjs +8 -1
- package/dist/datepicker.cjs.map +1 -1
- package/dist/datepicker.js +8 -1
- package/dist/datepicker.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/markdown.cjs +5 -5
- package/dist/markdown.cjs.map +1 -1
- package/dist/markdown.js +5 -5
- package/dist/markdown.js.map +1 -1
- package/dist/table.cjs +19 -3
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +19 -3
- package/dist/table.js.map +1 -1
- package/fragments.json +1 -1
- package/package.json +2 -2
- package/src/blocks/AccountSettings.block.ts +1 -1
- package/src/blocks/ActivityFeed.block.ts +1 -1
- package/src/blocks/ActivityFeedSkeleton.block.ts +1 -1
- package/src/blocks/BlogEditor.block.ts +1 -1
- package/src/blocks/ChatInterface.block.ts +1 -1
- package/src/blocks/ChatMessages.block.ts +1 -1
- package/src/blocks/CheckoutForm.block.ts +1 -1
- package/src/blocks/CommandPalette.block.ts +1 -1
- package/src/blocks/ContactForm.block.ts +1 -1
- package/src/blocks/DashboardLayout.block.ts +1 -1
- package/src/blocks/DashboardPage.block.ts +1 -1
- package/src/blocks/DashboardSkeleton.block.ts +1 -1
- package/src/blocks/DataTable.block.ts +1 -1
- package/src/blocks/EmptyState.block.ts +1 -1
- package/src/blocks/FAQSection.block.ts +1 -1
- package/src/blocks/FeatureGrid.block.ts +1 -1
- package/src/blocks/HeroSection.block.ts +1 -1
- package/src/blocks/LoginForm.block.ts +1 -1
- package/src/blocks/NavigationHeader.block.ts +1 -1
- package/src/blocks/PaginatedTable.block.ts +1 -1
- package/src/blocks/PricingComparison.block.ts +1 -1
- package/src/blocks/ProductCard.block.ts +1 -1
- package/src/blocks/RegistrationForm.block.ts +1 -1
- package/src/blocks/SettingsDrawer.block.ts +1 -1
- package/src/blocks/SettingsPanel.block.ts +1 -1
- package/src/blocks/ShoppingCart.block.ts +1 -1
- package/src/blocks/StatsCard.block.ts +1 -1
- package/src/blocks/StatsCardSkeleton.block.ts +1 -1
- package/src/blocks/TableSkeleton.block.ts +1 -1
- package/src/blocks/ThinkingStates.block.ts +1 -1
- package/src/components/Accordion/Accordion.fragment.tsx +7 -7
- package/src/components/Accordion/Accordion.module.scss +2 -2
- package/src/components/Accordion/Accordion.test.tsx +8 -5
- package/src/components/Accordion/index.tsx +33 -13
- package/src/components/Alert/Alert.fragment.tsx +5 -1
- package/src/components/Alert/Alert.module.scss +1 -1
- package/src/components/Alert/Alert.test.tsx +25 -0
- package/src/components/Alert/index.tsx +49 -30
- package/src/components/AppShell/AppShell.fragment.tsx +1 -1
- package/src/components/AppShell/AppShell.module.scss +5 -5
- package/src/components/AppShell/AppShell.test.tsx +12 -0
- package/src/components/AppShell/index.tsx +2 -0
- package/src/components/Avatar/Avatar.fragment.tsx +7 -1
- package/src/components/Avatar/Avatar.test.tsx +24 -2
- package/src/components/Avatar/index.tsx +13 -1
- package/src/components/Badge/Badge.fragment.tsx +16 -1
- package/src/components/Badge/Badge.test.tsx +8 -1
- package/src/components/Badge/index.tsx +7 -2
- package/src/components/BentoGrid/BentoGrid.fragment.tsx +3 -1
- package/src/components/BentoGrid/BentoGrid.module.scss +52 -16
- package/src/components/BentoGrid/BentoGrid.test.tsx +20 -0
- package/src/components/BentoGrid/index.tsx +9 -12
- package/src/components/Box/Box.fragment.tsx +3 -1
- package/src/components/Box/Box.test.tsx +14 -0
- package/src/components/Box/index.tsx +8 -2
- package/src/components/Breadcrumbs/Breadcrumbs.fragment.tsx +19 -1
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +13 -0
- package/src/components/Breadcrumbs/index.tsx +5 -1
- package/src/components/Button/Button.fragment.tsx +28 -6
- package/src/components/Button/Button.module.scss +3 -3
- package/src/components/Button/Button.test.tsx +11 -0
- package/src/components/Button/index.tsx +16 -6
- package/src/components/ButtonGroup/ButtonGroup.fragment.tsx +4 -2
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +10 -0
- package/src/components/ButtonGroup/index.tsx +3 -3
- package/src/components/Card/Card.fragment.tsx +24 -9
- package/src/components/Card/Card.module.scss +8 -8
- package/src/components/Card/Card.test.tsx +4 -5
- package/src/components/Card/index.tsx +8 -38
- package/src/components/Chart/Chart.fragment.tsx +5 -3
- package/src/components/Chart/Chart.module.scss +1 -1
- package/src/components/Chart/index.tsx +12 -10
- package/src/components/Checkbox/Checkbox.fragment.tsx +27 -1
- package/src/components/Checkbox/Checkbox.module.scss +3 -3
- package/src/components/Checkbox/index.tsx +16 -3
- package/src/components/Chip/Chip.fragment.tsx +20 -3
- package/src/components/Chip/Chip.test.tsx +28 -0
- package/src/components/Chip/index.tsx +14 -6
- package/src/components/CodeBlock/CodeBlock.fragment.tsx +3 -1
- package/src/components/CodeBlock/CodeBlock.module.scss +9 -9
- package/src/components/CodeBlock/CodeBlock.test.tsx +21 -0
- package/src/components/CodeBlock/index.tsx +23 -9
- package/src/components/Collapsible/Collapsible.fragment.tsx +1 -1
- package/src/components/Collapsible/Collapsible.module.scss +1 -1
- package/src/components/ColorPicker/ColorPicker.fragment.tsx +1 -1
- package/src/components/Combobox/Combobox.fragment.tsx +63 -9
- package/src/components/Combobox/Combobox.module.scss +4 -7
- package/src/components/Combobox/Combobox.test.tsx +24 -3
- package/src/components/Combobox/index.tsx +117 -34
- package/src/components/Command/Command.fragment.tsx +3 -3
- package/src/components/Command/Command.module.scss +5 -5
- package/src/components/Command/Command.test.tsx +17 -0
- package/src/components/Command/index.tsx +8 -5
- package/src/components/ConversationList/ConversationList.fragment.tsx +4 -3
- package/src/components/ConversationList/ConversationList.module.scss +5 -5
- package/src/components/ConversationList/ConversationList.test.tsx +21 -0
- package/src/components/ConversationList/index.tsx +8 -4
- package/src/components/DataTable/DataTable.fragment.tsx +12 -2
- package/src/components/DataTable/DataTable.module.scss +3 -3
- package/src/components/DataTable/DataTable.test.tsx +23 -2
- package/src/components/DataTable/index.tsx +23 -5
- package/src/components/DatePicker/DatePicker.fragment.tsx +3 -1
- package/src/components/DatePicker/DatePicker.module.scss +1 -1
- package/src/components/DatePicker/DatePicker.test.tsx +17 -0
- package/src/components/DatePicker/index.tsx +9 -2
- package/src/components/Dialog/Dialog.fragment.tsx +28 -1
- package/src/components/Dialog/Dialog.module.scss +6 -6
- package/src/components/Dialog/index.tsx +25 -7
- package/src/components/Drawer/Drawer.fragment.tsx +4 -1
- package/src/components/Drawer/Drawer.module.scss +3 -3
- package/src/components/Drawer/Drawer.test.tsx +8 -0
- package/src/components/Drawer/index.tsx +15 -3
- package/src/components/Editor/Editor.fragment.tsx +10 -3
- package/src/components/Editor/Editor.module.scss +4 -4
- package/src/components/Editor/Editor.test.tsx +68 -1
- package/src/components/Editor/index.tsx +60 -9
- package/src/components/EmptyState/EmptyState.fragment.tsx +3 -1
- package/src/components/EmptyState/EmptyState.module.scss +3 -3
- package/src/components/EmptyState/EmptyState.test.tsx +18 -0
- package/src/components/EmptyState/index.tsx +16 -16
- package/src/components/Field/Field.fragment.tsx +1 -1
- package/src/components/Fieldset/Fieldset.fragment.tsx +3 -1
- package/src/components/Fieldset/Fieldset.test.tsx +14 -0
- package/src/components/Fieldset/index.tsx +3 -4
- package/src/components/Form/Form.fragment.tsx +12 -7
- package/src/components/Form/index.tsx +13 -17
- package/src/components/Grid/Grid.fragment.tsx +4 -3
- package/src/components/Grid/Grid.module.scss +3 -3
- package/src/components/Grid/index.tsx +11 -6
- package/src/components/Header/Header.fragment.tsx +31 -1
- package/src/components/Header/Header.module.scss +6 -6
- package/src/components/Header/Header.test.tsx +95 -1
- package/src/components/Header/index.tsx +95 -46
- package/src/components/Icon/Icon.fragment.tsx +21 -8
- package/src/components/Icon/Icon.test.tsx +27 -3
- package/src/components/Icon/index.tsx +39 -15
- package/src/components/Image/Image.fragment.tsx +15 -1
- package/src/components/Image/Image.test.tsx +32 -1
- package/src/components/Image/index.tsx +24 -4
- package/src/components/Input/Input.fragment.tsx +49 -1
- package/src/components/Input/Input.module.scss +4 -2
- package/src/components/Input/Input.test.tsx +3 -3
- package/src/components/Input/index.tsx +103 -37
- package/src/components/Link/Link.fragment.tsx +7 -6
- package/src/components/Link/Link.test.tsx +17 -1
- package/src/components/Link/index.tsx +22 -0
- package/src/components/List/List.fragment.tsx +1 -1
- package/src/components/Listbox/Listbox.fragment.tsx +3 -3
- package/src/components/Listbox/Listbox.module.scss +4 -4
- package/src/components/Listbox/Listbox.test.tsx +14 -0
- package/src/components/Listbox/index.tsx +12 -2
- package/src/components/Loading/Loading.fragment.tsx +1 -1
- package/src/components/Markdown/Markdown.fragment.tsx +5 -3
- package/src/components/Markdown/Markdown.module.scss +5 -5
- package/src/components/Markdown/Markdown.test.tsx +6 -0
- package/src/components/Markdown/index.tsx +12 -9
- package/src/components/Menu/Menu.fragment.tsx +19 -1
- package/src/components/Menu/Menu.module.scss +11 -11
- package/src/components/Menu/index.tsx +19 -7
- package/src/components/Message/Message.fragment.tsx +1 -1
- package/src/components/Message/Message.module.scss +3 -3
- package/src/components/NavigationMenu/NavigationMenu.fragment.tsx +9 -1
- package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +48 -0
- package/src/components/NavigationMenu/NavigationMenuContext.ts +14 -0
- package/src/components/NavigationMenu/index.tsx +70 -7
- package/src/components/Pagination/Pagination.fragment.tsx +4 -1
- package/src/components/Pagination/Pagination.test.tsx +39 -0
- package/src/components/Pagination/index.tsx +36 -10
- package/src/components/Popover/Popover.fragment.tsx +18 -1
- package/src/components/Popover/Popover.module.scss +13 -13
- package/src/components/Popover/index.tsx +33 -8
- package/src/components/Progress/Progress.fragment.tsx +3 -1
- package/src/components/Progress/Progress.test.tsx +8 -0
- package/src/components/Progress/index.tsx +9 -1
- package/src/components/Prompt/Prompt.fragment.tsx +4 -1
- package/src/components/Prompt/Prompt.module.scss +3 -3
- package/src/components/Prompt/Prompt.test.tsx +19 -0
- package/src/components/Prompt/index.tsx +24 -6
- package/src/components/RadioGroup/RadioGroup.fragment.tsx +31 -1
- package/src/components/RadioGroup/index.tsx +22 -3
- package/src/components/ScrollArea/ScrollArea.fragment.tsx +1 -1
- package/src/components/Select/Select.fragment.tsx +30 -3
- package/src/components/Select/Select.module.scss +3 -3
- package/src/components/Select/index.tsx +46 -33
- package/src/components/Separator/Separator.fragment.tsx +1 -1
- package/src/components/Sidebar/Sidebar.fragment.tsx +3 -1
- package/src/components/Sidebar/Sidebar.module.scss +20 -20
- package/src/components/Sidebar/Sidebar.test.tsx +25 -0
- package/src/components/Sidebar/index.tsx +7 -7
- package/src/components/Skeleton/Skeleton.fragment.tsx +3 -1
- package/src/components/Skeleton/Skeleton.test.tsx +12 -0
- package/src/components/Skeleton/index.tsx +6 -7
- package/src/components/Slider/Slider.fragment.tsx +21 -1
- package/src/components/Slider/Slider.module.scss +31 -0
- package/src/components/Slider/Slider.test.tsx +16 -0
- package/src/components/Slider/index.tsx +40 -1
- package/src/components/Stack/Stack.fragment.tsx +3 -1
- package/src/components/Stack/index.tsx +13 -6
- package/src/components/Table/Table.fragment.tsx +43 -2
- package/src/components/Table/Table.module.scss +2 -2
- package/src/components/Table/index.tsx +23 -5
- package/src/components/TableOfContents/TableOfContents.fragment.tsx +4 -2
- package/src/components/TableOfContents/TableOfContents.test.tsx +34 -9
- package/src/components/TableOfContents/index.tsx +9 -5
- package/src/components/Tabs/Tabs.fragment.tsx +33 -8
- package/src/components/Tabs/Tabs.module.scss +8 -8
- package/src/components/Tabs/index.tsx +22 -14
- package/src/components/Text/Text.fragment.tsx +1 -1
- package/src/components/Textarea/Textarea.fragment.tsx +27 -1
- package/src/components/Textarea/index.tsx +39 -14
- package/src/components/Theme/Theme.fragment.tsx +3 -1
- package/src/components/Theme/Theme.test.tsx +11 -0
- package/src/components/Theme/index.tsx +3 -3
- package/src/components/ThinkingIndicator/ThinkingIndicator.fragment.tsx +1 -1
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +1 -1
- package/src/components/Toast/Toast.fragment.tsx +6 -3
- package/src/components/Toast/Toast.module.scss +8 -6
- package/src/components/Toast/index.tsx +24 -20
- package/src/components/Toggle/Toggle.fragment.tsx +1 -1
- package/src/components/Toggle/Toggle.module.scss +61 -21
- package/src/components/Toggle/index.tsx +3 -3
- package/src/components/ToggleGroup/ToggleGroup.fragment.tsx +33 -8
- package/src/components/ToggleGroup/ToggleGroup.module.scss +3 -3
- package/src/components/ToggleGroup/index.tsx +29 -9
- package/src/components/Tooltip/Tooltip.fragment.tsx +16 -1
- package/src/components/Tooltip/Tooltip.module.scss +1 -1
- package/src/components/Tooltip/index.tsx +16 -1
- package/src/components/VisuallyHidden/VisuallyHidden.fragment.tsx +3 -1
- package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +12 -0
- package/src/components/VisuallyHidden/index.tsx +7 -3
- package/src/index.ts +3 -2
- package/src/tokens/_computed.scss +1 -19
- package/src/tokens/_density.scss +0 -42
- package/src/tokens/_mixins.scss +4 -0
- package/src/tokens/_variables.scss +12 -114
|
@@ -67,6 +67,21 @@ export type EditorMode = 'rich' | 'markdown';
|
|
|
67
67
|
|
|
68
68
|
export type EditorSize = 'sm' | 'md' | 'lg';
|
|
69
69
|
|
|
70
|
+
export interface EditorToolbarIconRenderState {
|
|
71
|
+
format: EditorFormat;
|
|
72
|
+
active: boolean;
|
|
73
|
+
disabled: boolean;
|
|
74
|
+
readOnly: boolean;
|
|
75
|
+
isDisabled: boolean;
|
|
76
|
+
mode: EditorMode;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export type EditorToolbarIconSlot =
|
|
80
|
+
| React.ReactNode
|
|
81
|
+
| ((state: EditorToolbarIconRenderState) => React.ReactNode);
|
|
82
|
+
|
|
83
|
+
export type EditorToolbarIcons = Partial<Record<EditorFormat, EditorToolbarIconSlot>>;
|
|
84
|
+
|
|
70
85
|
export interface EditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
71
86
|
children?: React.ReactNode;
|
|
72
87
|
/** Controlled value */
|
|
@@ -87,14 +102,16 @@ export interface EditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
87
102
|
toolbar?: boolean;
|
|
88
103
|
/** Show default status bar */
|
|
89
104
|
statusBar?: boolean;
|
|
90
|
-
/** Auto-save callback */
|
|
91
|
-
onAutoSave?: (value: string) => void
|
|
105
|
+
/** Auto-save callback (sync or async) */
|
|
106
|
+
onAutoSave?: (value: string) => void | Promise<void>;
|
|
92
107
|
/** Auto-save interval in ms */
|
|
93
108
|
autoSaveInterval?: number;
|
|
94
109
|
/** Editor size preset */
|
|
95
110
|
size?: EditorSize;
|
|
96
111
|
/** Maximum character count (shows indicator in status bar) */
|
|
97
112
|
maxLength?: number;
|
|
113
|
+
/** Custom toolbar icons keyed by format/action, for any icon package */
|
|
114
|
+
toolbarIcons?: EditorToolbarIcons;
|
|
98
115
|
}
|
|
99
116
|
|
|
100
117
|
export interface EditorToolbarProps {
|
|
@@ -304,6 +321,7 @@ interface EditorContextValue {
|
|
|
304
321
|
mode: EditorMode;
|
|
305
322
|
size: EditorSize;
|
|
306
323
|
maxLength?: number;
|
|
324
|
+
toolbarIcons?: EditorToolbarIcons;
|
|
307
325
|
wordCount: number;
|
|
308
326
|
charCount: number;
|
|
309
327
|
toggleFormat: (f: EditorFormat) => void;
|
|
@@ -373,6 +391,7 @@ function EditorRoot({
|
|
|
373
391
|
autoSaveInterval = 30000,
|
|
374
392
|
size = 'md',
|
|
375
393
|
maxLength,
|
|
394
|
+
toolbarIcons,
|
|
376
395
|
className,
|
|
377
396
|
...htmlProps
|
|
378
397
|
}: EditorProps) {
|
|
@@ -418,7 +437,7 @@ function EditorRoot({
|
|
|
418
437
|
'aria-multiline': 'true',
|
|
419
438
|
},
|
|
420
439
|
},
|
|
421
|
-
content:
|
|
440
|
+
content: controlledValue !== undefined ? controlledValue : defaultValue,
|
|
422
441
|
editable: !disabled && !readOnly,
|
|
423
442
|
onUpdate: ({ editor: e }: { editor: { getHTML: () => string } }) => {
|
|
424
443
|
const html = e.getHTML();
|
|
@@ -448,17 +467,32 @@ function EditorRoot({
|
|
|
448
467
|
React.useEffect(() => {
|
|
449
468
|
if (!onAutoSave || !value) return;
|
|
450
469
|
|
|
470
|
+
let cancelled = false;
|
|
451
471
|
const timer = setTimeout(() => {
|
|
452
472
|
setSaveStatus('saving');
|
|
453
473
|
try {
|
|
454
|
-
onAutoSave(value)
|
|
455
|
-
|
|
474
|
+
Promise.resolve(onAutoSave(value))
|
|
475
|
+
.then(() => {
|
|
476
|
+
if (!cancelled) {
|
|
477
|
+
setSaveStatus('saved');
|
|
478
|
+
}
|
|
479
|
+
})
|
|
480
|
+
.catch(() => {
|
|
481
|
+
if (!cancelled) {
|
|
482
|
+
setSaveStatus('error');
|
|
483
|
+
}
|
|
484
|
+
});
|
|
456
485
|
} catch {
|
|
457
|
-
|
|
486
|
+
if (!cancelled) {
|
|
487
|
+
setSaveStatus('error');
|
|
488
|
+
}
|
|
458
489
|
}
|
|
459
490
|
}, autoSaveInterval);
|
|
460
491
|
|
|
461
|
-
return () =>
|
|
492
|
+
return () => {
|
|
493
|
+
cancelled = true;
|
|
494
|
+
clearTimeout(timer);
|
|
495
|
+
};
|
|
462
496
|
}, [value, onAutoSave, autoSaveInterval]);
|
|
463
497
|
|
|
464
498
|
const toggleFormat = React.useCallback(
|
|
@@ -585,6 +619,7 @@ function EditorRoot({
|
|
|
585
619
|
mode,
|
|
586
620
|
size,
|
|
587
621
|
maxLength,
|
|
622
|
+
toolbarIcons,
|
|
588
623
|
wordCount,
|
|
589
624
|
charCount,
|
|
590
625
|
toggleFormat,
|
|
@@ -652,7 +687,7 @@ function EditorToolbarGroup({ children, 'aria-label': ariaLabel, className }: Ed
|
|
|
652
687
|
}
|
|
653
688
|
|
|
654
689
|
function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
|
|
655
|
-
const { toggleFormat, isFormatActive, disabled, readOnly, editor, mode } = useEditorContext();
|
|
690
|
+
const { toggleFormat, isFormatActive, disabled, readOnly, editor, mode, toolbarIcons } = useEditorContext();
|
|
656
691
|
const meta = FORMAT_META[format];
|
|
657
692
|
const isAction = ACTION_FORMATS.has(format);
|
|
658
693
|
const active = isAction ? false : isFormatActive(format);
|
|
@@ -669,6 +704,20 @@ function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
|
|
|
669
704
|
}
|
|
670
705
|
}
|
|
671
706
|
|
|
707
|
+
const iconState: EditorToolbarIconRenderState = {
|
|
708
|
+
format,
|
|
709
|
+
active,
|
|
710
|
+
disabled,
|
|
711
|
+
readOnly,
|
|
712
|
+
isDisabled,
|
|
713
|
+
mode,
|
|
714
|
+
};
|
|
715
|
+
|
|
716
|
+
const iconOverride = toolbarIcons?.[format];
|
|
717
|
+
const renderedOverride = typeof iconOverride === 'function'
|
|
718
|
+
? iconOverride(iconState)
|
|
719
|
+
: iconOverride;
|
|
720
|
+
|
|
672
721
|
const classes = [
|
|
673
722
|
styles.toolbarButton,
|
|
674
723
|
active && styles.toolbarButtonActive,
|
|
@@ -685,7 +734,9 @@ function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
|
|
|
685
734
|
title={`${meta.label} (${meta.shortcut})`}
|
|
686
735
|
{...(isAction ? {} : { 'aria-pressed': active })}
|
|
687
736
|
>
|
|
688
|
-
|
|
737
|
+
{iconOverride !== undefined
|
|
738
|
+
? renderedOverride
|
|
739
|
+
: <IconComponent size={16} weight={active ? 'bold' : 'regular'} />}
|
|
689
740
|
</button>
|
|
690
741
|
);
|
|
691
742
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
3
|
import { EmptyState } from '.';
|
|
4
4
|
import { Button } from '../Button';
|
|
5
5
|
|
|
@@ -83,6 +83,7 @@ export default defineFragment({
|
|
|
83
83
|
'Provide a clear action to resolve the empty state',
|
|
84
84
|
'Use appropriate icons to reinforce the message',
|
|
85
85
|
'Keep messaging positive and actionable',
|
|
86
|
+
'EmptyState compound sub-components forward DOM props for ids, aria attributes, and handlers',
|
|
86
87
|
],
|
|
87
88
|
accessibility: [
|
|
88
89
|
'Empty state content is accessible to screen readers',
|
|
@@ -112,6 +113,7 @@ export default defineFragment({
|
|
|
112
113
|
propsSummary: [
|
|
113
114
|
'size: sm|md|lg (default: md)',
|
|
114
115
|
'Sub-components: EmptyState.Icon, EmptyState.Title, EmptyState.Description, EmptyState.Actions',
|
|
116
|
+
'Compound sub-components forward DOM props to their rendered elements',
|
|
115
117
|
],
|
|
116
118
|
scenarioTags: [
|
|
117
119
|
'feedback.empty',
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
// Size variants
|
|
15
15
|
.sm {
|
|
16
|
-
padding: var(--fui-
|
|
16
|
+
padding: var(--fui-space-6) var(--fui-space-4);
|
|
17
17
|
|
|
18
18
|
.title {
|
|
19
19
|
font-size: var(--fui-font-size-sm, $fui-font-size-sm);
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.md {
|
|
37
|
-
padding: var(--fui-space-10, $fui-space-10) var(--fui-
|
|
37
|
+
padding: var(--fui-space-10, $fui-space-10) var(--fui-space-6);
|
|
38
38
|
|
|
39
39
|
.title {
|
|
40
40
|
font-size: var(--fui-font-size-base, $fui-font-size-base);
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.lg {
|
|
58
|
-
padding: var(--fui-space-12, $fui-space-12) var(--fui-
|
|
58
|
+
padding: var(--fui-space-12, $fui-space-12) var(--fui-space-8);
|
|
59
59
|
|
|
60
60
|
.title {
|
|
61
61
|
font-size: var(--fui-font-size-lg, $fui-font-size-lg);
|
|
@@ -64,4 +64,22 @@ describe('EmptyState', () => {
|
|
|
64
64
|
);
|
|
65
65
|
await expectNoA11yViolations(container);
|
|
66
66
|
});
|
|
67
|
+
|
|
68
|
+
it('forwards DOM props on compound sub-components', () => {
|
|
69
|
+
render(
|
|
70
|
+
<EmptyState>
|
|
71
|
+
<EmptyState.Icon data-testid="icon" title="placeholder">ICON</EmptyState.Icon>
|
|
72
|
+
<EmptyState.Title data-testid="title" id="empty-title">Empty</EmptyState.Title>
|
|
73
|
+
<EmptyState.Description data-testid="desc" aria-live="polite">Nothing here</EmptyState.Description>
|
|
74
|
+
<EmptyState.Actions data-testid="actions" role="group">
|
|
75
|
+
<button>Add</button>
|
|
76
|
+
</EmptyState.Actions>
|
|
77
|
+
</EmptyState>
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
expect(screen.getByTestId('icon')).toHaveAttribute('title', 'placeholder');
|
|
81
|
+
expect(screen.getByTestId('title')).toHaveAttribute('id', 'empty-title');
|
|
82
|
+
expect(screen.getByTestId('desc')).toHaveAttribute('aria-live', 'polite');
|
|
83
|
+
expect(screen.getByTestId('actions')).toHaveAttribute('role', 'group');
|
|
84
|
+
});
|
|
67
85
|
});
|
|
@@ -12,24 +12,20 @@ export interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
12
12
|
size?: 'sm' | 'md' | 'lg';
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export interface EmptyStateIconProps {
|
|
15
|
+
export interface EmptyStateIconProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
16
16
|
children: React.ReactNode;
|
|
17
|
-
className?: string;
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
export interface EmptyStateTitleProps {
|
|
19
|
+
export interface EmptyStateTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
21
20
|
children: React.ReactNode;
|
|
22
|
-
className?: string;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
export interface EmptyStateDescriptionProps {
|
|
23
|
+
export interface EmptyStateDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
26
24
|
children: React.ReactNode;
|
|
27
|
-
className?: string;
|
|
28
25
|
}
|
|
29
26
|
|
|
30
|
-
export interface EmptyStateActionsProps {
|
|
27
|
+
export interface EmptyStateActionsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
31
28
|
children: React.ReactNode;
|
|
32
|
-
className?: string;
|
|
33
29
|
}
|
|
34
30
|
|
|
35
31
|
// ============================================
|
|
@@ -73,24 +69,28 @@ function EmptyStateRoot({
|
|
|
73
69
|
);
|
|
74
70
|
}
|
|
75
71
|
|
|
76
|
-
function EmptyStateIcon({ children, className }: EmptyStateIconProps) {
|
|
72
|
+
function EmptyStateIcon({ children, className, ...htmlProps }: EmptyStateIconProps) {
|
|
77
73
|
const classes = [styles.icon, className].filter(Boolean).join(' ');
|
|
78
|
-
return <div className={classes}>{children}</div>;
|
|
74
|
+
return <div {...htmlProps} className={classes}>{children}</div>;
|
|
79
75
|
}
|
|
80
76
|
|
|
81
|
-
function EmptyStateTitle({ children, className }: EmptyStateTitleProps) {
|
|
77
|
+
function EmptyStateTitle({ children, className, ...htmlProps }: EmptyStateTitleProps) {
|
|
82
78
|
const classes = [styles.title, className].filter(Boolean).join(' ');
|
|
83
|
-
return <h3 className={classes}>{children}</h3>;
|
|
79
|
+
return <h3 {...htmlProps} className={classes}>{children}</h3>;
|
|
84
80
|
}
|
|
85
81
|
|
|
86
|
-
function EmptyStateDescription({
|
|
82
|
+
function EmptyStateDescription({
|
|
83
|
+
children,
|
|
84
|
+
className,
|
|
85
|
+
...htmlProps
|
|
86
|
+
}: EmptyStateDescriptionProps) {
|
|
87
87
|
const classes = [styles.description, className].filter(Boolean).join(' ');
|
|
88
|
-
return <p className={classes}>{children}</p>;
|
|
88
|
+
return <p {...htmlProps} className={classes}>{children}</p>;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
function EmptyStateActions({ children, className }: EmptyStateActionsProps) {
|
|
91
|
+
function EmptyStateActions({ children, className, ...htmlProps }: EmptyStateActionsProps) {
|
|
92
92
|
const classes = [styles.actions, className].filter(Boolean).join(' ');
|
|
93
|
-
return <div className={classes}>{children}</div>;
|
|
93
|
+
return <div {...htmlProps} className={classes}>{children}</div>;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
// ============================================
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
3
|
import { Fieldset } from '.';
|
|
4
4
|
import { Field } from '../Field';
|
|
5
5
|
import { Input } from '../Input';
|
|
@@ -34,6 +34,7 @@ export default defineFragment({
|
|
|
34
34
|
'Always include a Fieldset.Legend for accessibility',
|
|
35
35
|
'Use disabled prop to disable all fields within the group',
|
|
36
36
|
'Use Grid inside Fieldset for multi-column layouts',
|
|
37
|
+
'Fieldset.Legend forwards DOM props for ids, aria attributes, and custom data hooks',
|
|
37
38
|
],
|
|
38
39
|
accessibility: [
|
|
39
40
|
'Renders semantic fieldset element',
|
|
@@ -64,6 +65,7 @@ export default defineFragment({
|
|
|
64
65
|
propsSummary: [
|
|
65
66
|
'disabled: boolean - disables all child fields',
|
|
66
67
|
'Fieldset.Legend: accessible group label',
|
|
68
|
+
'Fieldset.Legend forwards DOM props',
|
|
67
69
|
],
|
|
68
70
|
scenarioTags: ['form.group', 'form.fieldset'],
|
|
69
71
|
a11yRules: ['A11Y_FIELDSET_LEGEND'],
|
|
@@ -45,4 +45,18 @@ describe('Fieldset', () => {
|
|
|
45
45
|
);
|
|
46
46
|
await expectNoA11yViolations(container);
|
|
47
47
|
});
|
|
48
|
+
|
|
49
|
+
it('forwards DOM props to Fieldset.Legend', () => {
|
|
50
|
+
render(
|
|
51
|
+
<Fieldset>
|
|
52
|
+
<Fieldset.Legend data-testid="legend" id="legend-id" aria-live="polite">
|
|
53
|
+
Accessible legend
|
|
54
|
+
</Fieldset.Legend>
|
|
55
|
+
</Fieldset>
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const legend = screen.getByTestId('legend');
|
|
59
|
+
expect(legend).toHaveAttribute('id', 'legend-id');
|
|
60
|
+
expect(legend).toHaveAttribute('aria-live', 'polite');
|
|
61
|
+
});
|
|
48
62
|
});
|
|
@@ -13,9 +13,8 @@ export interface FieldsetProps extends React.HTMLAttributes<HTMLFieldSetElement>
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export interface FieldsetLegendProps {
|
|
16
|
+
export interface FieldsetLegendProps extends React.HTMLAttributes<HTMLElement> {
|
|
17
17
|
children: React.ReactNode;
|
|
18
|
-
className?: string;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
// ============================================
|
|
@@ -32,9 +31,9 @@ function FieldsetRoot({ children, disabled, className, ...htmlProps }: FieldsetP
|
|
|
32
31
|
);
|
|
33
32
|
}
|
|
34
33
|
|
|
35
|
-
function FieldsetLegend({ children, className }: FieldsetLegendProps) {
|
|
34
|
+
function FieldsetLegend({ children, className, ...htmlProps }: FieldsetLegendProps) {
|
|
36
35
|
const classes = [styles.legend, className].filter(Boolean).join(' ');
|
|
37
|
-
return <BaseFieldset.Legend className={classes}>{children}</BaseFieldset.Legend>;
|
|
36
|
+
return <BaseFieldset.Legend {...htmlProps} className={classes}>{children}</BaseFieldset.Legend>;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
// ============================================
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
3
|
import { Form } from '.';
|
|
4
4
|
import { Field } from '../Field';
|
|
5
5
|
import { Fieldset } from '../Fieldset';
|
|
@@ -37,7 +37,7 @@ export default defineFragment({
|
|
|
37
37
|
guidelines: [
|
|
38
38
|
'Pass errors as Record<string, string | string[]> keyed by field name',
|
|
39
39
|
'Use onClearErrors to clear errors when fields are modified',
|
|
40
|
-
'Use
|
|
40
|
+
'Use onSubmit for form submission handling (onFormSubmit is deprecated alias)',
|
|
41
41
|
'Field components with matching name prop display errors automatically',
|
|
42
42
|
'Use Grid inside Form or Fieldset for multi-column layouts',
|
|
43
43
|
],
|
|
@@ -57,9 +57,13 @@ export default defineFragment({
|
|
|
57
57
|
type: 'object',
|
|
58
58
|
description: 'Server-side errors keyed by field name',
|
|
59
59
|
},
|
|
60
|
+
onSubmit: {
|
|
61
|
+
type: 'function',
|
|
62
|
+
description: 'Form submission handler (preferred)',
|
|
63
|
+
},
|
|
60
64
|
onFormSubmit: {
|
|
61
65
|
type: 'function',
|
|
62
|
-
description: '
|
|
66
|
+
description: 'Deprecated alias for onSubmit',
|
|
63
67
|
},
|
|
64
68
|
onClearErrors: {
|
|
65
69
|
type: 'function',
|
|
@@ -81,7 +85,8 @@ export default defineFragment({
|
|
|
81
85
|
contract: {
|
|
82
86
|
propsSummary: [
|
|
83
87
|
'errors: Record<string, string | string[]> - server errors by field name',
|
|
84
|
-
'
|
|
88
|
+
'onSubmit: (event) => void - submission handler (preferred)',
|
|
89
|
+
'onFormSubmit: (event) => void - deprecated alias for onSubmit',
|
|
85
90
|
'onClearErrors: (name) => void - clear errors callback',
|
|
86
91
|
],
|
|
87
92
|
scenarioTags: ['form.submit', 'form.validation', 'form.server'],
|
|
@@ -93,7 +98,7 @@ export default defineFragment({
|
|
|
93
98
|
name: 'Sign up',
|
|
94
99
|
description: 'Registration form with two-column name fields',
|
|
95
100
|
render: () => (
|
|
96
|
-
<Form
|
|
101
|
+
<Form onSubmit={(e) => { e.preventDefault(); }}>
|
|
97
102
|
<Grid columns={2} gap="md">
|
|
98
103
|
<Field name="firstName">
|
|
99
104
|
<Field.Label>First Name</Field.Label>
|
|
@@ -143,7 +148,7 @@ export default defineFragment({
|
|
|
143
148
|
name: 'Profile settings',
|
|
144
149
|
description: 'Multi-section form with Fieldsets, switches, and radio group',
|
|
145
150
|
render: () => (
|
|
146
|
-
<Form
|
|
151
|
+
<Form onSubmit={(e) => { e.preventDefault(); }}>
|
|
147
152
|
<Fieldset>
|
|
148
153
|
<Fieldset.Legend>Profile</Fieldset.Legend>
|
|
149
154
|
<Grid columns={2} gap="md">
|
|
@@ -209,7 +214,7 @@ export default defineFragment({
|
|
|
209
214
|
name: 'Contact form',
|
|
210
215
|
description: 'Contact form with select, textarea, and checkbox',
|
|
211
216
|
render: () => (
|
|
212
|
-
<Form
|
|
217
|
+
<Form onSubmit={(e) => { e.preventDefault(); }}>
|
|
213
218
|
<Grid columns={2} gap="md">
|
|
214
219
|
<Field name="name">
|
|
215
220
|
<Field.Label>Name</Field.Label>
|
|
@@ -8,9 +8,12 @@ import styles from './Form.module.scss';
|
|
|
8
8
|
// Types
|
|
9
9
|
// ============================================
|
|
10
10
|
|
|
11
|
-
export interface FormProps extends Omit<React.
|
|
11
|
+
export interface FormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit'> {
|
|
12
12
|
children: React.ReactNode;
|
|
13
13
|
errors?: Record<string, string | string[]>;
|
|
14
|
+
/** Standard form submit handler */
|
|
15
|
+
onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
16
|
+
/** @deprecated Use onSubmit */
|
|
14
17
|
onFormSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
15
18
|
onClearErrors?: (name: string) => void;
|
|
16
19
|
validationMode?: 'onSubmit' | 'onBlur' | 'onChange';
|
|
@@ -23,6 +26,7 @@ export interface FormProps extends Omit<React.HTMLAttributes<HTMLFormElement>, '
|
|
|
23
26
|
function FormRoot({
|
|
24
27
|
children,
|
|
25
28
|
errors,
|
|
29
|
+
onSubmit,
|
|
26
30
|
onFormSubmit,
|
|
27
31
|
onClearErrors,
|
|
28
32
|
validationMode,
|
|
@@ -30,24 +34,16 @@ function FormRoot({
|
|
|
30
34
|
...htmlProps
|
|
31
35
|
}: FormProps) {
|
|
32
36
|
const classes = [styles.root, className].filter(Boolean).join(' ');
|
|
33
|
-
|
|
34
|
-
const baseProps: Record<string, unknown> = {
|
|
35
|
-
...htmlProps,
|
|
36
|
-
errors,
|
|
37
|
-
validationMode,
|
|
38
|
-
className: classes,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
if (onFormSubmit) {
|
|
42
|
-
baseProps.onSubmit = onFormSubmit;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (onClearErrors) {
|
|
46
|
-
baseProps.onClearErrors = onClearErrors;
|
|
47
|
-
}
|
|
37
|
+
const submitHandler = onSubmit ?? onFormSubmit;
|
|
48
38
|
|
|
49
39
|
return (
|
|
50
|
-
<BaseForm
|
|
40
|
+
<BaseForm
|
|
41
|
+
{...htmlProps}
|
|
42
|
+
errors={errors}
|
|
43
|
+
validationMode={validationMode}
|
|
44
|
+
onSubmit={submitHandler}
|
|
45
|
+
className={classes}
|
|
46
|
+
>
|
|
51
47
|
{children}
|
|
52
48
|
</BaseForm>
|
|
53
49
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
3
|
import { Grid } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -31,6 +31,7 @@ export default defineFragment({
|
|
|
31
31
|
'Use fixed column counts when exact column control is needed and responsiveness is not required',
|
|
32
32
|
'Use Grid.Item with colSpan to create asymmetric layouts within a fixed grid',
|
|
33
33
|
'Keep gap consistent within a context — md is the default and works for most cases',
|
|
34
|
+
'Pass DOM attributes (id, role, aria-*, data-*, event handlers) directly to Grid and Grid.Item roots when needed',
|
|
34
35
|
],
|
|
35
36
|
accessibility: [
|
|
36
37
|
'Grid is purely visual — it does not affect reading order or semantics',
|
|
@@ -60,9 +61,8 @@ export default defineFragment({
|
|
|
60
61
|
gap: {
|
|
61
62
|
type: 'union',
|
|
62
63
|
values: ['none', 'xs', 'sm', 'md', 'lg', 'xl'],
|
|
63
|
-
description: 'Gap between items. Accepts string tokens or numbers (1-8) mapping to the spacing scale',
|
|
64
64
|
default: 'md',
|
|
65
|
-
description: 'Gap between grid items
|
|
65
|
+
description: 'Gap between grid items. Accepts string tokens or numbers (1-8) mapped to the spacing scale',
|
|
66
66
|
},
|
|
67
67
|
alignItems: {
|
|
68
68
|
type: 'enum',
|
|
@@ -103,6 +103,7 @@ export default defineFragment({
|
|
|
103
103
|
'alignItems: start|center|end|stretch — vertical alignment',
|
|
104
104
|
'justifyItems: start|center|end|stretch — horizontal alignment',
|
|
105
105
|
'padding: none|sm|md|lg (default: none)',
|
|
106
|
+
'Pass-through DOM props supported on Grid and Grid.Item roots (id, role, aria-*, data-*, handlers)',
|
|
106
107
|
],
|
|
107
108
|
scenarioTags: [
|
|
108
109
|
'layout.grid',
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
// ============================================
|
|
83
83
|
|
|
84
84
|
.paddingNone { padding: 0; }
|
|
85
|
-
.paddingSm { padding: var(--fui-
|
|
86
|
-
.paddingMd { padding: var(--fui-
|
|
87
|
-
.paddingLg { padding: var(--fui-
|
|
85
|
+
.paddingSm { padding: var(--fui-space-3); }
|
|
86
|
+
.paddingMd { padding: var(--fui-space-4); }
|
|
87
|
+
.paddingLg { padding: var(--fui-space-6); }
|
|
88
88
|
|
|
89
89
|
// ============================================
|
|
90
90
|
// Align items (cross-axis within cells)
|
|
@@ -6,6 +6,7 @@ import styles from './Grid.module.scss';
|
|
|
6
6
|
// ============================================
|
|
7
7
|
|
|
8
8
|
type ColumnCount = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
9
|
+
type GapScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
9
10
|
|
|
10
11
|
/** Responsive value — either a single value or per-breakpoint overrides */
|
|
11
12
|
export interface ResponsiveColumns {
|
|
@@ -25,7 +26,7 @@ export interface ResponsiveColumns {
|
|
|
25
26
|
* CSS Grid layout component with responsive columns.
|
|
26
27
|
* @see https://usefragments.com/components/grid
|
|
27
28
|
*/
|
|
28
|
-
export interface GridProps {
|
|
29
|
+
export interface GridProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'style' | 'className'> {
|
|
29
30
|
children?: React.ReactNode;
|
|
30
31
|
/**
|
|
31
32
|
* Number of columns.
|
|
@@ -37,7 +38,7 @@ export interface GridProps {
|
|
|
37
38
|
/** Minimum width for auto-fill columns (only used with columns="auto") */
|
|
38
39
|
minChildWidth?: string;
|
|
39
40
|
/** Gap between grid items. Accepts string tokens or numbers (1-8) mapping to the spacing scale */
|
|
40
|
-
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' |
|
|
41
|
+
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | GapScale;
|
|
41
42
|
/** Vertical alignment of items within their cells */
|
|
42
43
|
alignItems?: 'start' | 'center' | 'end' | 'stretch';
|
|
43
44
|
/** Horizontal alignment of items within their cells */
|
|
@@ -50,7 +51,7 @@ export interface GridProps {
|
|
|
50
51
|
style?: React.CSSProperties;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
export interface GridItemProps {
|
|
54
|
+
export interface GridItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'> {
|
|
54
55
|
children?: React.ReactNode;
|
|
55
56
|
/** Number of columns this item spans */
|
|
56
57
|
colSpan?: ColumnCount | 'full';
|
|
@@ -60,6 +61,7 @@ export interface GridItemProps {
|
|
|
60
61
|
alignSelf?: 'start' | 'center' | 'end' | 'stretch';
|
|
61
62
|
/** Additional class name */
|
|
62
63
|
className?: string;
|
|
64
|
+
style?: React.CSSProperties;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
// ============================================
|
|
@@ -72,7 +74,7 @@ function isResponsiveColumns(
|
|
|
72
74
|
return typeof columns === 'object' && columns !== null;
|
|
73
75
|
}
|
|
74
76
|
|
|
75
|
-
const gapClasses: Record<NonNullable<GridProps['gap']>, string> = {
|
|
77
|
+
const gapClasses: Record<Exclude<NonNullable<GridProps['gap']>, GapScale>, string> = {
|
|
76
78
|
none: styles.gapNone,
|
|
77
79
|
xs: styles.gapXs,
|
|
78
80
|
sm: styles.gapSm,
|
|
@@ -104,6 +106,7 @@ export const Grid = React.forwardRef<HTMLDivElement, GridProps>(
|
|
|
104
106
|
padding = 'none',
|
|
105
107
|
className,
|
|
106
108
|
style,
|
|
109
|
+
...htmlProps
|
|
107
110
|
},
|
|
108
111
|
ref
|
|
109
112
|
) {
|
|
@@ -149,7 +152,7 @@ export const Grid = React.forwardRef<HTMLDivElement, GridProps>(
|
|
|
149
152
|
const mergedStyle = inlineStyle ? { ...inlineStyle, ...style } : style;
|
|
150
153
|
|
|
151
154
|
return (
|
|
152
|
-
<div ref={ref} className={classes} style={mergedStyle}>
|
|
155
|
+
<div {...htmlProps} ref={ref} className={classes} style={mergedStyle}>
|
|
153
156
|
{children}
|
|
154
157
|
</div>
|
|
155
158
|
);
|
|
@@ -168,6 +171,8 @@ const GridItem = React.forwardRef<HTMLDivElement, GridItemProps>(
|
|
|
168
171
|
rowSpan,
|
|
169
172
|
alignSelf,
|
|
170
173
|
className,
|
|
174
|
+
style,
|
|
175
|
+
...htmlProps
|
|
171
176
|
},
|
|
172
177
|
ref
|
|
173
178
|
) {
|
|
@@ -182,7 +187,7 @@ const GridItem = React.forwardRef<HTMLDivElement, GridItemProps>(
|
|
|
182
187
|
.join(' ');
|
|
183
188
|
|
|
184
189
|
return (
|
|
185
|
-
<div ref={ref} className={classes}>
|
|
190
|
+
<div {...htmlProps} ref={ref} className={classes} style={style}>
|
|
186
191
|
{children}
|
|
187
192
|
</div>
|
|
188
193
|
);
|