@nuxt/ui 4.5.0 → 4.6.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/.nuxt/ui.css +2 -0
- package/cli/templates.mjs +5 -8
- package/dist/module.d.mts +7 -0
- package/dist/module.json +2 -2
- package/dist/module.mjs +78 -67
- package/dist/runtime/components/Accordion.d.vue.ts +8 -7
- package/dist/runtime/components/Accordion.vue.d.ts +8 -7
- package/dist/runtime/components/Alert.d.vue.ts +8 -7
- package/dist/runtime/components/Alert.vue.d.ts +8 -7
- package/dist/runtime/components/App.d.vue.ts +2 -1
- package/dist/runtime/components/App.vue.d.ts +2 -1
- package/dist/runtime/components/AuthForm.d.vue.ts +13 -12
- package/dist/runtime/components/AuthForm.vue.d.ts +13 -12
- package/dist/runtime/components/Avatar.d.vue.ts +2 -1
- package/dist/runtime/components/Avatar.vue +10 -12
- package/dist/runtime/components/Avatar.vue.d.ts +2 -1
- package/dist/runtime/components/AvatarGroup.d.vue.ts +2 -1
- package/dist/runtime/components/AvatarGroup.vue.d.ts +2 -1
- package/dist/runtime/components/Badge.d.vue.ts +7 -6
- package/dist/runtime/components/Badge.vue.d.ts +7 -6
- package/dist/runtime/components/Banner.d.vue.ts +7 -6
- package/dist/runtime/components/Banner.vue +1 -1
- package/dist/runtime/components/Banner.vue.d.ts +7 -6
- package/dist/runtime/components/BlogPost.d.vue.ts +11 -10
- package/dist/runtime/components/BlogPost.vue +3 -2
- package/dist/runtime/components/BlogPost.vue.d.ts +11 -10
- package/dist/runtime/components/BlogPosts.d.vue.ts +5 -4
- package/dist/runtime/components/BlogPosts.vue.d.ts +5 -4
- package/dist/runtime/components/Breadcrumb.d.vue.ts +15 -14
- package/dist/runtime/components/Breadcrumb.vue.d.ts +15 -14
- package/dist/runtime/components/Button.d.vue.ts +7 -6
- package/dist/runtime/components/Button.vue.d.ts +7 -6
- package/dist/runtime/components/Calendar.d.vue.ts +10 -9
- package/dist/runtime/components/Calendar.vue.d.ts +10 -9
- package/dist/runtime/components/Card.d.vue.ts +4 -3
- package/dist/runtime/components/Card.vue.d.ts +4 -3
- package/dist/runtime/components/Carousel.d.vue.ts +3 -2
- package/dist/runtime/components/Carousel.vue.d.ts +3 -2
- package/dist/runtime/components/ChangelogVersion.d.vue.ts +15 -14
- package/dist/runtime/components/ChangelogVersion.vue +3 -2
- package/dist/runtime/components/ChangelogVersion.vue.d.ts +15 -14
- package/dist/runtime/components/ChangelogVersions.d.vue.ts +6 -5
- package/dist/runtime/components/ChangelogVersions.vue +1 -1
- package/dist/runtime/components/ChangelogVersions.vue.d.ts +6 -5
- package/dist/runtime/components/ChatMessage.d.vue.ts +10 -6
- package/dist/runtime/components/ChatMessage.vue +5 -0
- package/dist/runtime/components/ChatMessage.vue.d.ts +10 -6
- package/dist/runtime/components/ChatMessages.d.vue.ts +9 -8
- package/dist/runtime/components/ChatMessages.vue.d.ts +9 -8
- package/dist/runtime/components/ChatPalette.d.vue.ts +3 -2
- package/dist/runtime/components/ChatPalette.vue.d.ts +3 -2
- package/dist/runtime/components/ChatPrompt.d.vue.ts +3 -2
- package/dist/runtime/components/ChatPrompt.vue.d.ts +3 -2
- package/dist/runtime/components/ChatReasoning.d.vue.ts +78 -0
- package/dist/runtime/components/ChatReasoning.vue +162 -0
- package/dist/runtime/components/ChatReasoning.vue.d.ts +78 -0
- package/dist/runtime/components/ChatShimmer.d.vue.ts +34 -0
- package/dist/runtime/components/ChatShimmer.vue +37 -0
- package/dist/runtime/components/ChatShimmer.vue.d.ts +34 -0
- package/dist/runtime/components/ChatTool.d.vue.ts +88 -0
- package/dist/runtime/components/ChatTool.vue +105 -0
- package/dist/runtime/components/ChatTool.vue.d.ts +88 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +29 -25
- package/dist/runtime/components/Checkbox.vue +9 -8
- package/dist/runtime/components/Checkbox.vue.d.ts +29 -25
- package/dist/runtime/components/CheckboxGroup.d.vue.ts +5 -4
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +5 -4
- package/dist/runtime/components/Chip.d.vue.ts +3 -2
- package/dist/runtime/components/Chip.vue.d.ts +3 -2
- package/dist/runtime/components/Collapsible.d.vue.ts +4 -3
- package/dist/runtime/components/Collapsible.vue.d.ts +4 -3
- package/dist/runtime/components/CommandPalette.d.vue.ts +19 -18
- package/dist/runtime/components/CommandPalette.vue.d.ts +19 -18
- package/dist/runtime/components/Container.d.vue.ts +2 -1
- package/dist/runtime/components/Container.vue.d.ts +2 -1
- package/dist/runtime/components/ContextMenu.d.vue.ts +19 -18
- package/dist/runtime/components/ContextMenu.vue.d.ts +19 -18
- package/dist/runtime/components/DashboardGroup.d.vue.ts +3 -2
- package/dist/runtime/components/DashboardGroup.vue.d.ts +3 -2
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +11 -10
- package/dist/runtime/components/DashboardNavbar.vue.d.ts +11 -10
- package/dist/runtime/components/DashboardPanel.d.vue.ts +7 -6
- package/dist/runtime/components/DashboardPanel.vue.d.ts +7 -6
- package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +2 -1
- package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +2 -1
- package/dist/runtime/components/DashboardSearch.d.vue.ts +4 -3
- package/dist/runtime/components/DashboardSearch.vue.d.ts +4 -3
- package/dist/runtime/components/DashboardSearchButton.vue +2 -2
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +19 -18
- package/dist/runtime/components/DashboardSidebar.vue +3 -3
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +19 -18
- package/dist/runtime/components/DashboardToolbar.d.vue.ts +4 -3
- package/dist/runtime/components/DashboardToolbar.vue.d.ts +4 -3
- package/dist/runtime/components/Drawer.d.vue.ts +8 -7
- package/dist/runtime/components/Drawer.vue +1 -1
- package/dist/runtime/components/Drawer.vue.d.ts +8 -7
- package/dist/runtime/components/DropdownMenu.d.vue.ts +50 -22
- package/dist/runtime/components/DropdownMenu.vue +10 -1
- package/dist/runtime/components/DropdownMenu.vue.d.ts +50 -22
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +13 -6
- package/dist/runtime/components/DropdownMenuContent.vue +62 -9
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +13 -6
- package/dist/runtime/components/Editor.d.vue.ts +3 -2
- package/dist/runtime/components/Editor.vue.d.ts +3 -2
- package/dist/runtime/components/EditorDragHandle.d.vue.ts +7 -6
- package/dist/runtime/components/EditorDragHandle.vue.d.ts +7 -6
- package/dist/runtime/components/EditorToolbar.d.vue.ts +3 -2
- package/dist/runtime/components/EditorToolbar.vue.d.ts +3 -2
- package/dist/runtime/components/Empty.d.vue.ts +9 -8
- package/dist/runtime/components/Empty.vue.d.ts +9 -8
- package/dist/runtime/components/Error.d.vue.ts +6 -5
- package/dist/runtime/components/Error.vue +5 -5
- package/dist/runtime/components/Error.vue.d.ts +6 -5
- package/dist/runtime/components/FieldGroup.d.vue.ts +2 -1
- package/dist/runtime/components/FieldGroup.vue.d.ts +2 -1
- package/dist/runtime/components/FileUpload.d.vue.ts +35 -28
- package/dist/runtime/components/FileUpload.vue +11 -7
- package/dist/runtime/components/FileUpload.vue.d.ts +35 -28
- package/dist/runtime/components/Footer.d.vue.ts +6 -5
- package/dist/runtime/components/Footer.vue.d.ts +6 -5
- package/dist/runtime/components/FooterColumns.d.vue.ts +12 -11
- package/dist/runtime/components/FooterColumns.vue.d.ts +12 -11
- package/dist/runtime/components/Form.d.vue.ts +3 -2
- package/dist/runtime/components/Form.vue.d.ts +3 -2
- package/dist/runtime/components/FormField.d.vue.ts +19 -18
- package/dist/runtime/components/FormField.vue.d.ts +19 -18
- package/dist/runtime/components/Header.d.vue.ts +12 -11
- package/dist/runtime/components/Header.vue.d.ts +12 -11
- package/dist/runtime/components/Icon.d.vue.ts +2 -1
- package/dist/runtime/components/Icon.vue +1 -1
- package/dist/runtime/components/Icon.vue.d.ts +2 -1
- package/dist/runtime/components/Input.d.vue.ts +7 -6
- package/dist/runtime/components/Input.vue.d.ts +7 -6
- package/dist/runtime/components/InputDate.d.vue.ts +13 -13
- package/dist/runtime/components/InputDate.vue.d.ts +13 -13
- package/dist/runtime/components/InputMenu.d.vue.ts +33 -25
- package/dist/runtime/components/InputMenu.vue +68 -49
- package/dist/runtime/components/InputMenu.vue.d.ts +33 -25
- package/dist/runtime/components/InputNumber.d.vue.ts +3 -2
- package/dist/runtime/components/InputNumber.vue.d.ts +3 -2
- package/dist/runtime/components/InputTags.d.vue.ts +10 -9
- package/dist/runtime/components/InputTags.vue.d.ts +10 -9
- package/dist/runtime/components/InputTime.d.vue.ts +60 -34
- package/dist/runtime/components/InputTime.vue +52 -27
- package/dist/runtime/components/InputTime.vue.d.ts +60 -34
- package/dist/runtime/components/Kbd.d.vue.ts +2 -1
- package/dist/runtime/components/Kbd.vue +1 -1
- package/dist/runtime/components/Kbd.vue.d.ts +2 -1
- package/dist/runtime/components/Link.d.vue.ts +3 -2
- package/dist/runtime/components/Link.vue.d.ts +3 -2
- package/dist/runtime/components/Main.d.vue.ts +2 -1
- package/dist/runtime/components/Main.vue.d.ts +2 -1
- package/dist/runtime/components/Marquee.d.vue.ts +2 -1
- package/dist/runtime/components/Marquee.vue.d.ts +2 -1
- package/dist/runtime/components/Modal.d.vue.ts +16 -15
- package/dist/runtime/components/Modal.vue +1 -1
- package/dist/runtime/components/Modal.vue.d.ts +16 -15
- package/dist/runtime/components/NavigationMenu.d.vue.ts +20 -15
- package/dist/runtime/components/NavigationMenu.vue +13 -6
- package/dist/runtime/components/NavigationMenu.vue.d.ts +20 -15
- package/dist/runtime/components/Page.d.vue.ts +4 -3
- package/dist/runtime/components/Page.vue +9 -3
- package/dist/runtime/components/Page.vue.d.ts +4 -3
- package/dist/runtime/components/PageAnchors.d.vue.ts +8 -7
- package/dist/runtime/components/PageAnchors.vue.d.ts +8 -7
- package/dist/runtime/components/PageAside.d.vue.ts +4 -3
- package/dist/runtime/components/PageAside.vue.d.ts +4 -3
- package/dist/runtime/components/PageBody.d.vue.ts +2 -1
- package/dist/runtime/components/PageBody.vue.d.ts +2 -1
- package/dist/runtime/components/PageCTA.d.vue.ts +10 -9
- package/dist/runtime/components/PageCTA.vue.d.ts +10 -9
- package/dist/runtime/components/PageCard.d.vue.ts +9 -8
- package/dist/runtime/components/PageCard.vue.d.ts +9 -8
- package/dist/runtime/components/PageColumns.d.vue.ts +2 -1
- package/dist/runtime/components/PageColumns.vue.d.ts +2 -1
- package/dist/runtime/components/PageFeature.d.vue.ts +6 -5
- package/dist/runtime/components/PageFeature.vue.d.ts +6 -5
- package/dist/runtime/components/PageGrid.d.vue.ts +2 -1
- package/dist/runtime/components/PageGrid.vue.d.ts +2 -1
- package/dist/runtime/components/PageHeader.d.vue.ts +6 -5
- package/dist/runtime/components/PageHeader.vue.d.ts +6 -5
- package/dist/runtime/components/PageHero.d.vue.ts +11 -10
- package/dist/runtime/components/PageHero.vue.d.ts +11 -10
- package/dist/runtime/components/PageLinks.d.vue.ts +9 -8
- package/dist/runtime/components/PageLinks.vue.d.ts +9 -8
- package/dist/runtime/components/PageList.d.vue.ts +2 -1
- package/dist/runtime/components/PageList.vue.d.ts +2 -1
- package/dist/runtime/components/PageLogos.d.vue.ts +2 -1
- package/dist/runtime/components/PageLogos.vue.d.ts +2 -1
- package/dist/runtime/components/PageSection.d.vue.ts +14 -13
- package/dist/runtime/components/PageSection.vue.d.ts +14 -13
- package/dist/runtime/components/Pagination.d.vue.ts +9 -8
- package/dist/runtime/components/Pagination.vue.d.ts +9 -8
- package/dist/runtime/components/Popover.d.vue.ts +9 -5
- package/dist/runtime/components/Popover.vue +2 -2
- package/dist/runtime/components/Popover.vue.d.ts +9 -5
- package/dist/runtime/components/PricingPlan.d.vue.ts +17 -16
- package/dist/runtime/components/PricingPlan.vue.d.ts +17 -16
- package/dist/runtime/components/PricingPlans.d.vue.ts +5 -4
- package/dist/runtime/components/PricingPlans.vue.d.ts +5 -4
- package/dist/runtime/components/PricingTable.d.vue.ts +20 -19
- package/dist/runtime/components/PricingTable.vue.d.ts +20 -19
- package/dist/runtime/components/Progress.d.vue.ts +5 -4
- package/dist/runtime/components/Progress.vue.d.ts +5 -4
- package/dist/runtime/components/RadioGroup.d.vue.ts +6 -5
- package/dist/runtime/components/RadioGroup.vue.d.ts +6 -5
- package/dist/runtime/components/ScrollArea.d.vue.ts +6 -2
- package/dist/runtime/components/ScrollArea.vue +2 -2
- package/dist/runtime/components/ScrollArea.vue.d.ts +6 -2
- package/dist/runtime/components/Select.d.vue.ts +21 -19
- package/dist/runtime/components/Select.vue +1 -1
- package/dist/runtime/components/Select.vue.d.ts +21 -19
- package/dist/runtime/components/SelectMenu.d.vue.ts +27 -26
- package/dist/runtime/components/SelectMenu.vue +2 -2
- package/dist/runtime/components/SelectMenu.vue.d.ts +27 -26
- package/dist/runtime/components/Separator.d.vue.ts +3 -2
- package/dist/runtime/components/Separator.vue.d.ts +3 -2
- package/dist/runtime/components/Sidebar.d.vue.ts +131 -0
- package/dist/runtime/components/Sidebar.vue +222 -0
- package/dist/runtime/components/Sidebar.vue.d.ts +131 -0
- package/dist/runtime/components/Slideover.d.vue.ts +16 -15
- package/dist/runtime/components/Slideover.vue +1 -1
- package/dist/runtime/components/Slideover.vue.d.ts +16 -15
- package/dist/runtime/components/Stepper.d.vue.ts +8 -7
- package/dist/runtime/components/Stepper.vue.d.ts +8 -7
- package/dist/runtime/components/Switch.d.vue.ts +29 -25
- package/dist/runtime/components/Switch.vue +7 -6
- package/dist/runtime/components/Switch.vue.d.ts +29 -25
- package/dist/runtime/components/Table.d.vue.ts +12 -13
- package/dist/runtime/components/Table.vue +12 -4
- package/dist/runtime/components/Table.vue.d.ts +12 -13
- package/dist/runtime/components/Tabs.d.vue.ts +9 -9
- package/dist/runtime/components/Tabs.vue.d.ts +9 -9
- package/dist/runtime/components/Textarea.d.vue.ts +7 -6
- package/dist/runtime/components/Textarea.vue.d.ts +7 -6
- package/dist/runtime/components/Theme.d.vue.ts +2 -1
- package/dist/runtime/components/Theme.vue.d.ts +2 -1
- package/dist/runtime/components/Timeline.d.vue.ts +7 -6
- package/dist/runtime/components/Timeline.vue.d.ts +7 -6
- package/dist/runtime/components/Toast.d.vue.ts +8 -7
- package/dist/runtime/components/Toast.vue.d.ts +8 -7
- package/dist/runtime/components/Toaster.d.vue.ts +2 -1
- package/dist/runtime/components/Toaster.vue.d.ts +2 -1
- package/dist/runtime/components/Tooltip.d.vue.ts +8 -4
- package/dist/runtime/components/Tooltip.vue +4 -3
- package/dist/runtime/components/Tooltip.vue.d.ts +8 -4
- package/dist/runtime/components/Tree.d.vue.ts +7 -6
- package/dist/runtime/components/Tree.vue.d.ts +7 -6
- package/dist/runtime/components/User.d.vue.ts +6 -5
- package/dist/runtime/components/User.vue.d.ts +6 -5
- package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeSwitch.vue +3 -1
- package/dist/runtime/components/content/ContentNavigation.d.vue.ts +7 -6
- package/dist/runtime/components/content/ContentNavigation.vue +10 -3
- package/dist/runtime/components/content/ContentNavigation.vue.d.ts +7 -6
- package/dist/runtime/components/content/ContentSearch.d.vue.ts +4 -3
- package/dist/runtime/components/content/ContentSearch.vue.d.ts +4 -3
- package/dist/runtime/components/content/ContentSurround.d.vue.ts +6 -5
- package/dist/runtime/components/content/ContentSurround.vue +6 -2
- package/dist/runtime/components/content/ContentSurround.vue.d.ts +6 -5
- package/dist/runtime/components/content/ContentToc.d.vue.ts +20 -14
- package/dist/runtime/components/content/ContentToc.vue +59 -14
- package/dist/runtime/components/content/ContentToc.vue.d.ts +20 -14
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +1 -1
- package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +1 -1
- package/dist/runtime/components/prose/A.d.vue.ts +2 -1
- package/dist/runtime/components/prose/A.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Accordion.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Accordion.vue.d.ts +2 -1
- package/dist/runtime/components/prose/AccordionItem.d.vue.ts +2 -1
- package/dist/runtime/components/prose/AccordionItem.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Badge.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Badge.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Blockquote.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Blockquote.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Callout.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Callout.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Card.d.vue.ts +3 -2
- package/dist/runtime/components/prose/Card.vue.d.ts +3 -2
- package/dist/runtime/components/prose/CardGroup.d.vue.ts +2 -1
- package/dist/runtime/components/prose/CardGroup.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Code.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Code.vue.d.ts +2 -1
- package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +2 -1
- package/dist/runtime/components/prose/CodeCollapse.vue.d.ts +2 -1
- package/dist/runtime/components/prose/CodeGroup.d.vue.ts +2 -1
- package/dist/runtime/components/prose/CodeGroup.vue.d.ts +2 -1
- package/dist/runtime/components/prose/CodePreview.d.vue.ts +3 -2
- package/dist/runtime/components/prose/CodePreview.vue.d.ts +3 -2
- package/dist/runtime/components/prose/CodeTree.d.vue.ts +2 -1
- package/dist/runtime/components/prose/CodeTree.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Collapsible.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Collapsible.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Em.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Em.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Field.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Field.vue.d.ts +2 -1
- package/dist/runtime/components/prose/FieldGroup.d.vue.ts +2 -1
- package/dist/runtime/components/prose/FieldGroup.vue.d.ts +2 -1
- package/dist/runtime/components/prose/H1.d.vue.ts +2 -1
- package/dist/runtime/components/prose/H1.vue.d.ts +2 -1
- package/dist/runtime/components/prose/H2.d.vue.ts +2 -1
- package/dist/runtime/components/prose/H2.vue.d.ts +2 -1
- package/dist/runtime/components/prose/H3.d.vue.ts +2 -1
- package/dist/runtime/components/prose/H3.vue.d.ts +2 -1
- package/dist/runtime/components/prose/H4.d.vue.ts +2 -1
- package/dist/runtime/components/prose/H4.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Li.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Li.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Ol.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Ol.vue.d.ts +2 -1
- package/dist/runtime/components/prose/P.d.vue.ts +2 -1
- package/dist/runtime/components/prose/P.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Pre.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Pre.vue +0 -4
- package/dist/runtime/components/prose/Pre.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Steps.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Steps.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Strong.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Strong.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Table.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Table.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Tabs.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Tabs.vue.d.ts +2 -1
- package/dist/runtime/components/prose/TabsItem.d.vue.ts +2 -1
- package/dist/runtime/components/prose/TabsItem.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Tbody.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Tbody.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Td.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Td.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Th.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Th.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Thead.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Thead.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Tr.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Tr.vue.d.ts +2 -1
- package/dist/runtime/components/prose/Ul.d.vue.ts +2 -1
- package/dist/runtime/components/prose/Ul.vue.d.ts +2 -1
- package/dist/runtime/composables/index.d.ts +11 -0
- package/dist/runtime/composables/index.js +11 -0
- package/dist/runtime/composables/useEditorMenu.js +1 -1
- package/dist/runtime/composables/useFileUpload.d.ts +2 -2
- package/dist/runtime/composables/useFileUpload.js +3 -3
- package/dist/runtime/composables/{internal/useFilter.js → useFilter.js} +1 -1
- package/dist/runtime/composables/useResizable.d.ts +2 -2
- package/dist/runtime/composables/useResizable.js +2 -2
- package/dist/runtime/composables/useScrollShadow.d.ts +23 -0
- package/dist/runtime/composables/useScrollShadow.js +36 -0
- package/dist/runtime/index.css +1 -1
- package/dist/runtime/keyframes.css +1 -1
- package/dist/runtime/locale/ar.js +13 -0
- package/dist/runtime/locale/az.js +13 -0
- package/dist/runtime/locale/be.js +13 -0
- package/dist/runtime/locale/bg.js +13 -0
- package/dist/runtime/locale/bn.js +13 -0
- package/dist/runtime/locale/ca.js +13 -0
- package/dist/runtime/locale/ckb.js +13 -0
- package/dist/runtime/locale/cs.js +13 -0
- package/dist/runtime/locale/da.js +13 -0
- package/dist/runtime/locale/de.js +13 -0
- package/dist/runtime/locale/de_ch.js +13 -0
- package/dist/runtime/locale/el.js +13 -0
- package/dist/runtime/locale/en.js +13 -0
- package/dist/runtime/locale/es.js +13 -0
- package/dist/runtime/locale/et.js +13 -0
- package/dist/runtime/locale/eu.js +13 -0
- package/dist/runtime/locale/fa_ir.js +13 -0
- package/dist/runtime/locale/fi.js +13 -0
- package/dist/runtime/locale/fr.js +13 -0
- package/dist/runtime/locale/gl.js +13 -0
- package/dist/runtime/locale/he.js +13 -0
- package/dist/runtime/locale/hi.js +13 -0
- package/dist/runtime/locale/hr.js +13 -0
- package/dist/runtime/locale/hu.js +13 -0
- package/dist/runtime/locale/hy.js +13 -0
- package/dist/runtime/locale/id.js +13 -0
- package/dist/runtime/locale/index.d.ts +1 -0
- package/dist/runtime/locale/index.js +1 -0
- package/dist/runtime/locale/is.d.ts +3 -0
- package/dist/runtime/locale/is.js +142 -0
- package/dist/runtime/locale/it.js +13 -0
- package/dist/runtime/locale/ja.js +13 -0
- package/dist/runtime/locale/ka.js +13 -0
- package/dist/runtime/locale/kk.js +13 -0
- package/dist/runtime/locale/km.js +13 -0
- package/dist/runtime/locale/ko.js +13 -0
- package/dist/runtime/locale/ky.js +13 -0
- package/dist/runtime/locale/lb.js +13 -0
- package/dist/runtime/locale/lo.js +13 -0
- package/dist/runtime/locale/lt.js +13 -0
- package/dist/runtime/locale/mn.js +13 -0
- package/dist/runtime/locale/ms.js +13 -0
- package/dist/runtime/locale/nb_no.js +13 -0
- package/dist/runtime/locale/nl.js +13 -0
- package/dist/runtime/locale/pl.js +13 -0
- package/dist/runtime/locale/pt.js +13 -0
- package/dist/runtime/locale/pt_br.js +13 -0
- package/dist/runtime/locale/ro.js +13 -0
- package/dist/runtime/locale/ru.js +13 -0
- package/dist/runtime/locale/sk.js +13 -0
- package/dist/runtime/locale/sl.js +13 -0
- package/dist/runtime/locale/sq.js +13 -0
- package/dist/runtime/locale/sv.js +13 -0
- package/dist/runtime/locale/th.js +13 -0
- package/dist/runtime/locale/tj.js +13 -0
- package/dist/runtime/locale/tr.js +13 -0
- package/dist/runtime/locale/ug_cn.js +13 -0
- package/dist/runtime/locale/uk.js +13 -0
- package/dist/runtime/locale/ur.js +13 -0
- package/dist/runtime/locale/uz.js +13 -0
- package/dist/runtime/locale/vi.js +13 -0
- package/dist/runtime/locale/zh_cn.js +13 -0
- package/dist/runtime/locale/zh_tw.js +13 -0
- package/dist/runtime/types/index.d.ts +4 -0
- package/dist/runtime/types/index.js +4 -0
- package/dist/runtime/types/locale.d.ts +13 -0
- package/dist/runtime/types/utils.d.ts +2 -2
- package/dist/runtime/utils/ai.d.ts +18 -0
- package/dist/runtime/utils/ai.js +13 -0
- package/dist/runtime/utils/editor.js +17 -5
- package/dist/runtime/utils/index.d.ts +1 -1
- package/dist/runtime/utils/index.js +1 -1
- package/dist/runtime/vue/components/Icon.d.vue.ts +1 -4
- package/dist/runtime/vue/components/Icon.vue +28 -3
- package/dist/runtime/vue/components/Icon.vue.d.ts +1 -4
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +1 -1
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
- package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +3 -1
- package/dist/runtime/vue/overrides/inertia/Link.d.vue.ts +3 -2
- package/dist/runtime/vue/overrides/inertia/Link.vue.d.ts +3 -2
- package/dist/runtime/vue/overrides/none/Link.d.vue.ts +3 -3
- package/dist/runtime/vue/overrides/none/Link.vue.d.ts +3 -3
- package/dist/runtime/vue/overrides/vue-router/Link.d.vue.ts +3 -2
- package/dist/runtime/vue/overrides/vue-router/Link.vue.d.ts +3 -2
- package/dist/shared/{ui.BrgdrRzy.mjs → ui.DJUbBpE2.mjs} +306 -45
- package/dist/unplugin.d.mts +15 -5
- package/dist/unplugin.mjs +53 -30
- package/dist/vite.d.mts +1 -0
- package/dist/vite.mjs +1 -1
- package/package.json +50 -47
- /package/dist/runtime/composables/{internal/useFilter.d.ts → useFilter.d.ts} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import type { SpringOptions, UseScrollOptions } from 'motion-v';
|
|
3
4
|
import theme from '#build/ui/changelog-versions';
|
|
@@ -28,14 +29,14 @@ export interface ChangelogVersionsProps<T extends ChangelogVersionProps = Change
|
|
|
28
29
|
class?: any;
|
|
29
30
|
ui?: ChangelogVersions['slots'];
|
|
30
31
|
}
|
|
31
|
-
type ExtendSlotWithVersion<T extends ChangelogVersionProps, K extends keyof ChangelogVersionSlots> = ChangelogVersionSlots[K] extends (props: infer P) =>
|
|
32
|
+
type ExtendSlotWithVersion<T extends ChangelogVersionProps, K extends keyof ChangelogVersionSlots> = Required<ChangelogVersionSlots>[K] extends (props: infer P) => VNode[] ? (props: P & {
|
|
32
33
|
version: T;
|
|
33
|
-
}) =>
|
|
34
|
+
}) => VNode[] : Required<ChangelogVersionSlots>[K];
|
|
34
35
|
export type ChangelogVersionsSlots<T extends ChangelogVersionProps = ChangelogVersionProps> = {
|
|
35
|
-
[K in keyof ChangelogVersionSlots]
|
|
36
|
+
[K in keyof ChangelogVersionSlots]?: ExtendSlotWithVersion<T, K>;
|
|
36
37
|
} & {
|
|
37
|
-
default(props?: {}):
|
|
38
|
-
indicator(props?: {}):
|
|
38
|
+
default?(props?: {}): VNode[];
|
|
39
|
+
indicator?(props?: {}): VNode[];
|
|
39
40
|
};
|
|
40
41
|
declare const _default: typeof __VLS_export;
|
|
41
42
|
export default _default;
|
|
@@ -28,7 +28,7 @@ const springOptions = computed(() => defu(typeof props.indicatorMotion === "obje
|
|
|
28
28
|
const scrollOptions = computed(() => typeof props.indicator === "object" ? props.indicator : {});
|
|
29
29
|
const { scrollYProgress } = useScroll(scrollOptions.value);
|
|
30
30
|
const y = useSpring(scrollYProgress, springOptions);
|
|
31
|
-
const height = useTransform(() => `${y.get() * 100}%`);
|
|
31
|
+
const height = useTransform(() => `${Number(y.get()) * 100}%`);
|
|
32
32
|
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.changelogVersions || {} })());
|
|
33
33
|
</script>
|
|
34
34
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import type { SpringOptions, UseScrollOptions } from 'motion-v';
|
|
3
4
|
import theme from '#build/ui/changelog-versions';
|
|
@@ -28,14 +29,14 @@ export interface ChangelogVersionsProps<T extends ChangelogVersionProps = Change
|
|
|
28
29
|
class?: any;
|
|
29
30
|
ui?: ChangelogVersions['slots'];
|
|
30
31
|
}
|
|
31
|
-
type ExtendSlotWithVersion<T extends ChangelogVersionProps, K extends keyof ChangelogVersionSlots> = ChangelogVersionSlots[K] extends (props: infer P) =>
|
|
32
|
+
type ExtendSlotWithVersion<T extends ChangelogVersionProps, K extends keyof ChangelogVersionSlots> = Required<ChangelogVersionSlots>[K] extends (props: infer P) => VNode[] ? (props: P & {
|
|
32
33
|
version: T;
|
|
33
|
-
}) =>
|
|
34
|
+
}) => VNode[] : Required<ChangelogVersionSlots>[K];
|
|
34
35
|
export type ChangelogVersionsSlots<T extends ChangelogVersionProps = ChangelogVersionProps> = {
|
|
35
|
-
[K in keyof ChangelogVersionSlots]
|
|
36
|
+
[K in keyof ChangelogVersionSlots]?: ExtendSlotWithVersion<T, K>;
|
|
36
37
|
} & {
|
|
37
|
-
default(props?: {}):
|
|
38
|
-
indicator(props?: {}):
|
|
38
|
+
default?(props?: {}): VNode[];
|
|
39
|
+
indicator?(props?: {}): VNode[];
|
|
39
40
|
};
|
|
40
41
|
declare const _default: typeof __VLS_export;
|
|
41
42
|
export default _default;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
-
import type { UIMessage } from 'ai';
|
|
3
|
+
import type { UIMessage, FileUIPart } from 'ai';
|
|
3
4
|
import theme from '#build/ui/chat-message';
|
|
4
5
|
import type { AvatarProps, ButtonProps, IconProps } from '../types';
|
|
5
6
|
import type { ComponentConfig } from '../types/tv';
|
|
@@ -48,14 +49,17 @@ export interface ChatMessageProps extends UIMessage {
|
|
|
48
49
|
ui?: ChatMessage['slots'];
|
|
49
50
|
}
|
|
50
51
|
export interface ChatMessageSlots {
|
|
51
|
-
leading(props: {
|
|
52
|
+
leading?(props: {
|
|
52
53
|
avatar: ChatMessageProps['avatar'];
|
|
53
54
|
ui: ChatMessage['ui'];
|
|
54
|
-
}):
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
}): VNode[];
|
|
56
|
+
files?(props: {
|
|
57
|
+
parts: FileUIPart[];
|
|
58
|
+
}): VNode[];
|
|
59
|
+
content?(props: ChatMessageProps): VNode[];
|
|
60
|
+
actions?(props: {
|
|
57
61
|
actions: ChatMessageProps['actions'];
|
|
58
|
-
}):
|
|
62
|
+
}): VNode[];
|
|
59
63
|
}
|
|
60
64
|
declare const _default: typeof __VLS_export;
|
|
61
65
|
export default _default;
|
|
@@ -32,6 +32,7 @@ const props = defineProps({
|
|
|
32
32
|
const slots = defineSlots();
|
|
33
33
|
const appConfig = useAppConfig();
|
|
34
34
|
const uiProp = useComponentUI("chatMessage", props);
|
|
35
|
+
const fileParts = computed(() => props.parts?.filter((part) => part.type === "file") ?? []);
|
|
35
36
|
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.chatMessage || {} })({
|
|
36
37
|
variant: props.variant,
|
|
37
38
|
side: props.side,
|
|
@@ -43,6 +44,10 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.chatMessage |
|
|
|
43
44
|
|
|
44
45
|
<template>
|
|
45
46
|
<Primitive :as="as" :data-role="role" data-slot="root" :class="ui.root({ class: [uiProp?.root, props.class] })">
|
|
47
|
+
<div v-if="!!slots.files" data-slot="files" :class="ui.files({ class: uiProp?.files })">
|
|
48
|
+
<slot name="files" :parts="fileParts" />
|
|
49
|
+
</div>
|
|
50
|
+
|
|
46
51
|
<div data-slot="container" :class="ui.container({ class: uiProp?.container })">
|
|
47
52
|
<div v-if="icon || avatar || !!slots.leading" data-slot="leading" :class="ui.leading({ class: uiProp?.leading })">
|
|
48
53
|
<slot name="leading" :avatar="avatar" :ui="ui">
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
-
import type { UIMessage } from 'ai';
|
|
3
|
+
import type { UIMessage, FileUIPart } from 'ai';
|
|
3
4
|
import theme from '#build/ui/chat-message';
|
|
4
5
|
import type { AvatarProps, ButtonProps, IconProps } from '../types';
|
|
5
6
|
import type { ComponentConfig } from '../types/tv';
|
|
@@ -48,14 +49,17 @@ export interface ChatMessageProps extends UIMessage {
|
|
|
48
49
|
ui?: ChatMessage['slots'];
|
|
49
50
|
}
|
|
50
51
|
export interface ChatMessageSlots {
|
|
51
|
-
leading(props: {
|
|
52
|
+
leading?(props: {
|
|
52
53
|
avatar: ChatMessageProps['avatar'];
|
|
53
54
|
ui: ChatMessage['ui'];
|
|
54
|
-
}):
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
}): VNode[];
|
|
56
|
+
files?(props: {
|
|
57
|
+
parts: FileUIPart[];
|
|
58
|
+
}): VNode[];
|
|
59
|
+
content?(props: ChatMessageProps): VNode[];
|
|
60
|
+
actions?(props: {
|
|
57
61
|
actions: ChatMessageProps['actions'];
|
|
58
|
-
}):
|
|
62
|
+
}): VNode[];
|
|
59
63
|
}
|
|
60
64
|
declare const _default: typeof __VLS_export;
|
|
61
65
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import type { UIMessage, ChatStatus } from 'ai';
|
|
3
4
|
import theme from '#build/ui/chat-messages';
|
|
@@ -53,20 +54,20 @@ export interface ChatMessagesProps {
|
|
|
53
54
|
class?: any;
|
|
54
55
|
ui?: ChatMessages['slots'];
|
|
55
56
|
}
|
|
56
|
-
type ExtendSlotWithVersion<K extends keyof ChatMessageSlots> = ChatMessageSlots[K] extends (props: infer P) =>
|
|
57
|
+
type ExtendSlotWithVersion<K extends keyof ChatMessageSlots> = Required<ChatMessageSlots>[K] extends (props: infer P) => VNode[] ? (props: P & {
|
|
57
58
|
message: UIMessage;
|
|
58
|
-
}) =>
|
|
59
|
+
}) => VNode[] : Required<ChatMessageSlots>[K];
|
|
59
60
|
export type ChatMessagesSlots = {
|
|
60
|
-
[K in keyof ChatMessageSlots]
|
|
61
|
+
[K in keyof ChatMessageSlots]?: ExtendSlotWithVersion<K>;
|
|
61
62
|
} & {
|
|
62
|
-
default(props?: {}):
|
|
63
|
-
indicator(props: {
|
|
63
|
+
default?(props?: {}): VNode[];
|
|
64
|
+
indicator?(props: {
|
|
64
65
|
ui: ChatMessages['ui'];
|
|
65
|
-
}):
|
|
66
|
-
viewport(props: {
|
|
66
|
+
}): VNode[];
|
|
67
|
+
viewport?(props: {
|
|
67
68
|
ui: ChatMessages['ui'];
|
|
68
69
|
onClick: () => void;
|
|
69
|
-
}):
|
|
70
|
+
}): VNode[];
|
|
70
71
|
};
|
|
71
72
|
declare const _default: typeof __VLS_export;
|
|
72
73
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import type { UIMessage, ChatStatus } from 'ai';
|
|
3
4
|
import theme from '#build/ui/chat-messages';
|
|
@@ -53,20 +54,20 @@ export interface ChatMessagesProps {
|
|
|
53
54
|
class?: any;
|
|
54
55
|
ui?: ChatMessages['slots'];
|
|
55
56
|
}
|
|
56
|
-
type ExtendSlotWithVersion<K extends keyof ChatMessageSlots> = ChatMessageSlots[K] extends (props: infer P) =>
|
|
57
|
+
type ExtendSlotWithVersion<K extends keyof ChatMessageSlots> = Required<ChatMessageSlots>[K] extends (props: infer P) => VNode[] ? (props: P & {
|
|
57
58
|
message: UIMessage;
|
|
58
|
-
}) =>
|
|
59
|
+
}) => VNode[] : Required<ChatMessageSlots>[K];
|
|
59
60
|
export type ChatMessagesSlots = {
|
|
60
|
-
[K in keyof ChatMessageSlots]
|
|
61
|
+
[K in keyof ChatMessageSlots]?: ExtendSlotWithVersion<K>;
|
|
61
62
|
} & {
|
|
62
|
-
default(props?: {}):
|
|
63
|
-
indicator(props: {
|
|
63
|
+
default?(props?: {}): VNode[];
|
|
64
|
+
indicator?(props: {
|
|
64
65
|
ui: ChatMessages['ui'];
|
|
65
|
-
}):
|
|
66
|
-
viewport(props: {
|
|
66
|
+
}): VNode[];
|
|
67
|
+
viewport?(props: {
|
|
67
68
|
ui: ChatMessages['ui'];
|
|
68
69
|
onClick: () => void;
|
|
69
|
-
}):
|
|
70
|
+
}): VNode[];
|
|
70
71
|
};
|
|
71
72
|
declare const _default: typeof __VLS_export;
|
|
72
73
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import theme from '#build/ui/chat-palette';
|
|
3
4
|
import type { ComponentConfig } from '../types/tv';
|
|
@@ -12,8 +13,8 @@ export interface ChatPaletteProps {
|
|
|
12
13
|
ui?: ChatPalette['slots'];
|
|
13
14
|
}
|
|
14
15
|
export interface ChatPaletteSlots {
|
|
15
|
-
default(props?: {}):
|
|
16
|
-
prompt(props?: {}):
|
|
16
|
+
default?(props?: {}): VNode[];
|
|
17
|
+
prompt?(props?: {}): VNode[];
|
|
17
18
|
}
|
|
18
19
|
declare const _default: typeof __VLS_export;
|
|
19
20
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import theme from '#build/ui/chat-palette';
|
|
3
4
|
import type { ComponentConfig } from '../types/tv';
|
|
@@ -12,8 +13,8 @@ export interface ChatPaletteProps {
|
|
|
12
13
|
ui?: ChatPalette['slots'];
|
|
13
14
|
}
|
|
14
15
|
export interface ChatPaletteSlots {
|
|
15
|
-
default(props?: {}):
|
|
16
|
-
prompt(props?: {}):
|
|
16
|
+
default?(props?: {}): VNode[];
|
|
17
|
+
prompt?(props?: {}): VNode[];
|
|
17
18
|
}
|
|
18
19
|
declare const _default: typeof __VLS_export;
|
|
19
20
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import theme from '#build/ui/chat-prompt';
|
|
3
4
|
import type { TextareaProps, TextareaSlots } from '../types';
|
|
@@ -27,8 +28,8 @@ export interface ChatPromptEmits {
|
|
|
27
28
|
close: [event: Event];
|
|
28
29
|
}
|
|
29
30
|
export interface ChatPromptSlots extends TextareaSlots {
|
|
30
|
-
header(props?: {}):
|
|
31
|
-
footer(props?: {}):
|
|
31
|
+
header?(props?: {}): VNode[];
|
|
32
|
+
footer?(props?: {}): VNode[];
|
|
32
33
|
}
|
|
33
34
|
declare const _default: typeof __VLS_export;
|
|
34
35
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
1
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
3
|
import theme from '#build/ui/chat-prompt';
|
|
3
4
|
import type { TextareaProps, TextareaSlots } from '../types';
|
|
@@ -27,8 +28,8 @@ export interface ChatPromptEmits {
|
|
|
27
28
|
close: [event: Event];
|
|
28
29
|
}
|
|
29
30
|
export interface ChatPromptSlots extends TextareaSlots {
|
|
30
|
-
header(props?: {}):
|
|
31
|
-
footer(props?: {}):
|
|
31
|
+
header?(props?: {}): VNode[];
|
|
32
|
+
footer?(props?: {}): VNode[];
|
|
32
33
|
}
|
|
33
34
|
declare const _default: typeof __VLS_export;
|
|
34
35
|
export default _default;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { CollapsibleRootProps } from 'reka-ui';
|
|
2
|
+
import type { VNode } from 'vue';
|
|
3
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
4
|
+
import theme from '#build/ui/chat-reasoning';
|
|
5
|
+
import type { IconProps } from '../types';
|
|
6
|
+
import type { ChatShimmerProps } from './ChatShimmer.vue';
|
|
7
|
+
import type { ComponentConfig } from '../types/tv';
|
|
8
|
+
type ChatReasoning = ComponentConfig<typeof theme, AppConfig, 'chatReasoning'>;
|
|
9
|
+
export interface ChatReasoningProps extends Pick<CollapsibleRootProps, 'defaultOpen' | 'open' | 'disabled' | 'unmountOnHide'> {
|
|
10
|
+
/**
|
|
11
|
+
* The reasoning text content to display.
|
|
12
|
+
*/
|
|
13
|
+
text?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the reasoning content is currently streaming.
|
|
16
|
+
* @defaultValue false
|
|
17
|
+
*/
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The duration in seconds that the AI spent reasoning.
|
|
21
|
+
* If not provided, it will be calculated automatically based on streaming time.
|
|
22
|
+
*/
|
|
23
|
+
duration?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The icon displayed next to the trigger.
|
|
26
|
+
* @IconifyIcon
|
|
27
|
+
*/
|
|
28
|
+
icon?: IconProps['name'];
|
|
29
|
+
/**
|
|
30
|
+
* The position of the chevron icon.
|
|
31
|
+
* @defaultValue 'trailing'
|
|
32
|
+
*/
|
|
33
|
+
chevron?: 'leading' | 'trailing';
|
|
34
|
+
/**
|
|
35
|
+
* The icon displayed as the chevron.
|
|
36
|
+
* @defaultValue appConfig.ui.icons.chevronDown
|
|
37
|
+
* @IconifyIcon
|
|
38
|
+
*/
|
|
39
|
+
chevronIcon?: IconProps['name'];
|
|
40
|
+
/**
|
|
41
|
+
* The delay in milliseconds before auto-closing when streaming ends.
|
|
42
|
+
* Set to `0` to disable auto-close.
|
|
43
|
+
* @defaultValue 500
|
|
44
|
+
*/
|
|
45
|
+
autoCloseDelay?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Customize the [`ChatShimmer`](https://ui.nuxt.com/docs/components/chat-shimmer) component when streaming.
|
|
48
|
+
*/
|
|
49
|
+
shimmer?: Partial<Omit<ChatShimmerProps, 'text'>>;
|
|
50
|
+
class?: any;
|
|
51
|
+
ui?: ChatReasoning['slots'];
|
|
52
|
+
}
|
|
53
|
+
export interface ChatReasoningEmits {
|
|
54
|
+
'update:open': [value: boolean];
|
|
55
|
+
}
|
|
56
|
+
export interface ChatReasoningSlots {
|
|
57
|
+
default?(props: {
|
|
58
|
+
open: boolean;
|
|
59
|
+
}): VNode[];
|
|
60
|
+
}
|
|
61
|
+
declare const _default: typeof __VLS_export;
|
|
62
|
+
export default _default;
|
|
63
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ChatReasoningProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
64
|
+
"update:open": (value: boolean) => any;
|
|
65
|
+
}, string, import("vue").PublicProps, Readonly<ChatReasoningProps> & Readonly<{
|
|
66
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
67
|
+
}>, {
|
|
68
|
+
open: boolean;
|
|
69
|
+
streaming: boolean;
|
|
70
|
+
unmountOnHide: boolean;
|
|
71
|
+
chevron: "leading" | "trailing";
|
|
72
|
+
autoCloseDelay: number;
|
|
73
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ChatReasoningSlots>;
|
|
74
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
75
|
+
new (): {
|
|
76
|
+
$slots: S;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/ui/chat-reasoning";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { ref, computed, watch, onUnmounted, nextTick, useTemplateRef } from "vue";
|
|
7
|
+
import { CollapsibleRoot, CollapsibleTrigger, CollapsibleContent } from "reka-ui";
|
|
8
|
+
import { useAppConfig } from "#imports";
|
|
9
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
10
|
+
import { useLocale } from "../composables/useLocale";
|
|
11
|
+
import { useScrollShadow } from "../composables/useScrollShadow";
|
|
12
|
+
import { tv } from "../utils/tv";
|
|
13
|
+
import UIcon from "./Icon.vue";
|
|
14
|
+
import UChatShimmer from "./ChatShimmer.vue";
|
|
15
|
+
const props = defineProps({
|
|
16
|
+
text: { type: String, required: false },
|
|
17
|
+
streaming: { type: Boolean, required: false, default: false },
|
|
18
|
+
duration: { type: Number, required: false },
|
|
19
|
+
icon: { type: null, required: false },
|
|
20
|
+
chevron: { type: String, required: false, default: "trailing" },
|
|
21
|
+
chevronIcon: { type: null, required: false },
|
|
22
|
+
autoCloseDelay: { type: Number, required: false, default: 500 },
|
|
23
|
+
shimmer: { type: Object, required: false },
|
|
24
|
+
class: { type: null, required: false },
|
|
25
|
+
ui: { type: Object, required: false },
|
|
26
|
+
defaultOpen: { type: Boolean, required: false },
|
|
27
|
+
open: { type: Boolean, required: false, default: void 0 },
|
|
28
|
+
disabled: { type: Boolean, required: false },
|
|
29
|
+
unmountOnHide: { type: Boolean, required: false, default: false }
|
|
30
|
+
});
|
|
31
|
+
const emits = defineEmits(["update:open"]);
|
|
32
|
+
defineSlots();
|
|
33
|
+
const { t, code } = useLocale();
|
|
34
|
+
const appConfig = useAppConfig();
|
|
35
|
+
const uiProp = useComponentUI("chatReasoning", props);
|
|
36
|
+
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.chatReasoning || {} })({
|
|
37
|
+
chevron: props.chevron
|
|
38
|
+
}));
|
|
39
|
+
const isControlled = computed(() => props.open !== void 0);
|
|
40
|
+
const internalOpen = ref(props.defaultOpen ?? props.streaming);
|
|
41
|
+
const startTime = ref(props.streaming ? Date.now() : null);
|
|
42
|
+
const internalDuration = ref(void 0);
|
|
43
|
+
const autoCloseTimeout = ref(null);
|
|
44
|
+
watch(() => props.streaming, (streaming, wasStreaming) => {
|
|
45
|
+
if (streaming) {
|
|
46
|
+
if (autoCloseTimeout.value) {
|
|
47
|
+
clearTimeout(autoCloseTimeout.value);
|
|
48
|
+
autoCloseTimeout.value = null;
|
|
49
|
+
}
|
|
50
|
+
if (!wasStreaming) {
|
|
51
|
+
setOpen(true);
|
|
52
|
+
startTime.value = Date.now();
|
|
53
|
+
}
|
|
54
|
+
} else if (wasStreaming) {
|
|
55
|
+
if (startTime.value !== null) {
|
|
56
|
+
internalDuration.value = Math.ceil((Date.now() - startTime.value) / 1e3);
|
|
57
|
+
startTime.value = null;
|
|
58
|
+
}
|
|
59
|
+
if (props.autoCloseDelay > 0) {
|
|
60
|
+
autoCloseTimeout.value = setTimeout(() => {
|
|
61
|
+
setOpen(false);
|
|
62
|
+
}, props.autoCloseDelay);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}, { immediate: true });
|
|
66
|
+
const actualDuration = computed(() => props.duration ?? internalDuration.value);
|
|
67
|
+
const thinkingText = computed(() => {
|
|
68
|
+
if (props.streaming || actualDuration.value === 0) {
|
|
69
|
+
return t("chatReasoning.thinking");
|
|
70
|
+
}
|
|
71
|
+
if (actualDuration.value === void 0) {
|
|
72
|
+
return t("chatReasoning.thought");
|
|
73
|
+
}
|
|
74
|
+
const d = actualDuration.value;
|
|
75
|
+
const unit = d < 60 ? "second" : "minute";
|
|
76
|
+
const value = d < 60 ? d : Math.floor(d / 60);
|
|
77
|
+
const duration = new Intl.NumberFormat(code.value, { style: "unit", unit, unitDisplay: "long" }).format(value);
|
|
78
|
+
return t("chatReasoning.thoughtFor", { duration });
|
|
79
|
+
});
|
|
80
|
+
const resolvedOpen = computed(() => isControlled.value ? props.open : internalOpen.value);
|
|
81
|
+
function setOpen(value) {
|
|
82
|
+
if (autoCloseTimeout.value) {
|
|
83
|
+
clearTimeout(autoCloseTimeout.value);
|
|
84
|
+
autoCloseTimeout.value = null;
|
|
85
|
+
}
|
|
86
|
+
internalOpen.value = value;
|
|
87
|
+
emits("update:open", value);
|
|
88
|
+
}
|
|
89
|
+
onUnmounted(() => {
|
|
90
|
+
if (autoCloseTimeout.value) {
|
|
91
|
+
clearTimeout(autoCloseTimeout.value);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const hasContent = computed(() => !!props.text || props.streaming);
|
|
95
|
+
const chevronIconName = computed(() => props.chevronIcon || appConfig.ui.icons?.chevronDown);
|
|
96
|
+
const bodyRef = useTemplateRef("bodyRef");
|
|
97
|
+
const { style: scrollShadowStyle } = useScrollShadow(bodyRef);
|
|
98
|
+
watch(() => props.text, () => {
|
|
99
|
+
if (!props.streaming || !bodyRef.value) return;
|
|
100
|
+
const el = bodyRef.value;
|
|
101
|
+
const distanceFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight;
|
|
102
|
+
if (distanceFromBottom < 50) {
|
|
103
|
+
nextTick(() => {
|
|
104
|
+
el.scrollTop = el.scrollHeight;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<template>
|
|
111
|
+
<CollapsibleRoot
|
|
112
|
+
v-if="hasContent"
|
|
113
|
+
v-slot="{ open: isOpen }"
|
|
114
|
+
:open="resolvedOpen"
|
|
115
|
+
:disabled="disabled"
|
|
116
|
+
:unmount-on-hide="unmountOnHide"
|
|
117
|
+
data-slot="root"
|
|
118
|
+
:class="ui.root({ class: [uiProp?.root, props.class] })"
|
|
119
|
+
@update:open="setOpen"
|
|
120
|
+
>
|
|
121
|
+
<CollapsibleTrigger as-child :disabled="!hasContent">
|
|
122
|
+
<button
|
|
123
|
+
type="button"
|
|
124
|
+
data-slot="trigger"
|
|
125
|
+
:class="ui.trigger({ class: uiProp?.trigger })"
|
|
126
|
+
>
|
|
127
|
+
<span v-if="icon || hasContent && chevron === 'leading'" data-slot="leading" :class="ui.leading({ class: uiProp?.leading })">
|
|
128
|
+
<UIcon
|
|
129
|
+
v-if="icon"
|
|
130
|
+
:name="icon"
|
|
131
|
+
data-slot="leadingIcon"
|
|
132
|
+
:class="ui.leadingIcon({ class: uiProp?.leadingIcon, alone: !(hasContent && chevron === 'leading') })"
|
|
133
|
+
/>
|
|
134
|
+
<UIcon
|
|
135
|
+
v-if="hasContent && chevron === 'leading'"
|
|
136
|
+
:name="chevronIconName"
|
|
137
|
+
data-slot="chevronIcon"
|
|
138
|
+
:class="ui.chevronIcon({ class: uiProp?.chevronIcon, alone: !icon })"
|
|
139
|
+
/>
|
|
140
|
+
</span>
|
|
141
|
+
|
|
142
|
+
<UChatShimmer v-if="streaming" :text="thinkingText" v-bind="props.shimmer" data-slot="label" :class="ui.label({ class: uiProp?.label })" />
|
|
143
|
+
<span v-else data-slot="label" :class="ui.label({ class: uiProp?.label })">{{ thinkingText }}</span>
|
|
144
|
+
|
|
145
|
+
<UIcon
|
|
146
|
+
v-if="hasContent && chevron === 'trailing'"
|
|
147
|
+
:name="chevronIconName"
|
|
148
|
+
data-slot="trailingIcon"
|
|
149
|
+
:class="ui.trailingIcon({ class: uiProp?.trailingIcon })"
|
|
150
|
+
/>
|
|
151
|
+
</button>
|
|
152
|
+
</CollapsibleTrigger>
|
|
153
|
+
|
|
154
|
+
<CollapsibleContent data-slot="content" :class="ui.content({ class: uiProp?.content })">
|
|
155
|
+
<div ref="bodyRef" data-slot="body" :class="ui.body({ class: uiProp?.body })" :style="scrollShadowStyle">
|
|
156
|
+
<slot :open="isOpen">
|
|
157
|
+
{{ text }}
|
|
158
|
+
</slot>
|
|
159
|
+
</div>
|
|
160
|
+
</CollapsibleContent>
|
|
161
|
+
</CollapsibleRoot>
|
|
162
|
+
</template>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { CollapsibleRootProps } from 'reka-ui';
|
|
2
|
+
import type { VNode } from 'vue';
|
|
3
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
4
|
+
import theme from '#build/ui/chat-reasoning';
|
|
5
|
+
import type { IconProps } from '../types';
|
|
6
|
+
import type { ChatShimmerProps } from './ChatShimmer.vue';
|
|
7
|
+
import type { ComponentConfig } from '../types/tv';
|
|
8
|
+
type ChatReasoning = ComponentConfig<typeof theme, AppConfig, 'chatReasoning'>;
|
|
9
|
+
export interface ChatReasoningProps extends Pick<CollapsibleRootProps, 'defaultOpen' | 'open' | 'disabled' | 'unmountOnHide'> {
|
|
10
|
+
/**
|
|
11
|
+
* The reasoning text content to display.
|
|
12
|
+
*/
|
|
13
|
+
text?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the reasoning content is currently streaming.
|
|
16
|
+
* @defaultValue false
|
|
17
|
+
*/
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The duration in seconds that the AI spent reasoning.
|
|
21
|
+
* If not provided, it will be calculated automatically based on streaming time.
|
|
22
|
+
*/
|
|
23
|
+
duration?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The icon displayed next to the trigger.
|
|
26
|
+
* @IconifyIcon
|
|
27
|
+
*/
|
|
28
|
+
icon?: IconProps['name'];
|
|
29
|
+
/**
|
|
30
|
+
* The position of the chevron icon.
|
|
31
|
+
* @defaultValue 'trailing'
|
|
32
|
+
*/
|
|
33
|
+
chevron?: 'leading' | 'trailing';
|
|
34
|
+
/**
|
|
35
|
+
* The icon displayed as the chevron.
|
|
36
|
+
* @defaultValue appConfig.ui.icons.chevronDown
|
|
37
|
+
* @IconifyIcon
|
|
38
|
+
*/
|
|
39
|
+
chevronIcon?: IconProps['name'];
|
|
40
|
+
/**
|
|
41
|
+
* The delay in milliseconds before auto-closing when streaming ends.
|
|
42
|
+
* Set to `0` to disable auto-close.
|
|
43
|
+
* @defaultValue 500
|
|
44
|
+
*/
|
|
45
|
+
autoCloseDelay?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Customize the [`ChatShimmer`](https://ui.nuxt.com/docs/components/chat-shimmer) component when streaming.
|
|
48
|
+
*/
|
|
49
|
+
shimmer?: Partial<Omit<ChatShimmerProps, 'text'>>;
|
|
50
|
+
class?: any;
|
|
51
|
+
ui?: ChatReasoning['slots'];
|
|
52
|
+
}
|
|
53
|
+
export interface ChatReasoningEmits {
|
|
54
|
+
'update:open': [value: boolean];
|
|
55
|
+
}
|
|
56
|
+
export interface ChatReasoningSlots {
|
|
57
|
+
default?(props: {
|
|
58
|
+
open: boolean;
|
|
59
|
+
}): VNode[];
|
|
60
|
+
}
|
|
61
|
+
declare const _default: typeof __VLS_export;
|
|
62
|
+
export default _default;
|
|
63
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ChatReasoningProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
64
|
+
"update:open": (value: boolean) => any;
|
|
65
|
+
}, string, import("vue").PublicProps, Readonly<ChatReasoningProps> & Readonly<{
|
|
66
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
67
|
+
}>, {
|
|
68
|
+
open: boolean;
|
|
69
|
+
streaming: boolean;
|
|
70
|
+
unmountOnHide: boolean;
|
|
71
|
+
chevron: "leading" | "trailing";
|
|
72
|
+
autoCloseDelay: number;
|
|
73
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ChatReasoningSlots>;
|
|
74
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
75
|
+
new (): {
|
|
76
|
+
$slots: S;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/ui/chat-shimmer';
|
|
3
|
+
import type { ComponentConfig } from '../types/tv';
|
|
4
|
+
type ChatShimmer = ComponentConfig<typeof theme, AppConfig, 'chatShimmer'>;
|
|
5
|
+
export interface ChatShimmerProps {
|
|
6
|
+
/**
|
|
7
|
+
* The element or component this component should render as.
|
|
8
|
+
* @defaultValue 'span'
|
|
9
|
+
*/
|
|
10
|
+
as?: any;
|
|
11
|
+
/**
|
|
12
|
+
* The text to display with the shimmer effect.
|
|
13
|
+
*/
|
|
14
|
+
text: string;
|
|
15
|
+
/**
|
|
16
|
+
* The duration of the shimmer animation in seconds.
|
|
17
|
+
* @defaultValue 2
|
|
18
|
+
*/
|
|
19
|
+
duration?: number;
|
|
20
|
+
/**
|
|
21
|
+
* The spread multiplier for the shimmer highlight. The actual spread is computed as `text.length * spread` in pixels.
|
|
22
|
+
* @defaultValue 2
|
|
23
|
+
*/
|
|
24
|
+
spread?: number;
|
|
25
|
+
class?: any;
|
|
26
|
+
ui?: ChatShimmer['slots'];
|
|
27
|
+
}
|
|
28
|
+
declare const _default: typeof __VLS_export;
|
|
29
|
+
export default _default;
|
|
30
|
+
declare const __VLS_export: import("vue").DefineComponent<ChatShimmerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ChatShimmerProps> & Readonly<{}>, {
|
|
31
|
+
as: any;
|
|
32
|
+
duration: number;
|
|
33
|
+
spread: number;
|
|
34
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|