entasis 0.10.2 → 0.12.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 +1 -1
- package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
- package/dist/attachments/disclosurePanel.svelte.js +277 -0
- package/dist/attachments/portal.d.ts +17 -1
- package/dist/attachments/portal.js +39 -2
- package/dist/attachments/spinnerOverlay.svelte.js +12 -0
- package/dist/attachments/transitionSize.d.ts +6 -0
- package/dist/attachments/transitionSize.js +30 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
- package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
- package/dist/components/AIAskUserQuestion/index.js +2 -0
- package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
- package/dist/components/AIAskUserQuestion/schemas.js +10 -3
- package/dist/components/AIChat/AIChat.svelte +10 -0
- package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
- package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
- package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
- package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
- package/dist/components/AIChat/AIChatSurface.svelte +30 -2
- package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
- package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
- package/dist/components/AIChat/aiChat.mcp.js +31 -15
- package/dist/components/AIChat/aiChat.props.d.ts +36 -10
- package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
- package/dist/components/AIChat/aiChat.theme.js +21 -4
- package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
- package/dist/components/AIChat/index.d.ts +1 -1
- package/dist/components/AIComposer/AIComposer.svelte +102 -5
- package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
- package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
- package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
- package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
- package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
- package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
- package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
- package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
- package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
- package/dist/components/AIComposer/aiComposer.theme.js +37 -5
- package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
- package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
- package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
- package/dist/components/AIContext/AIContext.svelte +7 -3
- package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
- package/dist/components/AIContext/aiContext.mcp.js +1 -1
- package/dist/components/AIContext/aiContext.props.d.ts +4 -1
- package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
- package/dist/components/AIContext/aiContext.theme.js +7 -2
- package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
- package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
- package/dist/components/AIMarker/AIMarker.svelte +2 -0
- package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
- package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
- package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
- package/dist/components/AIMarker/aiMarker.theme.js +2 -2
- package/dist/components/AIMessage/AIMessage.svelte +38 -16
- package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
- package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
- package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
- package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
- package/dist/components/AIMessage/aiMessage.theme.js +91 -32
- package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
- package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
- package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
- package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
- package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
- package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
- package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
- package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
- package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
- package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
- package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
- package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
- package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
- package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
- package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
- package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
- package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
- package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
- package/dist/components/AIThread/AIThread.svelte +378 -95
- package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
- package/dist/components/AIThread/AIThreadItems.svelte +266 -64
- package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
- package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
- package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
- package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
- package/dist/components/AIThread/aiThread.mcp.js +34 -20
- package/dist/components/AIThread/aiThread.props.d.ts +73 -8
- package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
- package/dist/components/AIThread/aiThread.theme.js +108 -9
- package/dist/components/AIThread/index.d.ts +1 -1
- package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
- package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
- package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
- package/dist/components/AIThread/threadRenderItems.js +265 -77
- package/dist/components/AIThread/threadScrollController.d.ts +0 -8
- package/dist/components/AIThread/threadScrollController.js +2 -39
- package/dist/components/AIThread/threadTools.d.ts +11 -0
- package/dist/components/AIThread/threadTools.js +79 -0
- package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
- package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
- package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
- package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
- package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
- package/dist/components/AITool/AITool.svelte +56 -21
- package/dist/components/AITool/AIToolCallList.svelte +79 -29
- package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
- package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
- package/dist/components/AITool/AIToolValueSection.svelte +126 -28
- package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolValueTree.svelte +11 -16
- package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
- package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
- package/dist/components/AITool/aiTool.mcp.js +36 -8
- package/dist/components/AITool/aiTool.props.d.ts +52 -6
- package/dist/components/AITool/aiTool.theme.d.ts +117 -39
- package/dist/components/AITool/aiTool.theme.js +144 -140
- package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
- package/dist/components/AITool/aiToolClock.svelte.js +62 -0
- package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
- package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
- package/dist/components/AITool/index.d.ts +2 -1
- package/dist/components/AITool/index.js +1 -0
- package/dist/components/AITool/toolRendering.d.ts +33 -1
- package/dist/components/AITool/toolRendering.js +179 -15
- package/dist/components/AITool/toolValueTree.d.ts +14 -1
- package/dist/components/AITool/toolValueTree.js +126 -27
- package/dist/components/Accordion/Accordion.svelte +109 -109
- package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
- package/dist/components/Accordion/AccordionPanel.svelte +64 -0
- package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
- package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
- package/dist/components/Accordion/accordion.attributes.js +20 -0
- package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
- package/dist/components/Accordion/accordion.mcp.js +78 -22
- package/dist/components/Accordion/accordion.props.d.ts +54 -10
- package/dist/components/Accordion/accordion.theme.d.ts +3 -0
- package/dist/components/Accordion/accordion.theme.js +4 -0
- package/dist/components/Accordion/index.d.ts +1 -0
- package/dist/components/Accordion/index.js +1 -0
- package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
- package/dist/components/Avatar/Avatar.svelte +60 -10
- package/dist/components/Avatar/AvatarGroup.svelte +9 -0
- package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
- package/dist/components/Avatar/avatar.mcp.js +13 -5
- package/dist/components/Avatar/avatar.props.d.ts +28 -1
- package/dist/components/Avatar/avatar.theme.js +3 -3
- package/dist/components/Avatar/index.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
- package/dist/components/Button/Button.svelte +35 -15
- package/dist/components/Button/button.mcp.d.ts +1 -1
- package/dist/components/Button/button.mcp.js +8 -4
- package/dist/components/Button/button.props.d.ts +23 -8
- package/dist/components/Button/button.theme.d.ts +12 -0
- package/dist/components/Button/button.theme.js +17 -4
- package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
- package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
- package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
- package/dist/components/Collapsible/Collapsible.svelte +125 -19
- package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
- package/dist/components/Collapsible/collapsible.attributes.js +17 -0
- package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
- package/dist/components/Collapsible/collapsible.mcp.js +62 -12
- package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
- package/dist/components/Collapsible/collapsible.theme.js +3 -1
- package/dist/components/Collapsible/index.d.ts +1 -0
- package/dist/components/Collapsible/index.js +1 -0
- package/dist/components/Command/Command.svelte +56 -14
- package/dist/components/Command/command.mcp.d.ts +1 -1
- package/dist/components/Command/command.mcp.js +12 -6
- package/dist/components/Command/command.props.d.ts +39 -6
- package/dist/components/Command/command.state.svelte.d.ts +40 -11
- package/dist/components/Command/command.state.svelte.js +75 -28
- package/dist/components/Command/command.theme.js +4 -3
- package/dist/components/Confirmation/Confirmation.svelte +72 -31
- package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
- package/dist/components/Confirmation/confirmation.mcp.js +5 -4
- package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
- package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
- package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
- package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
- package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
- package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
- package/dist/components/DataTable/DataTable.svelte +4 -9
- package/dist/components/DataTable/DataTableEditor.svelte +5 -0
- package/dist/components/DataTable/DataTableFilter.svelte +1 -0
- package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
- package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
- package/dist/components/DataTable/dataTable.mcp.js +4 -2
- package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
- package/dist/components/DataTable/dataTable.theme.js +9 -6
- package/dist/components/Dialog/Dialog.svelte +120 -35
- package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
- package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
- package/dist/components/Dialog/dialog.api.d.ts +65 -0
- package/dist/components/Dialog/dialog.api.js +1 -0
- package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
- package/dist/components/Dialog/dialog.attributes.js +19 -0
- package/dist/components/Dialog/dialog.indent.d.ts +6 -0
- package/dist/components/Dialog/dialog.indent.js +16 -0
- package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
- package/dist/components/Dialog/dialog.mcp.js +195 -22
- package/dist/components/Dialog/dialog.props.d.ts +102 -19
- package/dist/components/Dialog/dialog.snap.d.ts +40 -0
- package/dist/components/Dialog/dialog.snap.js +78 -0
- package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
- package/dist/components/Dialog/dialog.state.svelte.js +525 -66
- package/dist/components/Dialog/dialog.theme.d.ts +48 -0
- package/dist/components/Dialog/dialog.theme.js +32 -9
- package/dist/components/Dialog/index.d.ts +4 -1
- package/dist/components/Dialog/index.js +1 -0
- package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
- package/dist/components/DocumentViewer/documentOutput.js +2 -1
- package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
- package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
- package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
- package/dist/components/Form/Ask/Ask.svelte +9 -13
- package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
- package/dist/components/Form/Ask/ask.mcp.js +1 -1
- package/dist/components/Form/Ask/ask.props.d.ts +1 -1
- package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
- package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
- package/dist/components/Form/Autocomplete/index.d.ts +3 -0
- package/dist/components/Form/Autocomplete/index.js +2 -0
- package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
- package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
- package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
- package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
- package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
- package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
- package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
- package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
- package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
- package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
- package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
- package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
- package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
- package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
- package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
- package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
- package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
- package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
- package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
- package/dist/components/Form/Combobox/Combobox.svelte +145 -185
- package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
- package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
- package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
- package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
- package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.items.js +68 -0
- package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
- package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
- package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
- package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
- package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
- package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
- package/dist/components/Form/Combobox/combobox.theme.js +37 -1
- package/dist/components/Form/Combobox/index.d.ts +2 -1
- package/dist/components/Form/Combobox/index.js +1 -0
- package/dist/components/Form/DateInput/DateInput.svelte +11 -3
- package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
- package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
- package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
- package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
- package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
- package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
- package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
- package/dist/components/Form/Field/Field.svelte +258 -32
- package/dist/components/Form/Field/Field.svelte.d.ts +15 -6
- package/dist/components/Form/Field/FieldGroup.svelte +29 -0
- package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
- package/dist/components/Form/Field/field.d.ts +75 -10
- package/dist/components/Form/Field/field.mcp.d.ts +1 -1
- package/dist/components/Form/Field/field.mcp.js +158 -18
- package/dist/components/Form/Field/field.messages.d.ts +47 -0
- package/dist/components/Form/Field/field.messages.js +64 -0
- package/dist/components/Form/Field/field.state.svelte.d.ts +117 -40
- package/dist/components/Form/Field/field.state.svelte.js +525 -16
- package/dist/components/Form/Field/field.theme.d.ts +46 -0
- package/dist/components/Form/Field/field.theme.js +33 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
- package/dist/components/Form/Field/index.d.ts +5 -2
- package/dist/components/Form/Field/index.js +1 -0
- package/dist/components/Form/Field/schemas.js +7 -2
- package/dist/components/Form/File/FileInput.svelte +24 -3
- package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
- package/dist/components/Form/File/fileInput.mcp.js +1 -0
- package/dist/components/Form/Form/Form.svelte +49 -15
- package/dist/components/Form/Form/FormActions.svelte +3 -1
- package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
- package/dist/components/Form/Form/FormFieldRenderer.svelte +96 -12
- package/dist/components/Form/Form/FormFieldRenderer.svelte.d.ts +3 -2
- package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
- package/dist/components/Form/Form/form.d.ts +84 -11
- package/dist/components/Form/Form/form.mcp.d.ts +1 -1
- package/dist/components/Form/Form/form.mcp.js +178 -12
- package/dist/components/Form/Form/form.props.d.ts +32 -1
- package/dist/components/Form/Form/form.registry.d.ts +28 -0
- package/dist/components/Form/Form/form.registry.js +59 -0
- package/dist/components/Form/Form/form.state.svelte.d.ts +1186 -420
- package/dist/components/Form/Form/form.state.svelte.js +322 -28
- package/dist/components/Form/Form/index.d.ts +4 -1
- package/dist/components/Form/Form/index.js +1 -0
- package/dist/components/Form/Form/visibility.d.ts +3130 -1863
- package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
- package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
- package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1050 -408
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
- package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
- package/dist/components/Form/NumberInput/index.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
- package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
- package/dist/components/Form/PasswordInput/Password.svelte +28 -1
- package/dist/components/Form/PasswordInput/index.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
- package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
- package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
- package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
- package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
- package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
- package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
- package/dist/components/Form/PinInput/PinInput.svelte +44 -9
- package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
- package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
- package/dist/components/Form/PinInput/index.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
- package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
- package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
- package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
- package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
- package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
- package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
- package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
- package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
- package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
- package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
- package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
- package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
- package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
- package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
- package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
- package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
- package/dist/components/Form/Select/Select.svelte +186 -48
- package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
- package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
- package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
- package/dist/components/Form/Select/index.d.ts +2 -1
- package/dist/components/Form/Select/index.js +1 -0
- package/dist/components/Form/Select/select.align.d.ts +5 -0
- package/dist/components/Form/Select/select.align.js +19 -5
- package/dist/components/Form/Select/select.attributes.d.ts +36 -0
- package/dist/components/Form/Select/select.attributes.js +27 -0
- package/dist/components/Form/Select/select.mcp.d.ts +1 -1
- package/dist/components/Form/Select/select.mcp.js +103 -18
- package/dist/components/Form/Select/select.props.d.ts +87 -10
- package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
- package/dist/components/Form/Select/select.state.svelte.js +354 -59
- package/dist/components/Form/Select/select.theme.d.ts +21 -0
- package/dist/components/Form/Select/select.theme.js +22 -0
- package/dist/components/Form/Slider/Slider.svelte +54 -14
- package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
- package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
- package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
- package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
- package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
- package/dist/components/Form/Slider/index.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.js +55 -11
- package/dist/components/Form/Slider/slider.props.d.ts +35 -2
- package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
- package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
- package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
- package/dist/components/Form/Slider/slider.theme.js +35 -17
- package/dist/components/Form/Switch/Switch.svelte +61 -38
- package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
- package/dist/components/Form/Switch/switch.mcp.js +25 -5
- package/dist/components/Form/Switch/switch.props.d.ts +14 -1
- package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
- package/dist/components/Form/Switch/switch.theme.js +8 -3
- package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
- package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
- package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
- package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
- package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
- package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
- package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
- package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
- package/dist/components/Form/TextArea/TextArea.svelte +8 -0
- package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
- package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
- package/dist/components/Form/TextInput/TextInput.svelte +8 -1
- package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
- package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
- package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
- package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
- package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
- package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
- package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
- package/dist/components/HoverCard/HoverCard.svelte +100 -10
- package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
- package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
- package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
- package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
- package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
- package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
- package/dist/components/HoverCard/hoverCard.theme.js +9 -2
- package/dist/components/HoverCard/index.d.ts +1 -0
- package/dist/components/HoverCard/index.js +1 -0
- package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
- package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
- package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
- package/dist/components/Kanban/kanban.theme.js +7 -3
- package/dist/components/Layout/layoutSpacing.d.ts +2 -2
- package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
- package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
- package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
- package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
- package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
- package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
- package/dist/components/Map/maplibre-cdn.js +3 -2
- package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
- package/dist/components/Markdown/markdown.mcp.js +2 -1
- package/dist/components/Markdown/markdown.theme.js +18 -9
- package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
- package/dist/components/Menu/Menu.svelte +3 -3
- package/dist/components/Menu/Menu.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
- package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
- package/dist/components/Menu/MenuFloating.svelte +421 -74
- package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
- package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
- package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
- package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
- package/dist/components/Menu/MenuSearchField.svelte +54 -0
- package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
- package/dist/components/Menu/MenuStacked.svelte +404 -158
- package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
- package/dist/components/Menu/index.d.ts +2 -1
- package/dist/components/Menu/index.js +1 -0
- package/dist/components/Menu/menu.attributes.d.ts +37 -0
- package/dist/components/Menu/menu.attributes.js +28 -0
- package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
- package/dist/components/Menu/menu.filter.svelte.js +143 -0
- package/dist/components/Menu/menu.mcp.d.ts +1 -1
- package/dist/components/Menu/menu.mcp.js +227 -17
- package/dist/components/Menu/menu.platform.d.ts +5 -0
- package/dist/components/Menu/menu.platform.js +11 -0
- package/dist/components/Menu/menu.props.d.ts +172 -9
- package/dist/components/Menu/menu.theme.d.ts +147 -0
- package/dist/components/Menu/menu.theme.js +101 -0
- package/dist/components/Menu/menuTree.d.ts +35 -1
- package/dist/components/Menu/menuTree.js +158 -1
- package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
- package/dist/components/MenuBar/menuBar.mcp.js +4 -2
- package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
- package/dist/components/MenuOption/MenuOption.svelte +5 -1
- package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
- package/dist/components/MenuOption/menuOption.mcp.js +8 -0
- package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
- package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
- package/dist/components/MenuOption/menuOption.theme.js +24 -4
- package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
- package/dist/components/Mermaid/mermaid.mcp.js +8 -8
- package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
- package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
- package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
- package/dist/components/Mermaid/mermaid.theme.js +26 -1
- package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
- package/dist/components/Meter/Meter.svelte +110 -24
- package/dist/components/Meter/Meter.svelte.d.ts +12 -12
- package/dist/components/Meter/meter.mcp.d.ts +1 -1
- package/dist/components/Meter/meter.mcp.js +23 -37
- package/dist/components/Meter/meter.props.d.ts +36 -44
- package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
- package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/index.d.ts +4 -0
- package/dist/components/NavigationMenu/index.js +3 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
- package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
- package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
- package/dist/components/Overlay/Overlay.svelte +19 -30
- package/dist/components/Overlay/index.d.ts +1 -0
- package/dist/components/Overlay/index.js +1 -0
- package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
- package/dist/components/Overlay/overlay.attributes.js +14 -0
- package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
- package/dist/components/Overlay/overlay.mcp.js +21 -3
- package/dist/components/Overlay/overlay.props.d.ts +8 -4
- package/dist/components/Popover/Popover.svelte +163 -52
- package/dist/components/Popover/Popover.svelte.d.ts +23 -2
- package/dist/components/Popover/PopoverSession.svelte +12 -0
- package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
- package/dist/components/Popover/index.d.ts +10 -2
- package/dist/components/Popover/index.js +4 -1
- package/dist/components/Popover/popover.api.d.ts +83 -0
- package/dist/components/Popover/popover.api.js +1 -0
- package/dist/components/Popover/popover.attributes.d.ts +32 -0
- package/dist/components/Popover/popover.attributes.js +28 -0
- package/dist/components/Popover/popover.claims.d.ts +19 -0
- package/dist/components/Popover/popover.claims.js +45 -0
- package/dist/components/Popover/popover.mcp.d.ts +1 -1
- package/dist/components/Popover/popover.mcp.js +163 -31
- package/dist/components/Popover/popover.position.d.ts +226 -0
- package/dist/components/Popover/popover.position.js +402 -0
- package/dist/components/Popover/popover.props.d.ts +179 -24
- package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
- package/dist/components/Popover/popover.state.svelte.js +1034 -194
- package/dist/components/Popover/popover.theme.d.ts +15 -0
- package/dist/components/Popover/popover.theme.js +27 -2
- package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
- package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
- package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
- package/dist/components/PopupMenu/popupMenu.context.js +52 -0
- package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
- package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
- package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
- package/dist/components/Progress/Progress.svelte +160 -0
- package/dist/components/Progress/Progress.svelte.d.ts +4 -0
- package/dist/components/Progress/index.d.ts +3 -0
- package/dist/components/Progress/index.js +2 -0
- package/dist/components/Progress/progress.mcp.d.ts +1 -0
- package/dist/components/Progress/progress.mcp.js +101 -0
- package/dist/components/Progress/progress.props.d.ts +79 -0
- package/dist/components/Progress/progress.props.js +1 -0
- package/dist/components/Progress/progress.theme.d.ts +129 -0
- package/dist/components/Progress/progress.theme.js +83 -0
- package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
- package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
- package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
- package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
- package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
- package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
- package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
- package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
- package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
- package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
- package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
- package/dist/components/RichTextInput/suggestions.js +2 -0
- package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
- package/dist/components/ScrollArea/index.d.ts +2 -1
- package/dist/components/ScrollArea/index.js +1 -0
- package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
- package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
- package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
- package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
- package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
- package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
- package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
- package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
- package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
- package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
- package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
- package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
- package/dist/components/Sidebar/SidebarAction.svelte +13 -3
- package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
- package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
- package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
- package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
- package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
- package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
- package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
- package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
- package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
- package/dist/components/Sidebar/index.d.ts +1 -0
- package/dist/components/Sidebar/index.js +1 -0
- package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
- package/dist/components/Sidebar/sidebar-position.js +31 -2
- package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
- package/dist/components/Sidebar/sidebar.attributes.js +29 -0
- package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
- package/dist/components/Sidebar/sidebar.mcp.js +45 -10
- package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
- package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
- package/dist/components/Sidebar/sidebar.theme.js +113 -62
- package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
- package/dist/components/Stepper/Stepper.svelte +2 -0
- package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
- package/dist/components/Stepper/stepper.mcp.js +1 -0
- package/dist/components/Stepper/stepper.props.d.ts +5 -0
- package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
- package/dist/components/Stepper/stepper.state.svelte.js +31 -12
- package/dist/components/Tabbar/Tabbar.svelte +55 -16
- package/dist/components/Tabbar/index.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.js +26 -9
- package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
- package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
- package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
- package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
- package/dist/components/Tabs/Tabs.svelte +73 -16
- package/dist/components/Tabs/index.d.ts +2 -1
- package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
- package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
- package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
- package/dist/components/Tabs/tabs.mcp.js +22 -4
- package/dist/components/Tabs/tabs.props.d.ts +39 -12
- package/dist/components/Tabs/tabs.theme.js +3 -1
- package/dist/components/Theme/Theme.svelte +44 -27
- package/dist/components/Theme/helper.d.ts +16 -2
- package/dist/components/Theme/helper.js +46 -4
- package/dist/components/Theme/theme.mcp.d.ts +1 -1
- package/dist/components/Theme/theme.mcp.js +103 -0
- package/dist/components/Theme/theme.props.d.ts +16 -0
- package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
- package/dist/components/Theme/theme.state.svelte.js +18 -1
- package/dist/components/Toast/Toast.svelte +184 -39
- package/dist/components/Toast/Toaster.svelte +14 -10
- package/dist/components/Toast/index.d.ts +1 -0
- package/dist/components/Toast/toast.mcp.d.ts +1 -1
- package/dist/components/Toast/toast.mcp.js +47 -6
- package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
- package/dist/components/Toast/toast.state.svelte.js +513 -68
- package/dist/components/Toast/toast.theme.js +1 -1
- package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
- package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
- package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
- package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
- package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
- package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
- package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
- package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
- package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
- package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
- package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
- package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
- package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
- package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
- package/dist/components/Tooltip/Tooltip.svelte +4 -12
- package/dist/components/Tooltip/TooltipHost.svelte +136 -15
- package/dist/components/Tooltip/index.d.ts +1 -0
- package/dist/components/Tooltip/index.js +1 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
- package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
- package/dist/components/Tooltip/tooltip.attributes.js +28 -0
- package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
- package/dist/components/Tooltip/tooltip.mcp.js +111 -10
- package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
- package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
- package/dist/components/Tooltip/tooltip.surface.js +42 -0
- package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
- package/dist/components/Utils/BeforeHydratation.svelte +14 -3
- package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
- package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
- package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
- package/dist/generated/componentAliases.d.ts +3 -0
- package/dist/generated/componentAliases.js +3 -0
- package/dist/generated/componentContract.d.ts +79 -34
- package/dist/generated/componentContract.js +231 -6
- package/dist/generated/componentMcpRegistry.js +6 -0
- package/dist/i18n/ar.js +107 -3
- package/dist/i18n/context.svelte.d.ts +6 -0
- package/dist/i18n/context.svelte.js +12 -0
- package/dist/i18n/de.js +101 -3
- package/dist/i18n/en.d.ts +91 -2
- package/dist/i18n/en.js +101 -3
- package/dist/i18n/es.js +101 -3
- package/dist/i18n/fr.js +101 -3
- package/dist/i18n/ja.js +101 -3
- package/dist/i18n/pt.js +101 -3
- package/dist/i18n/zh.js +101 -3
- package/dist/tailwind/geometry.js +7 -0
- package/dist/tailwind/global.js +31 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/types.mcp.d.ts +1 -1
- package/dist/types/types.mcp.js +23 -0
- package/dist/utils/cspNonce.d.ts +16 -0
- package/dist/utils/cspNonce.js +39 -0
- package/dist/utils/cva/merge.d.ts +5 -1
- package/dist/utils/cva/merge.js +6 -4
- package/dist/utils/focus.d.ts +34 -0
- package/dist/utils/focus.js +93 -0
- package/dist/utils/focusHistory.d.ts +21 -0
- package/dist/utils/focusHistory.js +99 -0
- package/dist/utils/handlers.d.ts +7 -0
- package/dist/utils/handlers.js +14 -0
- package/dist/utils/hoverIntent.d.ts +42 -0
- package/dist/utils/hoverIntent.js +57 -0
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.js +15 -0
- package/dist/utils/layers.svelte.d.ts +32 -4
- package/dist/utils/layers.svelte.js +214 -21
- package/dist/utils/listFilter.d.ts +44 -0
- package/dist/utils/listFilter.js +130 -0
- package/dist/utils/match.d.ts +35 -0
- package/dist/utils/match.js +36 -0
- package/dist/utils/number.d.ts +126 -0
- package/dist/utils/number.js +401 -0
- package/dist/utils/openChange.d.ts +88 -0
- package/dist/utils/openChange.js +71 -0
- package/dist/utils/openLifecycle.svelte.d.ts +41 -0
- package/dist/utils/openLifecycle.svelte.js +134 -0
- package/dist/utils/pointerDrag.d.ts +10 -0
- package/dist/utils/pointerDrag.js +37 -2
- package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
- package/dist/utils/pragmaticDragAndDrop.js +8 -3
- package/dist/utils/range.d.ts +62 -0
- package/dist/utils/range.js +70 -0
- package/dist/utils/requestNativeSubmit.d.ts +17 -0
- package/dist/utils/requestNativeSubmit.js +47 -0
- package/dist/utils/safeArea.svelte.d.ts +10 -1
- package/dist/utils/safeArea.svelte.js +19 -11
- package/dist/utils/stateAttributes.d.ts +108 -0
- package/dist/utils/stateAttributes.js +78 -0
- package/dist/utils/swipeVelocity.d.ts +32 -0
- package/dist/utils/swipeVelocity.js +59 -0
- package/dist/utils/timer.svelte.d.ts +65 -2
- package/dist/utils/timer.svelte.js +159 -25
- package/dist/utils/trigger.d.ts +41 -0
- package/dist/utils/trigger.js +103 -0
- package/dist/utils/typeahead.d.ts +9 -0
- package/dist/utils/typeahead.js +21 -9
- package/dist/utils/useDndList.svelte.d.ts +1 -1
- package/dist/utils/useDndList.svelte.js +6 -23
- package/dist/utils/useFocusScope.svelte.d.ts +29 -0
- package/dist/utils/useFocusScope.svelte.js +189 -27
- package/dist/utils/useHoverAction.svelte.d.ts +44 -4
- package/dist/utils/useHoverAction.svelte.js +161 -51
- package/dist/utils/useKeyDown.svelte.d.ts +19 -2
- package/dist/utils/useKeyDown.svelte.js +19 -12
- package/dist/utils/useListNavigation.svelte.d.ts +94 -13
- package/dist/utils/useListNavigation.svelte.js +261 -35
- package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
- package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
- package/dist/utils/useNavigation.svelte.d.ts +36 -3
- package/dist/utils/useNavigation.svelte.js +699 -332
- package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
- package/dist/utils/usePressAndHold.svelte.js +191 -0
- package/dist/utils/useScrollLock.svelte.d.ts +20 -1
- package/dist/utils/useScrollLock.svelte.js +54 -13
- package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
- package/dist/utils/useSlidingIndicator.svelte.js +27 -5
- package/dist/utils/useTabBridge.svelte.d.ts +20 -0
- package/dist/utils/useTabBridge.svelte.js +109 -0
- package/dist/utils/values.d.ts +15 -0
- package/dist/utils/values.js +49 -0
- package/package.json +31 -2
- package/dist/generated/componentMcpRegistry.d.ts +0 -142
- package/dist/utils/useDrag.svelte.d.ts +0 -11
- package/dist/utils/useDrag.svelte.js +0 -55
|
@@ -22,7 +22,7 @@ Virtualized AI transcript with stable message keys, initial end anchoring, pinne
|
|
|
22
22
|
/>
|
|
23
23
|
\`\`\`
|
|
24
24
|
|
|
25
|
-
\`liveText\` is announced through a polite, atomic, screen-reader-only region.
|
|
25
|
+
\`liveText\` is announced through a polite, atomic, screen-reader-only region and does not suppress the empty state. While \`streaming\` is true and the last item is a user turn, a pending assistant row shows \`liveText\` (or "Thinking…") with the \`shimmer\` utility; the live region announces the same text. The segment that ends a streaming reply shows a pulsing caret.
|
|
26
26
|
|
|
27
27
|
## Message input
|
|
28
28
|
|
|
@@ -31,9 +31,13 @@ Virtualized AI transcript with stable message keys, initial end anchoring, pinne
|
|
|
31
31
|
- \`{ type: 'text', text }\`
|
|
32
32
|
- \`{ type: 'marker', content, variant? }\`
|
|
33
33
|
- \`{ type: 'tool', tool: AIToolCall }\`
|
|
34
|
-
- AI SDK \`dynamic-tool\` and \`tool-*\` parts with \`toolCallId\`, \`state\`, \`input\`, \`output\`, \`structuredContent\`, \`result\`, \`error\`, and \`_meta\`
|
|
34
|
+
- AI SDK \`dynamic-tool\` and \`tool-*\` parts with \`toolCallId\`, \`state\`, \`input\`, \`output\`, \`structuredContent\`, \`result\`, \`error\`, \`approval\`, and \`_meta\`. States map through \`getAIToolStatusFromState\`: \`approval-requested\`, \`approval-responded\` and \`output-denied\` become AITool's awaiting, approved and denied statuses, so a call waiting on the user never spins.
|
|
35
|
+
- AI SDK \`{ type: 'reasoning', text, state? }\` - rendered with AIReasoning, streaming while \`state\` is \`'streaming'\` (or, without a state, while it is the last part of a streaming reply).
|
|
36
|
+
- AI SDK \`source-url\` / \`source-document\` parts - one "Sources" row of chips per message; only http(s) URLs become links.
|
|
37
|
+
- AI SDK \`file\` parts - shown as file previews with the message's text segment (or a segment of their own). Only https, blob and image data URLs are used as previews.
|
|
38
|
+
- \`step-start\` and \`data-*\` parts carry no visible content and are skipped. An assistant message with nothing visible yet (only such parts, empty text, or the empty placeholder a client adds before the first token) is not rendered, so the pending row stays until real content arrives.
|
|
35
39
|
|
|
36
|
-
When text parts are present, top-level message content is not rendered again. Consecutive ordinary tools are grouped through \`AITool\`.
|
|
40
|
+
When text parts are present, top-level message content is not rendered again. Consecutive ordinary tools are grouped through \`AITool\`. An ask-user-question tool that is answered (by the conversation, by the AI SDK output state, or locally through this thread) renders as a compact question → answer summary (\`AIAskUserQuestionSummary\`); a dismissed one settles as a cancelled call.
|
|
37
41
|
|
|
38
42
|
## Core props
|
|
39
43
|
|
|
@@ -41,18 +45,20 @@ When text parts are present, top-level message content is not rendered again. Co
|
|
|
41
45
|
- **getMessageKey**: (message, index) => string | number | bigint | undefined - Stable virtualization key. Prefer persistent identifiers.
|
|
42
46
|
- **liveText**: string - Screen-reader announcement. Falls back to AIConversation.
|
|
43
47
|
- **streaming**: boolean - Sets the busy state. Falls back to AIConversation.
|
|
44
|
-
- **density**: 'compact' | 'normal' | 'comfortable' - Transcript row and edge spacing. Default 'normal'.
|
|
45
|
-
- **messageSize**: 'small' | 'normal' | 'large' -
|
|
46
|
-
- **messageVariant**: '
|
|
48
|
+
- **density**: 'compact' | 'normal' | 'comfortable' - Transcript row and edge spacing, and the spacing inside messages (table cells, code blocks, space between paragraphs and lists). Default 'normal'.
|
|
49
|
+
- **messageSize**: 'small' | 'normal' | 'large' - Type scale of the whole transcript. Message text, tables, lists and quotes read at it; code blocks at 0.9× of it; tool calls and reasoning one step below it (never under text-xs); sources, markers and answered-question summaries follow it too. Default 'normal'.
|
|
50
|
+
- **messageVariant**: 'minimal' | 'bubble' - Presentation forwarded to default AIMessage rows. Default 'minimal' (flat full-width assistant prose).
|
|
51
|
+
- **messageColor**: Colors - User-bubble colour forwarded to default AIMessage rows. Neutral (the theme default) is a quiet grey bubble; any other role paints a solid bubble.
|
|
52
|
+
- **contentWidth**: string | number - Maximum width of the centred reading column (a CSS length, or pixels). Sets \`--ai-thread-content-width\`; without it rows follow an ancestor's \`--ai-chat-content-width\` (AIChat sets 48rem) and otherwise span the thread.
|
|
47
53
|
- **followOutput**: boolean - Follow appended rows only while pinned. Default true.
|
|
48
54
|
- **bottomThreshold**: number - End-pinned tolerance in pixels. Default 80.
|
|
49
55
|
- **estimateSize**: number - Estimated row height. Defaults to 80, 96, or 120 from density.
|
|
50
56
|
- **overscan**: number - Extra virtual rows. Default 4.
|
|
51
57
|
- **padding**: number - Shared start/end virtual padding. Defaults to 8, 16, or 24 from density.
|
|
52
|
-
- **paddingStart**, **paddingEnd**: number - Per-edge virtual padding overrides.
|
|
53
|
-
- **scrollBehavior**: 'auto' | 'smooth' | 'instant' -
|
|
54
|
-
- **showScrollButton**: boolean - Show the latest
|
|
55
|
-
- **scrollButtonPosition**: 'left' | 'center' | 'right' - Default '
|
|
58
|
+
- **paddingStart**, **paddingEnd**: number - Per-edge virtual padding overrides. Message actions sit inside their row, so the end padding reserves no extra room for them.
|
|
59
|
+
- **scrollBehavior**: 'auto' | 'smooth' | 'instant' - TOC and scroll-to-latest behavior. Default 'smooth'. Following output (an appended row, streamed text, a docked question resizing the thread) is always instant, so new content is in place on its first painted frame.
|
|
60
|
+
- **showScrollButton**: boolean - Show the round scroll-to-latest button as soon as the view leaves the end (by wheel, trackpad, keys or scrollbar). Default true.
|
|
61
|
+
- **scrollButtonPosition**: 'left' | 'center' | 'right' - Default 'center', just above whatever sits below the thread.
|
|
56
62
|
- **ref**: HTMLDivElement - Bindable thread root, not the internal scroll viewport.
|
|
57
63
|
- **class**: string - Thread-root classes.
|
|
58
64
|
- **role**: HTML role - Thread-root role. Default 'log'.
|
|
@@ -60,25 +66,33 @@ When text parts are present, top-level message content is not rendered again. Co
|
|
|
60
66
|
- **onscroll**: (event) => void - Raw native viewport-scroll callback.
|
|
61
67
|
- Native div attributes and Svelte attachments are forwarded to the thread root.
|
|
62
68
|
|
|
63
|
-
## Empty state and
|
|
69
|
+
## Empty state, suggestions and errors
|
|
64
70
|
|
|
65
|
-
- **empty**: Slot - Replaces the empty state.
|
|
66
|
-
- **suggestions**: readonly string[] -
|
|
67
|
-
- **
|
|
71
|
+
- **empty**: Slot - Replaces the empty state, a vertically centred greeting ("How can I help you today?") with wrapping suggestion chips.
|
|
72
|
+
- **suggestions**: readonly string[] - Empty-state chips, then follow-ups below the transcript after a finished assistant turn (not while streaming, during a question or under an error). Follow-ups are one row that scrolls sideways with an edge fade instead of wrapping. Falls back to AIConversation.
|
|
73
|
+
- **showFollowUps**: boolean - Show the follow-ups. Default true.
|
|
74
|
+
- **onSelect**: (suggestion) => void - Pick event for a suggestion or follow-up; takes precedence over the provider's default \`setInput\` behavior.
|
|
75
|
+
- **error**: unknown - Shown as a danger row at the end of the transcript, where the reply failed. Falls back to AIConversation. An empty transcript shows the error instead of the greeting.
|
|
76
|
+
- **showError**: boolean - Show that row. Default true.
|
|
77
|
+
- **onErrorRetry**: () => void - The row's Retry button. Defaults to the conversation's \`retry\` targeting the last message; without either, there is no Retry button.
|
|
68
78
|
|
|
69
79
|
## Message composition
|
|
70
80
|
|
|
71
81
|
- **message**: Slot<{ message, index, actionsVisibility }> - Replaces a complete message row. The
|
|
72
82
|
resolved action visibility keeps custom renderers aligned with the thread's latest-message rule.
|
|
73
|
-
- **
|
|
83
|
+
- **messageVariant** configures only the default AIMessage renderer, and a custom message slot owns its presentation. **messageSize** also sizes the built-in reasoning, tool, source, marker and summary rows.
|
|
74
84
|
- **messageActions**: AIMessageActionSnippet | false - Replaces or disables default actions.
|
|
75
|
-
- **messageActionsVisibility**: 'hover' | 'always' | 'none' (default: '
|
|
85
|
+
- **messageActionsVisibility**: 'latest' | 'hover' | 'always' | 'none' (default: 'latest'). \`latest\` keeps the final assistant turn's bar visible and reveals the rest on hover or focus; hovering any row of a turn (its reasoning, tools or text) reveals that turn's bar, and hover-revealed bars always show on touch screens. Hidden bars keep their height, so no row draws under them. A system notice or marker after the last reply does not make it lose its \`latest\` bar or hide the follow-ups.
|
|
76
86
|
- **messageCopyable**, **messageEditable**, **messageRetryable**: boolean
|
|
77
87
|
- **onMessageCopy**, **onMessageEdit**, **onMessageRetry**: AIMessage action handlers.
|
|
78
88
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
A turn is one unit. A user message has its own bar; an assistant turn — reasoning, tools, and text
|
|
90
|
+
up to the next user message or marker — has a single bar at its end. When the turn ends with its
|
|
91
|
+
only text segment the bar sits under that text; otherwise it gets a row of its own whose copy takes
|
|
92
|
+
the whole turn's text and whose retry targets the turn's last assistant message. The bar of a
|
|
93
|
+
reply that is still streaming appears when it ends. The message slot's \`actionsVisibility\` is
|
|
94
|
+
\`none\` for segments that do not end their unit. Rows of one turn are spaced by one gap; a larger
|
|
95
|
+
fixed gap separates turns, and the action bar sits right under the row it closes.
|
|
82
96
|
|
|
83
97
|
## Tool and marker composition
|
|
84
98
|
|
|
@@ -98,7 +112,7 @@ Pending ask-user-question tools are auto-detected. Inside AIConversation, AIThre
|
|
|
98
112
|
|
|
99
113
|
## Minimap
|
|
100
114
|
|
|
101
|
-
- **showToc**: boolean - Show the user-turn minimap when at least two user turns overflow the viewport.
|
|
115
|
+
- **showToc**: boolean - Show the user-turn minimap when at least two user turns overflow the viewport. Below a 480px-wide viewport the minimap and its gutter step aside.
|
|
102
116
|
- **tocSide**: 'left' | 'right' - Default 'left'.
|
|
103
117
|
- **tocMaxPins**: number - Maximum compacted pins.
|
|
104
118
|
- **tocTheme**: AIThreadTocThemeProps - Theme overrides forwarded to the default standalone primitive.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Slot } from '../Slot/slot.js';
|
|
2
2
|
import type { WithAttachments } from '../../types/props.js';
|
|
3
|
-
import type { Density } from '../../types/theme.js';
|
|
3
|
+
import type { Colors, Density } from '../../types/theme.js';
|
|
4
4
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
5
|
import type { AIMarkerVariant } from '../AIMarker/aiMarker.props.js';
|
|
6
6
|
import type { AIAskAnswers, AIAskQuestion, AIAskUserQuestionAnswer } from '../AIAskUserQuestion/aiAskUserQuestion.props.js';
|
|
@@ -30,8 +30,24 @@ export type AIThreadToolPart = {
|
|
|
30
30
|
result?: unknown;
|
|
31
31
|
error?: unknown;
|
|
32
32
|
errorText?: string;
|
|
33
|
+
/** AI SDK approval record; `approved: false` renders the call as denied. */
|
|
34
|
+
approval?: AIThreadToolApproval;
|
|
33
35
|
_meta?: Record<string, unknown>;
|
|
34
36
|
};
|
|
37
|
+
export type AIThreadToolApproval = {
|
|
38
|
+
id?: string;
|
|
39
|
+
approved?: boolean;
|
|
40
|
+
reason?: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* A cited source from an AI SDK `source-url` or `source-document` part. `url` is set only for
|
|
44
|
+
* http(s) links.
|
|
45
|
+
*/
|
|
46
|
+
export type AIThreadSource = {
|
|
47
|
+
id: string;
|
|
48
|
+
title: string;
|
|
49
|
+
url?: string;
|
|
50
|
+
};
|
|
35
51
|
export type AIThreadPart = {
|
|
36
52
|
type?: string;
|
|
37
53
|
text?: string;
|
|
@@ -47,6 +63,15 @@ export type AIThreadPart = {
|
|
|
47
63
|
result?: unknown;
|
|
48
64
|
error?: unknown;
|
|
49
65
|
errorText?: string;
|
|
66
|
+
approval?: AIThreadToolApproval;
|
|
67
|
+
/** `source-url` and `file` parts. */
|
|
68
|
+
url?: string;
|
|
69
|
+
/** `source-url` and `source-document` parts. */
|
|
70
|
+
title?: string;
|
|
71
|
+
sourceId?: string;
|
|
72
|
+
/** `file` and `source-document` parts. */
|
|
73
|
+
mediaType?: string;
|
|
74
|
+
filename?: string;
|
|
50
75
|
_meta?: Record<string, unknown>;
|
|
51
76
|
[key: string]: unknown;
|
|
52
77
|
};
|
|
@@ -86,6 +111,8 @@ export type AIThreadAskUserQuestion<TMessage extends AIThreadItem = AIThreadItem
|
|
|
86
111
|
nextLabel?: string;
|
|
87
112
|
previousLabel?: string;
|
|
88
113
|
discardLabel?: string;
|
|
114
|
+
/** Free-text "Other…" on choice questions; unset keeps AIAskUserQuestion's default (on). */
|
|
115
|
+
showOther?: boolean;
|
|
89
116
|
};
|
|
90
117
|
export type AIThreadAskUserQuestionStateChange<TMessage extends AIThreadItem = AIThreadItem> = {
|
|
91
118
|
request: AIThreadAskUserQuestion<TMessage>;
|
|
@@ -103,6 +130,11 @@ export type AIThreadMessageRenderPayload<TMessage extends AIThreadItem = AIThrea
|
|
|
103
130
|
/** Visibility resolved by the thread for this message's action region. */
|
|
104
131
|
actionsVisibility: AIMessageActionVisibility;
|
|
105
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* When default message actions show. `latest` keeps the final assistant turn's bar visible and
|
|
135
|
+
* reveals the others on hover or focus; touch screens, which cannot hover, always show them.
|
|
136
|
+
*/
|
|
137
|
+
export type AIThreadMessageActionsVisibility = AIMessageActionVisibility | 'latest';
|
|
106
138
|
export type AIThreadScrollBehavior = 'auto' | 'smooth' | 'instant';
|
|
107
139
|
export type AIThreadScrollButtonPosition = 'left' | 'center' | 'right';
|
|
108
140
|
export type AIThreadDensity = Density;
|
|
@@ -166,8 +198,19 @@ export type AIThreadProps<TMessage extends AIThreadItem = AIThreadItem> = WithAt
|
|
|
166
198
|
density?: AIThreadDensity;
|
|
167
199
|
/** Size forwarded to default AIMessage rows. @default 'normal' */
|
|
168
200
|
messageSize?: AIMessageSize;
|
|
169
|
-
/** Presentation forwarded to default AIMessage rows. @default '
|
|
201
|
+
/** Presentation forwarded to default AIMessage rows. @default 'minimal' */
|
|
170
202
|
messageVariant?: AIMessageVariant;
|
|
203
|
+
/**
|
|
204
|
+
* User-bubble colour forwarded to default AIMessage rows. Neutral is a quiet grey bubble;
|
|
205
|
+
* any other role paints a solid bubble. Defaults to the theme's default colour.
|
|
206
|
+
*/
|
|
207
|
+
messageColor?: Colors;
|
|
208
|
+
/**
|
|
209
|
+
* Maximum width of the centred reading column, as a CSS length (`48rem`) or pixels. Sets
|
|
210
|
+
* `--ai-thread-content-width`; when omitted, rows follow `--ai-chat-content-width` from an
|
|
211
|
+
* ancestor (AIChat sets it) and otherwise span the thread.
|
|
212
|
+
*/
|
|
213
|
+
contentWidth?: string | number;
|
|
171
214
|
/** Follows appended output while the viewport remains pinned to the bottom. */
|
|
172
215
|
followOutput?: boolean;
|
|
173
216
|
/** Distance from the bottom, in pixels, considered pinned. */
|
|
@@ -182,11 +225,14 @@ export type AIThreadProps<TMessage extends AIThreadItem = AIThreadItem> = WithAt
|
|
|
182
225
|
paddingStart?: number;
|
|
183
226
|
/** Virtualizer padding after the final item. Overrides `padding`. */
|
|
184
227
|
paddingEnd?: number;
|
|
185
|
-
/**
|
|
228
|
+
/**
|
|
229
|
+
* Scroll behavior of navigation the reader asks for: the TOC and the scroll-to-latest button.
|
|
230
|
+
* Following output is always instant, so new rows are in place on their first frame.
|
|
231
|
+
*/
|
|
186
232
|
scrollBehavior?: AIThreadScrollBehavior;
|
|
187
233
|
/** Displays the floating scroll-to-latest action. */
|
|
188
234
|
showScrollButton?: boolean;
|
|
189
|
-
/** Horizontal alignment of the scroll-to-latest action. */
|
|
235
|
+
/** Horizontal alignment of the scroll-to-latest action. @default 'center' */
|
|
190
236
|
scrollButtonPosition?: AIThreadScrollButtonPosition;
|
|
191
237
|
/** Displays the user-turn minimap when multiple turns overflow the viewport. */
|
|
192
238
|
showToc?: boolean;
|
|
@@ -194,6 +240,8 @@ export type AIThreadProps<TMessage extends AIThreadItem = AIThreadItem> = WithAt
|
|
|
194
240
|
tocSide?: AIThreadTocSide;
|
|
195
241
|
/** Maximum visible minimap pins before compaction. */
|
|
196
242
|
tocMaxPins?: number;
|
|
243
|
+
/** Shows the minimap's rail and on-screen range bar beside its pins. @default false */
|
|
244
|
+
tocShowRange?: boolean;
|
|
197
245
|
/** Theme overrides forwarded to the default AIThreadToc. */
|
|
198
246
|
tocTheme?: AIThreadTocThemeProps;
|
|
199
247
|
/** Direct ask-user-question request. `null` explicitly suppresses auto-detection. */
|
|
@@ -202,10 +250,24 @@ export type AIThreadProps<TMessage extends AIThreadItem = AIThreadItem> = WithAt
|
|
|
202
250
|
renderAskUserQuestion?: boolean;
|
|
203
251
|
/** Disables the active ask-user-question flow. */
|
|
204
252
|
askUserQuestionDisabled?: boolean;
|
|
205
|
-
/**
|
|
253
|
+
/**
|
|
254
|
+
* Prompt suggestions: chips under the empty-state greeting, then follow-ups below the
|
|
255
|
+
* transcript after a finished assistant turn. Falls back to the nearest conversation.
|
|
256
|
+
*/
|
|
206
257
|
suggestions?: readonly string[];
|
|
207
|
-
/**
|
|
258
|
+
/** Shows `suggestions` as follow-ups after the last assistant turn. @default true */
|
|
259
|
+
showFollowUps?: boolean;
|
|
260
|
+
/** Handles selection from the empty-state suggestions and the follow-ups. */
|
|
208
261
|
onSelect?: (suggestion: string) => void;
|
|
262
|
+
/** Error shown as a row at the end of the transcript. Falls back to the nearest conversation. */
|
|
263
|
+
error?: unknown;
|
|
264
|
+
/** Shows `error` in the transcript. @default true */
|
|
265
|
+
showError?: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Retries after an error. Defaults to the conversation's `retry`, targeting the last
|
|
268
|
+
* message; without either, the error row has no Retry button.
|
|
269
|
+
*/
|
|
270
|
+
onErrorRetry?: () => void | Promise<void>;
|
|
209
271
|
/** Content rendered above the virtual transcript. */
|
|
210
272
|
header?: Slot;
|
|
211
273
|
/** Content rendered below the virtual transcript. */
|
|
@@ -218,8 +280,11 @@ export type AIThreadProps<TMessage extends AIThreadItem = AIThreadItem> = WithAt
|
|
|
218
280
|
message?: Slot<AIThreadMessageRenderPayload<TMessage>>;
|
|
219
281
|
/** Custom action renderer shared by default message rows. */
|
|
220
282
|
messageActions?: AIMessageActionSnippet<TMessage> | false;
|
|
221
|
-
/**
|
|
222
|
-
|
|
283
|
+
/**
|
|
284
|
+
* When default message actions show. `latest` keeps the final assistant turn's bar visible
|
|
285
|
+
* and reveals the rest on hover or focus (always on touch screens). @default 'latest'
|
|
286
|
+
*/
|
|
287
|
+
messageActionsVisibility?: AIThreadMessageActionsVisibility;
|
|
223
288
|
/** Enables or disables copy actions. */
|
|
224
289
|
messageCopyable?: boolean;
|
|
225
290
|
/** Enables or disables edit actions. */
|
|
@@ -16,7 +16,33 @@ export declare const aiThreadTheme: {
|
|
|
16
16
|
normal: string;
|
|
17
17
|
comfortable: string;
|
|
18
18
|
};
|
|
19
|
+
boundary: {
|
|
20
|
+
part: null;
|
|
21
|
+
unit: null;
|
|
22
|
+
afterBar: null;
|
|
23
|
+
bar: string;
|
|
24
|
+
};
|
|
19
25
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
26
|
+
message: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
27
|
+
content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
28
|
+
empty: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
29
|
+
greeting: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
30
|
+
emptySuggestions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
31
|
+
followUps: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
32
|
+
density: {
|
|
33
|
+
compact: string;
|
|
34
|
+
normal: string;
|
|
35
|
+
comfortable: string;
|
|
36
|
+
};
|
|
37
|
+
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
38
|
+
followUpList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
39
|
+
pending: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
40
|
+
error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
41
|
+
errorBody: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
42
|
+
sources: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
43
|
+
sourcesLabel: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
44
|
+
source: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
45
|
+
actions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
20
46
|
scrollButton: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
21
47
|
position: {
|
|
22
48
|
left: string;
|
|
@@ -52,7 +78,33 @@ export declare const setAIThreadTheme: (theme: InferComponentTheme<{
|
|
|
52
78
|
normal: string;
|
|
53
79
|
comfortable: string;
|
|
54
80
|
};
|
|
81
|
+
boundary: {
|
|
82
|
+
part: null;
|
|
83
|
+
unit: null;
|
|
84
|
+
afterBar: null;
|
|
85
|
+
bar: string;
|
|
86
|
+
};
|
|
55
87
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
88
|
+
message: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
89
|
+
content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
90
|
+
empty: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
91
|
+
greeting: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
92
|
+
emptySuggestions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
93
|
+
followUps: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
94
|
+
density: {
|
|
95
|
+
compact: string;
|
|
96
|
+
normal: string;
|
|
97
|
+
comfortable: string;
|
|
98
|
+
};
|
|
99
|
+
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
100
|
+
followUpList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
101
|
+
pending: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
102
|
+
error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
103
|
+
errorBody: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
104
|
+
sources: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
105
|
+
sourcesLabel: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
106
|
+
source: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
107
|
+
actions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
56
108
|
scrollButton: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
57
109
|
position: {
|
|
58
110
|
left: string;
|
|
@@ -86,7 +138,33 @@ export declare const useAIThreadTheme: import("../../utils/cva/theme.js").UseCom
|
|
|
86
138
|
normal: string;
|
|
87
139
|
comfortable: string;
|
|
88
140
|
};
|
|
141
|
+
boundary: {
|
|
142
|
+
part: null;
|
|
143
|
+
unit: null;
|
|
144
|
+
afterBar: null;
|
|
145
|
+
bar: string;
|
|
146
|
+
};
|
|
147
|
+
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
148
|
+
message: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
149
|
+
content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
150
|
+
empty: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
151
|
+
greeting: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
152
|
+
emptySuggestions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
153
|
+
followUps: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
154
|
+
density: {
|
|
155
|
+
compact: string;
|
|
156
|
+
normal: string;
|
|
157
|
+
comfortable: string;
|
|
158
|
+
};
|
|
89
159
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
160
|
+
followUpList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
161
|
+
pending: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
162
|
+
error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
163
|
+
errorBody: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
164
|
+
sources: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
165
|
+
sourcesLabel: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
166
|
+
source: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
167
|
+
actions: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
90
168
|
scrollButton: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
91
169
|
position: {
|
|
92
170
|
left: string;
|
|
@@ -3,7 +3,19 @@ const defaultRoot = cva({ base: 'relative flex min-h-0 min-w-0 flex-1 flex-col'
|
|
|
3
3
|
const defaultHeader = cva({ base: 'shrink-0' });
|
|
4
4
|
const defaultBody = cva({ base: 'relative flex min-h-0 min-w-0 flex-1' });
|
|
5
5
|
const defaultViewport = cva({
|
|
6
|
-
|
|
6
|
+
// `isolate`: rows raise themselves on hover (to keep their action bar on top), and that must not
|
|
7
|
+
// lift them above what floats over the transcript (the follow-up suggestions, the scroll button).
|
|
8
|
+
base: [
|
|
9
|
+
'isolate min-h-0 min-w-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-focus/50',
|
|
10
|
+
// The native scrollbar, drawn like ScrollArea's: a thin rounded `neutral-muted` thumb with no
|
|
11
|
+
// track, shown while the pointer is over the transcript. The virtualized list stays on the
|
|
12
|
+
// native scroller (a ScrollArea's content observer fights its row measurement). WebKit/Blink
|
|
13
|
+
// read the `::-webkit-scrollbar` parts; Firefox, which has none, gets the standard properties
|
|
14
|
+
// (set only there: in Chromium they would switch the parts off).
|
|
15
|
+
'[&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-track]:bg-transparent',
|
|
16
|
+
'[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-transparent hover:[&::-webkit-scrollbar-thumb]:bg-neutral-muted',
|
|
17
|
+
'supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-width:thin] supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:transparent_transparent] supports-[not_selector(::-webkit-scrollbar)]:hover:[scrollbar-color:var(--color-neutral-muted)_transparent]'
|
|
18
|
+
].join(' '),
|
|
7
19
|
variants: {
|
|
8
20
|
tocSide: {
|
|
9
21
|
left: 'pl-layout-lg',
|
|
@@ -12,27 +24,100 @@ const defaultViewport = cva({
|
|
|
12
24
|
}
|
|
13
25
|
});
|
|
14
26
|
const defaultList = cva({ base: 'relative w-full' });
|
|
27
|
+
// One vertical rhythm: rows of a turn (reasoning, tools, text, sources) are one fixed gap apart, the
|
|
28
|
+
// first row of the next turn (or marker) adds a larger fixed gap, and a turn's own action-bar row
|
|
29
|
+
// sits right under the row it closes. A turn that ends with an action bar is already set apart by
|
|
30
|
+
// the bar's reserved height, so the next turn adds only the in-turn gap after it (`afterBar`).
|
|
31
|
+
// Rows carry no outer margins of their own.
|
|
15
32
|
const defaultItem = cva({
|
|
16
|
-
base: 'absolute top-0 left-0 z-0 w-full
|
|
33
|
+
base: 'absolute top-0 left-0 z-0 w-full hover:!z-20 focus-within:!z-20',
|
|
17
34
|
variants: {
|
|
18
35
|
density: {
|
|
19
|
-
compact: 'px-lg
|
|
20
|
-
normal: 'px-xl
|
|
21
|
-
comfortable: 'px-layout-sm
|
|
36
|
+
compact: 'px-lg pb-micro',
|
|
37
|
+
normal: 'px-xl pb-md',
|
|
38
|
+
comfortable: 'px-layout-sm pb-lg'
|
|
39
|
+
},
|
|
40
|
+
boundary: {
|
|
41
|
+
part: null,
|
|
42
|
+
unit: null,
|
|
43
|
+
afterBar: null,
|
|
44
|
+
bar: 'pt-0'
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
compoundVariants: [
|
|
48
|
+
{ boundary: 'part', density: 'compact', class: 'pt-micro' },
|
|
49
|
+
{ boundary: 'part', density: 'normal', class: 'pt-md' },
|
|
50
|
+
{ boundary: 'part', density: 'comfortable', class: 'pt-lg' },
|
|
51
|
+
{ boundary: 'afterBar', density: 'compact', class: 'pt-micro' },
|
|
52
|
+
{ boundary: 'afterBar', density: 'normal', class: 'pt-md' },
|
|
53
|
+
{ boundary: 'afterBar', density: 'comfortable', class: 'pt-lg' },
|
|
54
|
+
{ boundary: 'unit', density: 'compact', class: 'pt-md' },
|
|
55
|
+
{ boundary: 'unit', density: 'normal', class: 'pt-layout-md' },
|
|
56
|
+
{ boundary: 'unit', density: 'comfortable', class: 'pt-layout-lg' }
|
|
57
|
+
],
|
|
58
|
+
defaultVariants: { density: 'normal', boundary: 'part' }
|
|
59
|
+
});
|
|
60
|
+
// AIMessage rendered by the thread: the row supplies the vertical rhythm, so the message adds none.
|
|
61
|
+
const defaultMessage = cva({ base: 'py-0' });
|
|
62
|
+
// The centred reading column. `--ai-thread-content-width` (the `contentWidth` prop) wins over an
|
|
63
|
+
// ancestor's `--ai-chat-content-width`; with neither, rows span the thread.
|
|
64
|
+
const defaultContent = cva({
|
|
65
|
+
base: 'mx-auto w-full min-w-0 max-w-[var(--ai-thread-content-width,var(--ai-chat-content-width,none))]'
|
|
66
|
+
});
|
|
67
|
+
const defaultEmpty = cva({
|
|
68
|
+
base: 'mx-auto flex min-h-full w-full max-w-[var(--ai-thread-content-width,var(--ai-chat-content-width,none))] flex-col items-center justify-center gap-xl px-xl py-layout-sm text-center'
|
|
69
|
+
});
|
|
70
|
+
const defaultGreeting = cva({ base: 'text-lg font-semibold text-balance text-neutral' });
|
|
71
|
+
const defaultEmptySuggestions = cva({
|
|
72
|
+
base: 'flex max-w-full min-w-0 flex-wrap justify-center gap-sm'
|
|
73
|
+
});
|
|
74
|
+
// Follow-ups share the rows' inline inset at the thread's density.
|
|
75
|
+
// Floats over the bottom of the transcript, with no band of its own: the text scrolls behind the
|
|
76
|
+
// chips, and the list's end padding (the row's height) keeps the last row clear of them at the end.
|
|
77
|
+
// Only the chips' column takes the pointer; the transcript beside it stays selectable.
|
|
78
|
+
const defaultFollowUps = cva({
|
|
79
|
+
base: 'pointer-events-none absolute inset-x-0 bottom-0 z-10 pb-sm',
|
|
80
|
+
variants: {
|
|
81
|
+
density: {
|
|
82
|
+
compact: 'px-lg',
|
|
83
|
+
normal: 'px-xl',
|
|
84
|
+
comfortable: 'px-layout-sm'
|
|
22
85
|
}
|
|
23
86
|
},
|
|
24
87
|
defaultVariants: { density: 'normal' }
|
|
25
88
|
});
|
|
89
|
+
// The content column holding the follow-up row. The row pads itself vertically for focus rings,
|
|
90
|
+
// so the negative block margin keeps the band as tall as before.
|
|
91
|
+
const defaultFollowUpList = cva({
|
|
92
|
+
base: 'pointer-events-auto mx-auto -my-xs w-full min-w-0 max-w-[var(--ai-thread-content-width,var(--ai-chat-content-width,none))]'
|
|
93
|
+
});
|
|
94
|
+
// The pending assistant row's label: rendered inside an assistant AIMessage, so it takes the
|
|
95
|
+
// message's type size and column, with the shared `shimmer` utility on top.
|
|
96
|
+
const defaultPending = cva({ base: 'shimmer text-neutral/70' });
|
|
97
|
+
const defaultError = cva({ base: 'w-full min-w-0' });
|
|
98
|
+
const defaultErrorBody = cva({ base: 'flex flex-col items-start gap-sm' });
|
|
99
|
+
const defaultSources = cva({
|
|
100
|
+
base: 'group/ai-thread-sources-size flex min-w-0 flex-wrap items-center gap-xs text-sm data-[size=small]:text-xs data-[size=large]:text-base'
|
|
101
|
+
});
|
|
102
|
+
const defaultSourcesLabel = cva({
|
|
103
|
+
base: 'text-xs group-data-[size=large]/ai-thread-sources-size:text-sm font-medium text-neutral/70'
|
|
104
|
+
});
|
|
105
|
+
const defaultSource = cva({
|
|
106
|
+
base: 'inline-flex h-6 max-w-60 min-w-0 items-center truncate rounded-full border border-neutral-muted px-md text-xs group-data-[size=large]/ai-thread-sources-size:text-sm text-neutral/70 [&[href]]:state-layer [&[href]]:hover:text-neutral'
|
|
107
|
+
});
|
|
108
|
+
// A turn's action-bar row. AIMessageActions sizes the row to its buttons.
|
|
109
|
+
const defaultActions = cva({ base: '' });
|
|
26
110
|
const defaultScrollButton = cva({
|
|
27
|
-
|
|
111
|
+
// Above the follow-up suggestions when they show (`--ai-thread-follow-ups-height`).
|
|
112
|
+
base: 'absolute bottom-[calc(var(--space-md)+var(--ai-thread-follow-ups-height,0px))] z-10 rounded-full bg-surface-raised lift-2',
|
|
28
113
|
variants: {
|
|
29
114
|
position: {
|
|
30
|
-
left: 'left-
|
|
115
|
+
left: 'left-md',
|
|
31
116
|
center: 'left-1/2 -translate-x-1/2',
|
|
32
|
-
right: 'right-
|
|
117
|
+
right: 'right-md'
|
|
33
118
|
}
|
|
34
119
|
},
|
|
35
|
-
defaultVariants: { position: '
|
|
120
|
+
defaultVariants: { position: 'center' }
|
|
36
121
|
});
|
|
37
122
|
const defaultAskQuestion = cva({
|
|
38
123
|
base: 'shrink-0 border-t border-neutral-muted p-lg'
|
|
@@ -55,6 +140,20 @@ export const aiThreadTheme = {
|
|
|
55
140
|
viewport: defaultViewport,
|
|
56
141
|
list: defaultList,
|
|
57
142
|
item: defaultItem,
|
|
143
|
+
message: defaultMessage,
|
|
144
|
+
content: defaultContent,
|
|
145
|
+
empty: defaultEmpty,
|
|
146
|
+
greeting: defaultGreeting,
|
|
147
|
+
emptySuggestions: defaultEmptySuggestions,
|
|
148
|
+
followUps: defaultFollowUps,
|
|
149
|
+
followUpList: defaultFollowUpList,
|
|
150
|
+
pending: defaultPending,
|
|
151
|
+
error: defaultError,
|
|
152
|
+
errorBody: defaultErrorBody,
|
|
153
|
+
sources: defaultSources,
|
|
154
|
+
sourcesLabel: defaultSourcesLabel,
|
|
155
|
+
source: defaultSource,
|
|
156
|
+
actions: defaultActions,
|
|
58
157
|
scrollButton: defaultScrollButton,
|
|
59
158
|
askQuestion: defaultAskQuestion,
|
|
60
159
|
tocOverlay: defaultTocOverlay,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as AIThread } from './AIThread.svelte';
|
|
2
2
|
export { default as AIThreadToc } from '../AIThreadToc/AIThreadToc.svelte';
|
|
3
3
|
export type { AIThreadTocProps } from '../AIThreadToc/aiThreadToc.props.js';
|
|
4
|
-
export type { AIFileSource, AIThreadAskUserQuestion, AIThreadAskUserQuestionState, AIThreadAskUserQuestionStateChange, AIThreadDensity, AIThreadItem, AIThreadMessageRenderPayload, AIThreadMessageKey, AIThreadPart, AIThreadProps, AIThreadRenderPayload, AIThreadRole, AIThreadScrollBehavior, AIThreadScrollButtonPosition, AIThreadTocEntry, AIThreadTocPin, AIThreadTocPinPayload, AIThreadTocPreviewAlign, AIThreadTocPreviewSide, AIThreadTocRange, AIThreadTocSide, AIThreadTocState, AIThreadToolPart } from './aiThread.props.js';
|
|
4
|
+
export type { AIFileSource, AIThreadAskUserQuestion, AIThreadAskUserQuestionState, AIThreadAskUserQuestionStateChange, AIThreadDensity, AIThreadItem, AIThreadMessageActionsVisibility, AIThreadMessageRenderPayload, AIThreadMessageKey, AIThreadPart, AIThreadProps, AIThreadRenderPayload, AIThreadRole, AIThreadScrollBehavior, AIThreadScrollButtonPosition, AIThreadSource, AIThreadTocEntry, AIThreadTocPin, AIThreadTocPinPayload, AIThreadTocPreviewAlign, AIThreadTocPreviewSide, AIThreadTocRange, AIThreadTocSide, AIThreadTocState, AIThreadToolApproval, AIThreadToolPart } from './aiThread.props.js';
|
|
5
5
|
export type { AIMessageSize, AIMessageVariant } from '../AIMessage/aiMessage.props.js';
|
|
6
6
|
export { aiThreadTocTheme, setAIThreadTocTheme, useAIThreadTocTheme, type AIThreadTocTheme, type AIThreadTocThemeProps } from '../AIThreadToc/aiThreadToc.theme.js';
|
|
7
7
|
export type { AIMarkerVariant } from '../AIMarker/aiMarker.props.js';
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AIToolCall } from '../AITool/aiTool.props.js';
|
|
2
|
+
import type { AIThreadAskUserQuestion, AIThreadAskUserQuestionState, AIThreadItem, AIThreadMessageKey } from './aiThread.props.js';
|
|
2
3
|
export declare function findActiveAskUserQuestion<TMessage extends AIThreadItem>(messages: readonly TMessage[], getMessageKey: (message: TMessage, index: number) => string, stateOverrides: Record<string, AIThreadAskUserQuestionState | undefined>): AIThreadAskUserQuestion<TMessage> | null;
|
|
4
|
+
export declare function toAskUserQuestionRequest<TMessage extends AIThreadItem>(message: TMessage, messageIndex: number, messageKey: AIThreadMessageKey, tool: AIToolCall, toolIndex: number, stateOverrides: Record<string, AIThreadAskUserQuestionState | undefined>): AIThreadAskUserQuestion<TMessage> | undefined;
|
|
5
|
+
export declare function isAskUserQuestionTool(tool: AIToolCall): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { collectAIThreadMessageTools } from './
|
|
1
|
+
import { collectAIThreadMessageTools } from './threadTools.js';
|
|
2
2
|
export function findActiveAskUserQuestion(messages, getMessageKey, stateOverrides) {
|
|
3
3
|
for (let messageIndex = messages.length - 1; messageIndex >= 0; messageIndex -= 1) {
|
|
4
4
|
const message = messages[messageIndex];
|
|
@@ -15,7 +15,7 @@ export function findActiveAskUserQuestion(messages, getMessageKey, stateOverride
|
|
|
15
15
|
}
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
function toAskUserQuestionRequest(message, messageIndex, messageKey, tool, toolIndex, stateOverrides) {
|
|
18
|
+
export function toAskUserQuestionRequest(message, messageIndex, messageKey, tool, toolIndex, stateOverrides) {
|
|
19
19
|
const input = recordValue(tool.input);
|
|
20
20
|
const output = recordValue(tool.output);
|
|
21
21
|
const questions = questionList(output?.questions ?? input?.questions);
|
|
@@ -39,10 +39,11 @@ function toAskUserQuestionRequest(message, messageIndex, messageKey, tool, toolI
|
|
|
39
39
|
submittingLabel: stringValue(output?.submittingLabel ?? input?.submittingLabel),
|
|
40
40
|
nextLabel: stringValue(output?.nextLabel ?? input?.nextLabel),
|
|
41
41
|
previousLabel: stringValue(output?.previousLabel ?? input?.previousLabel),
|
|
42
|
-
discardLabel: stringValue(output?.discardLabel ?? input?.discardLabel)
|
|
42
|
+
discardLabel: stringValue(output?.discardLabel ?? input?.discardLabel),
|
|
43
|
+
showOther: booleanValue(output?.showOther ?? input?.showOther)
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
|
-
function isAskUserQuestionTool(tool) {
|
|
46
|
+
export function isAskUserQuestionTool(tool) {
|
|
46
47
|
const name = normalizedName(tool.name ?? tool.title);
|
|
47
48
|
return ['askuserquestion', 'askquestion', 'requestuserquestion', 'requestuserinput'].includes(name);
|
|
48
49
|
}
|
|
@@ -89,6 +90,9 @@ function isQuestion(value) {
|
|
|
89
90
|
}
|
|
90
91
|
return question.type === undefined || question.type === 'text' || question.type === 'file';
|
|
91
92
|
}
|
|
93
|
+
function booleanValue(value) {
|
|
94
|
+
return typeof value === 'boolean' ? value : undefined;
|
|
95
|
+
}
|
|
92
96
|
function stringValue(value) {
|
|
93
97
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
94
98
|
}
|