@fragments-sdk/ui 0.12.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 +17 -6
- package/dist/components/Accordion/index.cjs.map +1 -1
- package/dist/components/Accordion/index.d.ts +25 -12
- package/dist/components/Accordion/index.d.ts.map +1 -1
- package/dist/components/Accordion/index.js +17 -6
- 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/Collapsible/index.cjs +45 -10
- package/dist/components/Collapsible/index.cjs.map +1 -1
- package/dist/components/Collapsible/index.d.ts +6 -12
- package/dist/components/Collapsible/index.d.ts.map +1 -1
- package/dist/components/Collapsible/index.js +45 -10
- package/dist/components/Collapsible/index.js.map +1 -1
- 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 +86 -27
- package/dist/components/Combobox/index.cjs.map +1 -1
- package/dist/components/Combobox/index.d.ts +40 -23
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +86 -27
- 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 +55 -22
- package/dist/components/Command/index.cjs.map +1 -1
- package/dist/components/Command/index.d.ts +3 -3
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +55 -22
- 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 +25 -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 +25 -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 +4 -5
- 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 +14 -10
- package/dist/components/Dialog/index.cjs.map +1 -1
- package/dist/components/Dialog/index.d.ts +26 -17
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +14 -10
- 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 +41 -11
- package/dist/components/Drawer/index.cjs.map +1 -1
- package/dist/components/Drawer/index.d.ts +11 -13
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +24 -11
- 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 +41 -16
- package/dist/components/Menu/index.cjs.map +1 -1
- package/dist/components/Menu/index.d.ts +24 -27
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +41 -16
- 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 +9 -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 +92 -21
- 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 +92 -21
- package/dist/components/NavigationMenu/index.js.map +1 -1
- package/dist/components/NavigationMenu/useNavigationMenu.cjs +2 -0
- package/dist/components/NavigationMenu/useNavigationMenu.cjs.map +1 -1
- package/dist/components/NavigationMenu/useNavigationMenu.d.ts +1 -0
- package/dist/components/NavigationMenu/useNavigationMenu.d.ts.map +1 -1
- package/dist/components/NavigationMenu/useNavigationMenu.js +2 -0
- package/dist/components/NavigationMenu/useNavigationMenu.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 +52 -10
- package/dist/components/Popover/index.cjs.map +1 -1
- package/dist/components/Popover/index.d.ts +22 -16
- package/dist/components/Popover/index.d.ts.map +1 -1
- package/dist/components/Popover/index.js +35 -10
- 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 +43 -29
- package/dist/components/Select/index.cjs.map +1 -1
- package/dist/components/Select/index.d.ts +12 -11
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +43 -29
- 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 +73 -26
- package/dist/components/Sidebar/index.cjs.map +1 -1
- package/dist/components/Sidebar/index.d.ts +23 -35
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +73 -26
- 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 +32 -10
- 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 +32 -10
- 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 +32 -11
- package/dist/datepicker.cjs.map +1 -1
- package/dist/datepicker.js +32 -11
- 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 +41 -5
- package/src/components/Accordion/index.tsx +41 -14
- 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/Collapsible/Collapsible.test.tsx +41 -0
- package/src/components/Collapsible/index.tsx +53 -16
- 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 +79 -3
- package/src/components/Combobox/index.tsx +140 -51
- 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 +110 -0
- package/src/components/Command/index.tsx +66 -20
- 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 +34 -4
- package/src/components/DataTable/index.tsx +44 -6
- 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 +96 -0
- package/src/components/DatePicker/index.tsx +38 -16
- package/src/components/Dialog/Dialog.fragment.tsx +28 -1
- package/src/components/Dialog/Dialog.module.scss +6 -6
- package/src/components/Dialog/Dialog.test.tsx +23 -0
- package/src/components/Dialog/index.tsx +38 -21
- 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 +35 -0
- package/src/components/Drawer/index.tsx +29 -18
- 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 +50 -33
- 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 +10 -2
- package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +88 -4
- package/src/components/NavigationMenu/NavigationMenuContext.ts +17 -0
- package/src/components/NavigationMenu/index.tsx +119 -20
- package/src/components/NavigationMenu/useNavigationMenu.ts +4 -0
- 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/Popover.test.tsx +23 -0
- package/src/components/Popover/index.tsx +44 -22
- 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/Select.test.tsx +41 -0
- package/src/components/Select/index.tsx +55 -44
- 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 +108 -4
- package/src/components/Sidebar/index.tsx +93 -51
- 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/Tooltip.test.tsx +17 -0
- package/src/components/Tooltip/index.tsx +60 -31
- 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
|
@@ -11,7 +11,7 @@ import styles from './Card.module.scss';
|
|
|
11
11
|
* Card container for grouping related content.
|
|
12
12
|
* @see https://usefragments.com/components/card
|
|
13
13
|
*/
|
|
14
|
-
export interface CardProps extends Omit<React.HTMLAttributes<
|
|
14
|
+
export interface CardProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
/** Visual style variant. `"outline"` is an alias for `"outlined"`.
|
|
17
17
|
* @default "default"
|
|
@@ -20,8 +20,9 @@ export interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'o
|
|
|
20
20
|
/** Inner padding.
|
|
21
21
|
* @default "md" */
|
|
22
22
|
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/** Root element tag.
|
|
24
|
+
* @default "article" */
|
|
25
|
+
as?: 'article' | 'div' | 'section';
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
@@ -56,14 +57,6 @@ interface CardContextValue {
|
|
|
56
57
|
|
|
57
58
|
const CardContext = React.createContext<CardContextValue | null>(null);
|
|
58
59
|
|
|
59
|
-
function useCardContext() {
|
|
60
|
-
const context = React.useContext(CardContext);
|
|
61
|
-
if (!context) {
|
|
62
|
-
throw new Error('Card compound components must be used within a Card');
|
|
63
|
-
}
|
|
64
|
-
return context;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
60
|
// ============================================
|
|
68
61
|
// Padding Map
|
|
69
62
|
// ============================================
|
|
@@ -83,17 +76,15 @@ function CardRoot({
|
|
|
83
76
|
children,
|
|
84
77
|
variant: variantProp = 'default',
|
|
85
78
|
padding = 'md',
|
|
86
|
-
|
|
79
|
+
as: Component = 'article',
|
|
87
80
|
className,
|
|
88
81
|
style,
|
|
89
|
-
'aria-label': ariaLabel,
|
|
90
|
-
'aria-describedby': ariaDescribedBy,
|
|
91
82
|
...htmlProps
|
|
92
83
|
}: CardProps) {
|
|
93
84
|
// Resolve alias: "outline" → "outlined"
|
|
94
85
|
const variant = variantProp === 'outline' ? 'outlined' : variantProp;
|
|
95
86
|
|
|
96
|
-
const isInteractive =
|
|
87
|
+
const isInteractive = typeof htmlProps.onClick === 'function';
|
|
97
88
|
|
|
98
89
|
const classes = [
|
|
99
90
|
styles.card,
|
|
@@ -111,35 +102,15 @@ function CardRoot({
|
|
|
111
102
|
isInteractive,
|
|
112
103
|
};
|
|
113
104
|
|
|
114
|
-
if (isInteractive) {
|
|
115
|
-
return (
|
|
116
|
-
<CardContext.Provider value={contextValue}>
|
|
117
|
-
<button
|
|
118
|
-
type="button"
|
|
119
|
-
{...(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>)}
|
|
120
|
-
onClick={onClick}
|
|
121
|
-
className={classes}
|
|
122
|
-
style={style}
|
|
123
|
-
aria-label={ariaLabel}
|
|
124
|
-
aria-describedby={ariaDescribedBy}
|
|
125
|
-
>
|
|
126
|
-
{children}
|
|
127
|
-
</button>
|
|
128
|
-
</CardContext.Provider>
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
105
|
return (
|
|
133
106
|
<CardContext.Provider value={contextValue}>
|
|
134
|
-
<
|
|
107
|
+
<Component
|
|
135
108
|
{...htmlProps}
|
|
136
109
|
className={classes}
|
|
137
110
|
style={style}
|
|
138
|
-
aria-label={ariaLabel}
|
|
139
|
-
aria-describedby={ariaDescribedBy}
|
|
140
111
|
>
|
|
141
112
|
{children}
|
|
142
|
-
</
|
|
113
|
+
</Component>
|
|
143
114
|
</CardContext.Provider>
|
|
144
115
|
);
|
|
145
116
|
}
|
|
@@ -189,5 +160,4 @@ export {
|
|
|
189
160
|
CardDescription,
|
|
190
161
|
CardBody,
|
|
191
162
|
CardFooter,
|
|
192
|
-
useCardContext,
|
|
193
163
|
};
|
|
@@ -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 {
|
|
4
4
|
LineChart,
|
|
5
5
|
Line,
|
|
@@ -69,9 +69,10 @@ export default defineFragment({
|
|
|
69
69
|
],
|
|
70
70
|
guidelines: [
|
|
71
71
|
'Use ChartContainer to wrap recharts chart components',
|
|
72
|
-
'Define a ChartConfig to map data keys to labels and colors',
|
|
72
|
+
'Define a ChartConfig to map data keys to labels and colors (and optionally icons for custom legend/tooltip UIs)',
|
|
73
73
|
'Use FUI CSS variables for colors so charts adapt to theme changes',
|
|
74
74
|
'Use ChartTooltip and ChartLegend for consistent themed overlays',
|
|
75
|
+
'ChartTooltip and ChartLegend accept custom content renderers for advanced formatting',
|
|
75
76
|
],
|
|
76
77
|
accessibility: [
|
|
77
78
|
'Charts include recharts accessibilityLayer by default',
|
|
@@ -83,7 +84,7 @@ export default defineFragment({
|
|
|
83
84
|
props: {
|
|
84
85
|
config: {
|
|
85
86
|
type: 'object',
|
|
86
|
-
description: 'ChartConfig mapping data keys to labels
|
|
87
|
+
description: 'ChartConfig mapping data keys to labels/colors (optional icon per series)',
|
|
87
88
|
},
|
|
88
89
|
children: {
|
|
89
90
|
type: 'element',
|
|
@@ -109,6 +110,7 @@ export default defineFragment({
|
|
|
109
110
|
propsSummary: [
|
|
110
111
|
'config: ChartConfig - maps data keys to labels and theme colors',
|
|
111
112
|
'children: ReactElement - recharts chart component',
|
|
113
|
+
'Chart.Tooltip / Chart.Legend support custom content renderers for advanced overlays',
|
|
112
114
|
],
|
|
113
115
|
scenarioTags: [
|
|
114
116
|
'display.chart',
|
|
@@ -13,7 +13,7 @@ export type ChartConfig = Record<
|
|
|
13
13
|
{
|
|
14
14
|
label: string;
|
|
15
15
|
color: string;
|
|
16
|
-
icon?: React.ComponentType
|
|
16
|
+
icon?: React.ComponentType<Record<string, unknown>>;
|
|
17
17
|
}
|
|
18
18
|
>;
|
|
19
19
|
|
|
@@ -58,8 +58,8 @@ type RechartsLegendProps = Record<string, unknown>;
|
|
|
58
58
|
// Lazy-loaded dependencies (recharts)
|
|
59
59
|
// ============================================
|
|
60
60
|
|
|
61
|
-
let _RechartsTooltip:
|
|
62
|
-
let _RechartsLegend:
|
|
61
|
+
let _RechartsTooltip: React.ComponentType<Record<string, unknown>> | null = null;
|
|
62
|
+
let _RechartsLegend: React.ComponentType<Record<string, unknown>> | null = null;
|
|
63
63
|
let _chartLoaded = false;
|
|
64
64
|
let _chartFailed = false;
|
|
65
65
|
|
|
@@ -69,8 +69,8 @@ function loadChartDeps() {
|
|
|
69
69
|
try {
|
|
70
70
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
71
71
|
const rc = require('recharts');
|
|
72
|
-
_RechartsTooltip = rc.Tooltip
|
|
73
|
-
_RechartsLegend = rc.Legend
|
|
72
|
+
_RechartsTooltip = rc.Tooltip as React.ComponentType<Record<string, unknown>>;
|
|
73
|
+
_RechartsLegend = rc.Legend as React.ComponentType<Record<string, unknown>>;
|
|
74
74
|
} catch {
|
|
75
75
|
_chartFailed = true;
|
|
76
76
|
}
|
|
@@ -243,7 +243,7 @@ type ChartTooltipProps = {
|
|
|
243
243
|
hideIndicator?: boolean;
|
|
244
244
|
labelFormatter?: ChartTooltipContentProps['labelFormatter'];
|
|
245
245
|
valueFormatter?: ChartTooltipContentProps['valueFormatter'];
|
|
246
|
-
content?:
|
|
246
|
+
content?: React.ReactNode | ((tooltipProps: Record<string, unknown>) => React.ReactNode);
|
|
247
247
|
[key: string]: unknown;
|
|
248
248
|
};
|
|
249
249
|
|
|
@@ -260,9 +260,9 @@ export function ChartTooltip({
|
|
|
260
260
|
|
|
261
261
|
const defaultContent = React.useCallback(
|
|
262
262
|
|
|
263
|
-
(tooltipProps:
|
|
263
|
+
(tooltipProps: Record<string, unknown>) => (
|
|
264
264
|
<ChartTooltipContent
|
|
265
|
-
{...tooltipProps}
|
|
265
|
+
{...(tooltipProps as ChartTooltipContentProps)}
|
|
266
266
|
indicator={indicator}
|
|
267
267
|
hideLabel={hideLabel}
|
|
268
268
|
hideIndicator={hideIndicator}
|
|
@@ -330,13 +330,15 @@ export function ChartLegendContent({ payload }: ChartLegendContentProps) {
|
|
|
330
330
|
// ============================================
|
|
331
331
|
|
|
332
332
|
type ChartLegendProps = RechartsLegendProps & {
|
|
333
|
-
content?:
|
|
333
|
+
content?: React.ReactNode | ((legendProps: Record<string, unknown>) => React.ReactNode);
|
|
334
334
|
};
|
|
335
335
|
|
|
336
336
|
export function ChartLegend({ content, ...props }: ChartLegendProps) {
|
|
337
337
|
loadChartDeps();
|
|
338
338
|
|
|
339
|
-
const defaultContent = (legendProps:
|
|
339
|
+
const defaultContent = (legendProps: Record<string, unknown>) => (
|
|
340
|
+
<ChartLegendContent {...(legendProps as ChartLegendContentProps)} />
|
|
341
|
+
);
|
|
340
342
|
|
|
341
343
|
if (_chartFailed || !_RechartsLegend) {
|
|
342
344
|
if (_chartFailed && process.env.NODE_ENV === 'development') {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
3
|
import { Checkbox } from '.';
|
|
4
4
|
|
|
5
5
|
// Stateful wrapper for interactive demos
|
|
@@ -59,6 +59,10 @@ export default defineFragment({
|
|
|
59
59
|
type: 'function',
|
|
60
60
|
description: 'Called when checked state changes',
|
|
61
61
|
},
|
|
62
|
+
onChange: {
|
|
63
|
+
type: 'function',
|
|
64
|
+
description: 'Alias for onCheckedChange: (checked: boolean) => void',
|
|
65
|
+
},
|
|
62
66
|
indeterminate: {
|
|
63
67
|
type: 'boolean',
|
|
64
68
|
description: 'Indeterminate state (partial selection)',
|
|
@@ -83,6 +87,14 @@ export default defineFragment({
|
|
|
83
87
|
values: ['sm', 'md', 'lg'],
|
|
84
88
|
default: 'md',
|
|
85
89
|
},
|
|
90
|
+
controlClassName: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
description: 'Class name for the checkbox control element (stable styling target)',
|
|
93
|
+
},
|
|
94
|
+
contentClassName: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'Class name for the label/description content wrapper',
|
|
97
|
+
},
|
|
86
98
|
},
|
|
87
99
|
|
|
88
100
|
relations: [
|
|
@@ -94,9 +106,11 @@ export default defineFragment({
|
|
|
94
106
|
propsSummary: [
|
|
95
107
|
'checked: boolean - controlled checked state',
|
|
96
108
|
'onCheckedChange: (checked) => void - change handler',
|
|
109
|
+
'onChange: (checked) => void - alias for onCheckedChange',
|
|
97
110
|
'indeterminate: boolean - partial selection state',
|
|
98
111
|
'label: string - checkbox label',
|
|
99
112
|
'description: string - helper text',
|
|
113
|
+
'controlClassName/contentClassName - explicit styling targets for control and content',
|
|
100
114
|
],
|
|
101
115
|
scenarioTags: [
|
|
102
116
|
'form.checkbox',
|
|
@@ -162,5 +176,17 @@ export default defineFragment({
|
|
|
162
176
|
</div>
|
|
163
177
|
),
|
|
164
178
|
},
|
|
179
|
+
{
|
|
180
|
+
name: 'Custom Styling Targets',
|
|
181
|
+
description: 'Use explicit class targets for control vs content styling',
|
|
182
|
+
render: () => (
|
|
183
|
+
<Checkbox
|
|
184
|
+
label="Styled checkbox"
|
|
185
|
+
description="Control and content wrappers can be targeted independently"
|
|
186
|
+
controlClassName="demo-checkbox-control"
|
|
187
|
+
contentClassName="demo-checkbox-content"
|
|
188
|
+
/>
|
|
189
|
+
),
|
|
190
|
+
},
|
|
165
191
|
],
|
|
166
192
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/mixins" as *;
|
|
3
3
|
|
|
4
4
|
// Wrapper for checkbox + label
|
|
5
5
|
.wrapper {
|
|
6
6
|
display: inline-flex;
|
|
7
7
|
align-items: center;
|
|
8
|
-
gap: var(--fui-space-
|
|
8
|
+
gap: var(--fui-space-1, $fui-space-1);
|
|
9
9
|
cursor: pointer;
|
|
10
10
|
font-family: var(--fui-font-sans, $fui-font-sans);
|
|
11
11
|
|
|
@@ -19,6 +19,8 @@ export interface CheckboxProps extends Omit<React.HTMLAttributes<HTMLLabelElemen
|
|
|
19
19
|
defaultChecked?: boolean;
|
|
20
20
|
/** Callback when checked state changes */
|
|
21
21
|
onCheckedChange?: (checked: boolean) => void;
|
|
22
|
+
/** Alias for onCheckedChange */
|
|
23
|
+
onChange?: (checked: boolean) => void;
|
|
22
24
|
/** Whether the checkbox is in an indeterminate state */
|
|
23
25
|
indeterminate?: boolean;
|
|
24
26
|
/** Whether the checkbox is disabled */
|
|
@@ -38,6 +40,10 @@ export interface CheckboxProps extends Omit<React.HTMLAttributes<HTMLLabelElemen
|
|
|
38
40
|
value?: string;
|
|
39
41
|
/** ID for the checkbox input */
|
|
40
42
|
id?: string;
|
|
43
|
+
/** Class applied directly to the checkbox control element */
|
|
44
|
+
controlClassName?: string;
|
|
45
|
+
/** Class applied to the label/description content wrapper */
|
|
46
|
+
contentClassName?: string;
|
|
41
47
|
/** Accessible label for icon-only mode */
|
|
42
48
|
'aria-label'?: string;
|
|
43
49
|
/** Accessible labelled-by relationship for icon-only mode */
|
|
@@ -99,6 +105,7 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
99
105
|
checked,
|
|
100
106
|
defaultChecked,
|
|
101
107
|
onCheckedChange,
|
|
108
|
+
onChange,
|
|
102
109
|
indeterminate = false,
|
|
103
110
|
disabled = false,
|
|
104
111
|
required = false,
|
|
@@ -108,6 +115,8 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
108
115
|
name,
|
|
109
116
|
value,
|
|
110
117
|
className,
|
|
118
|
+
controlClassName,
|
|
119
|
+
contentClassName,
|
|
111
120
|
id,
|
|
112
121
|
'aria-label': ariaLabel,
|
|
113
122
|
'aria-labelledby': ariaLabelledBy,
|
|
@@ -125,6 +134,7 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
125
134
|
styles.checkbox,
|
|
126
135
|
size === 'sm' && styles.sm,
|
|
127
136
|
size === 'lg' && styles.lg,
|
|
137
|
+
controlClassName,
|
|
128
138
|
].filter(Boolean).join(' ');
|
|
129
139
|
|
|
130
140
|
const labelClasses = [
|
|
@@ -134,15 +144,18 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
134
144
|
].filter(Boolean).join(' ');
|
|
135
145
|
|
|
136
146
|
const wrapperClasses = [styles.wrapper, className].filter(Boolean).join(' ');
|
|
147
|
+
const handleCheckedChange = onChange ?? onCheckedChange;
|
|
137
148
|
|
|
138
149
|
// If no label/description, render just the checkbox
|
|
139
150
|
if (!label && !description) {
|
|
151
|
+
const iconOnlyHtmlProps = htmlProps as unknown as Record<string, unknown>;
|
|
140
152
|
return (
|
|
141
153
|
<BaseCheckbox.Root
|
|
154
|
+
{...iconOnlyHtmlProps}
|
|
142
155
|
ref={ref}
|
|
143
156
|
checked={checked}
|
|
144
157
|
defaultChecked={defaultChecked}
|
|
145
|
-
onCheckedChange={
|
|
158
|
+
onCheckedChange={handleCheckedChange}
|
|
146
159
|
indeterminate={indeterminate}
|
|
147
160
|
disabled={disabled}
|
|
148
161
|
required={required}
|
|
@@ -172,7 +185,7 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
172
185
|
ref={ref}
|
|
173
186
|
checked={checked}
|
|
174
187
|
defaultChecked={defaultChecked}
|
|
175
|
-
onCheckedChange={
|
|
188
|
+
onCheckedChange={handleCheckedChange}
|
|
176
189
|
indeterminate={indeterminate}
|
|
177
190
|
disabled={disabled}
|
|
178
191
|
required={required}
|
|
@@ -188,7 +201,7 @@ const CheckboxRoot = React.forwardRef<HTMLButtonElement, CheckboxProps>(
|
|
|
188
201
|
{indeterminate ? <MinusIcon /> : <CheckIcon />}
|
|
189
202
|
</BaseCheckbox.Indicator>
|
|
190
203
|
</BaseCheckbox.Root>
|
|
191
|
-
<div className={styles.content}>
|
|
204
|
+
<div className={[styles.content, contentClassName].filter(Boolean).join(' ')}>
|
|
192
205
|
<span id={labelId} className={labelClasses}>{label}</span>
|
|
193
206
|
{description && (
|
|
194
207
|
<span id={descriptionId} className={styles.description}>{description}</span>
|
|
@@ -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 { Chip } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -32,10 +32,11 @@ export default defineFragment({
|
|
|
32
32
|
'Use Chip.Group for multi-select sets with shared state',
|
|
33
33
|
'Use onRemove only when users should be able to dismiss the chip',
|
|
34
34
|
'Pair avatar chips with user-related selections (assignees, reviewers)',
|
|
35
|
+
'Provide an explicit value on Chip when using non-string/custom JSX children inside Chip.Group',
|
|
35
36
|
],
|
|
36
37
|
accessibility: [
|
|
37
|
-
'Chips
|
|
38
|
-
'Chip.Group
|
|
38
|
+
'Chips are buttons and use aria-pressed for selection state',
|
|
39
|
+
'Chip.Group is a grouping wrapper; add role/aria-label when needed for assistive context',
|
|
39
40
|
'Remove buttons include descriptive aria-label with chip text',
|
|
40
41
|
'Disabled chips are properly excluded from interaction',
|
|
41
42
|
],
|
|
@@ -97,6 +98,8 @@ export default defineFragment({
|
|
|
97
98
|
'icon/avatar: ReactNode - leading visual',
|
|
98
99
|
'onRemove: () => void - makes chip removable',
|
|
99
100
|
'value: string - identifier for Chip.Group',
|
|
101
|
+
'Chip.Group forwards DOM props (id, role, aria-*, data-*, handlers)',
|
|
102
|
+
'Chip.Group: non-string chip labels should set an explicit value',
|
|
100
103
|
],
|
|
101
104
|
scenarioTags: [
|
|
102
105
|
'actions.filter',
|
|
@@ -166,6 +169,20 @@ export default defineFragment({
|
|
|
166
169
|
</Chip.Group>
|
|
167
170
|
),
|
|
168
171
|
},
|
|
172
|
+
{
|
|
173
|
+
name: 'Chip Group with Custom Labels',
|
|
174
|
+
description: 'Use explicit values when chip labels are custom JSX',
|
|
175
|
+
render: () => (
|
|
176
|
+
<Chip.Group aria-label="Assignees">
|
|
177
|
+
<Chip value="jane">
|
|
178
|
+
<span>Jane Doe</span>
|
|
179
|
+
</Chip>
|
|
180
|
+
<Chip value="sam">
|
|
181
|
+
<span>Sam Lee</span>
|
|
182
|
+
</Chip>
|
|
183
|
+
</Chip.Group>
|
|
184
|
+
),
|
|
185
|
+
},
|
|
169
186
|
{
|
|
170
187
|
name: 'Disabled',
|
|
171
188
|
description: 'Chip in disabled state',
|
|
@@ -48,6 +48,34 @@ describe('Chip', () => {
|
|
|
48
48
|
expect(screen.getByRole('button', { name: 'Outline' })).toHaveClass('outlined');
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
+
it('Chip.Group supports non-string chip children without value collisions', async () => {
|
|
52
|
+
const user = userEvent.setup();
|
|
53
|
+
render(
|
|
54
|
+
<Chip.Group>
|
|
55
|
+
<Chip><span>Alpha</span></Chip>
|
|
56
|
+
<Chip><span>Beta</span></Chip>
|
|
57
|
+
</Chip.Group>
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
const alpha = screen.getByRole('button', { name: 'Alpha' });
|
|
61
|
+
const beta = screen.getByRole('button', { name: 'Beta' });
|
|
62
|
+
|
|
63
|
+
await user.click(alpha);
|
|
64
|
+
await user.click(beta);
|
|
65
|
+
|
|
66
|
+
expect(alpha).toHaveAttribute('aria-pressed', 'true');
|
|
67
|
+
expect(beta).toHaveAttribute('aria-pressed', 'true');
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('Chip.Group forwards DOM props to the group root', () => {
|
|
71
|
+
render(
|
|
72
|
+
<Chip.Group data-testid="chip-group" aria-label="Filters">
|
|
73
|
+
<Chip value="one">One</Chip>
|
|
74
|
+
</Chip.Group>
|
|
75
|
+
);
|
|
76
|
+
expect(screen.getByTestId('chip-group')).toHaveAttribute('aria-label', 'Filters');
|
|
77
|
+
});
|
|
78
|
+
|
|
51
79
|
it('has no accessibility violations', async () => {
|
|
52
80
|
const { container } = render(<Chip>Accessible chip</Chip>);
|
|
53
81
|
await expectNoA11yViolations(container);
|
|
@@ -28,7 +28,7 @@ export interface ChipProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonEle
|
|
|
28
28
|
value?: string;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
export interface ChipGroupProps {
|
|
31
|
+
export interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'onChange'> {
|
|
32
32
|
children: React.ReactNode;
|
|
33
33
|
/** Controlled selected values */
|
|
34
34
|
value?: string[];
|
|
@@ -36,7 +36,6 @@ export interface ChipGroupProps {
|
|
|
36
36
|
defaultValue?: string[];
|
|
37
37
|
/** Called when selection changes */
|
|
38
38
|
onChange?: (value: string[]) => void;
|
|
39
|
-
className?: string;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
const ChipBase = React.forwardRef<HTMLButtonElement, ChipProps>(
|
|
@@ -126,7 +125,7 @@ const ChipBase = React.forwardRef<HTMLButtonElement, ChipProps>(
|
|
|
126
125
|
const EMPTY_CHIP_GROUP: string[] = [];
|
|
127
126
|
|
|
128
127
|
function ChipGroupInner(
|
|
129
|
-
{ children, value: controlledValue, defaultValue = EMPTY_CHIP_GROUP, onChange, className }: ChipGroupProps,
|
|
128
|
+
{ children, value: controlledValue, defaultValue = EMPTY_CHIP_GROUP, onChange, className, ...htmlProps }: ChipGroupProps,
|
|
130
129
|
ref: React.Ref<HTMLDivElement>
|
|
131
130
|
) {
|
|
132
131
|
const [internalValue, setInternalValue] = React.useState<string[]>(defaultValue);
|
|
@@ -150,10 +149,19 @@ function ChipGroupInner(
|
|
|
150
149
|
const classes = [styles.group, className].filter(Boolean).join(' ');
|
|
151
150
|
|
|
152
151
|
return (
|
|
153
|
-
<div ref={ref} className={classes}>
|
|
154
|
-
{React.Children.map(children, (child) => {
|
|
152
|
+
<div ref={ref} {...htmlProps} className={classes}>
|
|
153
|
+
{React.Children.map(children, (child, index) => {
|
|
155
154
|
if (!React.isValidElement<ChipProps>(child)) return child;
|
|
156
|
-
const chipValue =
|
|
155
|
+
const chipValue = (() => {
|
|
156
|
+
if (child.props.value != null) return child.props.value;
|
|
157
|
+
if (typeof child.props.children === 'string') return child.props.children;
|
|
158
|
+
if (child.key != null) return String(child.key);
|
|
159
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
160
|
+
// Non-string labels need an explicit value to avoid unstable group selection keys.
|
|
161
|
+
console.warn('Chip.Group: Chips with non-string children should provide a `value` prop.');
|
|
162
|
+
}
|
|
163
|
+
return `__chip-${index}`;
|
|
164
|
+
})();
|
|
157
165
|
return React.cloneElement(child, {
|
|
158
166
|
selected: currentValue.includes(chipValue),
|
|
159
167
|
onClick: (e: React.MouseEvent<HTMLButtonElement>) => {
|
|
@@ -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 { CodeBlock } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -42,6 +42,7 @@ export default defineFragment({
|
|
|
42
42
|
'Use collapsible for code samples that users may want to skim',
|
|
43
43
|
'Choose a theme that matches your documentation style',
|
|
44
44
|
'Keep code examples concise and focused',
|
|
45
|
+
'Use CodeBlock.Tabbed for multi-language snippets; tabs support controlled value/onValueChange and explicit tab values',
|
|
45
46
|
],
|
|
46
47
|
accessibility: [
|
|
47
48
|
'Code is presented in a semantic pre/code structure',
|
|
@@ -193,6 +194,7 @@ export default defineFragment({
|
|
|
193
194
|
'collapsible: boolean (default: false)',
|
|
194
195
|
'defaultCollapsed: boolean (default: false)',
|
|
195
196
|
'collapsedLines: number (default: 5)',
|
|
197
|
+
'CodeBlock.Tabbed: tabs[] plus optional defaultTab/value/onValueChange for multi-language snippets',
|
|
196
198
|
],
|
|
197
199
|
scenarioTags: [
|
|
198
200
|
'documentation.code',
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
display: flex;
|
|
32
32
|
align-items: center;
|
|
33
33
|
justify-content: space-between;
|
|
34
|
-
padding: 0 var(--fui-
|
|
34
|
+
padding: 0 var(--fui-space-3);
|
|
35
35
|
background-color: var(--fui-code-header-bg, $fui-code-header-bg);
|
|
36
36
|
border-bottom: 1px solid var(--fui-code-border, $fui-code-border);
|
|
37
37
|
min-height: var(--fui-input-height, $fui-input-height);
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
.codeContainer :global(.shiki),
|
|
91
91
|
.loading pre {
|
|
92
92
|
padding-right: calc(
|
|
93
|
-
var(--fui-
|
|
93
|
+
var(--fui-space-4, #{$fui-space-4}) +
|
|
94
94
|
var(--fui-target-size-min, #{$fui-target-size-min}) + var(--fui-space-3, #{$fui-space-3})
|
|
95
95
|
);
|
|
96
96
|
}
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
.loading {
|
|
109
109
|
pre {
|
|
110
110
|
margin: 0;
|
|
111
|
-
padding: var(--fui-
|
|
112
|
-
padding-right: var(--fui-
|
|
111
|
+
padding: var(--fui-space-3);
|
|
112
|
+
padding-right: var(--fui-space-3);
|
|
113
113
|
background-color: transparent !important;
|
|
114
114
|
border: none !important;
|
|
115
115
|
border-radius: 0 !important;
|
|
@@ -135,8 +135,8 @@
|
|
|
135
135
|
:global(.shiki) {
|
|
136
136
|
background-color: transparent !important;
|
|
137
137
|
margin: 0;
|
|
138
|
-
padding: var(--fui-
|
|
139
|
-
padding-right: var(--fui-
|
|
138
|
+
padding: var(--fui-space-3);
|
|
139
|
+
padding-right: var(--fui-space-3);
|
|
140
140
|
border: none !important;
|
|
141
141
|
border-radius: 0 !important;
|
|
142
142
|
font-family: var(--fui-font-mono, $fui-font-mono);
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
|
|
253
253
|
.codeContainer :global(.shiki),
|
|
254
254
|
.loading pre {
|
|
255
|
-
padding: var(--fui-
|
|
255
|
+
padding: var(--fui-space-2) var(--fui-space-3);
|
|
256
256
|
font-size: var(--fui-font-size-sm, $fui-font-size-sm);
|
|
257
257
|
line-height: 1.5;
|
|
258
258
|
}
|
|
@@ -261,7 +261,7 @@
|
|
|
261
261
|
.codeContainer :global(.shiki),
|
|
262
262
|
.loading pre {
|
|
263
263
|
padding-right: calc(
|
|
264
|
-
var(--fui-
|
|
264
|
+
var(--fui-space-3, #{$fui-space-3}) +
|
|
265
265
|
var(--fui-target-size-min, #{$fui-target-size-min}) + var(--fui-space-3, #{$fui-space-3})
|
|
266
266
|
);
|
|
267
267
|
}
|
|
@@ -298,7 +298,7 @@
|
|
|
298
298
|
justify-content: center;
|
|
299
299
|
gap: var(--fui-space-1, $fui-space-1);
|
|
300
300
|
width: 100%;
|
|
301
|
-
padding: 0 var(--fui-
|
|
301
|
+
padding: 0 var(--fui-space-2);
|
|
302
302
|
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
303
303
|
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
304
304
|
font-family: var(--fui-font-sans, $fui-font-sans);
|
|
@@ -121,6 +121,27 @@ describe('CodeBlock', () => {
|
|
|
121
121
|
expect(collapseBtn).toHaveAttribute('aria-expanded', 'true');
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
+
it('supports controlled tabbed mode with explicit tab values', async () => {
|
|
125
|
+
const user = userEvent.setup();
|
|
126
|
+
const onValueChange = vi.fn();
|
|
127
|
+
|
|
128
|
+
render(
|
|
129
|
+
<CodeBlock.Tabbed
|
|
130
|
+
value="js"
|
|
131
|
+
onValueChange={onValueChange}
|
|
132
|
+
tabs={[
|
|
133
|
+
{ label: 'Example', value: 'ts', language: 'typescript', code: 'const tsValue = 1;' },
|
|
134
|
+
{ label: 'Example', value: 'js', language: 'javascript', code: 'const jsValue = 1;' },
|
|
135
|
+
]}
|
|
136
|
+
/>
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
expect(screen.getByText('const jsValue = 1;')).toBeInTheDocument();
|
|
140
|
+
const tabs = screen.getAllByRole('tab', { name: 'Example' });
|
|
141
|
+
await user.click(tabs[0]);
|
|
142
|
+
expect(onValueChange).toHaveBeenCalled();
|
|
143
|
+
});
|
|
144
|
+
|
|
124
145
|
it('has no accessibility violations', async () => {
|
|
125
146
|
const { container } = render(<CodeBlock code="const x = 1;" />);
|
|
126
147
|
await expectNoA11yViolations(container);
|