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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long after the last hover popup closed the next one still opens without its delay. Matches
|
|
3
|
+
* the tooltip warm-up that predates the shared group.
|
|
4
|
+
*/
|
|
5
|
+
export declare const HOVER_WARM_WINDOW_MS = 400;
|
|
6
|
+
/** An open hover popup, as the group sees it. */
|
|
7
|
+
export type HoverIntentMember = {
|
|
8
|
+
/**
|
|
9
|
+
* Whether `node` is inside this popup. A trigger inside an open popup (a tooltip in a hover
|
|
10
|
+
* card, a nested card) is not handed the warm-up by that popup: entering it is not a move
|
|
11
|
+
* from one hover target to the next.
|
|
12
|
+
*/
|
|
13
|
+
contains?: (node: Node) => boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Hover warm-up shared by tooltips, hover cards and hover-opened popovers. While one of them is
|
|
17
|
+
* open, and for `windowMs` after the last one closed, the next one opens without its delay, so
|
|
18
|
+
* running the pointer along a toolbar or a row of links does not wait at every stop.
|
|
19
|
+
*
|
|
20
|
+
* Plain fields: the group is read when a pointer arrives, never rendered.
|
|
21
|
+
*/
|
|
22
|
+
export declare class HoverIntentGroup {
|
|
23
|
+
#private;
|
|
24
|
+
readonly windowMs: number;
|
|
25
|
+
constructor(windowMs?: number);
|
|
26
|
+
/**
|
|
27
|
+
* Counts a popup as open until the returned function runs. Each call is its own membership, so
|
|
28
|
+
* the same member object can join twice without one leave ending both.
|
|
29
|
+
*/
|
|
30
|
+
join(member?: HoverIntentMember): () => void;
|
|
31
|
+
/** Records a close at `time` for a surface that does not track membership. */
|
|
32
|
+
markClosed(time?: number): void;
|
|
33
|
+
/** When the last open popup closed, or `null` before any did. */
|
|
34
|
+
get lastClosedAt(): number | null;
|
|
35
|
+
/**
|
|
36
|
+
* Whether a hover arriving on `trigger` skips its delay: another popup is open (one that does
|
|
37
|
+
* not contain the trigger), or the last one closed less than `windowMs` ago.
|
|
38
|
+
*/
|
|
39
|
+
isWarm(trigger?: Node | null): boolean;
|
|
40
|
+
/** `delay`, or 0 while the group is warm for `trigger`. */
|
|
41
|
+
resolveDelay(delay: number, trigger?: Node | null): number;
|
|
42
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long after the last hover popup closed the next one still opens without its delay. Matches
|
|
3
|
+
* the tooltip warm-up that predates the shared group.
|
|
4
|
+
*/
|
|
5
|
+
export const HOVER_WARM_WINDOW_MS = 400;
|
|
6
|
+
/**
|
|
7
|
+
* Hover warm-up shared by tooltips, hover cards and hover-opened popovers. While one of them is
|
|
8
|
+
* open, and for `windowMs` after the last one closed, the next one opens without its delay, so
|
|
9
|
+
* running the pointer along a toolbar or a row of links does not wait at every stop.
|
|
10
|
+
*
|
|
11
|
+
* Plain fields: the group is read when a pointer arrives, never rendered.
|
|
12
|
+
*/
|
|
13
|
+
export class HoverIntentGroup {
|
|
14
|
+
windowMs;
|
|
15
|
+
#open = new Set();
|
|
16
|
+
#lastClosedAt = null;
|
|
17
|
+
constructor(windowMs = HOVER_WARM_WINDOW_MS) {
|
|
18
|
+
this.windowMs = windowMs;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Counts a popup as open until the returned function runs. Each call is its own membership, so
|
|
22
|
+
* the same member object can join twice without one leave ending both.
|
|
23
|
+
*/
|
|
24
|
+
join(member = {}) {
|
|
25
|
+
const entry = { contains: member.contains };
|
|
26
|
+
this.#open.add(entry);
|
|
27
|
+
return () => {
|
|
28
|
+
if (!this.#open.delete(entry))
|
|
29
|
+
return;
|
|
30
|
+
if (this.#open.size === 0)
|
|
31
|
+
this.#lastClosedAt = Date.now();
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Records a close at `time` for a surface that does not track membership. */
|
|
35
|
+
markClosed(time = Date.now()) {
|
|
36
|
+
this.#lastClosedAt = time;
|
|
37
|
+
}
|
|
38
|
+
/** When the last open popup closed, or `null` before any did. */
|
|
39
|
+
get lastClosedAt() {
|
|
40
|
+
return this.#lastClosedAt;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Whether a hover arriving on `trigger` skips its delay: another popup is open (one that does
|
|
44
|
+
* not contain the trigger), or the last one closed less than `windowMs` ago.
|
|
45
|
+
*/
|
|
46
|
+
isWarm(trigger) {
|
|
47
|
+
for (const member of this.#open) {
|
|
48
|
+
if (!trigger || !member.contains?.(trigger))
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return this.#lastClosedAt !== null && Date.now() - this.#lastClosedAt < this.windowMs;
|
|
52
|
+
}
|
|
53
|
+
/** `delay`, or 0 while the group is warm for `trigger`. */
|
|
54
|
+
resolveDelay(delay, trigger) {
|
|
55
|
+
return this.isWarm(trigger) ? 0 : delay;
|
|
56
|
+
}
|
|
57
|
+
}
|
package/dist/utils/id.d.ts
CHANGED
|
@@ -3,3 +3,10 @@
|
|
|
3
3
|
* Never empty, and never shorter than 8 characters after the prefix.
|
|
4
4
|
*/
|
|
5
5
|
export declare const createId: (prefix?: string) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Finds an element by id in the tree `from` lives in: the document, or the shadow root when it
|
|
8
|
+
* renders inside one (`document.getElementById` cannot see into a shadow tree). Falls back to the
|
|
9
|
+
* page's document, where a panel portaled out of a shadow root ends up. `from` is any node of
|
|
10
|
+
* that tree; without one the page's document is searched.
|
|
11
|
+
*/
|
|
12
|
+
export declare const elementById: (from: Node | null | undefined, id: string) => HTMLElement | null;
|
package/dist/utils/id.js
CHANGED
|
@@ -24,3 +24,18 @@ export const createId = (prefix) => {
|
|
|
24
24
|
: `${Date.now().toString(36)}-${randomSegment()}`;
|
|
25
25
|
return prefix ? `${prefix}-${id}` : id;
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Finds an element by id in the tree `from` lives in: the document, or the shadow root when it
|
|
29
|
+
* renders inside one (`document.getElementById` cannot see into a shadow tree). Falls back to the
|
|
30
|
+
* page's document, where a panel portaled out of a shadow root ends up. `from` is any node of
|
|
31
|
+
* that tree; without one the page's document is searched.
|
|
32
|
+
*/
|
|
33
|
+
export const elementById = (from, id) => {
|
|
34
|
+
const root = from?.getRootNode?.();
|
|
35
|
+
if (root && 'getElementById' in root) {
|
|
36
|
+
const found = root.getElementById(id);
|
|
37
|
+
if (found)
|
|
38
|
+
return found;
|
|
39
|
+
}
|
|
40
|
+
return typeof document === 'undefined' ? null : document.getElementById(id);
|
|
41
|
+
};
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { SvelteSet } from 'svelte/reactivity';
|
|
2
|
+
import type { OpenChangeInit, OpenChangeReason } from './openChange.js';
|
|
2
3
|
import { LAYER_Z_BASE } from '../components/Theme/theme.layers.js';
|
|
3
4
|
export type LayerKind = keyof typeof LAYER_Z_BASE;
|
|
4
|
-
|
|
5
|
+
/** The open-change reasons the layer stack itself reports. */
|
|
6
|
+
export type DismissReason = Extract<OpenChangeReason, 'escape-key' | 'outside-press' | 'close-watcher'>;
|
|
7
|
+
/** A dismissal the stack asks a layer's owner to apply, in `onOpenChange` details terms. */
|
|
8
|
+
export interface LayerDismissRequest extends OpenChangeInit {
|
|
9
|
+
reason: DismissReason;
|
|
10
|
+
event: Event;
|
|
11
|
+
}
|
|
5
12
|
export interface LayerOptions {
|
|
6
13
|
kind: LayerKind;
|
|
7
14
|
isOpen: () => boolean;
|
|
@@ -9,7 +16,11 @@ export interface LayerOptions {
|
|
|
9
16
|
isModal: () => boolean;
|
|
10
17
|
dismissOnEscape?: () => boolean;
|
|
11
18
|
dismissOnOutside?: () => boolean;
|
|
12
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Closes the layer for `request.reason`. Return `false` when the owner's `onOpenChange`
|
|
21
|
+
* cancelled the change: the stack then leaves the originating event untouched.
|
|
22
|
+
*/
|
|
23
|
+
onDismiss?: (request: LayerDismissRequest) => boolean | void;
|
|
13
24
|
/** Owner state, exposed to siblings that need more than the handle (e.g. the backdrop). */
|
|
14
25
|
state?: unknown;
|
|
15
26
|
/**
|
|
@@ -19,13 +30,28 @@ export interface LayerOptions {
|
|
|
19
30
|
*/
|
|
20
31
|
parent?: LayerHandle | null;
|
|
21
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The layer the calling component renders inside, as a getter read when a layer registers.
|
|
35
|
+
* Call during component initialisation.
|
|
36
|
+
*/
|
|
37
|
+
export declare function useParentLayer(): () => LayerHandle | null;
|
|
38
|
+
/**
|
|
39
|
+
* Makes `resolve()` the parent layer of every layer registered below the calling component, for
|
|
40
|
+
* an owner that registers its own layer later, in a child created on open (a closed Popover
|
|
41
|
+
* registers none). Call during component initialisation.
|
|
42
|
+
*/
|
|
43
|
+
export declare function provideLayer(resolve: () => LayerHandle | null): void;
|
|
22
44
|
export declare class LayerHandle {
|
|
23
45
|
#private;
|
|
24
46
|
readonly kind: LayerKind;
|
|
25
47
|
readonly options: LayerOptions;
|
|
26
|
-
readonly parent: LayerHandle | null;
|
|
27
48
|
/** Global sequence assigned on every open; later opens sit above earlier ones. */
|
|
28
49
|
openOrder: number;
|
|
50
|
+
/**
|
|
51
|
+
* When the layer last opened, on the `Event.timeStamp` clock. A press that began earlier
|
|
52
|
+
* belongs to whatever opened it and never dismisses it.
|
|
53
|
+
*/
|
|
54
|
+
openedAt: number;
|
|
29
55
|
/** DOM nodes that count as "inside" this layer (panel, trigger…). */
|
|
30
56
|
readonly nodes: SvelteSet<Node>;
|
|
31
57
|
/** Index in the open stack (bottom = 0), -1 when closed. */
|
|
@@ -38,6 +64,8 @@ export declare class LayerHandle {
|
|
|
38
64
|
kindDepth: number;
|
|
39
65
|
zIndex: number;
|
|
40
66
|
constructor(stack: LayerStack, options: LayerOptions);
|
|
67
|
+
/** The layer this one renders inside, or `null`. */
|
|
68
|
+
get parent(): LayerHandle | null;
|
|
41
69
|
get isOpen(): boolean;
|
|
42
70
|
get isModal(): boolean;
|
|
43
71
|
get state(): unknown;
|
|
@@ -54,7 +82,7 @@ export declare class LayerStack {
|
|
|
54
82
|
constructor();
|
|
55
83
|
/**
|
|
56
84
|
* Registers a layer for the lifetime of the calling component. Call during component
|
|
57
|
-
* initialisation (it installs
|
|
85
|
+
* initialisation (it installs `$effect`s).
|
|
58
86
|
*/
|
|
59
87
|
register(options: LayerOptions): LayerHandle;
|
|
60
88
|
remove(handle: LayerHandle): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// One registry for every floating surface (dialogs, popovers, menus, tooltips, windows,
|
|
2
2
|
// lightboxes). It decides which layer is on top, hands out z-indexes in open order, and
|
|
3
|
-
// dispatches Escape / outside-pointer
|
|
3
|
+
// dispatches Escape / outside-pointer / platform close requests to the right layer only — the
|
|
4
4
|
// "dismissable layer" that Radix, Bits and Ark build every overlay on.
|
|
5
5
|
import { on } from 'svelte/events';
|
|
6
6
|
import { getContext, hasContext, setContext, untrack } from 'svelte';
|
|
@@ -8,12 +8,59 @@ import { SvelteSet } from 'svelte/reactivity';
|
|
|
8
8
|
import { Registry } from './registry.svelte.js';
|
|
9
9
|
import { LAYER_Z_BASE, LAYER_Z_STEP } from '../components/Theme/theme.layers.js';
|
|
10
10
|
const LAYER_CONTEXT = Symbol('entasis:layer');
|
|
11
|
+
/**
|
|
12
|
+
* The layer the calling component renders inside, as a getter read when a layer registers.
|
|
13
|
+
* Call during component initialisation.
|
|
14
|
+
*/
|
|
15
|
+
export function useParentLayer() {
|
|
16
|
+
const context = hasContext(LAYER_CONTEXT) ? getContext(LAYER_CONTEXT) : null;
|
|
17
|
+
return typeof context === 'function' ? context : () => context;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Makes `resolve()` the parent layer of every layer registered below the calling component, for
|
|
21
|
+
* an owner that registers its own layer later, in a child created on open (a closed Popover
|
|
22
|
+
* registers none). Call during component initialisation.
|
|
23
|
+
*/
|
|
24
|
+
export function provideLayer(resolve) {
|
|
25
|
+
setContext(LAYER_CONTEXT, resolve);
|
|
26
|
+
}
|
|
27
|
+
/** Movement in px after which a touch on the page is a scroll, not a tap. */
|
|
28
|
+
const TAP_SLOP = 10;
|
|
29
|
+
/**
|
|
30
|
+
* The current time on the clock events are stamped with (`Event.timeStamp`), so it compares with
|
|
31
|
+
* the time a press began.
|
|
32
|
+
*/
|
|
33
|
+
const eventClockNow = () => new Event('entasis:now').timeStamp;
|
|
34
|
+
/**
|
|
35
|
+
* The platform close request (`CloseWatcher`) is used on Android only, where it is the Back
|
|
36
|
+
* gesture. On desktop it would turn an Escape that an inner control stopped (without preventing)
|
|
37
|
+
* into a second, unwanted close; Escape keeps its own keydown path there.
|
|
38
|
+
*/
|
|
39
|
+
const closeWatcherConstructor = () => {
|
|
40
|
+
if (typeof window === 'undefined')
|
|
41
|
+
return null;
|
|
42
|
+
const constructor = window.CloseWatcher;
|
|
43
|
+
if (!constructor)
|
|
44
|
+
return null;
|
|
45
|
+
const navigatorData = navigator;
|
|
46
|
+
const android = navigatorData.userAgentData?.platform === 'Android' || /android/i.test(navigator.userAgent);
|
|
47
|
+
return android ? constructor : null;
|
|
48
|
+
};
|
|
11
49
|
export class LayerHandle {
|
|
12
50
|
kind;
|
|
13
51
|
options;
|
|
14
|
-
|
|
52
|
+
/**
|
|
53
|
+
* The parent from context, read on each access: a layer built while its owner was closed (a
|
|
54
|
+
* mobile-sheet Dialog inside a closed Popover) reaches the owner's layer once it opens.
|
|
55
|
+
*/
|
|
56
|
+
#resolveParent;
|
|
15
57
|
/** Global sequence assigned on every open; later opens sit above earlier ones. */
|
|
16
58
|
openOrder = $state(0);
|
|
59
|
+
/**
|
|
60
|
+
* When the layer last opened, on the `Event.timeStamp` clock. A press that began earlier
|
|
61
|
+
* belongs to whatever opened it and never dismisses it.
|
|
62
|
+
*/
|
|
63
|
+
openedAt = 0;
|
|
17
64
|
/** DOM nodes that count as "inside" this layer (panel, trigger…). */
|
|
18
65
|
nodes = new SvelteSet();
|
|
19
66
|
#stack;
|
|
@@ -30,12 +77,8 @@ export class LayerHandle {
|
|
|
30
77
|
this.#stack = stack;
|
|
31
78
|
this.kind = options.kind;
|
|
32
79
|
this.options = options;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
? options.parent
|
|
36
|
-
: hasContext(LAYER_CONTEXT)
|
|
37
|
-
? getContext(LAYER_CONTEXT)
|
|
38
|
-
: null;
|
|
80
|
+
const explicit = options.parent;
|
|
81
|
+
this.#resolveParent = explicit !== undefined ? () => explicit : useParentLayer();
|
|
39
82
|
this.stackIndex = $derived(stack.open.indexOf(this));
|
|
40
83
|
this.isTop = $derived(this.stackIndex >= 0 && this.stackIndex === stack.open.length - 1);
|
|
41
84
|
this.isTopOfKind = $derived(this.isOpen && stack.ofKind(this.kind).at(-1) === this);
|
|
@@ -46,6 +89,11 @@ export class LayerHandle {
|
|
|
46
89
|
});
|
|
47
90
|
this.zIndex = $derived(LAYER_Z_BASE[this.kind] + this.openOrder * LAYER_Z_STEP);
|
|
48
91
|
}
|
|
92
|
+
/** The layer this one renders inside, or `null`. */
|
|
93
|
+
get parent() {
|
|
94
|
+
const parent = this.#resolveParent();
|
|
95
|
+
return parent === this ? null : parent;
|
|
96
|
+
}
|
|
49
97
|
get isOpen() {
|
|
50
98
|
return this.options.isOpen();
|
|
51
99
|
}
|
|
@@ -73,29 +121,68 @@ export class LayerStack {
|
|
|
73
121
|
// ignored Escape).
|
|
74
122
|
#layers = new Registry();
|
|
75
123
|
#seq = 0;
|
|
124
|
+
/** A touch press outside non-modal layers, judged when the finger lifts. */
|
|
125
|
+
#pendingTap = null;
|
|
126
|
+
/** An Escape keydown whose dismissal was cancelled, until its task ends. */
|
|
127
|
+
#cancelledEscape = null;
|
|
76
128
|
/** Open layers sorted bottom → top. */
|
|
77
129
|
open = $derived(this.#layers.items.filter((layer) => layer.isOpen).sort((a, b) => a.openOrder - b.openOrder));
|
|
78
130
|
topModal = $derived([...this.open].reverse().find((layer) => layer.isModal));
|
|
79
131
|
ofKind(kind) {
|
|
80
132
|
return this.open.filter((layer) => layer.kind === kind);
|
|
81
133
|
}
|
|
134
|
+
/** The documents whose listeners are attached now, each with the function that removes them. */
|
|
135
|
+
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- imperative listener bookkeeping, written from the effect that syncs it
|
|
136
|
+
#listening = new Map();
|
|
82
137
|
constructor() {
|
|
83
138
|
// Listeners exist only while something is open. Escape goes to the top layer alone;
|
|
84
|
-
// a pointer press dismisses every non-hit layer above the first layer it lands in.
|
|
139
|
+
// a pointer press dismisses every non-hit layer above the first layer it lands in. They
|
|
140
|
+
// sit on the page's document and on the owner document of every open layer's nodes, so a
|
|
141
|
+
// popup rendered into an iframe (or a portal container in another document) hears its
|
|
142
|
+
// own Escape and outside presses. Documents are added and dropped as layers come and go;
|
|
143
|
+
// a pending touch tap survives that, and only ends when nothing is open.
|
|
85
144
|
$effect(() => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
145
|
+
const documents = [];
|
|
146
|
+
if (this.open.length > 0) {
|
|
147
|
+
documents.push(document);
|
|
148
|
+
for (const layer of this.open) {
|
|
149
|
+
for (const node of layer.nodes) {
|
|
150
|
+
const owner = node.ownerDocument;
|
|
151
|
+
if (owner && !documents.includes(owner))
|
|
152
|
+
documents.push(owner);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
untrack(() => this.#syncDocuments(documents));
|
|
157
|
+
});
|
|
158
|
+
$effect(() => () => untrack(() => this.#syncDocuments([])));
|
|
159
|
+
}
|
|
160
|
+
#syncDocuments(documents) {
|
|
161
|
+
for (const [owner, off] of this.#listening) {
|
|
162
|
+
if (documents.includes(owner))
|
|
163
|
+
continue;
|
|
164
|
+
off();
|
|
165
|
+
this.#listening.delete(owner);
|
|
166
|
+
}
|
|
167
|
+
for (const owner of documents) {
|
|
168
|
+
if (this.#listening.has(owner))
|
|
169
|
+
continue;
|
|
170
|
+
const view = owner.defaultView;
|
|
171
|
+
if (!view)
|
|
172
|
+
continue;
|
|
173
|
+
const offKey = on(view, 'keydown', this.#onKeyDown);
|
|
174
|
+
const offPointer = on(owner, 'pointerdown', this.#onPointerDown, { capture: true });
|
|
175
|
+
this.#listening.set(owner, () => {
|
|
91
176
|
offKey();
|
|
92
177
|
offPointer();
|
|
93
|
-
};
|
|
94
|
-
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (this.#listening.size === 0)
|
|
181
|
+
this.#pendingTap?.();
|
|
95
182
|
}
|
|
96
183
|
/**
|
|
97
184
|
* Registers a layer for the lifetime of the calling component. Call during component
|
|
98
|
-
* initialisation (it installs
|
|
185
|
+
* initialisation (it installs `$effect`s).
|
|
99
186
|
*/
|
|
100
187
|
register(options) {
|
|
101
188
|
const handle = new LayerHandle(this, options);
|
|
@@ -105,23 +192,79 @@ export class LayerStack {
|
|
|
105
192
|
if (options.isOpen()) {
|
|
106
193
|
untrack(() => {
|
|
107
194
|
handle.openOrder = ++this.#seq;
|
|
195
|
+
handle.openedAt = eventClockNow();
|
|
108
196
|
});
|
|
109
197
|
}
|
|
110
198
|
});
|
|
199
|
+
this.#watchCloseRequests(handle);
|
|
111
200
|
$effect(() => () => this.remove(handle));
|
|
112
201
|
return handle;
|
|
113
202
|
}
|
|
114
203
|
remove(handle) {
|
|
115
204
|
this.#layers.delete(handle);
|
|
116
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* One `CloseWatcher` per open modal layer that Escape could dismiss, created in open order, so
|
|
208
|
+
* the Android Back gesture closes the top layer instead of leaving the page. A watcher the
|
|
209
|
+
* browser closed while its layer stays open (a refused request it could not keep) is replaced.
|
|
210
|
+
*/
|
|
211
|
+
#watchCloseRequests(handle) {
|
|
212
|
+
let generation = $state(0);
|
|
213
|
+
$effect(() => {
|
|
214
|
+
void generation;
|
|
215
|
+
if (!handle.isOpen || !handle.isModal || !handle.options.dismissOnEscape?.())
|
|
216
|
+
return;
|
|
217
|
+
const CloseWatcher = untrack(closeWatcherConstructor);
|
|
218
|
+
if (!CloseWatcher)
|
|
219
|
+
return;
|
|
220
|
+
const watcher = new CloseWatcher();
|
|
221
|
+
const offCancel = on(watcher, 'cancel', this.#onCloseRequest);
|
|
222
|
+
const offClose = on(watcher, 'close', () => {
|
|
223
|
+
if (handle.isOpen)
|
|
224
|
+
generation += 1;
|
|
225
|
+
});
|
|
226
|
+
return () => {
|
|
227
|
+
offCancel();
|
|
228
|
+
offClose();
|
|
229
|
+
watcher.destroy();
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/** The same rule as Escape: the top layer alone, and only when Escape may dismiss it. */
|
|
234
|
+
#onCloseRequest = (event) => {
|
|
235
|
+
// Chromium turns an Escape nobody prevented into a close request after dispatch: that
|
|
236
|
+
// Escape's dismissal was already refused, so it must not be asked twice.
|
|
237
|
+
const refused = this.#cancelledEscape !== null;
|
|
238
|
+
const top = this.open.at(-1);
|
|
239
|
+
const applied = !refused &&
|
|
240
|
+
!!top?.options.dismissOnEscape?.() &&
|
|
241
|
+
top.options.onDismiss?.({
|
|
242
|
+
reason: 'close-watcher',
|
|
243
|
+
event,
|
|
244
|
+
// The Back gesture is user input, though the event it fires carries no modality.
|
|
245
|
+
interaction: 'touch',
|
|
246
|
+
cancelable: event.cancelable
|
|
247
|
+
}) !== false;
|
|
248
|
+
// Keeps the watcher alive for the next request when nothing closed.
|
|
249
|
+
if (!applied && event.cancelable)
|
|
250
|
+
event.preventDefault();
|
|
251
|
+
};
|
|
117
252
|
#onKeyDown = (event) => {
|
|
118
253
|
if (event.key !== 'Escape' || event.defaultPrevented)
|
|
119
254
|
return;
|
|
120
255
|
const top = this.open.at(-1);
|
|
121
256
|
if (!top?.options.dismissOnEscape?.())
|
|
122
257
|
return;
|
|
258
|
+
if (top.options.onDismiss?.({ reason: 'escape-key', event }) === false) {
|
|
259
|
+
// Cancelled: the keydown stays untouched for whatever handles Escape next.
|
|
260
|
+
this.#cancelledEscape = event;
|
|
261
|
+
setTimeout(() => {
|
|
262
|
+
if (this.#cancelledEscape === event)
|
|
263
|
+
this.#cancelledEscape = null;
|
|
264
|
+
});
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
123
267
|
event.preventDefault();
|
|
124
|
-
top.options.onDismiss?.('escape');
|
|
125
268
|
};
|
|
126
269
|
#onPointerDown = (event) => {
|
|
127
270
|
const path = event.composedPath();
|
|
@@ -136,13 +279,63 @@ export class LayerStack {
|
|
|
136
279
|
protectedLayers.push(current);
|
|
137
280
|
}
|
|
138
281
|
}
|
|
282
|
+
const now = [];
|
|
283
|
+
const onTap = [];
|
|
139
284
|
for (let index = open.length - 1; index >= 0; index -= 1) {
|
|
140
285
|
const layer = open[index];
|
|
141
|
-
|
|
142
|
-
|
|
286
|
+
// A press that began before the layer opened is the one that opened it.
|
|
287
|
+
if (!protectedLayers.includes(layer) &&
|
|
288
|
+
layer.openedAt <= event.timeStamp &&
|
|
289
|
+
layer.options.dismissOnOutside?.()) {
|
|
290
|
+
// A finger on the page may be starting a scroll: a non-modal layer (the page still
|
|
291
|
+
// scrolls under it) waits to see a tap. Nothing scrolls under a modal layer.
|
|
292
|
+
(event.pointerType === 'touch' && !layer.isModal ? onTap : now).push(layer);
|
|
143
293
|
}
|
|
144
294
|
if (layer.isModal)
|
|
145
|
-
|
|
295
|
+
break; // nothing below a modal is reachable, hit or not
|
|
146
296
|
}
|
|
297
|
+
for (const layer of now)
|
|
298
|
+
layer.options.onDismiss?.({ reason: 'outside-press', event });
|
|
299
|
+
if (onTap.length > 0)
|
|
300
|
+
this.#awaitTap(event, onTap);
|
|
147
301
|
};
|
|
302
|
+
/**
|
|
303
|
+
* Dismisses `layers` when the touch that began with `down` ends as a tap: it lifts without
|
|
304
|
+
* moving past the slop and without the browser taking it over for scrolling (`pointercancel`).
|
|
305
|
+
*/
|
|
306
|
+
#awaitTap(down, layers) {
|
|
307
|
+
this.#pendingTap?.();
|
|
308
|
+
// Capture phase, like the press itself: a control that stops propagation cannot hide it.
|
|
309
|
+
// On the document the press landed in, which is not the page's inside an iframe.
|
|
310
|
+
const capture = { capture: true };
|
|
311
|
+
const owner = down.currentTarget ?? document;
|
|
312
|
+
const offs = [
|
|
313
|
+
on(owner, 'pointermove', (event) => {
|
|
314
|
+
if (event.pointerId !== down.pointerId)
|
|
315
|
+
return;
|
|
316
|
+
const distance = Math.hypot(event.clientX - down.clientX, event.clientY - down.clientY);
|
|
317
|
+
if (distance > TAP_SLOP)
|
|
318
|
+
stop();
|
|
319
|
+
}, capture),
|
|
320
|
+
on(owner, 'pointercancel', (event) => {
|
|
321
|
+
if (event.pointerId === down.pointerId)
|
|
322
|
+
stop();
|
|
323
|
+
}, capture),
|
|
324
|
+
on(owner, 'pointerup', (event) => {
|
|
325
|
+
if (event.pointerId !== down.pointerId)
|
|
326
|
+
return;
|
|
327
|
+
stop();
|
|
328
|
+
for (const layer of layers) {
|
|
329
|
+
if (layer.isOpen)
|
|
330
|
+
layer.options.onDismiss?.({ reason: 'outside-press', event });
|
|
331
|
+
}
|
|
332
|
+
}, capture)
|
|
333
|
+
];
|
|
334
|
+
const stop = () => {
|
|
335
|
+
offs.splice(0).forEach((off) => off());
|
|
336
|
+
if (this.#pendingTap === stop)
|
|
337
|
+
this.#pendingTap = null;
|
|
338
|
+
};
|
|
339
|
+
this.#pendingTap = stop;
|
|
340
|
+
}
|
|
148
341
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locale-aware text matching for filterable lists (Combobox, TagsInput, Command, PhoneInput,
|
|
3
|
+
* menus). Comparisons go through `Intl.Collator` with `usage: 'search'` and, by default,
|
|
4
|
+
* `sensitivity: 'base'`, so `eclair` finds `Éclair` and case never matters, while each language
|
|
5
|
+
* keeps its own rules (in Turkish, `i` matches `İ` but not `I`).
|
|
6
|
+
*/
|
|
7
|
+
export type ListFilterOptions = Omit<Intl.CollatorOptions, 'usage'> & {
|
|
8
|
+
/** Locale of the compared text. Components pass the active I18n locale; defaults to the runtime's. */
|
|
9
|
+
locale?: Intl.LocalesArgument;
|
|
10
|
+
};
|
|
11
|
+
/** How an item's text has to relate to the query. */
|
|
12
|
+
export type ListFilterMatch = 'contains' | 'startsWith';
|
|
13
|
+
export type ListFilterQueryOptions<T> = {
|
|
14
|
+
/**
|
|
15
|
+
* The text of an item: one string, or several (label, keywords…) of which any may match.
|
|
16
|
+
* Defaults to `String(item)`.
|
|
17
|
+
*/
|
|
18
|
+
text?: (item: T) => string | readonly (string | null | undefined)[];
|
|
19
|
+
/** `contains` (default), `startsWith`, or a predicate built on this filter. */
|
|
20
|
+
match?: ListFilterMatch | ((text: string, query: string) => boolean);
|
|
21
|
+
/**
|
|
22
|
+
* Stop after this many results. Matching stops as soon as the limit is reached, so the rest
|
|
23
|
+
* of a long list is never compared. For grouped lists, pass what is left of the limit to each
|
|
24
|
+
* group.
|
|
25
|
+
*/
|
|
26
|
+
limit?: number;
|
|
27
|
+
};
|
|
28
|
+
export type ListFilter = {
|
|
29
|
+
/** The locale the collator resolved to. */
|
|
30
|
+
readonly locale: string;
|
|
31
|
+
/** Whether `query` appears anywhere in `text`. An empty query matches everything. */
|
|
32
|
+
contains: (text: string, query: string) => boolean;
|
|
33
|
+
/** Whether `text` starts with `query`. An empty query matches everything. */
|
|
34
|
+
startsWith: (text: string, query: string) => boolean;
|
|
35
|
+
/** Whether `text` and `query` are the same text under this filter's sensitivity. */
|
|
36
|
+
equals: (text: string, query: string) => boolean;
|
|
37
|
+
/** The items whose text matches `query`, in order, up to `limit`. */
|
|
38
|
+
filter: <T>(items: Iterable<T>, query: string, options?: ListFilterQueryOptions<T>) => T[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* A cached filter for `options`. Building an `Intl.Collator` is expensive, so filters are shared
|
|
42
|
+
* per locale and collator options.
|
|
43
|
+
*/
|
|
44
|
+
export declare const createListFilter: (options?: ListFilterOptions) => ListFilter;
|