@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
|
@@ -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);
|
|
@@ -767,6 +767,8 @@ const CodeBlockBase = React.forwardRef<HTMLDivElement, CodeBlockProps>(function
|
|
|
767
767
|
export interface CodeBlockTab {
|
|
768
768
|
/** Label shown in the tab */
|
|
769
769
|
label: string;
|
|
770
|
+
/** Stable tab value (defaults to label) */
|
|
771
|
+
value?: string;
|
|
770
772
|
/** Code string to display */
|
|
771
773
|
code: string;
|
|
772
774
|
/** Programming language for syntax highlighting */
|
|
@@ -776,8 +778,12 @@ export interface CodeBlockTab {
|
|
|
776
778
|
export interface TabbedCodeBlockProps {
|
|
777
779
|
/** Array of code tabs */
|
|
778
780
|
tabs: CodeBlockTab[];
|
|
779
|
-
/** Default selected tab (by label) */
|
|
781
|
+
/** Default selected tab (by tab value, or label when value is omitted) */
|
|
780
782
|
defaultTab?: string;
|
|
783
|
+
/** Controlled selected tab value */
|
|
784
|
+
value?: string;
|
|
785
|
+
/** Called when the selected tab changes */
|
|
786
|
+
onValueChange?: (value: string) => void;
|
|
781
787
|
/** Show copy button */
|
|
782
788
|
showCopy?: boolean;
|
|
783
789
|
/** Placement of copy button when not using persistent copy */
|
|
@@ -801,6 +807,8 @@ export interface TabbedCodeBlockProps {
|
|
|
801
807
|
function TabbedCodeBlock({
|
|
802
808
|
tabs,
|
|
803
809
|
defaultTab,
|
|
810
|
+
value,
|
|
811
|
+
onValueChange,
|
|
804
812
|
showCopy = true,
|
|
805
813
|
copyPlacement = "auto",
|
|
806
814
|
showLineNumbers = false,
|
|
@@ -811,20 +819,25 @@ function TabbedCodeBlock({
|
|
|
811
819
|
className,
|
|
812
820
|
onCopy,
|
|
813
821
|
}: TabbedCodeBlockProps) {
|
|
814
|
-
const defaultValue = defaultTab || tabs[0]?.label || "";
|
|
822
|
+
const defaultValue = defaultTab || tabs[0]?.value || tabs[0]?.label || "";
|
|
815
823
|
|
|
816
824
|
return (
|
|
817
825
|
<div className={className}>
|
|
818
|
-
<TabsRoot defaultValue={defaultValue}>
|
|
826
|
+
<TabsRoot defaultValue={defaultValue} value={value} onValueChange={onValueChange}>
|
|
819
827
|
<TabsList variant={tabsVariant}>
|
|
820
|
-
{tabs.map((tab) =>
|
|
821
|
-
|
|
828
|
+
{tabs.map((tab, index) => {
|
|
829
|
+
const tabValue = tab.value ?? tab.label;
|
|
830
|
+
return (
|
|
831
|
+
<Tab key={`${tabValue}-${index}`} value={tabValue}>
|
|
822
832
|
{tab.label}
|
|
823
833
|
</Tab>
|
|
824
|
-
|
|
834
|
+
);
|
|
835
|
+
})}
|
|
825
836
|
</TabsList>
|
|
826
|
-
{tabs.map((tab) =>
|
|
827
|
-
|
|
837
|
+
{tabs.map((tab, index) => {
|
|
838
|
+
const tabValue = tab.value ?? tab.label;
|
|
839
|
+
return (
|
|
840
|
+
<TabsPanel key={`${tabValue}-panel-${index}`} value={tabValue} flush className={styles.tabbedPanel}>
|
|
828
841
|
<CodeBlockBase
|
|
829
842
|
code={tab.code}
|
|
830
843
|
language={tab.language}
|
|
@@ -837,7 +850,8 @@ function TabbedCodeBlock({
|
|
|
837
850
|
onCopy={onCopy ? () => onCopy(tab.label) : undefined}
|
|
838
851
|
/>
|
|
839
852
|
</TabsPanel>
|
|
840
|
-
|
|
853
|
+
);
|
|
854
|
+
})}
|
|
841
855
|
</TabsRoot>
|
|
842
856
|
</div>
|
|
843
857
|
);
|
|
@@ -1,18 +1,49 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { defineFragment } from '@fragments-sdk/
|
|
3
|
-
import { Combobox } from '.';
|
|
2
|
+
import { defineFragment } from '@fragments-sdk/core';
|
|
3
|
+
import { Combobox, type ComboboxMultipleProps, type ComboboxSingleProps } from '.';
|
|
4
4
|
|
|
5
5
|
// Stateful wrapper for interactive demos
|
|
6
|
-
function StatefulCombobox(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
function StatefulCombobox(
|
|
7
|
+
props:
|
|
8
|
+
| (Omit<React.ComponentProps<typeof Combobox>, 'value' | 'onValueChange'> & {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
multiple: true;
|
|
11
|
+
initialValue?: string[];
|
|
12
|
+
})
|
|
13
|
+
| (Omit<React.ComponentProps<typeof Combobox>, 'value' | 'onValueChange'> & {
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
multiple?: false;
|
|
16
|
+
initialValue?: string;
|
|
17
|
+
})
|
|
18
|
+
) {
|
|
10
19
|
const { initialValue, children, ...rest } = props;
|
|
11
|
-
|
|
20
|
+
|
|
21
|
+
if (props.multiple) {
|
|
22
|
+
const [value, setValue] = useState<string[]>(
|
|
23
|
+
Array.isArray(initialValue) ? initialValue : []
|
|
24
|
+
);
|
|
25
|
+
const multiProps = rest as Omit<React.ComponentProps<typeof Combobox>, 'value' | 'onValueChange'> & {
|
|
26
|
+
multiple: true;
|
|
27
|
+
};
|
|
28
|
+
const MultiCombobox = Combobox as unknown as (props: ComboboxMultipleProps) => React.JSX.Element;
|
|
29
|
+
return (
|
|
30
|
+
<MultiCombobox {...(multiProps as ComboboxMultipleProps)} multiple value={value} onValueChange={setValue}>
|
|
31
|
+
{children}
|
|
32
|
+
</MultiCombobox>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const [value, setValue] = useState<string | null>(
|
|
37
|
+
typeof initialValue === 'string' ? initialValue : null
|
|
38
|
+
);
|
|
39
|
+
const singleProps = rest as Omit<React.ComponentProps<typeof Combobox>, 'value' | 'onValueChange'> & {
|
|
40
|
+
multiple?: false;
|
|
41
|
+
};
|
|
42
|
+
const SingleCombobox = Combobox as unknown as (props: ComboboxSingleProps) => React.JSX.Element;
|
|
12
43
|
return (
|
|
13
|
-
<
|
|
44
|
+
<SingleCombobox {...(singleProps as ComboboxSingleProps)} value={value} onValueChange={setValue}>
|
|
14
45
|
{children}
|
|
15
|
-
</
|
|
46
|
+
</SingleCombobox>
|
|
16
47
|
);
|
|
17
48
|
}
|
|
18
49
|
|
|
@@ -76,6 +107,10 @@ export default defineFragment({
|
|
|
76
107
|
type: 'function',
|
|
77
108
|
description: 'Called when selection changes',
|
|
78
109
|
},
|
|
110
|
+
onChange: {
|
|
111
|
+
type: 'function',
|
|
112
|
+
description: 'Alias for onValueChange',
|
|
113
|
+
},
|
|
79
114
|
multiple: {
|
|
80
115
|
type: 'boolean',
|
|
81
116
|
description: 'Allow multiple selections with chips',
|
|
@@ -120,10 +155,13 @@ export default defineFragment({
|
|
|
120
155
|
propsSummary: [
|
|
121
156
|
'value: string | string[] - controlled selected value',
|
|
122
157
|
'onValueChange: (value) => void - selection handler',
|
|
158
|
+
'onChange: (value) => void - alias for onValueChange',
|
|
123
159
|
'multiple: boolean - enable multi-select with chips',
|
|
160
|
+
'When multiple=true, value/defaultValue must be string[] (single mode uses string|null)',
|
|
124
161
|
'placeholder: string - input placeholder text',
|
|
125
162
|
'disabled: boolean - disable combobox',
|
|
126
163
|
'autoHighlight: boolean - auto-highlight first match',
|
|
164
|
+
'Combobox.Input showTrigger: boolean - hide built-in trigger when using Combobox.Trigger explicitly',
|
|
127
165
|
'maxVisibleItems: number - max visible options before scrolling (default 4)',
|
|
128
166
|
],
|
|
129
167
|
scenarioTags: [
|
|
@@ -142,6 +180,7 @@ export default defineFragment({
|
|
|
142
180
|
commonPatterns: [
|
|
143
181
|
'<Combobox placeholder="Search..."><Combobox.Input /><Combobox.Content><Combobox.Item value="opt1">{label1}</Combobox.Item><Combobox.Item value="opt2">{label2}</Combobox.Item></Combobox.Content></Combobox>',
|
|
144
182
|
'<Combobox multiple placeholder="Select items..."><Combobox.Input /><Combobox.Content><Combobox.Item value="opt1">{label1}</Combobox.Item><Combobox.Item value="opt2">{label2}</Combobox.Item></Combobox.Content></Combobox>',
|
|
183
|
+
'<Combobox placeholder="Search..."><Combobox.Input showTrigger={false} /><Combobox.Trigger aria-label="Open" /><Combobox.Content>...</Combobox.Content></Combobox>',
|
|
145
184
|
],
|
|
146
185
|
},
|
|
147
186
|
|
|
@@ -274,5 +313,20 @@ export default defineFragment({
|
|
|
274
313
|
</Combobox>
|
|
275
314
|
),
|
|
276
315
|
},
|
|
316
|
+
{
|
|
317
|
+
name: 'Explicit Trigger',
|
|
318
|
+
description: 'Hide the built-in input trigger when rendering a separate Combobox.Trigger',
|
|
319
|
+
render: () => (
|
|
320
|
+
<StatefulCombobox placeholder="Search assignees...">
|
|
321
|
+
<Combobox.Input showTrigger={false} />
|
|
322
|
+
<Combobox.Trigger aria-label="Open assignee list" />
|
|
323
|
+
<Combobox.Content>
|
|
324
|
+
<Combobox.Item value="alice">Alice</Combobox.Item>
|
|
325
|
+
<Combobox.Item value="bob">Bob</Combobox.Item>
|
|
326
|
+
<Combobox.Item value="carol">Carol</Combobox.Item>
|
|
327
|
+
</Combobox.Content>
|
|
328
|
+
</StatefulCombobox>
|
|
329
|
+
),
|
|
330
|
+
},
|
|
277
331
|
],
|
|
278
332
|
});
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
var(--_item-h) * var(--fui-select-max-items, 4.5) + var(--fui-space-1, #{$fui-space-1}) * 2
|
|
176
176
|
) !important;
|
|
177
177
|
overflow-y: auto !important;
|
|
178
|
-
padding: var(--fui-
|
|
178
|
+
padding: var(--fui-space-1, $fui-space-1);
|
|
179
179
|
box-shadow: var(--fui-shadow-md, $fui-shadow-md);
|
|
180
180
|
|
|
181
181
|
// Animation
|
|
@@ -207,8 +207,7 @@
|
|
|
207
207
|
align-items: center;
|
|
208
208
|
gap: var(--fui-space-2, $fui-space-2);
|
|
209
209
|
width: 100%;
|
|
210
|
-
padding: var(--fui-
|
|
211
|
-
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
210
|
+
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
|
|
212
211
|
border-radius: var(--fui-radius-sm, $fui-radius-sm);
|
|
213
212
|
cursor: pointer;
|
|
214
213
|
outline: none;
|
|
@@ -254,8 +253,7 @@
|
|
|
254
253
|
display: flex;
|
|
255
254
|
align-items: center;
|
|
256
255
|
justify-content: center;
|
|
257
|
-
padding: var(--fui-
|
|
258
|
-
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
256
|
+
padding: var(--fui-space-2, $fui-space-2) var(--fui-space-3, $fui-space-3);
|
|
259
257
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|
|
260
258
|
font-size: var(--fui-font-size-sm, $fui-font-size-sm);
|
|
261
259
|
}
|
|
@@ -271,8 +269,7 @@
|
|
|
271
269
|
|
|
272
270
|
// Group label
|
|
273
271
|
.groupLabel {
|
|
274
|
-
padding: var(--fui-
|
|
275
|
-
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
272
|
+
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
|
|
276
273
|
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
277
274
|
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
278
275
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|