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,22 +1,56 @@
|
|
|
1
1
|
import type { InputProps } from '../Field/field.js';
|
|
2
2
|
import type { PinInputThemeProps } from './pinInput.theme.js';
|
|
3
|
-
import type { PinInputPattern } from './pinInput.state.svelte.js';
|
|
3
|
+
import type { PinInputPattern, PinInputRejectDetail } from './pinInput.state.svelte.js';
|
|
4
4
|
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
5
5
|
export type PinInputProps = Omit<InputProps<'pin'>, 'onValueChange'> & {
|
|
6
6
|
/** Number of visible cells. */
|
|
7
7
|
length?: number;
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Partial-value pattern the code must match after normalization. Text that fails it is
|
|
10
|
+
* refused whole, and reported to `onRejectInput`.
|
|
11
|
+
*/
|
|
9
12
|
pattern?: PinInputPattern;
|
|
10
13
|
/** Input mode forwarded to the real input for mobile keyboards. */
|
|
11
14
|
inputMode?: HTMLInputAttributes['inputmode'];
|
|
12
15
|
/** Autocomplete hint forwarded to the real input. */
|
|
13
16
|
autocomplete?: HTMLInputAttributes['autocomplete'];
|
|
14
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Transforms pasted text before the shared normalization runs (a paste-only first step). A
|
|
19
|
+
* result at least `length` characters long replaces the whole code, wherever the caret is.
|
|
20
|
+
*/
|
|
15
21
|
pasteTransformer?: (text: string) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Final step of the normalization every typed, pasted, autofilled, composed and controlled
|
|
24
|
+
* code goes through, after whitespace and separators are removed and digits of other numeral
|
|
25
|
+
* systems become ASCII. Use it to fold case: `(text) => text.toUpperCase()`. It should give
|
|
26
|
+
* the same result when run again on its own output.
|
|
27
|
+
*/
|
|
28
|
+
normalizeValue?: (text: string) => string;
|
|
29
|
+
/**
|
|
30
|
+
* Called when the pattern refuses text, with the text as it arrived and where it came from.
|
|
31
|
+
*/
|
|
32
|
+
onRejectInput?: (detail: PinInputRejectDetail) => void;
|
|
16
33
|
/** Called when the value changes. */
|
|
17
34
|
onValueChange?: (value: string) => void;
|
|
18
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Called when the value becomes complete. A paste or autofill that leaves the code complete
|
|
37
|
+
* calls it again, even when the code was already complete or unchanged; typing over one cell
|
|
38
|
+
* of a complete code does not.
|
|
39
|
+
*/
|
|
19
40
|
onComplete?: (value: string) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Submits the owning form when the user types, pastes or autofills a complete code: through
|
|
43
|
+
* the surrounding Form (which validates first and focuses an earlier invalid field), else the
|
|
44
|
+
* native form with `requestSubmit()`. A code set by the parent, and a read-only or disabled
|
|
45
|
+
* input, never submit.
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
submitOnComplete?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Splits the cells into groups with a separator between them: `[3, 3]` for a code written
|
|
51
|
+
* 123-456. The separator is decorative and hidden from assistive technology.
|
|
52
|
+
*/
|
|
53
|
+
groups?: number[];
|
|
20
54
|
/** Whether displayed characters should be visually masked. */
|
|
21
55
|
mask?: boolean;
|
|
22
56
|
/** Theme overrides for the pin input cells and field container. */
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { Attachment } from 'svelte/attachments';
|
|
2
2
|
export declare const PIN_INPUT_DIGITS_PATTERN = "^\\d+$";
|
|
3
3
|
export declare const PIN_INPUT_CHARS_PATTERN = "^[a-zA-Z]+$";
|
|
4
|
+
/**
|
|
5
|
+
* Extra characters the native input accepts beyond the code length. Autofilled or inserted text
|
|
6
|
+
* such as `123-456` reaches the pipeline whole, so it can strip separators before clamping to
|
|
7
|
+
* `length`, instead of the browser truncating it first.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PIN_INPUT_TEXT_MARGIN = 32;
|
|
4
10
|
export declare const PIN_INPUT_ALPHANUMERIC_PATTERN = "^[a-zA-Z0-9]+$";
|
|
5
11
|
export type PinInputPattern = string | RegExp;
|
|
6
12
|
export type PinInputCell = {
|
|
@@ -16,8 +22,19 @@ type PinInputStateOptions = {
|
|
|
16
22
|
length: () => number;
|
|
17
23
|
pattern: () => PinInputPattern | undefined;
|
|
18
24
|
pasteTransformer: () => ((text: string) => string) | undefined;
|
|
25
|
+
normalizeValue: () => ((text: string) => string) | undefined;
|
|
26
|
+
onRejectInput: () => ((detail: PinInputRejectDetail) => void) | undefined;
|
|
19
27
|
onComplete: () => ((value: string) => void) | undefined;
|
|
28
|
+
/** Submits the owning form; called when a typed, pasted or autofilled code completes. */
|
|
29
|
+
submit: () => (() => void) | undefined;
|
|
30
|
+
submitOnComplete: () => boolean | undefined;
|
|
20
31
|
disabled: () => boolean | undefined;
|
|
32
|
+
readOnly: () => boolean | undefined;
|
|
33
|
+
};
|
|
34
|
+
/** Text the pattern turned away, and where it came from. */
|
|
35
|
+
export type PinInputRejectDetail = {
|
|
36
|
+
text: string;
|
|
37
|
+
source: 'paste' | 'input';
|
|
21
38
|
};
|
|
22
39
|
export declare class PinInputState {
|
|
23
40
|
#private;
|
|
@@ -26,20 +43,35 @@ export declare class PinInputState {
|
|
|
26
43
|
isFocused: boolean;
|
|
27
44
|
selectionStart: number | null;
|
|
28
45
|
selectionEnd: number | null;
|
|
46
|
+
/** The input text while an IME composition is in progress; the cells display it. */
|
|
47
|
+
composingValue: string | null;
|
|
29
48
|
inputAttachment: Attachment<HTMLInputElement>;
|
|
30
49
|
constructor(options: PinInputStateOptions);
|
|
31
50
|
get value(): string;
|
|
51
|
+
/** Whether an IME composition the cells display is in progress. */
|
|
52
|
+
get isComposing(): boolean;
|
|
32
53
|
get length(): number;
|
|
54
|
+
/**
|
|
55
|
+
* The one pipeline typed, pasted, autofilled, composed and controlled text goes through:
|
|
56
|
+
* format controls and whitespace go, full-width and other numeral systems become ASCII,
|
|
57
|
+
* grouping separators go where the pattern does not accept them, then `normalizeValue` runs.
|
|
58
|
+
* The pattern and the length are applied by the caller.
|
|
59
|
+
*/
|
|
60
|
+
normalizeText(text: string): string;
|
|
33
61
|
get cells(): {
|
|
34
62
|
index: number;
|
|
35
63
|
char: string;
|
|
36
64
|
isActive: boolean;
|
|
37
65
|
hasFakeCaret: boolean;
|
|
38
66
|
}[];
|
|
67
|
+
/** Whether the field refuses edits: disabled, or read-only. */
|
|
68
|
+
get isLocked(): boolean;
|
|
39
69
|
focus: () => void;
|
|
40
70
|
handlePointerDown: (event: PointerEvent) => void;
|
|
41
71
|
handleKeydown: (event: KeyboardEvent) => void;
|
|
42
72
|
handleInput: (event: Event) => void;
|
|
73
|
+
handleCompositionStart: () => void;
|
|
74
|
+
handleCompositionEnd: (event: CompositionEvent) => void;
|
|
43
75
|
handlePaste: (event: ClipboardEvent) => void;
|
|
44
76
|
handleFocus: () => void;
|
|
45
77
|
handleBlur: () => void;
|
|
@@ -51,6 +83,15 @@ export declare class PinInputState {
|
|
|
51
83
|
private selectCellFromPointer;
|
|
52
84
|
private getPointerCellIndex;
|
|
53
85
|
private syncInputValue;
|
|
86
|
+
private endComposition;
|
|
87
|
+
/**
|
|
88
|
+
* Reports a committed complete paste or autofill even when the code was already complete. A
|
|
89
|
+
* changed value is reported by the value effect after the update; an unchanged one right away.
|
|
90
|
+
*/
|
|
91
|
+
private requestComplete;
|
|
92
|
+
private reject;
|
|
93
|
+
/** Reports a complete code, and submits the form after one the user typed, pasted or filled. */
|
|
94
|
+
private complete;
|
|
54
95
|
private notifyComplete;
|
|
55
96
|
private clampSelection;
|
|
56
97
|
private isValueAllowed;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { untrack } from 'svelte';
|
|
2
|
+
import { normalizeDigits, stripBidiMarks } from '../../../utils/number.js';
|
|
2
3
|
export const PIN_INPUT_DIGITS_PATTERN = '^\\d+$';
|
|
3
4
|
export const PIN_INPUT_CHARS_PATTERN = '^[a-zA-Z]+$';
|
|
5
|
+
/**
|
|
6
|
+
* Extra characters the native input accepts beyond the code length. Autofilled or inserted text
|
|
7
|
+
* such as `123-456` reaches the pipeline whole, so it can strip separators before clamping to
|
|
8
|
+
* `length`, instead of the browser truncating it first.
|
|
9
|
+
*/
|
|
10
|
+
export const PIN_INPUT_TEXT_MARGIN = 32;
|
|
4
11
|
export const PIN_INPUT_ALPHANUMERIC_PATTERN = '^[a-zA-Z0-9]+$';
|
|
5
12
|
const KEYS_TO_IGNORE = new Set([
|
|
6
13
|
'Backspace',
|
|
@@ -19,15 +26,34 @@ const KEYS_TO_IGNORE = new Set([
|
|
|
19
26
|
'Meta',
|
|
20
27
|
'Alt'
|
|
21
28
|
]);
|
|
29
|
+
/** Folds the full-width ASCII forms that CJK input methods produce (`12`) to ASCII (`12`). */
|
|
30
|
+
const toHalfWidth = (text) => text.replace(/[\uFF01-\uFF5E]/g, (char) => String.fromCharCode(char.charCodeAt(0) - 0xfee0));
|
|
31
|
+
/** Whitespace, which never belongs to a code. */
|
|
32
|
+
const WHITESPACE_RE = /[\p{Z}\s]/u;
|
|
33
|
+
/** Dashes, dots, slashes and the like that group a code for reading (`123-456`, `123.456`). */
|
|
34
|
+
const SEPARATOR_RE = /[\p{Pd}\u2212._\u00b7\u2022/\\,:;|]/u;
|
|
35
|
+
/** Where the root node of `node` is: the document, or the shadow root it lives in. */
|
|
36
|
+
const rootOf = (node) => node.getRootNode();
|
|
37
|
+
/** Some Android keyboards report all typing as one long composition, so they commit on input. */
|
|
38
|
+
const isAlwaysComposingKeyboard = (node) => /android/i.test(node.ownerDocument.defaultView?.navigator.userAgent ?? '');
|
|
22
39
|
export class PinInputState {
|
|
23
40
|
options;
|
|
24
41
|
input = $state(null);
|
|
25
42
|
isFocused = $state(false);
|
|
26
43
|
selectionStart = $state(null);
|
|
27
44
|
selectionEnd = $state(null);
|
|
45
|
+
/** The input text while an IME composition is in progress; the cells display it. */
|
|
46
|
+
composingValue = $state(null);
|
|
28
47
|
inputAttachment;
|
|
29
48
|
#previousValue;
|
|
30
49
|
#previousSelection = [null, null, 'none'];
|
|
50
|
+
#composition = null;
|
|
51
|
+
/** A complete pasted or autofilled value to report even when the previous code was complete. */
|
|
52
|
+
#pendingCompleteValue = null;
|
|
53
|
+
/** The value the last user edit asked for; completing with it may submit the form. */
|
|
54
|
+
#userCommit = null;
|
|
55
|
+
/** What the controlled-value normalization last wrote, so it never re-normalizes its own output. */
|
|
56
|
+
#normalizedValue = null;
|
|
31
57
|
constructor(options) {
|
|
32
58
|
this.options = options;
|
|
33
59
|
this.#previousValue = this.value.slice(0, this.length);
|
|
@@ -35,24 +61,36 @@ export class PinInputState {
|
|
|
35
61
|
this.input = node;
|
|
36
62
|
this.syncInputValue(this.value.slice(0, this.length));
|
|
37
63
|
this.normalizeSelection();
|
|
38
|
-
|
|
39
|
-
document
|
|
64
|
+
// `selectionchange` does not cross a shadow boundary, so the root node listens, and the
|
|
65
|
+
// document too for engines that report it there.
|
|
66
|
+
const root = rootOf(node);
|
|
67
|
+
const targets = root === node.ownerDocument ? [root] : [root, node.ownerDocument];
|
|
68
|
+
for (const target of targets) {
|
|
69
|
+
target.addEventListener('selectionchange', this.normalizeSelection, { capture: true });
|
|
70
|
+
}
|
|
40
71
|
return () => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
72
|
+
for (const target of targets) {
|
|
73
|
+
target.removeEventListener('selectionchange', this.normalizeSelection, {
|
|
74
|
+
capture: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
44
77
|
if (this.input === node) {
|
|
45
78
|
this.input = null;
|
|
46
79
|
this.selectionStart = null;
|
|
47
80
|
this.selectionEnd = null;
|
|
48
81
|
this.#previousSelection = [null, null, 'none'];
|
|
82
|
+
this.endComposition();
|
|
49
83
|
}
|
|
50
84
|
};
|
|
51
85
|
});
|
|
52
86
|
$effect(() => {
|
|
53
87
|
const value = this.value;
|
|
54
|
-
|
|
88
|
+
// A controlled value goes through the same pipeline as typed text, once: what the
|
|
89
|
+
// pipeline wrote is accepted as it is, so an unstable `normalizeValue` cannot loop.
|
|
90
|
+
const normalizedValue = value === this.#normalizedValue ? value : this.normalizeText(value);
|
|
91
|
+
const clippedValue = normalizedValue.slice(0, this.length);
|
|
55
92
|
if (value !== clippedValue) {
|
|
93
|
+
this.#normalizedValue = clippedValue;
|
|
56
94
|
this.options.setValue(clippedValue);
|
|
57
95
|
}
|
|
58
96
|
this.syncInputValue(clippedValue);
|
|
@@ -62,14 +100,32 @@ export class PinInputState {
|
|
|
62
100
|
get value() {
|
|
63
101
|
return this.options.value() ?? '';
|
|
64
102
|
}
|
|
103
|
+
/** Whether an IME composition the cells display is in progress. */
|
|
104
|
+
get isComposing() {
|
|
105
|
+
return this.composingValue !== null;
|
|
106
|
+
}
|
|
65
107
|
get length() {
|
|
66
108
|
const length = this.options.length();
|
|
67
109
|
if (!Number.isFinite(length))
|
|
68
110
|
return 6;
|
|
69
111
|
return Math.max(1, Math.floor(length));
|
|
70
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* The one pipeline typed, pasted, autofilled, composed and controlled text goes through:
|
|
115
|
+
* format controls and whitespace go, full-width and other numeral systems become ASCII,
|
|
116
|
+
* grouping separators go where the pattern does not accept them, then `normalizeValue` runs.
|
|
117
|
+
* The pattern and the length are applied by the caller.
|
|
118
|
+
*/
|
|
119
|
+
normalizeText(text) {
|
|
120
|
+
const folded = normalizeDigits(toHalfWidth(stripBidiMarks(text)));
|
|
121
|
+
const stripped = Array.from(folded)
|
|
122
|
+
.filter((char) => !WHITESPACE_RE.test(char) &&
|
|
123
|
+
!(SEPARATOR_RE.test(char) && this.options.pattern() && !this.isValueAllowed(char)))
|
|
124
|
+
.join('');
|
|
125
|
+
return this.options.normalizeValue()?.(stripped) ?? stripped;
|
|
126
|
+
}
|
|
71
127
|
get cells() {
|
|
72
|
-
const value = this.value;
|
|
128
|
+
const value = this.composingValue ?? this.value;
|
|
73
129
|
const selectionStart = this.selectionStart ?? Math.min(value.length, this.length - 1);
|
|
74
130
|
const selectionEnd = this.selectionEnd ?? selectionStart;
|
|
75
131
|
const lowerSelection = Math.min(selectionStart, selectionEnd);
|
|
@@ -88,6 +144,10 @@ export class PinInputState {
|
|
|
88
144
|
};
|
|
89
145
|
});
|
|
90
146
|
}
|
|
147
|
+
/** Whether the field refuses edits: disabled, or read-only. */
|
|
148
|
+
get isLocked() {
|
|
149
|
+
return Boolean(this.options.disabled() || this.options.readOnly());
|
|
150
|
+
}
|
|
91
151
|
focus = () => {
|
|
92
152
|
if (this.options.disabled())
|
|
93
153
|
return;
|
|
@@ -97,28 +157,95 @@ export class PinInputState {
|
|
|
97
157
|
if (this.options.disabled())
|
|
98
158
|
return;
|
|
99
159
|
event.preventDefault();
|
|
160
|
+
// Moving the caret would end the composition; the input method keeps it until it commits.
|
|
161
|
+
if (this.#composition)
|
|
162
|
+
return;
|
|
100
163
|
this.input?.focus({ preventScroll: true });
|
|
101
164
|
this.selectCellFromPointer(event);
|
|
102
165
|
};
|
|
103
166
|
handleKeydown = (event) => {
|
|
104
|
-
if (
|
|
167
|
+
if (this.#composition ||
|
|
168
|
+
event.isComposing ||
|
|
169
|
+
// 229 marks a keystroke the input method consumes; its text is checked on compositionend.
|
|
170
|
+
event.keyCode === 229 ||
|
|
171
|
+
event.ctrlKey ||
|
|
172
|
+
event.metaKey ||
|
|
173
|
+
KEYS_TO_IGNORE.has(event.key)) {
|
|
105
174
|
return;
|
|
106
175
|
}
|
|
107
|
-
if (event.key.length === 1
|
|
108
|
-
|
|
176
|
+
if (event.key.length === 1) {
|
|
177
|
+
// A key the pipeline drops (a separator, a space) never reaches the input.
|
|
178
|
+
const typed = this.normalizeText(event.key);
|
|
179
|
+
if (typed === '') {
|
|
180
|
+
event.preventDefault();
|
|
181
|
+
}
|
|
182
|
+
else if (!this.isValueAllowed(typed)) {
|
|
183
|
+
event.preventDefault();
|
|
184
|
+
// The browser never raises an input event for a key that is refused here.
|
|
185
|
+
if (!this.isLocked)
|
|
186
|
+
this.reject(event.key, 'input');
|
|
187
|
+
}
|
|
109
188
|
}
|
|
110
189
|
};
|
|
111
190
|
handleInput = (event) => {
|
|
112
191
|
const input = event.currentTarget;
|
|
113
192
|
if (!(input instanceof HTMLInputElement))
|
|
114
193
|
return;
|
|
115
|
-
|
|
116
|
-
if (
|
|
194
|
+
// The input method owns the text until compositionend; intermediate text is only displayed.
|
|
195
|
+
if (this.#composition) {
|
|
196
|
+
this.composingValue = input.value;
|
|
197
|
+
this.normalizeSelection();
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const text = input.value;
|
|
201
|
+
const nextValue = this.normalizeText(text).slice(0, this.length);
|
|
202
|
+
if (this.isLocked || !this.isValueAllowed(nextValue)) {
|
|
203
|
+
if (!this.isLocked)
|
|
204
|
+
this.reject(text, 'input');
|
|
117
205
|
input.value = this.value;
|
|
118
206
|
this.normalizeSelection();
|
|
119
207
|
return;
|
|
120
208
|
}
|
|
121
|
-
this.commitValue(nextValue, input.selectionStart ?? nextValue.length);
|
|
209
|
+
this.commitValue(nextValue, Math.min(input.selectionStart ?? nextValue.length, nextValue.length));
|
|
210
|
+
if (isReplacementInput(event))
|
|
211
|
+
this.requestComplete(nextValue);
|
|
212
|
+
this.normalizeSelection();
|
|
213
|
+
};
|
|
214
|
+
handleCompositionStart = () => {
|
|
215
|
+
const input = this.input;
|
|
216
|
+
if (!input || this.options.disabled() || isAlwaysComposingKeyboard(input))
|
|
217
|
+
return;
|
|
218
|
+
const value = this.value;
|
|
219
|
+
const start = Math.min(input.selectionStart ?? value.length, value.length);
|
|
220
|
+
const end = Math.min(Math.max(input.selectionEnd ?? start, start), value.length);
|
|
221
|
+
this.#composition = { value, start, end };
|
|
222
|
+
this.composingValue = input.value;
|
|
223
|
+
};
|
|
224
|
+
handleCompositionEnd = (event) => {
|
|
225
|
+
const composition = this.#composition;
|
|
226
|
+
const input = this.input;
|
|
227
|
+
if (!composition || !input)
|
|
228
|
+
return;
|
|
229
|
+
this.endComposition();
|
|
230
|
+
const value = this.value;
|
|
231
|
+
const composedText = this.normalizeText(event.data || readComposedText(input.value, composition));
|
|
232
|
+
const caret = composition.start + composedText.length;
|
|
233
|
+
// Composed text overwrites the selected cell and the cells after it, as typing does.
|
|
234
|
+
const nextValue = (value.slice(0, composition.start) +
|
|
235
|
+
composedText +
|
|
236
|
+
value.slice(Math.max(composition.end, caret))).slice(0, this.length);
|
|
237
|
+
if (
|
|
238
|
+
// A field disabled or locked mid-composition refuses the commit, as any other edit.
|
|
239
|
+
this.isLocked ||
|
|
240
|
+
!composedText ||
|
|
241
|
+
// A paste, or a parent value whose effect has not run yet, replaced the composed text.
|
|
242
|
+
value !== composition.value ||
|
|
243
|
+
!this.isValueAllowed(nextValue)) {
|
|
244
|
+
input.value = value;
|
|
245
|
+
this.setSelectionRange(composition.start, composition.end);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
this.commitValue(nextValue, caret);
|
|
122
249
|
this.normalizeSelection();
|
|
123
250
|
};
|
|
124
251
|
handlePaste = (event) => {
|
|
@@ -126,23 +253,37 @@ export class PinInputState {
|
|
|
126
253
|
if (!input)
|
|
127
254
|
return;
|
|
128
255
|
event.preventDefault();
|
|
256
|
+
if (this.isLocked)
|
|
257
|
+
return;
|
|
129
258
|
const rawText = event.clipboardData?.getData('text/plain') ?? '';
|
|
130
259
|
const transformer = this.options.pasteTransformer();
|
|
131
|
-
|
|
260
|
+
// The transformer is a paste-only first step; the shared pipeline follows it.
|
|
261
|
+
const pastedText = this.normalizeText(transformer ? transformer(rawText) : rawText);
|
|
262
|
+
if (pastedText === '') {
|
|
263
|
+
if (rawText !== '')
|
|
264
|
+
this.reject(rawText, 'paste');
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
132
267
|
const selectionStart = input.selectionStart ?? this.value.length;
|
|
133
268
|
const selectionEnd = input.selectionEnd ?? selectionStart;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
269
|
+
// A paste that fills every cell is a whole new code, wherever the caret was.
|
|
270
|
+
const nextValue = pastedText.length >= this.length
|
|
271
|
+
? pastedText.slice(0, this.length)
|
|
272
|
+
: (this.value.slice(0, selectionStart) + pastedText + this.value.slice(selectionEnd)).slice(0, this.length);
|
|
273
|
+
if (!this.isValueAllowed(nextValue)) {
|
|
274
|
+
this.reject(rawText, 'paste');
|
|
138
275
|
return;
|
|
276
|
+
}
|
|
139
277
|
const selectionEndAfterPaste = nextValue.length;
|
|
140
278
|
const selectionStartAfterPaste = nextValue.length === this.length
|
|
141
279
|
? Math.max(selectionEndAfterPaste - 1, 0)
|
|
142
280
|
: selectionEndAfterPaste;
|
|
143
281
|
this.commitValue(nextValue, selectionStartAfterPaste, selectionEndAfterPaste);
|
|
282
|
+
this.requestComplete(nextValue);
|
|
144
283
|
};
|
|
145
284
|
handleFocus = () => {
|
|
285
|
+
// A composition cannot outlive focus; drop one whose compositionend never arrived.
|
|
286
|
+
this.endComposition();
|
|
146
287
|
this.isFocused = true;
|
|
147
288
|
this.options.setFocused(true);
|
|
148
289
|
const selectionEnd = this.value.length;
|
|
@@ -159,11 +300,18 @@ export class PinInputState {
|
|
|
159
300
|
const input = this.input;
|
|
160
301
|
if (!input)
|
|
161
302
|
return;
|
|
162
|
-
|
|
303
|
+
// Inside a shadow root the document's active element is the host, not the input.
|
|
304
|
+
if (rootOf(input).activeElement !== input) {
|
|
163
305
|
this.selectionStart = null;
|
|
164
306
|
this.selectionEnd = null;
|
|
165
307
|
return;
|
|
166
308
|
}
|
|
309
|
+
// Moving the native selection mid-composition would cancel it, so only mirror the caret.
|
|
310
|
+
if (this.#composition) {
|
|
311
|
+
this.selectionStart = this.clampSelection(input.selectionStart ?? 0);
|
|
312
|
+
this.selectionEnd = this.clampSelection(input.selectionEnd ?? this.selectionStart);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
167
315
|
const nativeStart = this.clampSelection(input.selectionStart ?? this.value.length);
|
|
168
316
|
const nativeEnd = this.clampSelection(input.selectionEnd ?? nativeStart);
|
|
169
317
|
const nativeDirection = input.selectionDirection ?? 'none';
|
|
@@ -186,9 +334,14 @@ export class PinInputState {
|
|
|
186
334
|
this.#previousSelection = [selectionStart, selectionEnd, selectionDirection];
|
|
187
335
|
};
|
|
188
336
|
commitValue(nextValue, selectionStart, selectionEnd = selectionStart) {
|
|
337
|
+
this.#userCommit = nextValue;
|
|
189
338
|
this.options.setValue(nextValue);
|
|
190
|
-
|
|
191
|
-
|
|
339
|
+
// The field can refuse the change (while disabled); the input shows the value it holds.
|
|
340
|
+
const acceptedValue = this.value;
|
|
341
|
+
if (acceptedValue !== nextValue)
|
|
342
|
+
this.#userCommit = null;
|
|
343
|
+
if (this.input && this.input.value !== acceptedValue) {
|
|
344
|
+
this.input.value = acceptedValue;
|
|
192
345
|
}
|
|
193
346
|
this.setSelectionRange(selectionStart, selectionEnd);
|
|
194
347
|
}
|
|
@@ -273,6 +426,9 @@ export class PinInputState {
|
|
|
273
426
|
return closestIndex;
|
|
274
427
|
}
|
|
275
428
|
syncInputValue(value) {
|
|
429
|
+
// A value set from outside mid-composition replaces the text the input method was composing.
|
|
430
|
+
if (this.#composition && this.#composition.value !== value)
|
|
431
|
+
this.endComposition();
|
|
276
432
|
if (!this.input || this.input.value === value)
|
|
277
433
|
return;
|
|
278
434
|
this.input.value = value;
|
|
@@ -280,12 +436,42 @@ export class PinInputState {
|
|
|
280
436
|
queueMicrotask(this.normalizeSelection);
|
|
281
437
|
}
|
|
282
438
|
}
|
|
439
|
+
endComposition() {
|
|
440
|
+
this.#composition = null;
|
|
441
|
+
this.composingValue = null;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Reports a committed complete paste or autofill even when the code was already complete. A
|
|
445
|
+
* changed value is reported by the value effect after the update; an unchanged one right away.
|
|
446
|
+
*/
|
|
447
|
+
requestComplete(value) {
|
|
448
|
+
if (value.length !== this.length || this.value !== value)
|
|
449
|
+
return;
|
|
450
|
+
if (value === this.#previousValue) {
|
|
451
|
+
this.complete(value, true);
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
this.#pendingCompleteValue = value;
|
|
455
|
+
}
|
|
456
|
+
reject(text, source) {
|
|
457
|
+
this.options.onRejectInput()?.({ text, source });
|
|
458
|
+
}
|
|
459
|
+
/** Reports a complete code, and submits the form after one the user typed, pasted or filled. */
|
|
460
|
+
complete(value, byUser) {
|
|
461
|
+
this.options.onComplete()?.(value);
|
|
462
|
+
if (byUser && this.options.submitOnComplete() && !this.isLocked)
|
|
463
|
+
this.options.submit()?.();
|
|
464
|
+
}
|
|
283
465
|
notifyComplete(value) {
|
|
284
466
|
const previousValue = this.#previousValue;
|
|
467
|
+
const isRequested = this.#pendingCompleteValue === value;
|
|
468
|
+
const byUser = this.#userCommit === value;
|
|
469
|
+
this.#pendingCompleteValue = null;
|
|
470
|
+
this.#userCommit = null;
|
|
285
471
|
if (previousValue !== value &&
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
this.
|
|
472
|
+
value.length === this.length &&
|
|
473
|
+
(isRequested || previousValue.length < this.length)) {
|
|
474
|
+
this.complete(value, byUser);
|
|
289
475
|
}
|
|
290
476
|
this.#previousValue = value;
|
|
291
477
|
}
|
|
@@ -303,3 +489,20 @@ export class PinInputState {
|
|
|
303
489
|
return regex.test(value);
|
|
304
490
|
}
|
|
305
491
|
}
|
|
492
|
+
/** Whether an input event replaced the whole text, as autofill does, rather than typed into it. */
|
|
493
|
+
const isReplacementInput = (event) => {
|
|
494
|
+
const inputType = event.inputType;
|
|
495
|
+
// Some browsers autofill with a plain `input` Event that carries no input type.
|
|
496
|
+
return inputType === undefined || inputType === 'insertReplacementText';
|
|
497
|
+
};
|
|
498
|
+
/** Recovers the composed text from the input when compositionend carries no data. */
|
|
499
|
+
const readComposedText = (inputValue, { value, start, end }) => {
|
|
500
|
+
const prefix = value.slice(0, start);
|
|
501
|
+
const suffix = value.slice(end);
|
|
502
|
+
if (inputValue.length < prefix.length + suffix.length ||
|
|
503
|
+
!inputValue.startsWith(prefix) ||
|
|
504
|
+
!inputValue.endsWith(suffix)) {
|
|
505
|
+
return '';
|
|
506
|
+
}
|
|
507
|
+
return inputValue.slice(prefix.length, inputValue.length - suffix.length);
|
|
508
|
+
};
|
|
@@ -17,7 +17,12 @@ export declare const pinInputTheme: {
|
|
|
17
17
|
false: string;
|
|
18
18
|
};
|
|
19
19
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
20
|
-
input: (props?: import("../../../utils/cva/types.js").
|
|
20
|
+
input: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
21
|
+
composing: {
|
|
22
|
+
true: string;
|
|
23
|
+
false: string;
|
|
24
|
+
};
|
|
25
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
21
26
|
cell: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
22
27
|
size: {
|
|
23
28
|
small: string;
|
|
@@ -33,6 +38,13 @@ export declare const pinInputTheme: {
|
|
|
33
38
|
false: string;
|
|
34
39
|
};
|
|
35
40
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
41
|
+
separator: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
42
|
+
size: {
|
|
43
|
+
small: string;
|
|
44
|
+
normal: string;
|
|
45
|
+
large: string;
|
|
46
|
+
};
|
|
47
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
36
48
|
character: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
37
49
|
caret: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
38
50
|
};
|
|
@@ -56,7 +68,12 @@ export declare const setPinInputTheme: (theme: InferComponentTheme<{
|
|
|
56
68
|
false: string;
|
|
57
69
|
};
|
|
58
70
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
59
|
-
input: (props?: import("../../../utils/cva/types.js").
|
|
71
|
+
input: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
72
|
+
composing: {
|
|
73
|
+
true: string;
|
|
74
|
+
false: string;
|
|
75
|
+
};
|
|
76
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
60
77
|
cell: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
61
78
|
size: {
|
|
62
79
|
small: string;
|
|
@@ -72,6 +89,13 @@ export declare const setPinInputTheme: (theme: InferComponentTheme<{
|
|
|
72
89
|
false: string;
|
|
73
90
|
};
|
|
74
91
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
92
|
+
separator: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
93
|
+
size: {
|
|
94
|
+
small: string;
|
|
95
|
+
normal: string;
|
|
96
|
+
large: string;
|
|
97
|
+
};
|
|
98
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
75
99
|
character: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
76
100
|
caret: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
77
101
|
}>) => void;
|
|
@@ -93,7 +117,12 @@ export declare const usePinInputTheme: import("../../../utils/cva/theme.js").Use
|
|
|
93
117
|
false: string;
|
|
94
118
|
};
|
|
95
119
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
96
|
-
input: (props?: import("../../../utils/cva/types.js").
|
|
120
|
+
input: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
121
|
+
composing: {
|
|
122
|
+
true: string;
|
|
123
|
+
false: string;
|
|
124
|
+
};
|
|
125
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
97
126
|
cell: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
98
127
|
size: {
|
|
99
128
|
small: string;
|
|
@@ -109,6 +138,13 @@ export declare const usePinInputTheme: import("../../../utils/cva/theme.js").Use
|
|
|
109
138
|
false: string;
|
|
110
139
|
};
|
|
111
140
|
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
141
|
+
separator: (props?: (import("../../../utils/cva/types.js").CVAVariantSchema<{
|
|
142
|
+
size: {
|
|
143
|
+
small: string;
|
|
144
|
+
normal: string;
|
|
145
|
+
large: string;
|
|
146
|
+
};
|
|
147
|
+
}> & import("../../../utils/cva/types.js").CVAClassProp) | undefined) => string;
|
|
112
148
|
character: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
113
149
|
caret: (props?: import("../../../utils/cva/types.js").CVAClassProp | undefined) => string;
|
|
114
150
|
}>;
|
|
@@ -27,7 +27,19 @@ const defaultRoot = cva({
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
const defaultInput = cva({
|
|
30
|
-
base: 'absolute inset-0 z-10 size-full appearance-none border-0 bg-transparent text-transparent caret-transparent outline-none selection:bg-transparent selection:text-transparent [font-size:16px] disabled:cursor-not-allowed'
|
|
30
|
+
base: 'absolute inset-0 z-10 size-full appearance-none border-0 bg-transparent text-transparent caret-transparent outline-none selection:bg-transparent selection:text-transparent [font-size:16px] disabled:cursor-not-allowed',
|
|
31
|
+
variants: {
|
|
32
|
+
// An input method paints its composition underline or clause highlight whatever the text
|
|
33
|
+
// color, so the input hides while composing and the cells show the text. It stays opaque
|
|
34
|
+
// otherwise: iOS offers long-press paste only on a visible input.
|
|
35
|
+
composing: {
|
|
36
|
+
true: 'opacity-0',
|
|
37
|
+
false: ''
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
composing: false
|
|
42
|
+
}
|
|
31
43
|
});
|
|
32
44
|
const defaultCell = cva({
|
|
33
45
|
base: 'relative grid shrink-0 place-items-center overflow-hidden raised-1 bg-surface-raised font-mono font-medium tabular-nums text-neutral transition-[color,background-color,border-color,box-shadow]',
|
|
@@ -52,6 +64,19 @@ const defaultCell = cva({
|
|
|
52
64
|
disabled: false
|
|
53
65
|
}
|
|
54
66
|
});
|
|
67
|
+
const defaultSeparator = cva({
|
|
68
|
+
base: 'h-0.5 shrink-0 rounded-full bg-neutral-muted',
|
|
69
|
+
variants: {
|
|
70
|
+
size: {
|
|
71
|
+
small: 'w-1.5',
|
|
72
|
+
normal: 'w-2',
|
|
73
|
+
large: 'w-3'
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
defaultVariants: {
|
|
77
|
+
size: 'normal'
|
|
78
|
+
}
|
|
79
|
+
});
|
|
55
80
|
const defaultCharacter = cva({
|
|
56
81
|
base: 'select-none leading-none'
|
|
57
82
|
});
|
|
@@ -63,6 +88,7 @@ export const pinInputTheme = {
|
|
|
63
88
|
root: defaultRoot,
|
|
64
89
|
input: defaultInput,
|
|
65
90
|
cell: defaultCell,
|
|
91
|
+
separator: defaultSeparator,
|
|
66
92
|
character: defaultCharacter,
|
|
67
93
|
caret: defaultCaret
|
|
68
94
|
};
|