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
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Svelte 5 component library for SvelteKit, styled through a Tailwind CSS v4 plugi
|
|
|
13
13
|
pnpm add entasis
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
Peer dependencies: `svelte ^5
|
|
16
|
+
Peer dependencies: `svelte ^5.32` (attachments and `fromAction`), `@sveltejs/kit ^2` and `tailwindcss ^4` (via `@tailwindcss/vite`). There is no `tailwind.config.js`; all configuration lives in your CSS. The library reads SvelteKit's `$app/environment` and, in `NetworkIndicator`, the `navigating` store, so it runs inside a SvelteKit app.
|
|
17
17
|
|
|
18
18
|
### Optional peers
|
|
19
19
|
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
import type { BaseTransitionParams } from '../transitions/transition.js';
|
|
3
|
+
import { type OpenStateAttributes, type OpenTransitionStatus, type TransitionStatusAttributes } from '../utils/stateAttributes.js';
|
|
4
|
+
/**
|
|
5
|
+
* CSS variable on the panel: its measured height in px while it animates, `auto` once open and
|
|
6
|
+
* `0px` once closed. Style inner content against it, or animate other properties with it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DISCLOSURE_PANEL_HEIGHT_VARIABLE = "--disclosure-panel-height";
|
|
9
|
+
/** Enter (`in`) and exit (`out`) timing; a component's resolved motion preset fits as it is. */
|
|
10
|
+
export type DisclosurePanelMotion = {
|
|
11
|
+
in?: BaseTransitionParams;
|
|
12
|
+
out?: BaseTransitionParams;
|
|
13
|
+
};
|
|
14
|
+
export type DisclosurePanelOptions = {
|
|
15
|
+
/** Whether the panel is open. Read reactively. */
|
|
16
|
+
open: () => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Keep the closed panel in the DOM under `hidden="until-found"`, so the browser's find-in-page,
|
|
19
|
+
* text fragments and `#id` links can reach its content and open it. Implies `keepMounted`.
|
|
20
|
+
* That state hides only the content (`content-visibility: hidden`): the panel's own padding,
|
|
21
|
+
* borders and margins stay laid out, so put them on an element inside the panel.
|
|
22
|
+
*/
|
|
23
|
+
hiddenUntilFound?: () => boolean | undefined;
|
|
24
|
+
/** Keep the closed panel in the DOM under `hidden`, preserving its content's state. */
|
|
25
|
+
keepMounted?: () => boolean | undefined;
|
|
26
|
+
/** Enter and exit timing. Durations default to the Theme's `normal` step; reduced motion zeroes them. */
|
|
27
|
+
motion?: () => DisclosurePanelMotion | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Find-in-page matched content inside the closed panel. Open the panel synchronously here
|
|
30
|
+
* (through the owner's usual open-change path). If the panel is still closed a task later, the
|
|
31
|
+
* content goes back under `hidden="until-found"`. That open plays no animation.
|
|
32
|
+
*/
|
|
33
|
+
onBeforeMatch?: (event: Event) => void;
|
|
34
|
+
/** Runs once when an open finishes: after the enter animation, or at once without motion. */
|
|
35
|
+
onAfterOpen?: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Runs once when a close finishes: after the exit animation, at once without motion, or when
|
|
38
|
+
* the panel element is removed mid-close.
|
|
39
|
+
*/
|
|
40
|
+
onAfterClose?: () => void;
|
|
41
|
+
};
|
|
42
|
+
export type DisclosurePanelAttributes = OpenStateAttributes & TransitionStatusAttributes & {
|
|
43
|
+
/** `'until-found'` or `true` while the panel is closed and kept in the DOM. */
|
|
44
|
+
hidden: true | 'until-found' | undefined;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Drives a disclosure panel (Collapsible, Accordion items, Sidebar groups): its `hidden` state,
|
|
48
|
+
* a height animation, find-in-page reveal and completion callbacks that always fire once.
|
|
49
|
+
*
|
|
50
|
+
* Create it while the owner initialises, spread `attributes` on the panel, attach `attach`, and
|
|
51
|
+
* render the panel while `rendered` is true:
|
|
52
|
+
*
|
|
53
|
+
* ```svelte
|
|
54
|
+
* const panel = disclosurePanel({ open: () => isOpen, hiddenUntilFound: () => hiddenUntilFound,
|
|
55
|
+
* onBeforeMatch: () => setOpen(true), onAfterOpen, onAfterClose, motion: () => contentMotion });
|
|
56
|
+
*
|
|
57
|
+
* {#if panel.rendered}
|
|
58
|
+
* <div id={contentId} {...panel.attributes} {@attach panel.attach}>…</div>
|
|
59
|
+
* {/if}
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* `attributes` carries `hidden` (`'until-found'` with `hiddenUntilFound`), `data-open` /
|
|
63
|
+
* `data-closed` and `data-entering` / `data-exiting`, so server-rendered markup is already right.
|
|
64
|
+
* The enter and exit animations run on the panel's height, block padding, borders and margins
|
|
65
|
+
* with the Web Animations API; `--disclosure-panel-height` holds the measured height meanwhile.
|
|
66
|
+
* An animation interrupted by the opposite change reverses from where it is. The first state is
|
|
67
|
+
* never animated.
|
|
68
|
+
*/
|
|
69
|
+
export declare class DisclosurePanel {
|
|
70
|
+
#private;
|
|
71
|
+
constructor(options: DisclosurePanelOptions);
|
|
72
|
+
/** Whether the owner reports the panel open. */
|
|
73
|
+
get open(): boolean;
|
|
74
|
+
/** `closed`, `entering`, `open` or `exiting`. */
|
|
75
|
+
get status(): OpenTransitionStatus;
|
|
76
|
+
/** Whether the panel belongs in the DOM: open, closing, or kept while closed. */
|
|
77
|
+
get rendered(): boolean;
|
|
78
|
+
/** `hidden` and the state attributes for the panel element. */
|
|
79
|
+
get attributes(): DisclosurePanelAttributes;
|
|
80
|
+
/** Attach to the panel element. */
|
|
81
|
+
attach: Attachment<HTMLElement>;
|
|
82
|
+
}
|
|
83
|
+
/** Creates a `DisclosurePanel` controller; call it while the owning component initialises. */
|
|
84
|
+
export declare const disclosurePanel: (options: DisclosurePanelOptions) => DisclosurePanel;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { getContext, tick, untrack } from 'svelte';
|
|
2
|
+
import { defaultMotionTokens } from '../tailwind/scales.js';
|
|
3
|
+
import { easingBezierStrings } from '../transitions/easingFunctions.js';
|
|
4
|
+
import { prefersReducedMotion } from '../utils/motion.svelte.js';
|
|
5
|
+
import { openStateAttributes, transitionStatusAttributes } from '../utils/stateAttributes.js';
|
|
6
|
+
/**
|
|
7
|
+
* CSS variable on the panel: its measured height in px while it animates, `auto` once open and
|
|
8
|
+
* `0px` once closed. Style inner content against it, or animate other properties with it.
|
|
9
|
+
*/
|
|
10
|
+
export const DISCLOSURE_PANEL_HEIGHT_VARIABLE = '--disclosure-panel-height';
|
|
11
|
+
// The block-axis box a collapse squeezes to nothing, as `slide` does.
|
|
12
|
+
const BOX_PROPERTIES = [
|
|
13
|
+
'height',
|
|
14
|
+
'paddingTop',
|
|
15
|
+
'paddingBottom',
|
|
16
|
+
'borderTopWidth',
|
|
17
|
+
'borderBottomWidth',
|
|
18
|
+
'marginTop',
|
|
19
|
+
'marginBottom'
|
|
20
|
+
];
|
|
21
|
+
const COLLAPSED = Object.fromEntries(BOX_PROPERTIES.map((name) => [name, '0px']));
|
|
22
|
+
// Computed values are used values in px while rendered, and mid-animation values while an
|
|
23
|
+
// animation runs, whatever the panel's box-sizing.
|
|
24
|
+
const readBox = (element) => {
|
|
25
|
+
const style = getComputedStyle(element);
|
|
26
|
+
return Object.fromEntries(BOX_PROPERTIES.map((name) => {
|
|
27
|
+
const value = style[name];
|
|
28
|
+
return [name, value && value.endsWith('px') ? value : '0px'];
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
const overrideStyle = (element, property, value) => {
|
|
32
|
+
const previous = element.style.getPropertyValue(property);
|
|
33
|
+
const priority = element.style.getPropertyPriority(property);
|
|
34
|
+
element.style.setProperty(property, value);
|
|
35
|
+
return () => {
|
|
36
|
+
if (previous === '')
|
|
37
|
+
element.style.removeProperty(property);
|
|
38
|
+
else
|
|
39
|
+
element.style.setProperty(property, previous, priority);
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Drives a disclosure panel (Collapsible, Accordion items, Sidebar groups): its `hidden` state,
|
|
44
|
+
* a height animation, find-in-page reveal and completion callbacks that always fire once.
|
|
45
|
+
*
|
|
46
|
+
* Create it while the owner initialises, spread `attributes` on the panel, attach `attach`, and
|
|
47
|
+
* render the panel while `rendered` is true:
|
|
48
|
+
*
|
|
49
|
+
* ```svelte
|
|
50
|
+
* const panel = disclosurePanel({ open: () => isOpen, hiddenUntilFound: () => hiddenUntilFound,
|
|
51
|
+
* onBeforeMatch: () => setOpen(true), onAfterOpen, onAfterClose, motion: () => contentMotion });
|
|
52
|
+
*
|
|
53
|
+
* {#if panel.rendered}
|
|
54
|
+
* <div id={contentId} {...panel.attributes} {@attach panel.attach}>…</div>
|
|
55
|
+
* {/if}
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* `attributes` carries `hidden` (`'until-found'` with `hiddenUntilFound`), `data-open` /
|
|
59
|
+
* `data-closed` and `data-entering` / `data-exiting`, so server-rendered markup is already right.
|
|
60
|
+
* The enter and exit animations run on the panel's height, block padding, borders and margins
|
|
61
|
+
* with the Web Animations API; `--disclosure-panel-height` holds the measured height meanwhile.
|
|
62
|
+
* An animation interrupted by the opposite change reverses from where it is. The first state is
|
|
63
|
+
* never animated.
|
|
64
|
+
*/
|
|
65
|
+
export class DisclosurePanel {
|
|
66
|
+
#options;
|
|
67
|
+
#theme;
|
|
68
|
+
#status = $state('closed');
|
|
69
|
+
#element = null;
|
|
70
|
+
// The open state the panel rests in or is moving to.
|
|
71
|
+
#target;
|
|
72
|
+
// The completion callback the current change still owes.
|
|
73
|
+
#pending = null;
|
|
74
|
+
#animation = null;
|
|
75
|
+
#animationId = 0;
|
|
76
|
+
// A finished collapse kept filled until `hidden` or the unmount reaches the DOM.
|
|
77
|
+
#lingering = null;
|
|
78
|
+
#restoreOverflow = null;
|
|
79
|
+
// Set by find-in-page: the next open reveals the content at once.
|
|
80
|
+
#skipOpenMotion = false;
|
|
81
|
+
#revealTimeout;
|
|
82
|
+
#revealFrame;
|
|
83
|
+
constructor(options) {
|
|
84
|
+
this.#options = options;
|
|
85
|
+
this.#theme = getContext('entasisTheme');
|
|
86
|
+
const open = untrack(() => !!options.open());
|
|
87
|
+
this.#target = open;
|
|
88
|
+
this.#status = open ? 'open' : 'closed';
|
|
89
|
+
$effect(() => {
|
|
90
|
+
const next = !!options.open();
|
|
91
|
+
untrack(() => this.#sync(next));
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Whether the owner reports the panel open. */
|
|
95
|
+
get open() {
|
|
96
|
+
return !!this.#options.open();
|
|
97
|
+
}
|
|
98
|
+
/** `closed`, `entering`, `open` or `exiting`. */
|
|
99
|
+
get status() {
|
|
100
|
+
return this.#status;
|
|
101
|
+
}
|
|
102
|
+
/** Whether the panel belongs in the DOM: open, closing, or kept while closed. */
|
|
103
|
+
get rendered() {
|
|
104
|
+
return this.open || this.#status !== 'closed' || this.#keepsElement();
|
|
105
|
+
}
|
|
106
|
+
/** `hidden` and the state attributes for the panel element. */
|
|
107
|
+
get attributes() {
|
|
108
|
+
const open = this.open;
|
|
109
|
+
const hidden = !open && this.#status === 'closed';
|
|
110
|
+
return {
|
|
111
|
+
hidden: hidden ? (this.#hiddenUntilFound() ? 'until-found' : true) : undefined,
|
|
112
|
+
...openStateAttributes(open),
|
|
113
|
+
...transitionStatusAttributes(this.#status)
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Attach to the panel element. */
|
|
117
|
+
attach = (element) => untrack(() => {
|
|
118
|
+
this.#element = element;
|
|
119
|
+
element.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, this.#status === 'open' ? 'auto' : '0px');
|
|
120
|
+
const onBeforeMatch = (event) => this.#handleBeforeMatch(element, event);
|
|
121
|
+
element.addEventListener('beforematch', onBeforeMatch);
|
|
122
|
+
// An open that started before the panel was rendered animates now.
|
|
123
|
+
if (this.#pending && !this.#animation)
|
|
124
|
+
this.#run();
|
|
125
|
+
return () => {
|
|
126
|
+
element.removeEventListener('beforematch', onBeforeMatch);
|
|
127
|
+
this.#cancelReveal();
|
|
128
|
+
if (this.#element !== element)
|
|
129
|
+
return;
|
|
130
|
+
this.#element = null;
|
|
131
|
+
this.#stopAnimation();
|
|
132
|
+
// A panel removed while it closes has finished closing.
|
|
133
|
+
if (this.#pending === 'close')
|
|
134
|
+
this.#finish();
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
#hiddenUntilFound = () => !!this.#options.hiddenUntilFound?.();
|
|
138
|
+
#keepsElement = () => this.#hiddenUntilFound() || !!this.#options.keepMounted?.();
|
|
139
|
+
#isOpenNow = () => untrack(() => !!this.#options.open());
|
|
140
|
+
#sync(open) {
|
|
141
|
+
if (open === this.#target)
|
|
142
|
+
return;
|
|
143
|
+
this.#target = open;
|
|
144
|
+
this.#pending = open ? 'open' : 'close';
|
|
145
|
+
this.#status = open ? 'entering' : 'exiting';
|
|
146
|
+
this.#run();
|
|
147
|
+
}
|
|
148
|
+
#timing(open) {
|
|
149
|
+
const reduced = this.#theme ? this.#theme.preferReducesMotion : prefersReducedMotion();
|
|
150
|
+
const motion = this.#options.motion?.();
|
|
151
|
+
const params = (open ? motion?.in : motion?.out) ?? {};
|
|
152
|
+
const tokens = this.#theme?.motion ?? defaultMotionTokens;
|
|
153
|
+
return {
|
|
154
|
+
duration: reduced ? 0 : (params.duration ?? tokens.duration.normal),
|
|
155
|
+
delay: params.delay ?? 0,
|
|
156
|
+
easing: easingBezierStrings[params.easing ?? tokens.easing.standard]
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
#run() {
|
|
160
|
+
const element = this.#element;
|
|
161
|
+
const open = this.#target;
|
|
162
|
+
if (!element) {
|
|
163
|
+
// An open waits for its element; a close has nothing left to collapse.
|
|
164
|
+
if (!open)
|
|
165
|
+
this.#finish();
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
// Read before stopping, so an interrupted animation reverses from where it is.
|
|
169
|
+
const current = this.#animation || this.#lingering ? readBox(element) : null;
|
|
170
|
+
this.#stopAnimation();
|
|
171
|
+
const skip = open && this.#skipOpenMotion;
|
|
172
|
+
this.#skipOpenMotion = false;
|
|
173
|
+
const timing = this.#timing(open);
|
|
174
|
+
if (skip || timing.duration <= 0) {
|
|
175
|
+
this.#finish();
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
// Measured with the variable at `auto`, so a panel styled `height: var(…)` reports its content.
|
|
179
|
+
element.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, 'auto');
|
|
180
|
+
const natural = readBox(element);
|
|
181
|
+
const from = current ?? (open ? COLLAPSED : natural);
|
|
182
|
+
const to = open ? natural : COLLAPSED;
|
|
183
|
+
element.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, `${parseFloat(natural.height) || 0}px`);
|
|
184
|
+
this.#restoreOverflow = overrideStyle(element, 'overflow', 'hidden');
|
|
185
|
+
const id = ++this.#animationId;
|
|
186
|
+
// `both`: the first keyframe holds through a delay, so the panel doesn't show at its final
|
|
187
|
+
// or CSS height first, and the last one holds until `#finish` settles the styles.
|
|
188
|
+
const animation = element.animate([from, to], {
|
|
189
|
+
duration: timing.duration,
|
|
190
|
+
delay: timing.delay,
|
|
191
|
+
easing: timing.easing,
|
|
192
|
+
fill: 'both'
|
|
193
|
+
});
|
|
194
|
+
this.#animation = animation;
|
|
195
|
+
animation.onfinish = () => {
|
|
196
|
+
if (id === this.#animationId)
|
|
197
|
+
this.#finish();
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
#finish() {
|
|
201
|
+
const open = this.#target;
|
|
202
|
+
const element = this.#element;
|
|
203
|
+
const collapse = !open && element ? this.#animation : null;
|
|
204
|
+
if (collapse) {
|
|
205
|
+
// Keep the collapsed fill until `hidden` or the unmount lands, so the panel never
|
|
206
|
+
// flashes back to full height for a frame.
|
|
207
|
+
this.#animation = null;
|
|
208
|
+
this.#animationId += 1;
|
|
209
|
+
this.#lingering = collapse;
|
|
210
|
+
void tick().then(() => {
|
|
211
|
+
if (this.#lingering === collapse)
|
|
212
|
+
this.#releaseLingering();
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
this.#stopAnimation();
|
|
217
|
+
}
|
|
218
|
+
element?.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, open ? 'auto' : '0px');
|
|
219
|
+
this.#status = open ? 'open' : 'closed';
|
|
220
|
+
const pending = this.#pending;
|
|
221
|
+
this.#pending = null;
|
|
222
|
+
if (pending === 'open')
|
|
223
|
+
this.#options.onAfterOpen?.();
|
|
224
|
+
else if (pending === 'close')
|
|
225
|
+
this.#options.onAfterClose?.();
|
|
226
|
+
}
|
|
227
|
+
#releaseLingering() {
|
|
228
|
+
this.#lingering?.cancel();
|
|
229
|
+
this.#lingering = null;
|
|
230
|
+
this.#restoreOverflow?.();
|
|
231
|
+
this.#restoreOverflow = null;
|
|
232
|
+
}
|
|
233
|
+
#stopAnimation() {
|
|
234
|
+
this.#animationId += 1;
|
|
235
|
+
const animation = this.#animation;
|
|
236
|
+
this.#animation = null;
|
|
237
|
+
animation?.cancel();
|
|
238
|
+
this.#releaseLingering();
|
|
239
|
+
}
|
|
240
|
+
#handleBeforeMatch(element, event) {
|
|
241
|
+
if (this.#target)
|
|
242
|
+
return;
|
|
243
|
+
this.#skipOpenMotion = true;
|
|
244
|
+
// The browser measures the match as soon as this event returns; a styled collapse must
|
|
245
|
+
// not hide it.
|
|
246
|
+
element.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, 'auto');
|
|
247
|
+
this.#options.onBeforeMatch?.(event);
|
|
248
|
+
this.#cancelReveal();
|
|
249
|
+
// An owner that refuses the open (a controlled parent ignoring the change) leaves the panel
|
|
250
|
+
// closed: give its state a task to arrive, then hide the content again, still findable.
|
|
251
|
+
this.#revealTimeout = setTimeout(() => {
|
|
252
|
+
this.#revealTimeout = undefined;
|
|
253
|
+
if (this.#isOpenNow())
|
|
254
|
+
return;
|
|
255
|
+
this.#revealFrame = requestAnimationFrame(() => {
|
|
256
|
+
this.#revealFrame = undefined;
|
|
257
|
+
if (this.#isOpenNow())
|
|
258
|
+
return;
|
|
259
|
+
this.#skipOpenMotion = false;
|
|
260
|
+
if (this.#element !== element)
|
|
261
|
+
return;
|
|
262
|
+
element.style.setProperty(DISCLOSURE_PANEL_HEIGHT_VARIABLE, '0px');
|
|
263
|
+
if (this.#hiddenUntilFound())
|
|
264
|
+
element.setAttribute('hidden', 'until-found');
|
|
265
|
+
});
|
|
266
|
+
}, 0);
|
|
267
|
+
}
|
|
268
|
+
#cancelReveal() {
|
|
269
|
+
clearTimeout(this.#revealTimeout);
|
|
270
|
+
this.#revealTimeout = undefined;
|
|
271
|
+
if (this.#revealFrame !== undefined)
|
|
272
|
+
cancelAnimationFrame(this.#revealFrame);
|
|
273
|
+
this.#revealFrame = undefined;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/** Creates a `DisclosurePanel` controller; call it while the owning component initialises. */
|
|
277
|
+
export const disclosurePanel = (options) => new DisclosurePanel(options);
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
/** What `<Theme portalContainer>` accepts: a container, or a function that finds it later. */
|
|
3
|
+
export type PortalContainerSource = HTMLElement | ShadowRoot | (() => HTMLElement | ShadowRoot | null | undefined);
|
|
4
|
+
type ContainerSource = () => PortalContainerSource | undefined;
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
6
|
+
* Registers where `<Theme portalContainer>` is read from, for the lifetime of a Theme. `portal()`
|
|
7
|
+
* runs inside an attachment, where `getContext` is unavailable, so the mounted Theme is found the
|
|
8
|
+
* way `prefersReducedMotion()` finds it: the most recently mounted one that sets a container.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerPortalContainer(source: ContainerSource): () => void;
|
|
11
|
+
/**
|
|
12
|
+
* The node `portal()` mounts `node` into: the Theme's `portalContainer`, else the shadow root
|
|
13
|
+
* the node renders in (its panels keep the styles adopted there), else `document.body`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolvePortalContainer(node: Node): HTMLElement | ShadowRoot | null;
|
|
16
|
+
/**
|
|
17
|
+
* Moves the node to the Theme's portal container (`document.body` by default, the shadow root
|
|
18
|
+
* when rendered inside one) or to `target`, on mount, and removes it on destroy.
|
|
4
19
|
* Use as an attachment: `{@attach portal()}` or `{@attach portal(targetEl)}`.
|
|
5
20
|
*/
|
|
6
21
|
export declare function portal(target?: Element): Attachment<HTMLElement>;
|
|
22
|
+
export {};
|
|
@@ -1,10 +1,47 @@
|
|
|
1
|
+
const sources = [];
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Registers where `<Theme portalContainer>` is read from, for the lifetime of a Theme. `portal()`
|
|
4
|
+
* runs inside an attachment, where `getContext` is unavailable, so the mounted Theme is found the
|
|
5
|
+
* way `prefersReducedMotion()` finds it: the most recently mounted one that sets a container.
|
|
6
|
+
*/
|
|
7
|
+
export function registerPortalContainer(source) {
|
|
8
|
+
sources.push(source);
|
|
9
|
+
return () => {
|
|
10
|
+
const index = sources.lastIndexOf(source);
|
|
11
|
+
if (index >= 0)
|
|
12
|
+
sources.splice(index, 1);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const configuredContainer = () => {
|
|
16
|
+
for (let index = sources.length - 1; index >= 0; index -= 1) {
|
|
17
|
+
const source = sources[index]();
|
|
18
|
+
const container = typeof source === 'function' ? source() : source;
|
|
19
|
+
if (container?.isConnected)
|
|
20
|
+
return container;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The node `portal()` mounts `node` into: the Theme's `portalContainer`, else the shadow root
|
|
26
|
+
* the node renders in (its panels keep the styles adopted there), else `document.body`.
|
|
27
|
+
*/
|
|
28
|
+
export function resolvePortalContainer(node) {
|
|
29
|
+
const configured = configuredContainer();
|
|
30
|
+
if (configured)
|
|
31
|
+
return configured;
|
|
32
|
+
const root = node.getRootNode();
|
|
33
|
+
if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot)
|
|
34
|
+
return root;
|
|
35
|
+
return node.ownerDocument?.body ?? null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Moves the node to the Theme's portal container (`document.body` by default, the shadow root
|
|
39
|
+
* when rendered inside one) or to `target`, on mount, and removes it on destroy.
|
|
3
40
|
* Use as an attachment: `{@attach portal()}` or `{@attach portal(targetEl)}`.
|
|
4
41
|
*/
|
|
5
42
|
export function portal(target) {
|
|
6
43
|
return (node) => {
|
|
7
|
-
const mount = target ?? (
|
|
44
|
+
const mount = target ?? resolvePortalContainer(node);
|
|
8
45
|
if (!mount)
|
|
9
46
|
return;
|
|
10
47
|
mount.appendChild(node);
|
|
@@ -51,6 +51,17 @@ export const spinnerOverlay = (opts) => {
|
|
|
51
51
|
});
|
|
52
52
|
mountedSpinnerIndicators.set(overlay, { component, className, variant });
|
|
53
53
|
};
|
|
54
|
+
// The overlay sits inside the host's border, where the host clips its content with its inner
|
|
55
|
+
// radius (outer radius minus border width). Inheriting the outer radius made the overlay's corners
|
|
56
|
+
// rounder than that clip and let the host's background show at each corner.
|
|
57
|
+
const matchInnerRadius = (node, overlay) => {
|
|
58
|
+
const style = getComputedStyle(node);
|
|
59
|
+
const corner = (radius, a, b) => `max(0px, calc(${radius} - ${Math.max(parseFloat(a) || 0, parseFloat(b) || 0)}px))`;
|
|
60
|
+
overlay.style.borderTopLeftRadius = corner(style.borderTopLeftRadius, style.borderTopWidth, style.borderLeftWidth);
|
|
61
|
+
overlay.style.borderTopRightRadius = corner(style.borderTopRightRadius, style.borderTopWidth, style.borderRightWidth);
|
|
62
|
+
overlay.style.borderBottomRightRadius = corner(style.borderBottomRightRadius, style.borderBottomWidth, style.borderRightWidth);
|
|
63
|
+
overlay.style.borderBottomLeftRadius = corner(style.borderBottomLeftRadius, style.borderBottomWidth, style.borderLeftWidth);
|
|
64
|
+
};
|
|
54
65
|
const setOverlay = (node) => {
|
|
55
66
|
let mounted = false;
|
|
56
67
|
let overlay = getSpinnerOverlay(node);
|
|
@@ -64,6 +75,7 @@ export const spinnerOverlay = (opts) => {
|
|
|
64
75
|
}
|
|
65
76
|
overlay.dataset.color = opts.color ?? 'neutral';
|
|
66
77
|
overlay.className = classes.overlay({ class: opts.class });
|
|
78
|
+
matchInnerRadius(node, overlay);
|
|
67
79
|
return [overlay, mounted];
|
|
68
80
|
};
|
|
69
81
|
const setText = (overlay) => {
|
|
@@ -12,5 +12,11 @@ export type TransitionSizeOptions = {
|
|
|
12
12
|
easing?: MotionEasingToken | Easing;
|
|
13
13
|
/** Optional custom event names that should trigger a re-measure. */
|
|
14
14
|
events?: string | string[];
|
|
15
|
+
/**
|
|
16
|
+
* While a width animation runs, keep each direct child at the width it settles at, so its
|
|
17
|
+
* content does not re-wrap at every intermediate width; the clipped element reveals it as it
|
|
18
|
+
* grows. Default `true` for the `width` and `both` axes.
|
|
19
|
+
*/
|
|
20
|
+
fixContentWidth?: boolean;
|
|
15
21
|
};
|
|
16
22
|
export declare const transitionSize: (options?: TransitionSizeOptions) => Attachment<HTMLElement>;
|
|
@@ -60,6 +60,7 @@ export const transitionSize = (options = {}) => {
|
|
|
60
60
|
};
|
|
61
61
|
const isActive = () => options.isActive?.() ?? true;
|
|
62
62
|
const eventNames = getEventNames(options.events);
|
|
63
|
+
const fixContentWidth = options.fixContentWidth ?? axis !== 'height';
|
|
63
64
|
return (node) => {
|
|
64
65
|
if (typeof ResizeObserver === 'undefined')
|
|
65
66
|
return;
|
|
@@ -69,9 +70,33 @@ export const transitionSize = (options = {}) => {
|
|
|
69
70
|
let animationId = 0;
|
|
70
71
|
let shouldRetarget = false;
|
|
71
72
|
const initialOverflow = node.style.overflow;
|
|
73
|
+
// Children pinned to their settled width for the current animation, with their own styles.
|
|
74
|
+
let pinned = [];
|
|
75
|
+
const unpinChildren = () => {
|
|
76
|
+
for (const { child, width, flexShrink } of pinned) {
|
|
77
|
+
child.style.width = width;
|
|
78
|
+
child.style.flexShrink = flexShrink;
|
|
79
|
+
}
|
|
80
|
+
pinned = [];
|
|
81
|
+
};
|
|
82
|
+
const pinChildren = () => {
|
|
83
|
+
if (!fixContentWidth)
|
|
84
|
+
return;
|
|
85
|
+
for (const child of Array.from(node.children)) {
|
|
86
|
+
if (!(child instanceof HTMLElement) || child.hidden)
|
|
87
|
+
continue;
|
|
88
|
+
const width = child.getBoundingClientRect().width;
|
|
89
|
+
if (!width)
|
|
90
|
+
continue;
|
|
91
|
+
pinned.push({ child, width: child.style.width, flexShrink: child.style.flexShrink });
|
|
92
|
+
child.style.width = `${width}px`;
|
|
93
|
+
child.style.flexShrink = '0';
|
|
94
|
+
}
|
|
95
|
+
};
|
|
72
96
|
const restoreOverflow = (id) => {
|
|
73
97
|
if (id !== animationId)
|
|
74
98
|
return;
|
|
99
|
+
unpinChildren();
|
|
75
100
|
node.style.overflow = initialOverflow;
|
|
76
101
|
animation = null;
|
|
77
102
|
previousSize = readSize(node);
|
|
@@ -83,6 +108,8 @@ export const transitionSize = (options = {}) => {
|
|
|
83
108
|
const currentAnimation = animation;
|
|
84
109
|
animation = null;
|
|
85
110
|
currentAnimation.cancel();
|
|
111
|
+
// The next measurement must see the children's natural layout, not the pinned one.
|
|
112
|
+
unpinChildren();
|
|
86
113
|
};
|
|
87
114
|
const animateToCurrentSize = () => {
|
|
88
115
|
frame = null;
|
|
@@ -115,6 +142,8 @@ export const transitionSize = (options = {}) => {
|
|
|
115
142
|
? currentDuration
|
|
116
143
|
: remainingDuration;
|
|
117
144
|
node.style.overflow = 'hidden';
|
|
145
|
+
// Measured before the keyframes apply, while the children sit at their settled widths.
|
|
146
|
+
pinChildren();
|
|
118
147
|
animation = node.animate(getKeyframes(previousVisualSize, nextSize, axis), {
|
|
119
148
|
duration: animationDuration,
|
|
120
149
|
easing: easing()
|
|
@@ -143,6 +172,7 @@ export const transitionSize = (options = {}) => {
|
|
|
143
172
|
if (frame !== null)
|
|
144
173
|
cancelAnimationFrame(frame);
|
|
145
174
|
cancelAnimation();
|
|
175
|
+
unpinChildren();
|
|
146
176
|
observer.disconnect();
|
|
147
177
|
mutationObserver.disconnect();
|
|
148
178
|
eventNames.forEach((eventName) => node.removeEventListener(eventName, handleEvent));
|