entasis 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
- package/dist/attachments/disclosurePanel.svelte.js +277 -0
- package/dist/attachments/portal.d.ts +17 -1
- package/dist/attachments/portal.js +39 -2
- package/dist/attachments/spinnerOverlay.svelte.js +12 -0
- package/dist/attachments/transitionSize.d.ts +6 -0
- package/dist/attachments/transitionSize.js +30 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
- package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
- package/dist/components/AIAskUserQuestion/index.js +2 -0
- package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
- package/dist/components/AIAskUserQuestion/schemas.js +10 -3
- package/dist/components/AIChat/AIChat.svelte +10 -0
- package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
- package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
- package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
- package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
- package/dist/components/AIChat/AIChatSurface.svelte +30 -2
- package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
- package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
- package/dist/components/AIChat/aiChat.mcp.js +31 -15
- package/dist/components/AIChat/aiChat.props.d.ts +36 -10
- package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
- package/dist/components/AIChat/aiChat.theme.js +21 -4
- package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
- package/dist/components/AIChat/index.d.ts +1 -1
- package/dist/components/AIComposer/AIComposer.svelte +102 -5
- package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
- package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
- package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
- package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
- package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
- package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
- package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
- package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
- package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
- package/dist/components/AIComposer/aiComposer.theme.js +37 -5
- package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
- package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
- package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
- package/dist/components/AIContext/AIContext.svelte +7 -3
- package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
- package/dist/components/AIContext/aiContext.mcp.js +1 -1
- package/dist/components/AIContext/aiContext.props.d.ts +4 -1
- package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
- package/dist/components/AIContext/aiContext.theme.js +7 -2
- package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
- package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
- package/dist/components/AIMarker/AIMarker.svelte +2 -0
- package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
- package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
- package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
- package/dist/components/AIMarker/aiMarker.theme.js +2 -2
- package/dist/components/AIMessage/AIMessage.svelte +38 -16
- package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
- package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
- package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
- package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
- package/dist/components/AIMessage/aiMessage.theme.js +91 -32
- package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
- package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
- package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
- package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
- package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
- package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
- package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
- package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
- package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
- package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
- package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
- package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
- package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
- package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
- package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
- package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
- package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
- package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
- package/dist/components/AIThread/AIThread.svelte +378 -95
- package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
- package/dist/components/AIThread/AIThreadItems.svelte +266 -64
- package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
- package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
- package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
- package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
- package/dist/components/AIThread/aiThread.mcp.js +34 -20
- package/dist/components/AIThread/aiThread.props.d.ts +73 -8
- package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
- package/dist/components/AIThread/aiThread.theme.js +108 -9
- package/dist/components/AIThread/index.d.ts +1 -1
- package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
- package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
- package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
- package/dist/components/AIThread/threadRenderItems.js +265 -77
- package/dist/components/AIThread/threadScrollController.d.ts +0 -8
- package/dist/components/AIThread/threadScrollController.js +2 -39
- package/dist/components/AIThread/threadTools.d.ts +11 -0
- package/dist/components/AIThread/threadTools.js +79 -0
- package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
- package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
- package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
- package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
- package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
- package/dist/components/AITool/AITool.svelte +56 -21
- package/dist/components/AITool/AIToolCallList.svelte +79 -29
- package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
- package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
- package/dist/components/AITool/AIToolValueSection.svelte +126 -28
- package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolValueTree.svelte +11 -16
- package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
- package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
- package/dist/components/AITool/aiTool.mcp.js +36 -8
- package/dist/components/AITool/aiTool.props.d.ts +52 -6
- package/dist/components/AITool/aiTool.theme.d.ts +117 -39
- package/dist/components/AITool/aiTool.theme.js +144 -140
- package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
- package/dist/components/AITool/aiToolClock.svelte.js +62 -0
- package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
- package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
- package/dist/components/AITool/index.d.ts +2 -1
- package/dist/components/AITool/index.js +1 -0
- package/dist/components/AITool/toolRendering.d.ts +33 -1
- package/dist/components/AITool/toolRendering.js +179 -15
- package/dist/components/AITool/toolValueTree.d.ts +14 -1
- package/dist/components/AITool/toolValueTree.js +126 -27
- package/dist/components/Accordion/Accordion.svelte +109 -109
- package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
- package/dist/components/Accordion/AccordionPanel.svelte +64 -0
- package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
- package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
- package/dist/components/Accordion/accordion.attributes.js +20 -0
- package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
- package/dist/components/Accordion/accordion.mcp.js +78 -22
- package/dist/components/Accordion/accordion.props.d.ts +54 -10
- package/dist/components/Accordion/accordion.theme.d.ts +3 -0
- package/dist/components/Accordion/accordion.theme.js +4 -0
- package/dist/components/Accordion/index.d.ts +1 -0
- package/dist/components/Accordion/index.js +1 -0
- package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
- package/dist/components/Avatar/Avatar.svelte +60 -10
- package/dist/components/Avatar/AvatarGroup.svelte +9 -0
- package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
- package/dist/components/Avatar/avatar.mcp.js +13 -5
- package/dist/components/Avatar/avatar.props.d.ts +28 -1
- package/dist/components/Avatar/avatar.theme.js +3 -3
- package/dist/components/Avatar/index.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
- package/dist/components/Button/Button.svelte +35 -15
- package/dist/components/Button/button.mcp.d.ts +1 -1
- package/dist/components/Button/button.mcp.js +8 -4
- package/dist/components/Button/button.props.d.ts +23 -8
- package/dist/components/Button/button.theme.d.ts +12 -0
- package/dist/components/Button/button.theme.js +17 -4
- package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
- package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
- package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
- package/dist/components/Collapsible/Collapsible.svelte +125 -19
- package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
- package/dist/components/Collapsible/collapsible.attributes.js +17 -0
- package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
- package/dist/components/Collapsible/collapsible.mcp.js +62 -12
- package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
- package/dist/components/Collapsible/collapsible.theme.js +3 -1
- package/dist/components/Collapsible/index.d.ts +1 -0
- package/dist/components/Collapsible/index.js +1 -0
- package/dist/components/Command/Command.svelte +56 -14
- package/dist/components/Command/command.mcp.d.ts +1 -1
- package/dist/components/Command/command.mcp.js +12 -6
- package/dist/components/Command/command.props.d.ts +39 -6
- package/dist/components/Command/command.state.svelte.d.ts +40 -11
- package/dist/components/Command/command.state.svelte.js +75 -28
- package/dist/components/Command/command.theme.js +4 -3
- package/dist/components/Confirmation/Confirmation.svelte +72 -31
- package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
- package/dist/components/Confirmation/confirmation.mcp.js +5 -4
- package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
- package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
- package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
- package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
- package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
- package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
- package/dist/components/DataTable/DataTable.svelte +4 -9
- package/dist/components/DataTable/DataTableEditor.svelte +5 -0
- package/dist/components/DataTable/DataTableFilter.svelte +1 -0
- package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
- package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
- package/dist/components/DataTable/dataTable.mcp.js +4 -2
- package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
- package/dist/components/DataTable/dataTable.theme.js +9 -6
- package/dist/components/Dialog/Dialog.svelte +120 -35
- package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
- package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
- package/dist/components/Dialog/dialog.api.d.ts +65 -0
- package/dist/components/Dialog/dialog.api.js +1 -0
- package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
- package/dist/components/Dialog/dialog.attributes.js +19 -0
- package/dist/components/Dialog/dialog.indent.d.ts +6 -0
- package/dist/components/Dialog/dialog.indent.js +16 -0
- package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
- package/dist/components/Dialog/dialog.mcp.js +195 -22
- package/dist/components/Dialog/dialog.props.d.ts +102 -19
- package/dist/components/Dialog/dialog.snap.d.ts +40 -0
- package/dist/components/Dialog/dialog.snap.js +78 -0
- package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
- package/dist/components/Dialog/dialog.state.svelte.js +525 -66
- package/dist/components/Dialog/dialog.theme.d.ts +48 -0
- package/dist/components/Dialog/dialog.theme.js +32 -9
- package/dist/components/Dialog/index.d.ts +4 -1
- package/dist/components/Dialog/index.js +1 -0
- package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
- package/dist/components/DocumentViewer/documentOutput.js +2 -1
- package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
- package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
- package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
- package/dist/components/Form/Ask/Ask.svelte +9 -13
- package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
- package/dist/components/Form/Ask/ask.mcp.js +1 -1
- package/dist/components/Form/Ask/ask.props.d.ts +1 -1
- package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
- package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
- package/dist/components/Form/Autocomplete/index.d.ts +3 -0
- package/dist/components/Form/Autocomplete/index.js +2 -0
- package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
- package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
- package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
- package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
- package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
- package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
- package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
- package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
- package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
- package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
- package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
- package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
- package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
- package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
- package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
- package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
- package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
- package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
- package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
- package/dist/components/Form/Combobox/Combobox.svelte +145 -185
- package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
- package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
- package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
- package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
- package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.items.js +68 -0
- package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
- package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
- package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
- package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
- package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
- package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
- package/dist/components/Form/Combobox/combobox.theme.js +37 -1
- package/dist/components/Form/Combobox/index.d.ts +2 -1
- package/dist/components/Form/Combobox/index.js +1 -0
- package/dist/components/Form/DateInput/DateInput.svelte +11 -3
- package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
- package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
- package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
- package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
- package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
- package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
- package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
- package/dist/components/Form/Field/Field.svelte +256 -30
- package/dist/components/Form/Field/Field.svelte.d.ts +9 -0
- package/dist/components/Form/Field/FieldGroup.svelte +29 -0
- package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
- package/dist/components/Form/Field/field.d.ts +64 -8
- package/dist/components/Form/Field/field.mcp.d.ts +1 -1
- package/dist/components/Form/Field/field.mcp.js +158 -18
- package/dist/components/Form/Field/field.messages.d.ts +47 -0
- package/dist/components/Form/Field/field.messages.js +64 -0
- package/dist/components/Form/Field/field.state.svelte.d.ts +109 -3
- package/dist/components/Form/Field/field.state.svelte.js +508 -16
- package/dist/components/Form/Field/field.theme.d.ts +46 -0
- package/dist/components/Form/Field/field.theme.js +33 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
- package/dist/components/Form/Field/index.d.ts +5 -2
- package/dist/components/Form/Field/index.js +1 -0
- package/dist/components/Form/Field/schemas.js +7 -2
- package/dist/components/Form/File/FileInput.svelte +24 -3
- package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
- package/dist/components/Form/File/fileInput.mcp.js +1 -0
- package/dist/components/Form/Form/Form.svelte +47 -14
- package/dist/components/Form/Form/FormActions.svelte +3 -1
- package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
- package/dist/components/Form/Form/FormFieldRenderer.svelte +40 -2
- package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
- package/dist/components/Form/Form/form.d.ts +35 -6
- package/dist/components/Form/Form/form.mcp.d.ts +1 -1
- package/dist/components/Form/Form/form.mcp.js +113 -13
- package/dist/components/Form/Form/form.props.d.ts +32 -1
- package/dist/components/Form/Form/form.registry.d.ts +2 -2
- package/dist/components/Form/Form/form.registry.js +1 -4
- package/dist/components/Form/Form/form.state.svelte.d.ts +1138 -413
- package/dist/components/Form/Form/form.state.svelte.js +319 -26
- package/dist/components/Form/Form/index.d.ts +3 -1
- package/dist/components/Form/Form/visibility.d.ts +3096 -1831
- package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
- package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
- package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1022 -408
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
- package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
- package/dist/components/Form/NumberInput/index.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
- package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
- package/dist/components/Form/PasswordInput/Password.svelte +28 -1
- package/dist/components/Form/PasswordInput/index.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
- package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
- package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
- package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
- package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
- package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
- package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
- package/dist/components/Form/PinInput/PinInput.svelte +44 -9
- package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
- package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
- package/dist/components/Form/PinInput/index.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
- package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
- package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
- package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
- package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
- package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
- package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
- package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
- package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
- package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
- package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
- package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
- package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
- package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
- package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
- package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
- package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
- package/dist/components/Form/Select/Select.svelte +186 -48
- package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
- package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
- package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
- package/dist/components/Form/Select/index.d.ts +2 -1
- package/dist/components/Form/Select/index.js +1 -0
- package/dist/components/Form/Select/select.align.d.ts +5 -0
- package/dist/components/Form/Select/select.align.js +19 -5
- package/dist/components/Form/Select/select.attributes.d.ts +36 -0
- package/dist/components/Form/Select/select.attributes.js +27 -0
- package/dist/components/Form/Select/select.mcp.d.ts +1 -1
- package/dist/components/Form/Select/select.mcp.js +103 -18
- package/dist/components/Form/Select/select.props.d.ts +87 -10
- package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
- package/dist/components/Form/Select/select.state.svelte.js +354 -59
- package/dist/components/Form/Select/select.theme.d.ts +21 -0
- package/dist/components/Form/Select/select.theme.js +22 -0
- package/dist/components/Form/Slider/Slider.svelte +54 -14
- package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
- package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
- package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
- package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
- package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
- package/dist/components/Form/Slider/index.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.js +55 -11
- package/dist/components/Form/Slider/slider.props.d.ts +35 -2
- package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
- package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
- package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
- package/dist/components/Form/Slider/slider.theme.js +35 -17
- package/dist/components/Form/Switch/Switch.svelte +61 -38
- package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
- package/dist/components/Form/Switch/switch.mcp.js +25 -5
- package/dist/components/Form/Switch/switch.props.d.ts +14 -1
- package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
- package/dist/components/Form/Switch/switch.theme.js +8 -3
- package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
- package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
- package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
- package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
- package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
- package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
- package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
- package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
- package/dist/components/Form/TextArea/TextArea.svelte +8 -0
- package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
- package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
- package/dist/components/Form/TextInput/TextInput.svelte +8 -1
- package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
- package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
- package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
- package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
- package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
- package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
- package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
- package/dist/components/HoverCard/HoverCard.svelte +100 -10
- package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
- package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
- package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
- package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
- package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
- package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
- package/dist/components/HoverCard/hoverCard.theme.js +9 -2
- package/dist/components/HoverCard/index.d.ts +1 -0
- package/dist/components/HoverCard/index.js +1 -0
- package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
- package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
- package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
- package/dist/components/Kanban/kanban.theme.js +7 -3
- package/dist/components/Layout/layoutSpacing.d.ts +2 -2
- package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
- package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
- package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
- package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
- package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
- package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
- package/dist/components/Map/maplibre-cdn.js +3 -2
- package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
- package/dist/components/Markdown/markdown.mcp.js +2 -1
- package/dist/components/Markdown/markdown.theme.js +18 -9
- package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
- package/dist/components/Menu/Menu.svelte +3 -3
- package/dist/components/Menu/Menu.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
- package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
- package/dist/components/Menu/MenuFloating.svelte +421 -74
- package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
- package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
- package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
- package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
- package/dist/components/Menu/MenuSearchField.svelte +54 -0
- package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
- package/dist/components/Menu/MenuStacked.svelte +404 -158
- package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
- package/dist/components/Menu/index.d.ts +2 -1
- package/dist/components/Menu/index.js +1 -0
- package/dist/components/Menu/menu.attributes.d.ts +37 -0
- package/dist/components/Menu/menu.attributes.js +28 -0
- package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
- package/dist/components/Menu/menu.filter.svelte.js +143 -0
- package/dist/components/Menu/menu.mcp.d.ts +1 -1
- package/dist/components/Menu/menu.mcp.js +227 -17
- package/dist/components/Menu/menu.platform.d.ts +5 -0
- package/dist/components/Menu/menu.platform.js +11 -0
- package/dist/components/Menu/menu.props.d.ts +172 -9
- package/dist/components/Menu/menu.theme.d.ts +147 -0
- package/dist/components/Menu/menu.theme.js +101 -0
- package/dist/components/Menu/menuTree.d.ts +35 -1
- package/dist/components/Menu/menuTree.js +158 -1
- package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
- package/dist/components/MenuBar/menuBar.mcp.js +4 -2
- package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
- package/dist/components/MenuOption/MenuOption.svelte +5 -1
- package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
- package/dist/components/MenuOption/menuOption.mcp.js +8 -0
- package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
- package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
- package/dist/components/MenuOption/menuOption.theme.js +24 -4
- package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
- package/dist/components/Mermaid/mermaid.mcp.js +8 -8
- package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
- package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
- package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
- package/dist/components/Mermaid/mermaid.theme.js +26 -1
- package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
- package/dist/components/Meter/Meter.svelte +110 -24
- package/dist/components/Meter/Meter.svelte.d.ts +12 -12
- package/dist/components/Meter/meter.mcp.d.ts +1 -1
- package/dist/components/Meter/meter.mcp.js +23 -37
- package/dist/components/Meter/meter.props.d.ts +36 -44
- package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
- package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/index.d.ts +4 -0
- package/dist/components/NavigationMenu/index.js +3 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
- package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
- package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
- package/dist/components/Overlay/Overlay.svelte +19 -30
- package/dist/components/Overlay/index.d.ts +1 -0
- package/dist/components/Overlay/index.js +1 -0
- package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
- package/dist/components/Overlay/overlay.attributes.js +14 -0
- package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
- package/dist/components/Overlay/overlay.mcp.js +21 -3
- package/dist/components/Overlay/overlay.props.d.ts +8 -4
- package/dist/components/Popover/Popover.svelte +163 -52
- package/dist/components/Popover/Popover.svelte.d.ts +23 -2
- package/dist/components/Popover/PopoverSession.svelte +12 -0
- package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
- package/dist/components/Popover/index.d.ts +10 -2
- package/dist/components/Popover/index.js +4 -1
- package/dist/components/Popover/popover.api.d.ts +83 -0
- package/dist/components/Popover/popover.api.js +1 -0
- package/dist/components/Popover/popover.attributes.d.ts +32 -0
- package/dist/components/Popover/popover.attributes.js +28 -0
- package/dist/components/Popover/popover.claims.d.ts +19 -0
- package/dist/components/Popover/popover.claims.js +45 -0
- package/dist/components/Popover/popover.mcp.d.ts +1 -1
- package/dist/components/Popover/popover.mcp.js +163 -31
- package/dist/components/Popover/popover.position.d.ts +226 -0
- package/dist/components/Popover/popover.position.js +402 -0
- package/dist/components/Popover/popover.props.d.ts +179 -24
- package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
- package/dist/components/Popover/popover.state.svelte.js +1034 -194
- package/dist/components/Popover/popover.theme.d.ts +15 -0
- package/dist/components/Popover/popover.theme.js +27 -2
- package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
- package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
- package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
- package/dist/components/PopupMenu/popupMenu.context.js +52 -0
- package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
- package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
- package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
- package/dist/components/Progress/Progress.svelte +160 -0
- package/dist/components/Progress/Progress.svelte.d.ts +4 -0
- package/dist/components/Progress/index.d.ts +3 -0
- package/dist/components/Progress/index.js +2 -0
- package/dist/components/Progress/progress.mcp.d.ts +1 -0
- package/dist/components/Progress/progress.mcp.js +101 -0
- package/dist/components/Progress/progress.props.d.ts +79 -0
- package/dist/components/Progress/progress.props.js +1 -0
- package/dist/components/Progress/progress.theme.d.ts +129 -0
- package/dist/components/Progress/progress.theme.js +83 -0
- package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
- package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
- package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
- package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
- package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
- package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
- package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
- package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
- package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
- package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
- package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
- package/dist/components/RichTextInput/suggestions.js +2 -0
- package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
- package/dist/components/ScrollArea/index.d.ts +2 -1
- package/dist/components/ScrollArea/index.js +1 -0
- package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
- package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
- package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
- package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
- package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
- package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
- package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
- package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
- package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
- package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
- package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
- package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
- package/dist/components/Sidebar/SidebarAction.svelte +13 -3
- package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
- package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
- package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
- package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
- package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
- package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
- package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
- package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
- package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
- package/dist/components/Sidebar/index.d.ts +1 -0
- package/dist/components/Sidebar/index.js +1 -0
- package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
- package/dist/components/Sidebar/sidebar-position.js +31 -2
- package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
- package/dist/components/Sidebar/sidebar.attributes.js +29 -0
- package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
- package/dist/components/Sidebar/sidebar.mcp.js +45 -10
- package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
- package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
- package/dist/components/Sidebar/sidebar.theme.js +113 -62
- package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
- package/dist/components/Stepper/Stepper.svelte +2 -0
- package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
- package/dist/components/Stepper/stepper.mcp.js +1 -0
- package/dist/components/Stepper/stepper.props.d.ts +5 -0
- package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
- package/dist/components/Stepper/stepper.state.svelte.js +31 -12
- package/dist/components/Tabbar/Tabbar.svelte +55 -16
- package/dist/components/Tabbar/index.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.js +26 -9
- package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
- package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
- package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
- package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
- package/dist/components/Tabs/Tabs.svelte +73 -16
- package/dist/components/Tabs/index.d.ts +2 -1
- package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
- package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
- package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
- package/dist/components/Tabs/tabs.mcp.js +22 -4
- package/dist/components/Tabs/tabs.props.d.ts +39 -12
- package/dist/components/Tabs/tabs.theme.js +3 -1
- package/dist/components/Theme/Theme.svelte +44 -27
- package/dist/components/Theme/helper.d.ts +16 -2
- package/dist/components/Theme/helper.js +46 -4
- package/dist/components/Theme/theme.mcp.d.ts +1 -1
- package/dist/components/Theme/theme.mcp.js +103 -0
- package/dist/components/Theme/theme.props.d.ts +16 -0
- package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
- package/dist/components/Theme/theme.state.svelte.js +18 -1
- package/dist/components/Toast/Toast.svelte +184 -39
- package/dist/components/Toast/Toaster.svelte +14 -10
- package/dist/components/Toast/index.d.ts +1 -0
- package/dist/components/Toast/toast.mcp.d.ts +1 -1
- package/dist/components/Toast/toast.mcp.js +47 -6
- package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
- package/dist/components/Toast/toast.state.svelte.js +513 -68
- package/dist/components/Toast/toast.theme.js +1 -1
- package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
- package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
- package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
- package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
- package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
- package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
- package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
- package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
- package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
- package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
- package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
- package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
- package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
- package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
- package/dist/components/Tooltip/Tooltip.svelte +4 -12
- package/dist/components/Tooltip/TooltipHost.svelte +136 -15
- package/dist/components/Tooltip/index.d.ts +1 -0
- package/dist/components/Tooltip/index.js +1 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
- package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
- package/dist/components/Tooltip/tooltip.attributes.js +28 -0
- package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
- package/dist/components/Tooltip/tooltip.mcp.js +111 -10
- package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
- package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
- package/dist/components/Tooltip/tooltip.surface.js +42 -0
- package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
- package/dist/components/Utils/BeforeHydratation.svelte +14 -3
- package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
- package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
- package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
- package/dist/generated/componentAliases.d.ts +3 -0
- package/dist/generated/componentAliases.js +3 -0
- package/dist/generated/componentContract.d.ts +79 -34
- package/dist/generated/componentContract.js +225 -6
- package/dist/generated/componentMcpRegistry.js +6 -0
- package/dist/i18n/ar.js +107 -3
- package/dist/i18n/context.svelte.d.ts +6 -0
- package/dist/i18n/context.svelte.js +12 -0
- package/dist/i18n/de.js +101 -3
- package/dist/i18n/en.d.ts +91 -2
- package/dist/i18n/en.js +101 -3
- package/dist/i18n/es.js +101 -3
- package/dist/i18n/fr.js +101 -3
- package/dist/i18n/ja.js +101 -3
- package/dist/i18n/pt.js +101 -3
- package/dist/i18n/zh.js +101 -3
- package/dist/tailwind/geometry.js +7 -0
- package/dist/tailwind/global.js +31 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/types.mcp.d.ts +1 -1
- package/dist/types/types.mcp.js +23 -0
- package/dist/utils/cspNonce.d.ts +16 -0
- package/dist/utils/cspNonce.js +39 -0
- package/dist/utils/cva/merge.d.ts +5 -1
- package/dist/utils/cva/merge.js +6 -4
- package/dist/utils/focus.d.ts +34 -0
- package/dist/utils/focus.js +93 -0
- package/dist/utils/focusHistory.d.ts +21 -0
- package/dist/utils/focusHistory.js +99 -0
- package/dist/utils/handlers.d.ts +7 -0
- package/dist/utils/handlers.js +14 -0
- package/dist/utils/hoverIntent.d.ts +42 -0
- package/dist/utils/hoverIntent.js +57 -0
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.js +15 -0
- package/dist/utils/layers.svelte.d.ts +32 -4
- package/dist/utils/layers.svelte.js +214 -21
- package/dist/utils/listFilter.d.ts +44 -0
- package/dist/utils/listFilter.js +130 -0
- package/dist/utils/match.d.ts +35 -0
- package/dist/utils/match.js +36 -0
- package/dist/utils/number.d.ts +126 -0
- package/dist/utils/number.js +401 -0
- package/dist/utils/openChange.d.ts +88 -0
- package/dist/utils/openChange.js +71 -0
- package/dist/utils/openLifecycle.svelte.d.ts +41 -0
- package/dist/utils/openLifecycle.svelte.js +134 -0
- package/dist/utils/pointerDrag.d.ts +10 -0
- package/dist/utils/pointerDrag.js +37 -2
- package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
- package/dist/utils/pragmaticDragAndDrop.js +8 -3
- package/dist/utils/range.d.ts +62 -0
- package/dist/utils/range.js +70 -0
- package/dist/utils/requestNativeSubmit.d.ts +17 -0
- package/dist/utils/requestNativeSubmit.js +47 -0
- package/dist/utils/safeArea.svelte.d.ts +10 -1
- package/dist/utils/safeArea.svelte.js +19 -11
- package/dist/utils/stateAttributes.d.ts +108 -0
- package/dist/utils/stateAttributes.js +78 -0
- package/dist/utils/swipeVelocity.d.ts +32 -0
- package/dist/utils/swipeVelocity.js +59 -0
- package/dist/utils/timer.svelte.d.ts +65 -2
- package/dist/utils/timer.svelte.js +159 -25
- package/dist/utils/trigger.d.ts +41 -0
- package/dist/utils/trigger.js +103 -0
- package/dist/utils/typeahead.d.ts +9 -0
- package/dist/utils/typeahead.js +21 -9
- package/dist/utils/useDndList.svelte.d.ts +1 -1
- package/dist/utils/useDndList.svelte.js +6 -23
- package/dist/utils/useFocusScope.svelte.d.ts +29 -0
- package/dist/utils/useFocusScope.svelte.js +189 -27
- package/dist/utils/useHoverAction.svelte.d.ts +44 -4
- package/dist/utils/useHoverAction.svelte.js +161 -51
- package/dist/utils/useKeyDown.svelte.d.ts +19 -2
- package/dist/utils/useKeyDown.svelte.js +19 -12
- package/dist/utils/useListNavigation.svelte.d.ts +94 -13
- package/dist/utils/useListNavigation.svelte.js +261 -35
- package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
- package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
- package/dist/utils/useNavigation.svelte.d.ts +36 -3
- package/dist/utils/useNavigation.svelte.js +699 -332
- package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
- package/dist/utils/usePressAndHold.svelte.js +191 -0
- package/dist/utils/useScrollLock.svelte.d.ts +20 -1
- package/dist/utils/useScrollLock.svelte.js +54 -13
- package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
- package/dist/utils/useSlidingIndicator.svelte.js +27 -5
- package/dist/utils/useTabBridge.svelte.d.ts +20 -0
- package/dist/utils/useTabBridge.svelte.js +109 -0
- package/dist/utils/values.d.ts +15 -0
- package/dist/utils/values.js +49 -0
- package/package.json +31 -2
- package/dist/generated/componentMcpRegistry.d.ts +0 -142
- package/dist/utils/useDrag.svelte.d.ts +0 -11
- package/dist/utils/useDrag.svelte.js +0 -55
|
@@ -27,6 +27,9 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
27
27
|
- **titleKey**: string - Key to extract title from items (default: 'title')
|
|
28
28
|
- **contentKey**: string - Key to extract content from items (default: 'content')
|
|
29
29
|
- **descriptionKey**: string - Key to extract description from items (default: 'description')
|
|
30
|
+
- **disabledKey**: string - Key whose boolean disables one item (default: 'disabled')
|
|
31
|
+
- **disabled**: boolean (default: false) - Disables every item
|
|
32
|
+
- **headingLevel**: 2 | 3 | 4 | 5 | 6 (default: 3) - Level of the heading element that wraps each trigger
|
|
30
33
|
|
|
31
34
|
### Layout Props
|
|
32
35
|
- **variant**: 'classic' | 'card' | 'outline' (default: 'classic')
|
|
@@ -43,8 +46,10 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
43
46
|
- **splitted**: boolean (default: false) - Breaks the list into one surface per item with a gap: each item gets its own raised card (card), its own border (outline), or its own underline (classic)
|
|
44
47
|
|
|
45
48
|
### Event Props
|
|
46
|
-
- **onValueChange**: (value: string[]) => void - Called once
|
|
47
|
-
- **onItemOpenChange**: (
|
|
49
|
+
- **onValueChange**: (value: string[]) => void - Called once after the expanded item ids change, with the new ids. Not called for initialization or for ids a parent assigns.
|
|
50
|
+
- **onItemOpenChange**: (payload: { item: Item; index: number; open: boolean; details: OpenChangeDetails }) => void - Called before one item opens or closes. \`details.reason\` is \`'trigger-press'\` or \`'find-in-page'\`, \`details.event\` carries the DOM event, and \`details.cancel()\` keeps the item as it was (\`onValueChange\` is then not called). See \`entasis/types\` for \`OpenChangeDetails\`.
|
|
51
|
+
- **onItemAfterOpen**: (payload: { item: Item; index: number }) => void - Called once each time an item finishes opening: after its slide, or at once when no animation plays (reduced motion, zero duration, find-in-page). Not called for items open at the start.
|
|
52
|
+
- **onItemAfterClose**: (payload: { item: Item; index: number }) => void - Called once each time an item finishes closing, also when no animation plays or the panel is removed mid-close.
|
|
48
53
|
|
|
49
54
|
### Slot Props
|
|
50
55
|
- **title**: Snippet - Custom title rendering
|
|
@@ -54,6 +59,8 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
54
59
|
|
|
55
60
|
### Behavior Props
|
|
56
61
|
- **oneAtATime**: boolean (default: true) - Whether only one item can be expanded at a time
|
|
62
|
+
- **hiddenUntilFound**: boolean (default: false) - Keeps collapsed panels in the DOM under \`hidden="until-found"\`, so the browser's find-in-page, text fragments and \`#id\` links reach their content and open the item (reason \`find-in-page\`, no animation). Collapsed content stays out of the accessibility tree and the tab order until then. A disabled item is not findable: its collapsed panel stays under plain \`hidden\`.
|
|
63
|
+
- **keepMounted**: boolean (default: false) - Keeps collapsed panels mounted under \`hidden\`, preserving their state (form values, scroll). Not findable by the browser.
|
|
57
64
|
|
|
58
65
|
### Visual Props
|
|
59
66
|
- **icon**: 'chevron' | 'plus-minus' | 'none' | Snippet (default: 'chevron')
|
|
@@ -73,18 +80,22 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
73
80
|
\`\`\`
|
|
74
81
|
<Accordion>
|
|
75
82
|
<AccordionItem>
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
<Heading> <!-- h2 to h6, headingLevel -->
|
|
84
|
+
<AccordionTrigger> <!-- button: id, aria-expanded, aria-controls, data-index -->
|
|
85
|
+
<AccordionHeader>
|
|
86
|
+
<Title />
|
|
87
|
+
<Description />
|
|
88
|
+
</AccordionHeader>
|
|
89
|
+
<Icon />
|
|
90
|
+
</AccordionTrigger>
|
|
91
|
+
</Heading>
|
|
92
|
+
<AccordionContent /> <!-- region: id, aria-labelledby the trigger -->
|
|
84
93
|
</AccordionItem>
|
|
85
94
|
</Accordion>
|
|
86
95
|
\`\`\`
|
|
87
96
|
|
|
97
|
+
The heading wraps the button, as the WAI-ARIA accordion pattern asks, so assistive technology lists the headings. A collapsed item has no panel in the DOM unless \`hiddenUntilFound\` or \`keepMounted\` is set, so its content is neither read nor tabbable; \`aria-controls\` is present while the panel exists.
|
|
98
|
+
|
|
88
99
|
## Examples
|
|
89
100
|
|
|
90
101
|
### Basic Example
|
|
@@ -206,6 +217,22 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
206
217
|
/>
|
|
207
218
|
\`\`\`
|
|
208
219
|
|
|
220
|
+
### Find-in-page and disabled items
|
|
221
|
+
|
|
222
|
+
\`\`\`svelte
|
|
223
|
+
<script>
|
|
224
|
+
import { Accordion } from './index.ts';
|
|
225
|
+
|
|
226
|
+
let items = [
|
|
227
|
+
{ title: 'Shipping', content: 'Orders ship within two days.' },
|
|
228
|
+
{ title: 'Returns', content: 'Free returns for 30 days.', disabled: true }
|
|
229
|
+
];
|
|
230
|
+
</script>
|
|
231
|
+
|
|
232
|
+
<!-- Ctrl+F finds "two days" and opens Shipping; Returns is skipped by Tab. -->
|
|
233
|
+
<Accordion {items} hiddenUntilFound />
|
|
234
|
+
\`\`\`
|
|
235
|
+
|
|
209
236
|
### With Event Handler
|
|
210
237
|
|
|
211
238
|
\`\`\`svelte
|
|
@@ -216,8 +243,9 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
216
243
|
{ title: 'Section 1', content: 'Content 1' }
|
|
217
244
|
];
|
|
218
245
|
|
|
219
|
-
function handleToggle({ item, index, open }) {
|
|
220
|
-
console.log(\`Item \${item.title} at index \${index} is
|
|
246
|
+
function handleToggle({ item, index, open, details }) {
|
|
247
|
+
console.log(\`Item \${item.title} at index \${index} is opening: \${open} (\${details.reason})\`);
|
|
248
|
+
// details.cancel() would keep it as it was.
|
|
221
249
|
}
|
|
222
250
|
</script>
|
|
223
251
|
|
|
@@ -251,18 +279,45 @@ The Accordion component provides an interactive collapsible container for organi
|
|
|
251
279
|
</Accordion>
|
|
252
280
|
\`\`\`
|
|
253
281
|
|
|
282
|
+
## Styling hooks
|
|
283
|
+
|
|
284
|
+
Every item, trigger and panel carries its own open state.
|
|
285
|
+
|
|
286
|
+
Attributes are presence attributes (set while the state holds, omitted otherwise) unless they carry a value.
|
|
287
|
+
|
|
288
|
+
**Data attributes**
|
|
289
|
+
- \`data-open\`: On an item, its trigger, its panel and the panel's content: present while the item is expanded.
|
|
290
|
+
- \`data-closed\`: On an item, its trigger, its panel and the panel's content: present while the item is collapsed, including during the exit transition.
|
|
291
|
+
- \`data-entering\`: On a panel: present while its opening animation plays.
|
|
292
|
+
- \`data-exiting\`: On a panel: present while its closing animation plays.
|
|
293
|
+
- \`data-disabled\`: On an item and its trigger: present while the item is disabled.
|
|
294
|
+
- \`data-state\`: On a trigger: \`open\` or \`closed\` (kept for compatibility; prefer \`data-open\` / \`data-closed\`).
|
|
295
|
+
- \`data-index\`: On an item and its trigger: the item index.
|
|
296
|
+
- \`data-slot\`: The part: \`accordion\`, \`accordion-item\`, \`accordion-trigger\`, \`accordion-icon-wrapper\` or \`accordion-panel\`.
|
|
297
|
+
- \`data-size\`: On the root: the resolved \`size\`.
|
|
298
|
+
- \`data-density\`: On the root: the resolved \`density\`.
|
|
299
|
+
- \`data-variant\`: On the root: the resolved \`variant\`.
|
|
300
|
+
|
|
301
|
+
**CSS variables**
|
|
302
|
+
- \`--disclosure-panel-height\`: On a panel: its measured height in px while it animates, \`auto\` once open and \`0px\` once closed.
|
|
303
|
+
|
|
304
|
+
The typed maps \`accordionDataAttributes\` and \`accordionCssVariables\` (from \`entasis/accordion\`) list each name with its meaning.
|
|
305
|
+
|
|
254
306
|
## Accessibility
|
|
255
307
|
|
|
256
|
-
-
|
|
257
|
-
-
|
|
258
|
-
-
|
|
259
|
-
-
|
|
308
|
+
- Each trigger is a native \`<button>\` inside a heading element (\`headingLevel\`), with \`aria-expanded\` and, while its panel exists, \`aria-controls\`.
|
|
309
|
+
- Each panel is a \`role="region"\` labelled by its trigger.
|
|
310
|
+
- Enter and Space toggle an item. Tab moves between triggers and into open content; arrow, Home and End keys are left to the page (they neither move focus nor block scrolling), following the current WAI-ARIA guidance.
|
|
311
|
+
- A disabled item's trigger has the native \`disabled\` attribute: it is skipped by Tab and announced as unavailable.
|
|
312
|
+
- Collapsed content is not copied anywhere for screen readers. Use \`hiddenUntilFound\` to make it findable.
|
|
313
|
+
- Migration: the \`accessible\` prop is removed (collapsed content is no longer duplicated into screen-reader-only text).
|
|
260
314
|
|
|
261
315
|
## Notes
|
|
262
316
|
|
|
263
317
|
- Items are automatically assigned IDs if not provided
|
|
264
|
-
-
|
|
265
|
-
-
|
|
318
|
+
- Expanded ids are tracked by the component itself; there is no builder dependency
|
|
319
|
+
- Panels animate their height through the shared disclosure panel (\`--disclosure-panel-height\` is set on the panel)
|
|
320
|
+
- Styling hooks: \`data-open\` / \`data-closed\` on the item, trigger and content, \`data-disabled\`, \`data-index\`, and \`data-entering\` / \`data-exiting\` on the panel
|
|
266
321
|
- Supports bindable items for dynamic updates
|
|
267
322
|
|
|
268
323
|
## Theme Customization
|
|
@@ -275,11 +330,12 @@ The theme object contains the following parts:
|
|
|
275
330
|
- **root**: Main accordion container styles
|
|
276
331
|
- **item**: Individual accordion item styles
|
|
277
332
|
- **trigger**: Accordion trigger button styles
|
|
278
|
-
- **
|
|
333
|
+
- **heading**: The \`h2\`-\`h6\` element that wraps each trigger (margin-free by default)
|
|
334
|
+
- **header**: Header section styles (contains title and description, inside the trigger)
|
|
279
335
|
- **title**: Title text styles
|
|
280
336
|
- **description**: Description text styles
|
|
281
337
|
- **icon**: Expand/collapse icon styles
|
|
282
|
-
- **content**: Content panel
|
|
338
|
+
- **content**: Content styles, on the element inside the region panel (so a hidden-until-found panel reserves no space)
|
|
283
339
|
|
|
284
340
|
### Available Variants
|
|
285
341
|
|
|
@@ -384,8 +440,8 @@ The theme object contains the following parts:
|
|
|
384
440
|
|
|
385
441
|
## Motion
|
|
386
442
|
|
|
387
|
-
- **motion** theme slot:
|
|
388
|
-
- Takes \`in\` / \`out\`
|
|
443
|
+
- **motion** theme slot: the panel's height animation. \`duration\`, \`delay\` and \`easing\` apply; the preset's slide offsets and opacity do not (panels collapse along their height only).
|
|
444
|
+
- Takes \`in\` / \`out\` params plus a \`duration\` / \`easing\` motion token.
|
|
389
445
|
- Ladder: \`<Theme components={{ accordion: { motion } }}>\` → \`setAccordionTheme({ motion })\` →
|
|
390
446
|
\`theme.motion\` → the \`transition\` prop. Reduced motion collapses it to 0.
|
|
391
447
|
`;
|
|
@@ -3,9 +3,10 @@ import type { Slot, WithSlot } from '../Slot/slot.js';
|
|
|
3
3
|
import type { FSOProps } from '../../transitions/transition.js';
|
|
4
4
|
import type { ResponsiveProps } from '../Theme/theme.js';
|
|
5
5
|
import type { WithAttachments } from '../../types/props.js';
|
|
6
|
+
import type { OpenChangeDetails } from '../../utils/openChange.js';
|
|
6
7
|
import type { AccordionThemeProps } from './accordion.theme.js';
|
|
7
8
|
export type ConditionalKeys<Base, Condition> = NonNullable<{
|
|
8
|
-
[Key in keyof Base]: Base[Key] extends Condition ? Key : never;
|
|
9
|
+
[Key in keyof Base]: NonNullable<Base[Key]> extends Condition ? Key : never;
|
|
9
10
|
}[keyof Base]>;
|
|
10
11
|
export type AccordionProps<Item extends Record<string, unknown>> = WithAttachments<WithSlot<{
|
|
11
12
|
/**
|
|
@@ -20,21 +21,69 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
|
|
|
20
21
|
value?: string[];
|
|
21
22
|
/** Initially expanded item ids when `value` is omitted. */
|
|
22
23
|
defaultValue?: string[];
|
|
23
|
-
/** Called after the expanded item ids change. */
|
|
24
|
+
/** Called after the expanded item ids change, with the new ids. */
|
|
24
25
|
onValueChange?: (value: string[]) => void;
|
|
25
26
|
/**
|
|
26
|
-
* Called
|
|
27
|
-
*
|
|
27
|
+
* Called before one item opens or closes. Receives the item, its index, the requested open
|
|
28
|
+
* state and the open-change `details`: `details.reason` says why (`trigger-press`, or
|
|
29
|
+
* `find-in-page` for the browser's find), `details.event` carries the DOM event, and
|
|
30
|
+
* `details.cancel()` keeps the item as it was (then `onValueChange` is not called).
|
|
31
|
+
* `onValueChange` reports the whole expanded set once the change is applied.
|
|
28
32
|
*/
|
|
29
33
|
onItemOpenChange?: (payload: {
|
|
30
34
|
item: Item;
|
|
31
35
|
index: number;
|
|
32
36
|
open: boolean;
|
|
37
|
+
details: OpenChangeDetails;
|
|
38
|
+
}) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Called once each time an item finishes opening: after its slide, or at once when no
|
|
41
|
+
* animation runs (reduced motion, a zero duration, find-in-page). Not called for items open
|
|
42
|
+
* at the start.
|
|
43
|
+
*/
|
|
44
|
+
onItemAfterOpen?: (payload: {
|
|
45
|
+
item: Item;
|
|
46
|
+
index: number;
|
|
47
|
+
}) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Called once each time an item finishes closing: after its slide, at once when no
|
|
50
|
+
* animation runs, or when the panel is removed mid-close.
|
|
51
|
+
*/
|
|
52
|
+
onItemAfterClose?: (payload: {
|
|
53
|
+
item: Item;
|
|
54
|
+
index: number;
|
|
33
55
|
}) => void;
|
|
34
56
|
/**
|
|
35
57
|
* Whether the accordion should only allow one item to be open at a time.
|
|
36
58
|
*/
|
|
37
59
|
oneAtATime?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Disables every item: the triggers get the native `disabled` attribute, leave the tab
|
|
62
|
+
* order and cannot be toggled.
|
|
63
|
+
*/
|
|
64
|
+
disabled?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* The key whose boolean marks one item as disabled. By default the accordion reads the
|
|
67
|
+
* `disabled` property of each item. A disabled item's trigger has the native `disabled`
|
|
68
|
+
* attribute, so it is skipped by Tab and announced as unavailable.
|
|
69
|
+
*/
|
|
70
|
+
disabledKey?: ConditionalKeys<Item, boolean> | (string extends keyof Item ? keyof Item & string : never);
|
|
71
|
+
/**
|
|
72
|
+
* Keeps collapsed panels in the DOM under `hidden="until-found"`, so the browser's
|
|
73
|
+
* find-in-page, text fragments and `#id` links can reach their content and open the item
|
|
74
|
+
* (reason `find-in-page`, no animation). Collapsed content stays out of the accessibility
|
|
75
|
+
* tree and the tab order until then. A disabled item is not findable: its collapsed panel
|
|
76
|
+
* stays under plain `hidden`, so the browser never opens it. A parent that refuses the
|
|
77
|
+
* change leaves the item closed.
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
hiddenUntilFound?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Keeps collapsed panels mounted under `hidden`, preserving their state (form values,
|
|
83
|
+
* scroll, media). Not findable by the browser; use `hiddenUntilFound` for that.
|
|
84
|
+
* @default false
|
|
85
|
+
*/
|
|
86
|
+
keepMounted?: boolean;
|
|
38
87
|
/**
|
|
39
88
|
* The key to use to get the title from the item. By default, the accordion will use the 'title' property of the item.
|
|
40
89
|
* Usefull if the title is a string but you can pass a slot to display a custom title.
|
|
@@ -73,7 +122,7 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
|
|
|
73
122
|
*/
|
|
74
123
|
variant?: 'classic' | 'card' | 'outline';
|
|
75
124
|
/**
|
|
76
|
-
*
|
|
125
|
+
* Level of the heading element (`h2` to `h6`) that wraps each trigger button.
|
|
77
126
|
* @default 3
|
|
78
127
|
*/
|
|
79
128
|
headingLevel?: 2 | 3 | 4 | 5 | 6;
|
|
@@ -91,11 +140,6 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
|
|
|
91
140
|
* Theme overrides for the accordion root and item sub-parts (header, trigger, title, description, icon, content).
|
|
92
141
|
*/
|
|
93
142
|
theme?: AccordionThemeProps;
|
|
94
|
-
/**
|
|
95
|
-
* Whether the accordion should be accessible when not expanded.
|
|
96
|
-
* This is useful for screen readers to skip the content when not expanded.
|
|
97
|
-
*/
|
|
98
|
-
accessible?: boolean;
|
|
99
143
|
}, 'title' | 'description' | 'content', {
|
|
100
144
|
/** Current accordion item passed to the slot. */
|
|
101
145
|
item: Item;
|
|
@@ -72,6 +72,7 @@ export declare const accordionTheme: {
|
|
|
72
72
|
false: string;
|
|
73
73
|
};
|
|
74
74
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
75
|
+
heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
75
76
|
header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
76
77
|
size: {
|
|
77
78
|
small: string;
|
|
@@ -208,6 +209,7 @@ export declare const setAccordionTheme: (theme: InferComponentTheme<{
|
|
|
208
209
|
false: string;
|
|
209
210
|
};
|
|
210
211
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
212
|
+
heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
211
213
|
header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
212
214
|
size: {
|
|
213
215
|
small: string;
|
|
@@ -342,6 +344,7 @@ export declare const useAccordionTheme: import("../../utils/cva/theme.js").UseCo
|
|
|
342
344
|
false: string;
|
|
343
345
|
};
|
|
344
346
|
}> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
347
|
+
heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
345
348
|
header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
|
|
346
349
|
size: {
|
|
347
350
|
small: string;
|
|
@@ -117,6 +117,9 @@ const defaultAccordionTrigger = cva({
|
|
|
117
117
|
variant: 'classic'
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
|
+
// The heading element (`h2`-`h6`) that wraps each trigger button. Headings render without browser
|
|
121
|
+
// margins or type scale; the trigger owns the row's look.
|
|
122
|
+
const defaultAccordionHeading = cva({ base: 'm-0 w-full text-[length:inherit] font-[inherit]' });
|
|
120
123
|
const defaultAccordionHeader = cva({
|
|
121
124
|
base: 'flex-1 flex flex-col items-start',
|
|
122
125
|
variants: {
|
|
@@ -225,6 +228,7 @@ export const accordionTheme = {
|
|
|
225
228
|
motion: defaultAccordionMotion,
|
|
226
229
|
root: defaultAccordion,
|
|
227
230
|
item: defaultAccordionItem,
|
|
231
|
+
heading: defaultAccordionHeading,
|
|
228
232
|
header: defaultAccordionHeader,
|
|
229
233
|
trigger: defaultAccordionTrigger,
|
|
230
234
|
title: defaultAccordionTitle,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { default as Accordion } from './Accordion.svelte';
|
|
2
2
|
export type { AccordionProps, ConditionalKeys } from './accordion.props.js';
|
|
3
3
|
export { accordionTheme, setAccordionTheme, useAccordionTheme, type AccordionTheme, type AccordionThemeProps } from './accordion.theme.js';
|
|
4
|
+
export { accordionDataAttributes, accordionCssVariables, type AccordionDataAttribute, type AccordionCssVariable } from './accordion.attributes.js';
|
|
@@ -2,6 +2,30 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
2
2
|
valueLabel: {
|
|
3
3
|
base: string;
|
|
4
4
|
};
|
|
5
|
+
motion?: {
|
|
6
|
+
in?: {
|
|
7
|
+
delay?: number | undefined;
|
|
8
|
+
duration?: number | undefined;
|
|
9
|
+
easing?: import("../../transitions/easingFunctions.js").Easing | undefined;
|
|
10
|
+
x?: number | `${number}%` | undefined;
|
|
11
|
+
y?: number | `${number}%` | undefined;
|
|
12
|
+
scale?: number | undefined;
|
|
13
|
+
opacity?: number | undefined;
|
|
14
|
+
axis?: "x" | "y" | undefined;
|
|
15
|
+
} | undefined;
|
|
16
|
+
out?: {
|
|
17
|
+
delay?: number | undefined;
|
|
18
|
+
duration?: number | undefined;
|
|
19
|
+
easing?: import("../../transitions/easingFunctions.js").Easing | undefined;
|
|
20
|
+
x?: number | `${number}%` | undefined;
|
|
21
|
+
y?: number | `${number}%` | undefined;
|
|
22
|
+
scale?: number | undefined;
|
|
23
|
+
opacity?: number | undefined;
|
|
24
|
+
axis?: "x" | "y" | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
duration?: (keyof import("../Theme/theme.designTokens.js").MotionTokens["duration"] | number) | undefined;
|
|
27
|
+
easing?: (keyof import("../Theme/theme.designTokens.js").MotionTokens["easing"] | import("../../transitions/easingFunctions.js").Easing) | undefined;
|
|
28
|
+
} | undefined;
|
|
5
29
|
root?: ({
|
|
6
30
|
density?: Partial<{
|
|
7
31
|
normal: string;
|
|
@@ -46,6 +70,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
46
70
|
base?: string;
|
|
47
71
|
}) | undefined;
|
|
48
72
|
label?: ({
|
|
73
|
+
disabled?: Partial<{}> | undefined;
|
|
49
74
|
size?: Partial<{
|
|
50
75
|
small: string;
|
|
51
76
|
normal: string;
|
|
@@ -146,12 +171,12 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
146
171
|
normal: string;
|
|
147
172
|
large: string;
|
|
148
173
|
}> | undefined;
|
|
149
|
-
active?: Partial<{}> | undefined;
|
|
150
174
|
edge?: Partial<{
|
|
151
175
|
none: string;
|
|
152
176
|
start: string;
|
|
153
177
|
end: string;
|
|
154
178
|
}> | undefined;
|
|
179
|
+
active?: Partial<{}> | undefined;
|
|
155
180
|
} & {
|
|
156
181
|
base?: string;
|
|
157
182
|
} & {
|
|
@@ -173,6 +198,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
173
198
|
base?: string;
|
|
174
199
|
}) | undefined;
|
|
175
200
|
description?: ({
|
|
201
|
+
disabled?: Partial<{}> | undefined;
|
|
176
202
|
size?: Partial<{
|
|
177
203
|
small: string;
|
|
178
204
|
normal: string;
|
|
@@ -184,6 +210,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
184
210
|
base?: string;
|
|
185
211
|
}) | undefined;
|
|
186
212
|
helper?: ({
|
|
213
|
+
disabled?: Partial<{}> | undefined;
|
|
187
214
|
size?: Partial<{
|
|
188
215
|
small: string;
|
|
189
216
|
normal: string;
|
|
@@ -237,6 +264,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
237
264
|
thick: string;
|
|
238
265
|
contained: string;
|
|
239
266
|
}> | undefined;
|
|
267
|
+
readOnly?: Partial<{}> | undefined;
|
|
240
268
|
orientation?: Partial<{
|
|
241
269
|
horizontal: string;
|
|
242
270
|
vertical: string;
|
|
@@ -303,6 +331,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
303
331
|
thick: string;
|
|
304
332
|
contained: string;
|
|
305
333
|
}> | undefined;
|
|
334
|
+
readOnly?: Partial<{}> | undefined;
|
|
306
335
|
orientation?: Partial<{
|
|
307
336
|
horizontal: string;
|
|
308
337
|
vertical: string;
|
|
@@ -324,6 +353,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
|
|
|
324
353
|
thick: string;
|
|
325
354
|
contained: string;
|
|
326
355
|
}> | undefined;
|
|
356
|
+
readOnly?: Partial<{}> | undefined;
|
|
327
357
|
orientation?: Partial<{
|
|
328
358
|
horizontal: string;
|
|
329
359
|
vertical: string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type { AvatarProps } from './avatar.props.js';
|
|
2
|
+
import type { AvatarProps, AvatarStatus } from './avatar.props.js';
|
|
3
3
|
import { useAvatarTheme } from './avatar.theme.js';
|
|
4
4
|
import Slot from '../Slot/Slot.svelte';
|
|
5
|
+
import { untrack } from 'svelte';
|
|
5
6
|
import type { Attachment } from 'svelte/attachments';
|
|
6
7
|
|
|
7
8
|
let {
|
|
@@ -12,7 +13,10 @@
|
|
|
12
13
|
loading = $bindable(false),
|
|
13
14
|
suffix,
|
|
14
15
|
prefix,
|
|
15
|
-
|
|
16
|
+
image,
|
|
17
|
+
fallbackDelay = 0,
|
|
18
|
+
revealDelay,
|
|
19
|
+
delay,
|
|
16
20
|
class: className,
|
|
17
21
|
theme,
|
|
18
22
|
...attachments
|
|
@@ -22,20 +26,35 @@
|
|
|
22
26
|
// the initials, so neither is part of the public prop surface the way `loading` is.
|
|
23
27
|
let loaded = $state(false);
|
|
24
28
|
let errored = $state(false);
|
|
29
|
+
// Set once `fallbackDelay` has run out while the image is still loading.
|
|
30
|
+
let fallbackReady = $state(false);
|
|
31
|
+
|
|
32
|
+
// `delay` is the old name of `revealDelay`; the new prop wins when both are given.
|
|
33
|
+
const effectiveRevealDelay = $derived(Math.max(0, revealDelay ?? delay ?? 0));
|
|
34
|
+
const effectiveFallbackDelay = $derived(Math.max(0, fallbackDelay));
|
|
25
35
|
|
|
26
36
|
const imageLoading = $derived.by<Attachment<HTMLImageElement>>(() => {
|
|
27
|
-
const
|
|
37
|
+
const revealMs = effectiveRevealDelay;
|
|
38
|
+
const fallbackMs = effectiveFallbackDelay;
|
|
28
39
|
// Reading `src` here re-creates the attachment for every new image, which is what resets
|
|
29
40
|
// the per-image state below: a failed URL must not decide the outcome of the next one.
|
|
30
41
|
void src;
|
|
31
42
|
|
|
32
43
|
return (image) => {
|
|
33
44
|
let revealTimer: ReturnType<typeof setTimeout> | undefined;
|
|
45
|
+
let fallbackTimer: ReturnType<typeof setTimeout> | undefined;
|
|
34
46
|
const setLoading = (next: boolean) => {
|
|
35
|
-
if (loading !== next) loading = next;
|
|
47
|
+
if (untrack(() => loading) !== next) loading = next;
|
|
36
48
|
};
|
|
37
49
|
loaded = false;
|
|
38
50
|
errored = false;
|
|
51
|
+
fallbackReady = fallbackMs === 0;
|
|
52
|
+
|
|
53
|
+
const clearFallbackTimer = () => {
|
|
54
|
+
if (fallbackTimer === undefined) return;
|
|
55
|
+
clearTimeout(fallbackTimer);
|
|
56
|
+
fallbackTimer = undefined;
|
|
57
|
+
};
|
|
39
58
|
|
|
40
59
|
const clearRevealTimer = () => {
|
|
41
60
|
if (revealTimer === undefined) return;
|
|
@@ -44,17 +63,21 @@
|
|
|
44
63
|
};
|
|
45
64
|
|
|
46
65
|
const settle = (failed: boolean) => {
|
|
66
|
+
clearFallbackTimer();
|
|
47
67
|
errored = failed;
|
|
48
68
|
loaded = !failed;
|
|
49
69
|
setLoading(false);
|
|
50
70
|
};
|
|
51
71
|
|
|
52
72
|
const handleLoad = () => {
|
|
73
|
+
// A received image ends the fallback wait: the initials must not appear while the
|
|
74
|
+
// reveal delay is still running for an image that already arrived.
|
|
75
|
+
clearFallbackTimer();
|
|
53
76
|
clearRevealTimer();
|
|
54
77
|
revealTimer = setTimeout(() => {
|
|
55
78
|
settle(false);
|
|
56
79
|
revealTimer = undefined;
|
|
57
|
-
},
|
|
80
|
+
}, revealMs);
|
|
58
81
|
};
|
|
59
82
|
|
|
60
83
|
const handleError = () => {
|
|
@@ -69,10 +92,17 @@
|
|
|
69
92
|
settle(image.naturalWidth === 0 || image.naturalHeight === 0);
|
|
70
93
|
} else {
|
|
71
94
|
setLoading(true);
|
|
95
|
+
if (fallbackMs > 0) {
|
|
96
|
+
fallbackTimer = setTimeout(() => {
|
|
97
|
+
fallbackTimer = undefined;
|
|
98
|
+
fallbackReady = true;
|
|
99
|
+
}, fallbackMs);
|
|
100
|
+
}
|
|
72
101
|
}
|
|
73
102
|
|
|
74
103
|
return () => {
|
|
75
104
|
clearRevealTimer();
|
|
105
|
+
clearFallbackTimer();
|
|
76
106
|
setLoading(false);
|
|
77
107
|
image.removeEventListener('load', handleLoad);
|
|
78
108
|
image.removeEventListener('error', handleError);
|
|
@@ -88,18 +118,38 @@
|
|
|
88
118
|
.map((word: string) => word[0])
|
|
89
119
|
.join('') || ''
|
|
90
120
|
);
|
|
91
|
-
const
|
|
121
|
+
const status = $derived<AvatarStatus>(
|
|
122
|
+
!src ? 'idle' : errored ? 'error' : loaded ? 'loaded' : 'loading'
|
|
123
|
+
);
|
|
124
|
+
// The initials wait for `fallbackDelay` while the image loads and are never rendered for an
|
|
125
|
+
// image that arrives inside it. A failed image or a missing `src` shows them at once, and a
|
|
126
|
+
// loaded image keeps already-visible initials mounted underneath for the crossfade.
|
|
127
|
+
const showsInitials = $derived(
|
|
128
|
+
status === 'idle' || status === 'error' || fallbackReady || effectiveFallbackDelay === 0
|
|
129
|
+
);
|
|
130
|
+
const decorative = $derived(alt === '');
|
|
92
131
|
</script>
|
|
93
132
|
|
|
94
|
-
|
|
133
|
+
<!-- The avatar is one image with one name: the `<img>` is empty-alt and the initials are
|
|
134
|
+
hidden from assistive technology, so a loading, loaded or failed image reads the same. -->
|
|
135
|
+
<div
|
|
136
|
+
data-avatar
|
|
137
|
+
role={decorative ? undefined : 'img'}
|
|
138
|
+
aria-label={decorative ? undefined : (alt ?? name)}
|
|
139
|
+
aria-hidden={decorative ? 'true' : undefined}
|
|
140
|
+
class={classes.root({ size, className })}
|
|
141
|
+
data-size={size}
|
|
142
|
+
data-status={status}
|
|
143
|
+
{...attachments}
|
|
144
|
+
>
|
|
95
145
|
<Slot render={prefix} class={classes.avatarPrefix({ size })} />
|
|
96
146
|
{#if src}
|
|
97
147
|
<!-- The image stays mounted for as long as `src` is set: unmounting it on failure would
|
|
98
148
|
tear down the listeners that a later `src` needs. The initials cover it instead. -->
|
|
99
|
-
<img {@attach imageLoading} {src} alt=
|
|
149
|
+
<img {...image} {@attach imageLoading} {src} alt="" class={classes.avatarImage({ size })} />
|
|
100
150
|
{/if}
|
|
101
|
-
{#if
|
|
102
|
-
<div class={classes.avatarInitials({ size })}>
|
|
151
|
+
{#if showsInitials}
|
|
152
|
+
<div aria-hidden="true" class={classes.avatarInitials({ size })}>
|
|
103
153
|
{initials}
|
|
104
154
|
</div>
|
|
105
155
|
{/if}
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
theme,
|
|
13
13
|
size,
|
|
14
14
|
delay,
|
|
15
|
+
revealDelay,
|
|
16
|
+
fallbackDelay,
|
|
17
|
+
image,
|
|
15
18
|
loading,
|
|
16
19
|
prefix,
|
|
17
20
|
suffix,
|
|
@@ -34,6 +37,9 @@
|
|
|
34
37
|
index,
|
|
35
38
|
avatarProps: {
|
|
36
39
|
delay,
|
|
40
|
+
revealDelay,
|
|
41
|
+
fallbackDelay,
|
|
42
|
+
image,
|
|
37
43
|
size,
|
|
38
44
|
loading,
|
|
39
45
|
prefix,
|
|
@@ -43,6 +49,9 @@
|
|
|
43
49
|
{:else}
|
|
44
50
|
<Avatar
|
|
45
51
|
{delay}
|
|
52
|
+
{revealDelay}
|
|
53
|
+
{fallbackDelay}
|
|
54
|
+
{image}
|
|
46
55
|
{size}
|
|
47
56
|
{loading}
|
|
48
57
|
{prefix}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const avatarDescription = "\n# Avatar Component\n\nThe Avatar component displays a user's profile picture with fallback initials. It supports a bindable loading flag, various sizes, and badges (prefix/suffix). The AvatarGroup component displays multiple avatars with overlap.\n\n## Basic Usage\n\n```svelte\n<Avatar name=\"John Doe\" src=\"https://example.com/avatar.png\" />\n```\n\n## Props\n\n### Core Props\n- **name**: string (required) - Display name; its initials are the fallback when no image renders\n- **src**: string - Image URL; omit it, or let it fail, to render the initials instead\n- **alt**: string - Alternative text for the image (defaults to `name`)\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - small: 24px (1.5rem)\n - normal: 32px (2rem)\n - large: 40px (2.5rem)\n\n### Loading Props\n- **delay**: number (default: 0) - Delay in milliseconds before showing avatar\n- **loading**: boolean (default: false, bindable) - True while the image request is in flight; false with no `src`, and false once the image has loaded or failed. A failed image is reported by rendering the initials.\n\n### Content Slots\n- **prefix**: Slot - Badge/icon positioned at bottom-left\n- **suffix**: Slot - Badge/icon positioned at bottom-right\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Avatar Structure\n\n```\n<Avatar>\n\t<AvatarImage /> <!-- Profile picture -->\n\t<AvatarPrefix /> <!-- Behind the image (bottom-left) -->\n\t<AvatarSuffix /> <!-- Absolute position (bottom-right) -->\n\t<AvatarInitials /> <!-- Fallback initials -->\n</Avatar>\n```\n\n## AvatarGroup Props\n\n### Core Props\n- **items**: Array<{ src?: string; alt?: string; name: string } & T> (required) - Avatar items\n- **max**: number - Maximum number of avatars to show before \"+N\" indicator\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n\n### Content Slots\n- **avatar**: Snippet<{ item: T; index: number; avatarProps }> - Custom avatar rendering\n- **remainingCount**: Snippet<{ items: T[]; remaining: number }> - Custom \"+N\" counter rendering\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## AvatarGroup Structure\n\n```\n<AvatarGroup>\n\t<Avatar />\n\t<Avatar />\n\t<Avatar />\n\t<AvatarGroupCount /> <!-- \"+N\" indicator -->\n</AvatarGroup>\n```\n\n## Examples\n\n### Basic Avatar\n```svelte\n<Avatar name=\"Jane Smith\" src=\"/images/jane.jpg\" />\n```\n\n### Without Image (Initials)\n```svelte\n<Avatar name=\"John Doe\" />\n<!-- Displays \"JD\" -->\n```\n\n### Different Sizes\n```svelte\n<Avatar size=\"small\" name=\"Small User\" />\n<Avatar size=\"normal\" name=\"Normal User\" />\n<Avatar size=\"large\" name=\"Large User\" />\n```\n\n### With Status Badge (Prefix)\n```svelte\n<Avatar name=\"John Doe\">\n\t{#snippet prefix()}\n\t\t<div class=\"w-2 h-2 rounded-full bg-success\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n### With Icon Badge (Suffix)\n```svelte\n<script lang=\"ts\">\n\timport { Avatar } from 'entasis/avatar';\n\timport { checkIcon } from 'entasis/icons/check';\n</script>\n\n<Avatar name=\"Jane Smith\">\n\t{#snippet suffix()}\n\t\t{@render checkIcon({ class: 'text-success' })}\n\t{/snippet}\n</Avatar>\n```\n\n### With Loading State\n```svelte\n<script lang=\"ts\">\n\tlet loading = $state(false);\n</script>\n\n<Avatar name=\"John Doe\" src=\"/avatar.jpg\" bind:loading />\n{loading}\n```\n\n### Avatar Group\n```svelte\n<script>\n\tlet items = [\n\t\t{ name: 'John Doe', src: '/john.jpg' },\n\t\t{ name: 'Jane Smith', src: '/jane.jpg' },\n\t\t{ name: 'Bob Johnson', src: '/bob.jpg' }\n\t];\n</script>\n\n<AvatarGroup {items} />\n```\n\n### Avatar Group with Max Limit\n```svelte\n<AvatarGroup \n\titems={[\n\t\t{ name: 'User 1' },\n\t\t{ name: 'User 2' },\n\t\t{ name: 'User 3' },\n\t\t{ name: 'User 4' },\n\t\t{ name: 'User 5' }\n\t]}\n\tmax={3}\n/>\n<!-- Shows 3 avatars + \"+2\" indicator -->\n```\n\n### Custom Avatar in Group\n```svelte\n<script lang=\"ts\">\n\timport { Avatar, AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'John Doe' }, { name: 'Jane Smith' }];\n</script>\n\n<AvatarGroup {items}>\n\t{#snippet avatar({ item, index, avatarProps })}\n\t\t<Avatar {...avatarProps} {...item}>\n\t\t\t{#snippet suffix()}\n\t\t\t\t<span class=\"text-xs\">{index + 1}</span>\n\t\t\t{/snippet}\n\t\t</Avatar>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Custom Remaining Count\n```svelte\n<script lang=\"ts\">\n\timport { AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'User 1' }, { name: 'User 2' }, { name: 'User 3' }, { name: 'User 4' }];\n</script>\n\n<AvatarGroup {items} max={3}>\n\t{#snippet remainingCount({ remaining })}\n\t\t<div class=\"avatar-count\">\n\t\t\t+{remaining} more\n\t\t</div>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Status Indicators\n```svelte\n<Avatar name=\"Online User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-success border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n\n<Avatar name=\"Away User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-warning border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n## Accessibility\n\n- `alt` defaults to `name`, so the image always carries alt text\n- Fallback to initials when image fails to load\n- Proper foreground for initials display\n- The image loading flag is bindable\n\n## Notes\n\n- Initials are automatically extracted from the name (first letter of first two words)\n- Avatar image uses object-cover to maintain aspect ratio\n- Prefix badge is positioned at bottom-left, behind the image\n- Suffix badge is positioned at bottom-right, absolute positioning\n- Avatar group creates overlapping effect with negative margins\n- `loading` is true only while the image request is in flight; a failed image falls back to the initials\n- Each new `src` is loaded from scratch: `loading` goes true again and a working URL recovers the picture after a broken one\n\n## Theme Customization\n\nThe Avatar component uses a theme object that can be customized using the `theme` prop or by setting a global theme.\n\n### Theme Structure\n\nThe theme object contains the following parts:\n- **root**: Main avatar container styles\n- **avatarImage**: Avatar image element styles\n- **avatarPrefix**: Prefix badge styles (bottom-left)\n- **avatarSuffix**: Suffix badge styles (bottom-right)\n- **avatarInitials**: Fallback initials display styles\n\n### Theme Type Definition\n\n```typescript\nimport type { AvatarThemeProps } from 'entasis/avatar';\n\n// Example theme customization\nconst customTheme: AvatarThemeProps = {\n root: {\n base: 'custom-base-classes',\n size: {\n small: 'size-6',\n normal: 'size-8',\n large: 'size-10'\n }\n },\n avatarImage: {\n size: {\n small: '',\n normal: '',\n large: ''\n }\n },\n avatarPrefix: {\n size: {\n small: 'size-5 right-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.2rem]',\n large: 'size-5 left-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarSuffix: {\n size: {\n small: 'size-3.5 left-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.3rem]',\n large: 'size-3.5 right-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarInitials: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base'\n }\n }\n};\n```\n\n### Available Variants\n\n**root**:\n- base: Base classes applied to all avatars\n- Variants:\n - size: 'small' | 'normal' | 'large' - Controls avatar dimensions (6/8/10)\n\n**avatarImage**:\n- base: Base classes for avatar image\n- Variants:\n - size: 'small' | 'normal' | 'large' - Inherited from avatar size\n\n**avatarPrefix**:\n- base: Base classes for prefix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarSuffix**:\n- base: Base classes for suffix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarInitials**:\n- base: Base classes for initials fallback\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size based on avatar size\n\n### Usage Examples\n\n**Basic Theme Override**:\n```svelte\n<Avatar \n name=\"John Doe\"\n theme={{\n root: {\n base: 'ring-2 ring-primary',\n size: {\n large: 'size-12'\n }\n },\n avatarInitials: {\n size: {\n large: 'text-lg'\n }\n }\n }}\n/>\n```\n\n**Custom Badge Styling**:\n```svelte\n<Avatar\n name=\"Jane Smith\"\n theme={{\n avatarSuffix: {\n size: {\n normal: 'size-5 ring-2 ring-white'\n }\n }\n }}\n>\n {#snippet suffix()}\n <div class=\"w-3 h-3 bg-success rounded-full\"></div>\n {/snippet}\n</Avatar>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAvatarTheme } from './index.ts';\n \n setAvatarTheme({\n root: {\n base: 'ring-2 ring-neutral-muted transition-all',\n size: {\n normal: 'size-10'\n }\n },\n avatarInitials: {\n base: 'font-bold'\n }\n });\n</script>\n```\n";
|
|
1
|
+
export declare const avatarDescription = "\n# Avatar Component\n\nThe Avatar component displays a user's profile picture with fallback initials. It supports a bindable loading flag, various sizes, and badges (prefix/suffix). The AvatarGroup component displays multiple avatars with overlap.\n\n## Basic Usage\n\n```svelte\n<Avatar name=\"John Doe\" src=\"https://example.com/avatar.png\" />\n```\n\n## Props\n\n### Core Props\n- **name**: string (required) - Display name; its initials are the fallback when no image renders\n- **src**: string - Image URL; omit it, or let it fail, to render the initials instead\n- **alt**: string - Accessible name of the whole avatar (defaults to `name`). An empty string makes the avatar decorative: it is hidden from assistive technology\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - small: 24px (1.5rem)\n - normal: 32px (2rem)\n - large: 40px (2.5rem)\n\n### Image Props\n- **image**: { srcset, sizes, crossorigin, referrerpolicy, loading, decoding, fetchpriority } - Native attributes forwarded to the `<img>`. Use `image={{ loading: 'lazy' }}` to defer offscreen images: the initials stay on screen until the browser has fetched the picture. (The avatar's own `loading` prop is the bindable in-flight flag, not the `<img>` attribute.)\n\n### Loading Props\n- **fallbackDelay**: number (default: 0) - Delay in milliseconds before the initials render while the image is still loading. Until then the surface stays empty, so a fast image never flashes the fallback. A failed image or a missing `src` shows the initials immediately\n- **revealDelay**: number (default: 0) - Delay in milliseconds before a loaded image is revealed\n- **delay**: number - Deprecated alias of `revealDelay`; it never delays the initials\n- **loading**: boolean (default: false, bindable) - True while the image request is in flight; false with no `src`, and false once the image has loaded or failed. A failed image is reported by rendering the initials.\n\n### Content Slots\n- **prefix**: Slot - Badge/icon positioned at bottom-left\n- **suffix**: Slot - Badge/icon positioned at bottom-right\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Avatar Structure\n\n```\n<Avatar>\n\t<AvatarImage /> <!-- Profile picture -->\n\t<AvatarPrefix /> <!-- Behind the image (bottom-left) -->\n\t<AvatarSuffix /> <!-- Absolute position (bottom-right) -->\n\t<AvatarInitials /> <!-- Fallback initials -->\n</Avatar>\n```\n\n## AvatarGroup Props\n\n### Core Props\n- **items**: Array<{ src?: string; alt?: string; name: string } & T> (required) - Avatar items\n- **max**: number - Maximum number of avatars to show before \"+N\" indicator\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n- **image**, **fallbackDelay**, **revealDelay**, **loading**: forwarded to every avatar\n\n### Content Slots\n- **avatar**: Snippet<{ item: T; index: number; avatarProps }> - Custom avatar rendering\n- **remainingCount**: Snippet<{ items: T[]; remaining: number }> - Custom \"+N\" counter rendering\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## AvatarGroup Structure\n\n```\n<AvatarGroup>\n\t<Avatar />\n\t<Avatar />\n\t<Avatar />\n\t<AvatarGroupCount /> <!-- \"+N\" indicator -->\n</AvatarGroup>\n```\n\n## Examples\n\n### Basic Avatar\n```svelte\n<Avatar name=\"Jane Smith\" src=\"/images/jane.jpg\" />\n```\n\n### Without Image (Initials)\n```svelte\n<Avatar name=\"John Doe\" />\n<!-- Displays \"JD\" -->\n```\n\n### Different Sizes\n```svelte\n<Avatar size=\"small\" name=\"Small User\" />\n<Avatar size=\"normal\" name=\"Normal User\" />\n<Avatar size=\"large\" name=\"Large User\" />\n```\n\n### With Status Badge (Prefix)\n```svelte\n<Avatar name=\"John Doe\">\n\t{#snippet prefix()}\n\t\t<div class=\"w-2 h-2 rounded-full bg-success\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n### With Icon Badge (Suffix)\n```svelte\n<script lang=\"ts\">\n\timport { Avatar } from 'entasis/avatar';\n\timport { checkIcon } from 'entasis/icons/check';\n</script>\n\n<Avatar name=\"Jane Smith\">\n\t{#snippet suffix()}\n\t\t{@render checkIcon({ class: 'text-success' })}\n\t{/snippet}\n</Avatar>\n```\n\n### With Loading State\n```svelte\n<script lang=\"ts\">\n\tlet loading = $state(false);\n</script>\n\n<Avatar name=\"John Doe\" src=\"/avatar.jpg\" bind:loading />\n{loading}\n```\n\n### Avatar Group\n```svelte\n<script>\n\tlet items = [\n\t\t{ name: 'John Doe', src: '/john.jpg' },\n\t\t{ name: 'Jane Smith', src: '/jane.jpg' },\n\t\t{ name: 'Bob Johnson', src: '/bob.jpg' }\n\t];\n</script>\n\n<AvatarGroup {items} />\n```\n\n### Avatar Group with Max Limit\n```svelte\n<AvatarGroup \n\titems={[\n\t\t{ name: 'User 1' },\n\t\t{ name: 'User 2' },\n\t\t{ name: 'User 3' },\n\t\t{ name: 'User 4' },\n\t\t{ name: 'User 5' }\n\t]}\n\tmax={3}\n/>\n<!-- Shows 3 avatars + \"+2\" indicator -->\n```\n\n### Custom Avatar in Group\n```svelte\n<script lang=\"ts\">\n\timport { Avatar, AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'John Doe' }, { name: 'Jane Smith' }];\n</script>\n\n<AvatarGroup {items}>\n\t{#snippet avatar({ item, index, avatarProps })}\n\t\t<Avatar {...avatarProps} {...item}>\n\t\t\t{#snippet suffix()}\n\t\t\t\t<span class=\"text-xs\">{index + 1}</span>\n\t\t\t{/snippet}\n\t\t</Avatar>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Custom Remaining Count\n```svelte\n<script lang=\"ts\">\n\timport { AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'User 1' }, { name: 'User 2' }, { name: 'User 3' }, { name: 'User 4' }];\n</script>\n\n<AvatarGroup {items} max={3}>\n\t{#snippet remainingCount({ remaining })}\n\t\t<div class=\"avatar-count\">\n\t\t\t+{remaining} more\n\t\t</div>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Status Indicators\n```svelte\n<Avatar name=\"Online User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-success border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n\n<Avatar name=\"Away User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-warning border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n## Accessibility\n\n- The root is `role=\"img\"` named by `alt ?? name`, so a loading, loaded or failed image and an avatar without `src` are all announced as one image with one name\n- The inner `<img>` has an empty `alt` and the initials are `aria-hidden`, so nothing is read twice\n- `alt=\"\"` marks the avatar decorative (`aria-hidden` on the root), for an avatar next to its visible name\n- Because the root is an image, prefix and suffix content is presentational to assistive technology; keep interactive controls outside the avatar\n- The root carries `data-status=\"idle | loading | loaded | error\"` (`idle` means no `src`). The default theme crossfades the image over the initials on it; style it with `group-data-[status=loaded]/avatar:` or `[data-status=error]`\n- The image loading flag is bindable\n\n## Notes\n\n- Initials are automatically extracted from the name (first letter of first two words)\n- Avatar image uses object-cover to maintain aspect ratio\n- Prefix badge is positioned at bottom-left, behind the image\n- Suffix badge is positioned at bottom-right, absolute positioning\n- Avatar group creates overlapping effect with negative margins\n- `loading` is true only while the image request is in flight; a failed image falls back to the initials\n- Each new `src` is loaded from scratch: `loading` goes true again and a working URL recovers the picture after a broken one\n\n## Theme Customization\n\nThe Avatar component uses a theme object that can be customized using the `theme` prop or by setting a global theme.\n\n### Theme Structure\n\nThe theme object contains the following parts:\n- **root**: Main avatar container styles\n- **avatarImage**: Avatar image element styles\n- **avatarPrefix**: Prefix badge styles (bottom-left)\n- **avatarSuffix**: Suffix badge styles (bottom-right)\n- **avatarInitials**: Fallback initials display styles\n\n### Theme Type Definition\n\n```typescript\nimport type { AvatarThemeProps } from 'entasis/avatar';\n\n// Example theme customization\nconst customTheme: AvatarThemeProps = {\n root: {\n base: 'custom-base-classes',\n size: {\n small: 'size-6',\n normal: 'size-8',\n large: 'size-10'\n }\n },\n avatarImage: {\n size: {\n small: '',\n normal: '',\n large: ''\n }\n },\n avatarPrefix: {\n size: {\n small: 'size-5 right-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.2rem]',\n large: 'size-5 left-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarSuffix: {\n size: {\n small: 'size-3.5 left-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.3rem]',\n large: 'size-3.5 right-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarInitials: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base'\n }\n }\n};\n```\n\n### Available Variants\n\n**root**:\n- base: Base classes applied to all avatars\n- Variants:\n - size: 'small' | 'normal' | 'large' - Controls avatar dimensions (6/8/10)\n\n**avatarImage**:\n- base: Base classes for avatar image\n- Variants:\n - size: 'small' | 'normal' | 'large' - Inherited from avatar size\n\n**avatarPrefix**:\n- base: Base classes for prefix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarSuffix**:\n- base: Base classes for suffix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarInitials**:\n- base: Base classes for initials fallback\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size based on avatar size\n\n### Usage Examples\n\n**Basic Theme Override**:\n```svelte\n<Avatar \n name=\"John Doe\"\n theme={{\n root: {\n base: 'ring-2 ring-primary',\n size: {\n large: 'size-12'\n }\n },\n avatarInitials: {\n size: {\n large: 'text-lg'\n }\n }\n }}\n/>\n```\n\n**Custom Badge Styling**:\n```svelte\n<Avatar\n name=\"Jane Smith\"\n theme={{\n avatarSuffix: {\n size: {\n normal: 'size-5 ring-2 ring-white'\n }\n }\n }}\n>\n {#snippet suffix()}\n <div class=\"w-3 h-3 bg-success rounded-full\"></div>\n {/snippet}\n</Avatar>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAvatarTheme } from './index.ts';\n \n setAvatarTheme({\n root: {\n base: 'ring-2 ring-neutral-muted transition-all',\n size: {\n normal: 'size-10'\n }\n },\n avatarInitials: {\n base: 'font-bold'\n }\n });\n</script>\n```\n";
|