@usefragments/ui 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -66
- package/dist/assets/fragments-wordmark.cjs +2 -2
- package/dist/assets/fragments-wordmark.d.ts.map +1 -1
- package/dist/assets/fragments-wordmark.js +2 -2
- package/dist/assets/nav-glyph.cjs +139 -0
- package/dist/assets/nav-glyph.d.ts +28 -0
- package/dist/assets/nav-glyph.d.ts.map +1 -0
- package/dist/assets/nav-glyph.js +139 -0
- package/dist/assets/nav-glyph.module.scss.cjs +71 -0
- package/dist/assets/nav-glyph.module.scss.js +71 -0
- package/dist/assets/ui.css +6885 -6308
- package/dist/blocks/components/StatsCard.d.ts +1 -1
- package/dist/blocks/components/StatsCard.d.ts.map +1 -1
- package/dist/chart.cjs +24 -6
- package/dist/chart.js +24 -6
- package/dist/codeblock.cjs +76 -43
- package/dist/codeblock.js +71 -38
- package/dist/colorpicker.cjs +4 -1
- package/dist/colorpicker.js +4 -1
- package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
- package/dist/components/Accordion/Accordion.module.scss.js +8 -8
- package/dist/components/Alert/Alert.module.scss.cjs +23 -20
- package/dist/components/Alert/Alert.module.scss.js +23 -20
- package/dist/components/Alert/index.cjs +20 -8
- package/dist/components/Alert/index.d.ts +17 -11
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +20 -8
- package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
- package/dist/components/AppShell/AppShell.module.scss.js +14 -14
- package/dist/components/AppShell/index.cjs +2 -2
- package/dist/components/AppShell/index.js +2 -2
- package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
- package/dist/components/Avatar/Avatar.module.scss.js +14 -14
- package/dist/components/Badge/Badge.module.scss.cjs +33 -31
- package/dist/components/Badge/Badge.module.scss.js +33 -31
- package/dist/components/Badge/index.cjs +13 -3
- package/dist/components/Badge/index.d.ts +18 -13
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +13 -3
- package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
- package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
- package/dist/components/Box/Box.module.scss.cjs +152 -152
- package/dist/components/Box/Box.module.scss.js +152 -152
- package/dist/components/Box/index.cjs +64 -75
- package/dist/components/Box/index.d.ts +16 -16
- package/dist/components/Box/index.d.ts.map +1 -1
- package/dist/components/Box/index.js +64 -75
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
- package/dist/components/Breadcrumbs/index.cjs +1 -1
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +1 -1
- package/dist/components/Button/Button.module.scss.cjs +36 -27
- package/dist/components/Button/Button.module.scss.js +36 -27
- package/dist/components/Button/index.cjs +20 -4
- package/dist/components/Button/index.d.ts +18 -10
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +20 -4
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
- package/dist/components/Card/Card.module.scss.cjs +31 -26
- package/dist/components/Card/Card.module.scss.js +32 -27
- package/dist/components/Card/index.cjs +16 -3
- package/dist/components/Card/index.d.ts +23 -15
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +16 -3
- package/dist/components/Chart/Chart.module.scss.cjs +15 -15
- package/dist/components/Chart/Chart.module.scss.js +15 -15
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
- package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
- package/dist/components/Checkbox/index.cjs +4 -4
- package/dist/components/Checkbox/index.d.ts +4 -6
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +4 -4
- package/dist/components/Chip/Chip.module.scss.cjs +19 -19
- package/dist/components/Chip/Chip.module.scss.js +19 -19
- package/dist/components/Chip/index.cjs +3 -3
- package/dist/components/Chip/index.d.ts +8 -3
- package/dist/components/Chip/index.d.ts.map +1 -1
- package/dist/components/Chip/index.js +3 -3
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
- package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
- package/dist/components/CodeBlock/css-variables-theme.js +98 -0
- package/dist/components/CodeBlock/index.d.ts +20 -5
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
- package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
- package/dist/components/Combobox/Combobox.module.scss.js +21 -21
- package/dist/components/Combobox/index.cjs +26 -6
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +26 -6
- package/dist/components/Command/Command.module.scss.cjs +14 -11
- package/dist/components/Command/Command.module.scss.js +14 -11
- package/dist/components/Command/index.cjs +28 -16
- package/dist/components/Command/index.d.ts +8 -3
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +28 -16
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
- package/dist/components/ConversationList/index.cjs +2 -2
- package/dist/components/ConversationList/index.js +2 -2
- package/dist/components/DataTable/DataTable.icons.cjs +6 -33
- package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.icons.js +6 -33
- package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
- package/dist/components/DataTable/DataTable.module.scss.js +31 -28
- package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
- package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
- package/dist/components/Dialog/Dialog.module.scss.js +14 -14
- package/dist/components/Dialog/index.cjs +13 -16
- package/dist/components/Dialog/index.d.ts +11 -10
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +13 -16
- package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
- package/dist/components/Drawer/Drawer.module.scss.js +40 -40
- package/dist/components/Drawer/index.cjs +2 -2
- package/dist/components/Drawer/index.d.ts +5 -4
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +2 -2
- package/dist/components/Editor/Editor.module.scss.cjs +17 -17
- package/dist/components/Editor/Editor.module.scss.js +17 -17
- package/dist/components/Editor/index.d.ts +10 -10
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
- package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
- package/dist/components/EmptyState/index.cjs +13 -6
- package/dist/components/EmptyState/index.d.ts +13 -5
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +13 -6
- package/dist/components/Field/Field.module.scss.cjs +5 -5
- package/dist/components/Field/Field.module.scss.js +5 -5
- package/dist/components/Field/index.cjs +9 -1
- package/dist/components/Field/index.d.ts.map +1 -1
- package/dist/components/Field/index.js +9 -1
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Grid/Grid.module.scss.cjs +54 -54
- package/dist/components/Grid/Grid.module.scss.js +54 -54
- package/dist/components/Grid/index.cjs +1 -1
- package/dist/components/Grid/index.js +1 -1
- package/dist/components/Header/Header.module.scss.cjs +33 -33
- package/dist/components/Header/Header.module.scss.js +33 -33
- package/dist/components/Header/index.cjs +17 -38
- package/dist/components/Header/index.d.ts +15 -11
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +17 -38
- package/dist/components/Icon/Icon.module.scss.cjs +30 -33
- package/dist/components/Icon/Icon.module.scss.js +30 -33
- package/dist/components/Icon/index.cjs +15 -14
- package/dist/components/Icon/index.d.ts +23 -12
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +15 -14
- package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
- package/dist/components/IconButton/IconButton.module.scss.js +12 -12
- package/dist/components/IconButton/index.cjs +2 -1
- package/dist/components/IconButton/index.d.ts +4 -4
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.js +2 -1
- package/dist/components/Image/Image.module.scss.cjs +27 -27
- package/dist/components/Image/Image.module.scss.js +27 -27
- package/dist/components/Input/Input.module.scss.cjs +15 -21
- package/dist/components/Input/Input.module.scss.js +15 -21
- package/dist/components/Input/index.cjs +2 -14
- package/dist/components/Input/index.d.ts +0 -2
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +2 -14
- package/dist/components/Link/Link.module.scss.cjs +26 -14
- package/dist/components/Link/Link.module.scss.js +26 -14
- package/dist/components/Link/index.cjs +13 -2
- package/dist/components/Link/index.d.ts +11 -4
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/Link/index.js +13 -2
- package/dist/components/List/List.module.scss.cjs +23 -19
- package/dist/components/List/List.module.scss.js +23 -19
- package/dist/components/List/index.cjs +7 -7
- package/dist/components/List/index.d.ts +10 -7
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +7 -7
- package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- package/dist/components/Loading/Loading.module.scss.cjs +34 -34
- package/dist/components/Loading/Loading.module.scss.js +34 -34
- package/dist/components/Loading/index.cjs +5 -5
- package/dist/components/Loading/index.d.ts +8 -7
- package/dist/components/Loading/index.d.ts.map +1 -1
- package/dist/components/Loading/index.js +5 -5
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +2 -2
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +14 -14
- package/dist/components/Menu/Menu.module.scss.js +14 -14
- package/dist/components/Message/Message.module.scss.cjs +20 -20
- package/dist/components/Message/Message.module.scss.js +20 -20
- package/dist/components/Message/index.cjs +1 -1
- package/dist/components/Message/index.d.ts +1 -1
- package/dist/components/Message/index.js +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
- package/dist/components/NavigationMenu/index.cjs +32 -15
- package/dist/components/NavigationMenu/index.d.ts +12 -6
- package/dist/components/NavigationMenu/index.d.ts.map +1 -1
- package/dist/components/NavigationMenu/index.js +32 -15
- package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
- package/dist/components/Pagination/Pagination.module.scss.js +10 -10
- package/dist/components/Popover/Popover.module.scss.cjs +10 -10
- package/dist/components/Popover/Popover.module.scss.js +10 -10
- package/dist/components/Progress/Progress.module.scss.cjs +28 -25
- package/dist/components/Progress/Progress.module.scss.js +28 -25
- package/dist/components/Progress/index.cjs +21 -12
- package/dist/components/Progress/index.d.ts +10 -6
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +21 -12
- package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
- package/dist/components/Prompt/Prompt.module.scss.js +30 -30
- package/dist/components/Prompt/index.cjs +7 -7
- package/dist/components/Prompt/index.d.ts +11 -9
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +7 -7
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
- package/dist/components/RadioGroup/index.cjs +10 -5
- package/dist/components/RadioGroup/index.d.ts +11 -7
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +10 -5
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
- package/dist/components/ScrollArea/index.d.ts +4 -4
- package/dist/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
- package/dist/components/Select/Select.module.scss.cjs +21 -21
- package/dist/components/Select/Select.module.scss.js +21 -21
- package/dist/components/Select/index.cjs +26 -20
- package/dist/components/Select/index.d.ts +5 -5
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +26 -20
- package/dist/components/Separator/Separator.module.scss.cjs +25 -19
- package/dist/components/Separator/Separator.module.scss.js +25 -19
- package/dist/components/Separator/index.cjs +10 -8
- package/dist/components/Separator/index.d.ts +4 -2
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +10 -8
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
- package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
- package/dist/components/Sidebar/index.cjs +15 -38
- package/dist/components/Sidebar/index.d.ts +19 -19
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +15 -38
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
- package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
- package/dist/components/Skeleton/index.cjs +7 -7
- package/dist/components/Skeleton/index.d.ts +8 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +7 -7
- package/dist/components/Slider/Slider.module.scss.cjs +12 -12
- package/dist/components/Slider/Slider.module.scss.js +12 -12
- package/dist/components/Stack/Stack.module.scss.cjs +25 -25
- package/dist/components/Stack/Stack.module.scss.js +25 -25
- package/dist/components/Stack/index.cjs +1 -1
- package/dist/components/Stack/index.js +1 -1
- package/dist/components/Switch/Switch.module.scss.cjs +9 -9
- package/dist/components/Switch/Switch.module.scss.js +9 -9
- package/dist/components/Table/Table.module.scss.cjs +19 -19
- package/dist/components/Table/Table.module.scss.js +19 -19
- package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
- package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
- package/dist/components/TableOfContents/index.cjs +14 -10
- package/dist/components/TableOfContents/index.d.ts +5 -3
- package/dist/components/TableOfContents/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.js +14 -10
- package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
- package/dist/components/Tabs/Tabs.module.scss.js +18 -18
- package/dist/components/Tabs/index.cjs +30 -11
- package/dist/components/Tabs/index.d.ts +8 -6
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +30 -11
- package/dist/components/Text/Text.module.scss.cjs +109 -97
- package/dist/components/Text/Text.module.scss.js +109 -97
- package/dist/components/Text/index.cjs +45 -41
- package/dist/components/Text/index.d.ts +24 -19
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +45 -41
- package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
- package/dist/components/Textarea/Textarea.module.scss.js +22 -28
- package/dist/components/Textarea/index.cjs +3 -10
- package/dist/components/Textarea/index.d.ts +0 -2
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +3 -10
- package/dist/components/Theme/index.cjs +22 -5
- package/dist/components/Theme/index.d.ts +6 -12
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +22 -5
- package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
- package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
- package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
- package/dist/components/ThemeToggle/ThemeButton.js +34 -0
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
- package/dist/components/ThemeToggle/icons.cjs +48 -0
- package/dist/components/ThemeToggle/icons.d.ts +10 -0
- package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
- package/dist/components/ThemeToggle/icons.js +48 -0
- package/dist/components/ThemeToggle/index.cjs +6 -50
- package/dist/components/ThemeToggle/index.d.ts +5 -3
- package/dist/components/ThemeToggle/index.d.ts.map +1 -1
- package/dist/components/ThemeToggle/index.js +3 -47
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
- package/dist/components/ThinkingIndicator/index.cjs +7 -8
- package/dist/components/ThinkingIndicator/index.d.ts +6 -5
- package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
- package/dist/components/ThinkingIndicator/index.js +7 -8
- package/dist/components/Toast/Toast.module.scss.cjs +28 -29
- package/dist/components/Toast/Toast.module.scss.js +29 -30
- package/dist/components/Toast/index.cjs +28 -30
- package/dist/components/Toast/index.d.ts +9 -8
- package/dist/components/Toast/index.d.ts.map +1 -1
- package/dist/components/Toast/index.js +28 -30
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
- package/dist/components/ToggleGroup/index.cjs +4 -5
- package/dist/components/ToggleGroup/index.d.ts +7 -6
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +4 -5
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
- package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
- package/dist/components/Tooltip/index.cjs +24 -40
- package/dist/components/Tooltip/index.d.ts +4 -4
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +24 -40
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
- package/dist/components/VisuallyHidden/index.d.ts +2 -2
- package/dist/data-table-virtual.cjs +3 -2
- package/dist/data-table-virtual.js +3 -2
- package/dist/data-table.cjs +3 -2
- package/dist/data-table.js +3 -2
- package/dist/datepicker.cjs +26 -13
- package/dist/datepicker.js +26 -13
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +6 -2
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +21 -29
- package/dist/measurements/generated.cjs +46 -94
- package/dist/measurements/generated.d.ts +44 -92
- package/dist/measurements/generated.d.ts.map +1 -1
- package/dist/measurements/generated.js +46 -94
- package/dist/measurements/index.d.ts +1 -1
- package/dist/measurements/index.d.ts.map +1 -1
- package/dist/utils/a11y.cjs +5 -2
- package/dist/utils/a11y.d.ts +5 -5
- package/dist/utils/a11y.d.ts.map +1 -1
- package/dist/utils/a11y.js +5 -2
- package/dist/utils/canonical-stamp.cjs +2 -8
- package/dist/utils/canonical-stamp.d.ts.map +1 -1
- package/dist/utils/canonical-stamp.js +1 -7
- package/dist/utils/css-warning.cjs +1 -1
- package/dist/utils/css-warning.js +1 -1
- package/dist/utils/env.cjs +17 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +17 -0
- package/dist/utils/keyboard-shortcuts.cjs +3 -10
- package/dist/utils/keyboard-shortcuts.d.ts +4 -4
- package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
- package/dist/utils/keyboard-shortcuts.js +3 -10
- package/dist/utils/seed-derivation.cjs +10 -7
- package/dist/utils/seed-derivation.d.ts +1 -3
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +10 -7
- package/dist/utils/theme-presets.cjs +5 -10
- package/dist/utils/theme-presets.d.ts +1 -2
- package/dist/utils/theme-presets.d.ts.map +1 -1
- package/dist/utils/theme-presets.js +5 -10
- package/fragments.json +1 -1
- package/package.json +9 -10
- package/src/assets/fragments-logo.tsx +2 -2
- package/src/assets/fragments-wordmark.tsx +4 -2
- package/src/assets/nav-glyph.module.scss +166 -0
- package/src/assets/nav-glyph.tsx +188 -0
- package/src/components/Accordion/Accordion.contract.json +24 -48
- package/src/components/Accordion/Accordion.module.scss +5 -3
- package/src/components/Alert/Alert.contract.json +49 -65
- package/src/components/Alert/Alert.module.scss +57 -47
- package/src/components/Alert/index.tsx +72 -39
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +99 -54
- package/src/components/AppShell/index.tsx +2 -2
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +4 -2
- package/src/components/Badge/Badge.contract.json +86 -55
- package/src/components/Badge/Badge.module.scss +80 -48
- package/src/components/Badge/index.tsx +34 -17
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/Box.module.scss +7 -6
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
- package/src/components/Breadcrumbs/index.tsx +5 -1
- package/src/components/Button/Button.module.scss +261 -185
- package/src/components/Button/index.tsx +41 -28
- package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
- package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
- package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
- package/src/components/Card/Card.module.scss +97 -76
- package/src/components/Card/index.tsx +44 -20
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/Chart.module.scss +6 -5
- package/src/components/Chart/index.tsx +36 -6
- package/src/components/Checkbox/Checkbox.contract.json +28 -27
- package/src/components/Checkbox/Checkbox.module.scss +47 -54
- package/src/components/Checkbox/index.tsx +10 -10
- package/src/components/Chip/Chip.contract.json +38 -45
- package/src/components/Chip/Chip.module.scss +24 -23
- package/src/components/Chip/index.tsx +12 -7
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
- package/src/components/CodeBlock/css-variables-theme.ts +102 -0
- package/src/components/CodeBlock/index.tsx +114 -51
- package/src/components/Collapsible/Collapsible.contract.json +21 -36
- package/src/components/Collapsible/Collapsible.module.scss +1 -7
- package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
- package/src/components/ColorPicker/index.tsx +6 -1
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +16 -19
- package/src/components/Combobox/index.tsx +41 -6
- package/src/components/Command/Command.contract.json +28 -44
- package/src/components/Command/Command.module.scss +19 -21
- package/src/components/Command/index.tsx +64 -47
- package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/ConversationList/ConversationList.module.scss +2 -3
- package/src/components/ConversationList/index.tsx +2 -2
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +24 -17
- package/src/components/DataTable/DataTable.virtual.tsx +3 -2
- package/src/components/DataTable/index.tsx +9 -8
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +41 -44
- package/src/components/DatePicker/index.tsx +23 -9
- package/src/components/Dialog/Dialog.module.scss +26 -32
- package/src/components/Dialog/index.tsx +51 -39
- package/src/components/Drawer/Drawer.contract.json +28 -42
- package/src/components/Drawer/Drawer.module.scss +123 -64
- package/src/components/Drawer/index.tsx +7 -5
- package/src/components/Editor/Editor.contract.json +32 -49
- package/src/components/Editor/Editor.module.scss +60 -25
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +33 -45
- package/src/components/EmptyState/EmptyState.module.scss +37 -21
- package/src/components/EmptyState/index.tsx +56 -23
- package/src/components/Field/Field.contract.json +28 -46
- package/src/components/Field/Field.module.scss +2 -1
- package/src/components/Field/index.tsx +5 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +15 -7
- package/src/components/Form/Form.contract.json +23 -23
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/Grid.module.scss +2 -2
- package/src/components/Grid/index.tsx +10 -10
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +57 -54
- package/src/components/Header/index.tsx +134 -122
- package/src/components/Icon/Icon.contract.json +37 -81
- package/src/components/Icon/Icon.module.scss +13 -12
- package/src/components/Icon/index.tsx +31 -31
- package/src/components/IconButton/IconButton.contract.json +37 -21
- package/src/components/IconButton/IconButton.module.scss +19 -11
- package/src/components/IconButton/index.tsx +6 -5
- package/src/components/Image/Image.contract.json +23 -56
- package/src/components/Input/Input.contract.json +25 -44
- package/src/components/Input/Input.module.scss +6 -55
- package/src/components/Input/index.tsx +2 -18
- package/src/components/Link/Link.contract.json +46 -58
- package/src/components/Link/Link.module.scss +41 -10
- package/src/components/Link/index.tsx +27 -6
- package/src/components/List/List.contract.json +33 -62
- package/src/components/List/List.module.scss +10 -5
- package/src/components/List/index.tsx +17 -13
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Listbox/Listbox.module.scss +14 -20
- package/src/components/Loading/Loading.contract.json +41 -65
- package/src/components/Loading/Loading.module.scss +37 -31
- package/src/components/Loading/index.tsx +15 -14
- package/src/components/Main/Main.contract.json +17 -9
- package/src/components/Markdown/Markdown.contract.json +22 -43
- package/src/components/Markdown/Markdown.module.scss +45 -6
- package/src/components/Markdown/index.tsx +48 -49
- package/src/components/Menu/Menu.contract.json +30 -46
- package/src/components/Menu/Menu.module.scss +32 -16
- package/src/components/Message/Message.contract.json +31 -54
- package/src/components/Message/Message.module.scss +18 -9
- package/src/components/Message/index.tsx +2 -2
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +9 -16
- package/src/components/Popover/Popover.contract.json +28 -50
- package/src/components/Popover/Popover.module.scss +30 -28
- package/src/components/Progress/Progress.contract.json +39 -35
- package/src/components/Progress/Progress.module.scss +16 -10
- package/src/components/Progress/index.tsx +34 -16
- package/src/components/Prompt/Prompt.contract.json +40 -56
- package/src/components/Prompt/Prompt.module.scss +49 -48
- package/src/components/Prompt/index.tsx +17 -15
- package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
- package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
- package/src/components/RadioGroup/index.tsx +23 -10
- package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
- package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
- package/src/components/ScrollArea/index.tsx +16 -16
- package/src/components/ScrollArea/scroll-state.ts +24 -24
- package/src/components/Select/Select.module.scss +20 -19
- package/src/components/Select/index.tsx +26 -24
- package/src/components/Separator/Separator.contract.json +29 -53
- package/src/components/Separator/Separator.module.scss +24 -40
- package/src/components/Separator/index.tsx +16 -11
- package/src/components/Sidebar/Sidebar.contract.json +35 -67
- package/src/components/Sidebar/Sidebar.module.scss +94 -88
- package/src/components/Sidebar/index.tsx +167 -167
- package/src/components/Skeleton/Skeleton.contract.json +34 -60
- package/src/components/Skeleton/Skeleton.module.scss +50 -26
- package/src/components/Skeleton/index.tsx +16 -15
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +9 -22
- package/src/components/Stack/Stack.contract.json +30 -57
- package/src/components/Stack/Stack.module.scss +26 -24
- package/src/components/Stack/index.tsx +3 -3
- package/src/components/Switch/Switch.contract.json +33 -46
- package/src/components/Switch/Switch.module.scss +106 -59
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +24 -16
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
- package/src/components/TableOfContents/index.tsx +27 -10
- package/src/components/Tabs/Tabs.contract.json +35 -56
- package/src/components/Tabs/Tabs.module.scss +27 -31
- package/src/components/Tabs/index.tsx +30 -15
- package/src/components/Text/Text.contract.json +52 -72
- package/src/components/Text/Text.module.scss +34 -18
- package/src/components/Text/index.tsx +123 -83
- package/src/components/Textarea/Textarea.contract.json +24 -55
- package/src/components/Textarea/Textarea.module.scss +22 -52
- package/src/components/Textarea/index.tsx +3 -14
- package/src/components/Theme/Theme.contract.json +35 -53
- package/src/components/Theme/index.tsx +41 -13
- package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
- package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
- package/src/components/ThemeToggle/icons.tsx +46 -0
- package/src/components/ThemeToggle/index.tsx +9 -55
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
- package/src/components/ThinkingIndicator/index.tsx +12 -14
- package/src/components/Toast/Toast.contract.json +55 -49
- package/src/components/Toast/Toast.module.scss +50 -105
- package/src/components/Toast/index.tsx +39 -34
- package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
- package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
- package/src/components/ToggleGroup/index.tsx +11 -11
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/Tooltip.module.scss +16 -10
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +16 -12
- package/src/measurements/MeasurementTargets.module.scss +6 -7
- package/src/measurements/generated.ts +46 -97
- package/src/measurements/index.ts +0 -1
- package/src/measurements/measurements.json +44 -116
- package/src/recipes/_action.scss +4 -4
- package/src/recipes/_boolean-range.scss +12 -16
- package/src/recipes/_feedback.scss +17 -16
- package/src/recipes/_field.scss +28 -16
- package/src/recipes/_layout.scss +14 -7
- package/src/recipes/_navigation.scss +84 -29
- package/src/recipes/_overlay.scss +143 -43
- package/src/recipes/_popup.scss +54 -34
- package/src/recipes/_prose.scss +48 -28
- package/src/recipes/_representation.scss +10 -9
- package/src/recipes/_segmented.scss +1 -1
- package/src/recipes/_table-chrome.scss +42 -17
- package/src/recipes/_target.scss +2 -4
- package/src/recipes/_typography.scss +10 -0
- package/src/scss.d.ts +1 -1
- package/src/styles/globals.scss +31 -25
- package/src/tokens/_component-properties.scss +19 -1
- package/src/tokens/_computed.scss +32 -49
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +62 -44
- package/src/tokens/_measurements.generated.scss +119 -249
- package/src/tokens/_mixins.scss +49 -48
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_property-registrations.scss +9 -0
- package/src/tokens/_seeds.scss +20 -31
- package/src/tokens/_variables.scss +251 -94
- package/src/utils/a11y.tsx +69 -69
- package/src/utils/aria.ts +3 -3
- package/src/utils/canonical-stamp.ts +2 -12
- package/src/utils/css-warning.ts +7 -7
- package/src/utils/env.ts +25 -0
- package/src/utils/keyboard-shortcuts.ts +131 -126
- package/src/utils/seed-derivation.ts +11 -14
- package/src/utils/theme-presets.ts +5 -12
- package/dist/blocks/AccountSettings.block.d.ts +0 -3
- package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
- package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
- package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/BlogEditor.block.d.ts +0 -3
- package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
- package/dist/blocks/ChatInterface.block.d.ts +0 -3
- package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
- package/dist/blocks/ChatMessages.block.d.ts +0 -3
- package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
- package/dist/blocks/CheckoutForm.block.d.ts +0 -3
- package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
- package/dist/blocks/CommandPalette.block.d.ts +0 -3
- package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
- package/dist/blocks/ContactForm.block.d.ts +0 -3
- package/dist/blocks/ContactForm.block.d.ts.map +0 -1
- package/dist/blocks/DashboardPage.block.d.ts +0 -3
- package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
- package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
- package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/DataTable.block.d.ts +0 -3
- package/dist/blocks/DataTable.block.d.ts.map +0 -1
- package/dist/blocks/EmptyState.block.d.ts +0 -3
- package/dist/blocks/EmptyState.block.d.ts.map +0 -1
- package/dist/blocks/FAQSection.block.d.ts +0 -3
- package/dist/blocks/FAQSection.block.d.ts.map +0 -1
- package/dist/blocks/FeatureGrid.block.d.ts +0 -3
- package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
- package/dist/blocks/HeroSection.block.d.ts +0 -3
- package/dist/blocks/HeroSection.block.d.ts.map +0 -1
- package/dist/blocks/NavigationHeader.block.d.ts +0 -3
- package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
- package/dist/blocks/PaginatedTable.block.d.ts +0 -3
- package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
- package/dist/blocks/PricingComparison.block.d.ts +0 -3
- package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
- package/dist/blocks/ProductCard.block.d.ts +0 -3
- package/dist/blocks/ProductCard.block.d.ts.map +0 -1
- package/dist/blocks/RegistrationForm.block.d.ts +0 -3
- package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
- package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
- package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
- package/dist/blocks/SettingsPanel.block.d.ts +0 -3
- package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
- package/dist/blocks/ShoppingCart.block.d.ts +0 -3
- package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
- package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
- package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/TableSkeleton.block.d.ts +0 -3
- package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
- package/dist/blocks/ThinkingStates.block.d.ts +0 -3
- package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
- package/dist/components/Toggle/index.d.ts +0 -3
- package/dist/components/Toggle/index.d.ts.map +0 -1
- package/src/components/Button/Button.contract.json +0 -218
- package/src/components/Card/Card.contract.json +0 -175
- package/src/components/DataTable/DataTable.contract.json +0 -302
- package/src/components/Dialog/Dialog.contract.json +0 -159
- package/src/components/Select/Select.contract.json +0 -259
- package/src/components/Toggle/index.ts +0 -7
- package/src/tokens/_density.scss +0 -85
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://usefragments.com/schemas/contract.v1.json",
|
|
3
3
|
"name": "Prompt",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Collects multi-line input for AI and chat interfaces.",
|
|
5
5
|
"category": "ai",
|
|
6
|
-
"tags": [
|
|
7
|
-
"prompt",
|
|
8
|
-
"chat",
|
|
9
|
-
"ai",
|
|
10
|
-
"input",
|
|
11
|
-
"textarea",
|
|
12
|
-
"form"
|
|
13
|
-
],
|
|
6
|
+
"tags": ["prompt", "chat", "ai", "input", "textarea", "form"],
|
|
14
7
|
"status": "stable",
|
|
15
8
|
"sourcePath": "src/components/Prompt/index.tsx",
|
|
16
9
|
"exportName": "Prompt",
|
|
@@ -27,8 +20,8 @@
|
|
|
27
20
|
"maxRows: number (default: 8)",
|
|
28
21
|
"autoResize: boolean (default: true)",
|
|
29
22
|
"submitOnEnter: boolean (default: true)",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
23
|
+
"placement: inline|fixed|sticky (default: inline)",
|
|
24
|
+
"variant: outline|ghost (default: outline)",
|
|
32
25
|
"onFiles: function",
|
|
33
26
|
"accept: string"
|
|
34
27
|
],
|
|
@@ -101,16 +94,12 @@
|
|
|
101
94
|
"default": "true",
|
|
102
95
|
"required": false
|
|
103
96
|
},
|
|
104
|
-
"
|
|
97
|
+
"placement": {
|
|
105
98
|
"type": "enum",
|
|
106
|
-
"description": "
|
|
107
|
-
"default": "
|
|
99
|
+
"description": "Where the card sits: inline in the flow, fixed to the viewport bottom, or sticky to the content area (offset by --fui-prompt-inset-left)",
|
|
100
|
+
"default": "inline",
|
|
108
101
|
"required": false,
|
|
109
|
-
"values": [
|
|
110
|
-
"default",
|
|
111
|
-
"fixed",
|
|
112
|
-
"sticky"
|
|
113
|
-
]
|
|
102
|
+
"values": ["inline", "fixed", "sticky"]
|
|
114
103
|
},
|
|
115
104
|
"onFiles": {
|
|
116
105
|
"type": "function",
|
|
@@ -122,42 +111,35 @@
|
|
|
122
111
|
"description": "accept filter for the attach button's picker, e.g. \"image/*\"",
|
|
123
112
|
"required": false
|
|
124
113
|
},
|
|
125
|
-
"
|
|
114
|
+
"variant": {
|
|
126
115
|
"type": "enum",
|
|
127
|
-
"description": "
|
|
128
|
-
"default": "
|
|
116
|
+
"description": "Card chrome. \"outline\" keeps the toolbar as a filled footer under a rule; \"ghost\" makes the whole card one writing surface with the controls floating on it.",
|
|
117
|
+
"default": "outline",
|
|
129
118
|
"required": false,
|
|
130
|
-
"values": [
|
|
131
|
-
"panel",
|
|
132
|
-
"seamless"
|
|
133
|
-
]
|
|
119
|
+
"values": ["outline", "ghost"]
|
|
134
120
|
}
|
|
135
121
|
},
|
|
136
122
|
"usage": {
|
|
137
123
|
"when": [
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
124
|
+
"Chat and AI assistant interfaces",
|
|
125
|
+
"Multi-line input with a submit action",
|
|
126
|
+
"Toolbars carrying attachments or a model picker"
|
|
141
127
|
],
|
|
142
128
|
"whenNot": [
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"Search-only
|
|
129
|
+
"Single-line text (use Input)",
|
|
130
|
+
"Multi-line with no toolbar (use Textarea)",
|
|
131
|
+
"Search-only fields (use Input with the search variant)"
|
|
146
132
|
],
|
|
147
133
|
"guidelines": [
|
|
148
|
-
"Always
|
|
149
|
-
"
|
|
150
|
-
"Prompt.Textarea forwards native textarea props
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"Prompt.
|
|
157
|
-
"Use Prompt.ModeButton for a setting you toggle and Prompt.Select for one you pick from a list",
|
|
158
|
-
"Wire onFiles once: the attach button, pasting a screenshot and dropping on the card all go through it",
|
|
159
|
-
"Render Prompt.Attachments above Prompt.Textarea — attachments are part of the message, not a setting on it",
|
|
160
|
-
"Consider showing usage/token limits for AI contexts"
|
|
134
|
+
"Always pass an onSubmit handler",
|
|
135
|
+
"Set loading while the request is in flight to block duplicate sends",
|
|
136
|
+
"Prompt.Textarea forwards native textarea props and composes your own handlers",
|
|
137
|
+
"variant=\"ghost\" floats the controls on the writing surface instead of a footer",
|
|
138
|
+
"Seamless secondary controls stay transparent; only Prompt.Submit keeps a filled shape",
|
|
139
|
+
"Prompt.Submit uses a neutral inverse surface, never semantic brand color",
|
|
140
|
+
"Prompt.ModeButton toggles a setting; Prompt.Select picks one from a list",
|
|
141
|
+
"Wire onFiles once — the attach button, paste, and drop all route through it",
|
|
142
|
+
"Render Prompt.Attachments above Prompt.Textarea; they are part of the message"
|
|
161
143
|
],
|
|
162
144
|
"accessibility": [
|
|
163
145
|
"Enter submits, Shift+Enter for newline",
|
|
@@ -168,32 +150,37 @@
|
|
|
168
150
|
"examples": [
|
|
169
151
|
{
|
|
170
152
|
"name": "Basic",
|
|
171
|
-
"description": "
|
|
153
|
+
"description": "A textarea and a submit button, nothing else.",
|
|
172
154
|
"code": "<Prompt onSubmit={(value) => console.log(value)}>\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions />\n <Prompt.Info>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
173
155
|
},
|
|
174
156
|
{
|
|
175
157
|
"name": "With Actions",
|
|
176
|
-
"description": "
|
|
158
|
+
"description": "Attach and mode controls sit to the left of submit.",
|
|
177
159
|
"code": "<Prompt onSubmit={(value) => console.log(value)}>\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.ActionButton aria-label=\"Add attachment\">\n +\n </Prompt.ActionButton>\n <Prompt.ModeButton>Auto</Prompt.ModeButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
178
160
|
},
|
|
179
161
|
{
|
|
180
162
|
"name": "With Usage",
|
|
181
|
-
"description": "
|
|
163
|
+
"description": "A quota readout sits beside the submit button.",
|
|
182
164
|
"code": "<Prompt onSubmit={(value) => console.log(value)}>\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.ActionButton aria-label=\"Add attachment\">\n +\n </Prompt.ActionButton>\n <Prompt.ModeButton active>Auto</Prompt.ModeButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Usage>52% used</Prompt.Usage>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
183
165
|
},
|
|
184
166
|
{
|
|
185
167
|
"name": "Agent Composer",
|
|
186
|
-
"description": "
|
|
187
|
-
"code": "<Prompt\n
|
|
168
|
+
"description": "Controls float on the writing surface instead of a footer.",
|
|
169
|
+
"code": "<Prompt\n variant=\"ghost\"\n submitOnEnter={false}\n minRows={3}\n onSubmit={(value) => console.log(value)}\n>\n <Prompt.Textarea placeholder=\"What should be true when this is done?\" />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.Select\n aria-label=\"Model\"\n defaultValue=\"claude-opus-4-8\"\n options={[{ value: 'claude-opus-4-8', label: 'Opus 4.8' }, { value: 'claude-sonnet-5', label: 'Sonnet 5' }]}\n />\n <Prompt.ModeButton>Plan</Prompt.ModeButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "With Attachments",
|
|
173
|
+
"description": "Staged files list above the text they belong to.",
|
|
174
|
+
"code": "<Prompt onSubmit={(value) => console.log(value)}>\n <Prompt.Attachments\n items={[\n { id: '1', name: 'findings-export.csv', size: 20480 },\n { id: '2', name: 'dashboard.png', size: 153600 },\n ]}\n onRemove={(id) => console.log(id)}\n />\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.ActionButton aria-label=\"Add attachment\">\n +\n </Prompt.ActionButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
188
175
|
},
|
|
189
176
|
{
|
|
190
177
|
"name": "Loading State",
|
|
191
|
-
"description": "
|
|
178
|
+
"description": "Input locks and submit spins while the request runs.",
|
|
192
179
|
"code": "<Prompt\n onSubmit={(value) => console.log(value)}\n loading\n defaultValue=\"Tell me about the weather...\"\n>\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.ActionButton aria-label=\"Add attachment\">\n +\n </Prompt.ActionButton>\n <Prompt.ModeButton>Auto</Prompt.ModeButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Usage>52% used</Prompt.Usage>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
193
180
|
},
|
|
194
181
|
{
|
|
195
182
|
"name": "Disabled",
|
|
196
|
-
"description": "
|
|
183
|
+
"description": "Everything dims and stops responding to input.",
|
|
197
184
|
"code": "<Prompt onSubmit={(value) => console.log(value)} disabled>\n <Prompt.Textarea />\n <Prompt.Toolbar>\n <Prompt.Actions>\n <Prompt.ActionButton aria-label=\"Add attachment\">\n +\n </Prompt.ActionButton>\n </Prompt.Actions>\n <Prompt.Info>\n <Prompt.Submit />\n </Prompt.Info>\n </Prompt.Toolbar>\n</Prompt>"
|
|
198
185
|
}
|
|
199
186
|
],
|
|
@@ -220,10 +207,7 @@
|
|
|
220
207
|
"submitOnEnter: boolean - Enter key behavior (default: true)",
|
|
221
208
|
"Prompt.Textarea accepts native textarea props and optional aria-label override"
|
|
222
209
|
],
|
|
223
|
-
"a11yRules": [
|
|
224
|
-
"A11Y_TEXTAREA_LABEL",
|
|
225
|
-
"A11Y_BUTTON_LABEL"
|
|
226
|
-
]
|
|
210
|
+
"a11yRules": ["A11Y_TEXTAREA_LABEL", "A11Y_BUTTON_LABEL"]
|
|
227
211
|
},
|
|
228
212
|
"ai": {
|
|
229
213
|
"compositionPattern": "compound",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use "../../tokens/variables" as *;
|
|
2
2
|
@use "../../tokens/mixins" as *;
|
|
3
|
+
@use "../../tokens/measurements.generated" as measurements;
|
|
3
4
|
@use "../../recipes/action" as action;
|
|
4
5
|
@use "../../recipes/layout" as layout;
|
|
5
6
|
@use "../../recipes/target" as target;
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
|
|
30
31
|
// Gradient layer (behind everything)
|
|
31
32
|
&::before {
|
|
32
|
-
inset: -
|
|
33
|
+
inset: calc(-1 * var(--fui-stroke-hairline, #{$fui-stroke-hairline}));
|
|
33
34
|
z-index: 0;
|
|
34
35
|
background: conic-gradient(
|
|
35
36
|
from var(--beam-angle, 0deg) at 50% 50%,
|
|
@@ -42,14 +43,16 @@
|
|
|
42
43
|
transparent 75%,
|
|
43
44
|
transparent 100%
|
|
44
45
|
);
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
// Ambient loop: twice the shimmer beat, kept on the token scale.
|
|
47
|
+
animation: beam-rotate calc(var(--fui-duration-shimmer, #{$fui-duration-shimmer}) * 2) linear
|
|
48
|
+
infinite;
|
|
49
|
+
opacity: var(--fui-opacity-disabled, #{$fui-opacity-disabled});
|
|
47
50
|
transition: opacity var(--fui-transition-normal, $fui-transition-normal);
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
// Mask layer — covers the interior, leaving only the 1px border visible
|
|
51
54
|
&::after {
|
|
52
|
-
inset:
|
|
55
|
+
inset: var(--fui-stroke-hairline, #{$fui-stroke-hairline});
|
|
53
56
|
z-index: 1;
|
|
54
57
|
background: var(--fui-bg-elevated, $fui-bg-elevated);
|
|
55
58
|
}
|
|
@@ -65,12 +68,13 @@
|
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
&[data-disabled] {
|
|
68
|
-
|
|
71
|
+
@include disabled-state;
|
|
72
|
+
|
|
69
73
|
pointer-events: none;
|
|
70
74
|
|
|
71
75
|
&::before {
|
|
72
76
|
animation-play-state: paused;
|
|
73
|
-
opacity:
|
|
77
|
+
opacity: calc(var(--fui-opacity-disabled, #{$fui-opacity-disabled}) * var(--fui-opacity-disabled, #{$fui-opacity-disabled}));
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
}
|
|
@@ -90,7 +94,7 @@
|
|
|
90
94
|
inherits: false;
|
|
91
95
|
}
|
|
92
96
|
|
|
93
|
-
// Fixed
|
|
97
|
+
// Fixed placement - for viewport-fixed prompts (centered to page)
|
|
94
98
|
.fixed {
|
|
95
99
|
position: fixed;
|
|
96
100
|
bottom: var(--fui-space-4, $fui-space-4);
|
|
@@ -102,7 +106,7 @@
|
|
|
102
106
|
box-shadow: var(--fui-shadow-lg, $fui-shadow-lg);
|
|
103
107
|
}
|
|
104
108
|
|
|
105
|
-
// Sticky
|
|
109
|
+
// Sticky placement - for content-area fixed prompts (accounts for sidebar)
|
|
106
110
|
// Use --fui-prompt-inset-left CSS variable to offset from sidebar
|
|
107
111
|
.sticky {
|
|
108
112
|
position: fixed;
|
|
@@ -122,7 +126,7 @@
|
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
// ============================================
|
|
125
|
-
//
|
|
129
|
+
// Ghost variant
|
|
126
130
|
// ============================================
|
|
127
131
|
|
|
128
132
|
// One continuous writing surface instead of a field with a footer.
|
|
@@ -133,12 +137,13 @@
|
|
|
133
137
|
// resting on it — which is what makes the text you are writing the only thing
|
|
134
138
|
// with any weight. Each selector below is one class deeper than the rule it
|
|
135
139
|
// replaces, so this wins wherever the stylesheet happens to land.
|
|
140
|
+
// (`variant="ghost"`; the default `outline` card is the rules above.)
|
|
136
141
|
//
|
|
137
142
|
// One gutter runs down the card. `--_gutter` is the distance from the card's
|
|
138
143
|
// edge to the ink of everything in it, and every child is padded from it
|
|
139
144
|
// rather than given a number of its own, so the placeholder, the first glyph
|
|
140
145
|
// in the toolbar and any attachment chip all sit on the same line.
|
|
141
|
-
.
|
|
146
|
+
.ghost {
|
|
142
147
|
--_gutter: var(--fui-space-3, #{$fui-space-3});
|
|
143
148
|
// Every band is inset by its own children's padding, so what lands on the
|
|
144
149
|
// gutter is the ink — the first character of the placeholder, the first glyph
|
|
@@ -152,7 +157,7 @@
|
|
|
152
157
|
border-radius: var(--fui-radius-xl, $fui-radius-xl);
|
|
153
158
|
|
|
154
159
|
// The beam draws a 1px animated border by painting a gradient and masking
|
|
155
|
-
// out everything but the edge.
|
|
160
|
+
// out everything but the edge. Ghost has no edge to draw, so both layers
|
|
156
161
|
// go and the card paints its own surface instead of borrowing the mask's.
|
|
157
162
|
&::before,
|
|
158
163
|
&::after {
|
|
@@ -168,7 +173,7 @@
|
|
|
168
173
|
.toolbar {
|
|
169
174
|
background-color: transparent;
|
|
170
175
|
border-top: none;
|
|
171
|
-
padding: 0 calc(var(--_gutter) - var(--_control-padding)) var(--_gutter);
|
|
176
|
+
padding: var(--fui-raw-space-0, #{measurements.raw-space(0)}) calc(var(--_gutter, var(--fui-space-3, #{$fui-space-3})) - var(--_control-padding, var(--fui-space-2, #{$fui-space-2}))) var(--_gutter, var(--fui-space-3, #{$fui-space-3}));
|
|
172
177
|
}
|
|
173
178
|
|
|
174
179
|
// The message is the content of the card, not a field in it. The bottom is
|
|
@@ -176,11 +181,11 @@
|
|
|
176
181
|
// footer under it, and the top is tight for the same reason when a scope
|
|
177
182
|
// band sits above.
|
|
178
183
|
.textarea {
|
|
179
|
-
padding: var(--_gutter) var(--_gutter) var(--fui-space-1, $fui-space-1);
|
|
184
|
+
padding: var(--_gutter, var(--fui-space-3, #{$fui-space-3})) var(--_gutter, var(--fui-space-3, #{$fui-space-3})) var(--fui-space-1, $fui-space-1);
|
|
180
185
|
}
|
|
181
186
|
|
|
182
187
|
.attachments {
|
|
183
|
-
padding: var(--_gutter) calc(var(--_gutter) - var(--_chip-padding)) 0;
|
|
188
|
+
padding: var(--_gutter, var(--fui-space-3, #{$fui-space-3})) calc(var(--_gutter, var(--fui-space-3, #{$fui-space-3})) - var(--_chip-padding, var(--fui-space-1, #{$fui-space-1}))) var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
184
189
|
gap: var(--fui-space-1, $fui-space-1);
|
|
185
190
|
}
|
|
186
191
|
|
|
@@ -191,22 +196,22 @@
|
|
|
191
196
|
padding-top: var(--fui-space-1, $fui-space-1);
|
|
192
197
|
}
|
|
193
198
|
|
|
194
|
-
// In
|
|
195
|
-
// and bordered like a folder tab.
|
|
199
|
+
// In an outline card the tabs are a strip the card is docked to, so they are centred
|
|
200
|
+
// and bordered like a folder tab. Ghost has no card edge for them to dock
|
|
196
201
|
// against, so they become the top band of the one surface: left-aligned on
|
|
197
202
|
// the gutter with the rest of it, and stripped of the chrome that only made
|
|
198
203
|
// sense as an edge.
|
|
199
204
|
.tabs {
|
|
200
|
-
margin-bottom: 0;
|
|
205
|
+
margin-bottom: var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
201
206
|
justify-content: flex-start;
|
|
202
|
-
padding: var(--_gutter) calc(var(--_gutter) - var(--_control-padding)) 0;
|
|
207
|
+
padding: var(--_gutter, var(--fui-space-3, #{$fui-space-3})) calc(var(--_gutter, var(--fui-space-3, #{$fui-space-3})) - var(--_control-padding, var(--fui-space-2, #{$fui-space-2}))) var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
203
208
|
}
|
|
204
209
|
|
|
205
210
|
.tabsInner {
|
|
206
211
|
background-color: transparent;
|
|
207
212
|
border: none;
|
|
208
|
-
border-radius:
|
|
209
|
-
padding: 0;
|
|
213
|
+
border-radius: var(--fui-radius-none, #{$fui-radius-none});
|
|
214
|
+
padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
210
215
|
gap: var(--fui-space-1, $fui-space-1);
|
|
211
216
|
}
|
|
212
217
|
|
|
@@ -222,7 +227,7 @@
|
|
|
222
227
|
// the placeholder above it starts, and costs only a wider hover.
|
|
223
228
|
.attach {
|
|
224
229
|
width: auto;
|
|
225
|
-
padding-inline: var(--_control-padding);
|
|
230
|
+
padding-inline: var(--_control-padding, var(--fui-space-2, #{$fui-space-2}));
|
|
226
231
|
|
|
227
232
|
svg {
|
|
228
233
|
width: var(--fui-icon-md, $fui-icon-md);
|
|
@@ -230,7 +235,7 @@
|
|
|
230
235
|
}
|
|
231
236
|
}
|
|
232
237
|
|
|
233
|
-
// Labels and glyphs share the body scale inside a
|
|
238
|
+
// Labels and glyphs share the body scale inside a ghost composer. The
|
|
234
239
|
// trigger still truncates at its cap, but no longer looks like caption text
|
|
235
240
|
// floating between larger attach and submit affordances.
|
|
236
241
|
.select,
|
|
@@ -287,7 +292,7 @@
|
|
|
287
292
|
// padding. Give the filled Submit shape the same inset at the trailing edge
|
|
288
293
|
// so the two visible affordances balance across the toolbar.
|
|
289
294
|
.submit {
|
|
290
|
-
margin-inline-end: var(--_control-padding);
|
|
295
|
+
margin-inline-end: var(--_control-padding, var(--fui-space-2, #{$fui-space-2}));
|
|
291
296
|
}
|
|
292
297
|
}
|
|
293
298
|
|
|
@@ -299,6 +304,8 @@
|
|
|
299
304
|
@include button-reset;
|
|
300
305
|
@include typography.role("body-compact");
|
|
301
306
|
|
|
307
|
+
// button-reset marks pressables select-none; typed text must stay selectable.
|
|
308
|
+
user-select: text;
|
|
302
309
|
display: block;
|
|
303
310
|
width: 100%;
|
|
304
311
|
min-height: var(--fui-input-height, $fui-input-height);
|
|
@@ -340,9 +347,10 @@
|
|
|
340
347
|
display: inline-flex;
|
|
341
348
|
gap: var(--fui-space-px, $fui-space-px);
|
|
342
349
|
background-color: var(--fui-bg-elevated, $fui-bg-elevated);
|
|
343
|
-
border-radius: var(--fui-radius-lg, $fui-radius-lg) var(--fui-radius-lg, $fui-radius-lg) 0 0
|
|
344
|
-
|
|
345
|
-
|
|
350
|
+
border-radius: var(--fui-radius-lg, $fui-radius-lg) var(--fui-radius-lg, $fui-radius-lg) var(--fui-raw-space-0, #{measurements.raw-space(0)})
|
|
351
|
+
var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
352
|
+
padding: var(--fui-space-0-75, $fui-space-0-75) var(--fui-space-0-75, $fui-space-0-75) var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
353
|
+
border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
|
|
346
354
|
border-bottom: none;
|
|
347
355
|
}
|
|
348
356
|
|
|
@@ -351,7 +359,8 @@
|
|
|
351
359
|
@include action.base;
|
|
352
360
|
@include action.size("sm");
|
|
353
361
|
|
|
354
|
-
border-radius: var(--fui-radius-md, $fui-radius-md) var(--fui-radius-md, $fui-radius-md) 0 0
|
|
362
|
+
border-radius: var(--fui-radius-md, $fui-radius-md) var(--fui-radius-md, $fui-radius-md) var(--fui-raw-space-0, #{measurements.raw-space(0)})
|
|
363
|
+
var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
355
364
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|
|
356
365
|
transition:
|
|
357
366
|
color var(--fui-transition-fast, $fui-transition-fast),
|
|
@@ -361,11 +370,14 @@
|
|
|
361
370
|
&:hover {
|
|
362
371
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
363
372
|
}
|
|
373
|
+
|
|
374
|
+
&:focus-visible {
|
|
375
|
+
@include focus-ring;
|
|
376
|
+
}
|
|
364
377
|
}
|
|
365
378
|
|
|
366
379
|
.tabButtonActive {
|
|
367
|
-
|
|
368
|
-
color: var(--fui-text-primary, $fui-text-primary);
|
|
380
|
+
@include segmented-selection;
|
|
369
381
|
}
|
|
370
382
|
|
|
371
383
|
// ============================================
|
|
@@ -379,7 +391,7 @@
|
|
|
379
391
|
gap: var(--fui-space-2, $fui-space-2);
|
|
380
392
|
padding: var(--fui-space-1, $fui-space-1) var(--fui-space-2, $fui-space-2);
|
|
381
393
|
background-color: var(--fui-bg-secondary, $fui-bg-secondary);
|
|
382
|
-
border-top: var(--fui-stroke-hairline,
|
|
394
|
+
border-top: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
|
|
383
395
|
}
|
|
384
396
|
|
|
385
397
|
// ============================================
|
|
@@ -453,8 +465,7 @@
|
|
|
453
465
|
}
|
|
454
466
|
|
|
455
467
|
.modeButtonActive {
|
|
456
|
-
|
|
457
|
-
background-color: var(--fui-bg-tertiary, $fui-bg-tertiary);
|
|
468
|
+
@include segmented-selection;
|
|
458
469
|
}
|
|
459
470
|
|
|
460
471
|
// ============================================
|
|
@@ -486,11 +497,6 @@
|
|
|
486
497
|
background-color: var(--fui-bg-active, $fui-bg-active);
|
|
487
498
|
}
|
|
488
499
|
|
|
489
|
-
&:disabled {
|
|
490
|
-
opacity: 0.5;
|
|
491
|
-
cursor: not-allowed;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
500
|
svg {
|
|
495
501
|
@include action.glyph("sm");
|
|
496
502
|
}
|
|
@@ -504,8 +510,8 @@
|
|
|
504
510
|
display: flex;
|
|
505
511
|
flex-wrap: wrap;
|
|
506
512
|
gap: var(--fui-space-1, $fui-space-1);
|
|
507
|
-
margin: 0;
|
|
508
|
-
padding: var(--fui-space-2, $fui-space-2) var(--fui-space-3, $fui-space-3) 0;
|
|
513
|
+
margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
514
|
+
padding: var(--fui-space-2, $fui-space-2) var(--fui-space-3, $fui-space-3) var(--fui-raw-space-0, #{measurements.raw-space(0)});
|
|
509
515
|
list-style: none;
|
|
510
516
|
}
|
|
511
517
|
|
|
@@ -520,14 +526,14 @@
|
|
|
520
526
|
display: inline-flex;
|
|
521
527
|
align-items: center;
|
|
522
528
|
gap: var(--fui-space-1, $fui-space-1);
|
|
523
|
-
height: var(--_chip-height);
|
|
529
|
+
height: var(--_chip-height, #{action.track("sm")});
|
|
524
530
|
max-width: layout.measure("composer-item");
|
|
525
531
|
padding-inline: var(--fui-space-1, $fui-space-1);
|
|
526
532
|
// Outlined rather than filled. A chip sits on whatever surface the prompt is
|
|
527
533
|
// using, and on an elevated card the raised fill is the same value as the
|
|
528
534
|
// card itself — so the object would disappear exactly where it is most
|
|
529
535
|
// likely to be used. An edge reads on any of them.
|
|
530
|
-
border: var(--fui-stroke-hairline,
|
|
536
|
+
border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
|
|
531
537
|
border-radius: var(--fui-radius-md, $fui-radius-md);
|
|
532
538
|
background-color: var(--fui-bg-tertiary, $fui-bg-tertiary);
|
|
533
539
|
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
@@ -539,8 +545,8 @@
|
|
|
539
545
|
// chip's height less the padding, which keeps it square without a second
|
|
540
546
|
// number to keep in step.
|
|
541
547
|
.attachmentThumb {
|
|
542
|
-
width: calc(var(--_chip-height) - var(--fui-space-1, #{$fui-space-1}));
|
|
543
|
-
height: calc(var(--_chip-height) - var(--fui-space-1, #{$fui-space-1}));
|
|
548
|
+
width: calc(var(--_chip-height, #{action.track("sm")}) - var(--fui-space-1, #{$fui-space-1}));
|
|
549
|
+
height: calc(var(--_chip-height, #{action.track("sm")}) - var(--fui-space-1, #{$fui-space-1}));
|
|
544
550
|
flex-shrink: 0;
|
|
545
551
|
border-radius: var(--fui-radius-sm, $fui-radius-sm);
|
|
546
552
|
object-fit: cover;
|
|
@@ -637,11 +643,6 @@
|
|
|
637
643
|
background-color: var(--fui-text-tertiary, #{$fui-text-tertiary});
|
|
638
644
|
}
|
|
639
645
|
|
|
640
|
-
&:disabled {
|
|
641
|
-
opacity: 0.5;
|
|
642
|
-
cursor: not-allowed;
|
|
643
|
-
}
|
|
644
|
-
|
|
645
646
|
svg {
|
|
646
647
|
@include action.glyph("md");
|
|
647
648
|
}
|
|
@@ -9,9 +9,9 @@ import { Select, type SelectOption, type SelectValue } from '../Select';
|
|
|
9
9
|
// Types
|
|
10
10
|
// ============================================
|
|
11
11
|
|
|
12
|
-
export type
|
|
12
|
+
export type PromptPlacement = 'inline' | 'fixed' | 'sticky';
|
|
13
13
|
|
|
14
|
-
export type
|
|
14
|
+
export type PromptVariant = 'outline' | 'ghost';
|
|
15
15
|
|
|
16
16
|
export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onSubmit' | 'defaultValue'> {
|
|
17
17
|
children: React.ReactNode;
|
|
@@ -43,13 +43,15 @@ export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
43
43
|
onFiles?: (files: File[]) => void;
|
|
44
44
|
/** `accept` for the attach button's picker, e.g. `"image/*"`. */
|
|
45
45
|
accept?: string;
|
|
46
|
-
/**
|
|
46
|
+
/** Where the card sits: `inline` in the flow, `fixed` to the viewport bottom,
|
|
47
|
+
* `sticky` to the content area (offset by `--fui-prompt-inset-left`).
|
|
48
|
+
* @default "inline" */
|
|
49
|
+
placement?: PromptPlacement;
|
|
50
|
+
/** Card chrome. `outline` keeps the toolbar as a filled footer under a rule;
|
|
51
|
+
* `ghost` makes the whole card one writing surface with the controls floating
|
|
52
|
+
* on it — the shape most agent composers use.
|
|
53
|
+
* @default "outline" */
|
|
47
54
|
variant?: PromptVariant;
|
|
48
|
-
/** How the card is divided up. `panel` keeps the toolbar as a filled footer
|
|
49
|
-
* under a rule; `seamless` makes the whole card one writing surface with the
|
|
50
|
-
* controls floating on it — the shape most agent composers use.
|
|
51
|
-
* @default "panel" */
|
|
52
|
-
appearance?: PromptAppearance;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
export interface PromptTextareaProps extends Omit<
|
|
@@ -307,8 +309,8 @@ function PromptRoot({
|
|
|
307
309
|
maxRows = 8,
|
|
308
310
|
autoResize = true,
|
|
309
311
|
submitOnEnter = true,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
+
placement = 'inline',
|
|
313
|
+
variant = 'outline',
|
|
312
314
|
onFiles,
|
|
313
315
|
accept,
|
|
314
316
|
className,
|
|
@@ -386,9 +388,9 @@ function PromptRoot({
|
|
|
386
388
|
|
|
387
389
|
const classes = [
|
|
388
390
|
styles.prompt,
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
391
|
+
placement === 'fixed' && styles.fixed,
|
|
392
|
+
placement === 'sticky' && styles.sticky,
|
|
393
|
+
variant === 'ghost' && styles.ghost,
|
|
392
394
|
dragging && styles.dragging,
|
|
393
395
|
disabled && styles.disabled,
|
|
394
396
|
loading && styles.loading,
|
|
@@ -403,8 +405,8 @@ function PromptRoot({
|
|
|
403
405
|
className={classes}
|
|
404
406
|
data-disabled={disabled || undefined}
|
|
405
407
|
data-loading={loading || undefined}
|
|
408
|
+
data-placement={placement}
|
|
406
409
|
data-variant={variant}
|
|
407
|
-
data-appearance={appearance}
|
|
408
410
|
data-dragging={dragging || undefined}
|
|
409
411
|
>
|
|
410
412
|
{children}
|
|
@@ -780,7 +782,7 @@ function PromptSubmit({
|
|
|
780
782
|
{loading ? (
|
|
781
783
|
<Loading
|
|
782
784
|
size="sm"
|
|
783
|
-
|
|
785
|
+
kind="spinner"
|
|
784
786
|
color="current"
|
|
785
787
|
label="Submitting"
|
|
786
788
|
className={styles.submitSpinner}
|