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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const menuDescription = `
|
|
2
2
|
# Menu Component
|
|
3
3
|
|
|
4
|
-
The Menu component is a flexible container that renders an array of menu items
|
|
4
|
+
The Menu component is a flexible container that renders an array of menu items: Buttons, MenuOptions, Separators, submenus, checkbox items, radio groups and labelled groups. It provides theme forwarding capabilities and manages vertical layout with configurable spacing.
|
|
5
5
|
|
|
6
6
|
## Basic Usage
|
|
7
7
|
|
|
@@ -41,8 +41,9 @@ The Menu component is a flexible container that renders an array of menu items i
|
|
|
41
41
|
### Core Props
|
|
42
42
|
- **items**: MenuItem[] (required)
|
|
43
43
|
- Array of menu items to render
|
|
44
|
-
- Each item must have a \`type\` field: 'button', 'option', or '
|
|
44
|
+
- Each item must have a \`type\` field: 'button', 'option', 'separator', 'submenu', 'checkbox', 'radio-group' or 'group'
|
|
45
45
|
- Items are spread with their respective component props
|
|
46
|
+
- Every item accepts a \`key\`. A row keeps its DOM node, and with it focus, the Tab stop and hover state, while rows before it are inserted, removed or reordered, as long as its key stays the same. Without a \`key\` the identity comes from the row's plain-text title or children, its \`href\` or its \`textValue\`, so a menu built from strings needs none. A row whose text changes when it is pressed (Mute becoming Unmute) keeps its node too, as it takes over the key of the row that disappeared in the same place. Give rows whose title is a snippet, or whose text repeats, an explicit \`key\`
|
|
46
47
|
|
|
47
48
|
- **class**: string - Additional CSS classes for the menu container
|
|
48
49
|
|
|
@@ -54,9 +55,19 @@ The Menu component is a flexible container that renders an array of menu items i
|
|
|
54
55
|
|
|
55
56
|
All three axes (\`density\`, \`size\`, \`color\`) are inherited by submenus: a submenu is the same menu one level down and opens on the axes its parent was given.
|
|
56
57
|
|
|
57
|
-
- **header**: Snippet - Optional header content rendered at the top of the menu
|
|
58
|
+
- **header**: Snippet - Optional header content rendered at the top of the menu, outside the \`role="menu"\` element: a field or a link in it is not a menu item
|
|
58
59
|
|
|
59
|
-
- **footer**: Snippet - Optional footer content rendered at the bottom of the menu
|
|
60
|
+
- **footer**: Snippet - Optional footer content rendered at the bottom of the menu, outside the \`role="menu"\` element: links and buttons in it are not menu items. A PopupMenu still closes when a button or link in the footer is pressed
|
|
61
|
+
|
|
62
|
+
- **focusOnMount**: boolean | 'container' | 'last' - Which part takes focus when the menu mounts: \`true\` the first row, \`'last'\` the last row, \`'container'\` the menu itself. A PopupMenu decides from how it opened when this is left out: a keyboard open (Enter, Space, ArrowDown, Shift+F10) highlights the first row, ArrowUp the last, a pointer open focuses the menu itself, and a hover open leaves focus where it is
|
|
63
|
+
|
|
64
|
+
- **filter**: boolean | { placeholder?, label?, match? } (default: false) - Adds a search field above the rows. See Filterable menus
|
|
65
|
+
|
|
66
|
+
- **search** / **defaultSearch** / **onSearchChange**: the text of the search field (bindable \`search\`, initial \`defaultSearch\`, \`onSearchChange(search)\` once per edit)
|
|
67
|
+
|
|
68
|
+
- **onHighlightChange**: (value: string | undefined) => void - Called when the highlighted row changes (keyboard, pointer or filter), with that row's \`value\` (its \`textValue\`, or its text when that is a string); \`undefined\` when no row is highlighted
|
|
69
|
+
|
|
70
|
+
- **empty**: Snippet - Shown in place of the rows when the search matches none of them (default: "No results found.")
|
|
60
71
|
|
|
61
72
|
- **theme**: MenuThemeProps - Custom theme overrides
|
|
62
73
|
- menu: Theme for the container (gap spacing, layout)
|
|
@@ -72,7 +83,7 @@ All three axes (\`density\`, \`size\`, \`color\`) are inherited by submenus: a s
|
|
|
72
83
|
|
|
73
84
|
## MenuItem Types
|
|
74
85
|
|
|
75
|
-
The Menu accepts a discriminated union of
|
|
86
|
+
The Menu accepts a discriminated union of seven item types:
|
|
76
87
|
|
|
77
88
|
### Button Item
|
|
78
89
|
\`\`\`typescript
|
|
@@ -98,6 +109,29 @@ const optionItem = {
|
|
|
98
109
|
} satisfies MenuItem;
|
|
99
110
|
\`\`\`
|
|
100
111
|
|
|
112
|
+
\`textValue\` sets the text type-ahead matches when the visible text should not count, for
|
|
113
|
+
example a row that starts with a keyboard shortcut:
|
|
114
|
+
\`\`\`typescript
|
|
115
|
+
import type { MenuItem } from './index.ts';
|
|
116
|
+
|
|
117
|
+
const copyItem = {
|
|
118
|
+
type: 'option',
|
|
119
|
+
title: '⌘C Copy',
|
|
120
|
+
textValue: 'Copy'
|
|
121
|
+
} satisfies MenuItem;
|
|
122
|
+
\`\`\`
|
|
123
|
+
|
|
124
|
+
\`closeOnClick\` (default true) says whether pressing a button or option closes the PopupMenu it sits in; \`false\` marks the row \`data-menu-keep-open="true"\`:
|
|
125
|
+
\`\`\`typescript
|
|
126
|
+
import type { MenuItem } from './index.ts';
|
|
127
|
+
|
|
128
|
+
const zoomIn = {
|
|
129
|
+
type: 'option',
|
|
130
|
+
title: 'Zoom in',
|
|
131
|
+
closeOnClick: false
|
|
132
|
+
} satisfies MenuItem;
|
|
133
|
+
\`\`\`
|
|
134
|
+
|
|
101
135
|
### Separator Item
|
|
102
136
|
\`\`\`typescript
|
|
103
137
|
import type { MenuItem } from './index.ts';
|
|
@@ -125,21 +159,75 @@ const submenuItem = {
|
|
|
125
159
|
} satisfies MenuItem;
|
|
126
160
|
\`\`\`
|
|
127
161
|
|
|
162
|
+
### Checkbox Item
|
|
163
|
+
A row with a checked state. It is a \`menuitemcheckbox\` with \`aria-checked\`, takes \`value\`, \`defaultValue\` and \`onValueChange\` like the other editable components, and keeps the menu open unless \`closeOnClick: true\`. The check indicator stays mounted and fades out when the row is unchecked. A consumer \`onclick\` runs first and \`preventDefault()\` there refuses the toggle.
|
|
164
|
+
\`\`\`typescript
|
|
165
|
+
import type { MenuItem } from './index.ts';
|
|
166
|
+
|
|
167
|
+
const wordWrap = {
|
|
168
|
+
type: 'checkbox',
|
|
169
|
+
title: 'Word wrap',
|
|
170
|
+
defaultValue: true,
|
|
171
|
+
onValueChange: (next) => console.log(next)
|
|
172
|
+
} satisfies MenuItem;
|
|
173
|
+
\`\`\`
|
|
174
|
+
|
|
175
|
+
### Radio Group Item
|
|
176
|
+
Radio rows that share one value, inside a \`role="group"\` named by \`label\`. Each radio is a \`menuitemradio\`. Choosing the checked radio changes nothing; \`onValueChange\` reports the chosen value once. The group keeps the menu open unless \`closeOnClick: true\` (a radio's own \`closeOnClick\` wins).
|
|
177
|
+
\`\`\`typescript
|
|
178
|
+
import type { MenuItem } from './index.ts';
|
|
179
|
+
|
|
180
|
+
const sortBy = {
|
|
181
|
+
type: 'radio-group',
|
|
182
|
+
label: 'Sort by',
|
|
183
|
+
defaultValue: 'name',
|
|
184
|
+
onValueChange: (value) => console.log(value),
|
|
185
|
+
items: [
|
|
186
|
+
{ value: 'name', title: 'Name' },
|
|
187
|
+
{ value: 'date', title: 'Date modified' }
|
|
188
|
+
]
|
|
189
|
+
} satisfies MenuItem;
|
|
190
|
+
\`\`\`
|
|
191
|
+
|
|
192
|
+
An option that passes \`selected\` still renders a \`menuitemradio\` for single-choice lists that keep their value elsewhere.
|
|
193
|
+
|
|
194
|
+
### Group Item
|
|
195
|
+
Rows under a label, inside a \`role="group"\` that the label names. The visible label is hidden from the accessibility tree, so it is not read twice. Arrow keys and type-ahead cross group boundaries.
|
|
196
|
+
\`\`\`typescript
|
|
197
|
+
import type { MenuItem } from './index.ts';
|
|
198
|
+
|
|
199
|
+
const recent = {
|
|
200
|
+
type: 'group',
|
|
201
|
+
label: 'Recent',
|
|
202
|
+
items: [
|
|
203
|
+
{ type: 'option', title: 'notes.md' },
|
|
204
|
+
{ type: 'option', title: 'todo.md' }
|
|
205
|
+
]
|
|
206
|
+
} satisfies MenuItem;
|
|
207
|
+
\`\`\`
|
|
208
|
+
|
|
128
209
|
## Structure
|
|
129
210
|
|
|
130
211
|
The menu follows this DOM structure:
|
|
131
212
|
\`\`\`
|
|
132
213
|
<Menu>
|
|
133
|
-
<div
|
|
134
|
-
<!--
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
214
|
+
<div> <!-- first element: class, data attributes -->
|
|
215
|
+
<!-- header snippet -->
|
|
216
|
+
<div role="menu">
|
|
217
|
+
<!-- Items rendered based on type -->
|
|
218
|
+
<Button />
|
|
219
|
+
<MenuOption />
|
|
220
|
+
<div role="group">...</div>
|
|
221
|
+
<Separator />
|
|
222
|
+
<!-- ... -->
|
|
223
|
+
</div>
|
|
224
|
+
<!-- footer snippet -->
|
|
139
225
|
</div>
|
|
140
226
|
</Menu>
|
|
141
227
|
\`\`\`
|
|
142
228
|
|
|
229
|
+
With \`filter\` the search field sits between the header and the \`role="menu"\` element, and the empty message (a \`role="status"\` region) after it.
|
|
230
|
+
|
|
143
231
|
## Examples
|
|
144
232
|
|
|
145
233
|
### Simple Menu
|
|
@@ -446,6 +534,83 @@ The menu follows this DOM structure:
|
|
|
446
534
|
</Menu>
|
|
447
535
|
\`\`\`
|
|
448
536
|
|
|
537
|
+
### Checkbox Items and Radio Groups
|
|
538
|
+
\`\`\`svelte
|
|
539
|
+
<script lang="ts">
|
|
540
|
+
import { Menu, type MenuItem } from './index.ts';
|
|
541
|
+
|
|
542
|
+
let minimap = $state(true);
|
|
543
|
+
let sort = $state('name');
|
|
544
|
+
|
|
545
|
+
const items: MenuItem[] = $derived([
|
|
546
|
+
{
|
|
547
|
+
type: 'checkbox',
|
|
548
|
+
title: 'Minimap',
|
|
549
|
+
value: minimap,
|
|
550
|
+
onValueChange: (next) => (minimap = next)
|
|
551
|
+
},
|
|
552
|
+
{ type: 'checkbox', title: 'Word wrap', defaultValue: false },
|
|
553
|
+
{ type: 'separator' },
|
|
554
|
+
{
|
|
555
|
+
type: 'radio-group',
|
|
556
|
+
label: 'Sort by',
|
|
557
|
+
value: sort,
|
|
558
|
+
onValueChange: (next) => (sort = next),
|
|
559
|
+
items: [
|
|
560
|
+
{ value: 'name', title: 'Name' },
|
|
561
|
+
{ value: 'date', title: 'Date modified' },
|
|
562
|
+
{ value: 'size', title: 'Size' }
|
|
563
|
+
]
|
|
564
|
+
}
|
|
565
|
+
]);
|
|
566
|
+
</script>
|
|
567
|
+
|
|
568
|
+
<Menu {items} />
|
|
569
|
+
\`\`\`
|
|
570
|
+
|
|
571
|
+
### Filterable Menu
|
|
572
|
+
A search field above the rows. Typing narrows them (case and accent insensitive, over the row's \`textValue\`, or its text, and its \`value\`); a group whose rows all drop out goes too, and separators are dropped while searching. Focus stays in the field: ArrowDown and ArrowUp highlight rows (wrapping), the first match is highlighted as you type, and Enter presses the highlighted row. ArrowRight at the end of the text opens a highlighted submenu, ArrowLeft at the start leaves a submenu. A row whose title is a snippet needs a \`textValue\` to be found.
|
|
573
|
+
\`\`\`svelte
|
|
574
|
+
<script lang="ts">
|
|
575
|
+
import { PopupMenu } from '../PopupMenu/index.ts';
|
|
576
|
+
import type { MenuItem } from './index.ts';
|
|
577
|
+
|
|
578
|
+
const items: MenuItem[] = [
|
|
579
|
+
{ type: 'option', title: 'Open file' },
|
|
580
|
+
{ type: 'option', title: 'Open folder' },
|
|
581
|
+
{ type: 'option', title: 'Open recent' },
|
|
582
|
+
{ type: 'option', title: 'Save' },
|
|
583
|
+
{ type: 'option', title: 'Save as' }
|
|
584
|
+
];
|
|
585
|
+
</script>
|
|
586
|
+
|
|
587
|
+
<PopupMenu
|
|
588
|
+
trigger={{ content: 'Commands' }}
|
|
589
|
+
menu={{
|
|
590
|
+
items,
|
|
591
|
+
filter: { placeholder: 'Find a command' },
|
|
592
|
+
onSearchChange: (search) => console.log(search),
|
|
593
|
+
onHighlightChange: (value) => console.log(value)
|
|
594
|
+
}}
|
|
595
|
+
/>
|
|
596
|
+
\`\`\`
|
|
597
|
+
|
|
598
|
+
A submenu takes its own \`filter\` (a "Move to..." picker); it opens on its search field:
|
|
599
|
+
\`\`\`typescript
|
|
600
|
+
import type { MenuItem } from './index.ts';
|
|
601
|
+
|
|
602
|
+
const moveTo = {
|
|
603
|
+
type: 'submenu',
|
|
604
|
+
title: 'Move to',
|
|
605
|
+
filter: { placeholder: 'Pick a folder' },
|
|
606
|
+
menu: [
|
|
607
|
+
{ type: 'option', title: 'Inbox' },
|
|
608
|
+
{ type: 'option', title: 'Archive' },
|
|
609
|
+
{ type: 'option', title: 'Projects' }
|
|
610
|
+
]
|
|
611
|
+
} satisfies MenuItem;
|
|
612
|
+
\`\`\`
|
|
613
|
+
|
|
449
614
|
### Mixed Size Items
|
|
450
615
|
\`\`\`svelte
|
|
451
616
|
<script lang="ts">
|
|
@@ -472,12 +637,48 @@ The menu follows this DOM structure:
|
|
|
472
637
|
<Menu {items} density="comfortable" />
|
|
473
638
|
\`\`\`
|
|
474
639
|
|
|
640
|
+
## Styling hooks
|
|
641
|
+
|
|
642
|
+
Rows carry their state as attributes, so \`data-highlighted:\`, \`data-disabled:\` and \`data-selected:\` variants style them without a theme override. \`data-highlighted\` and \`data-selected\` are written as \`"true"\`; match them by presence (\`[data-highlighted]\`).
|
|
643
|
+
|
|
644
|
+
Attributes are presence attributes (set while the state holds, omitted otherwise) unless they carry a value.
|
|
645
|
+
|
|
646
|
+
**Data attributes**
|
|
647
|
+
- \`data-highlighted\`: On a row: present while the keyboard or the pointer highlights it (the roving tab stop).
|
|
648
|
+
- \`data-disabled\`: On a row: present while it is disabled.
|
|
649
|
+
- \`data-selected\`: On a checkbox, radio or option row: present while it is checked or selected.
|
|
650
|
+
- \`data-popup-open\`: On a submenu row: present while its submenu is open.
|
|
651
|
+
- \`data-popup-side\`: On a submenu row: the submenu's \`data-side\` while it is placed.
|
|
652
|
+
- \`data-open\`: On a popup menu or submenu panel: present while open.
|
|
653
|
+
- \`data-closed\`: On a popup menu or submenu panel: present while its exit transition plays.
|
|
654
|
+
- \`data-entering\`: On a popup menu or submenu panel: present while the enter transition plays.
|
|
655
|
+
- \`data-exiting\`: On a popup menu or submenu panel: present while the exit transition plays.
|
|
656
|
+
- \`data-side\`: On a popup menu or submenu panel: the side of its trigger it sits on after flipping.
|
|
657
|
+
- \`data-align\`: On a popup menu or submenu panel: \`start\`, \`center\` or \`end\`.
|
|
658
|
+
- \`data-size\`: On the root and the list: the resolved \`size\`.
|
|
659
|
+
- \`data-density\`: On the root and the list: the resolved \`density\`.
|
|
660
|
+
|
|
661
|
+
**CSS variables** (set on a popup menu's or submenu's positioned wrapper and inherited by the panel and its rows; an inline Menu has none)
|
|
662
|
+
- \`--available-width\`: The width in px the panel can take before it reaches the viewport edges, minus 20px.
|
|
663
|
+
- \`--available-height\`: The room in px between the trigger and the viewport edge on the panel's side, minus 20px. Cap a scrolling list with \`max-height: min(240px, var(--available-height))\`.
|
|
664
|
+
- \`--anchor-width\`: The trigger's width in px, snapped to the device pixel grid.
|
|
665
|
+
- \`--anchor-height\`: The trigger's height in px, snapped to the device pixel grid.
|
|
666
|
+
- \`--transform-origin\`: The panel corner facing the trigger, mirrored in right-to-left documents; the point the panel scales from.
|
|
667
|
+
|
|
668
|
+
The typed maps \`menuDataAttributes\` and \`menuCssVariables\` (from \`entasis/menu\`) list each name with its meaning.
|
|
669
|
+
|
|
475
670
|
## Accessibility
|
|
476
671
|
|
|
477
672
|
- Automatically sets \`role="menu"\` on the container
|
|
478
|
-
- Option items render \`role="menuitem"\`; an option that passes \`selected\` (true or false) renders \`role="menuitemradio"\`
|
|
479
|
-
-
|
|
480
|
-
-
|
|
673
|
+
- Option items render \`role="menuitem"\`; checkbox items render \`menuitemcheckbox\` and radio items \`menuitemradio\`, each with \`aria-checked\`; an option that passes \`selected\` (true or false) renders \`role="menuitemradio"\` too, so a check-marked choice is announced as checked rather than as a plain command
|
|
674
|
+
- Groups and radio groups render \`role="group"\` named (\`aria-labelledby\`) by their label, which is hidden from the accessibility tree. The header, footer and search field sit outside the \`role="menu"\` element
|
|
675
|
+
- ArrowUp / ArrowDown move the highlight, Home / End jump, Enter or Space activates, ArrowRight opens a submenu and ArrowLeft closes it; both are mirrored in right-to-left text, in an inline Menu as in a PopupMenu. A panel opened from a right-to-left trigger carries \`dir="rtl"\` itself, because it is portaled out of the trigger's subtree
|
|
676
|
+
- Tab inside a PopupMenu, ContextMenu or MenuBar menu closes every level and lets the browser carry on from the trigger, so focus lands on the control after it; Shift+Tab closes the menu and stays on the trigger. A field or link in the header or footer keeps Tab until the last one. Focus moving back to a row of the parent menu (a screen reader's cursor, a click) closes the submenus open beside it, so the arrow keys work there again
|
|
677
|
+
- Type-ahead: typing letters moves the highlight to the next item whose label starts with the typed text. An option or submenu item's \`textValue\` replaces its visible text for matching (useful when the title is a snippet or the row shows a shortcut); disabled and hidden items are passed over for the next match, and the typed text starts over when focus leaves the menu
|
|
678
|
+
- Disabled items and items hidden with CSS are skipped by the arrow keys, Home and End. The single Tab stop stays on the focused row element and follows the row that takes its place when the focused row is removed. Rows are keyed by identity (see \`key\`), so inserting, removing or reordering rows around the focused one leaves focus and the Tab stop on the same row
|
|
679
|
+
- Hovering a row highlights it without moving focus. While nothing on the page has focus, the arrow keys and Home / End move focus into the hovered menu; keys typed in a text field, a button or another popup stay there, and Enter or Space never activate the hovered row. A submenu row is the exception: it still opens its submenu after the hover \`delay\`, but a submenu the pointer opened does not take focus, so typing in a field elsewhere carries on
|
|
680
|
+
- Once focus is inside the menu, keys act on the focused row, not on the row under the pointer. When the menu panel itself has focus (a popup menu opened with the pointer), they act on the highlighted row that \`aria-activedescendant\` names, so Enter activates the row under the pointer
|
|
681
|
+
- Arrow, Home, End, Enter and Space pressed with Alt, Ctrl or Meta are left to the browser (Alt+ArrowLeft stays Back), including in menus opened from a MenuBar; Shift does not count as a modifier
|
|
481
682
|
- Supports keyboard navigation through child components
|
|
482
683
|
- MenuOption and Button items handle interactive states
|
|
483
684
|
|
|
@@ -496,16 +697,20 @@ This allows for consistent styling across all menu items while maintaining flexi
|
|
|
496
697
|
|
|
497
698
|
Submenu items automatically:
|
|
498
699
|
- Add a caret-right icon as suffix (unless custom suffix provided)
|
|
499
|
-
- Open submenus
|
|
700
|
+
- Open submenus beside their row on the reading direction's end side (\`inline-end-start\`: right in a left-to-right document, left in a right-to-left one); below \`md\` they drop below the row (\`bottom-start\`)
|
|
701
|
+
- Fall back below their row when neither side of the menu has room (\`fallbackAxisSide: 'end'\`), instead of covering the menu
|
|
500
702
|
- Support hover and click triggers (configurable)
|
|
501
703
|
- Manage submenu state internally using PopupMenu
|
|
502
704
|
- Support nested submenus (submenus within submenus)
|
|
503
705
|
|
|
504
706
|
Default submenu behavior:
|
|
505
707
|
- Opens on hover (after 100ms delay)
|
|
506
|
-
- Opens on click
|
|
708
|
+
- Opens on click. A keyboard open (ArrowRight, Enter, Space) focuses the submenu's first row, a pointer click the submenu itself
|
|
709
|
+
- A second press on an open submenu's row closes it when it came from the keyboard or assistive technology, or follows a click; a mouse click on a submenu the pointer opened keeps it open
|
|
710
|
+
- On Apple platforms an open submenu's row omits \`aria-expanded\` (keeping \`aria-haspopup\` and \`aria-controls\`), because VoiceOver reads the trigger's state again when focus moves into the submenu
|
|
507
711
|
- Closes when the pointer leaves the submenu prediction cone and rectangle tolerance
|
|
508
|
-
-
|
|
712
|
+
- Closes when an item inside is chosen. Inside a PopupMenu, ContextMenu or MenuBar the submenu belongs to that menu: choosing an item at any depth closes every level at once, following the menu's closeOnItemClick. In an inline Menu, choosing an item closes the submenu and focus returns to its row
|
|
713
|
+
- An item (or an ancestor) with \`data-menu-keep-open="true"\` keeps every level open, for multi-select options: \`{ type: 'option', title: 'Bold', attrs: { 'data-menu-keep-open': 'true' } }\`
|
|
509
714
|
|
|
510
715
|
## Notes
|
|
511
716
|
|
|
@@ -523,6 +728,11 @@ The Menu component uses a theme object that can be customized using the \`theme\
|
|
|
523
728
|
|
|
524
729
|
The theme object contains the following parts:
|
|
525
730
|
- **root**: Main menu container styles
|
|
731
|
+
- **list**: The \`role="menu"\` element (density gap)
|
|
732
|
+
- **group** / **groupLabel**: A \`role="group"\` and its label
|
|
733
|
+
- **search** / **searchIcon** / **searchInput**: The search field of a filterable menu
|
|
734
|
+
- **empty**: The message shown when a search matches nothing
|
|
735
|
+
- **header** / **footer**: The header and footer slots
|
|
526
736
|
- **button**: Theme forwarded to Button items (optional)
|
|
527
737
|
- **option**: Theme forwarded to MenuOption items (optional)
|
|
528
738
|
- **separator**: Theme forwarded to Separator items (optional)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the page runs on an Apple platform (macOS, iOS, iPadOS), where VoiceOver reads the
|
|
3
|
+
* state of a submenu trigger again when focus moves into its submenu.
|
|
4
|
+
*/
|
|
5
|
+
export const isApplePlatform = () => {
|
|
6
|
+
if (typeof navigator === 'undefined')
|
|
7
|
+
return false;
|
|
8
|
+
const nav = navigator;
|
|
9
|
+
const platform = nav.userAgentData?.platform || nav.platform || nav.userAgent || '';
|
|
10
|
+
return /Mac|iPhone|iPad|iPod/i.test(platform);
|
|
11
|
+
};
|
|
@@ -4,8 +4,24 @@ import type { WithAttachments } from '../../types/props.js';
|
|
|
4
4
|
import type { ButtonProps } from '../Button/button.props.js';
|
|
5
5
|
import type { MenuOptionProps } from '../MenuOption/menuOption.props.js';
|
|
6
6
|
import type { SeparatorProps } from '../Separator/separator.props.js';
|
|
7
|
+
import type { Slot } from '../Slot/slot.js';
|
|
7
8
|
import type { MenuThemeProps } from './menu.theme.js';
|
|
8
9
|
export type MenuSubmenuMode = 'auto' | 'popover' | 'stack';
|
|
10
|
+
/** Fields every menu item accepts. */
|
|
11
|
+
export type MenuItemBase = {
|
|
12
|
+
/**
|
|
13
|
+
* Identity of the row. A row keeps its DOM node (and with it focus, the tab stop and hover
|
|
14
|
+
* state) while items before it are inserted, removed or reordered, as long as its key stays the
|
|
15
|
+
* same. Left out, the key comes from the row's visible text, `href` or `textValue`, so rows
|
|
16
|
+
* built from plain strings need none. Give rows whose text is a snippet or repeats a key.
|
|
17
|
+
*/
|
|
18
|
+
key?: string | number;
|
|
19
|
+
/**
|
|
20
|
+
* Identifies the row in `onHighlightChange` and in a filter's `match`. Left out, the row's
|
|
21
|
+
* `textValue`, or its text when that is a string, stands for it.
|
|
22
|
+
*/
|
|
23
|
+
value?: string;
|
|
24
|
+
};
|
|
9
25
|
export type SubMenuItemProps = Omit<MenuOptionProps, 'onclick' | 'onpointerenter' | 'onpointerleave'> & {
|
|
10
26
|
/**
|
|
11
27
|
* Array of submenu items.
|
|
@@ -36,28 +52,142 @@ export type SubMenuItemProps = Omit<MenuOptionProps, 'onclick' | 'onpointerenter
|
|
|
36
52
|
* @default false
|
|
37
53
|
*/
|
|
38
54
|
debugSafeArea?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Adds a search field above the submenu's rows (a "Move to..." picker). `true` uses the
|
|
57
|
+
* defaults; an object tunes the field. See `MenuProps.filter`.
|
|
58
|
+
*/
|
|
59
|
+
filter?: MenuFilter;
|
|
60
|
+
/**
|
|
61
|
+
* Called with the `value` of the highlighted row of the submenu, `undefined` when none is.
|
|
62
|
+
*/
|
|
63
|
+
onHighlightChange?: (value: string | undefined) => void;
|
|
39
64
|
};
|
|
40
|
-
|
|
65
|
+
/** What a menu's search field matches against, and how it looks. */
|
|
66
|
+
export type MenuFilterOptions = {
|
|
67
|
+
/** Placeholder of the search field. Defaults to the catalog's search placeholder. */
|
|
68
|
+
placeholder?: string;
|
|
69
|
+
/** Accessible name of the search field. Defaults to the placeholder. */
|
|
70
|
+
label?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Decides whether a row stays visible for the search text. Defaults to a case- and
|
|
73
|
+
* accent-insensitive substring match against the row's `textValue`, `value` or text.
|
|
74
|
+
*/
|
|
75
|
+
match?: (item: MenuFilterMatchItem, search: string) => boolean;
|
|
76
|
+
};
|
|
77
|
+
/** A row as a filter's `match` sees it. */
|
|
78
|
+
export type MenuFilterMatchItem = {
|
|
79
|
+
/** The row's `value`, else its `textValue`, else its text when that is a string. */
|
|
80
|
+
value: string | undefined;
|
|
81
|
+
/** The text the row shows or is matched on. */
|
|
82
|
+
text: string;
|
|
83
|
+
/** The row's own item. */
|
|
84
|
+
item: MenuItem;
|
|
85
|
+
};
|
|
86
|
+
/** `true` shows a search field with the defaults; an object tunes it. */
|
|
87
|
+
export type MenuFilter = boolean | MenuFilterOptions;
|
|
88
|
+
/**
|
|
89
|
+
* A row that closes the menu when pressed unless `closeOnClick` is `false`. Applies to buttons
|
|
90
|
+
* and options; a checkbox item or a radio group keeps the menu open by default.
|
|
91
|
+
*/
|
|
92
|
+
export type MenuCloseOnClick = {
|
|
93
|
+
/**
|
|
94
|
+
* Whether pressing the row closes the menu it sits in.
|
|
95
|
+
* @default true
|
|
96
|
+
*/
|
|
97
|
+
closeOnClick?: boolean;
|
|
98
|
+
};
|
|
99
|
+
export type MenuButtonItem = {
|
|
41
100
|
type: 'button';
|
|
42
|
-
} &
|
|
101
|
+
} & MenuItemBase & MenuCloseOnClick & ButtonProps;
|
|
102
|
+
export type MenuOptionItem = {
|
|
43
103
|
type: 'option';
|
|
44
|
-
} & MenuOptionProps
|
|
104
|
+
} & MenuItemBase & Omit<MenuOptionProps, 'closeOnClick'> & MenuCloseOnClick;
|
|
105
|
+
export type MenuSeparatorItem = {
|
|
45
106
|
type: 'separator';
|
|
46
|
-
} &
|
|
107
|
+
} & Pick<MenuItemBase, 'key'> & SeparatorProps;
|
|
108
|
+
export type MenuSubmenuItem = {
|
|
47
109
|
type: 'submenu';
|
|
48
|
-
} & MenuOptionProps & SubMenuItemProps
|
|
110
|
+
} & MenuItemBase & MenuOptionProps & SubMenuItemProps;
|
|
111
|
+
/**
|
|
112
|
+
* A row with a checked state. The check indicator stays mounted and animates out when the row is
|
|
113
|
+
* unchecked. A press toggles it and keeps the menu open unless `closeOnClick` is `true`.
|
|
114
|
+
*/
|
|
115
|
+
export type MenuCheckboxItem = {
|
|
116
|
+
type: 'checkbox';
|
|
117
|
+
} & Pick<MenuItemBase, 'key'> & Omit<MenuOptionProps, 'selected' | 'role' | 'closeOnClick'> & {
|
|
118
|
+
/** Checked state. Pass it with `onValueChange` to control the row. */
|
|
119
|
+
value?: boolean;
|
|
120
|
+
/** Initial checked state when `value` is not passed. @default false */
|
|
121
|
+
defaultValue?: boolean;
|
|
122
|
+
/** Called once with the new checked state after a press that changes it. */
|
|
123
|
+
onValueChange?: (value: boolean) => void;
|
|
124
|
+
/**
|
|
125
|
+
* Whether pressing the row closes the menu.
|
|
126
|
+
* @default false
|
|
127
|
+
*/
|
|
128
|
+
closeOnClick?: boolean;
|
|
129
|
+
};
|
|
130
|
+
/** One radio of a `radio-group` item. */
|
|
131
|
+
export type MenuRadioItem = Omit<MenuOptionProps, 'selected' | 'role' | 'closeOnClick'> & Pick<MenuItemBase, 'key'> & Pick<MenuCloseOnClick, 'closeOnClick'> & {
|
|
132
|
+
/** The value the group takes when this radio is chosen. Unique within the group. */
|
|
133
|
+
value: string;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Radio rows that share one value, inside a labelled `role="group"`. A press chooses the radio
|
|
137
|
+
* and keeps the menu open unless `closeOnClick` is `true`; choosing the checked radio changes
|
|
138
|
+
* nothing.
|
|
139
|
+
*/
|
|
140
|
+
export type MenuRadioGroupItem = {
|
|
141
|
+
type: 'radio-group';
|
|
142
|
+
key?: string | number;
|
|
143
|
+
/** Label of the group. It names the group for assistive technology and is hidden from the tree otherwise. */
|
|
144
|
+
label?: Slot;
|
|
145
|
+
/** Checked value. Pass it with `onValueChange` to control the group. */
|
|
146
|
+
value?: string;
|
|
147
|
+
/** Initial checked value when `value` is not passed. */
|
|
148
|
+
defaultValue?: string;
|
|
149
|
+
/** Called once with the chosen value after a press that changes it. */
|
|
150
|
+
onValueChange?: (value: string) => void;
|
|
151
|
+
/**
|
|
152
|
+
* Whether choosing a radio closes the menu. A radio's own `closeOnClick` wins.
|
|
153
|
+
* @default false
|
|
154
|
+
*/
|
|
155
|
+
closeOnClick?: boolean;
|
|
156
|
+
/** Disables every radio of the group. */
|
|
157
|
+
disabled?: boolean;
|
|
158
|
+
/** The radios. */
|
|
159
|
+
items: MenuRadioItem[];
|
|
160
|
+
};
|
|
161
|
+
/** Rows under a label, inside a `role="group"` named by it. */
|
|
162
|
+
export type MenuGroupItem = {
|
|
163
|
+
type: 'group';
|
|
164
|
+
key?: string | number;
|
|
165
|
+
/** Label of the group. It names the group for assistive technology and is hidden from the tree otherwise. */
|
|
166
|
+
label?: Slot;
|
|
167
|
+
/** The rows of the group. */
|
|
168
|
+
items: MenuItem[];
|
|
169
|
+
};
|
|
170
|
+
export type MenuItem = MenuButtonItem | MenuOptionItem | MenuSeparatorItem | MenuSubmenuItem | MenuCheckboxItem | MenuRadioGroupItem | MenuGroupItem;
|
|
49
171
|
export type MenuProps = WithAttachments<{
|
|
50
172
|
/**
|
|
51
173
|
* Focus first item on mount.
|
|
174
|
+
* - `true`: the first item.
|
|
175
|
+
* - `'last'`: the last item.
|
|
176
|
+
* - `'container'`: the menu itself, with no item highlighted.
|
|
177
|
+
*
|
|
178
|
+
* Left out, a PopupMenu decides from how it opened: a keyboard open highlights the first item
|
|
179
|
+
* (the last one for ArrowUp), a pointer open focuses the menu, and a hover open leaves focus
|
|
180
|
+
* where it is.
|
|
52
181
|
* @default false
|
|
53
182
|
*/
|
|
54
|
-
focusOnMount?: boolean | 'container';
|
|
183
|
+
focusOnMount?: boolean | 'container' | 'last';
|
|
55
184
|
/**
|
|
56
185
|
* The class name of the menu container. First element that the component outputs in the DOM.
|
|
57
186
|
*/
|
|
58
187
|
class?: string;
|
|
59
188
|
/**
|
|
60
|
-
* Array of menu items to render (Button, MenuOption,
|
|
189
|
+
* Array of menu items to render (Button, MenuOption, Separator, submenu, checkbox, radio
|
|
190
|
+
* group or group).
|
|
61
191
|
*/
|
|
62
192
|
items: MenuItem[];
|
|
63
193
|
/**
|
|
@@ -92,11 +222,44 @@ export type MenuProps = WithAttachments<{
|
|
|
92
222
|
*/
|
|
93
223
|
submenuMode?: MenuSubmenuMode;
|
|
94
224
|
/**
|
|
95
|
-
* Optional header content rendered at the top of the menu
|
|
225
|
+
* Optional header content rendered at the top of the menu, outside the `role="menu"` element
|
|
226
|
+
* (links and fields in it are not menu items).
|
|
96
227
|
*/
|
|
97
228
|
header?: Snippet;
|
|
98
229
|
/**
|
|
99
|
-
* Optional footer content rendered at the bottom of the menu
|
|
230
|
+
* Optional footer content rendered at the bottom of the menu, outside the `role="menu"`
|
|
231
|
+
* element (links and buttons in it are not menu items).
|
|
100
232
|
*/
|
|
101
233
|
footer?: Snippet;
|
|
234
|
+
/**
|
|
235
|
+
* Adds a search field above the rows. Typing narrows the rows (and drops groups left empty);
|
|
236
|
+
* focus stays in the field while ArrowUp and ArrowDown highlight rows, and Enter presses the
|
|
237
|
+
* highlighted one. `true` uses the defaults; an object tunes the placeholder, the label and
|
|
238
|
+
* the match.
|
|
239
|
+
* @default false
|
|
240
|
+
*/
|
|
241
|
+
filter?: MenuFilter;
|
|
242
|
+
/**
|
|
243
|
+
* The search text. Pass it with `onSearchChange` to control the field.
|
|
244
|
+
*/
|
|
245
|
+
search?: string;
|
|
246
|
+
/**
|
|
247
|
+
* Initial search text when `search` is not passed.
|
|
248
|
+
* @default ''
|
|
249
|
+
*/
|
|
250
|
+
defaultSearch?: string;
|
|
251
|
+
/**
|
|
252
|
+
* Called once per edit of the search field with the new text.
|
|
253
|
+
*/
|
|
254
|
+
onSearchChange?: (search: string) => void;
|
|
255
|
+
/**
|
|
256
|
+
* Called when the highlighted row changes (by keyboard, by hover or by filtering), with that
|
|
257
|
+
* row's `value` (its `textValue`, or its text when that is a string) and `undefined` when no
|
|
258
|
+
* row is highlighted.
|
|
259
|
+
*/
|
|
260
|
+
onHighlightChange?: (value: string | undefined) => void;
|
|
261
|
+
/**
|
|
262
|
+
* Shown in place of the rows when the search matches none of them.
|
|
263
|
+
*/
|
|
264
|
+
empty?: Snippet;
|
|
102
265
|
}>;
|