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
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared state attributes every component exposes as styling hooks. They are presence
|
|
3
|
+
* attributes: `''` while the state holds and omitted otherwise, so `[data-open]` selectors and
|
|
4
|
+
* Tailwind's `data-open:` variant work without values. `data-side` and `data-align` carry a value.
|
|
5
|
+
*
|
|
6
|
+
* Spread the returned objects on rendered elements (`{...openStateAttributes(open)}`); use
|
|
7
|
+
* `applyStateAttributes` for elements a component manages imperatively. Components keep their
|
|
8
|
+
* existing `data-state` values alongside these for compatibility.
|
|
9
|
+
*/
|
|
10
|
+
import type { Placement } from '@floating-ui/dom';
|
|
11
|
+
/** A presence attribute value: `''` sets the attribute, `undefined` omits it. */
|
|
12
|
+
export type Presence = '' | undefined;
|
|
13
|
+
/** `''` when `on` is truthy, `undefined` otherwise. */
|
|
14
|
+
export declare const presence: (on: unknown) => Presence;
|
|
15
|
+
/** Lifecycle of anything that opens and closes with a transition. */
|
|
16
|
+
export type OpenTransitionStatus = 'closed' | 'entering' | 'open' | 'exiting';
|
|
17
|
+
export type OpenStateAttributes = {
|
|
18
|
+
'data-open': Presence;
|
|
19
|
+
'data-closed': Presence;
|
|
20
|
+
};
|
|
21
|
+
/** `data-open` while open, `data-closed` otherwise (including while the exit transition plays). */
|
|
22
|
+
export declare const openStateAttributes: (open: boolean) => OpenStateAttributes;
|
|
23
|
+
export type TransitionStatusAttributes = {
|
|
24
|
+
'data-entering': Presence;
|
|
25
|
+
'data-exiting': Presence;
|
|
26
|
+
};
|
|
27
|
+
/** `data-entering` while the enter transition plays, `data-exiting` while the exit one plays. */
|
|
28
|
+
export declare const transitionStatusAttributes: (status: OpenTransitionStatus | undefined) => TransitionStatusAttributes;
|
|
29
|
+
/**
|
|
30
|
+
* The side of the anchor a popup sits on. A popup that asked for a logical side reports
|
|
31
|
+
* `inline-start` or `inline-end` while it stays on the inline axis.
|
|
32
|
+
*/
|
|
33
|
+
export type PopupSide = 'top' | 'right' | 'bottom' | 'left' | 'inline-start' | 'inline-end';
|
|
34
|
+
/** A popup's side, or `none` when it is not placed beside its anchor (Select over its trigger). */
|
|
35
|
+
export type PopupPlacementSide = PopupSide | 'none';
|
|
36
|
+
/** How a popup lines up with its anchor along that side. */
|
|
37
|
+
export type PopupAlign = 'start' | 'center' | 'end';
|
|
38
|
+
/** Splits a floating-ui placement (`bottom-start`) into its side and alignment. */
|
|
39
|
+
export declare const parsePlacement: (placement: Placement) => {
|
|
40
|
+
side: PopupSide;
|
|
41
|
+
align: PopupAlign;
|
|
42
|
+
};
|
|
43
|
+
export type PlacementAttributes = {
|
|
44
|
+
'data-side': PopupPlacementSide | undefined;
|
|
45
|
+
'data-align': PopupAlign | undefined;
|
|
46
|
+
'data-anchor-hidden': Presence;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* `data-side` and `data-align` from the resolved placement (not the requested one, which a flip
|
|
50
|
+
* may have changed), and `data-anchor-hidden` while the anchor is scrolled out of view. A popup
|
|
51
|
+
* on side `none` has no alignment.
|
|
52
|
+
*/
|
|
53
|
+
export declare const placementAttributes: (placement: Placement | {
|
|
54
|
+
side: PopupPlacementSide;
|
|
55
|
+
align?: PopupAlign;
|
|
56
|
+
} | undefined, { anchorHidden }?: {
|
|
57
|
+
anchorHidden?: boolean;
|
|
58
|
+
}) => PlacementAttributes;
|
|
59
|
+
export type PopupTriggerAttributes = {
|
|
60
|
+
'data-popup-open': Presence;
|
|
61
|
+
};
|
|
62
|
+
/** `data-popup-open` on a trigger while the popup it controls is open. */
|
|
63
|
+
export declare const popupTriggerAttributes: (open: boolean) => PopupTriggerAttributes;
|
|
64
|
+
export type PopupSideAttributes = {
|
|
65
|
+
'data-popup-side': PopupPlacementSide | undefined;
|
|
66
|
+
};
|
|
67
|
+
/** `data-popup-side` on a trigger: the side its placed popup sits on, omitted while unplaced. */
|
|
68
|
+
export declare const popupSideAttributes: (side: PopupPlacementSide | null | undefined) => PopupSideAttributes;
|
|
69
|
+
export type ItemState = {
|
|
70
|
+
/** The keyboard or pointer highlight is on the item. */
|
|
71
|
+
highlighted?: boolean;
|
|
72
|
+
/** The item cannot be chosen. */
|
|
73
|
+
disabled?: boolean;
|
|
74
|
+
/** The item is chosen (selected, checked or current). */
|
|
75
|
+
selected?: boolean;
|
|
76
|
+
};
|
|
77
|
+
export type ItemStateAttributes = {
|
|
78
|
+
'data-highlighted': Presence;
|
|
79
|
+
'data-disabled': Presence;
|
|
80
|
+
'data-selected': Presence;
|
|
81
|
+
};
|
|
82
|
+
/** `data-highlighted`, `data-disabled` and `data-selected` for an option, menu item or row. */
|
|
83
|
+
export declare const itemStateAttributes: ({ highlighted, disabled, selected }: ItemState) => ItemStateAttributes;
|
|
84
|
+
/**
|
|
85
|
+
* Writes attributes onto an element Svelte doesn't render: a string sets the attribute, `undefined`
|
|
86
|
+
* or `null` removes it.
|
|
87
|
+
*/
|
|
88
|
+
export declare const applyStateAttributes: (element: Element, attributes: Readonly<Record<string, string | null | undefined>>) => void;
|
|
89
|
+
/**
|
|
90
|
+
* What each shared state attribute means. Components build their documented styling-hook maps
|
|
91
|
+
* from these entries so the wording stays the same everywhere.
|
|
92
|
+
*/
|
|
93
|
+
export declare const stateDataAttributes: {
|
|
94
|
+
readonly 'data-open': "Present while open.";
|
|
95
|
+
readonly 'data-closed': "Present while closed, including during the exit transition.";
|
|
96
|
+
readonly 'data-entering': "Present while the enter transition plays.";
|
|
97
|
+
readonly 'data-exiting': "Present while the exit transition plays.";
|
|
98
|
+
readonly 'data-side': "The side of the anchor the popup sits on: top, right, bottom or left; inline-start or inline-end when a logical side was requested; none when the popup is not placed beside its anchor.";
|
|
99
|
+
readonly 'data-align': "The alignment with the anchor: start, center or end.";
|
|
100
|
+
readonly 'data-anchor-hidden': "Present while the anchor is scrolled out of view.";
|
|
101
|
+
readonly 'data-popup-open': "Present on a trigger while its popup is open.";
|
|
102
|
+
readonly 'data-popup-side': "On a trigger, the side its placed popup sits on (the values of data-side).";
|
|
103
|
+
readonly 'data-highlighted': "Present on the item the keyboard or pointer highlights.";
|
|
104
|
+
readonly 'data-disabled': "Present while disabled.";
|
|
105
|
+
readonly 'data-selected': "Present while selected or checked.";
|
|
106
|
+
};
|
|
107
|
+
/** The name of a shared state attribute. */
|
|
108
|
+
export type StateDataAttribute = keyof typeof stateDataAttributes;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** `''` when `on` is truthy, `undefined` otherwise. */
|
|
2
|
+
export const presence = (on) => (on ? '' : undefined);
|
|
3
|
+
/** `data-open` while open, `data-closed` otherwise (including while the exit transition plays). */
|
|
4
|
+
export const openStateAttributes = (open) => ({
|
|
5
|
+
'data-open': presence(open),
|
|
6
|
+
'data-closed': presence(!open)
|
|
7
|
+
});
|
|
8
|
+
/** `data-entering` while the enter transition plays, `data-exiting` while the exit one plays. */
|
|
9
|
+
export const transitionStatusAttributes = (status) => ({
|
|
10
|
+
'data-entering': presence(status === 'entering'),
|
|
11
|
+
'data-exiting': presence(status === 'exiting')
|
|
12
|
+
});
|
|
13
|
+
/** Splits a floating-ui placement (`bottom-start`) into its side and alignment. */
|
|
14
|
+
export const parsePlacement = (placement) => {
|
|
15
|
+
const [side, align] = placement.split('-');
|
|
16
|
+
return { side, align: align ?? 'center' };
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* `data-side` and `data-align` from the resolved placement (not the requested one, which a flip
|
|
20
|
+
* may have changed), and `data-anchor-hidden` while the anchor is scrolled out of view. A popup
|
|
21
|
+
* on side `none` has no alignment.
|
|
22
|
+
*/
|
|
23
|
+
export const placementAttributes = (placement, { anchorHidden = false } = {}) => {
|
|
24
|
+
const resolved = placement === undefined
|
|
25
|
+
? undefined
|
|
26
|
+
: typeof placement === 'string'
|
|
27
|
+
? parsePlacement(placement)
|
|
28
|
+
: { side: placement.side, align: placement.align ?? 'center' };
|
|
29
|
+
return {
|
|
30
|
+
'data-side': resolved?.side,
|
|
31
|
+
'data-align': resolved?.side === 'none' ? undefined : resolved?.align,
|
|
32
|
+
'data-anchor-hidden': presence(anchorHidden)
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/** `data-popup-open` on a trigger while the popup it controls is open. */
|
|
36
|
+
export const popupTriggerAttributes = (open) => ({
|
|
37
|
+
'data-popup-open': presence(open)
|
|
38
|
+
});
|
|
39
|
+
/** `data-popup-side` on a trigger: the side its placed popup sits on, omitted while unplaced. */
|
|
40
|
+
export const popupSideAttributes = (side) => ({
|
|
41
|
+
'data-popup-side': side ?? undefined
|
|
42
|
+
});
|
|
43
|
+
/** `data-highlighted`, `data-disabled` and `data-selected` for an option, menu item or row. */
|
|
44
|
+
export const itemStateAttributes = ({ highlighted, disabled, selected }) => ({
|
|
45
|
+
'data-highlighted': presence(highlighted),
|
|
46
|
+
'data-disabled': presence(disabled),
|
|
47
|
+
'data-selected': presence(selected)
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Writes attributes onto an element Svelte doesn't render: a string sets the attribute, `undefined`
|
|
51
|
+
* or `null` removes it.
|
|
52
|
+
*/
|
|
53
|
+
export const applyStateAttributes = (element, attributes) => {
|
|
54
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
55
|
+
if (value == null)
|
|
56
|
+
element.removeAttribute(name);
|
|
57
|
+
else if (element.getAttribute(name) !== value)
|
|
58
|
+
element.setAttribute(name, value);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* What each shared state attribute means. Components build their documented styling-hook maps
|
|
63
|
+
* from these entries so the wording stays the same everywhere.
|
|
64
|
+
*/
|
|
65
|
+
export const stateDataAttributes = {
|
|
66
|
+
'data-open': 'Present while open.',
|
|
67
|
+
'data-closed': 'Present while closed, including during the exit transition.',
|
|
68
|
+
'data-entering': 'Present while the enter transition plays.',
|
|
69
|
+
'data-exiting': 'Present while the exit transition plays.',
|
|
70
|
+
'data-side': 'The side of the anchor the popup sits on: top, right, bottom or left; inline-start or inline-end when a logical side was requested; none when the popup is not placed beside its anchor.',
|
|
71
|
+
'data-align': 'The alignment with the anchor: start, center or end.',
|
|
72
|
+
'data-anchor-hidden': 'Present while the anchor is scrolled out of view.',
|
|
73
|
+
'data-popup-open': 'Present on a trigger while its popup is open.',
|
|
74
|
+
'data-popup-side': 'On a trigger, the side its placed popup sits on (the values of data-side).',
|
|
75
|
+
'data-highlighted': 'Present on the item the keyboard or pointer highlights.',
|
|
76
|
+
'data-disabled': 'Present while disabled.',
|
|
77
|
+
'data-selected': 'Present while selected or checked.'
|
|
78
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release speed for swipe gestures (drawer dismissal, Sidebar view swipes, Toast flicks).
|
|
3
|
+
*
|
|
4
|
+
* The speed is measured over a time window that ends at the last sample where the pointer was
|
|
5
|
+
* still moving, rather than from the last pair of samples. That keeps it stable whatever the
|
|
6
|
+
* input rate (60 Hz and 120 Hz report the same flick) and survives the effectively stationary
|
|
7
|
+
* move some Android devices emit right before release, which would otherwise read as a stop.
|
|
8
|
+
* A pointer that rests longer than the window before release has no speed left.
|
|
9
|
+
*/
|
|
10
|
+
/** Width of the measuring window, in ms. */
|
|
11
|
+
export declare const SWIPE_VELOCITY_WINDOW_MS = 80;
|
|
12
|
+
export type VelocityTrackerOptions = {
|
|
13
|
+
/** Width of the measuring window, in ms. Default `SWIPE_VELOCITY_WINDOW_MS`. */
|
|
14
|
+
windowMs?: number;
|
|
15
|
+
/** Shortest interval a speed is divided by, in ms. Default 4. */
|
|
16
|
+
minIntervalMs?: number;
|
|
17
|
+
};
|
|
18
|
+
export type VelocityTracker = {
|
|
19
|
+
/** Forgets every sample: call it when a gesture starts. */
|
|
20
|
+
reset(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Records the pointer's position along the gesture axis at `time` (an event's `timeStamp`).
|
|
23
|
+
* Record the release event too: a release that moved still counts.
|
|
24
|
+
*/
|
|
25
|
+
add(position: number, time: number): void;
|
|
26
|
+
/**
|
|
27
|
+
* The speed along the axis in px/ms (signed: positive toward increasing positions) at `time`,
|
|
28
|
+
* usually the release event's `timeStamp`. Defaults to the newest sample's time.
|
|
29
|
+
*/
|
|
30
|
+
velocity(time?: number): number;
|
|
31
|
+
};
|
|
32
|
+
export declare const createVelocityTracker: ({ windowMs, minIntervalMs }?: VelocityTrackerOptions) => VelocityTracker;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release speed for swipe gestures (drawer dismissal, Sidebar view swipes, Toast flicks).
|
|
3
|
+
*
|
|
4
|
+
* The speed is measured over a time window that ends at the last sample where the pointer was
|
|
5
|
+
* still moving, rather than from the last pair of samples. That keeps it stable whatever the
|
|
6
|
+
* input rate (60 Hz and 120 Hz report the same flick) and survives the effectively stationary
|
|
7
|
+
* move some Android devices emit right before release, which would otherwise read as a stop.
|
|
8
|
+
* A pointer that rests longer than the window before release has no speed left.
|
|
9
|
+
*/
|
|
10
|
+
/** Width of the measuring window, in ms. */
|
|
11
|
+
export const SWIPE_VELOCITY_WINDOW_MS = 80;
|
|
12
|
+
/** Shortest interval a speed is divided by, so near-simultaneous samples cannot spike it. */
|
|
13
|
+
const MIN_INTERVAL_MS = 4;
|
|
14
|
+
/** Samples closer than this to the resting position count as stationary. */
|
|
15
|
+
const STATIONARY_PX = 1;
|
|
16
|
+
/** Samples kept: comfortably more than a window's worth at 240 Hz. */
|
|
17
|
+
const MAX_SAMPLES = 64;
|
|
18
|
+
export const createVelocityTracker = ({ windowMs = SWIPE_VELOCITY_WINDOW_MS, minIntervalMs = MIN_INTERVAL_MS } = {}) => {
|
|
19
|
+
let samples = [];
|
|
20
|
+
/** Index of the first sample of the stationary tail: where the pointer came to rest. */
|
|
21
|
+
const restingIndex = () => {
|
|
22
|
+
const newest = samples[samples.length - 1];
|
|
23
|
+
let index = samples.length - 1;
|
|
24
|
+
while (index > 0 && Math.abs(samples[index - 1].position - newest.position) < STATIONARY_PX) {
|
|
25
|
+
index -= 1;
|
|
26
|
+
}
|
|
27
|
+
return index;
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
reset() {
|
|
31
|
+
samples = [];
|
|
32
|
+
},
|
|
33
|
+
add(position, time) {
|
|
34
|
+
if (!Number.isFinite(position) || !Number.isFinite(time))
|
|
35
|
+
return;
|
|
36
|
+
const newest = samples[samples.length - 1];
|
|
37
|
+
if (newest && time < newest.time)
|
|
38
|
+
return;
|
|
39
|
+
samples.push({ position, time });
|
|
40
|
+
if (samples.length > MAX_SAMPLES)
|
|
41
|
+
samples = samples.slice(-MAX_SAMPLES);
|
|
42
|
+
},
|
|
43
|
+
velocity(time) {
|
|
44
|
+
if (samples.length < 2)
|
|
45
|
+
return 0;
|
|
46
|
+
const end = restingIndex();
|
|
47
|
+
const last = samples[end];
|
|
48
|
+
const now = time ?? samples[samples.length - 1].time;
|
|
49
|
+
// Resting for longer than the window is a hold, not a flick.
|
|
50
|
+
if (end === 0 || now - last.time > windowMs)
|
|
51
|
+
return 0;
|
|
52
|
+
let start = end - 1;
|
|
53
|
+
while (start > 0 && last.time - samples[start - 1].time <= windowMs)
|
|
54
|
+
start -= 1;
|
|
55
|
+
const first = samples[start];
|
|
56
|
+
return (last.position - first.position) / Math.max(last.time - first.time, minIntervalMs);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -1,19 +1,82 @@
|
|
|
1
|
+
export type TimerOptions = {
|
|
2
|
+
/** Creates the timer held by `pause()`: it counts nothing until `resume()`. @default false */
|
|
3
|
+
startPaused?: boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Reason, or reasons, that hold the timer from the start, such as `'hover'` or `'window'` when
|
|
6
|
+
* the pointer or an inactive window already pauses its owner. It counts nothing until each one
|
|
7
|
+
* is released.
|
|
8
|
+
*/
|
|
9
|
+
heldBy?: string | Iterable<string>;
|
|
10
|
+
};
|
|
11
|
+
/** The reason `pause()` holds and `resume()` releases. */
|
|
12
|
+
export declare const PAUSE_REASON = "pause";
|
|
13
|
+
/**
|
|
14
|
+
* A countdown driven by requestAnimationFrame, with reactive `elapsed` and `remaining`.
|
|
15
|
+
*
|
|
16
|
+
* Several things can stop it at once (hover, keyboard focus, a swipe, an inactive window): each
|
|
17
|
+
* one calls `hold(reason)` and later `release(reason)`, and the countdown runs only while no
|
|
18
|
+
* reason holds it. `pause()` and `resume()` hold and release the `'pause'` reason.
|
|
19
|
+
*
|
|
20
|
+
* Frames stop while a tab is hidden but `performance.now()` keeps counting, so the owner has to
|
|
21
|
+
* hold the timer while its window is inactive (see `watchWindowActivity`); otherwise the first
|
|
22
|
+
* frame after the user comes back sees the whole hidden interval as elapsed.
|
|
23
|
+
*/
|
|
1
24
|
export declare class Timer {
|
|
2
25
|
private rafId;
|
|
3
26
|
private startTime;
|
|
4
27
|
private pausedTime;
|
|
5
28
|
private callback;
|
|
6
|
-
private
|
|
29
|
+
private holds;
|
|
30
|
+
private revision;
|
|
31
|
+
private touch;
|
|
32
|
+
private stopped;
|
|
33
|
+
private held;
|
|
7
34
|
delay: number;
|
|
8
35
|
remaining: number;
|
|
9
36
|
elapsed: number;
|
|
10
37
|
elapsedInSeconds: number;
|
|
11
38
|
elapsedInPercent: number;
|
|
12
|
-
constructor(callback: () => void, delay: number);
|
|
39
|
+
constructor(callback: () => void, delay: number, { startPaused, heldBy }?: TimerOptions);
|
|
40
|
+
/** Whether any reason holds the countdown. Reactive. */
|
|
41
|
+
get paused(): boolean;
|
|
42
|
+
/** The reasons currently holding the countdown, in the order they were added. Reactive. */
|
|
43
|
+
get heldBy(): readonly string[];
|
|
44
|
+
/** Whether `reason` currently holds the countdown. Reactive. */
|
|
45
|
+
isHeldBy: (reason: string) => boolean;
|
|
13
46
|
start: () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Stops the countdown for `reason`, keeping the time already elapsed. Holding with a reason
|
|
49
|
+
* that already holds it changes nothing.
|
|
50
|
+
*/
|
|
51
|
+
hold: (reason: string) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Drops `reason`. When no other reason holds the timer, the countdown resumes with the time it
|
|
54
|
+
* had left. Releasing a reason that doesn't hold it changes nothing.
|
|
55
|
+
*/
|
|
56
|
+
release: (reason: string) => void;
|
|
57
|
+
/** Holds the countdown with the `'pause'` reason. */
|
|
14
58
|
pause: () => void;
|
|
59
|
+
/** Releases the `'pause'` reason; other reasons keep holding the timer. */
|
|
15
60
|
resume: () => void;
|
|
16
61
|
destroy: () => void;
|
|
62
|
+
/**
|
|
63
|
+
* Restarts the countdown from the full `delay`. A held timer stays held, so a toast updated
|
|
64
|
+
* under the pointer or in a background tab does not start counting down.
|
|
65
|
+
*/
|
|
17
66
|
update: (delay: number) => void;
|
|
67
|
+
private cancelFrame;
|
|
18
68
|
private scheduleFrame;
|
|
19
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Reports when the window becomes inactive (blurred, or its document hidden) and active again:
|
|
72
|
+
* `onChange(true)` on the way in, `onChange(false)` on the way out. A document that is already
|
|
73
|
+
* hidden reports `true` at once; focus is assumed at the start. Returns the cleanup.
|
|
74
|
+
*/
|
|
75
|
+
export declare const watchWindowActivity: (onChange: (inactive: boolean) => void, targetWindow?: Window | undefined) => (() => void);
|
|
76
|
+
/** Reason `holdWhileWindowInactive` holds a timer with. */
|
|
77
|
+
export declare const WINDOW_INACTIVE_REASON = "window";
|
|
78
|
+
/**
|
|
79
|
+
* Holds `timer` with `reason` while the window is blurred or its tab hidden, and releases it when
|
|
80
|
+
* the window is active again. Returns the cleanup, which also releases the reason.
|
|
81
|
+
*/
|
|
82
|
+
export declare const holdWhileWindowInactive: (timer: Pick<Timer, "hold" | "release">, reason?: string) => (() => void);
|
|
@@ -1,69 +1,203 @@
|
|
|
1
|
+
import { untrack } from 'svelte';
|
|
2
|
+
/** The reason `pause()` holds and `resume()` releases. */
|
|
3
|
+
export const PAUSE_REASON = 'pause';
|
|
4
|
+
/**
|
|
5
|
+
* A countdown driven by requestAnimationFrame, with reactive `elapsed` and `remaining`.
|
|
6
|
+
*
|
|
7
|
+
* Several things can stop it at once (hover, keyboard focus, a swipe, an inactive window): each
|
|
8
|
+
* one calls `hold(reason)` and later `release(reason)`, and the countdown runs only while no
|
|
9
|
+
* reason holds it. `pause()` and `resume()` hold and release the `'pause'` reason.
|
|
10
|
+
*
|
|
11
|
+
* Frames stop while a tab is hidden but `performance.now()` keeps counting, so the owner has to
|
|
12
|
+
* hold the timer while its window is inactive (see `watchWindowActivity`); otherwise the first
|
|
13
|
+
* frame after the user comes back sees the whole hidden interval as elapsed.
|
|
14
|
+
*/
|
|
1
15
|
export class Timer {
|
|
2
16
|
rafId = null;
|
|
3
17
|
startTime = 0;
|
|
4
18
|
pausedTime = 0;
|
|
5
19
|
callback;
|
|
6
|
-
|
|
20
|
+
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- read imperatively, so `hold()` in an effect doesn't subscribe it; `held` and `revision` are the reactive mirrors
|
|
21
|
+
holds = new Set();
|
|
22
|
+
// Bumped on every hold and release, so `heldBy` and `isHeldBy` are reactive.
|
|
23
|
+
revision = $state(0);
|
|
24
|
+
// Bumps `revision` without reading it, so a `hold()` inside an effect doesn't subscribe it.
|
|
25
|
+
touch = () => untrack(() => (this.revision += 1));
|
|
26
|
+
// Set once the callback ran or the timer was destroyed; only `update()` restarts it.
|
|
27
|
+
stopped = false;
|
|
28
|
+
held = $state(false);
|
|
7
29
|
delay = $state(0);
|
|
8
30
|
remaining = $state(0);
|
|
9
31
|
elapsed = $state(0);
|
|
10
32
|
elapsedInSeconds = $derived(Math.round(Math.min(this.elapsed / 1000, this.delay / 1000)));
|
|
11
33
|
elapsedInPercent = $derived(Math.round(Math.min((this.elapsed / this.delay) * 100, 100)));
|
|
12
|
-
constructor(callback, delay) {
|
|
34
|
+
constructor(callback, delay, { startPaused = false, heldBy = [] } = {}) {
|
|
13
35
|
this.callback = callback;
|
|
14
36
|
this.delay = delay;
|
|
15
37
|
this.remaining = delay;
|
|
16
|
-
|
|
38
|
+
for (const reason of typeof heldBy === 'string' ? [heldBy] : heldBy)
|
|
39
|
+
this.holds.add(reason);
|
|
40
|
+
if (startPaused)
|
|
41
|
+
this.holds.add(PAUSE_REASON);
|
|
42
|
+
this.held = this.holds.size > 0;
|
|
43
|
+
if (delay > 0 && !this.held) {
|
|
17
44
|
this.start();
|
|
18
45
|
}
|
|
19
46
|
}
|
|
47
|
+
/** Whether any reason holds the countdown. Reactive. */
|
|
48
|
+
get paused() {
|
|
49
|
+
return this.held;
|
|
50
|
+
}
|
|
51
|
+
/** The reasons currently holding the countdown, in the order they were added. Reactive. */
|
|
52
|
+
get heldBy() {
|
|
53
|
+
void this.revision;
|
|
54
|
+
return [...this.holds];
|
|
55
|
+
}
|
|
56
|
+
/** Whether `reason` currently holds the countdown. Reactive. */
|
|
57
|
+
isHeldBy = (reason) => {
|
|
58
|
+
void this.revision;
|
|
59
|
+
return this.holds.has(reason);
|
|
60
|
+
};
|
|
20
61
|
start = () => {
|
|
62
|
+
this.cancelFrame();
|
|
21
63
|
this.startTime = performance.now();
|
|
22
64
|
this.rafId = requestAnimationFrame(this.scheduleFrame);
|
|
23
65
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.
|
|
66
|
+
/**
|
|
67
|
+
* Stops the countdown for `reason`, keeping the time already elapsed. Holding with a reason
|
|
68
|
+
* that already holds it changes nothing.
|
|
69
|
+
*/
|
|
70
|
+
hold = (reason) => {
|
|
71
|
+
if (this.holds.has(reason))
|
|
72
|
+
return;
|
|
73
|
+
this.holds.add(reason);
|
|
74
|
+
this.touch();
|
|
75
|
+
if (this.holds.size > 1)
|
|
76
|
+
return;
|
|
77
|
+
this.cancelFrame();
|
|
30
78
|
this.pausedTime = this.elapsed;
|
|
79
|
+
this.held = true;
|
|
31
80
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Drops `reason`. When no other reason holds the timer, the countdown resumes with the time it
|
|
83
|
+
* had left. Releasing a reason that doesn't hold it changes nothing.
|
|
84
|
+
*/
|
|
85
|
+
release = (reason) => {
|
|
86
|
+
if (!this.holds.delete(reason))
|
|
87
|
+
return;
|
|
88
|
+
this.touch();
|
|
89
|
+
if (this.holds.size > 0)
|
|
90
|
+
return;
|
|
91
|
+
this.held = false;
|
|
92
|
+
if (this.stopped || this.delay <= 0)
|
|
93
|
+
return;
|
|
94
|
+
this.startTime = performance.now() - this.pausedTime;
|
|
95
|
+
this.cancelFrame();
|
|
96
|
+
this.rafId = requestAnimationFrame(this.scheduleFrame);
|
|
38
97
|
};
|
|
98
|
+
/** Holds the countdown with the `'pause'` reason. */
|
|
99
|
+
pause = () => this.hold(PAUSE_REASON);
|
|
100
|
+
/** Releases the `'pause'` reason; other reasons keep holding the timer. */
|
|
101
|
+
resume = () => this.release(PAUSE_REASON);
|
|
39
102
|
destroy = () => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.rafId = null;
|
|
43
|
-
}
|
|
103
|
+
this.cancelFrame();
|
|
104
|
+
this.stopped = true;
|
|
44
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* Restarts the countdown from the full `delay`. A held timer stays held, so a toast updated
|
|
108
|
+
* under the pointer or in a background tab does not start counting down.
|
|
109
|
+
*/
|
|
45
110
|
update = (delay) => {
|
|
46
|
-
this.
|
|
111
|
+
this.cancelFrame();
|
|
112
|
+
this.stopped = false;
|
|
47
113
|
this.delay = delay;
|
|
48
114
|
this.remaining = delay;
|
|
49
115
|
this.elapsed = 0;
|
|
50
116
|
this.pausedTime = 0;
|
|
51
|
-
this.
|
|
52
|
-
if (delay > 0) {
|
|
117
|
+
if (delay > 0 && this.holds.size === 0) {
|
|
53
118
|
this.start();
|
|
54
119
|
}
|
|
55
120
|
};
|
|
121
|
+
cancelFrame = () => {
|
|
122
|
+
if (this.rafId === null)
|
|
123
|
+
return;
|
|
124
|
+
cancelAnimationFrame(this.rafId);
|
|
125
|
+
this.rafId = null;
|
|
126
|
+
};
|
|
56
127
|
scheduleFrame = (timestamp) => {
|
|
57
|
-
|
|
128
|
+
this.rafId = null;
|
|
129
|
+
if (this.holds.size > 0 || this.stopped)
|
|
58
130
|
return;
|
|
59
|
-
|
|
131
|
+
// A frame's timestamp can precede the `performance.now()` read in `start()`.
|
|
132
|
+
this.elapsed = Math.max(0, timestamp - this.startTime);
|
|
60
133
|
this.remaining = Math.max(0, this.delay - this.elapsed);
|
|
61
134
|
if (this.elapsed >= this.delay) {
|
|
135
|
+
this.stopped = true;
|
|
62
136
|
this.callback();
|
|
63
|
-
this.rafId = null;
|
|
64
137
|
}
|
|
65
138
|
else {
|
|
66
139
|
this.rafId = requestAnimationFrame(this.scheduleFrame);
|
|
67
140
|
}
|
|
68
141
|
};
|
|
69
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Reports when the window becomes inactive (blurred, or its document hidden) and active again:
|
|
145
|
+
* `onChange(true)` on the way in, `onChange(false)` on the way out. A document that is already
|
|
146
|
+
* hidden reports `true` at once; focus is assumed at the start. Returns the cleanup.
|
|
147
|
+
*/
|
|
148
|
+
export const watchWindowActivity = (onChange, targetWindow = typeof window === 'undefined' ? undefined : window) => {
|
|
149
|
+
if (!targetWindow)
|
|
150
|
+
return () => { };
|
|
151
|
+
const targetDocument = targetWindow.document;
|
|
152
|
+
let blurred = false;
|
|
153
|
+
let hidden = targetDocument.visibilityState === 'hidden';
|
|
154
|
+
let inactive = hidden;
|
|
155
|
+
const update = () => {
|
|
156
|
+
const next = blurred || hidden;
|
|
157
|
+
if (next === inactive)
|
|
158
|
+
return;
|
|
159
|
+
inactive = next;
|
|
160
|
+
onChange(next);
|
|
161
|
+
};
|
|
162
|
+
// Blur and focus don't bubble, so these only see the window's own events; the target check
|
|
163
|
+
// keeps element focus changes out all the same.
|
|
164
|
+
const onBlur = (event) => {
|
|
165
|
+
if (event.target !== event.currentTarget)
|
|
166
|
+
return;
|
|
167
|
+
blurred = true;
|
|
168
|
+
update();
|
|
169
|
+
};
|
|
170
|
+
const onFocus = (event) => {
|
|
171
|
+
if (event.target !== event.currentTarget)
|
|
172
|
+
return;
|
|
173
|
+
blurred = false;
|
|
174
|
+
update();
|
|
175
|
+
};
|
|
176
|
+
const onVisibilityChange = () => {
|
|
177
|
+
hidden = targetDocument.visibilityState === 'hidden';
|
|
178
|
+
update();
|
|
179
|
+
};
|
|
180
|
+
targetWindow.addEventListener('blur', onBlur);
|
|
181
|
+
targetWindow.addEventListener('focus', onFocus);
|
|
182
|
+
targetDocument.addEventListener('visibilitychange', onVisibilityChange);
|
|
183
|
+
if (inactive)
|
|
184
|
+
onChange(true);
|
|
185
|
+
return () => {
|
|
186
|
+
targetWindow.removeEventListener('blur', onBlur);
|
|
187
|
+
targetWindow.removeEventListener('focus', onFocus);
|
|
188
|
+
targetDocument.removeEventListener('visibilitychange', onVisibilityChange);
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
/** Reason `holdWhileWindowInactive` holds a timer with. */
|
|
192
|
+
export const WINDOW_INACTIVE_REASON = 'window';
|
|
193
|
+
/**
|
|
194
|
+
* Holds `timer` with `reason` while the window is blurred or its tab hidden, and releases it when
|
|
195
|
+
* the window is active again. Returns the cleanup, which also releases the reason.
|
|
196
|
+
*/
|
|
197
|
+
export const holdWhileWindowInactive = (timer, reason = WINDOW_INACTIVE_REASON) => {
|
|
198
|
+
const stop = watchWindowActivity((inactive) => inactive ? timer.hold(reason) : timer.release(reason));
|
|
199
|
+
return () => {
|
|
200
|
+
stop();
|
|
201
|
+
timer.release(reason);
|
|
202
|
+
};
|
|
203
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** Elements that may carry popup ARIA state. */
|
|
2
|
+
export declare const POPUP_CONTROL = "button, a[href], input, select, textarea, summary, [role=\"button\"], [role=\"link\"], [role=\"combobox\"], [role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"], [role=\"tab\"], [role=\"option\"], [role=\"treeitem\"], [role=\"gridcell\"], [role=\"switch\"], [role=\"checkbox\"]";
|
|
3
|
+
/** Elements the browser already focuses and activates from the keyboard. */
|
|
4
|
+
export declare const NATIVE_CONTROL = "button, a[href], input, select, textarea, summary";
|
|
5
|
+
/** A trigger's popup state, in the library's semantic vocabulary. */
|
|
6
|
+
export type PopupTriggerProps = {
|
|
7
|
+
haspopup: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid' | true;
|
|
8
|
+
expanded: boolean;
|
|
9
|
+
controls: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Writes the popup ARIA attributes on a trigger. Call inside an `$effect` so they follow the
|
|
13
|
+
* state. Only real controls carry them: a wrapper `div` or a presentational `span` used as an
|
|
14
|
+
* anchor must not (axe: aria-allowed-attr).
|
|
15
|
+
*/
|
|
16
|
+
export declare function writePopupAria(node: HTMLElement, props: PopupTriggerProps): void;
|
|
17
|
+
export interface TriggerActivationOptions {
|
|
18
|
+
/** Requests the change; called with the click or key event that pressed the trigger. */
|
|
19
|
+
activate: (event: MouseEvent | KeyboardEvent) => void;
|
|
20
|
+
/**
|
|
21
|
+
* A counter the owner bumps on every open-state request. The press stands down when it moved
|
|
22
|
+
* while the event was dispatching: the element's own handler (`onclick={popover.toggle}`)
|
|
23
|
+
* already acted, and acting again would undo it.
|
|
24
|
+
*/
|
|
25
|
+
requests: () => number;
|
|
26
|
+
/** Whether presses act at all (`openOnClick`). Default `true`. */
|
|
27
|
+
enabled?: () => boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Makes `node` a trigger that activates on click, and on Enter and Space when it is not a native
|
|
31
|
+
* control. A non-control element also gets `role="button"` and `tabindex="0"`. Returns cleanup.
|
|
32
|
+
*/
|
|
33
|
+
export declare function triggerActivation(node: HTMLElement, options: TriggerActivationOptions): () => void;
|
|
34
|
+
/**
|
|
35
|
+
* The element focus returns to when a popup opened from `trigger` closes: the trigger when it is
|
|
36
|
+
* focusable, else the focusable element inside it that was pressed or focused (the country button
|
|
37
|
+
* inside a phone field's wrapper), else `null` (the focus scope's own default).
|
|
38
|
+
*/
|
|
39
|
+
export declare function triggerFocusTarget(trigger: HTMLElement, event?: Event): HTMLElement | null;
|
|
40
|
+
/** The element that has focus now, or `null` when nothing does (the body). */
|
|
41
|
+
export declare function focusedElement(document?: Document): HTMLElement | null;
|