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
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import FieldActionButton from '../Field/FieldActionButton.svelte';
|
|
8
8
|
import { createFieldState } from '../Field/field.state.svelte.js';
|
|
9
9
|
import { calendarBlankIcon } from '../../Icons/calendarBlank.js';
|
|
10
|
-
import type {
|
|
10
|
+
import type { PopoverApi } from '../../Popover/popover.api.js';
|
|
11
11
|
import type { DateInputProps } from './dateInput.props.js';
|
|
12
12
|
import { useDateInputTheme } from './dateInput.theme.js';
|
|
13
13
|
import { useI18n } from '../../../i18n/context.svelte.js';
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
required = false,
|
|
32
32
|
theme,
|
|
33
33
|
disabled,
|
|
34
|
+
readOnly,
|
|
35
|
+
messages,
|
|
34
36
|
name,
|
|
35
37
|
onValidate,
|
|
36
38
|
onValueChange,
|
|
@@ -75,6 +77,12 @@
|
|
|
75
77
|
set disabled(v: boolean | undefined) {
|
|
76
78
|
disabled = v;
|
|
77
79
|
},
|
|
80
|
+
get readOnly() {
|
|
81
|
+
return readOnly;
|
|
82
|
+
},
|
|
83
|
+
get messages() {
|
|
84
|
+
return messages;
|
|
85
|
+
},
|
|
78
86
|
get required() {
|
|
79
87
|
return required;
|
|
80
88
|
},
|
|
@@ -242,7 +250,7 @@
|
|
|
242
250
|
onValueChange={handleCalendarChange}
|
|
243
251
|
class={classes.popover({ class: theme?.popover?.base })}
|
|
244
252
|
>
|
|
245
|
-
{#snippet trigger(popover:
|
|
253
|
+
{#snippet trigger(popover: PopoverApi)}
|
|
246
254
|
<Field
|
|
247
255
|
{field}
|
|
248
256
|
size={rest.size}
|
|
@@ -258,7 +266,7 @@
|
|
|
258
266
|
}
|
|
259
267
|
}}
|
|
260
268
|
{...rest}
|
|
261
|
-
{
|
|
269
|
+
anchor={popover.reference}
|
|
262
270
|
>
|
|
263
271
|
<input
|
|
264
272
|
data-1p-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const dateInputDescription = "\n# DateInput\n\nMasked native text entry composed with Field and DateSelector. The bindable value is a native `Date | null`.\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n import { DateInput } from './index.ts';\n</script>\n```\n\n## Usage\n\n```svelte\n<script lang=\"ts\">\n let value = $state<Date | null>(null);\n</script>\n\n<DateInput label=\"Start date\" bind:value />\n```\n\n## Date formatting\n\nUse `format` with `dd`, `mm`, `yy`, and `yyyy` segments. Supported values include `dd/mm/yyyy`, `mm/dd/yyyy`, `mm/yyyy`, and `yyyy/mm/dd`. The `separator` prop replaces the slash in the rendered mask.\n\n## Selector options\n\n- `presets`: date shortcuts shaped as `{ label, value }`.\n- `disabledDates`: individual dates or inclusive date ranges.\n- `minDate` / `maxDate`: calendar selection bounds.\n- `calendarView`: `'single' | 'double'`.\n- `mobileSheet`: renders the DateSelector as a bottom sheet below 768px.\n- `closeOnSelect`: closes after choosing a date; defaults to `false`.\n- `onSelect`: the pick event -- fires only when a date is chosen from the selector or its\n presets; `onValueChange` is the value state change and reports both typed and picked dates.\n\n```svelte\n<DateInput\n label=\"Delivery date\"\n bind:value\n minDate={new Date()}\n presets={[\n { label: 'Tomorrow', value: new Date(2026, 6, 16) },\n { label: 'Next week', value: new Date(2026, 6, 22) }\n ]}\n/>\n```\n\nThe selector never opens on focus, so tabbing through the field does not pop it. Open it with ArrowDown while the input has focus, or from the full-height calendar button (which carries `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`). It stays open after selection unless `closeOnSelect` is enabled. Calendar days support arrow, Home/End, and PageUp/PageDown navigation.\n\n## State contract\n\n- **value**: current bindable editable value.\n- **defaultValue**: initial value used only when `value` is omitted.\n- **onValueChange**: called with the new value when the component changes it.\n\n";
|
|
1
|
+
export declare const dateInputDescription = "\n# DateInput\n\nMasked native text entry composed with Field and DateSelector. The bindable value is a native `Date | null`.\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n import { DateInput } from './index.ts';\n</script>\n```\n\n## Usage\n\n```svelte\n<script lang=\"ts\">\n let value = $state<Date | null>(null);\n</script>\n\n<DateInput label=\"Start date\" bind:value />\n```\n\n## Date formatting\n\nUse `format` with `dd`, `mm`, `yy`, and `yyyy` segments. Supported values include `dd/mm/yyyy`, `mm/dd/yyyy`, `mm/yyyy`, and `yyyy/mm/dd`. The `separator` prop replaces the slash in the rendered mask.\n\n## Selector options\n\n- `presets`: date shortcuts shaped as `{ label, value }`.\n- `disabledDates`: individual dates or inclusive date ranges.\n- `minDate` / `maxDate`: calendar selection bounds.\n- `calendarView`: `'single' | 'double'`.\n- `mobileSheet`: renders the DateSelector as a bottom sheet below 768px.\n- `closeOnSelect`: closes after choosing a date; defaults to `false`.\n- `onSelect`: the pick event -- fires only when a date is chosen from the selector or its\n presets; `onValueChange` is the value state change and reports both typed and picked dates.\n\n```svelte\n<DateInput\n label=\"Delivery date\"\n bind:value\n minDate={new Date()}\n presets={[\n { label: 'Tomorrow', value: new Date(2026, 6, 16) },\n { label: 'Next week', value: new Date(2026, 6, 22) }\n ]}\n/>\n```\n\nThe selector never opens on focus, so tabbing through the field does not pop it. Open it with ArrowDown while the input has focus, or from the full-height calendar button (which carries `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`). It stays open after selection unless `closeOnSelect` is enabled. Calendar days support arrow, Home/End, and PageUp/PageDown navigation.\n\n## Disabled and read-only\n\n- **disabled**: boolean - Disable the input and the calendar button; a disabled field leaves Form values and posts nothing.\n- **readOnly**: boolean - The input stays focusable and is announced as read-only; typing and selector picks are refused, and the value still validates and submits. A read-only Form, FormGroup or fieldset Field makes it read-only too.\n\n## State contract\n\n- **value**: current bindable editable value.\n- **defaultValue**: initial value used only when `value` is omitted.\n- **onValueChange**: called with the new value when the component changes it.\n\n";
|
|
@@ -50,6 +50,11 @@ Use \`format\` with \`dd\`, \`mm\`, \`yy\`, and \`yyyy\` segments. Supported val
|
|
|
50
50
|
|
|
51
51
|
The selector never opens on focus, so tabbing through the field does not pop it. Open it with ArrowDown while the input has focus, or from the full-height calendar button (which carries \`aria-haspopup="dialog"\`, \`aria-expanded\`, and \`aria-controls\`). It stays open after selection unless \`closeOnSelect\` is enabled. Calendar days support arrow, Home/End, and PageUp/PageDown navigation.
|
|
52
52
|
|
|
53
|
+
## Disabled and read-only
|
|
54
|
+
|
|
55
|
+
- **disabled**: boolean - Disable the input and the calendar button; a disabled field leaves Form values and posts nothing.
|
|
56
|
+
- **readOnly**: boolean - The input stays focusable and is announced as read-only; typing and selector picks are refused, and the value still validates and submits. A read-only Form, FormGroup or fieldset Field makes it read-only too.
|
|
57
|
+
|
|
53
58
|
## State contract
|
|
54
59
|
|
|
55
60
|
- **value**: current bindable editable value.
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
maxDate,
|
|
40
40
|
disabledDates = [],
|
|
41
41
|
disabled = false,
|
|
42
|
+
readOnly = false,
|
|
42
43
|
calendarLabel,
|
|
43
44
|
i18n,
|
|
44
45
|
id,
|
|
@@ -130,7 +131,7 @@
|
|
|
130
131
|
}
|
|
131
132
|
|
|
132
133
|
function commitValue(nextValue: DateSelectorValue<Mode>, isSelectionComplete = true) {
|
|
133
|
-
if (disabled) return;
|
|
134
|
+
if (disabled || readOnly) return;
|
|
134
135
|
const normalizedValue = normalizeValue(nextValue);
|
|
135
136
|
if (!isValueSelected(normalizedValue)) {
|
|
136
137
|
valueState.value = normalizedValue;
|
|
@@ -188,6 +189,7 @@
|
|
|
188
189
|
{id}
|
|
189
190
|
open={openState.value}
|
|
190
191
|
onOpenChange={setOpen}
|
|
192
|
+
label={calendarLabel ?? t.chooseDates}
|
|
191
193
|
{position}
|
|
192
194
|
{offset}
|
|
193
195
|
{mobileSheet}
|
|
@@ -203,7 +205,7 @@
|
|
|
203
205
|
variant={isValueSelected(preset.value) ? 'soft' : 'ghost'}
|
|
204
206
|
size="small"
|
|
205
207
|
fullWidth
|
|
206
|
-
{disabled}
|
|
208
|
+
disabled={disabled || readOnly}
|
|
207
209
|
class={classes.preset()}
|
|
208
210
|
onclick={() => commitValue(preset.value)}
|
|
209
211
|
>
|
|
@@ -224,6 +226,7 @@
|
|
|
224
226
|
{maxDate}
|
|
225
227
|
{disabledDates}
|
|
226
228
|
{disabled}
|
|
229
|
+
{readOnly}
|
|
227
230
|
label={calendarLabel ?? t.chooseDates}
|
|
228
231
|
theme={mergedCalendarTheme}
|
|
229
232
|
onValueChange={handleCalendarChange}
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
mode = 'date' as Mode,
|
|
25
25
|
required = false,
|
|
26
26
|
disabled,
|
|
27
|
+
readOnly,
|
|
28
|
+
messages,
|
|
27
29
|
name,
|
|
28
30
|
onValidate,
|
|
29
31
|
onValueChange,
|
|
@@ -89,6 +91,12 @@
|
|
|
89
91
|
set disabled(v: boolean | undefined) {
|
|
90
92
|
disabled = v;
|
|
91
93
|
},
|
|
94
|
+
get readOnly() {
|
|
95
|
+
return readOnly;
|
|
96
|
+
},
|
|
97
|
+
get messages() {
|
|
98
|
+
return messages;
|
|
99
|
+
},
|
|
92
100
|
get required() {
|
|
93
101
|
return required;
|
|
94
102
|
},
|
|
@@ -152,6 +160,7 @@
|
|
|
152
160
|
{calendarLabel}
|
|
153
161
|
id={selectorId}
|
|
154
162
|
disabled={field.disabled}
|
|
163
|
+
readOnly={field.readOnly}
|
|
155
164
|
theme={theme?.selector}
|
|
156
165
|
{calendarTheme}
|
|
157
166
|
/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const dateSelectorDescription = "\n# DateSelector\n\nPopover calendar composition for selecting one date, a range, or multiple dates. It uses Entasis's Popover, CalendarPrimitive, Button, and transitionSize attachment.\n`DateSelector` is the raw popover primitive; `DateSelectorInput` wraps it in the standard field\nchrome (label, description, errors, form registration) and extends InputProps \u2014 field type 'date'\nfor `mode=\"date\"`, 'calendar-range' for `mode=\"range\"` (`mode=\"multiple\"` has no field type and\nstays primitive-only).\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n import { DateSelector, DateSelectorInput } from './index.ts';\n</script>\n```\n\n## Basic usage\n\n```svelte\n<script lang=\"ts\">\n let value = $state<Date | null>(null);\n</script>\n\n<!-- Field variant: label/description/errors like every other form input -->\n<DateSelectorInput\n\tlabel=\"Due date\"\n\tdescription=\"We'll remind you the day before\"\n\tbind:value\n/>\n\n<!-- Raw popover primitive -->\n<DateSelector bind:value />\n```\n\n## DateSelectorInput (field variant)\n\nAccepts every field prop from InputProps \u2014 `label`, `description`, `name`, `required`, `errors`,\n`onValidate`, `helper`, snippets, \u2026 \u2014 plus the selector props (`mode`, `presets`, `trigger`,\n`closeOnSelect`, `position`, `minDate`/`maxDate`, \u2026). `theme` is split: `theme.selector` for the\npopover parts, `theme.field` for the field wrapper.\n\n## Selection modes\n\n- `mode=\"date\"` binds `Date | null`.\n- `mode=\"range\"` binds `[Date | null, Date | null] | null`.\n- `mode=\"multiple\"` binds `Date[]`.\n\nThe selector stays open after selection by default. Set `closeOnSelect` to close after a date, a complete range, or a multiple-date change.\n\n## Presets\n\n```svelte\n<DateSelector\n bind:value\n presets={[\n { label: 'Today', value: new Date() },\n { label: 'Tomorrow', value: new Date(2026, 6, 16) }\n ]}\n/>\n```\n\nEach preset value must match the active mode. Presets follow the same `closeOnSelect` policy as calendar selection.\n\n## Custom trigger\n\nThe `trigger` prop follows Popover's trigger contract. A trigger snippet receives `
|
|
1
|
+
export declare const dateSelectorDescription = "\n# DateSelector\n\nPopover calendar composition for selecting one date, a range, or multiple dates. It uses Entasis's Popover, CalendarPrimitive, Button, and transitionSize attachment.\n`DateSelector` is the raw popover primitive; `DateSelectorInput` wraps it in the standard field\nchrome (label, description, errors, form registration) and extends InputProps \u2014 field type 'date'\nfor `mode=\"date\"`, 'calendar-range' for `mode=\"range\"` (`mode=\"multiple\"` has no field type and\nstays primitive-only).\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n import { DateSelector, DateSelectorInput } from './index.ts';\n</script>\n```\n\n## Basic usage\n\n```svelte\n<script lang=\"ts\">\n let value = $state<Date | null>(null);\n</script>\n\n<!-- Field variant: label/description/errors like every other form input -->\n<DateSelectorInput\n\tlabel=\"Due date\"\n\tdescription=\"We'll remind you the day before\"\n\tbind:value\n/>\n\n<!-- Raw popover primitive -->\n<DateSelector bind:value />\n```\n\n## DateSelectorInput (field variant)\n\nAccepts every field prop from InputProps \u2014 `label`, `description`, `name`, `required`, `errors`,\n`onValidate`, `helper`, snippets, \u2026 \u2014 plus the selector props (`mode`, `presets`, `trigger`,\n`closeOnSelect`, `position`, `minDate`/`maxDate`, \u2026). `theme` is split: `theme.selector` for the\npopover parts, `theme.field` for the field wrapper.\n\n## Selection modes\n\n- `mode=\"date\"` binds `Date | null`.\n- `mode=\"range\"` binds `[Date | null, Date | null] | null`.\n- `mode=\"multiple\"` binds `Date[]`.\n\nThe selector stays open after selection by default. Set `closeOnSelect` to close after a date, a complete range, or a multiple-date change.\n\n## Presets\n\n```svelte\n<DateSelector\n bind:value\n presets={[\n { label: 'Today', value: new Date() },\n { label: 'Tomorrow', value: new Date(2026, 6, 16) }\n ]}\n/>\n```\n\nEach preset value must match the active mode. Presets follow the same `closeOnSelect` policy as calendar selection.\n\n## Custom trigger\n\nThe `trigger` prop follows Popover's trigger contract. A trigger snippet receives `PopoverApi` (from `entasis/popover`); attach `popover.reference` to the trigger element and call `popover.toggle()`.\n\n## Calendar configuration\n\nUse `view`, `weekStartsOnMonday`, `weekdayLength`, `locale`, `minDate`, `maxDate`, and `disabledDates` to configure the embedded calendar. Set `readOnly` to let the popup open while refusing date and preset choices. Set `mobileSheet` to render the selector as a bottom sheet below 768px.\n\nThe content container animates intrinsic height changes. Month navigation uses a direction-aware slide and respects reduced-motion preferences.\n\n## State contract\n\n- **value**: current bindable editable value.\n- **defaultValue**: initial value used only when `value` is omitted.\n- **onValueChange**: called with the new value when the component changes it.\n- **open**: bindable popover visibility.\n- **defaultOpen**: initializes an uncontrolled selector once.\n- **onOpenChange**: receives the new boolean once for each opening or closing interaction.\n\nSelecting the current date or preset does not emit another value callback. With closeOnSelect,\nthat selection can still close the popover and emit one onOpenChange callback.\n\n";
|
|
@@ -64,11 +64,11 @@ Each preset value must match the active mode. Presets follow the same \`closeOnS
|
|
|
64
64
|
|
|
65
65
|
## Custom trigger
|
|
66
66
|
|
|
67
|
-
The \`trigger\` prop follows Popover's trigger contract. A trigger snippet receives \`
|
|
67
|
+
The \`trigger\` prop follows Popover's trigger contract. A trigger snippet receives \`PopoverApi\` (from \`entasis/popover\`); attach \`popover.reference\` to the trigger element and call \`popover.toggle()\`.
|
|
68
68
|
|
|
69
69
|
## Calendar configuration
|
|
70
70
|
|
|
71
|
-
Use \`view\`, \`weekStartsOnMonday\`, \`weekdayLength\`, \`locale\`, \`minDate\`, \`maxDate\`, and \`disabledDates\` to configure the embedded calendar. Set \`mobileSheet\` to render the selector as a bottom sheet below 768px.
|
|
71
|
+
Use \`view\`, \`weekStartsOnMonday\`, \`weekdayLength\`, \`locale\`, \`minDate\`, \`maxDate\`, and \`disabledDates\` to configure the embedded calendar. Set \`readOnly\` to let the popup open while refusing date and preset choices. Set \`mobileSheet\` to render the selector as a bottom sheet below 768px.
|
|
72
72
|
|
|
73
73
|
The content container animates intrinsic height changes. Month navigation uses a direction-aware slide and respects reduced-motion preferences.
|
|
74
74
|
|
|
@@ -55,6 +55,8 @@ export type DateSelectorProps<Mode extends DateSelectorMode = 'date'> = {
|
|
|
55
55
|
disabledDates?: (Date | [Date, Date])[];
|
|
56
56
|
/** Disables calendar and default-trigger interaction. */
|
|
57
57
|
disabled?: boolean;
|
|
58
|
+
/** The calendar opens and browses, but choosing a date or preset is refused. */
|
|
59
|
+
readOnly?: boolean;
|
|
58
60
|
/** Accessible label for the calendar. */
|
|
59
61
|
calendarLabel?: string;
|
|
60
62
|
/** Stable id for the selector popover. */
|
|
@@ -1,7 +1,131 @@
|
|
|
1
|
-
<script lang="ts"
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Attachment } from 'svelte/attachments';
|
|
3
|
+
import { on } from 'svelte/events';
|
|
4
|
+
// Roles that take aria-required / aria-readonly (ARIA 1.2, plus slider from 1.3, which axe
|
|
5
|
+
// accepts). Native inputs keep their own `required` and `readonly` attributes instead.
|
|
6
|
+
const ARIA_REQUIRED_ROLES = new Set([
|
|
7
|
+
'checkbox',
|
|
8
|
+
'combobox',
|
|
9
|
+
'gridcell',
|
|
10
|
+
'listbox',
|
|
11
|
+
'radiogroup',
|
|
12
|
+
'searchbox',
|
|
13
|
+
'slider',
|
|
14
|
+
'spinbutton',
|
|
15
|
+
'switch',
|
|
16
|
+
'textbox',
|
|
17
|
+
'tree',
|
|
18
|
+
'treegrid'
|
|
19
|
+
]);
|
|
20
|
+
const ARIA_READONLY_ROLES = new Set([
|
|
21
|
+
'checkbox',
|
|
22
|
+
'combobox',
|
|
23
|
+
'grid',
|
|
24
|
+
'gridcell',
|
|
25
|
+
'listbox',
|
|
26
|
+
'radiogroup',
|
|
27
|
+
'searchbox',
|
|
28
|
+
'slider',
|
|
29
|
+
'spinbutton',
|
|
30
|
+
'switch',
|
|
31
|
+
'textbox',
|
|
32
|
+
'treegrid'
|
|
33
|
+
]);
|
|
34
|
+
// Input types whose native `readonly` attribute the browser honours.
|
|
35
|
+
const TEXT_ENTRY_INPUT_TYPES = new Set([
|
|
36
|
+
'date',
|
|
37
|
+
'datetime-local',
|
|
38
|
+
'email',
|
|
39
|
+
'month',
|
|
40
|
+
'number',
|
|
41
|
+
'password',
|
|
42
|
+
'search',
|
|
43
|
+
'tel',
|
|
44
|
+
'text',
|
|
45
|
+
'time',
|
|
46
|
+
'url',
|
|
47
|
+
'week'
|
|
48
|
+
]);
|
|
49
|
+
// Presses on these keep their own behaviour instead of focusing the field's control.
|
|
50
|
+
const INTERACTIVE =
|
|
51
|
+
'a[href], button, input, select, textarea, label, summary, [contenteditable]:not([contenteditable="false"]), [tabindex], [role="button"], [role="link"], [role="checkbox"], [role="switch"], [role="radio"], [role="slider"], [role="option"], [role="tab"], [role="menuitem"]';
|
|
52
|
+
|
|
53
|
+
const splitIds = (value: string | null) => value?.split(/\s+/).filter(Boolean) ?? [];
|
|
54
|
+
|
|
55
|
+
const acceptsNativeReadOnly = (element: Element) =>
|
|
56
|
+
element instanceof HTMLTextAreaElement ||
|
|
57
|
+
(element instanceof HTMLInputElement && TEXT_ENTRY_INPUT_TYPES.has(element.type));
|
|
58
|
+
|
|
59
|
+
const isTextEntry = (element: Element) =>
|
|
60
|
+
acceptsNativeReadOnly(element) || (element as HTMLElement).isContentEditable;
|
|
61
|
+
|
|
62
|
+
const roleOf = (element: Element): string | undefined => {
|
|
63
|
+
const explicit = splitIds(element.getAttribute('role'))[0];
|
|
64
|
+
if (explicit) return explicit;
|
|
65
|
+
if (element instanceof HTMLTextAreaElement) return 'textbox';
|
|
66
|
+
if (element instanceof HTMLSelectElement) {
|
|
67
|
+
return element.multiple || element.size > 1 ? 'listbox' : 'combobox';
|
|
68
|
+
}
|
|
69
|
+
if (element instanceof HTMLInputElement) {
|
|
70
|
+
if (element.type === 'checkbox') return 'checkbox';
|
|
71
|
+
if (element.type === 'range') return 'slider';
|
|
72
|
+
if (element.type === 'number') return 'spinbutton';
|
|
73
|
+
if (TEXT_ENTRY_INPUT_TYPES.has(element.type)) return 'textbox';
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const isNativeFormControl = (element: Element) =>
|
|
79
|
+
element instanceof HTMLInputElement ||
|
|
80
|
+
element instanceof HTMLSelectElement ||
|
|
81
|
+
element instanceof HTMLTextAreaElement;
|
|
82
|
+
|
|
83
|
+
const restoreAttribute = (element: Element, name: string, value: string | null) => {
|
|
84
|
+
if (value === null) element.removeAttribute(name);
|
|
85
|
+
else element.setAttribute(name, value);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Sets an attribute and returns its undo. A control's own template can write the same
|
|
89
|
+
// attribute (aria-readonly on Rating, aria-required on Switch); once that template removes it,
|
|
90
|
+
// the undo must not bring back a value this effect captured earlier, so it only restores
|
|
91
|
+
// while the attribute still holds what was set here.
|
|
92
|
+
const claimAttribute = (element: Element, name: string, value: string) => {
|
|
93
|
+
const initial = element.getAttribute(name);
|
|
94
|
+
element.setAttribute(name, value);
|
|
95
|
+
return () => {
|
|
96
|
+
if (element.getAttribute(name) === value) restoreAttribute(element, name, initial);
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Attachment for a label that is not a native <label> (labelFor={false}): clicking it focuses
|
|
102
|
+
* the field's control without activating it, and leaves a text selection alone. A control that
|
|
103
|
+
* renders its own label outside Field's label slot (Switch's inline label) attaches it too.
|
|
104
|
+
*/
|
|
105
|
+
export const focusFromLabel =
|
|
106
|
+
(field: { focusControl: () => boolean }): Attachment<HTMLElement> =>
|
|
107
|
+
(labelNode) =>
|
|
108
|
+
on(labelNode, 'click', (event) => {
|
|
109
|
+
if (event.defaultPrevented) return;
|
|
110
|
+
const target = event.target instanceof Element ? event.target : null;
|
|
111
|
+
const interactive = target?.closest(INTERACTIVE);
|
|
112
|
+
if (interactive && interactive !== labelNode && labelNode.contains(interactive)) return;
|
|
113
|
+
const selection = labelNode.ownerDocument.getSelection();
|
|
114
|
+
if (selection && !selection.isCollapsed && labelNode.contains(selection.anchorNode)) return;
|
|
115
|
+
field.focusControl();
|
|
116
|
+
});
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<script lang="ts" generics="Type extends FieldType">
|
|
120
|
+
import { untrack } from 'svelte';
|
|
2
121
|
import Slot from '../../Slot/Slot.svelte';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
122
|
+
import { presence } from '../../../utils/stateAttributes.js';
|
|
123
|
+
import type { FieldType, FieldProps } from './field.js';
|
|
124
|
+
import { easingBezierStrings } from '../../../transitions/easingFunctions.js';
|
|
125
|
+
import { prefersReducedMotion } from '../../../utils/motion.svelte.js';
|
|
126
|
+
import { provideFieldGroup } from './field.state.svelte.js';
|
|
127
|
+
import { useFieldMotion, useFieldTheme } from './field.theme.js';
|
|
128
|
+
import { fieldNativeForm, setFieldFormAttribute } from './fieldNativeForm.svelte.js';
|
|
5
129
|
|
|
6
130
|
let {
|
|
7
131
|
class: className = '',
|
|
@@ -22,12 +146,55 @@
|
|
|
22
146
|
theme,
|
|
23
147
|
field,
|
|
24
148
|
as = 'div',
|
|
149
|
+
anchor,
|
|
25
150
|
labelFor = field.id,
|
|
26
151
|
fieldAttrs,
|
|
152
|
+
form,
|
|
153
|
+
validationMode,
|
|
154
|
+
validationDebounce,
|
|
27
155
|
...attachments
|
|
28
156
|
}: FieldProps<Type> = $props();
|
|
29
157
|
|
|
158
|
+
// Controls forward their `validationMode` and `validationDebounce` props here.
|
|
159
|
+
$effect.pre(() => {
|
|
160
|
+
field.configureValidation({ mode: validationMode, debounce: validationDebounce });
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// Hidden inputs rendered inside the field read the `form` prop through its controller.
|
|
164
|
+
untrack(() => setFieldFormAttribute(field, () => form));
|
|
165
|
+
|
|
166
|
+
// A fieldset Field is a group, like a FormGroup: a field rendered inside it shares its
|
|
167
|
+
// disabled and read-only state.
|
|
168
|
+
if (untrack(() => as) === 'fieldset') {
|
|
169
|
+
provideFieldGroup({
|
|
170
|
+
get disabled() {
|
|
171
|
+
return field.disabled;
|
|
172
|
+
},
|
|
173
|
+
get readOnly() {
|
|
174
|
+
return field.readOnly;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
30
179
|
const classes = $derived(useFieldTheme(theme));
|
|
180
|
+
// Errors fade and grow in. The duration and easing come from the Theme's motion tokens, which
|
|
181
|
+
// are zero under reduced motion, so nothing animates then. Leaving is instant: a cleared error
|
|
182
|
+
// must not linger in the accessibility tree.
|
|
183
|
+
const resolveMotion = useFieldMotion();
|
|
184
|
+
const errorMotion = $derived(resolveMotion(theme?.motion));
|
|
185
|
+
const errorEnter: Attachment<HTMLElement> = (node) => {
|
|
186
|
+
const { duration, easing } = errorMotion.in;
|
|
187
|
+
if (!duration || prefersReducedMotion() || typeof node.animate !== 'function') return;
|
|
188
|
+
const height = node.offsetHeight;
|
|
189
|
+
const animation = node.animate(
|
|
190
|
+
[
|
|
191
|
+
{ opacity: 0, height: '0px', overflow: 'hidden' },
|
|
192
|
+
{ opacity: 1, height: `${height}px`, overflow: 'hidden' }
|
|
193
|
+
],
|
|
194
|
+
{ duration, easing: easingBezierStrings[easing ?? 'cubicOut'], fill: 'none' }
|
|
195
|
+
);
|
|
196
|
+
return () => animation.cancel();
|
|
197
|
+
};
|
|
31
198
|
const resolvedLabelPosition = $derived(
|
|
32
199
|
label || actions || header ? labelPosition : ('top' as const)
|
|
33
200
|
);
|
|
@@ -36,42 +203,66 @@
|
|
|
36
203
|
const control = field.node ?? field.rootNode;
|
|
37
204
|
if (!control) return;
|
|
38
205
|
|
|
39
|
-
const initialInvalid = control.getAttribute('aria-invalid');
|
|
40
206
|
const initialDescribedBy = control.getAttribute('aria-describedby');
|
|
41
207
|
const initialLabelledBy = control.getAttribute('aria-labelledby');
|
|
42
|
-
const
|
|
43
|
-
control.getAttribute('aria-describedby')?.split(/\s+/).filter(Boolean) ?? [];
|
|
44
|
-
let describedByIds = currentDescribedByIds.filter((id) => id !== field.errorId);
|
|
45
|
-
if (field.hasError) {
|
|
46
|
-
control.setAttribute('aria-invalid', 'true');
|
|
47
|
-
describedByIds = [...describedByIds, field.errorId];
|
|
48
|
-
}
|
|
208
|
+
const undo: (() => void)[] = [];
|
|
49
209
|
|
|
210
|
+
if (field.hasError) undo.push(claimAttribute(control, 'aria-invalid', 'true'));
|
|
211
|
+
|
|
212
|
+
// The app's own ids come first, then the description, the helper and the errors.
|
|
213
|
+
const fieldDescriptionIds = new Set([field.descriptionId, field.helperId, field.errorId]);
|
|
214
|
+
const describedByIds = [
|
|
215
|
+
...splitIds(initialDescribedBy).filter((id) => !fieldDescriptionIds.has(id)),
|
|
216
|
+
...field.describedBy
|
|
217
|
+
];
|
|
50
218
|
if (describedByIds.length === 0) control.removeAttribute('aria-describedby');
|
|
51
219
|
else control.setAttribute('aria-describedby', describedByIds.join(' '));
|
|
52
220
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
labelledByIds = [...labelledByIds, field.labelId];
|
|
61
|
-
}
|
|
62
|
-
|
|
221
|
+
// A control that declared its own labelledby (Switch's inline label) keeps it, and the label
|
|
222
|
+
// id is listed once even then; only the id this effect adds is subject to removal. An
|
|
223
|
+
// aria-label on the control names it instead of the field label.
|
|
224
|
+
const labelledByIds = splitIds(initialLabelledBy);
|
|
225
|
+
const namedByControl = Boolean(control.getAttribute('aria-label')?.trim());
|
|
226
|
+
const linksLabel = label && labelFor === false && as !== 'fieldset' && !namedByControl;
|
|
227
|
+
if (linksLabel && !labelledByIds.includes(field.labelId)) labelledByIds.push(field.labelId);
|
|
63
228
|
if (labelledByIds.length === 0) control.removeAttribute('aria-labelledby');
|
|
64
229
|
else control.setAttribute('aria-labelledby', labelledByIds.join(' '));
|
|
65
230
|
|
|
231
|
+
// Native controls carry `required` themselves; a role-based control announces it.
|
|
232
|
+
const role = roleOf(control);
|
|
233
|
+
if (field.required && !isNativeFormControl(control) && role && ARIA_REQUIRED_ROLES.has(role)) {
|
|
234
|
+
undo.push(claimAttribute(control, 'aria-required', 'true'));
|
|
235
|
+
}
|
|
236
|
+
if (field.readOnly) {
|
|
237
|
+
if (acceptsNativeReadOnly(control)) undo.push(claimAttribute(control, 'readonly', ''));
|
|
238
|
+
else if (role && ARIA_READONLY_ROLES.has(role)) {
|
|
239
|
+
undo.push(claimAttribute(control, 'aria-readonly', 'true'));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
66
243
|
return () => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
else control.setAttribute('aria-describedby', initialDescribedBy);
|
|
71
|
-
if (initialLabelledBy === null) control.removeAttribute('aria-labelledby');
|
|
72
|
-
else control.setAttribute('aria-labelledby', initialLabelledBy);
|
|
244
|
+
for (const restore of undo) restore();
|
|
245
|
+
restoreAttribute(control, 'aria-describedby', initialDescribedBy);
|
|
246
|
+
restoreAttribute(control, 'aria-labelledby', initialLabelledBy);
|
|
73
247
|
};
|
|
74
248
|
});
|
|
249
|
+
|
|
250
|
+
const labelClick: Attachment<HTMLElement> = (labelNode) => focusFromLabel(field)(labelNode);
|
|
251
|
+
|
|
252
|
+
// A press on the container around a text control (its padding, an icon, a chip) focuses the
|
|
253
|
+
// control instead of blurring it; buttons and other controls inside keep their own behaviour.
|
|
254
|
+
const focusFromContainer: Attachment<HTMLElement> = (container) =>
|
|
255
|
+
on(container, 'mousedown', (event) => {
|
|
256
|
+
if (event.button !== 0 || event.defaultPrevented || field.disabled) return;
|
|
257
|
+
const control = field.node;
|
|
258
|
+
const target = event.target;
|
|
259
|
+
if (!control || !(target instanceof Element) || !isTextEntry(control)) return;
|
|
260
|
+
if (control.contains(target)) return;
|
|
261
|
+
const interactive = target.closest(INTERACTIVE);
|
|
262
|
+
if (interactive && container.contains(interactive)) return;
|
|
263
|
+
event.preventDefault();
|
|
264
|
+
if (control.ownerDocument.activeElement !== control) control.focus();
|
|
265
|
+
});
|
|
75
266
|
</script>
|
|
76
267
|
|
|
77
268
|
<!-- Suffixed id: the bare field.id belongs to the control element, so <label for={field.id}>
|
|
@@ -79,6 +270,15 @@
|
|
|
79
270
|
<svelte:element
|
|
80
271
|
this={as}
|
|
81
272
|
data-label-position={resolvedLabelPosition}
|
|
273
|
+
data-invalid={presence(field.hasError)}
|
|
274
|
+
data-disabled={presence(field.disabled)}
|
|
275
|
+
data-readonly={presence(field.readOnly)}
|
|
276
|
+
data-focused={presence(field.focused)}
|
|
277
|
+
data-filled={presence(field.filled)}
|
|
278
|
+
data-dirty={presence(field.dirty)}
|
|
279
|
+
data-touched={presence(field.touched)}
|
|
280
|
+
data-validating={presence(field.validating)}
|
|
281
|
+
{...as === 'fieldset' ? { disabled: field.disabled || undefined } : {}}
|
|
82
282
|
class={classes.root({
|
|
83
283
|
className,
|
|
84
284
|
density,
|
|
@@ -89,6 +289,7 @@
|
|
|
89
289
|
{...fieldAttrs}
|
|
90
290
|
id="{field.id}-field"
|
|
91
291
|
{...attachments}
|
|
292
|
+
{@attach fieldNativeForm(field)}
|
|
92
293
|
>
|
|
93
294
|
{#if label || actions || header}
|
|
94
295
|
{#if as === 'fieldset'}
|
|
@@ -105,7 +306,12 @@
|
|
|
105
306
|
>
|
|
106
307
|
<Slot
|
|
107
308
|
as="span"
|
|
108
|
-
class={classes.label({
|
|
309
|
+
class={classes.label({
|
|
310
|
+
size,
|
|
311
|
+
hasError: field.hasError,
|
|
312
|
+
required: field.required,
|
|
313
|
+
disabled: field.disabled
|
|
314
|
+
})}
|
|
109
315
|
render={label}
|
|
110
316
|
/>
|
|
111
317
|
<Slot class={classes.actions({ density })} render={actions} />
|
|
@@ -123,8 +329,14 @@
|
|
|
123
329
|
<Slot
|
|
124
330
|
as={labelFor === false ? 'span' : 'label'}
|
|
125
331
|
attrs={labelFor === false ? { id: field.labelId } : { id: field.labelId, for: labelFor }}
|
|
126
|
-
class={classes.label({
|
|
332
|
+
class={classes.label({
|
|
333
|
+
size,
|
|
334
|
+
hasError: field.hasError,
|
|
335
|
+
required: field.required,
|
|
336
|
+
disabled: field.disabled
|
|
337
|
+
})}
|
|
127
338
|
render={label}
|
|
339
|
+
{@attach labelFor === false ? labelClick : undefined}
|
|
128
340
|
/>
|
|
129
341
|
<Slot class={classes.actions({ density })} render={actions} />
|
|
130
342
|
</Slot>
|
|
@@ -136,6 +348,8 @@
|
|
|
136
348
|
hasError: field.hasError,
|
|
137
349
|
labelPosition: resolvedLabelPosition
|
|
138
350
|
})}
|
|
351
|
+
{@attach focusFromContainer}
|
|
352
|
+
{@attach anchor}
|
|
139
353
|
>
|
|
140
354
|
<Slot render={prefix} class={classes.prefix({ density })} />
|
|
141
355
|
{@render children()}
|
|
@@ -143,15 +357,27 @@
|
|
|
143
357
|
</div>
|
|
144
358
|
{#if description || helper || footer}
|
|
145
359
|
<Slot render={footer} class={classes.footer({ density, labelPosition: resolvedLabelPosition })}>
|
|
146
|
-
<Slot
|
|
147
|
-
|
|
360
|
+
<Slot
|
|
361
|
+
class={classes.description({ size, disabled: field.disabled })}
|
|
362
|
+
render={description}
|
|
363
|
+
attrs={{ id: field.descriptionId }}
|
|
364
|
+
{@attach field.descriptionPart}
|
|
365
|
+
/>
|
|
366
|
+
<Slot
|
|
367
|
+
class={classes.helper({ size, disabled: field.disabled })}
|
|
368
|
+
render={helper}
|
|
369
|
+
attrs={{ id: field.helperId }}
|
|
370
|
+
{@attach field.helperPart}
|
|
371
|
+
/>
|
|
148
372
|
</Slot>
|
|
149
373
|
{/if}
|
|
150
374
|
{#if field.hasError}
|
|
375
|
+
<!-- One live-region model: an alert, announced when the errors appear. -->
|
|
151
376
|
<Slot
|
|
152
377
|
render={errorsContainer}
|
|
153
378
|
class={classes.errorsContainer({ size, labelPosition: resolvedLabelPosition })}
|
|
154
|
-
attrs={{ id: field.errorId, role: 'alert'
|
|
379
|
+
attrs={{ id: field.errorId, role: 'alert' }}
|
|
380
|
+
{@attach errorEnter}
|
|
155
381
|
>
|
|
156
382
|
{#each field.errorMessages as err, index (index)}
|
|
157
383
|
<Slot render={error} class={classes.error({ size })}>
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
/**
|
|
3
|
+
* Attachment for a label that is not a native <label> (labelFor={false}): clicking it focuses
|
|
4
|
+
* the field's control without activating it, and leaves a text selection alone. A control that
|
|
5
|
+
* renders its own label outside Field's label slot (Switch's inline label) attaches it too.
|
|
6
|
+
*/
|
|
7
|
+
export declare const focusFromLabel: (field: {
|
|
8
|
+
focusControl: () => boolean;
|
|
9
|
+
}) => Attachment<HTMLElement>;
|
|
10
|
+
import type { FieldType, FieldProps } from './field.js';
|
|
11
|
+
declare function $$render<Type extends FieldType>(): {
|
|
3
12
|
props: FieldProps<Type>;
|
|
4
13
|
exports: {};
|
|
5
14
|
bindings: "";
|
|
6
15
|
slots: {};
|
|
7
16
|
events: {};
|
|
8
17
|
};
|
|
9
|
-
declare class __sveltets_Render<Type extends
|
|
18
|
+
declare class __sveltets_Render<Type extends FieldType> {
|
|
10
19
|
props(): ReturnType<typeof $$render<Type>>['props'];
|
|
11
20
|
events(): ReturnType<typeof $$render<Type>>['events'];
|
|
12
21
|
slots(): ReturnType<typeof $$render<Type>>['slots'];
|
|
@@ -14,12 +23,12 @@ declare class __sveltets_Render<Type extends InputType> {
|
|
|
14
23
|
exports(): {};
|
|
15
24
|
}
|
|
16
25
|
interface $$IsomorphicComponent {
|
|
17
|
-
new <Type extends
|
|
26
|
+
new <Type extends FieldType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Type>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Type>['props']>, ReturnType<__sveltets_Render<Type>['events']>, ReturnType<__sveltets_Render<Type>['slots']>> & {
|
|
18
27
|
$$bindings?: ReturnType<__sveltets_Render<Type>['bindings']>;
|
|
19
28
|
} & ReturnType<__sveltets_Render<Type>['exports']>;
|
|
20
|
-
<Type extends
|
|
29
|
+
<Type extends FieldType>(internal: unknown, props: ReturnType<__sveltets_Render<Type>['props']> & {}): ReturnType<__sveltets_Render<Type>['exports']>;
|
|
21
30
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
22
31
|
}
|
|
23
32
|
declare const Field: $$IsomorphicComponent;
|
|
24
|
-
type Field<Type extends
|
|
33
|
+
type Field<Type extends FieldType> = InstanceType<typeof Field<Type>>;
|
|
25
34
|
export default Field;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// Renderless provider: every field rendered inside shares the group's disabled and read-only
|
|
3
|
+
// state (combined with any group around it). Form uses it for FormGroup fieldsets.
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
import { provideFieldGroup } from './field.state.svelte.js';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
disabled = false,
|
|
9
|
+
readOnly = false,
|
|
10
|
+
children
|
|
11
|
+
}: {
|
|
12
|
+
/** Disables every field inside the group. */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Makes every field inside the group read-only. */
|
|
15
|
+
readOnly?: boolean;
|
|
16
|
+
children: Snippet;
|
|
17
|
+
} = $props();
|
|
18
|
+
|
|
19
|
+
provideFieldGroup({
|
|
20
|
+
get disabled() {
|
|
21
|
+
return disabled;
|
|
22
|
+
},
|
|
23
|
+
get readOnly() {
|
|
24
|
+
return readOnly;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
{@render children()}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
/** Disables every field inside the group. */
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
/** Makes every field inside the group read-only. */
|
|
6
|
+
readOnly?: boolean;
|
|
7
|
+
children: Snippet;
|
|
8
|
+
};
|
|
9
|
+
declare const FieldGroup: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
10
|
+
type FieldGroup = ReturnType<typeof FieldGroup>;
|
|
11
|
+
export default FieldGroup;
|