entasis 0.11.0 → 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 +256 -30
- package/dist/components/Form/Field/Field.svelte.d.ts +9 -0
- 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 +64 -8
- 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 +109 -3
- package/dist/components/Form/Field/field.state.svelte.js +508 -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 +47 -14
- 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 +40 -2
- package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
- package/dist/components/Form/Form/form.d.ts +35 -6
- package/dist/components/Form/Form/form.mcp.d.ts +1 -1
- package/dist/components/Form/Form/form.mcp.js +113 -13
- package/dist/components/Form/Form/form.props.d.ts +32 -1
- package/dist/components/Form/Form/form.registry.d.ts +2 -2
- package/dist/components/Form/Form/form.registry.js +1 -4
- package/dist/components/Form/Form/form.state.svelte.d.ts +1138 -413
- package/dist/components/Form/Form/form.state.svelte.js +319 -26
- package/dist/components/Form/Form/index.d.ts +3 -1
- package/dist/components/Form/Form/visibility.d.ts +3096 -1831
- 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 +1022 -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 +225 -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
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import ScrollArea from '../ScrollArea/ScrollArea.svelte';
|
|
2
|
+
import Button from '../Button/Button.svelte';
|
|
3
|
+
import Code from '../Code/Code.svelte';
|
|
5
4
|
import Slot from '../Slot/Slot.svelte';
|
|
6
|
-
import {
|
|
7
|
-
import type { AIToolCall, AIToolSnippet } from './aiTool.props.js';
|
|
5
|
+
import { useI18n } from '../../i18n/context.svelte.js';
|
|
6
|
+
import type { AIToolCall, AIToolSnippet, AIToolValueView } from './aiTool.props.js';
|
|
8
7
|
import type { AIToolThemeProps } from './aiTool.theme.js';
|
|
9
8
|
import { useAIToolTheme } from './aiTool.theme.js';
|
|
10
|
-
import {
|
|
9
|
+
import type { AIToolValueTone } from './aiToolPrimitiveThemes.js';
|
|
11
10
|
import AIToolValueTree from './AIToolValueTree.svelte';
|
|
11
|
+
import {
|
|
12
|
+
buildToolValueTree,
|
|
13
|
+
countToolValueTreeRows,
|
|
14
|
+
getToolErrorSentence,
|
|
15
|
+
toToolJsonValue
|
|
16
|
+
} from './toolValueTree.js';
|
|
12
17
|
|
|
13
18
|
let {
|
|
14
19
|
tool,
|
|
@@ -20,6 +25,10 @@
|
|
|
20
25
|
tone = 'default',
|
|
21
26
|
maxDepth,
|
|
22
27
|
maxEntries,
|
|
28
|
+
valueView = 'json',
|
|
29
|
+
maxLines = 12,
|
|
30
|
+
showAllLabel,
|
|
31
|
+
showLessLabel,
|
|
23
32
|
theme
|
|
24
33
|
}: {
|
|
25
34
|
tool: AIToolCall;
|
|
@@ -31,42 +40,131 @@
|
|
|
31
40
|
tone?: AIToolValueTone;
|
|
32
41
|
maxDepth: number;
|
|
33
42
|
maxEntries: number;
|
|
43
|
+
valueView?: AIToolValueView;
|
|
44
|
+
maxLines?: number;
|
|
45
|
+
showAllLabel: string;
|
|
46
|
+
showLessLabel: string;
|
|
34
47
|
theme?: AIToolThemeProps;
|
|
35
48
|
} = $props();
|
|
36
49
|
|
|
50
|
+
const id = $props.id();
|
|
51
|
+
const t = $derived(useI18n());
|
|
37
52
|
const classes = $derived(useAIToolTheme(theme));
|
|
38
|
-
|
|
53
|
+
let expanded = $state(false);
|
|
54
|
+
|
|
55
|
+
// A primitive error is one sentence, not a key/value inspector.
|
|
56
|
+
const errorSentence = $derived(kind === 'error' ? getToolErrorSentence(value) : undefined);
|
|
57
|
+
// Tools often return JSON as text; show it structured. Multi-line strings stay prose; a one-line
|
|
58
|
+
// string is shown quoted like any JSON value, so the output "3" never reads as the number 3.
|
|
59
|
+
const structured = $derived(parseJsonText(value));
|
|
60
|
+
const plainText = $derived(
|
|
61
|
+
typeof structured === 'string' && /[\r\n]/.test(structured) ? structured : undefined
|
|
62
|
+
);
|
|
63
|
+
const presentation = $derived<'text' | 'tree' | 'json'>(
|
|
64
|
+
plainText !== undefined ? 'text' : valueView === 'tree' ? 'tree' : 'json'
|
|
65
|
+
);
|
|
66
|
+
// JSON is code and reads left to right in an RTL page (else braces mirror and lines align to the
|
|
67
|
+
// right); multi-line prose takes the direction of its own text.
|
|
68
|
+
const valueDir = $derived(
|
|
69
|
+
presentation === 'json' ? 'ltr' : presentation === 'text' ? 'auto' : undefined
|
|
70
|
+
);
|
|
71
|
+
const treeNodes = $derived(
|
|
72
|
+
presentation === 'tree' ? buildToolValueTree(structured, maxDepth, maxEntries, t) : []
|
|
73
|
+
);
|
|
74
|
+
const codeText = $derived(
|
|
75
|
+
presentation === 'text'
|
|
76
|
+
? (plainText ?? '')
|
|
77
|
+
: presentation === 'json'
|
|
78
|
+
? stringify(toToolJsonValue(structured, maxDepth, maxEntries, t))
|
|
79
|
+
: ''
|
|
80
|
+
);
|
|
81
|
+
const lineCount = $derived(
|
|
82
|
+
presentation === 'tree' ? countToolValueTreeRows(treeNodes) : countLines(codeText)
|
|
83
|
+
);
|
|
84
|
+
const lineLimit = $derived(Math.max(1, Math.floor(maxLines)));
|
|
85
|
+
const collapsible = $derived(lineCount > lineLimit);
|
|
86
|
+
const collapsed = $derived(collapsible && !expanded);
|
|
87
|
+
const codeTheme = $derived({
|
|
88
|
+
root: { base: classes.code({ tone }) },
|
|
89
|
+
container: { base: classes.codeContainer() }
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
function parseJsonText(input: unknown): unknown {
|
|
93
|
+
if (typeof input !== 'string') return input;
|
|
94
|
+
const trimmed = input.trim();
|
|
95
|
+
if (!/^[[{]/.test(trimmed)) return input;
|
|
96
|
+
try {
|
|
97
|
+
return JSON.parse(trimmed) as unknown;
|
|
98
|
+
} catch {
|
|
99
|
+
return input;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function stringify(input: unknown): string {
|
|
104
|
+
return JSON.stringify(input, null, 2) ?? 'null';
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function countLines(text: string): number {
|
|
108
|
+
let count = 1;
|
|
109
|
+
for (
|
|
110
|
+
let position = text.indexOf('\n');
|
|
111
|
+
position !== -1;
|
|
112
|
+
position = text.indexOf('\n', position + 1)
|
|
113
|
+
) {
|
|
114
|
+
count += 1;
|
|
115
|
+
}
|
|
116
|
+
return count;
|
|
117
|
+
}
|
|
39
118
|
</script>
|
|
40
119
|
|
|
41
120
|
<section
|
|
42
121
|
data-slot={tone === 'error' ? 'ai-tool-error' : 'ai-tool-value'}
|
|
43
122
|
data-tone={tone}
|
|
44
123
|
data-kind={kind}
|
|
124
|
+
aria-labelledby={`${id}-label`}
|
|
45
125
|
class={classes.section({ tone })}
|
|
46
126
|
>
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
role="img"
|
|
51
|
-
aria-label={label}
|
|
52
|
-
class={classes.label({ tone, kind: 'icon' })}
|
|
53
|
-
{@attach tooltip({ content: label, position: 'top', size: 'small', delay: 350 })}
|
|
54
|
-
>
|
|
55
|
-
{@render (kind === 'input' ? signInIconBold : signOutIconBold)({
|
|
56
|
-
size: 14,
|
|
57
|
-
'aria-hidden': 'true'
|
|
58
|
-
})}
|
|
59
|
-
</span>
|
|
60
|
-
{:else}
|
|
61
|
-
<div data-slot="ai-tool-value-label" class={classes.label({ tone, kind: 'text' })}>
|
|
62
|
-
{label}
|
|
63
|
-
</div>
|
|
64
|
-
{/if}
|
|
127
|
+
<div id={`${id}-label`} data-slot="ai-tool-value-label" class={classes.label({ tone })}>
|
|
128
|
+
{label}
|
|
129
|
+
</div>
|
|
65
130
|
{#if snippet}
|
|
66
131
|
<Slot render={snippet} payload={{ tool, index }} />
|
|
132
|
+
{:else if errorSentence !== undefined}
|
|
133
|
+
<p data-slot="ai-tool-error-message" class={classes.errorMessage()}>{errorSentence}</p>
|
|
67
134
|
{:else}
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
135
|
+
<div
|
|
136
|
+
id={`${id}-value`}
|
|
137
|
+
data-slot="ai-tool-value-content"
|
|
138
|
+
data-view={presentation}
|
|
139
|
+
data-collapsed={collapsed || undefined}
|
|
140
|
+
dir={valueDir}
|
|
141
|
+
class={classes.clamp({ collapsed })}
|
|
142
|
+
style:max-height={collapsed ? `calc(${lineLimit} * 1lh + 1.5rem)` : undefined}
|
|
143
|
+
>
|
|
144
|
+
{#if presentation === 'tree'}
|
|
145
|
+
<AIToolValueTree nodes={treeNodes} {tone} {theme} />
|
|
146
|
+
{:else}
|
|
147
|
+
<Code
|
|
148
|
+
code={codeText}
|
|
149
|
+
language={presentation === 'json' ? 'json' : 'text'}
|
|
150
|
+
showHeader={false}
|
|
151
|
+
wrap
|
|
152
|
+
theme={codeTheme}
|
|
153
|
+
/>
|
|
154
|
+
{/if}
|
|
155
|
+
</div>
|
|
156
|
+
{#if collapsible}
|
|
157
|
+
<Button
|
|
158
|
+
type="button"
|
|
159
|
+
variant="ghost"
|
|
160
|
+
color="neutral"
|
|
161
|
+
size="small"
|
|
162
|
+
class={classes.showAll()}
|
|
163
|
+
{expanded}
|
|
164
|
+
onclick={() => (expanded = !expanded)}
|
|
165
|
+
>
|
|
166
|
+
{expanded ? showLessLabel : showAllLabel}
|
|
167
|
+
</Button>
|
|
168
|
+
{/if}
|
|
71
169
|
{/if}
|
|
72
170
|
</section>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AIToolCall, AIToolSnippet } from './aiTool.props.js';
|
|
1
|
+
import type { AIToolCall, AIToolSnippet, AIToolValueView } from './aiTool.props.js';
|
|
2
2
|
import type { AIToolThemeProps } from './aiTool.theme.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { AIToolValueTone } from './aiToolPrimitiveThemes.js';
|
|
4
4
|
type $$ComponentProps = {
|
|
5
5
|
tool: AIToolCall;
|
|
6
6
|
index: number;
|
|
@@ -11,6 +11,10 @@ type $$ComponentProps = {
|
|
|
11
11
|
tone?: AIToolValueTone;
|
|
12
12
|
maxDepth: number;
|
|
13
13
|
maxEntries: number;
|
|
14
|
+
valueView?: AIToolValueView;
|
|
15
|
+
maxLines?: number;
|
|
16
|
+
showAllLabel: string;
|
|
17
|
+
showLessLabel: string;
|
|
14
18
|
theme?: AIToolThemeProps;
|
|
15
19
|
};
|
|
16
20
|
declare const AIToolValueSection: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { AIToolValueTreeNode } from './toolValueTree.js';
|
|
3
|
-
import { buildToolValueTree } from './toolValueTree.js';
|
|
4
3
|
import { useAIToolTheme } from './aiTool.theme.js';
|
|
5
4
|
import type { AIToolThemeProps } from './aiTool.theme.js';
|
|
6
5
|
|
|
7
6
|
let {
|
|
8
|
-
|
|
7
|
+
nodes,
|
|
9
8
|
tone = 'default',
|
|
10
|
-
maxDepth = 8,
|
|
11
|
-
maxEntries = 80,
|
|
12
9
|
theme
|
|
13
10
|
}: {
|
|
14
|
-
|
|
11
|
+
nodes: readonly AIToolValueTreeNode[];
|
|
15
12
|
tone?: 'default' | 'error';
|
|
16
|
-
maxDepth?: number;
|
|
17
|
-
maxEntries?: number;
|
|
18
13
|
theme?: AIToolThemeProps;
|
|
19
14
|
} = $props();
|
|
20
|
-
const nodes = $derived(buildToolValueTree(value, maxDepth, maxEntries));
|
|
21
15
|
const classes = $derived(useAIToolTheme(theme));
|
|
22
16
|
</script>
|
|
23
17
|
|
|
@@ -25,9 +19,10 @@
|
|
|
25
19
|
<li data-slot="ai-tool-value-tree-node" class={classes.treeNode()}>
|
|
26
20
|
{#if node.kind === 'branch'}
|
|
27
21
|
<div data-slot="ai-tool-value-tree-branch" class={classes.treeBranch()}>
|
|
28
|
-
<span data-slot="ai-tool-value-tree-key" class={classes.treeKey()}
|
|
29
|
-
|
|
30
|
-
class={classes.treeSummary()}
|
|
22
|
+
{#if node.key}<span data-slot="ai-tool-value-tree-key" class={classes.treeKey()}
|
|
23
|
+
>{node.key}</span
|
|
24
|
+
>{/if}<span data-slot="ai-tool-value-tree-summary" class={classes.treeSummary()}
|
|
25
|
+
>{node.summary}</span
|
|
31
26
|
>
|
|
32
27
|
</div>
|
|
33
28
|
<ul data-slot="ai-tool-value-tree-children" class={classes.treeChildren()}>
|
|
@@ -36,10 +31,10 @@
|
|
|
36
31
|
)}{/each}
|
|
37
32
|
</ul>
|
|
38
33
|
{:else}
|
|
39
|
-
<div data-slot="ai-tool-value-tree-leaf" class={classes.treeLeaf()}>
|
|
40
|
-
<span data-slot="ai-tool-value-tree-key" class={classes.treeKey()}
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
<div data-slot="ai-tool-value-tree-leaf" class={classes.treeLeaf({ keyed: node.key !== '' })}>
|
|
35
|
+
{#if node.key}<span data-slot="ai-tool-value-tree-key" class={classes.treeKey()}
|
|
36
|
+
>{node.key}</span
|
|
37
|
+
>{/if}<span
|
|
43
38
|
data-slot="ai-tool-value-tree-value"
|
|
44
39
|
class={classes.treeValue({ kind: node.valueKind, tone })}>{node.value}</span
|
|
45
40
|
>
|
|
@@ -48,6 +43,6 @@
|
|
|
48
43
|
</li>
|
|
49
44
|
{/snippet}
|
|
50
45
|
|
|
51
|
-
<ul data-slot="ai-tool-value-tree" class={classes.tree()}>
|
|
46
|
+
<ul data-slot="ai-tool-value-tree" class={classes.tree({ tone })}>
|
|
52
47
|
{#each nodes as node, index (`${node.key}-${index}`)}{@render treeNode(node)}{/each}
|
|
53
48
|
</ul>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import type { AIToolValueTreeNode } from './toolValueTree.js';
|
|
1
2
|
import type { AIToolThemeProps } from './aiTool.theme.js';
|
|
2
3
|
type $$ComponentProps = {
|
|
3
|
-
|
|
4
|
+
nodes: readonly AIToolValueTreeNode[];
|
|
4
5
|
tone?: 'default' | 'error';
|
|
5
|
-
maxDepth?: number;
|
|
6
|
-
maxEntries?: number;
|
|
7
6
|
theme?: AIToolThemeProps;
|
|
8
7
|
};
|
|
9
8
|
declare const AIToolValueTree: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const aiToolDescription = "\n# AITool\n\nRender one AI tool call or one collapsible group of consecutive calls. Non-empty `tools` takes precedence over `tool`. Missing statuses are inferred from output and errors, while arbitrary values use circular-safe depth and entry limits.\n\nExpanded call/group IDs use bindable `value`, initial `defaultValue`, and `onValueChange(value)`. The callback fires once for each user expansion change; parent prop updates stay silent. Nested rows inside a grouped call keep their own expansion state.\n\n```svelte\n<script lang=\"ts\">\n import { AITool, type AIToolCall } from './index.ts';\n\n const tools: AIToolCall[] = [\n { id: 'search', name: '
|
|
1
|
+
export declare const aiToolDescription = "\n# AITool\n\nRender one AI tool call or one collapsible group of consecutive calls. Non-empty `tools` takes precedence over `tool`. Missing statuses are inferred from output and errors, while arbitrary values use circular-safe depth and entry limits.\n\nExpanded call/group IDs use bindable `value`, initial `defaultValue`, and `onValueChange(value)`. The callback fires once for each user expansion change; parent prop updates stay silent. Nested rows inside a grouped call keep their own expansion state; a group's `value` entry is the first call's id.\n\n```svelte\n<script lang=\"ts\">\n import { AITool, type AIToolCall } from './index.ts';\n\n const tools: AIToolCall[] = [\n { id: 'search', name: 'searchDocs', input: { query: 'Svelte' }, output: { count: 4 }, duration: 1400 },\n { id: 'read', name: 'read_page', status: 'running', input: { path: '/docs' }, startedAt: Date.now() }\n ];\n let open = $state(['search']);\n</script>\n\n<AITool {tools} bind:value={open} multiple />\n```\n\n## Statuses and the AI SDK\n\n`AIToolStatus` covers `pending`, `loading`, `running`, `streaming`, `success`, `error`, `cancelled`, and the approval states `approval-requested`, `approval-responded` and `output-denied`; any other string renders as a neutral settled status with its readable name. Map AI SDK UI tool parts with `getAIToolStatusFromState(part.state)`:\n\n| AI SDK `part.state` | AITool `status` | Shown as |\n| --- | --- | --- |\n| `input-streaming` | `streaming` | spinner, \"Preparing\" |\n| `input-available` | `running` | spinner, \"Running\" |\n| `approval-requested` | `approval-requested` | hand glyph, \"Awaiting approval\" (never spins) |\n| `approval-responded` | `approval-responded` | spinner, \"Approved\", until an output state follows |\n| `output-available` | `success` | check glyph |\n| `output-error` | `error` | x glyph, \"Failed\" |\n| `output-denied` | `output-denied` | slashed circle, \"Denied\" (never spins) |\n\nPass the part's `approval` object too: `approval: { approved: false }` renders as denied even while the state still reads `approval-responded`. Unknown states return `undefined`, so status falls back to inference: an error is `error`, any output is `success`, nothing yet is `pending`.\n\n## Row anatomy\n\nEach row reads: status mark (spinner, then a check, x, hand or slashed-circle glyph, so status never relies on colour alone), readable title, a muted one-line input summary, then the status word (omitted on success) and the duration.\n\n- Title: `title` wins unless it only repeats `name`; raw names are humanized (`searchDocs` \u2192 \"Search docs\", `analyze_release` \u2192 \"Analyze release\", `mcp__github__list_issues` \u2192 \"List issues\").\n- `icon`: an entasis icon snippet per call; it takes the leading place and the status glyph moves next to the status word.\n- `summary`: overrides the input summary (first primitive input value, strings quoted); `''` hides it.\n- Duration: `duration` (ms), or `startedAt` + `completedAt`. A running call counts its elapsed time live (from `startedAt`, or from when the AITool first saw it running) and keeps its final duration after it settles, also when a lone call grows into a group: \"<1s\", \"6s\", \"1m 12s\". A duration the AITool only observed lives as long as that AITool; a row that remounts (a virtualized transcript) keeps it only when the call carries `duration` or `startedAt` + `completedAt`.\n- Group header: \"Search docs \u00B7 2 calls\" from the distinct tool titles and the call count; override with `labels.group(count, tools)`.\n\nUse `icon`, `title`, `status`, `input`, `output`, `error`, or `content` snippets with a `{ tool, index }` payload. The `icon` snippet replaces the leading mark and `status` replaces the trailing word and duration. `formatStatus` changes the status word and the mark's accessible name (defaults are localized).\n\n## Values\n\nInput, output and error sections share one text label style (\"Input\", \"Output\", \"Error\"). `valueView=\"json\"` (default) shows highlighted, wrapped JSON through the Code component with a copy button; `valueView=\"tree\"` shows a key/value tree with quoted strings and no array index keys. String values that hold JSON are shown structured; other one-line strings are quoted like JSON (so the output `\"3\"` never reads as the number `3`), and multi-line strings stay plain wrapped text. A primitive error (a string, an Error, an MCP `isError` result with text content) renders as one plain sentence. Values longer than `maxLines` (12) lines or rows collapse behind \"Show all\".\n\n## Variants\n\nThe default `ghost` variant renders unframed rows. `card` is an elevated surface, `outline` a transparent bounded surface, and `soft` a status-aware tint that doubles in dark mode. `size` (`small`, `normal` or `large`, default `normal`) scales row text, values and icons with the AIMessage size scale; AIThread and AIChat pass their `messageSize`. A lone call and a group share the same surface; group rows are divided inside it and align with the group header. The block is `w-full max-w-[32rem]` of its container, never sized from the viewport.\n\nUse `toggleIcon=\"none\"` for the default minimal trigger, `chevron` for a rotating disclosure icon, or `plus-minus` for plus/minus expansion controls. The choice applies to both group and child triggers.\n";
|
|
@@ -3,15 +3,15 @@ export const aiToolDescription = `
|
|
|
3
3
|
|
|
4
4
|
Render one AI tool call or one collapsible group of consecutive calls. Non-empty \`tools\` takes precedence over \`tool\`. Missing statuses are inferred from output and errors, while arbitrary values use circular-safe depth and entry limits.
|
|
5
5
|
|
|
6
|
-
Expanded call/group IDs use bindable \`value\`, initial \`defaultValue\`, and \`onValueChange(value)\`. The callback fires once for each user expansion change; parent prop updates stay silent. Nested rows inside a grouped call keep their own expansion state.
|
|
6
|
+
Expanded call/group IDs use bindable \`value\`, initial \`defaultValue\`, and \`onValueChange(value)\`. The callback fires once for each user expansion change; parent prop updates stay silent. Nested rows inside a grouped call keep their own expansion state; a group's \`value\` entry is the first call's id.
|
|
7
7
|
|
|
8
8
|
\`\`\`svelte
|
|
9
9
|
<script lang="ts">
|
|
10
10
|
import { AITool, type AIToolCall } from './index.ts';
|
|
11
11
|
|
|
12
12
|
const tools: AIToolCall[] = [
|
|
13
|
-
{ id: 'search', name: '
|
|
14
|
-
{ id: 'read', name: 'read_page', status: 'running', input: { path: '/docs' } }
|
|
13
|
+
{ id: 'search', name: 'searchDocs', input: { query: 'Svelte' }, output: { count: 4 }, duration: 1400 },
|
|
14
|
+
{ id: 'read', name: 'read_page', status: 'running', input: { path: '/docs' }, startedAt: Date.now() }
|
|
15
15
|
];
|
|
16
16
|
let open = $state(['search']);
|
|
17
17
|
</script>
|
|
@@ -19,13 +19,41 @@ Expanded call/group IDs use bindable \`value\`, initial \`defaultValue\`, and \`
|
|
|
19
19
|
<AITool {tools} bind:value={open} multiple />
|
|
20
20
|
\`\`\`
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## Statuses and the AI SDK
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
\`AIToolStatus\` covers \`pending\`, \`loading\`, \`running\`, \`streaming\`, \`success\`, \`error\`, \`cancelled\`, and the approval states \`approval-requested\`, \`approval-responded\` and \`output-denied\`; any other string renders as a neutral settled status with its readable name. Map AI SDK UI tool parts with \`getAIToolStatusFromState(part.state)\`:
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
| AI SDK \`part.state\` | AITool \`status\` | Shown as |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| \`input-streaming\` | \`streaming\` | spinner, "Preparing" |
|
|
29
|
+
| \`input-available\` | \`running\` | spinner, "Running" |
|
|
30
|
+
| \`approval-requested\` | \`approval-requested\` | hand glyph, "Awaiting approval" (never spins) |
|
|
31
|
+
| \`approval-responded\` | \`approval-responded\` | spinner, "Approved", until an output state follows |
|
|
32
|
+
| \`output-available\` | \`success\` | check glyph |
|
|
33
|
+
| \`output-error\` | \`error\` | x glyph, "Failed" |
|
|
34
|
+
| \`output-denied\` | \`output-denied\` | slashed circle, "Denied" (never spins) |
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
Pass the part's \`approval\` object too: \`approval: { approved: false }\` renders as denied even while the state still reads \`approval-responded\`. Unknown states return \`undefined\`, so status falls back to inference: an error is \`error\`, any output is \`success\`, nothing yet is \`pending\`.
|
|
37
|
+
|
|
38
|
+
## Row anatomy
|
|
39
|
+
|
|
40
|
+
Each row reads: status mark (spinner, then a check, x, hand or slashed-circle glyph, so status never relies on colour alone), readable title, a muted one-line input summary, then the status word (omitted on success) and the duration.
|
|
41
|
+
|
|
42
|
+
- Title: \`title\` wins unless it only repeats \`name\`; raw names are humanized (\`searchDocs\` → "Search docs", \`analyze_release\` → "Analyze release", \`mcp__github__list_issues\` → "List issues").
|
|
43
|
+
- \`icon\`: an entasis icon snippet per call; it takes the leading place and the status glyph moves next to the status word.
|
|
44
|
+
- \`summary\`: overrides the input summary (first primitive input value, strings quoted); \`''\` hides it.
|
|
45
|
+
- Duration: \`duration\` (ms), or \`startedAt\` + \`completedAt\`. A running call counts its elapsed time live (from \`startedAt\`, or from when the AITool first saw it running) and keeps its final duration after it settles, also when a lone call grows into a group: "<1s", "6s", "1m 12s". A duration the AITool only observed lives as long as that AITool; a row that remounts (a virtualized transcript) keeps it only when the call carries \`duration\` or \`startedAt\` + \`completedAt\`.
|
|
46
|
+
- Group header: "Search docs · 2 calls" from the distinct tool titles and the call count; override with \`labels.group(count, tools)\`.
|
|
47
|
+
|
|
48
|
+
Use \`icon\`, \`title\`, \`status\`, \`input\`, \`output\`, \`error\`, or \`content\` snippets with a \`{ tool, index }\` payload. The \`icon\` snippet replaces the leading mark and \`status\` replaces the trailing word and duration. \`formatStatus\` changes the status word and the mark's accessible name (defaults are localized).
|
|
29
49
|
|
|
30
|
-
|
|
50
|
+
## Values
|
|
51
|
+
|
|
52
|
+
Input, output and error sections share one text label style ("Input", "Output", "Error"). \`valueView="json"\` (default) shows highlighted, wrapped JSON through the Code component with a copy button; \`valueView="tree"\` shows a key/value tree with quoted strings and no array index keys. String values that hold JSON are shown structured; other one-line strings are quoted like JSON (so the output \`"3"\` never reads as the number \`3\`), and multi-line strings stay plain wrapped text. A primitive error (a string, an Error, an MCP \`isError\` result with text content) renders as one plain sentence. Values longer than \`maxLines\` (12) lines or rows collapse behind "Show all".
|
|
53
|
+
|
|
54
|
+
## Variants
|
|
55
|
+
|
|
56
|
+
The default \`ghost\` variant renders unframed rows. \`card\` is an elevated surface, \`outline\` a transparent bounded surface, and \`soft\` a status-aware tint that doubles in dark mode. \`size\` (\`small\`, \`normal\` or \`large\`, default \`normal\`) scales row text, values and icons with the AIMessage size scale; AIThread and AIChat pass their \`messageSize\`. A lone call and a group share the same surface; group rows are divided inside it and align with the group header. The block is \`w-full max-w-[32rem]\` of its container, never sized from the viewport.
|
|
57
|
+
|
|
58
|
+
Use \`toggleIcon="none"\` for the default minimal trigger, \`chevron\` for a rotating disclosure icon, or \`plus-minus\` for plus/minus expansion controls. The choice applies to both group and child triggers.
|
|
31
59
|
`;
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import type { Slot } from '../Slot/slot.js';
|
|
2
|
-
import type { DisclosureIndicator } from '../../types/theme.js';
|
|
2
|
+
import type { DisclosureIndicator, Sizes } from '../../types/theme.js';
|
|
3
3
|
import type { WithAttachments } from '../../types/props.js';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
4
5
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
6
|
import type { AIToolThemeProps } from './aiTool.theme.js';
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Lifecycle of one call. AI SDK UI tool part states map onto it with
|
|
9
|
+
* `getAIToolStatusFromState`: `input-streaming` → `streaming`, `input-available` → `running`,
|
|
10
|
+
* `approval-requested` → `approval-requested`, `approval-responded` → `approval-responded`,
|
|
11
|
+
* `output-available` → `success`, `output-error` → `error`, `output-denied` → `output-denied`.
|
|
12
|
+
* Only `pending`, `loading`, `running`, `streaming` and `approval-responded` show a spinner;
|
|
13
|
+
* app-defined strings render as a neutral, settled status.
|
|
14
|
+
*/
|
|
15
|
+
export type AIToolStatus = 'pending' | 'loading' | 'running' | 'streaming' | 'success' | 'error' | 'cancelled'
|
|
16
|
+
/** Waiting for the user to approve or deny the call. Never spins. */
|
|
17
|
+
| 'approval-requested'
|
|
18
|
+
/** The user approved; the call runs until an output state follows. */
|
|
19
|
+
| 'approval-responded'
|
|
20
|
+
/** The user denied the call. Never spins. */
|
|
21
|
+
| 'output-denied' | (string & {});
|
|
22
|
+
/** How the default renderer shows input, output and object errors. */
|
|
23
|
+
export type AIToolValueView = 'json' | 'tree';
|
|
7
24
|
export type AIToolVariant = 'card' | 'ghost' | 'outline' | 'soft';
|
|
8
25
|
export type AIToolToggleIcon = DisclosureIndicator;
|
|
9
26
|
export type AIToolCall = {
|
|
@@ -16,6 +33,23 @@ export type AIToolCall = {
|
|
|
16
33
|
structuredContent?: unknown;
|
|
17
34
|
result?: unknown;
|
|
18
35
|
error?: unknown;
|
|
36
|
+
/** Approval decision recorded by AI SDK approval flows. `approved: false` renders as denied. */
|
|
37
|
+
approval?: {
|
|
38
|
+
approved?: boolean;
|
|
39
|
+
reason?: string;
|
|
40
|
+
};
|
|
41
|
+
/** One-line muted summary shown after the title. Defaults to the first input value; `''` hides it. */
|
|
42
|
+
summary?: string;
|
|
43
|
+
/** Icon shown in place of the leading status mark; the status then moves next to its word. */
|
|
44
|
+
icon?: Snippet<[{
|
|
45
|
+
size?: number | string;
|
|
46
|
+
}]>;
|
|
47
|
+
/** When the call started. Enables a live elapsed time while the call runs. */
|
|
48
|
+
startedAt?: Date | number | string;
|
|
49
|
+
/** When the call settled. With `startedAt`, gives the final duration. */
|
|
50
|
+
completedAt?: Date | number | string;
|
|
51
|
+
/** Final duration in milliseconds. Takes precedence over `startedAt` and `completedAt`. */
|
|
52
|
+
duration?: number;
|
|
19
53
|
_meta?: Record<string, unknown>;
|
|
20
54
|
};
|
|
21
55
|
export type AIToolRenderPayload = {
|
|
@@ -24,17 +58,25 @@ export type AIToolRenderPayload = {
|
|
|
24
58
|
};
|
|
25
59
|
export type AIToolSnippet = Slot<AIToolRenderPayload>;
|
|
26
60
|
export type AIToolLabels = {
|
|
61
|
+
/** Title for calls without `title` or `name`. */
|
|
27
62
|
fallbackTitle: string;
|
|
28
|
-
|
|
63
|
+
/** Group header text. Defaults to the distinct tool titles and the call count: "Search docs · 2 calls". */
|
|
64
|
+
group: (count: number, tools: readonly AIToolCall[]) => string;
|
|
29
65
|
input: string;
|
|
30
66
|
output: string;
|
|
31
67
|
error: string;
|
|
32
68
|
empty: string;
|
|
69
|
+
/** Expands a long value. */
|
|
70
|
+
showAll: string;
|
|
71
|
+
/** Collapses an expanded long value. */
|
|
72
|
+
showLess: string;
|
|
33
73
|
};
|
|
34
74
|
type AIToolRootAttributes = Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'class' | 'content' | 'icon' | 'input' | 'output' | 'title'>;
|
|
35
75
|
export type AIToolProps = WithAttachments<AIToolRootAttributes & {
|
|
36
76
|
/** Bindable reference to the root tool-call group. */
|
|
37
77
|
ref?: HTMLDivElement | null;
|
|
78
|
+
/** Type and icon scale: `small`, `normal` (default) or `large`, matching AIMessage sizes. AIThread passes its `messageSize`. */
|
|
79
|
+
size?: Sizes;
|
|
38
80
|
/** Single call fallback used when `tools` is empty. */
|
|
39
81
|
tool?: AIToolCall;
|
|
40
82
|
/** Consecutive calls rendered as one aggregate accordion group. Takes precedence over `tool`. */
|
|
@@ -55,11 +97,15 @@ export type AIToolProps = WithAttachments<AIToolRootAttributes & {
|
|
|
55
97
|
maxDepth?: number;
|
|
56
98
|
/** Maximum entries rendered per object or array. */
|
|
57
99
|
maxEntries?: number;
|
|
100
|
+
/** Default value renderer: highlighted, copyable JSON or a key/value tree. @default 'json' */
|
|
101
|
+
valueView?: AIToolValueView;
|
|
102
|
+
/** Lines (JSON) or rows (tree) shown before a value collapses behind "Show all". @default 12 */
|
|
103
|
+
maxLines?: number;
|
|
58
104
|
/** Overrides labels used by the default renderer. */
|
|
59
105
|
labels?: Partial<AIToolLabels>;
|
|
60
|
-
/** Formats the
|
|
106
|
+
/** Formats the status word and the status mark's accessible label. Defaults to localized words. */
|
|
61
107
|
formatStatus?: (status: AIToolStatus) => string;
|
|
62
|
-
/**
|
|
108
|
+
/** Replaces the leading status mark of each call row. */
|
|
63
109
|
icon?: Slot<AIToolRenderPayload>;
|
|
64
110
|
/** Custom renderer for the tool title. */
|
|
65
111
|
title?: Slot<AIToolRenderPayload>;
|
|
@@ -71,7 +117,7 @@ export type AIToolProps = WithAttachments<AIToolRootAttributes & {
|
|
|
71
117
|
output?: Slot<AIToolRenderPayload>;
|
|
72
118
|
/** Custom renderer for an error section. */
|
|
73
119
|
error?: Slot<AIToolRenderPayload>;
|
|
74
|
-
/**
|
|
120
|
+
/** Replaces the trailing status word and duration of each call row. */
|
|
75
121
|
status?: Slot<AIToolRenderPayload>;
|
|
76
122
|
/** Class applied to the root tool-call group. */
|
|
77
123
|
class?: string;
|