entasis 0.10.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
- package/dist/attachments/disclosurePanel.svelte.js +277 -0
- package/dist/attachments/portal.d.ts +17 -1
- package/dist/attachments/portal.js +39 -2
- package/dist/attachments/spinnerOverlay.svelte.js +12 -0
- package/dist/attachments/transitionSize.d.ts +6 -0
- package/dist/attachments/transitionSize.js +30 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
- package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
- package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
- package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
- package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
- package/dist/components/AIAskUserQuestion/index.js +2 -0
- package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
- package/dist/components/AIAskUserQuestion/schemas.js +10 -3
- package/dist/components/AIChat/AIChat.svelte +10 -0
- package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
- package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
- package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
- package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
- package/dist/components/AIChat/AIChatSurface.svelte +30 -2
- package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
- package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
- package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
- package/dist/components/AIChat/aiChat.mcp.js +31 -15
- package/dist/components/AIChat/aiChat.props.d.ts +36 -10
- package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
- package/dist/components/AIChat/aiChat.theme.js +21 -4
- package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
- package/dist/components/AIChat/index.d.ts +1 -1
- package/dist/components/AIComposer/AIComposer.svelte +102 -5
- package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
- package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
- package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
- package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
- package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
- package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
- package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
- package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
- package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
- package/dist/components/AIComposer/aiComposer.theme.js +37 -5
- package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
- package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
- package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
- package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
- package/dist/components/AIContext/AIContext.svelte +7 -3
- package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
- package/dist/components/AIContext/aiContext.mcp.js +1 -1
- package/dist/components/AIContext/aiContext.props.d.ts +4 -1
- package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
- package/dist/components/AIContext/aiContext.theme.js +7 -2
- package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
- package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
- package/dist/components/AIMarker/AIMarker.svelte +2 -0
- package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
- package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
- package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
- package/dist/components/AIMarker/aiMarker.theme.js +2 -2
- package/dist/components/AIMessage/AIMessage.svelte +38 -16
- package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
- package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
- package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
- package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
- package/dist/components/AIMessage/aiMessage.theme.js +91 -32
- package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
- package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
- package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
- package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
- package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
- package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
- package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
- package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
- package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
- package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
- package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
- package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
- package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
- package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
- package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
- package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
- package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
- package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
- package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
- package/dist/components/AIThread/AIThread.svelte +378 -95
- package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
- package/dist/components/AIThread/AIThreadItems.svelte +266 -64
- package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
- package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
- package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
- package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
- package/dist/components/AIThread/aiThread.mcp.js +34 -20
- package/dist/components/AIThread/aiThread.props.d.ts +73 -8
- package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
- package/dist/components/AIThread/aiThread.theme.js +108 -9
- package/dist/components/AIThread/index.d.ts +1 -1
- package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
- package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
- package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
- package/dist/components/AIThread/threadRenderItems.js +265 -77
- package/dist/components/AIThread/threadScrollController.d.ts +0 -8
- package/dist/components/AIThread/threadScrollController.js +2 -39
- package/dist/components/AIThread/threadTools.d.ts +11 -0
- package/dist/components/AIThread/threadTools.js +79 -0
- package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
- package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
- package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
- package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
- package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
- package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
- package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
- package/dist/components/AITool/AITool.svelte +56 -21
- package/dist/components/AITool/AIToolCallList.svelte +79 -29
- package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
- package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
- package/dist/components/AITool/AIToolValueSection.svelte +126 -28
- package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
- package/dist/components/AITool/AIToolValueTree.svelte +11 -16
- package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
- package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
- package/dist/components/AITool/aiTool.mcp.js +36 -8
- package/dist/components/AITool/aiTool.props.d.ts +52 -6
- package/dist/components/AITool/aiTool.theme.d.ts +117 -39
- package/dist/components/AITool/aiTool.theme.js +144 -140
- package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
- package/dist/components/AITool/aiToolClock.svelte.js +62 -0
- package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
- package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
- package/dist/components/AITool/index.d.ts +2 -1
- package/dist/components/AITool/index.js +1 -0
- package/dist/components/AITool/toolRendering.d.ts +33 -1
- package/dist/components/AITool/toolRendering.js +179 -15
- package/dist/components/AITool/toolValueTree.d.ts +14 -1
- package/dist/components/AITool/toolValueTree.js +126 -27
- package/dist/components/Accordion/Accordion.svelte +109 -109
- package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
- package/dist/components/Accordion/AccordionPanel.svelte +64 -0
- package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
- package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
- package/dist/components/Accordion/accordion.attributes.js +20 -0
- package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
- package/dist/components/Accordion/accordion.mcp.js +78 -22
- package/dist/components/Accordion/accordion.props.d.ts +54 -10
- package/dist/components/Accordion/accordion.theme.d.ts +3 -0
- package/dist/components/Accordion/accordion.theme.js +4 -0
- package/dist/components/Accordion/index.d.ts +1 -0
- package/dist/components/Accordion/index.js +1 -0
- package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
- package/dist/components/Avatar/Avatar.svelte +60 -10
- package/dist/components/Avatar/AvatarGroup.svelte +9 -0
- package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
- package/dist/components/Avatar/avatar.mcp.js +13 -5
- package/dist/components/Avatar/avatar.props.d.ts +28 -1
- package/dist/components/Avatar/avatar.theme.js +3 -3
- package/dist/components/Avatar/index.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
- package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
- package/dist/components/Button/Button.svelte +35 -15
- package/dist/components/Button/button.mcp.d.ts +1 -1
- package/dist/components/Button/button.mcp.js +8 -4
- package/dist/components/Button/button.props.d.ts +23 -8
- package/dist/components/Button/button.theme.d.ts +12 -0
- package/dist/components/Button/button.theme.js +17 -4
- package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
- package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
- package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
- package/dist/components/Collapsible/Collapsible.svelte +125 -19
- package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
- package/dist/components/Collapsible/collapsible.attributes.js +17 -0
- package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
- package/dist/components/Collapsible/collapsible.mcp.js +62 -12
- package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
- package/dist/components/Collapsible/collapsible.theme.js +3 -1
- package/dist/components/Collapsible/index.d.ts +1 -0
- package/dist/components/Collapsible/index.js +1 -0
- package/dist/components/Command/Command.svelte +56 -14
- package/dist/components/Command/command.mcp.d.ts +1 -1
- package/dist/components/Command/command.mcp.js +12 -6
- package/dist/components/Command/command.props.d.ts +39 -6
- package/dist/components/Command/command.state.svelte.d.ts +40 -11
- package/dist/components/Command/command.state.svelte.js +75 -28
- package/dist/components/Command/command.theme.js +4 -3
- package/dist/components/Confirmation/Confirmation.svelte +72 -31
- package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
- package/dist/components/Confirmation/confirmation.mcp.js +5 -4
- package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
- package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
- package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
- package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
- package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
- package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
- package/dist/components/DataTable/DataTable.svelte +4 -9
- package/dist/components/DataTable/DataTableEditor.svelte +5 -0
- package/dist/components/DataTable/DataTableFilter.svelte +1 -0
- package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
- package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
- package/dist/components/DataTable/dataTable.mcp.js +4 -2
- package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
- package/dist/components/DataTable/dataTable.theme.js +9 -6
- package/dist/components/Dialog/Dialog.svelte +120 -35
- package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
- package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
- package/dist/components/Dialog/dialog.api.d.ts +65 -0
- package/dist/components/Dialog/dialog.api.js +1 -0
- package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
- package/dist/components/Dialog/dialog.attributes.js +19 -0
- package/dist/components/Dialog/dialog.indent.d.ts +6 -0
- package/dist/components/Dialog/dialog.indent.js +16 -0
- package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
- package/dist/components/Dialog/dialog.mcp.js +195 -22
- package/dist/components/Dialog/dialog.props.d.ts +102 -19
- package/dist/components/Dialog/dialog.snap.d.ts +40 -0
- package/dist/components/Dialog/dialog.snap.js +78 -0
- package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
- package/dist/components/Dialog/dialog.state.svelte.js +525 -66
- package/dist/components/Dialog/dialog.theme.d.ts +48 -0
- package/dist/components/Dialog/dialog.theme.js +32 -9
- package/dist/components/Dialog/index.d.ts +4 -1
- package/dist/components/Dialog/index.js +1 -0
- package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
- package/dist/components/DocumentViewer/documentOutput.js +2 -1
- package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
- package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
- package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
- package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
- package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
- package/dist/components/Form/Ask/Ask.svelte +9 -13
- package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
- package/dist/components/Form/Ask/ask.mcp.js +1 -1
- package/dist/components/Form/Ask/ask.props.d.ts +1 -1
- package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
- package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
- package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
- package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
- package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
- package/dist/components/Form/Autocomplete/index.d.ts +3 -0
- package/dist/components/Form/Autocomplete/index.js +2 -0
- package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
- package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
- package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
- package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
- package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
- package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
- package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
- package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
- package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
- package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
- package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
- package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
- package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
- package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
- package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
- package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
- package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
- package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
- package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
- package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
- package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
- package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
- package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
- package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
- package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
- package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
- package/dist/components/Form/Combobox/Combobox.svelte +145 -185
- package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
- package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
- package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
- package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
- package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
- package/dist/components/Form/Combobox/combobox.items.js +68 -0
- package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
- package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
- package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
- package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
- package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
- package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
- package/dist/components/Form/Combobox/combobox.theme.js +37 -1
- package/dist/components/Form/Combobox/index.d.ts +2 -1
- package/dist/components/Form/Combobox/index.js +1 -0
- package/dist/components/Form/DateInput/DateInput.svelte +11 -3
- package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
- package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
- package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
- package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
- package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
- package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
- package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
- package/dist/components/Form/Field/Field.svelte +258 -32
- package/dist/components/Form/Field/Field.svelte.d.ts +15 -6
- package/dist/components/Form/Field/FieldGroup.svelte +29 -0
- package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
- package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
- package/dist/components/Form/Field/field.d.ts +75 -10
- package/dist/components/Form/Field/field.mcp.d.ts +1 -1
- package/dist/components/Form/Field/field.mcp.js +158 -18
- package/dist/components/Form/Field/field.messages.d.ts +47 -0
- package/dist/components/Form/Field/field.messages.js +64 -0
- package/dist/components/Form/Field/field.state.svelte.d.ts +117 -40
- package/dist/components/Form/Field/field.state.svelte.js +525 -16
- package/dist/components/Form/Field/field.theme.d.ts +46 -0
- package/dist/components/Form/Field/field.theme.js +33 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
- package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
- package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
- package/dist/components/Form/Field/index.d.ts +5 -2
- package/dist/components/Form/Field/index.js +1 -0
- package/dist/components/Form/Field/schemas.js +7 -2
- package/dist/components/Form/File/FileInput.svelte +24 -3
- package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
- package/dist/components/Form/File/fileInput.mcp.js +1 -0
- package/dist/components/Form/Form/Form.svelte +49 -15
- package/dist/components/Form/Form/FormActions.svelte +3 -1
- package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
- package/dist/components/Form/Form/FormFieldRenderer.svelte +96 -12
- package/dist/components/Form/Form/FormFieldRenderer.svelte.d.ts +3 -2
- package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
- package/dist/components/Form/Form/form.d.ts +84 -11
- package/dist/components/Form/Form/form.mcp.d.ts +1 -1
- package/dist/components/Form/Form/form.mcp.js +178 -12
- package/dist/components/Form/Form/form.props.d.ts +32 -1
- package/dist/components/Form/Form/form.registry.d.ts +28 -0
- package/dist/components/Form/Form/form.registry.js +59 -0
- package/dist/components/Form/Form/form.state.svelte.d.ts +1186 -420
- package/dist/components/Form/Form/form.state.svelte.js +322 -28
- package/dist/components/Form/Form/index.d.ts +4 -1
- package/dist/components/Form/Form/index.js +1 -0
- package/dist/components/Form/Form/visibility.d.ts +3130 -1863
- package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
- package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
- package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
- package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
- package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1050 -408
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
- package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
- package/dist/components/Form/NumberInput/index.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
- package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
- package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
- package/dist/components/Form/PasswordInput/Password.svelte +28 -1
- package/dist/components/Form/PasswordInput/index.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
- package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
- package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
- package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
- package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
- package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
- package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
- package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
- package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
- package/dist/components/Form/PinInput/PinInput.svelte +44 -9
- package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
- package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
- package/dist/components/Form/PinInput/index.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
- package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
- package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
- package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
- package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
- package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
- package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
- package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
- package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
- package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
- package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
- package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
- package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
- package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
- package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
- package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
- package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
- package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
- package/dist/components/Form/Select/Select.svelte +186 -48
- package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
- package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
- package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
- package/dist/components/Form/Select/index.d.ts +2 -1
- package/dist/components/Form/Select/index.js +1 -0
- package/dist/components/Form/Select/select.align.d.ts +5 -0
- package/dist/components/Form/Select/select.align.js +19 -5
- package/dist/components/Form/Select/select.attributes.d.ts +36 -0
- package/dist/components/Form/Select/select.attributes.js +27 -0
- package/dist/components/Form/Select/select.mcp.d.ts +1 -1
- package/dist/components/Form/Select/select.mcp.js +103 -18
- package/dist/components/Form/Select/select.props.d.ts +87 -10
- package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
- package/dist/components/Form/Select/select.state.svelte.js +354 -59
- package/dist/components/Form/Select/select.theme.d.ts +21 -0
- package/dist/components/Form/Select/select.theme.js +22 -0
- package/dist/components/Form/Slider/Slider.svelte +54 -14
- package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
- package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
- package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
- package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
- package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
- package/dist/components/Form/Slider/index.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
- package/dist/components/Form/Slider/slider.mcp.js +55 -11
- package/dist/components/Form/Slider/slider.props.d.ts +35 -2
- package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
- package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
- package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
- package/dist/components/Form/Slider/slider.theme.js +35 -17
- package/dist/components/Form/Switch/Switch.svelte +61 -38
- package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
- package/dist/components/Form/Switch/switch.mcp.js +25 -5
- package/dist/components/Form/Switch/switch.props.d.ts +14 -1
- package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
- package/dist/components/Form/Switch/switch.theme.js +8 -3
- package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
- package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
- package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
- package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
- package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
- package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
- package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
- package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
- package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
- package/dist/components/Form/TextArea/TextArea.svelte +8 -0
- package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
- package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
- package/dist/components/Form/TextInput/TextInput.svelte +8 -1
- package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
- package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
- package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
- package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
- package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
- package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
- package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
- package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
- package/dist/components/HoverCard/HoverCard.svelte +100 -10
- package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
- package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
- package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
- package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
- package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
- package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
- package/dist/components/HoverCard/hoverCard.theme.js +9 -2
- package/dist/components/HoverCard/index.d.ts +1 -0
- package/dist/components/HoverCard/index.js +1 -0
- package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
- package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
- package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
- package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
- package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
- package/dist/components/Kanban/kanban.theme.js +7 -3
- package/dist/components/Layout/layoutSpacing.d.ts +2 -2
- package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
- package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
- package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
- package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
- package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
- package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
- package/dist/components/Map/maplibre-cdn.js +3 -2
- package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
- package/dist/components/Markdown/markdown.mcp.js +2 -1
- package/dist/components/Markdown/markdown.theme.js +18 -9
- package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
- package/dist/components/Menu/Menu.svelte +3 -3
- package/dist/components/Menu/Menu.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
- package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
- package/dist/components/Menu/MenuFloating.svelte +421 -74
- package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
- package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
- package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
- package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
- package/dist/components/Menu/MenuSearchField.svelte +54 -0
- package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
- package/dist/components/Menu/MenuStacked.svelte +404 -158
- package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
- package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
- package/dist/components/Menu/index.d.ts +2 -1
- package/dist/components/Menu/index.js +1 -0
- package/dist/components/Menu/menu.attributes.d.ts +37 -0
- package/dist/components/Menu/menu.attributes.js +28 -0
- package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
- package/dist/components/Menu/menu.filter.svelte.js +143 -0
- package/dist/components/Menu/menu.mcp.d.ts +1 -1
- package/dist/components/Menu/menu.mcp.js +227 -17
- package/dist/components/Menu/menu.platform.d.ts +5 -0
- package/dist/components/Menu/menu.platform.js +11 -0
- package/dist/components/Menu/menu.props.d.ts +172 -9
- package/dist/components/Menu/menu.theme.d.ts +147 -0
- package/dist/components/Menu/menu.theme.js +101 -0
- package/dist/components/Menu/menuTree.d.ts +35 -1
- package/dist/components/Menu/menuTree.js +158 -1
- package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
- package/dist/components/MenuBar/menuBar.mcp.js +4 -2
- package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
- package/dist/components/MenuOption/MenuOption.svelte +5 -1
- package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
- package/dist/components/MenuOption/menuOption.mcp.js +8 -0
- package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
- package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
- package/dist/components/MenuOption/menuOption.theme.js +24 -4
- package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
- package/dist/components/Mermaid/mermaid.mcp.js +8 -8
- package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
- package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
- package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
- package/dist/components/Mermaid/mermaid.theme.js +26 -1
- package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
- package/dist/components/Meter/Meter.svelte +110 -24
- package/dist/components/Meter/Meter.svelte.d.ts +12 -12
- package/dist/components/Meter/meter.mcp.d.ts +1 -1
- package/dist/components/Meter/meter.mcp.js +23 -37
- package/dist/components/Meter/meter.props.d.ts +36 -44
- package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
- package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
- package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
- package/dist/components/NavigationMenu/index.d.ts +4 -0
- package/dist/components/NavigationMenu/index.js +3 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
- package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
- package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
- package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
- package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
- package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
- package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
- package/dist/components/Overlay/Overlay.svelte +19 -30
- package/dist/components/Overlay/index.d.ts +1 -0
- package/dist/components/Overlay/index.js +1 -0
- package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
- package/dist/components/Overlay/overlay.attributes.js +14 -0
- package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
- package/dist/components/Overlay/overlay.mcp.js +21 -3
- package/dist/components/Overlay/overlay.props.d.ts +8 -4
- package/dist/components/Popover/Popover.svelte +163 -52
- package/dist/components/Popover/Popover.svelte.d.ts +23 -2
- package/dist/components/Popover/PopoverSession.svelte +12 -0
- package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
- package/dist/components/Popover/index.d.ts +10 -2
- package/dist/components/Popover/index.js +4 -1
- package/dist/components/Popover/popover.api.d.ts +83 -0
- package/dist/components/Popover/popover.api.js +1 -0
- package/dist/components/Popover/popover.attributes.d.ts +32 -0
- package/dist/components/Popover/popover.attributes.js +28 -0
- package/dist/components/Popover/popover.claims.d.ts +19 -0
- package/dist/components/Popover/popover.claims.js +45 -0
- package/dist/components/Popover/popover.mcp.d.ts +1 -1
- package/dist/components/Popover/popover.mcp.js +163 -31
- package/dist/components/Popover/popover.position.d.ts +226 -0
- package/dist/components/Popover/popover.position.js +402 -0
- package/dist/components/Popover/popover.props.d.ts +179 -24
- package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
- package/dist/components/Popover/popover.state.svelte.js +1034 -194
- package/dist/components/Popover/popover.theme.d.ts +15 -0
- package/dist/components/Popover/popover.theme.js +27 -2
- package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
- package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
- package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
- package/dist/components/PopupMenu/popupMenu.context.js +52 -0
- package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
- package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
- package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
- package/dist/components/Progress/Progress.svelte +160 -0
- package/dist/components/Progress/Progress.svelte.d.ts +4 -0
- package/dist/components/Progress/index.d.ts +3 -0
- package/dist/components/Progress/index.js +2 -0
- package/dist/components/Progress/progress.mcp.d.ts +1 -0
- package/dist/components/Progress/progress.mcp.js +101 -0
- package/dist/components/Progress/progress.props.d.ts +79 -0
- package/dist/components/Progress/progress.props.js +1 -0
- package/dist/components/Progress/progress.theme.d.ts +129 -0
- package/dist/components/Progress/progress.theme.js +83 -0
- package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
- package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
- package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
- package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
- package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
- package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
- package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
- package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
- package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
- package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
- package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
- package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
- package/dist/components/RichTextInput/suggestions.js +2 -0
- package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
- package/dist/components/ScrollArea/index.d.ts +2 -1
- package/dist/components/ScrollArea/index.js +1 -0
- package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
- package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
- package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
- package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
- package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
- package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
- package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
- package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
- package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
- package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
- package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
- package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
- package/dist/components/Sidebar/SidebarAction.svelte +13 -3
- package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
- package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
- package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
- package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
- package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
- package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
- package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
- package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
- package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
- package/dist/components/Sidebar/index.d.ts +1 -0
- package/dist/components/Sidebar/index.js +1 -0
- package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
- package/dist/components/Sidebar/sidebar-position.js +31 -2
- package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
- package/dist/components/Sidebar/sidebar.attributes.js +29 -0
- package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
- package/dist/components/Sidebar/sidebar.mcp.js +45 -10
- package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
- package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
- package/dist/components/Sidebar/sidebar.theme.js +113 -62
- package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
- package/dist/components/Stepper/Stepper.svelte +2 -0
- package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
- package/dist/components/Stepper/stepper.mcp.js +1 -0
- package/dist/components/Stepper/stepper.props.d.ts +5 -0
- package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
- package/dist/components/Stepper/stepper.state.svelte.js +31 -12
- package/dist/components/Tabbar/Tabbar.svelte +55 -16
- package/dist/components/Tabbar/index.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
- package/dist/components/Tabbar/tabbar.mcp.js +26 -9
- package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
- package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
- package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
- package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
- package/dist/components/Tabs/Tabs.svelte +73 -16
- package/dist/components/Tabs/index.d.ts +2 -1
- package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
- package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
- package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
- package/dist/components/Tabs/tabs.mcp.js +22 -4
- package/dist/components/Tabs/tabs.props.d.ts +39 -12
- package/dist/components/Tabs/tabs.theme.js +3 -1
- package/dist/components/Theme/Theme.svelte +44 -27
- package/dist/components/Theme/helper.d.ts +16 -2
- package/dist/components/Theme/helper.js +46 -4
- package/dist/components/Theme/theme.mcp.d.ts +1 -1
- package/dist/components/Theme/theme.mcp.js +103 -0
- package/dist/components/Theme/theme.props.d.ts +16 -0
- package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
- package/dist/components/Theme/theme.state.svelte.js +18 -1
- package/dist/components/Toast/Toast.svelte +184 -39
- package/dist/components/Toast/Toaster.svelte +14 -10
- package/dist/components/Toast/index.d.ts +1 -0
- package/dist/components/Toast/toast.mcp.d.ts +1 -1
- package/dist/components/Toast/toast.mcp.js +47 -6
- package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
- package/dist/components/Toast/toast.state.svelte.js +513 -68
- package/dist/components/Toast/toast.theme.js +1 -1
- package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
- package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
- package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
- package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
- package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
- package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
- package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
- package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
- package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
- package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
- package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
- package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
- package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
- package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
- package/dist/components/Tooltip/Tooltip.svelte +4 -12
- package/dist/components/Tooltip/TooltipHost.svelte +136 -15
- package/dist/components/Tooltip/index.d.ts +1 -0
- package/dist/components/Tooltip/index.js +1 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
- package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
- package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
- package/dist/components/Tooltip/tooltip.attributes.js +28 -0
- package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
- package/dist/components/Tooltip/tooltip.mcp.js +111 -10
- package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
- package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
- package/dist/components/Tooltip/tooltip.surface.js +42 -0
- package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
- package/dist/components/Utils/BeforeHydratation.svelte +14 -3
- package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
- package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
- package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
- package/dist/generated/componentAliases.d.ts +3 -0
- package/dist/generated/componentAliases.js +3 -0
- package/dist/generated/componentContract.d.ts +79 -34
- package/dist/generated/componentContract.js +231 -6
- package/dist/generated/componentMcpRegistry.js +6 -0
- package/dist/i18n/ar.js +107 -3
- package/dist/i18n/context.svelte.d.ts +6 -0
- package/dist/i18n/context.svelte.js +12 -0
- package/dist/i18n/de.js +101 -3
- package/dist/i18n/en.d.ts +91 -2
- package/dist/i18n/en.js +101 -3
- package/dist/i18n/es.js +101 -3
- package/dist/i18n/fr.js +101 -3
- package/dist/i18n/ja.js +101 -3
- package/dist/i18n/pt.js +101 -3
- package/dist/i18n/zh.js +101 -3
- package/dist/tailwind/geometry.js +7 -0
- package/dist/tailwind/global.js +31 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/types.mcp.d.ts +1 -1
- package/dist/types/types.mcp.js +23 -0
- package/dist/utils/cspNonce.d.ts +16 -0
- package/dist/utils/cspNonce.js +39 -0
- package/dist/utils/cva/merge.d.ts +5 -1
- package/dist/utils/cva/merge.js +6 -4
- package/dist/utils/focus.d.ts +34 -0
- package/dist/utils/focus.js +93 -0
- package/dist/utils/focusHistory.d.ts +21 -0
- package/dist/utils/focusHistory.js +99 -0
- package/dist/utils/handlers.d.ts +7 -0
- package/dist/utils/handlers.js +14 -0
- package/dist/utils/hoverIntent.d.ts +42 -0
- package/dist/utils/hoverIntent.js +57 -0
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.js +15 -0
- package/dist/utils/layers.svelte.d.ts +32 -4
- package/dist/utils/layers.svelte.js +214 -21
- package/dist/utils/listFilter.d.ts +44 -0
- package/dist/utils/listFilter.js +130 -0
- package/dist/utils/match.d.ts +35 -0
- package/dist/utils/match.js +36 -0
- package/dist/utils/number.d.ts +126 -0
- package/dist/utils/number.js +401 -0
- package/dist/utils/openChange.d.ts +88 -0
- package/dist/utils/openChange.js +71 -0
- package/dist/utils/openLifecycle.svelte.d.ts +41 -0
- package/dist/utils/openLifecycle.svelte.js +134 -0
- package/dist/utils/pointerDrag.d.ts +10 -0
- package/dist/utils/pointerDrag.js +37 -2
- package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
- package/dist/utils/pragmaticDragAndDrop.js +8 -3
- package/dist/utils/range.d.ts +62 -0
- package/dist/utils/range.js +70 -0
- package/dist/utils/requestNativeSubmit.d.ts +17 -0
- package/dist/utils/requestNativeSubmit.js +47 -0
- package/dist/utils/safeArea.svelte.d.ts +10 -1
- package/dist/utils/safeArea.svelte.js +19 -11
- package/dist/utils/stateAttributes.d.ts +108 -0
- package/dist/utils/stateAttributes.js +78 -0
- package/dist/utils/swipeVelocity.d.ts +32 -0
- package/dist/utils/swipeVelocity.js +59 -0
- package/dist/utils/timer.svelte.d.ts +65 -2
- package/dist/utils/timer.svelte.js +159 -25
- package/dist/utils/trigger.d.ts +41 -0
- package/dist/utils/trigger.js +103 -0
- package/dist/utils/typeahead.d.ts +9 -0
- package/dist/utils/typeahead.js +21 -9
- package/dist/utils/useDndList.svelte.d.ts +1 -1
- package/dist/utils/useDndList.svelte.js +6 -23
- package/dist/utils/useFocusScope.svelte.d.ts +29 -0
- package/dist/utils/useFocusScope.svelte.js +189 -27
- package/dist/utils/useHoverAction.svelte.d.ts +44 -4
- package/dist/utils/useHoverAction.svelte.js +161 -51
- package/dist/utils/useKeyDown.svelte.d.ts +19 -2
- package/dist/utils/useKeyDown.svelte.js +19 -12
- package/dist/utils/useListNavigation.svelte.d.ts +94 -13
- package/dist/utils/useListNavigation.svelte.js +261 -35
- package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
- package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
- package/dist/utils/useNavigation.svelte.d.ts +36 -3
- package/dist/utils/useNavigation.svelte.js +699 -332
- package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
- package/dist/utils/usePressAndHold.svelte.js +191 -0
- package/dist/utils/useScrollLock.svelte.d.ts +20 -1
- package/dist/utils/useScrollLock.svelte.js +54 -13
- package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
- package/dist/utils/useSlidingIndicator.svelte.js +27 -5
- package/dist/utils/useTabBridge.svelte.d.ts +20 -0
- package/dist/utils/useTabBridge.svelte.js +109 -0
- package/dist/utils/values.d.ts +15 -0
- package/dist/utils/values.js +49 -0
- package/package.json +31 -2
- package/dist/generated/componentMcpRegistry.d.ts +0 -142
- package/dist/utils/useDrag.svelte.d.ts +0 -11
- package/dist/utils/useDrag.svelte.js +0 -55
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
<script lang="ts" generics="Value extends string = string">
|
|
2
|
+
import type { Attachment } from 'svelte/attachments';
|
|
3
|
+
import Button from '../Button/Button.svelte';
|
|
4
|
+
import { useDefaultColor } from '../Theme/theme.state.svelte.js';
|
|
5
|
+
import { transitionSize } from '../../attachments/transitionSize.js';
|
|
6
|
+
import { createBindableValue } from '../../utils/state.svelte.js';
|
|
7
|
+
import { composeHandlers } from '../../utils/handlers.js';
|
|
8
|
+
import {
|
|
9
|
+
openStateAttributes,
|
|
10
|
+
transitionStatusAttributes,
|
|
11
|
+
presence
|
|
12
|
+
} from '../../utils/stateAttributes.js';
|
|
13
|
+
import NavigationMenuContent from './NavigationMenuContent.svelte';
|
|
14
|
+
import NavigationMenuTrigger from './NavigationMenuTrigger.svelte';
|
|
15
|
+
import type { NavigationMenuProps } from './navigationMenu.props.js';
|
|
16
|
+
import {
|
|
17
|
+
setNavigationMenuState,
|
|
18
|
+
useNavigationMenuState,
|
|
19
|
+
type NavigationMenuState
|
|
20
|
+
} from './navigationMenu.state.svelte.js';
|
|
21
|
+
import { useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
22
|
+
|
|
23
|
+
let {
|
|
24
|
+
items,
|
|
25
|
+
label,
|
|
26
|
+
ref = $bindable(null),
|
|
27
|
+
value = $bindable(),
|
|
28
|
+
defaultValue = null,
|
|
29
|
+
onValueChange,
|
|
30
|
+
openOnHover = true,
|
|
31
|
+
delay = 50,
|
|
32
|
+
closeDelay = 100,
|
|
33
|
+
keepMounted = false,
|
|
34
|
+
onAfterOpen,
|
|
35
|
+
onAfterClose,
|
|
36
|
+
size = 'normal',
|
|
37
|
+
density = 'normal',
|
|
38
|
+
color,
|
|
39
|
+
dir,
|
|
40
|
+
transition,
|
|
41
|
+
class: className = '',
|
|
42
|
+
theme,
|
|
43
|
+
...attachments
|
|
44
|
+
}: NavigationMenuProps<Value> = $props();
|
|
45
|
+
|
|
46
|
+
const id = $props.id();
|
|
47
|
+
const classes = $derived(useNavigationMenuTheme(theme));
|
|
48
|
+
const resolvedColor = $derived(useDefaultColor(color));
|
|
49
|
+
|
|
50
|
+
const valueState = createBindableValue<Value | null>(
|
|
51
|
+
() => value,
|
|
52
|
+
(next) => {
|
|
53
|
+
value = next;
|
|
54
|
+
},
|
|
55
|
+
() => defaultValue
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const menu = useNavigationMenuState<Value>({
|
|
59
|
+
id,
|
|
60
|
+
items: () => items,
|
|
61
|
+
value: () => valueState.value,
|
|
62
|
+
setValue: (next) => {
|
|
63
|
+
valueState.value = next;
|
|
64
|
+
},
|
|
65
|
+
onValueChange: () => onValueChange,
|
|
66
|
+
openOnHover: () => openOnHover,
|
|
67
|
+
delay: () => delay,
|
|
68
|
+
closeDelay: () => closeDelay,
|
|
69
|
+
keepMounted: () => keepMounted,
|
|
70
|
+
dir: () => dir,
|
|
71
|
+
transition: () => transition,
|
|
72
|
+
motion: () => theme?.motion,
|
|
73
|
+
onAfterOpen: () => onAfterOpen,
|
|
74
|
+
onAfterClose: () => onAfterClose
|
|
75
|
+
});
|
|
76
|
+
// Svelte's `out:` directive takes an identifier.
|
|
77
|
+
const panelOut = menu.panelOut;
|
|
78
|
+
setNavigationMenuState(menu as unknown as NavigationMenuState<string>);
|
|
79
|
+
|
|
80
|
+
// The current page: `aria-current` is not a Button prop, so it is written on the element.
|
|
81
|
+
const ariaCurrent =
|
|
82
|
+
(current: boolean): Attachment<HTMLElement> =>
|
|
83
|
+
(node) => {
|
|
84
|
+
if (!current) return;
|
|
85
|
+
node.setAttribute('aria-current', 'page');
|
|
86
|
+
return () => node.removeAttribute('aria-current');
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// Keys that matter for a stable list: panels by value, links by position.
|
|
90
|
+
const itemKey = (item: (typeof items)[number], index: number) =>
|
|
91
|
+
item.type === 'panel' ? `panel:${item.value}` : `link:${index}`;
|
|
92
|
+
</script>
|
|
93
|
+
|
|
94
|
+
<nav
|
|
95
|
+
bind:this={ref}
|
|
96
|
+
aria-label={label}
|
|
97
|
+
{dir}
|
|
98
|
+
data-color={resolvedColor}
|
|
99
|
+
data-size={size}
|
|
100
|
+
data-density={density}
|
|
101
|
+
{...openStateAttributes(menu.isOpen)}
|
|
102
|
+
class={classes.root({ size, className })}
|
|
103
|
+
onfocusout={menu.handleFocusOut}
|
|
104
|
+
{@attach menu.root}
|
|
105
|
+
{...attachments}
|
|
106
|
+
>
|
|
107
|
+
<ul class={classes.list({ size })} {@attach menu.list}>
|
|
108
|
+
{#each items as item, index (itemKey(item, index))}
|
|
109
|
+
<li class={classes.item()}>
|
|
110
|
+
{#if item.type === 'panel'}
|
|
111
|
+
<NavigationMenuTrigger {item} {size} color={resolvedColor} {classes} />
|
|
112
|
+
{:else}
|
|
113
|
+
{@const link = item}
|
|
114
|
+
<Button
|
|
115
|
+
href={link.href}
|
|
116
|
+
target={link.target}
|
|
117
|
+
rel={link.rel}
|
|
118
|
+
variant="ghost"
|
|
119
|
+
{size}
|
|
120
|
+
color={resolvedColor}
|
|
121
|
+
disabled={link.disabled}
|
|
122
|
+
label={link.iconOnly && typeof link.label === 'string' ? link.label : undefined}
|
|
123
|
+
prefix={link.prefix}
|
|
124
|
+
children={link.iconOnly ? undefined : link.label}
|
|
125
|
+
data-slot="navigation-menu-link"
|
|
126
|
+
data-selected={presence(link.active)}
|
|
127
|
+
data-disabled={presence(link.disabled)}
|
|
128
|
+
class={classes.link({ active: !!link.active })}
|
|
129
|
+
onclick={composeHandlers(link.onclick, menu.pressLink)}
|
|
130
|
+
{@attach ariaCurrent(!!link.active)}
|
|
131
|
+
/>
|
|
132
|
+
{/if}
|
|
133
|
+
</li>
|
|
134
|
+
{/each}
|
|
135
|
+
</ul>
|
|
136
|
+
|
|
137
|
+
{#if menu.rendered}
|
|
138
|
+
<div
|
|
139
|
+
{@attach menu.viewport}
|
|
140
|
+
hidden={!menu.visible}
|
|
141
|
+
data-side="bottom"
|
|
142
|
+
data-align="start"
|
|
143
|
+
{...openStateAttributes(menu.isOpen)}
|
|
144
|
+
class={classes.viewport({ switching: menu.activationDirection !== null })}
|
|
145
|
+
style:top="var(--navigation-menu-anchor-bottom, 100%)"
|
|
146
|
+
style:z-index={menu.layer.zIndex}
|
|
147
|
+
style:translate={menu.direction === 'rtl'
|
|
148
|
+
? 'clamp(var(--navigation-menu-min-x), calc(var(--navigation-menu-anchor-end) - 100%), calc(var(--navigation-menu-max-x) - 100%))'
|
|
149
|
+
: 'clamp(var(--navigation-menu-min-x), var(--navigation-menu-anchor-start), calc(var(--navigation-menu-max-x) - 100%))'}
|
|
150
|
+
>
|
|
151
|
+
<div
|
|
152
|
+
{@attach menu.popup}
|
|
153
|
+
{@attach transitionSize({ axis: 'both', isActive: () => menu.isSwitching() })}
|
|
154
|
+
data-side="bottom"
|
|
155
|
+
data-align="start"
|
|
156
|
+
{...openStateAttributes(menu.isOpen)}
|
|
157
|
+
{...transitionStatusAttributes(menu.status)}
|
|
158
|
+
class={classes.popup({ density })}
|
|
159
|
+
>
|
|
160
|
+
{#each menu.panels as panel (panel.value)}
|
|
161
|
+
{#if keepMounted || panel.value === menu.displayValue}
|
|
162
|
+
{@const active = panel.value === menu.displayValue && menu.isOpen}
|
|
163
|
+
<div
|
|
164
|
+
id={menu.panelId(panel.value)}
|
|
165
|
+
hidden={!active}
|
|
166
|
+
data-activation-direction={active
|
|
167
|
+
? (menu.activationDirection ?? undefined)
|
|
168
|
+
: undefined}
|
|
169
|
+
{...openStateAttributes(active)}
|
|
170
|
+
class={classes.panel({ density })}
|
|
171
|
+
{@attach menu.panel(panel.value)}
|
|
172
|
+
out:panelOut
|
|
173
|
+
>
|
|
174
|
+
<NavigationMenuContent item={panel} {size} {density} {classes} />
|
|
175
|
+
</div>
|
|
176
|
+
{/if}
|
|
177
|
+
{/each}
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
{/if}
|
|
181
|
+
</nav>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { NavigationMenuProps } from './navigationMenu.props.js';
|
|
2
|
+
declare function $$render<Value extends string = string>(): {
|
|
3
|
+
props: NavigationMenuProps<Value>;
|
|
4
|
+
exports: {};
|
|
5
|
+
bindings: "value" | "ref";
|
|
6
|
+
slots: {};
|
|
7
|
+
events: {};
|
|
8
|
+
};
|
|
9
|
+
declare class __sveltets_Render<Value extends string = string> {
|
|
10
|
+
props(): ReturnType<typeof $$render<Value>>['props'];
|
|
11
|
+
events(): ReturnType<typeof $$render<Value>>['events'];
|
|
12
|
+
slots(): ReturnType<typeof $$render<Value>>['slots'];
|
|
13
|
+
bindings(): "value" | "ref";
|
|
14
|
+
exports(): {};
|
|
15
|
+
}
|
|
16
|
+
interface $$IsomorphicComponent {
|
|
17
|
+
new <Value extends string = string>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Value>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Value>['props']>, ReturnType<__sveltets_Render<Value>['events']>, ReturnType<__sveltets_Render<Value>['slots']>> & {
|
|
18
|
+
$$bindings?: ReturnType<__sveltets_Render<Value>['bindings']>;
|
|
19
|
+
} & ReturnType<__sveltets_Render<Value>['exports']>;
|
|
20
|
+
<Value extends string = string>(internal: unknown, props: ReturnType<__sveltets_Render<Value>['props']> & {}): ReturnType<__sveltets_Render<Value>['exports']>;
|
|
21
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
22
|
+
}
|
|
23
|
+
declare const NavigationMenu: $$IsomorphicComponent;
|
|
24
|
+
type NavigationMenu<Value extends string = string> = InstanceType<typeof NavigationMenu<Value>>;
|
|
25
|
+
export default NavigationMenu;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Slot from '../Slot/Slot.svelte';
|
|
3
|
+
import { caretDownIcon } from '../Icons/caretDown.js';
|
|
4
|
+
import type { Density, Sizes } from '../../types/theme.js';
|
|
5
|
+
import { composeHandlers } from '../../utils/handlers.js';
|
|
6
|
+
import { itemStateAttributes } from '../../utils/stateAttributes.js';
|
|
7
|
+
import { on } from 'svelte/events';
|
|
8
|
+
import type { Attachment } from 'svelte/attachments';
|
|
9
|
+
import { getNavigationMenuState } from './navigationMenu.state.svelte.js';
|
|
10
|
+
import type {
|
|
11
|
+
NavigationMenuItem,
|
|
12
|
+
NavigationMenuLink,
|
|
13
|
+
NavigationMenuPanel
|
|
14
|
+
} from './navigationMenu.props.js';
|
|
15
|
+
import type { useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
16
|
+
|
|
17
|
+
type Classes = ReturnType<typeof useNavigationMenuTheme>;
|
|
18
|
+
|
|
19
|
+
// Keyboard focus reads like a highlighted menu row: the shared state layer fills the row through
|
|
20
|
+
// `data-highlighted`, with no ring, as in Menu and PopupMenu. Pointer focus adds nothing (hover
|
|
21
|
+
// already fills the row).
|
|
22
|
+
const highlightOnKeyboardFocus: Attachment<HTMLElement> = (node) => {
|
|
23
|
+
const offFocus = on(node, 'focus', () => {
|
|
24
|
+
if (node.matches(':focus-visible')) node.dataset.highlighted = 'true';
|
|
25
|
+
});
|
|
26
|
+
const offBlur = on(node, 'blur', () => {
|
|
27
|
+
delete node.dataset.highlighted;
|
|
28
|
+
});
|
|
29
|
+
return () => {
|
|
30
|
+
offFocus();
|
|
31
|
+
offBlur();
|
|
32
|
+
delete node.dataset.highlighted;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
let {
|
|
37
|
+
item,
|
|
38
|
+
size,
|
|
39
|
+
density,
|
|
40
|
+
classes
|
|
41
|
+
}: {
|
|
42
|
+
item: NavigationMenuPanel<string>;
|
|
43
|
+
size: Sizes;
|
|
44
|
+
density: Density;
|
|
45
|
+
classes: Classes;
|
|
46
|
+
} = $props();
|
|
47
|
+
|
|
48
|
+
const menu = getNavigationMenuState();
|
|
49
|
+
const rootId = $derived(menu.panelId(item.value));
|
|
50
|
+
|
|
51
|
+
function pressDisabled(event: MouseEvent) {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
}
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
{#snippet linkRow(link: NavigationMenuLink)}
|
|
57
|
+
<!-- eslint-disable svelte/no-navigation-without-resolve -- Package consumers supply URLs; library links cannot depend on SvelteKit routing. -->
|
|
58
|
+
<a
|
|
59
|
+
href={link.disabled ? undefined : link.href}
|
|
60
|
+
target={link.target}
|
|
61
|
+
rel={link.rel}
|
|
62
|
+
role={link.disabled ? 'link' : undefined}
|
|
63
|
+
aria-disabled={link.disabled ? 'true' : undefined}
|
|
64
|
+
aria-current={link.active ? 'page' : undefined}
|
|
65
|
+
tabindex={link.disabled ? -1 : undefined}
|
|
66
|
+
data-slot="navigation-menu-content-link"
|
|
67
|
+
{...itemStateAttributes({ selected: link.active, disabled: link.disabled })}
|
|
68
|
+
class={classes.contentLink({ size, density, active: !!link.active, disabled: !!link.disabled })}
|
|
69
|
+
{@attach highlightOnKeyboardFocus}
|
|
70
|
+
onclick={link.disabled ? pressDisabled : composeHandlers(link.onclick, menu.pressLink)}
|
|
71
|
+
>
|
|
72
|
+
{#if link.prefix}
|
|
73
|
+
<span class={classes.contentPrefix()}><Slot render={link.prefix} /></span>
|
|
74
|
+
{/if}
|
|
75
|
+
<span class={classes.contentText()}>
|
|
76
|
+
<span class={classes.contentTitle()}><Slot render={link.label} /></span>
|
|
77
|
+
{#if link.description}
|
|
78
|
+
<span class={classes.contentDescription()}><Slot render={link.description} /></span>
|
|
79
|
+
{/if}
|
|
80
|
+
</span>
|
|
81
|
+
</a>
|
|
82
|
+
<!-- eslint-enable svelte/no-navigation-without-resolve -->
|
|
83
|
+
{/snippet}
|
|
84
|
+
|
|
85
|
+
{#snippet body(entry: NavigationMenuPanel<string>, path: string, depth: number)}
|
|
86
|
+
{#if Array.isArray(entry.content)}
|
|
87
|
+
<ul class={classes.contentList({ density, nested: depth > 0 })}>
|
|
88
|
+
{#each entry.content as link, index (index)}
|
|
89
|
+
<li>{@render linkRow(link)}</li>
|
|
90
|
+
{/each}
|
|
91
|
+
</ul>
|
|
92
|
+
{:else if entry.content}
|
|
93
|
+
{@render entry.content({ close: () => menu.close() })}
|
|
94
|
+
{/if}
|
|
95
|
+
{#if entry.items?.length}
|
|
96
|
+
{@render level(entry.items, path, depth + 1)}
|
|
97
|
+
{/if}
|
|
98
|
+
{/snippet}
|
|
99
|
+
|
|
100
|
+
{#snippet level(entries: NavigationMenuItem<string>[], path: string, depth: number)}
|
|
101
|
+
<ul class={classes.contentList({ density, nested: depth > 0 })}>
|
|
102
|
+
{#each entries as entry, index (entry.type === 'panel' ? `panel:${entry.value}` : `link:${index}`)}
|
|
103
|
+
<li>
|
|
104
|
+
{#if entry.type === 'link'}
|
|
105
|
+
{@render linkRow(entry)}
|
|
106
|
+
{:else}
|
|
107
|
+
{@const nestedPath = `${path}-${index}`}
|
|
108
|
+
{@const nestedId = `${rootId}-${nestedPath}`}
|
|
109
|
+
{@const expanded = menu.nestedOpen.has(entry.value)}
|
|
110
|
+
<button
|
|
111
|
+
type="button"
|
|
112
|
+
id={`${nestedId}-trigger`}
|
|
113
|
+
disabled={entry.disabled}
|
|
114
|
+
aria-expanded={expanded}
|
|
115
|
+
aria-controls={expanded || menu.keepMounted ? nestedId : undefined}
|
|
116
|
+
data-slot="navigation-menu-nested-trigger"
|
|
117
|
+
{...itemStateAttributes({ disabled: entry.disabled })}
|
|
118
|
+
class={classes.nestedTrigger({ size, density, disabled: !!entry.disabled })}
|
|
119
|
+
{@attach highlightOnKeyboardFocus}
|
|
120
|
+
onclick={() => {
|
|
121
|
+
if (expanded) menu.nestedOpen.delete(entry.value);
|
|
122
|
+
else menu.nestedOpen.add(entry.value);
|
|
123
|
+
}}
|
|
124
|
+
>
|
|
125
|
+
<span class={classes.contentTitle()}><Slot render={entry.label} /></span>
|
|
126
|
+
<span aria-hidden="true" class={classes.caret({ open: expanded })}>
|
|
127
|
+
{@render caretDownIcon({ size: 16 })}
|
|
128
|
+
</span>
|
|
129
|
+
</button>
|
|
130
|
+
{#if expanded || menu.keepMounted}
|
|
131
|
+
<div id={nestedId} hidden={!expanded}>
|
|
132
|
+
{@render body(entry, nestedPath, depth + 1)}
|
|
133
|
+
</div>
|
|
134
|
+
{/if}
|
|
135
|
+
{/if}
|
|
136
|
+
</li>
|
|
137
|
+
{/each}
|
|
138
|
+
</ul>
|
|
139
|
+
{/snippet}
|
|
140
|
+
|
|
141
|
+
{@render body(item, 'n', 0)}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Density, Sizes } from '../../types/theme.js';
|
|
2
|
+
import type { NavigationMenuPanel } from './navigationMenu.props.js';
|
|
3
|
+
import type { useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
4
|
+
type Classes = ReturnType<typeof useNavigationMenuTheme>;
|
|
5
|
+
type $$ComponentProps = {
|
|
6
|
+
item: NavigationMenuPanel<string>;
|
|
7
|
+
size: Sizes;
|
|
8
|
+
density: Density;
|
|
9
|
+
classes: Classes;
|
|
10
|
+
};
|
|
11
|
+
declare const NavigationMenuContent: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
12
|
+
type NavigationMenuContent = ReturnType<typeof NavigationMenuContent>;
|
|
13
|
+
export default NavigationMenuContent;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { untrack } from 'svelte';
|
|
3
|
+
import Button from '../Button/Button.svelte';
|
|
4
|
+
import { caretDownIcon } from '../Icons/caretDown.js';
|
|
5
|
+
import type { Colors, Sizes } from '../../types/theme.js';
|
|
6
|
+
import { useHoverAction } from '../../utils/useHoverAction.svelte.js';
|
|
7
|
+
import { popupTriggerAttributes, presence } from '../../utils/stateAttributes.js';
|
|
8
|
+
import { getNavigationMenuState } from './navigationMenu.state.svelte.js';
|
|
9
|
+
import type { NavigationMenuPanel } from './navigationMenu.props.js';
|
|
10
|
+
import type { useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
11
|
+
|
|
12
|
+
type Classes = ReturnType<typeof useNavigationMenuTheme>;
|
|
13
|
+
|
|
14
|
+
let {
|
|
15
|
+
item,
|
|
16
|
+
size,
|
|
17
|
+
color,
|
|
18
|
+
classes
|
|
19
|
+
}: {
|
|
20
|
+
item: NavigationMenuPanel<string>;
|
|
21
|
+
size: Sizes;
|
|
22
|
+
color: Colors;
|
|
23
|
+
classes: Classes;
|
|
24
|
+
} = $props();
|
|
25
|
+
|
|
26
|
+
const menu = getNavigationMenuState();
|
|
27
|
+
const open = $derived(menu.isOpenFor(item.value));
|
|
28
|
+
|
|
29
|
+
// Resting the pointer on the trigger opens its panel; once a panel is open, moving on to
|
|
30
|
+
// another trigger switches at once. A touch tap and a disabled trigger never hover.
|
|
31
|
+
const hover = useHoverAction({
|
|
32
|
+
isActive: () => menu.openOnHover && !menu.isOpenFor(item.value),
|
|
33
|
+
onMouseEnter: (event) => menu.hoverTrigger(item.value, event),
|
|
34
|
+
delay: () => (menu.isOpen ? 0 : menu.delay)
|
|
35
|
+
});
|
|
36
|
+
// A hover that began before the open panel changed another way (a press, Escape, a key) must
|
|
37
|
+
// not undo that change when its delay runs out, such as reopening a panel a press just closed.
|
|
38
|
+
$effect(() => {
|
|
39
|
+
void menu.value;
|
|
40
|
+
untrack(() => hover.cancel());
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
function press(event: MouseEvent) {
|
|
44
|
+
hover.cancel();
|
|
45
|
+
menu.pressTrigger(item.value, event);
|
|
46
|
+
}
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
{#snippet caret()}
|
|
50
|
+
<span aria-hidden="true" class={classes.caret({ open })}
|
|
51
|
+
>{@render caretDownIcon({ size: 16 })}</span
|
|
52
|
+
>
|
|
53
|
+
{/snippet}
|
|
54
|
+
|
|
55
|
+
<Button
|
|
56
|
+
id={menu.triggerId(item.value)}
|
|
57
|
+
variant="ghost"
|
|
58
|
+
{size}
|
|
59
|
+
{color}
|
|
60
|
+
disabled={item.disabled}
|
|
61
|
+
label={item.iconOnly && typeof item.label === 'string' ? item.label : undefined}
|
|
62
|
+
prefix={item.prefix}
|
|
63
|
+
children={item.iconOnly ? undefined : item.label}
|
|
64
|
+
suffix={caret}
|
|
65
|
+
expanded={open}
|
|
66
|
+
controls={menu.hasPanel(item.value) ? menu.panelId(item.value) : undefined}
|
|
67
|
+
data-slot="navigation-menu-trigger"
|
|
68
|
+
{...popupTriggerAttributes(open)}
|
|
69
|
+
data-disabled={presence(item.disabled)}
|
|
70
|
+
class={classes.trigger({ open })}
|
|
71
|
+
onclick={press}
|
|
72
|
+
{@attach menu.trigger(item.value)}
|
|
73
|
+
{@attach hover.reference}
|
|
74
|
+
{@attach open ? menu.safeArea.anchorReference : undefined}
|
|
75
|
+
/>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Colors, Sizes } from '../../types/theme.js';
|
|
2
|
+
import type { NavigationMenuPanel } from './navigationMenu.props.js';
|
|
3
|
+
import type { useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
4
|
+
type Classes = ReturnType<typeof useNavigationMenuTheme>;
|
|
5
|
+
type $$ComponentProps = {
|
|
6
|
+
item: NavigationMenuPanel<string>;
|
|
7
|
+
size: Sizes;
|
|
8
|
+
color: Colors;
|
|
9
|
+
classes: Classes;
|
|
10
|
+
};
|
|
11
|
+
declare const NavigationMenuTrigger: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
12
|
+
type NavigationMenuTrigger = ReturnType<typeof NavigationMenuTrigger>;
|
|
13
|
+
export default NavigationMenuTrigger;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as NavigationMenu } from './NavigationMenu.svelte';
|
|
2
|
+
export type { NavigationMenuItem, NavigationMenuLink, NavigationMenuPanel, NavigationMenuPanelApi, NavigationMenuProps, NavigationMenuValueChangePayload } from './navigationMenu.props.js';
|
|
3
|
+
export { navigationMenuCssVariables, navigationMenuDataAttributes, type NavigationMenuCssVariable, type NavigationMenuDataAttribute } from './navigationMenu.attributes.js';
|
|
4
|
+
export { navigationMenuTheme, setNavigationMenuTheme, useNavigationMenuTheme, type NavigationMenuTheme, type NavigationMenuThemeProps } from './navigationMenu.theme.js';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as NavigationMenu } from './NavigationMenu.svelte';
|
|
2
|
+
export { navigationMenuCssVariables, navigationMenuDataAttributes } from './navigationMenu.attributes.js';
|
|
3
|
+
export { navigationMenuTheme, setNavigationMenuTheme, useNavigationMenuTheme } from './navigationMenu.theme.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The styling hooks a NavigationMenu exposes. Attributes are presence attributes (`''` while the
|
|
3
|
+
* state holds, omitted otherwise) unless the description says they carry a value.
|
|
4
|
+
*/
|
|
5
|
+
export declare const navigationMenuDataAttributes: {
|
|
6
|
+
readonly 'data-open': `On the root, the popup and the open panel: ${string}`;
|
|
7
|
+
readonly 'data-closed': `On the root, the popup and a closed panel: ${string}`;
|
|
8
|
+
readonly 'data-entering': `On the popup: ${string}`;
|
|
9
|
+
readonly 'data-exiting': `On the popup: ${string}`;
|
|
10
|
+
readonly 'data-popup-open': `On a panel trigger: ${string}`;
|
|
11
|
+
readonly 'data-disabled': "On a disabled panel trigger, link or nested trigger: present while disabled.";
|
|
12
|
+
readonly 'data-selected': "On a link of the current page (the one with `active`): present while it is.";
|
|
13
|
+
readonly 'data-side': "On the viewport and the popup: always `bottom`, the side of the triggers the popup sits on.";
|
|
14
|
+
readonly 'data-align': "On the viewport and the popup: always `start`, how the popup lines up with the active trigger.";
|
|
15
|
+
readonly 'data-activation-direction': "On a panel that replaced another: `left` or `right`, the physical direction its trigger lies in from the previously open one (a later trigger is on the right in left-to-right). Absent when the panel was opened from closed.";
|
|
16
|
+
};
|
|
17
|
+
/** The name of a NavigationMenu data attribute. */
|
|
18
|
+
export type NavigationMenuDataAttribute = keyof typeof navigationMenuDataAttributes;
|
|
19
|
+
export declare const navigationMenuCssVariables: {
|
|
20
|
+
readonly '--anchor-width': "On the viewport: the width in px of the open panel's trigger.";
|
|
21
|
+
readonly '--anchor-height': "On the viewport: the height in px of the open panel's trigger.";
|
|
22
|
+
};
|
|
23
|
+
/** The name of a NavigationMenu CSS variable. */
|
|
24
|
+
export type NavigationMenuCssVariable = keyof typeof navigationMenuCssVariables;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { stateDataAttributes } from '../../utils/stateAttributes.js';
|
|
2
|
+
/**
|
|
3
|
+
* The styling hooks a NavigationMenu exposes. Attributes are presence attributes (`''` while the
|
|
4
|
+
* state holds, omitted otherwise) unless the description says they carry a value.
|
|
5
|
+
*/
|
|
6
|
+
export const navigationMenuDataAttributes = {
|
|
7
|
+
'data-open': `On the root, the popup and the open panel: ${stateDataAttributes['data-open'].toLowerCase()}`,
|
|
8
|
+
'data-closed': `On the root, the popup and a closed panel: ${stateDataAttributes['data-closed'].toLowerCase()}`,
|
|
9
|
+
'data-entering': `On the popup: ${stateDataAttributes['data-entering'].toLowerCase()}`,
|
|
10
|
+
'data-exiting': `On the popup: ${stateDataAttributes['data-exiting'].toLowerCase()}`,
|
|
11
|
+
'data-popup-open': `On a panel trigger: ${stateDataAttributes['data-popup-open'].toLowerCase()}`,
|
|
12
|
+
'data-disabled': 'On a disabled panel trigger, link or nested trigger: present while disabled.',
|
|
13
|
+
'data-selected': 'On a link of the current page (the one with `active`): present while it is.',
|
|
14
|
+
'data-side': 'On the viewport and the popup: always `bottom`, the side of the triggers the popup sits on.',
|
|
15
|
+
'data-align': 'On the viewport and the popup: always `start`, how the popup lines up with the active trigger.',
|
|
16
|
+
'data-activation-direction': 'On a panel that replaced another: `left` or `right`, the physical direction its trigger lies in from the previously open one (a later trigger is on the right in left-to-right). Absent when the panel was opened from closed.'
|
|
17
|
+
};
|
|
18
|
+
export const navigationMenuCssVariables = {
|
|
19
|
+
'--anchor-width': "On the viewport: the width in px of the open panel's trigger.",
|
|
20
|
+
'--anchor-height': "On the viewport: the height in px of the open panel's trigger."
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const navigationMenuDescription = "\n# NavigationMenu Component\n\nNavigationMenu is site navigation: a `<nav>` landmark with a row of links and disclosure buttons, and one panel area that shows the panel of whichever button is open. Use it for a header with mega-menu panels. MenuBar is the application-menu pattern (`role=\"menubar\"`) and the wrong choice for site navigation; Tabbar is a tablist.\n\n## Basic Usage\n\n```svelte\n<script lang=\"ts\">\n\timport { NavigationMenu, type NavigationMenuItem } from 'entasis/navigation-menu';\n\n\tconst items: NavigationMenuItem[] = [\n\t\t{\n\t\t\ttype: 'panel',\n\t\t\tvalue: 'product',\n\t\t\tlabel: 'Product',\n\t\t\tcontent: [\n\t\t\t\t{ label: 'Components', href: '/components', description: 'The essential interface pieces.' },\n\t\t\t\t{ label: 'Blocks', href: '/blocks', description: 'Complete patterns in context.' }\n\t\t\t]\n\t\t},\n\t\t{ type: 'link', label: 'Pricing', href: '/pricing', active: true },\n\t\t{ type: 'link', label: 'Docs', href: '/docs' }\n\t];\n</script>\n\n<NavigationMenu {items} label=\"Main\" />\n```\n\n## Controlled value\n\n```svelte\n<script lang=\"ts\">\n\timport { NavigationMenu, type NavigationMenuItem } from 'entasis/navigation-menu';\n\n\ttype Section = 'product' | 'company';\n\tlet open = $state<Section | null>(null);\n\n\tconst items: NavigationMenuItem<Section>[] = [\n\t\t{ type: 'panel', value: 'product', label: 'Product', content: [{ label: 'Blocks', href: '/blocks' }] },\n\t\t{ type: 'panel', value: 'company', label: 'Company', content: [{ label: 'About', href: '/about' }] }\n\t];\n</script>\n\n<NavigationMenu {items} bind:value={open} onValueChange={({ value, details }) => console.log(value, details.reason)} />\n```\n\n## Items\n\n- A **link** (`type: 'link'`) is a plain entry of the bar: `label`, `href`, optional `prefix`, `iconOnly` (paint only the prefix; the string label becomes the accessible name), `active` (renders `aria-current=\"page\"`), `disabled`, `target`, `rel` and `onclick`.\n- A **panel** (`type: 'panel'`) is a disclosure button: `value` (unique), `label`, optional `prefix`, `iconOnly` (paint only the prefix; the string label becomes the accessible name), `disabled`, and the body in `content`: a list of links (`label`, `href`, `description`, `prefix`, `active`, `disabled`, `target`, `rel`, `onclick`), or a snippet `{#snippet content({ close })}` that renders anything. `items` adds a nested level under `content`: links, and more panels that expand in place.\n- `Value` is generic: `NavigationMenuItem<'product' | 'company'>` types `value`, `defaultValue` and `onValueChange`.\n\n## Props\n\n- **items**: NavigationMenuItem[] (required) - Entries of the bar.\n- **label**: string - Accessible name of the nav landmark. Give it when the page has more than one nav.\n- **value** / **defaultValue**: Value | null - The open panel's `value`; `null` while all are closed. `value` is bindable.\n- **onValueChange**: (payload: { value: Value | null; details: OpenChangeDetails }) => void - Called before the open panel changes with the panel that will be open. `details.reason` is `trigger-press`, `trigger-hover`, `list-navigation`, `escape-key`, `outside-press`, `focus-out`, `item-press`, `close-press` or `trigger-unmount`; `details.event` carries the DOM event; `details.cancel()` keeps the current panel. A link press closes every level and calls it once with `null`. Not called for the initial state or for changes the parent assigns to `value`.\n- **openOnHover**: boolean (default: true) - Resting the pointer on a trigger opens its panel. Touch never hovers.\n- **delay**: number (default: 50) - Milliseconds before a hovered trigger opens. Switching between triggers while a panel is open is immediate.\n- **closeDelay**: number (default: 100) - Milliseconds the pointer may stay outside the triggers and the panel before a hover-opened panel closes.\n- **keepMounted**: boolean (default: false) - Keeps every panel in the DOM under `hidden`, so crawlers and the server-rendered HTML see their links. A kept-mounted popup hides at once when closed, without an exit animation.\n- **onAfterOpen** / **onAfterClose**: () => void - Called once each time the panel area finishes opening or closing (at once when no animation plays). Not called for the initial state.\n- **size**: 'small' | 'normal' | 'large' (default: 'normal') - Size of triggers, links and panel text.\n- **density**: 'compact' | 'normal' | 'comfortable' (default: 'normal') - Spacing inside the panel area and between its rows.\n- **color**: Colors - Semantic role of the triggers and the selected look. Falls back to the Theme's default color.\n- **dir**: 'ltr' | 'rtl' - Text direction. When omitted it follows the i18n direction, else the element's computed direction. It mirrors the arrow keys and the panel alignment.\n- **transition**: FSOProps - Popup enter and exit overrides (numeric `x`, `y`, `scale`, `opacity`, `duration`, `easing`).\n- **ref**: HTMLElement | null - Bindable reference to the nav element.\n- **class**: string - Class name of the nav.\n- **theme**: NavigationMenuThemeProps - Theme overrides: `root`, `list`, `item`, `trigger`, `link`, `caret`, `viewport`, `popup`, `panel`, `contentList`, `contentLink`, `contentPrefix`, `contentText`, `contentTitle`, `contentDescription`, `nestedTrigger` and `motion`.\n\n## Behavior\n\n- The markup is `<nav aria-label><ul>`: each panel trigger is a `<button>` with `aria-expanded` and `aria-controls` (no `aria-haspopup`: it is a disclosure, not a menu), each link an `<a>`. There is no `aria-orientation`.\n- **One inline panel area.** The panel area is rendered inside the nav, after the trigger list, never portaled. It animates its width and height as the open panel changes, and aligns to the open trigger's inline edge inside the layout viewport. On a switch the new panel fades and slides in from the side of the trigger it comes from, after the old one has faded and slid out the other way (the entry waits for the exit and lasts twice the in duration) (`data-activation-direction` names the direction); the `motion` / `transition` durations and reduced motion apply.\n- **Opening.** Click, Enter or Space toggle a trigger; ArrowDown opens it. Opening by keyboard keeps focus on the trigger. Tab from an open trigger enters the panel's links; Tab past the last link continues after the trigger and closes the panel (also when nothing follows the menu and focus leaves the page); Shift+Tab from the first link returns to the trigger. ArrowDown on an open trigger moves into the panel. A panel is entered by Tab only from its own trigger: Tab from a later entry of the bar skips it and leaves the menu. A pointer press focuses the trigger (Safari does not focus buttons on click), so Tab, ArrowDown and Escape carry on from it.\n- **Moving along the bar.** ArrowLeft and ArrowRight (mirrored in RTL), Home and End move focus between the bar's enabled triggers and links, without wrapping; Tab still visits each. With a panel open, the open panel follows: arrowing onto a trigger switches to its panel (focus stays on the trigger) and arrowing onto a link closes it. With no panel open they only move focus.\n- **Inside a panel.** ArrowDown and ArrowUp move to the next and previous link or button of the open panel, wrapping at either end; ArrowRight and ArrowLeft do the same (mirrored in RTL); Home and End jump to the first and last. Disabled links and links of a collapsed nested level are skipped. A text field or select keeps its own arrow keys, and a control that handles an arrow key itself (calls `preventDefault()`) keeps it. Snippet panels get the same keys over their tabbable controls.\n- **Hover.** Resting on a trigger opens its panel after `delay`; moving to another trigger switches at once. A panel opened by hover closes when the pointer leaves the trigger and the panel (with a diagonal-safe area) after `closeDelay`, unless focus is inside it. A pointer press on the trigger of a hover-opened panel keeps it open; pressing again closes it. Enter or Space on that trigger closes it. A hover that began before a press or Escape never reopens the panel afterwards.\n- **Closing.** Escape closes the open panel; from inside the panel it returns focus to the trigger with a visible ring, and from the bar focus stays where it is. A press outside, focus moving out, and a press on any link close it. A link press closes every level, once. A consumer `onclick` runs first and `event.preventDefault()` there skips the built-in close.\n- **Disabled.** A disabled panel trigger never opens and is skipped by the arrow keys; it renders `disabled` and `data-disabled`. A disabled link drops its `href` and leaves the tab order.\n- **Removed panels.** If the open panel is removed or disabled, the value resets to `null` (`onValueChange` with reason `trigger-unmount`).\n- **Nested levels.** `items` under a panel render inline; a nested panel is a disclosure button that expands in place with a click, Enter or Space. The panel's arrow keys reach nested triggers and the links of expanded levels.\n\n## Styling hooks\n\nData attributes (presence attributes, `\"\"` while the state holds):\n\n- `data-open` / `data-closed`: on the nav, the popup and each panel.\n- `data-entering` / `data-exiting`: on the popup while its animation plays.\n- `data-popup-open`: on a panel trigger while its panel is open.\n- `data-disabled`: on a disabled trigger, link or nested trigger.\n- `data-selected`: on the link of the current page.\n- `data-side=\"bottom\"` and `data-align=\"start\"`: on the viewport and popup.\n- `data-activation-direction=\"left\" | \"right\"`: on a panel that replaced another, the physical direction its trigger lies in from the previously open one.\n\nCSS variables on the viewport: `--anchor-width` and `--anchor-height`, the open trigger's size in px. The typed maps `navigationMenuDataAttributes` and `navigationMenuCssVariables` (from `entasis/navigation-menu`) list each name with its meaning.\n\n## Structure\n\n```\n<nav aria-label>\n\t<ul>\n\t\t<li><button aria-expanded aria-controls /></li>\n\t\t<li><a href /></li>\n\t</ul>\n\t<div data-side=\"bottom\"> <!-- viewport, in flow, positioned under the active trigger -->\n\t\t<div> <!-- popup, animates its size -->\n\t\t\t<div id> <!-- one panel per open trigger -->\n\t\t\t\t<ul><li><a href /></li></ul>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</nav>\n```\n\n## Accessibility\n\nDisclosure navigation (the WAI-ARIA APG disclosure navigation pattern): every trigger and link keeps its place in the natural Tab order, panels follow in the document, and arrow keys are a shortcut that supplements Tab, along the bar and inside the open panel. Escape returns focus to the trigger and keyboard closes show the focus ring.\n\n| Focus | Key | Result |\n| --- | --- | --- |\n| Trigger | Enter, Space | Toggles its panel; focus stays |\n| Closed trigger | ArrowDown | Opens its panel; focus stays |\n| Open trigger | ArrowDown, Tab | First control of the panel |\n| Bar entry | ArrowRight / ArrowLeft (mirrored in RTL) | Next / previous enabled entry, no wrap; with a panel open, a trigger switches to its panel (focus stays on it) and a link closes the panel |\n| Bar entry | Home / End | First / last enabled entry |\n| Bar entry | Escape | Closes the open panel; focus stays |\n| Panel | ArrowDown / ArrowUp | Next / previous control, wrapping |\n| Panel | ArrowRight / ArrowLeft (mirrored in RTL) | The neighbouring entry of the bar: a trigger opens its panel and focus goes to its first control; a link closes the panel and takes focus; no wrap at the ends |\n| Panel | Home / End | First / last control |\n| Panel | Tab past the last control | Next entry after the trigger; the panel closes |\n| Panel | Shift+Tab on the first control | The trigger; the panel stays open |\n| Panel | Escape | Closes; focus returns to the trigger with a ring |\n| Anywhere | Focus leaves the menu | Closes | A current-page link renders `aria-current=\"page\"`.\n";
|