@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
|
@@ -25,10 +25,15 @@ export interface PopoverProps {
|
|
|
25
25
|
modal?: boolean;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
type PopoverTriggerAsButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
29
29
|
children: React.ReactNode;
|
|
30
|
-
asChild?:
|
|
31
|
-
}
|
|
30
|
+
asChild?: false;
|
|
31
|
+
};
|
|
32
|
+
type PopoverTriggerAsChildProps = Omit<React.HTMLAttributes<HTMLElement>, 'children'> & {
|
|
33
|
+
children: React.ReactElement;
|
|
34
|
+
asChild: true;
|
|
35
|
+
};
|
|
36
|
+
export type PopoverTriggerProps = PopoverTriggerAsButtonProps | PopoverTriggerAsChildProps;
|
|
32
37
|
|
|
33
38
|
export interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
34
39
|
children: React.ReactNode;
|
|
@@ -55,10 +60,15 @@ export interface PopoverFooterProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
55
60
|
children: React.ReactNode;
|
|
56
61
|
}
|
|
57
62
|
|
|
58
|
-
|
|
63
|
+
type PopoverCloseAsButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
59
64
|
children?: React.ReactNode;
|
|
60
|
-
asChild?:
|
|
61
|
-
}
|
|
65
|
+
asChild?: false;
|
|
66
|
+
};
|
|
67
|
+
type PopoverCloseAsChildProps = Omit<React.HTMLAttributes<HTMLElement>, 'children'> & {
|
|
68
|
+
children: React.ReactElement;
|
|
69
|
+
asChild: true;
|
|
70
|
+
};
|
|
71
|
+
export type PopoverCloseProps = PopoverCloseAsButtonProps | PopoverCloseAsChildProps;
|
|
62
72
|
|
|
63
73
|
// ============================================
|
|
64
74
|
// Icons
|
|
@@ -109,6 +119,9 @@ function PopoverRoot({
|
|
|
109
119
|
|
|
110
120
|
function PopoverTrigger({ children, asChild, className, ...htmlProps }: PopoverTriggerProps) {
|
|
111
121
|
if (asChild) {
|
|
122
|
+
if (!React.isValidElement(children)) {
|
|
123
|
+
throw new Error('Popover.Trigger with asChild requires a single valid React element child.');
|
|
124
|
+
}
|
|
112
125
|
return (
|
|
113
126
|
<BasePopover.Trigger {...htmlProps} className={className} render={children as React.ReactElement}>
|
|
114
127
|
{null}
|
|
@@ -117,7 +130,11 @@ function PopoverTrigger({ children, asChild, className, ...htmlProps }: PopoverT
|
|
|
117
130
|
}
|
|
118
131
|
|
|
119
132
|
return (
|
|
120
|
-
<BasePopover.Trigger
|
|
133
|
+
<BasePopover.Trigger
|
|
134
|
+
{...htmlProps}
|
|
135
|
+
type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
|
|
136
|
+
className={className}
|
|
137
|
+
>
|
|
121
138
|
{children}
|
|
122
139
|
</BasePopover.Trigger>
|
|
123
140
|
);
|
|
@@ -186,6 +203,7 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
|
|
|
186
203
|
return (
|
|
187
204
|
<BasePopover.Close
|
|
188
205
|
{...htmlProps}
|
|
206
|
+
type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
|
|
189
207
|
aria-label="Close popover"
|
|
190
208
|
className={[styles.close, className].filter(Boolean).join(' ')}
|
|
191
209
|
>
|
|
@@ -195,6 +213,9 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
|
|
|
195
213
|
}
|
|
196
214
|
|
|
197
215
|
if (asChild) {
|
|
216
|
+
if (!React.isValidElement(children)) {
|
|
217
|
+
throw new Error('Popover.Close with asChild requires a single valid React element child.');
|
|
218
|
+
}
|
|
198
219
|
return (
|
|
199
220
|
<BasePopover.Close {...htmlProps} className={className} render={children as React.ReactElement}>
|
|
200
221
|
{null}
|
|
@@ -203,7 +224,11 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
|
|
|
203
224
|
}
|
|
204
225
|
|
|
205
226
|
return (
|
|
206
|
-
<BasePopover.Close
|
|
227
|
+
<BasePopover.Close
|
|
228
|
+
{...htmlProps}
|
|
229
|
+
type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
|
|
230
|
+
className={className}
|
|
231
|
+
>
|
|
207
232
|
{children}
|
|
208
233
|
</BasePopover.Close>
|
|
209
234
|
);
|
|
@@ -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 { Progress, CircularProgress } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -31,6 +31,7 @@ export default defineFragment({
|
|
|
31
31
|
'Use indeterminate for unknown durations',
|
|
32
32
|
'Include a label for context when the purpose isnt obvious',
|
|
33
33
|
'Use appropriate color variants for success/warning/danger states',
|
|
34
|
+
'Determinate values are clamped to the min/max range for display',
|
|
34
35
|
],
|
|
35
36
|
accessibility: [
|
|
36
37
|
'Uses role="progressbar" with aria-valuenow',
|
|
@@ -93,6 +94,7 @@ export default defineFragment({
|
|
|
93
94
|
'variant: default|success|warning|danger - color',
|
|
94
95
|
'label: string - descriptive label',
|
|
95
96
|
'showValue: boolean - display percentage',
|
|
97
|
+
'Determinate display values are clamped (and invalid min/max ranges render as 0%)',
|
|
96
98
|
],
|
|
97
99
|
scenarioTags: [
|
|
98
100
|
'feedback.progress',
|
|
@@ -43,6 +43,14 @@ describe('Progress', () => {
|
|
|
43
43
|
const { container } = render(<Progress value={60} label="Loading" />);
|
|
44
44
|
await expectNoA11yViolations(container);
|
|
45
45
|
});
|
|
46
|
+
|
|
47
|
+
it('clamps displayed percentage and handles invalid ranges safely', () => {
|
|
48
|
+
const { rerender } = render(<Progress value={150} showValue />);
|
|
49
|
+
expect(screen.getByText('100%')).toBeInTheDocument();
|
|
50
|
+
|
|
51
|
+
rerender(<Progress value={50} min={100} max={100} showValue />);
|
|
52
|
+
expect(screen.getByText('0%')).toBeInTheDocument();
|
|
53
|
+
});
|
|
46
54
|
});
|
|
47
55
|
|
|
48
56
|
describe('CircularProgress', () => {
|
|
@@ -59,7 +59,15 @@ function ProgressRoot({
|
|
|
59
59
|
...htmlProps
|
|
60
60
|
}: ProgressProps) {
|
|
61
61
|
const isIndeterminate = value === null;
|
|
62
|
-
const
|
|
62
|
+
const range = max - min;
|
|
63
|
+
const normalizedPercentage = isIndeterminate
|
|
64
|
+
? 0
|
|
65
|
+
: range <= 0
|
|
66
|
+
? 0
|
|
67
|
+
: ((value - min) / range) * 100;
|
|
68
|
+
const percentage = isIndeterminate
|
|
69
|
+
? 0
|
|
70
|
+
: Math.round(Math.min(100, Math.max(0, normalizedPercentage)));
|
|
63
71
|
|
|
64
72
|
const trackClasses = [
|
|
65
73
|
styles.track,
|
|
@@ -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 { Prompt } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -27,6 +27,8 @@ export default defineFragment({
|
|
|
27
27
|
guidelines: [
|
|
28
28
|
'Always provide an onSubmit handler',
|
|
29
29
|
'Use loading state during API calls',
|
|
30
|
+
'Prompt.Textarea forwards native textarea props (autoComplete, inputMode, aria-*, data-*, handlers)',
|
|
31
|
+
'Prompt.Textarea composes your onChange/onKeyDown handlers with built-in submit and auto-resize behavior',
|
|
30
32
|
'Consider showing usage/token limits for AI contexts',
|
|
31
33
|
],
|
|
32
34
|
accessibility: [
|
|
@@ -123,6 +125,7 @@ export default defineFragment({
|
|
|
123
125
|
'loading: boolean - shows loading state',
|
|
124
126
|
'minRows/maxRows: number - row constraints (default: 1/8)',
|
|
125
127
|
'submitOnEnter: boolean - Enter key behavior (default: true)',
|
|
128
|
+
'Prompt.Textarea accepts native textarea props and optional aria-label override',
|
|
126
129
|
],
|
|
127
130
|
scenarioTags: [
|
|
128
131
|
'form.prompt',
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
display: block;
|
|
61
61
|
width: 100%;
|
|
62
62
|
min-height: 2.857rem; // ~40px
|
|
63
|
-
padding: var(--fui-
|
|
63
|
+
padding: var(--fui-space-2) var(--fui-space-3);
|
|
64
64
|
background: transparent;
|
|
65
65
|
border: none;
|
|
66
66
|
resize: none;
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
align-items: center;
|
|
91
91
|
justify-content: space-between;
|
|
92
92
|
gap: var(--fui-space-2, $fui-space-2);
|
|
93
|
-
padding: var(--fui-
|
|
93
|
+
padding: var(--fui-space-1) var(--fui-space-2);
|
|
94
94
|
background-color: var(--fui-bg-secondary, $fui-bg-secondary);
|
|
95
95
|
border-top: 1px solid var(--fui-border, $fui-border);
|
|
96
96
|
}
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
display: flex;
|
|
156
156
|
align-items: center;
|
|
157
157
|
gap: var(--fui-space-1, $fui-space-1);
|
|
158
|
-
padding: var(--fui-
|
|
158
|
+
padding: var(--fui-space-1) var(--fui-space-2);
|
|
159
159
|
border-radius: var(--fui-radius-md, $fui-radius-md);
|
|
160
160
|
background-color: transparent;
|
|
161
161
|
color: var(--fui-text-secondary, $fui-text-secondary);
|
|
@@ -34,6 +34,25 @@ describe('Prompt', () => {
|
|
|
34
34
|
expect(screen.getByPlaceholderText('Type here...')).toBeInTheDocument();
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
+
it('forwards textarea props and composes textarea handlers', async () => {
|
|
38
|
+
const user = userEvent.setup();
|
|
39
|
+
const onKeyDown = vi.fn();
|
|
40
|
+
const onChange = vi.fn();
|
|
41
|
+
|
|
42
|
+
render(
|
|
43
|
+
<Prompt defaultValue="" onSubmit={() => {}}>
|
|
44
|
+
<Prompt.Textarea data-testid="prompt-textarea" onKeyDown={onKeyDown} onChange={onChange} />
|
|
45
|
+
<Prompt.Submit />
|
|
46
|
+
</Prompt>
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const textarea = screen.getByTestId('prompt-textarea');
|
|
50
|
+
await user.type(textarea, 'Hi');
|
|
51
|
+
expect(onChange).toHaveBeenCalled();
|
|
52
|
+
await user.keyboard('{Enter}');
|
|
53
|
+
expect(onKeyDown).toHaveBeenCalled();
|
|
54
|
+
});
|
|
55
|
+
|
|
37
56
|
it('renders compound sub-components (Toolbar, Actions)', () => {
|
|
38
57
|
renderPrompt();
|
|
39
58
|
expect(screen.getByRole('button', { name: /attach file/i })).toBeInTheDocument();
|
|
@@ -38,10 +38,16 @@ export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
38
38
|
variant?: PromptVariant;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export interface PromptTextareaProps
|
|
41
|
+
export interface PromptTextareaProps extends Omit<
|
|
42
|
+
React.TextareaHTMLAttributes<HTMLTextAreaElement>,
|
|
43
|
+
'value' | 'defaultValue' | 'onChange' | 'rows' | 'disabled' | 'children'
|
|
44
|
+
> {
|
|
42
45
|
/** Override placeholder from context */
|
|
43
46
|
placeholder?: string;
|
|
44
|
-
|
|
47
|
+
/** Composed with internal state update logic */
|
|
48
|
+
onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
49
|
+
/** Composed with internal submit-on-enter logic */
|
|
50
|
+
onKeyDown?: React.KeyboardEventHandler<HTMLTextAreaElement>;
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
export interface PromptToolbarProps {
|
|
@@ -64,7 +70,7 @@ export interface PromptActionButtonProps {
|
|
|
64
70
|
/** Accessible label for the button */
|
|
65
71
|
'aria-label': string;
|
|
66
72
|
/** Click handler */
|
|
67
|
-
onClick?:
|
|
73
|
+
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
68
74
|
/** Disabled state */
|
|
69
75
|
disabled?: boolean;
|
|
70
76
|
className?: string;
|
|
@@ -73,7 +79,7 @@ export interface PromptActionButtonProps {
|
|
|
73
79
|
export interface PromptModeButtonProps {
|
|
74
80
|
children: React.ReactNode;
|
|
75
81
|
/** Click handler */
|
|
76
|
-
onClick?:
|
|
82
|
+
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
77
83
|
/** Whether this mode is currently active */
|
|
78
84
|
active?: boolean;
|
|
79
85
|
/** Disabled state */
|
|
@@ -239,7 +245,14 @@ function PromptRoot({
|
|
|
239
245
|
);
|
|
240
246
|
}
|
|
241
247
|
|
|
242
|
-
function PromptTextarea({
|
|
248
|
+
function PromptTextarea({
|
|
249
|
+
placeholder: overridePlaceholder,
|
|
250
|
+
className,
|
|
251
|
+
onChange,
|
|
252
|
+
onKeyDown,
|
|
253
|
+
'aria-label': ariaLabel,
|
|
254
|
+
...htmlProps
|
|
255
|
+
}: PromptTextareaProps) {
|
|
243
256
|
const {
|
|
244
257
|
value,
|
|
245
258
|
setValue,
|
|
@@ -280,10 +293,14 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
|
|
|
280
293
|
}, [value, adjustHeight]);
|
|
281
294
|
|
|
282
295
|
const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
|
|
296
|
+
onChange?.(e);
|
|
297
|
+
if (e.defaultPrevented) return;
|
|
283
298
|
setValue(e.target.value);
|
|
284
299
|
};
|
|
285
300
|
|
|
286
301
|
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
|
302
|
+
onKeyDown?.(e);
|
|
303
|
+
if (e.defaultPrevented) return;
|
|
287
304
|
if (submitOnEnter && e.key === 'Enter' && !e.shiftKey) {
|
|
288
305
|
e.preventDefault();
|
|
289
306
|
handleSubmit();
|
|
@@ -295,6 +312,7 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
|
|
|
295
312
|
return (
|
|
296
313
|
<textarea
|
|
297
314
|
ref={textareaRef}
|
|
315
|
+
{...htmlProps}
|
|
298
316
|
className={classes}
|
|
299
317
|
value={value}
|
|
300
318
|
onChange={handleChange}
|
|
@@ -302,7 +320,7 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
|
|
|
302
320
|
placeholder={overridePlaceholder ?? placeholder}
|
|
303
321
|
disabled={disabled || loading}
|
|
304
322
|
rows={minRows}
|
|
305
|
-
aria-label={overridePlaceholder ?? placeholder}
|
|
323
|
+
aria-label={ariaLabel ?? overridePlaceholder ?? placeholder}
|
|
306
324
|
/>
|
|
307
325
|
);
|
|
308
326
|
}
|
|
@@ -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 { RadioGroup } from '.';
|
|
4
4
|
|
|
5
5
|
export default defineFragment({
|
|
@@ -57,6 +57,10 @@ export default defineFragment({
|
|
|
57
57
|
type: 'function',
|
|
58
58
|
description: 'Callback when selection changes',
|
|
59
59
|
},
|
|
60
|
+
onChange: {
|
|
61
|
+
type: 'function',
|
|
62
|
+
description: 'Alias for onValueChange',
|
|
63
|
+
},
|
|
60
64
|
orientation: {
|
|
61
65
|
type: 'enum',
|
|
62
66
|
values: ['horizontal', 'vertical'],
|
|
@@ -82,6 +86,14 @@ export default defineFragment({
|
|
|
82
86
|
type: 'string',
|
|
83
87
|
description: 'Error message',
|
|
84
88
|
},
|
|
89
|
+
wrapperClassName: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'Class name for the outer wrapper element',
|
|
92
|
+
},
|
|
93
|
+
groupClassName: {
|
|
94
|
+
type: 'string',
|
|
95
|
+
description: 'Class name for the inner radio group element',
|
|
96
|
+
},
|
|
85
97
|
},
|
|
86
98
|
|
|
87
99
|
relations: [
|
|
@@ -106,9 +118,12 @@ export default defineFragment({
|
|
|
106
118
|
propsSummary: [
|
|
107
119
|
'value: string - selected value',
|
|
108
120
|
'onValueChange: (value: string) => void',
|
|
121
|
+
'onChange: (value: string) => void - alias for onValueChange',
|
|
109
122
|
'orientation: horizontal|vertical (default: vertical)',
|
|
110
123
|
'size: sm|md|lg (default: md)',
|
|
111
124
|
'disabled: boolean - disable all options',
|
|
125
|
+
'wrapperClassName/groupClassName - explicit styling targets for wrapper and group',
|
|
126
|
+
'RadioGroup.Item supports controlClassName/contentClassName for item-level styling',
|
|
112
127
|
],
|
|
113
128
|
scenarioTags: [
|
|
114
129
|
'form.selection',
|
|
@@ -190,5 +205,20 @@ export default defineFragment({
|
|
|
190
205
|
</RadioGroup>
|
|
191
206
|
),
|
|
192
207
|
},
|
|
208
|
+
{
|
|
209
|
+
name: 'Styling Targets',
|
|
210
|
+
description: 'Use explicit class names for wrapper/group/item styling hooks',
|
|
211
|
+
render: () => (
|
|
212
|
+
<RadioGroup
|
|
213
|
+
defaultValue="a"
|
|
214
|
+
label="Display mode"
|
|
215
|
+
wrapperClassName="demo-radio-wrapper"
|
|
216
|
+
groupClassName="demo-radio-group"
|
|
217
|
+
>
|
|
218
|
+
<RadioGroup.Item value="a" label="Compact" controlClassName="demo-radio-control" contentClassName="demo-radio-content" />
|
|
219
|
+
<RadioGroup.Item value="b" label="Comfortable" />
|
|
220
|
+
</RadioGroup>
|
|
221
|
+
),
|
|
222
|
+
},
|
|
193
223
|
],
|
|
194
224
|
});
|
|
@@ -20,6 +20,8 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
20
20
|
defaultValue?: string;
|
|
21
21
|
/** Callback when value changes */
|
|
22
22
|
onValueChange?: (value: string) => void;
|
|
23
|
+
/** Alias for onValueChange */
|
|
24
|
+
onChange?: (value: string) => void;
|
|
23
25
|
/** Orientation of the radio group */
|
|
24
26
|
orientation?: 'horizontal' | 'vertical';
|
|
25
27
|
/** Whether the group is disabled */
|
|
@@ -32,6 +34,10 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
32
34
|
error?: string;
|
|
33
35
|
/** Size variant */
|
|
34
36
|
size?: 'sm' | 'md' | 'lg';
|
|
37
|
+
/** Class applied to the outer wrapper (label + group + error) */
|
|
38
|
+
wrapperClassName?: string;
|
|
39
|
+
/** Class applied to the inner radio group container */
|
|
40
|
+
groupClassName?: string;
|
|
35
41
|
/** Children (Radio.Item components) */
|
|
36
42
|
children: React.ReactNode;
|
|
37
43
|
}
|
|
@@ -53,6 +59,10 @@ export interface RadioItemProps {
|
|
|
53
59
|
'aria-describedby'?: string;
|
|
54
60
|
/** Additional class name */
|
|
55
61
|
className?: string;
|
|
62
|
+
/** Class applied directly to the radio control */
|
|
63
|
+
controlClassName?: string;
|
|
64
|
+
/** Class applied to the item text content wrapper */
|
|
65
|
+
contentClassName?: string;
|
|
56
66
|
}
|
|
57
67
|
|
|
58
68
|
function mergeAriaIds(...ids: Array<string | undefined>): string | undefined {
|
|
@@ -79,6 +89,8 @@ function RadioItem({
|
|
|
79
89
|
'aria-labelledby': ariaLabelledBy,
|
|
80
90
|
'aria-describedby': ariaDescribedBy,
|
|
81
91
|
className,
|
|
92
|
+
controlClassName,
|
|
93
|
+
contentClassName,
|
|
82
94
|
}: RadioItemProps) {
|
|
83
95
|
const size = React.useContext(RadioSizeContext);
|
|
84
96
|
const id = React.useId();
|
|
@@ -89,6 +101,7 @@ function RadioItem({
|
|
|
89
101
|
styles.radio,
|
|
90
102
|
size === 'sm' && styles.radioSm,
|
|
91
103
|
size === 'lg' && styles.radioLg,
|
|
104
|
+
controlClassName,
|
|
92
105
|
].filter(Boolean).join(' ');
|
|
93
106
|
|
|
94
107
|
const labelClasses = [
|
|
@@ -131,7 +144,7 @@ function RadioItem({
|
|
|
131
144
|
>
|
|
132
145
|
<BaseRadio.Indicator className={styles.indicator} />
|
|
133
146
|
</BaseRadio.Root>
|
|
134
|
-
<div className={styles.content}>
|
|
147
|
+
<div className={[styles.content, contentClassName].filter(Boolean).join(' ')}>
|
|
135
148
|
<span id={labelId} className={labelClasses}>{label}</span>
|
|
136
149
|
{description && (
|
|
137
150
|
<span id={descriptionId} className={styles.description}>{description}</span>
|
|
@@ -149,12 +162,15 @@ function RadioGroupRoot({
|
|
|
149
162
|
value,
|
|
150
163
|
defaultValue,
|
|
151
164
|
onValueChange,
|
|
165
|
+
onChange,
|
|
152
166
|
orientation = 'vertical',
|
|
153
167
|
disabled = false,
|
|
154
168
|
name,
|
|
155
169
|
label,
|
|
156
170
|
error,
|
|
157
171
|
size = 'md',
|
|
172
|
+
wrapperClassName,
|
|
173
|
+
groupClassName,
|
|
158
174
|
children,
|
|
159
175
|
className,
|
|
160
176
|
'aria-label': ariaLabel,
|
|
@@ -170,16 +186,19 @@ function RadioGroupRoot({
|
|
|
170
186
|
styles.group,
|
|
171
187
|
styles[orientation],
|
|
172
188
|
className,
|
|
189
|
+
groupClassName,
|
|
173
190
|
].filter(Boolean).join(' ');
|
|
174
191
|
|
|
192
|
+
const handleValueChange = onChange ?? onValueChange;
|
|
193
|
+
|
|
175
194
|
return (
|
|
176
195
|
<RadioSizeContext.Provider value={size}>
|
|
177
|
-
<div {...htmlProps} className={styles.wrapper}>
|
|
196
|
+
<div {...htmlProps} className={[styles.wrapper, wrapperClassName].filter(Boolean).join(' ')}>
|
|
178
197
|
{label && <span id={labelId} className={styles.groupLabel}>{label}</span>}
|
|
179
198
|
<BaseRadioGroup
|
|
180
199
|
value={value}
|
|
181
200
|
defaultValue={defaultValue}
|
|
182
|
-
onValueChange={
|
|
201
|
+
onValueChange={handleValueChange}
|
|
183
202
|
disabled={disabled}
|
|
184
203
|
name={name}
|
|
185
204
|
aria-label={ariaLabel}
|
|
@@ -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 { ScrollArea } from '.';
|
|
4
4
|
|
|
5
5
|
const tags = ['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4', 'Tag 5', 'Tag 6', 'Tag 7', 'Tag 8', 'Tag 9', 'Tag 10', 'Tag 11', 'Tag 12', 'Tag 13', 'Tag 14', 'Tag 15'];
|
|
@@ -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 { Select } from '.';
|
|
4
4
|
|
|
5
5
|
// Stateful wrapper for interactive demos
|
|
@@ -72,6 +72,10 @@ export default defineFragment({
|
|
|
72
72
|
type: 'function',
|
|
73
73
|
description: 'Called when selection changes',
|
|
74
74
|
},
|
|
75
|
+
onChange: {
|
|
76
|
+
type: 'function',
|
|
77
|
+
description: 'Alias for onValueChange',
|
|
78
|
+
},
|
|
75
79
|
open: {
|
|
76
80
|
type: 'boolean',
|
|
77
81
|
description: 'Controlled open state of the dropdown',
|
|
@@ -94,6 +98,10 @@ export default defineFragment({
|
|
|
94
98
|
description: 'Disable the select',
|
|
95
99
|
default: 'false',
|
|
96
100
|
},
|
|
101
|
+
options: {
|
|
102
|
+
type: 'array',
|
|
103
|
+
description: 'Convenience options array for simple selects (alternative to compound Select.Item children)',
|
|
104
|
+
},
|
|
97
105
|
},
|
|
98
106
|
|
|
99
107
|
relations: [
|
|
@@ -104,10 +112,12 @@ export default defineFragment({
|
|
|
104
112
|
|
|
105
113
|
contract: {
|
|
106
114
|
propsSummary: [
|
|
107
|
-
'value: string - controlled selected value',
|
|
108
|
-
'onValueChange: (value) => void - selection handler',
|
|
115
|
+
'value: string | null - controlled selected value',
|
|
116
|
+
'onValueChange: (value: string | null) => void - selection handler',
|
|
117
|
+
'onChange: (value: string | null) => void - alias for onValueChange',
|
|
109
118
|
'placeholder: string - placeholder text',
|
|
110
119
|
'disabled: boolean - disable select',
|
|
120
|
+
'options: SelectOption[] - convenience API for simple option lists',
|
|
111
121
|
'maxVisibleItems: number - max visible options before scrolling (default 4)',
|
|
112
122
|
],
|
|
113
123
|
scenarioTags: [
|
|
@@ -234,5 +244,22 @@ export default defineFragment({
|
|
|
234
244
|
</Select>
|
|
235
245
|
),
|
|
236
246
|
},
|
|
247
|
+
{
|
|
248
|
+
name: 'Options Prop',
|
|
249
|
+
description: 'Convenience API for simple lists without manual Select.Item composition',
|
|
250
|
+
render: () => (
|
|
251
|
+
<StatefulSelect
|
|
252
|
+
placeholder="Select a team"
|
|
253
|
+
options={[
|
|
254
|
+
{ value: 'eng', label: 'Engineering' },
|
|
255
|
+
{ value: 'design', label: 'Design' },
|
|
256
|
+
{ value: 'pm', label: 'Product' },
|
|
257
|
+
]}
|
|
258
|
+
>
|
|
259
|
+
<Select.Trigger />
|
|
260
|
+
<Select.Content />
|
|
261
|
+
</StatefulSelect>
|
|
262
|
+
),
|
|
263
|
+
},
|
|
237
264
|
],
|
|
238
265
|
});
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
var(--fui-space-1, #{$fui-space-1}) * 2
|
|
97
97
|
) !important;
|
|
98
98
|
overflow-y: auto !important;
|
|
99
|
-
padding: var(--fui-
|
|
99
|
+
padding: var(--fui-space-1, $fui-space-1);
|
|
100
100
|
box-shadow: var(--fui-shadow-md, $fui-shadow-md);
|
|
101
101
|
|
|
102
102
|
// Animation
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
align-items: center;
|
|
129
129
|
gap: var(--fui-space-2, $fui-space-2);
|
|
130
130
|
width: 100%;
|
|
131
|
-
padding: var(--fui-
|
|
131
|
+
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
|
|
132
132
|
border-radius: var(--fui-radius-sm, $fui-radius-sm);
|
|
133
133
|
cursor: pointer;
|
|
134
134
|
outline: none;
|
|
@@ -178,7 +178,7 @@
|
|
|
178
178
|
|
|
179
179
|
// Group label
|
|
180
180
|
.groupLabel {
|
|
181
|
-
padding: var(--fui-
|
|
181
|
+
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
|
|
182
182
|
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
183
183
|
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
184
184
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|