@wow-two-beta/ui-vue 0.0.5 → 0.0.6
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 +201 -65
- package/dist/analytics/Analytics.d.ts +5 -5
- package/dist/analytics/AnalyticsProvider.d.ts +1 -1
- package/dist/analytics/MemoryAnalyticsProvider.d.ts +4 -4
- package/dist/analytics/index.js +9 -1
- package/dist/analytics/index.js.map +1 -1
- package/dist/auth/AuthBridge.d.ts +4 -4
- package/dist/auth/AuthSession.d.ts +14 -7
- package/dist/auth/BearerStrategy.d.ts +12 -8
- package/dist/auth/CookieStrategy.d.ts +11 -8
- package/dist/auth/RedirectStrategy.d.ts +2 -2
- package/dist/auth/TokenStorage.d.ts +2 -2
- package/dist/auth/index.d.ts +4 -4
- package/dist/auth/index.js +138 -64
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/providers/AuthContext.d.ts +43 -0
- package/dist/auth/providers/AuthProvider.vue.d.ts +39 -0
- package/dist/chunks/Align-DqFtCY3a.js.map +1 -1
- package/dist/chunks/AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js.map +1 -1
- package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-QM4vCs2n.js +46 -0
- package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-QM4vCs2n.js.map +1 -0
- package/dist/chunks/ApiError-_AOua_XE.js +41 -0
- package/dist/chunks/ApiError-_AOua_XE.js.map +1 -0
- package/dist/chunks/AppErrorFactory-DCdNbVfv.js +54 -0
- package/dist/chunks/AppErrorFactory-DCdNbVfv.js.map +1 -0
- package/dist/chunks/AriaAttribute-CmUjjXjp.js +42 -0
- package/dist/chunks/AriaAttribute-CmUjjXjp.js.map +1 -0
- package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CSRUFdcY.js +936 -0
- package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CSRUFdcY.js.map +1 -0
- package/dist/chunks/BackdropOverlay.vue_vue_type_script_setup_true_lang-DM8CjnY2.js +76 -0
- package/dist/chunks/BackdropOverlay.vue_vue_type_script_setup_true_lang-DM8CjnY2.js.map +1 -0
- package/dist/chunks/Button.vue_vue_type_script_setup_true_lang-CLqRVtAu.js +632 -0
- package/dist/chunks/Button.vue_vue_type_script_setup_true_lang-CLqRVtAu.js.map +1 -0
- package/dist/chunks/Bytes-CzQrdbN4.js +21 -0
- package/dist/chunks/Bytes-CzQrdbN4.js.map +1 -0
- package/dist/chunks/CharacterCountCallout.vue_vue_type_script_setup_true_lang-CJaPwXly.js +2076 -0
- package/dist/chunks/CharacterCountCallout.vue_vue_type_script_setup_true_lang-CJaPwXly.js.map +1 -0
- package/dist/chunks/Chord-C3OKRsgk.js +139 -0
- package/dist/chunks/Chord-C3OKRsgk.js.map +1 -0
- package/dist/chunks/Cn-CzDCF-Ah.js +9 -0
- package/dist/chunks/Cn-CzDCF-Ah.js.map +1 -0
- package/dist/chunks/ColorExtensions-DiCSaVbJ.js +53 -0
- package/dist/chunks/ColorExtensions-DiCSaVbJ.js.map +1 -0
- package/dist/chunks/ColorModeContext-DC77vyvQ.js +19 -0
- package/dist/chunks/ColorModeContext-DC77vyvQ.js.map +1 -0
- package/dist/chunks/CommandPaletteModalSeparator.vue_vue_type_script_setup_true_lang-B6FGFSfj.js +2080 -0
- package/dist/chunks/CommandPaletteModalSeparator.vue_vue_type_script_setup_true_lang-B6FGFSfj.js.map +1 -0
- package/dist/chunks/Compare-C5NGppdh.js +35 -0
- package/dist/chunks/Compare-C5NGppdh.js.map +1 -0
- package/dist/chunks/ComposeEventHandlers-rgxao5aD.js +12 -0
- package/dist/chunks/ComposeEventHandlers-rgxao5aD.js.map +1 -0
- package/dist/chunks/CornerPosition-FneGck5D.js.map +1 -1
- package/dist/chunks/CssExtensions-ctGVlfYU.js +161 -0
- package/dist/chunks/CssExtensions-ctGVlfYU.js.map +1 -0
- package/dist/chunks/DataAttr-7BR67dTj.js +7 -0
- package/dist/chunks/DataAttr-7BR67dTj.js.map +1 -0
- package/dist/chunks/DeepEqual-xCcUOAA8.js +131 -0
- package/dist/chunks/DeepEqual-xCcUOAA8.js.map +1 -0
- package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-DElE4ZeQ.js +322 -0
- package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-DElE4ZeQ.js.map +1 -0
- package/dist/chunks/DomOrderExtensions-Czsyvn6e.js +16 -0
- package/dist/chunks/DomOrderExtensions-Czsyvn6e.js.map +1 -0
- package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-dLwafPAj.js +212 -0
- package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-dLwafPAj.js.map +1 -0
- package/dist/chunks/EmojiCatalog-CR4Lcm43.js.map +1 -1
- package/dist/chunks/Environment-BLuXHzzF.js +16 -0
- package/dist/chunks/Environment-BLuXHzzF.js.map +1 -0
- package/dist/chunks/Equality-BabbLMBX.js +27 -0
- package/dist/chunks/Equality-BabbLMBX.js.map +1 -0
- package/dist/chunks/ErrorLike-CRnbeEM0.js +27 -0
- package/dist/chunks/ErrorLike-CRnbeEM0.js.map +1 -0
- package/dist/chunks/ErrorRecognizers-DO2SHD6N.js +17 -0
- package/dist/chunks/ErrorRecognizers-DO2SHD6N.js.map +1 -0
- package/dist/chunks/ExactNumber-CboRl3_0.js +224 -0
- package/dist/chunks/ExactNumber-CboRl3_0.js.map +1 -0
- package/dist/chunks/FeedbackBus-CTj18X4n.js.map +1 -1
- package/dist/chunks/FieldErrorCallout.vue_vue_type_script_setup_true_lang-C185v77U.js +55 -0
- package/dist/chunks/FieldErrorCallout.vue_vue_type_script_setup_true_lang-C185v77U.js.map +1 -0
- package/dist/chunks/FieldErrors-DIHjOm5W.js +57 -0
- package/dist/chunks/FieldErrors-DIHjOm5W.js.map +1 -0
- package/dist/chunks/FieldHelperText.vue_vue_type_script_setup_true_lang-YYE7Zysp.js +497 -0
- package/dist/chunks/FieldHelperText.vue_vue_type_script_setup_true_lang-YYE7Zysp.js.map +1 -0
- package/dist/chunks/FileName-DUtj4I5A.js +33 -0
- package/dist/chunks/FileName-DUtj4I5A.js.map +1 -0
- package/dist/chunks/FormControlContext-B71MFW26.js.map +1 -1
- package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-D_yikT2o.js +70 -0
- package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-D_yikT2o.js.map +1 -0
- package/dist/chunks/GoogleIdentity-D12Kr334.js +123 -0
- package/dist/chunks/GoogleIdentity-D12Kr334.js.map +1 -0
- package/dist/chunks/Guid-CflnxKPZ.js +68 -0
- package/dist/chunks/Guid-CflnxKPZ.js.map +1 -0
- package/dist/chunks/HtmlValues-jlKY5f9C.js +23 -0
- package/dist/chunks/HtmlValues-jlKY5f9C.js.map +1 -0
- package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-BVWSqaoe.js +28 -0
- package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-BVWSqaoe.js.map +1 -0
- package/dist/chunks/InlineLayout.vue_vue_type_script_setup_true_lang-CdG8lfst.js +68 -0
- package/dist/chunks/InlineLayout.vue_vue_type_script_setup_true_lang-CdG8lfst.js.map +1 -0
- package/dist/chunks/Key-CQlkK53D.js +34 -0
- package/dist/chunks/Key-CQlkK53D.js.map +1 -0
- package/dist/chunks/LinkItem.vue_vue_type_script_setup_true_lang-BjPIqvPc.js +1809 -0
- package/dist/chunks/LinkItem.vue_vue_type_script_setup_true_lang-BjPIqvPc.js.map +1 -0
- package/dist/chunks/LocaleContext-B7vUZmX-.js +41 -0
- package/dist/chunks/LocaleContext-B7vUZmX-.js.map +1 -0
- package/dist/chunks/Messages-CSW3nyTs.js +201 -0
- package/dist/chunks/Messages-CSW3nyTs.js.map +1 -0
- package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-ed_LzXDI.js +86 -0
- package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-ed_LzXDI.js.map +1 -0
- package/dist/chunks/OnboardingChecklistCardTask.vue_vue_type_script_setup_true_lang-vqTtyR9L.js +9796 -0
- package/dist/chunks/OnboardingChecklistCardTask.vue_vue_type_script_setup_true_lang-vqTtyR9L.js.map +1 -0
- package/dist/chunks/OptionalExtensions-NiO6gV0W.js +10 -0
- package/dist/chunks/OptionalExtensions-NiO6gV0W.js.map +1 -0
- package/dist/chunks/Orientation-u-sYunuG.js.map +1 -1
- package/dist/chunks/OverlayArrow.vue_vue_type_script_setup_true_lang-CLYhnI8i.js.map +1 -1
- package/dist/chunks/OverlayPosition-BNybkMGG.js.map +1 -1
- package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DPJZHdv2.js +268 -0
- package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DPJZHdv2.js.map +1 -0
- package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-C2_xSIMy.js +32 -0
- package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-C2_xSIMy.js.map +1 -0
- package/dist/chunks/Presence-BwBquQOQ.js +138 -0
- package/dist/chunks/Presence-BwBquQOQ.js.map +1 -0
- package/dist/chunks/PressExtensions-DXqhjlR2.js.map +1 -1
- package/dist/chunks/Primitive-Bt_MgDir.js +20 -0
- package/dist/chunks/Primitive-Bt_MgDir.js.map +1 -0
- package/dist/chunks/ProgressTone-BpLPUptx.js.map +1 -1
- package/dist/chunks/QueryPermission-BsLR2WRk.js +94 -0
- package/dist/chunks/QueryPermission-BsLR2WRk.js.map +1 -0
- package/dist/chunks/QueryPlugin-CfotNm6j.js.map +1 -1
- package/dist/chunks/ResultExtensions-B7dWH0FZ.js +58 -0
- package/dist/chunks/ResultExtensions-B7dWH0FZ.js.map +1 -0
- package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-BGZe5AX4.js +244 -0
- package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-BGZe5AX4.js.map +1 -0
- package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-DAYt3wgP.js +20 -0
- package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-DAYt3wgP.js.map +1 -0
- package/dist/chunks/SerializeError-BzTdy-3I.js +61 -0
- package/dist/chunks/SerializeError-BzTdy-3I.js.map +1 -0
- package/dist/chunks/Severity-D0C5oAt-.js.map +1 -1
- package/dist/chunks/Side-Kw61CDou.js +14 -0
- package/dist/chunks/Side-Kw61CDou.js.map +1 -0
- package/dist/chunks/Slot-CLT4PkWl.js +99 -0
- package/dist/chunks/Slot-CLT4PkWl.js.map +1 -0
- package/dist/chunks/SortableGroupMoveButton.vue_vue_type_script_setup_true_lang-TLzaptOC.js +14429 -0
- package/dist/chunks/SortableGroupMoveButton.vue_vue_type_script_setup_true_lang-TLzaptOC.js.map +1 -0
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-CU7oxE3n.js +23 -0
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-CU7oxE3n.js.map +1 -0
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-jgKrZLIK.js +76 -0
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-jgKrZLIK.js.map +1 -0
- package/dist/chunks/StackLayout.vue_vue_type_script_setup_true_lang-BTht83c-.js +172 -0
- package/dist/chunks/StackLayout.vue_vue_type_script_setup_true_lang-BTht83c-.js.map +1 -0
- package/dist/chunks/StatusTone-BoPK1s09.js.map +1 -1
- package/dist/chunks/StorageBroker-COC81ZGB.js.map +1 -1
- package/dist/chunks/StyleTokens-Bkz7Dm5L.js.map +1 -1
- package/dist/chunks/SubmitErrors-1_5oKOb1.js +402 -0
- package/dist/chunks/SubmitErrors-1_5oKOb1.js.map +1 -0
- package/dist/chunks/SurfaceStyles-BYLzCbuJ.js +144 -0
- package/dist/chunks/SurfaceStyles-BYLzCbuJ.js.map +1 -0
- package/dist/chunks/SwipeActionsLayout.vue_vue_type_script_setup_true_lang-Dc0UJfs9.js +2388 -0
- package/dist/chunks/SwipeActionsLayout.vue_vue_type_script_setup_true_lang-Dc0UJfs9.js.map +1 -0
- package/dist/chunks/ToError-vXncXe19.js +52 -0
- package/dist/chunks/ToError-vXncXe19.js.map +1 -0
- package/dist/chunks/Tones-DSlTgkaB.js +108 -0
- package/dist/chunks/Tones-DSlTgkaB.js.map +1 -0
- package/dist/chunks/TransitionExtensions-HyBfcJnn.js +19 -0
- package/dist/chunks/TransitionExtensions-HyBfcJnn.js.map +1 -0
- package/dist/chunks/UrlExtensions-DqgLm0KY.js +46 -0
- package/dist/chunks/UrlExtensions-DqgLm0KY.js.map +1 -0
- package/dist/chunks/UseClipboard-x6nEdQ9f.js +230 -0
- package/dist/chunks/UseClipboard-x6nEdQ9f.js.map +1 -0
- package/dist/chunks/UseControlled-BQneb7BW.js +29 -0
- package/dist/chunks/UseControlled-BQneb7BW.js.map +1 -0
- package/dist/chunks/UseDebounceHandler-BIZgvvGp.js +20 -0
- package/dist/chunks/UseDebounceHandler-BIZgvvGp.js.map +1 -0
- package/dist/chunks/UseEscape-CYPdpm_l.js +15 -0
- package/dist/chunks/UseEscape-CYPdpm_l.js.map +1 -0
- package/dist/chunks/UseEventListener-C1WgWGoT.js +17 -0
- package/dist/chunks/UseEventListener-C1WgWGoT.js.map +1 -0
- package/dist/chunks/UseHotkeys-dSOwoutT.js +82 -0
- package/dist/chunks/UseHotkeys-dSOwoutT.js.map +1 -0
- package/dist/chunks/UseId-CtgAhGrn.js +9 -0
- package/dist/chunks/UseId-CtgAhGrn.js.map +1 -0
- package/dist/chunks/UseNavigationProgress-Bx_MWd39.js +51 -0
- package/dist/chunks/UseNavigationProgress-Bx_MWd39.js.map +1 -0
- package/dist/chunks/UseOutsideClick-8TTSb9x6.js +57 -0
- package/dist/chunks/UseOutsideClick-8TTSb9x6.js.map +1 -0
- package/dist/chunks/UseRecentItems-Bgj28t5Y.js +63 -0
- package/dist/chunks/UseRecentItems-Bgj28t5Y.js.map +1 -0
- package/dist/chunks/UseReducedMotion-NZ5fg-Xb.js +36 -0
- package/dist/chunks/UseReducedMotion-NZ5fg-Xb.js.map +1 -0
- package/dist/chunks/UseResizeObserver-BUU7lC-n.js +17 -0
- package/dist/chunks/UseResizeObserver-BUU7lC-n.js.map +1 -0
- package/dist/chunks/UseScrollLock-DSk4L9xF.js +38 -0
- package/dist/chunks/UseScrollLock-DSk4L9xF.js.map +1 -0
- package/dist/chunks/UseTypeahead-C-y7nBo2.js +82 -0
- package/dist/chunks/UseTypeahead-C-y7nBo2.js.map +1 -0
- package/dist/chunks/index-BNxprnsV.js +81 -0
- package/dist/chunks/index-BNxprnsV.js.map +1 -0
- package/dist/chunks/index-BvFTmSpn.js +251 -0
- package/dist/chunks/index-BvFTmSpn.js.map +1 -0
- package/dist/chunks/index-BzMmo8Zb.js +245 -0
- package/dist/chunks/index-BzMmo8Zb.js.map +1 -0
- package/dist/chunks/index-Ck71aqGg.js +11 -0
- package/dist/chunks/index-Ck71aqGg.js.map +1 -0
- package/dist/chunks/index-ClXOmDLK.js +9 -0
- package/dist/chunks/index-ClXOmDLK.js.map +1 -0
- package/dist/chunks/index-DAbvXWP_.js +118 -0
- package/dist/chunks/index-DAbvXWP_.js.map +1 -0
- package/dist/chunks/index-DOC7DwST.js +12 -0
- package/dist/chunks/index-DOC7DwST.js.map +1 -0
- package/dist/chunks/index-DQ01kvk7.js +28 -0
- package/dist/chunks/index-DQ01kvk7.js.map +1 -0
- package/dist/chunks/index-DqGUKtAH.js +1783 -0
- package/dist/chunks/index-DqGUKtAH.js.map +1 -0
- package/dist/chunks/index-KL15HQew.js.map +1 -1
- package/dist/domain/color/Gradient.d.ts +2 -2
- package/dist/domain/color/index.d.ts +1 -1
- package/dist/domain/emoji/EmojiCatalog.d.ts +4 -4
- package/dist/domain/emoji/EmojiCatalogData.d.ts +1 -1
- package/dist/feedback/FeedbackBus.d.ts +10 -10
- package/dist/feedback/FeedbackQueryErrors.d.ts +5 -20
- package/dist/feedback/index.js +4 -5
- package/dist/feedback/index.js.map +1 -1
- package/dist/flags/FlagClient.d.ts +3 -3
- package/dist/flags/FlagProvider.d.ts +3 -3
- package/dist/flags/FlagTypes.d.ts +6 -6
- package/dist/flags/StaticFlagProvider.d.ts +4 -10
- package/dist/flags/index.d.ts +2 -2
- package/dist/flags/index.js +106 -26
- package/dist/flags/index.js.map +1 -1
- package/dist/flags/providers/FlagsContext.d.ts +31 -0
- package/dist/flags/providers/FlagsProvider.vue.d.ts +24 -0
- package/dist/formsEngine/AppForm.d.ts +259 -0
- package/dist/formsEngine/DeepEqual.d.ts +8 -0
- package/dist/formsEngine/FocusFirstInvalid.d.ts +9 -0
- package/dist/formsEngine/FormGlue.d.ts +54 -0
- package/dist/formsEngine/FormOperations.d.ts +11 -0
- package/dist/formsEngine/FormSnapshot.d.ts +7 -0
- package/dist/formsEngine/Paths.d.ts +47 -0
- package/dist/formsEngine/SchemaValidation.d.ts +39 -0
- package/dist/formsEngine/SubmitErrors.d.ts +28 -0
- package/dist/formsEngine/UseFieldArray.d.ts +87 -0
- package/dist/formsEngine/adapters/house/HouseFormCore.d.ts +34 -0
- package/dist/formsEngine/adapters/house/UseAppForm.d.ts +16 -0
- package/dist/formsEngine/adapters/house/index.js +436 -0
- package/dist/formsEngine/adapters/house/index.js.map +1 -0
- package/dist/formsEngine/adapters/tanstack/TanstackFormOverlay.d.ts +56 -0
- package/dist/formsEngine/adapters/tanstack/UseAppForm.d.ts +26 -0
- package/dist/formsEngine/adapters/tanstack/index.js +516 -0
- package/dist/formsEngine/adapters/tanstack/index.js.map +1 -0
- package/dist/formsEngine/index.d.ts +10 -0
- package/dist/formsEngine/index.js +130 -0
- package/dist/formsEngine/index.js.map +1 -0
- package/dist/foundation/animation/Animate.d.ts +1 -1
- package/dist/foundation/animation/Flip.d.ts +1 -1
- package/dist/foundation/animation/UseFlip.d.ts +1 -1
- package/dist/foundation/animation/animatedLayout/AnimatedLayout.d.ts +72 -0
- package/dist/foundation/animation/animatedLayout/index.d.ts +1 -0
- package/dist/foundation/animation/index.d.ts +5 -3
- package/dist/foundation/animation/index.js +17 -18
- package/dist/foundation/animation/index.js.map +1 -1
- package/dist/foundation/async/Retry.d.ts +1 -1
- package/dist/foundation/async/index.d.ts +1 -0
- package/dist/foundation/async/index.js +12 -6
- package/dist/foundation/async/index.js.map +1 -1
- package/dist/foundation/channels/LeaderElection.d.ts +97 -0
- package/dist/foundation/channels/SyncChannel.d.ts +76 -0
- package/dist/foundation/channels/hooks/UseBroadcastState.d.ts +31 -0
- package/dist/foundation/channels/hooks/UseLeaderElection.d.ts +25 -0
- package/dist/foundation/channels/hooks/UseSyncChannel.d.ts +16 -0
- package/dist/foundation/channels/index.d.ts +7 -0
- package/dist/foundation/channels/index.js +493 -0
- package/dist/foundation/channels/index.js.map +1 -0
- package/dist/foundation/clipboard/ClipboardFailureCode.d.ts +7 -0
- package/dist/foundation/clipboard/ClipboardPermission.d.ts +10 -4
- package/dist/foundation/clipboard/ClipboardResult.d.ts +9 -43
- package/dist/foundation/clipboard/ClipboardSupport.d.ts +14 -3
- package/dist/foundation/clipboard/PasteItems.d.ts +2 -2
- package/dist/foundation/clipboard/ReadClipboard.d.ts +1 -2
- package/dist/foundation/clipboard/hooks/UseClipboard.d.ts +25 -0
- package/dist/foundation/clipboard/hooks/UseClipboardCopy.d.ts +40 -0
- package/dist/foundation/clipboard/hooks/UsePasteHandler.d.ts +35 -0
- package/dist/foundation/clipboard/index.d.ts +5 -3
- package/dist/foundation/clipboard/index.js +52 -186
- package/dist/foundation/clipboard/index.js.map +1 -1
- package/dist/foundation/clipboard/models/ClipboardFailure.d.ts +11 -0
- package/dist/foundation/clipboard/models/ClipboardReadItemsResult.d.ts +5 -0
- package/dist/foundation/clipboard/models/ClipboardReadTextResult.d.ts +4 -0
- package/dist/foundation/clipboard/models/ClipboardWriteResult.d.ts +4 -0
- package/dist/foundation/collections/Arrays.d.ts +12 -12
- package/dist/foundation/collections/Comparison.d.ts +1 -1
- package/dist/foundation/collections/Records.d.ts +3 -3
- package/dist/foundation/collections/SetOps.d.ts +4 -4
- package/dist/foundation/collections/Tree.d.ts +5 -4
- package/dist/foundation/collections/index.d.ts +3 -2
- package/dist/foundation/collections/index.js +98 -94
- package/dist/foundation/collections/index.js.map +1 -1
- package/dist/foundation/commands/Command.d.ts +14 -22
- package/dist/foundation/commands/CommandRegistry.d.ts +11 -10
- package/dist/foundation/commands/CommandRunFailureCode.d.ts +7 -0
- package/dist/foundation/commands/SearchCommands.d.ts +3 -3
- package/dist/foundation/commands/hooks/UseCommandRegistry.d.ts +19 -0
- package/dist/foundation/commands/hooks/UseCommandShortcuts.d.ts +18 -0
- package/dist/foundation/commands/index.d.ts +9 -6
- package/dist/foundation/commands/index.js +16 -22
- package/dist/foundation/commands/index.js.map +1 -1
- package/dist/foundation/commands/models/CommandRunFailure.d.ts +11 -0
- package/dist/foundation/commands/models/CommandRunResult.d.ts +4 -0
- package/dist/foundation/commands/providers/CommandsContext.d.ts +30 -0
- package/dist/foundation/commands/providers/CommandsProvider.vue.d.ts +18 -0
- package/dist/foundation/config/ConfigField.d.ts +2 -2
- package/dist/foundation/config/ConfigSource.d.ts +3 -3
- package/dist/foundation/config/DefineConfig.d.ts +3 -3
- package/dist/foundation/config/Environment.d.ts +12 -0
- package/dist/foundation/config/index.d.ts +2 -1
- package/dist/foundation/config/index.js +11 -7
- package/dist/foundation/config/index.js.map +1 -1
- package/dist/foundation/crypto/Digest.d.ts +18 -4
- package/dist/foundation/crypto/Encoding.d.ts +4 -1
- package/dist/foundation/crypto/Random.d.ts +3 -3
- package/dist/foundation/crypto/WebCrypto.d.ts +2 -2
- package/dist/foundation/crypto/index.d.ts +2 -2
- package/dist/foundation/crypto/index.js +36 -26
- package/dist/foundation/crypto/index.js.map +1 -1
- package/dist/foundation/datetime/Comparison.d.ts +2 -2
- package/dist/foundation/datetime/Internals.d.ts +4 -4
- package/dist/foundation/datetime/TemporalCodecs.d.ts +26 -0
- package/dist/foundation/datetime/index.d.ts +2 -1
- package/dist/foundation/datetime/index.js +147 -20
- package/dist/foundation/datetime/index.js.map +1 -1
- package/dist/foundation/device/Breakpoints.d.ts +4 -10
- package/dist/foundation/device/hooks/UseBreakpoint.d.ts +4 -0
- package/dist/foundation/device/hooks/UseDisplayMode.d.ts +23 -0
- package/dist/foundation/device/hooks/UseMediaQuery.d.ts +14 -0
- package/dist/foundation/device/hooks/UsePointer.d.ts +25 -0
- package/dist/foundation/device/index.d.ts +9 -7
- package/dist/foundation/device/index.js +51 -45
- package/dist/foundation/device/index.js.map +1 -1
- package/dist/foundation/dom/DomOrderExtensions.d.ts +4 -0
- package/dist/foundation/dom/Polymorphic.d.ts +29 -0
- package/dist/foundation/dom/UrlExtensions.d.ts +5 -0
- package/dist/foundation/dom/enums/AriaAttribute.d.ts +48 -0
- package/dist/foundation/dom/enums/AttributeValue.d.ts +9 -0
- package/dist/foundation/dom/enums/DomEvent.d.ts +25 -0
- package/dist/foundation/dom/index.d.ts +16 -0
- package/dist/foundation/dom/index.js +31 -0
- package/dist/foundation/dom/index.js.map +1 -0
- package/dist/foundation/errors/ErrorLike.d.ts +1 -1
- package/dist/foundation/errors/ErrorMessage.d.ts +1 -1
- package/dist/foundation/errors/SerializeError.d.ts +13 -4
- package/dist/foundation/errors/ToError.d.ts +4 -1
- package/dist/foundation/errors/index.js +32 -12
- package/dist/foundation/errors/index.js.map +1 -1
- package/dist/foundation/files/index.d.ts +1 -1
- package/dist/foundation/files/index.js +2 -2
- package/dist/foundation/files/index.js.map +1 -1
- package/dist/foundation/formatters/Text.d.ts +52 -0
- package/dist/foundation/formatters/index.js +102 -0
- package/dist/foundation/formatters/index.js.map +1 -0
- package/dist/foundation/geolocation/DistanceBetween.d.ts +1 -1
- package/dist/foundation/geolocation/GetCurrentPosition.d.ts +3 -3
- package/dist/foundation/geolocation/PositionFailureCode.d.ts +9 -0
- package/dist/foundation/geolocation/PositionMapping.d.ts +50 -0
- package/dist/foundation/geolocation/WatchPosition.d.ts +3 -3
- package/dist/foundation/geolocation/hooks/UseGeolocation.d.ts +38 -0
- package/dist/foundation/geolocation/hooks/UseWatchPosition.d.ts +16 -0
- package/dist/foundation/geolocation/index.d.ts +6 -5
- package/dist/foundation/geolocation/index.js +39 -23
- package/dist/foundation/geolocation/index.js.map +1 -1
- package/dist/foundation/geolocation/models/GeolocationReading.d.ts +37 -0
- package/dist/foundation/geolocation/models/PositionFailure.d.ts +14 -0
- package/dist/foundation/geolocation/models/PositionReadResult.d.ts +5 -0
- package/dist/foundation/gestures/GestureMath.d.ts +4 -4
- package/dist/foundation/gestures/hooks/UseDrag.d.ts +75 -0
- package/dist/foundation/gestures/hooks/UseLongPress.d.ts +42 -0
- package/dist/foundation/gestures/hooks/UsePinch.d.ts +47 -0
- package/dist/foundation/gestures/hooks/UseSwipe.d.ts +46 -0
- package/dist/foundation/gestures/index.d.ts +6 -6
- package/dist/foundation/gestures/index.js +15 -14
- package/dist/foundation/gestures/index.js.map +1 -1
- package/dist/foundation/history/HistoryCore.d.ts +92 -0
- package/dist/foundation/history/hooks/UseUndoHistory.d.ts +66 -0
- package/dist/foundation/history/hooks/UseUndoShortcuts.d.ts +20 -0
- package/dist/foundation/history/index.d.ts +5 -0
- package/dist/foundation/history/index.js +363 -0
- package/dist/foundation/history/index.js.map +1 -0
- package/dist/foundation/http/ApiError.d.ts +7 -4
- package/dist/foundation/http/ApiFailure.d.ts +21 -0
- package/dist/foundation/http/ApiJsonCodec.d.ts +8 -0
- package/dist/foundation/http/CreateApiClient.d.ts +27 -42
- package/dist/foundation/http/Envelope.d.ts +7 -29
- package/dist/foundation/http/FieldErrors.d.ts +1 -1
- package/dist/foundation/http/index.d.ts +6 -5
- package/dist/foundation/http/index.js +123 -124
- package/dist/foundation/http/index.js.map +1 -1
- package/dist/foundation/http/models/Page.d.ts +47 -0
- package/dist/foundation/i18n/IntlCache.d.ts +4 -0
- package/dist/foundation/i18n/formattedRelative/FormattedRelative.vue.d.ts +9 -0
- package/dist/foundation/i18n/formattedRelative/index.d.ts +1 -0
- package/dist/foundation/i18n/index.d.ts +4 -3
- package/dist/foundation/i18n/index.js +13 -22
- package/dist/foundation/i18n/index.js.map +1 -1
- package/dist/foundation/i18n/providers/LocaleContext.d.ts +35 -0
- package/dist/foundation/i18n/providers/LocaleProvider.vue.d.ts +18 -0
- package/dist/foundation/icons/icon/Icon.vue.d.ts +44 -0
- package/dist/foundation/icons/icon/index.d.ts +1 -0
- package/dist/foundation/icons/index.d.ts +2 -2
- package/dist/foundation/icons/index.js +2 -2
- package/dist/foundation/icons/spinner/Spinner.vue.d.ts +6 -0
- package/dist/foundation/icons/spinner/index.d.ts +1 -0
- package/dist/foundation/idb/KeyValueStore.d.ts +3 -3
- package/dist/foundation/idb/Transactions.d.ts +1 -1
- package/dist/foundation/idb/index.d.ts +2 -2
- package/dist/foundation/idb/index.js +21 -4
- package/dist/foundation/idb/index.js.map +1 -1
- package/dist/foundation/identifiers/Guid.d.ts +6 -3
- package/dist/foundation/identifiers/index.d.ts +1 -0
- package/dist/foundation/identifiers/index.js +4 -65
- package/dist/foundation/identifiers/index.js.map +1 -1
- package/dist/foundation/json/JsonFailureCode.d.ts +9 -0
- package/dist/foundation/json/JsonLimits.d.ts +6 -0
- package/dist/foundation/json/JsonText.d.ts +12 -0
- package/dist/foundation/json/LosslessJson.d.ts +8 -0
- package/dist/foundation/json/adapters/losslessJson/JsonAdapter.d.ts +5 -0
- package/dist/foundation/json/index.d.ts +5 -0
- package/dist/foundation/json/index.js +7 -0
- package/dist/foundation/json/index.js.map +1 -0
- package/dist/foundation/json/models/JsonFailure.d.ts +6 -0
- package/dist/foundation/json/models/LosslessJsonValue.d.ts +5 -0
- package/dist/foundation/logger/ConsoleLogSink.d.ts +4 -1
- package/dist/foundation/logger/LogLevel.d.ts +8 -2
- package/dist/foundation/logger/LogRecord.d.ts +2 -2
- package/dist/foundation/logger/LogSink.d.ts +5 -2
- package/dist/foundation/logger/Logger.d.ts +15 -6
- package/dist/foundation/logger/MemoryLogSink.d.ts +1 -1
- package/dist/foundation/logger/Redaction.d.ts +4 -4
- package/dist/foundation/logger/index.js +8 -3
- package/dist/foundation/logger/index.js.map +1 -1
- package/dist/foundation/media/CanCaptureMedia.d.ts +10 -1
- package/dist/foundation/media/FacingMode.d.ts +11 -4
- package/dist/foundation/media/ListMediaDevices.d.ts +8 -5
- package/dist/foundation/media/MediaStreamFailureCode.d.ts +10 -0
- package/dist/foundation/media/MediaStreamMapping.d.ts +15 -0
- package/dist/foundation/media/RequestMediaStream.d.ts +4 -4
- package/dist/foundation/media/UseMediaStream.d.ts +18 -5
- package/dist/foundation/media/index.d.ts +2 -1
- package/dist/foundation/media/index.js +51 -23
- package/dist/foundation/media/index.js.map +1 -1
- package/dist/foundation/media/models/MediaStreamFailure.d.ts +16 -0
- package/dist/foundation/media/models/MediaStreamRequestResult.d.ts +4 -0
- package/dist/foundation/net/ConnectionState.d.ts +6 -3
- package/dist/foundation/net/CreateEventStream.d.ts +10 -4
- package/dist/foundation/net/CreatePoller.d.ts +9 -3
- package/dist/foundation/net/CreateSocketClient.d.ts +5 -5
- package/dist/foundation/net/Liveness.d.ts +1 -1
- package/dist/foundation/net/Reconnect.d.ts +1 -1
- package/dist/foundation/net/hooks/UseEventStream.d.ts +25 -0
- package/dist/foundation/net/hooks/UsePolling.d.ts +26 -0
- package/dist/foundation/net/hooks/UseSocket.d.ts +32 -0
- package/dist/foundation/net/index.d.ts +3 -3
- package/dist/foundation/net/index.js +7 -5
- package/dist/foundation/net/index.js.map +1 -1
- package/dist/foundation/notifications/NotificationFailureCode.d.ts +7 -0
- package/dist/foundation/notifications/NotificationPermission.d.ts +12 -1
- package/dist/foundation/notifications/Notify.d.ts +7 -24
- package/dist/foundation/notifications/QueryPermission.d.ts +12 -1
- package/dist/foundation/notifications/hooks/UseNotificationPermission.d.ts +27 -0
- package/dist/foundation/notifications/hooks/UsePermissionState.d.ts +14 -0
- package/dist/foundation/notifications/index.d.ts +4 -3
- package/dist/foundation/notifications/index.js +41 -19
- package/dist/foundation/notifications/index.js.map +1 -1
- package/dist/foundation/notifications/models/NotificationFailure.d.ts +10 -0
- package/dist/foundation/notifications/models/NotificationShowResult.d.ts +4 -0
- package/dist/foundation/numbers/ExactNumber.d.ts +13 -0
- package/dist/foundation/numbers/NumberLimits.d.ts +7 -0
- package/dist/foundation/numbers/adapters/bignumber/DecimalArithmetic.d.ts +4 -0
- package/dist/foundation/numbers/enums/NumberFailureCode.d.ts +10 -0
- package/dist/foundation/numbers/enums/NumberRounding.d.ts +13 -0
- package/dist/foundation/numbers/index.d.ts +6 -0
- package/dist/foundation/numbers/index.js +8 -0
- package/dist/foundation/numbers/index.js.map +1 -0
- package/dist/foundation/numbers/models/ExactNumber.d.ts +47 -0
- package/dist/foundation/numbers/models/NumberFailure.d.ts +6 -0
- package/dist/foundation/numbers/models/NumberRoundingOptions.d.ts +6 -0
- package/dist/foundation/oauth/GoogleIdentity.d.ts +98 -0
- package/dist/foundation/oauth/index.d.ts +1 -0
- package/dist/foundation/oauth/index.js +7 -0
- package/dist/foundation/oauth/index.js.map +1 -0
- package/dist/foundation/observers/ObserveIntersection.d.ts +1 -1
- package/dist/foundation/observers/ObserveMutation.d.ts +2 -2
- package/dist/foundation/observers/VisibilitySteps.d.ts +1 -1
- package/dist/foundation/observers/hooks/UseInView.d.ts +41 -0
- package/dist/foundation/observers/hooks/UseIntersectionObserver.d.ts +18 -0
- package/dist/foundation/observers/hooks/UseMutationObserver.d.ts +21 -0
- package/dist/foundation/observers/index.d.ts +5 -4
- package/dist/foundation/observers/index.js +15 -13
- package/dist/foundation/observers/index.js.map +1 -1
- package/dist/foundation/optionals/index.d.ts +1 -0
- package/dist/foundation/optionals/index.js +5 -0
- package/dist/foundation/optionals/index.js.map +1 -0
- package/dist/foundation/primitives/accessibleIcon/AccessibleIcon.d.ts +5 -6
- package/dist/foundation/primitives/anchoredPositioner/AnchoredPositioner.vue.d.ts +11 -10
- package/dist/foundation/primitives/anchoredPositioner/index.d.ts +1 -1
- package/dist/foundation/primitives/announce/Announce.vue.d.ts +7 -6
- package/dist/foundation/primitives/colorModeProvider/ColorModeProvider.vue.d.ts +8 -8
- package/dist/foundation/primitives/colorModeProvider/index.d.ts +2 -2
- package/dist/foundation/primitives/directionProvider/DirectionProvider.vue.d.ts +4 -4
- package/dist/foundation/primitives/dismissableLayer/DismissableLayer.vue.d.ts +12 -12
- package/dist/foundation/primitives/focusScope/FocusScope.vue.d.ts +18 -16
- package/dist/foundation/primitives/focusScope/FocusScopeRegistry.d.ts +27 -0
- package/dist/foundation/primitives/formControlContext/FormControlContext.d.ts +12 -3
- package/dist/foundation/primitives/formControlContext/FormControlProvider.vue.d.ts +14 -14
- package/dist/foundation/primitives/formControlContext/index.d.ts +1 -1
- package/dist/foundation/primitives/index.js +11 -11
- package/dist/foundation/primitives/overlayArrow/OverlayArrow.vue.d.ts +6 -6
- package/dist/foundation/primitives/portal/Portal.vue.d.ts +5 -5
- package/dist/foundation/primitives/presence/Presence.d.ts +5 -5
- package/dist/foundation/primitives/rovingFocusGroup/RovingFocusContext.d.ts +1 -1
- package/dist/foundation/primitives/rovingFocusGroup/RovingFocusGroup.vue.d.ts +11 -10
- package/dist/foundation/primitives/scrollLockProvider/ScrollLockProvider.vue.d.ts +6 -6
- package/dist/foundation/primitives/scrollLockProvider/index.d.ts +1 -1
- package/dist/foundation/primitives/scrollViewport/ScrollViewport.vue.d.ts +10 -9
- package/dist/foundation/primitives/slot/ComponentElement.d.ts +7 -0
- package/dist/foundation/primitives/slot/Primitive.d.ts +8 -8
- package/dist/foundation/primitives/slot/Slot.d.ts +3 -3
- package/dist/foundation/primitives/slot/index.d.ts +2 -1
- package/dist/foundation/primitives/visuallyHidden/VisuallyHidden.vue.d.ts +4 -3
- package/dist/foundation/resilience/RetryDelay.d.ts +4 -1
- package/dist/foundation/resilience/RetryPolicy.d.ts +6 -6
- package/dist/foundation/resilience/index.d.ts +2 -2
- package/dist/foundation/resilience/index.js.map +1 -1
- package/dist/foundation/results/AppErrorFactory.d.ts +22 -0
- package/dist/foundation/results/AppErrorType.d.ts +13 -0
- package/dist/foundation/results/ResultExtensions.d.ts +33 -0
- package/dist/foundation/results/index.d.ts +5 -0
- package/dist/foundation/results/index.js +8 -0
- package/dist/foundation/results/index.js.map +1 -0
- package/dist/foundation/results/models/AppError.d.ts +10 -0
- package/dist/foundation/results/models/Result.d.ts +9 -0
- package/dist/foundation/screen/Fullscreen.d.ts +6 -6
- package/dist/foundation/screen/ScreenOrientation.d.ts +7 -14
- package/dist/foundation/screen/ScreenOutcome.d.ts +5 -0
- package/dist/foundation/screen/WakeLock.d.ts +2 -2
- package/dist/foundation/screen/enums/OrientationLockFailureCode.d.ts +9 -0
- package/dist/foundation/screen/enums/ScreenFailureCode.d.ts +8 -0
- package/dist/foundation/screen/hooks/UseFullscreen.d.ts +28 -0
- package/dist/foundation/screen/hooks/UseOrientation.d.ts +28 -0
- package/dist/foundation/screen/hooks/UseWakeLock.d.ts +18 -0
- package/dist/foundation/screen/index.d.ts +7 -5
- package/dist/foundation/screen/index.js +37 -26
- package/dist/foundation/screen/index.js.map +1 -1
- package/dist/foundation/screen/models/OrientationLockFailure.d.ts +7 -0
- package/dist/foundation/screen/models/OrientationLockResult.d.ts +3 -0
- package/dist/foundation/screen/models/ScreenFailure.d.ts +14 -0
- package/dist/foundation/screen/models/ScreenRequestResult.d.ts +4 -0
- package/dist/foundation/selection/hooks/UseFilters.d.ts +34 -0
- package/dist/foundation/selection/hooks/UseSelection.d.ts +54 -0
- package/dist/foundation/selection/hooks/UseSort.d.ts +36 -0
- package/dist/foundation/selection/hooks/UseTypeahead.d.ts +42 -0
- package/dist/foundation/selection/index.d.ts +8 -7
- package/dist/foundation/selection/index.js +28 -30
- package/dist/foundation/selection/index.js.map +1 -1
- package/dist/foundation/selection/models/Filter.d.ts +71 -0
- package/dist/foundation/selection/models/Selection.d.ts +116 -0
- package/dist/foundation/selection/models/Sort.d.ts +69 -0
- package/dist/foundation/share/Share.d.ts +7 -23
- package/dist/foundation/share/ShareData.d.ts +1 -1
- package/dist/foundation/share/ShareFailureCode.d.ts +7 -0
- package/dist/foundation/share/ShareOrCopy.d.ts +6 -8
- package/dist/foundation/share/UseShare.d.ts +14 -7
- package/dist/foundation/share/index.d.ts +3 -2
- package/dist/foundation/share/index.js +43 -18
- package/dist/foundation/share/index.js.map +1 -1
- package/dist/foundation/share/models/ShareFailure.d.ts +10 -0
- package/dist/foundation/share/models/ShareSendOrCopyResult.d.ts +4 -0
- package/dist/foundation/share/models/ShareSendResult.d.ts +4 -0
- package/dist/foundation/shortcuts/Chord.d.ts +1 -1
- package/dist/foundation/shortcuts/hooks/UseHotkeys.d.ts +34 -0
- package/dist/foundation/shortcuts/index.d.ts +3 -2
- package/dist/foundation/shortcuts/index.js +5 -3
- package/dist/foundation/shortcuts/index.js.map +1 -1
- package/dist/foundation/speech/CreateSpeechRecognizer.d.ts +5 -20
- package/dist/foundation/speech/ListVoices.d.ts +3 -3
- package/dist/foundation/speech/Speak.d.ts +6 -7
- package/dist/foundation/speech/SpeechControls.d.ts +2 -0
- package/dist/foundation/speech/SpeechResult.d.ts +7 -23
- package/dist/foundation/speech/enums/RecognizerStartFailureCode.d.ts +6 -0
- package/dist/foundation/speech/enums/SpeechFailureCode.d.ts +7 -0
- package/dist/foundation/speech/hooks/UseSpeechRecognition.d.ts +45 -0
- package/dist/foundation/speech/hooks/UseSpeechSynthesis.d.ts +37 -0
- package/dist/foundation/speech/index.d.ts +6 -4
- package/dist/foundation/speech/index.js +62 -31
- package/dist/foundation/speech/index.js.map +1 -1
- package/dist/foundation/speech/models/RecognizerStartFailure.d.ts +8 -0
- package/dist/foundation/speech/models/RecognizerStartResult.d.ts +4 -0
- package/dist/foundation/speech/models/SpeechFailure.d.ts +10 -0
- package/dist/foundation/speech/models/SpeechSpeakResult.d.ts +4 -0
- package/dist/foundation/state/hooks/UseControlled.d.ts +35 -0
- package/dist/foundation/state/index.d.ts +2 -0
- package/dist/foundation/state/index.js +7 -0
- package/dist/foundation/state/index.js.map +1 -0
- package/dist/foundation/storage/StorageBroker.d.ts +1 -1
- package/dist/foundation/storage/adapters/zustand/ZustandPersist.d.ts +36 -0
- package/dist/foundation/storage/adapters/zustand/index.d.ts +1 -0
- package/dist/foundation/storage/adapters/zustand/index.js.map +1 -0
- package/dist/foundation/storage/hooks/UseAutosave.d.ts +44 -0
- package/dist/foundation/storage/hooks/UsePersistentState.d.ts +31 -0
- package/dist/foundation/storage/hooks/UseRecentItems.d.ts +34 -0
- package/dist/foundation/storage/index.d.ts +4 -1
- package/dist/foundation/storage/index.js +118 -3
- package/dist/foundation/storage/index.js.map +1 -1
- package/dist/foundation/styles/SurfaceStyles.d.ts +191 -0
- package/dist/foundation/styles/constants/Layers.d.ts +35 -0
- package/dist/foundation/styles/constants/Tones.d.ts +21 -0
- package/dist/foundation/styles/extensions/ColorExtensions.d.ts +51 -0
- package/dist/foundation/styles/extensions/CssExtensions.d.ts +124 -0
- package/dist/foundation/styles/index.d.ts +20 -0
- package/dist/foundation/styles/index.js +45 -0
- package/dist/foundation/styles/index.js.map +1 -0
- package/dist/foundation/themes/ForegroundContrast.d.ts +3 -0
- package/dist/foundation/themes/Oklch.d.ts +2 -0
- package/dist/foundation/themes/Registry.d.ts +18 -0
- package/dist/foundation/themes/Tokens.d.ts +5 -5
- package/dist/foundation/themes/Validate.d.ts +30 -0
- package/dist/foundation/themes/constants/Authored.d.ts +3 -0
- package/dist/foundation/themes/constants/Pool.d.ts +3 -0
- package/dist/foundation/themes/index.d.ts +6 -6
- package/dist/foundation/themes/index.js +30 -29
- package/dist/foundation/uploads/UploadItem.d.ts +3 -3
- package/dist/foundation/uploads/UploadQueue.d.ts +3 -3
- package/dist/foundation/uploads/UseUploadQueue.d.ts +4 -4
- package/dist/foundation/uploads/XhrUploadTransport.d.ts +1 -1
- package/dist/foundation/uploads/index.d.ts +2 -2
- package/dist/foundation/uploads/index.js +11 -11
- package/dist/foundation/uploads/index.js.map +1 -1
- package/dist/foundation/validators/Composites.d.ts +71 -0
- package/dist/foundation/validators/Messages.d.ts +69 -0
- package/dist/foundation/validators/ValidationError.d.ts +14 -0
- package/dist/foundation/validators/ValidationOutcome.d.ts +40 -0
- package/dist/foundation/validators/Validator.d.ts +76 -0
- package/dist/foundation/validators/index.d.ts +8 -0
- package/dist/foundation/validators/index.js +484 -0
- package/dist/foundation/validators/index.js.map +1 -0
- package/dist/foundation/validators/models/ValidationFailure.d.ts +6 -0
- package/dist/foundation/validators/models/ValidatorParseResult.d.ts +3 -0
- package/dist/foundation/virtualization/Measurements.d.ts +2 -2
- package/dist/foundation/virtualization/UseVirtualList.d.ts +6 -3
- package/dist/foundation/virtualization/Windowing.d.ts +7 -4
- package/dist/foundation/virtualization/index.d.ts +3 -3
- package/dist/foundation/virtualization/index.js +15 -19
- package/dist/foundation/virtualization/index.js.map +1 -1
- package/dist/foundation/workers/RunInWorker.d.ts +8 -20
- package/dist/foundation/workers/UseWorker.d.ts +2 -7
- package/dist/foundation/workers/WorkerClient.d.ts +6 -9
- package/dist/foundation/workers/WorkerHost.d.ts +3 -3
- package/dist/foundation/workers/WorkerProtocol.d.ts +2 -2
- package/dist/foundation/workers/WorkerRunFailureCode.d.ts +6 -0
- package/dist/foundation/workers/index.d.ts +3 -2
- package/dist/foundation/workers/index.js +16 -6
- package/dist/foundation/workers/index.js.map +1 -1
- package/dist/foundation/workers/models/WorkerRunFailure.d.ts +8 -0
- package/dist/foundation/workers/models/WorkerRunResult.d.ts +3 -0
- package/dist/index.css +170 -44
- package/dist/index.d.ts +7 -2
- package/dist/index.js +559 -550
- package/dist/index.js.map +1 -1
- package/dist/presentation/actions/backToTopButton/BackToTopButton.vue.d.ts +20 -18
- package/dist/presentation/actions/backToTopButton/index.d.ts +1 -1
- package/dist/presentation/actions/button/Button.variants.d.ts +83 -241
- package/dist/presentation/actions/button/Button.vue.d.ts +67 -72
- package/dist/presentation/actions/button/index.d.ts +1 -1
- package/dist/presentation/actions/buttonGroup/ButtonGroup.vue.d.ts +12 -11
- package/dist/presentation/actions/copyButton/CopyButton.vue.d.ts +22 -16
- package/dist/presentation/actions/disclosureButton/DisclosureButton.vue.d.ts +20 -18
- package/dist/presentation/actions/disclosureButton/index.d.ts +1 -1
- package/dist/presentation/actions/fabButton/FabButton.variants.d.ts +80 -0
- package/dist/presentation/actions/fabButton/FabButton.vue.d.ts +32 -0
- package/dist/presentation/actions/fabButton/index.d.ts +2 -0
- package/dist/presentation/actions/googleSignInButton/GoogleSignInButton.vue.d.ts +37 -0
- package/dist/presentation/actions/googleSignInButton/index.d.ts +1 -0
- package/dist/presentation/actions/index.d.ts +3 -8
- package/dist/presentation/actions/index.js +18 -35
- package/dist/presentation/actions/speedDialGroup/SpeedDialGroup.vue.d.ts +27 -0
- package/dist/presentation/actions/speedDialGroup/SpeedDialGroupAction.vue.d.ts +41 -0
- package/dist/presentation/actions/speedDialGroup/SpeedDialGroupContext.d.ts +36 -0
- package/dist/presentation/actions/speedDialGroup/SpeedDialGroupList.vue.d.ts +12 -0
- package/dist/presentation/actions/speedDialGroup/SpeedDialGroupTrigger.vue.d.ts +31 -0
- package/dist/presentation/actions/speedDialGroup/index.d.ts +18 -0
- package/dist/presentation/actions/toolbar/Toolbar.vue.d.ts +10 -9
- package/dist/presentation/actions/toolbar/ToolbarButton.vue.d.ts +8 -7
- package/dist/presentation/actions/toolbar/ToolbarContext.d.ts +1 -1
- package/dist/presentation/actions/toolbar/ToolbarLink.vue.d.ts +4 -3
- package/dist/presentation/actions/toolbar/ToolbarSeparator.vue.d.ts +1 -2
- package/dist/presentation/actions/toolbar/index.d.ts +6 -74
- package/dist/presentation/display/accordionGroup/AccordionGroup.vue.d.ts +44 -0
- package/dist/presentation/display/accordionGroup/AccordionGroupContent.vue.d.ts +13 -0
- package/dist/presentation/display/accordionGroup/AccordionGroupContext.d.ts +29 -0
- package/dist/presentation/display/accordionGroup/AccordionGroupItem.vue.d.ts +19 -0
- package/dist/presentation/display/accordionGroup/AccordionGroupTrigger.vue.d.ts +13 -0
- package/dist/presentation/display/accordionGroup/index.d.ts +5 -0
- package/dist/presentation/display/activityTimeline/ActivityItem.vue.d.ts +28 -0
- package/dist/presentation/display/activityTimeline/ActivityTimeline.vue.d.ts +17 -0
- package/dist/presentation/display/activityTimeline/index.d.ts +2 -0
- package/dist/presentation/display/animatedNumberText/AnimatedNumberText.vue.d.ts +33 -0
- package/dist/presentation/display/animatedNumberText/index.d.ts +1 -0
- package/dist/presentation/display/annotationBadge/AnnotationBadge.vue.d.ts +42 -0
- package/dist/presentation/display/annotationBadge/index.d.ts +1 -0
- package/dist/presentation/display/audioPlayer/AudioPlayer.vue.d.ts +19 -20
- package/dist/presentation/display/audioWaveformPreview/AudioWaveformPreview.vue.d.ts +57 -0
- package/dist/presentation/display/audioWaveformPreview/index.d.ts +1 -0
- package/dist/presentation/display/avatar/Avatar.variants.d.ts +77 -227
- package/dist/presentation/display/avatar/Avatar.vue.d.ts +24 -22
- package/dist/presentation/display/avatarGroup/AvatarGroup.vue.d.ts +10 -11
- package/dist/presentation/display/badge/Badge.variants.d.ts +35 -97
- package/dist/presentation/display/badge/Badge.vue.d.ts +6 -7
- package/dist/presentation/display/badgeOverlay/BadgeOverlay.vue.d.ts +8 -9
- package/dist/presentation/display/card/Card.vue.d.ts +10 -11
- package/dist/presentation/display/card/CardBody.vue.d.ts +3 -4
- package/dist/presentation/display/card/CardDescription.vue.d.ts +3 -4
- package/dist/presentation/display/card/CardFooter.vue.d.ts +3 -4
- package/dist/presentation/display/card/CardHeader.vue.d.ts +3 -4
- package/dist/presentation/display/card/CardTitle.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/Carousel.vue.d.ts +23 -18
- package/dist/presentation/display/carousel/CarouselDot.vue.d.ts +4 -5
- package/dist/presentation/display/carousel/CarouselDots.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/CarouselNext.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/CarouselPrev.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/CarouselSlide.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/CarouselSlides.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/CarouselViewport.vue.d.ts +3 -4
- package/dist/presentation/display/carousel/index.d.ts +1 -1
- package/dist/presentation/display/chatBubbleCard/ChatBubbleCard.vue.d.ts +78 -0
- package/dist/presentation/display/chatBubbleCard/index.d.ts +1 -0
- package/dist/presentation/display/codeText/CodeText.variants.d.ts +26 -0
- package/dist/presentation/display/codeText/CodeText.vue.d.ts +16 -0
- package/dist/presentation/display/codeText/index.d.ts +2 -0
- package/dist/presentation/display/collapsibleGroup/CollapsibleGroup.vue.d.ts +28 -0
- package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContent.vue.d.ts +17 -0
- package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContentInner.vue.d.ts +22 -0
- package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContext.d.ts +17 -0
- package/dist/presentation/display/collapsibleGroup/CollapsibleGroupTrigger.vue.d.ts +17 -0
- package/dist/presentation/display/collapsibleGroup/index.d.ts +4 -0
- package/dist/presentation/display/colorSwatchPreview/ColorSwatchPreview.variants.d.ts +92 -0
- package/dist/presentation/display/colorSwatchPreview/ColorSwatchPreview.vue.d.ts +32 -0
- package/dist/presentation/display/colorSwatchPreview/index.d.ts +2 -0
- package/dist/presentation/display/commentThreadGroup/Comment.vue.d.ts +38 -0
- package/dist/presentation/display/commentThreadGroup/CommentThreadGroup.vue.d.ts +13 -0
- package/dist/presentation/display/commentThreadGroup/index.d.ts +2 -0
- package/dist/presentation/display/confettiOverlay/ConfettiOverlay.vue.d.ts +39 -0
- package/dist/presentation/display/confettiOverlay/index.d.ts +1 -0
- package/dist/presentation/display/countBadge/CountBadge.vue.d.ts +11 -12
- package/dist/presentation/display/countUpText/CountUpText.vue.d.ts +39 -0
- package/dist/presentation/display/countUpText/index.d.ts +1 -0
- package/dist/presentation/display/dataTable/DataTable.vue.d.ts +25 -26
- package/dist/presentation/display/descriptionGroup/DescriptionGroup.vue.d.ts +53 -0
- package/dist/presentation/display/descriptionGroup/index.d.ts +1 -0
- package/dist/presentation/display/diffViewer/DiffViewer.vue.d.ts +16 -17
- package/dist/presentation/display/emptyState/EmptyState.vue.d.ts +9 -10
- package/dist/presentation/display/eventCalendarViewer/AgendaView.vue.d.ts +12 -0
- package/dist/presentation/display/eventCalendarViewer/EventCalendarViewer.vue.d.ts +37 -0
- package/dist/presentation/display/eventCalendarViewer/EventCalendarViewerTypes.d.ts +28 -0
- package/dist/presentation/display/eventCalendarViewer/MonthView.vue.d.ts +16 -0
- package/dist/presentation/display/eventCalendarViewer/TimeGridView.vue.d.ts +17 -0
- package/dist/presentation/display/eventCalendarViewer/index.d.ts +2 -0
- package/dist/presentation/display/eyebrowText/EyebrowText.vue.d.ts +31 -0
- package/dist/presentation/display/eyebrowText/index.d.ts +1 -0
- package/dist/presentation/display/featureCard/FeatureCard.vue.d.ts +7 -61
- package/dist/presentation/display/fieldHelperText/FieldHelperText.vue.d.ts +19 -0
- package/dist/presentation/display/fieldHelperText/index.d.ts +1 -0
- package/dist/presentation/display/frameGlyph/FrameGlyph.vue.d.ts +4 -5
- package/dist/presentation/display/ganttTimeline/GanttTimeline.vue.d.ts +58 -0
- package/dist/presentation/display/ganttTimeline/index.d.ts +1 -0
- package/dist/presentation/display/gradientText/GradientText.vue.d.ts +23 -18
- package/dist/presentation/display/gradientText/index.d.ts +1 -1
- package/dist/presentation/display/heading/Heading.variants.d.ts +50 -140
- package/dist/presentation/display/heading/Heading.vue.d.ts +9 -10
- package/dist/presentation/display/heading/index.d.ts +1 -1
- package/dist/presentation/display/heatmapCalendarGrid/HeatmapCalendarGrid.vue.d.ts +64 -0
- package/dist/presentation/display/heatmapCalendarGrid/index.d.ts +1 -0
- package/dist/presentation/display/highlightText/HighlightText.vue.d.ts +19 -0
- package/dist/presentation/display/highlightText/index.d.ts +1 -0
- package/dist/presentation/display/imagePreview/ImagePreview.vue.d.ts +15 -0
- package/dist/presentation/display/imagePreview/index.d.ts +1 -0
- package/dist/presentation/display/index.d.ts +42 -42
- package/dist/presentation/display/index.js +143 -138
- package/dist/presentation/display/infoRow/InfoRow.vue.d.ts +8 -9
- package/dist/presentation/display/kbdText/KbdText.vue.d.ts +13 -0
- package/dist/presentation/display/kbdText/index.d.ts +1 -0
- package/dist/presentation/display/keyboardShortcutText/KeyboardShortcutText.vue.d.ts +12 -0
- package/dist/presentation/display/keyboardShortcutText/index.d.ts +1 -0
- package/dist/presentation/display/labelText/LabelText.vue.d.ts +34 -0
- package/dist/presentation/display/labelText/index.d.ts +1 -0
- package/dist/presentation/display/legendText/LegendText.vue.d.ts +21 -0
- package/dist/presentation/display/legendText/index.d.ts +1 -0
- package/dist/presentation/display/listGroup/ListGroup.variants.d.ts +62 -0
- package/dist/presentation/display/listGroup/ListGroup.vue.d.ts +22 -0
- package/dist/presentation/display/listGroup/ListGroupContext.d.ts +16 -0
- package/dist/presentation/display/listGroup/ListGroupItem.vue.d.ts +28 -0
- package/dist/presentation/display/listGroup/index.d.ts +4 -0
- package/dist/presentation/display/markText/MarkText.vue.d.ts +13 -0
- package/dist/presentation/display/markText/index.d.ts +1 -0
- package/dist/presentation/display/marqueeGroup/MarqueeGroup.vue.d.ts +44 -0
- package/dist/presentation/display/marqueeGroup/index.d.ts +1 -0
- package/dist/presentation/display/messageGroup/DaySeparator.vue.d.ts +16 -0
- package/dist/presentation/display/messageGroup/MessageGroup.vue.d.ts +38 -0
- package/dist/presentation/display/messageGroup/index.d.ts +2 -0
- package/dist/presentation/display/metaInlineText/MetaInlineText.vue.d.ts +20 -0
- package/dist/presentation/display/metaInlineText/index.d.ts +1 -0
- package/dist/presentation/display/metricBadge/MetricBadge.vue.d.ts +53 -0
- package/dist/presentation/display/metricBadge/index.d.ts +1 -0
- package/dist/presentation/display/moduleGlyphs/CellsGlyph.vue.d.ts +4 -5
- package/dist/presentation/display/moduleGlyphs/DotsGlyph.vue.d.ts +4 -5
- package/dist/presentation/display/moduleGlyphs/HorizontalBarsGlyph.vue.d.ts +4 -5
- package/dist/presentation/display/moduleGlyphs/ModuleGlyphs.d.ts +3 -3
- package/dist/presentation/display/moduleGlyphs/VerticalBarsGlyph.vue.d.ts +4 -5
- package/dist/presentation/display/notificationCenterGroup/NotificationCenterGroup.vue.d.ts +30 -0
- package/dist/presentation/display/notificationCenterGroup/NotificationItem.vue.d.ts +40 -0
- package/dist/presentation/display/notificationCenterGroup/index.d.ts +2 -0
- package/dist/presentation/display/notificationIndicator/NotificationIndicator.vue.d.ts +46 -0
- package/dist/presentation/display/notificationIndicator/index.d.ts +1 -0
- package/dist/presentation/display/onboardingChecklistCard/OnboardingChecklistCard.vue.d.ts +57 -0
- package/dist/presentation/display/onboardingChecklistCard/OnboardingChecklistCardTask.vue.d.ts +27 -0
- package/dist/presentation/display/onboardingChecklistCard/index.d.ts +3 -0
- package/dist/presentation/display/pdfViewer/PdfViewer.vue.d.ts +39 -0
- package/dist/presentation/display/pdfViewer/index.d.ts +1 -1
- package/dist/presentation/display/pricingCard/PricingCard.vue.d.ts +16 -70
- package/dist/presentation/display/quoteText/QuoteText.vue.d.ts +13 -0
- package/dist/presentation/display/quoteText/index.d.ts +1 -0
- package/dist/presentation/display/radiusGlyph/RadiusGlyph.vue.d.ts +6 -7
- package/dist/presentation/display/reactionBar/ReactionBar.vue.d.ts +18 -19
- package/dist/presentation/display/reactionBar/index.d.ts +1 -1
- package/dist/presentation/display/scheduleView/ScheduleView.vue.d.ts +22 -23
- package/dist/presentation/display/scrollRevealGroup/ScrollRevealGroup.vue.d.ts +49 -0
- package/dist/presentation/display/scrollRevealGroup/index.d.ts +1 -0
- package/dist/presentation/display/sectionHeading/SectionHeading.vue.d.ts +48 -0
- package/dist/presentation/display/sectionHeading/index.d.ts +1 -0
- package/dist/presentation/display/snippetText/SnippetText.vue.d.ts +20 -0
- package/dist/presentation/display/snippetText/index.d.ts +1 -0
- package/dist/presentation/display/sparkline/Sparkline.vue.d.ts +21 -22
- package/dist/presentation/display/sparkline/index.d.ts +1 -1
- package/dist/presentation/display/statCard/StatCard.vue.d.ts +47 -0
- package/dist/presentation/display/statCard/index.d.ts +1 -0
- package/dist/presentation/display/status/Status.vue.d.ts +11 -12
- package/dist/presentation/display/stepCard/StepCard.vue.d.ts +8 -62
- package/dist/presentation/display/stepperGroup/StepperGroup.vue.d.ts +28 -0
- package/dist/presentation/display/stepperGroup/StepperGroupContext.d.ts +44 -0
- package/dist/presentation/display/stepperGroup/StepperGroupList.vue.d.ts +13 -0
- package/dist/presentation/display/stepperGroup/StepperGroupPanel.vue.d.ts +15 -0
- package/dist/presentation/display/stepperGroup/StepperGroupStep.vue.d.ts +22 -0
- package/dist/presentation/display/stepperGroup/index.d.ts +5 -0
- package/dist/presentation/display/table/Table.vue.d.ts +17 -18
- package/dist/presentation/display/table/TableBody.vue.d.ts +3 -4
- package/dist/presentation/display/table/TableCaption.vue.d.ts +3 -4
- package/dist/presentation/display/table/TableCell.vue.d.ts +3 -4
- package/dist/presentation/display/table/TableContext.d.ts +3 -3
- package/dist/presentation/display/table/TableFooter.vue.d.ts +3 -4
- package/dist/presentation/display/table/TableHead.vue.d.ts +6 -7
- package/dist/presentation/display/table/TableHeaderCell.vue.d.ts +3 -4
- package/dist/presentation/display/table/TableRow.vue.d.ts +3 -4
- package/dist/presentation/display/table/index.d.ts +1 -1
- package/dist/presentation/display/tabsGroup/TabsGroup.vue.d.ts +32 -0
- package/dist/presentation/display/tabsGroup/TabsGroupContext.d.ts +34 -0
- package/dist/presentation/display/tabsGroup/TabsGroupList.vue.d.ts +13 -0
- package/dist/presentation/display/tabsGroup/TabsGroupPanel.vue.d.ts +15 -0
- package/dist/presentation/display/tabsGroup/TabsGroupTab.vue.d.ts +19 -0
- package/dist/presentation/display/tabsGroup/index.d.ts +5 -0
- package/dist/presentation/display/tag/Tag.variants.d.ts +23 -61
- package/dist/presentation/display/tag/Tag.vue.d.ts +8 -9
- package/dist/presentation/display/text/Text.variants.d.ts +74 -220
- package/dist/presentation/display/text/Text.vue.d.ts +16 -16
- package/dist/presentation/display/text/index.d.ts +1 -1
- package/dist/presentation/display/threadView/ThreadView.vue.d.ts +15 -16
- package/dist/presentation/display/timeline/Timeline.vue.d.ts +6 -7
- package/dist/presentation/display/timeline/TimelineContext.d.ts +1 -1
- package/dist/presentation/display/timeline/TimelineDescription.vue.d.ts +3 -4
- package/dist/presentation/display/timeline/TimelineItem.vue.d.ts +6 -7
- package/dist/presentation/display/timeline/TimelineTitle.vue.d.ts +3 -4
- package/dist/presentation/display/timeline/index.d.ts +1 -1
- package/dist/presentation/display/treeViewer/TreeViewer.vue.d.ts +32 -0
- package/dist/presentation/display/treeViewer/TreeViewerContext.d.ts +29 -0
- package/dist/presentation/display/treeViewer/TreeViewerGroup.vue.d.ts +27 -0
- package/dist/presentation/display/treeViewer/TreeViewerGroupContent.vue.d.ts +16 -0
- package/dist/presentation/display/treeViewer/TreeViewerItem.vue.d.ts +19 -0
- package/dist/presentation/display/treeViewer/TreeViewerNodeRow.vue.d.ts +26 -0
- package/dist/presentation/display/treeViewer/index.d.ts +4 -0
- package/dist/presentation/display/typewriterText/TypewriterText.vue.d.ts +37 -0
- package/dist/presentation/display/typewriterText/index.d.ts +1 -0
- package/dist/presentation/display/videoPlayer/VideoPlayer.vue.d.ts +26 -27
- package/dist/presentation/display/videoPlayer/index.d.ts +1 -1
- package/dist/presentation/feedback/alert/Alert.vue.d.ts +23 -23
- package/dist/presentation/feedback/alertSimple/AlertSimple.variants.d.ts +20 -54
- package/dist/presentation/feedback/alertSimple/AlertSimple.vue.d.ts +7 -7
- package/dist/presentation/feedback/banner/Banner.vue.d.ts +23 -23
- package/dist/presentation/feedback/bannerSimple/BannerSimple.variants.d.ts +20 -54
- package/dist/presentation/feedback/bannerSimple/BannerSimple.vue.d.ts +7 -7
- package/dist/presentation/feedback/callout/Callout.vue.d.ts +15 -15
- package/dist/presentation/feedback/characterCountCallout/CharacterCountCallout.vue.d.ts +14 -0
- package/dist/presentation/feedback/characterCountCallout/index.d.ts +1 -0
- package/dist/presentation/feedback/feedbackToastHost/FeedbackToastHost.vue.d.ts +17 -0
- package/dist/presentation/feedback/feedbackToastHost/index.d.ts +1 -0
- package/dist/presentation/feedback/fieldErrorCallout/FieldErrorCallout.vue.d.ts +24 -0
- package/dist/presentation/feedback/fieldErrorCallout/index.d.ts +1 -0
- package/dist/presentation/feedback/index.d.ts +9 -9
- package/dist/presentation/feedback/index.js +35 -38
- package/dist/presentation/feedback/index.js.map +1 -1
- package/dist/presentation/feedback/inlineSpinner/InlineSpinner.vue.d.ts +10 -12
- package/dist/presentation/feedback/liveCursorIndicator/LiveCursorIndicator.vue.d.ts +33 -0
- package/dist/presentation/feedback/liveCursorIndicator/index.d.ts +1 -0
- package/dist/presentation/feedback/loadingOverlay/LoadingOverlay.vue.d.ts +18 -19
- package/dist/presentation/feedback/loadingOverlay/index.d.ts +1 -1
- package/dist/presentation/feedback/loadingState/LoadingState.vue.d.ts +14 -14
- package/dist/presentation/feedback/meterBar/MeterBar.vue.d.ts +12 -13
- package/dist/presentation/feedback/passwordStrengthCallout/PasswordStrengthCallout.vue.d.ts +15 -0
- package/dist/presentation/feedback/passwordStrengthCallout/index.d.ts +1 -0
- package/dist/presentation/feedback/presenceIndicator/PresenceIndicator.vue.d.ts +12 -13
- package/dist/presentation/feedback/presenceIndicator/index.d.ts +1 -1
- package/dist/presentation/feedback/progressBar/ProgressBar.variants.d.ts +33 -91
- package/dist/presentation/feedback/progressBar/ProgressBar.vue.d.ts +11 -12
- package/dist/presentation/feedback/progressBar/index.d.ts +1 -1
- package/dist/presentation/feedback/progressCircleIndicator/ProgressCircleIndicator.vue.d.ts +20 -0
- package/dist/presentation/feedback/progressCircleIndicator/index.d.ts +1 -0
- package/dist/presentation/feedback/progressStepsIndicator/ProgressStepsIndicator.vue.d.ts +15 -0
- package/dist/presentation/feedback/progressStepsIndicator/index.d.ts +1 -0
- package/dist/presentation/feedback/skeletonState/SkeletonState.variants.d.ts +31 -0
- package/dist/presentation/feedback/skeletonState/SkeletonState.vue.d.ts +17 -0
- package/dist/presentation/feedback/skeletonState/index.d.ts +2 -0
- package/dist/presentation/feedback/spinner/Spinner.variants.d.ts +32 -90
- package/dist/presentation/feedback/spinner/Spinner.vue.d.ts +9 -10
- package/dist/presentation/feedback/statusIndicator/StatusIndicator.vue.d.ts +14 -14
- package/dist/presentation/feedback/toast/Toast.vue.d.ts +23 -23
- package/dist/presentation/feedback/toastHost/ToastHost.vue.d.ts +95 -0
- package/dist/presentation/feedback/toastHost/index.d.ts +1 -0
- package/dist/presentation/feedback/toastSimple/ToastSimple.variants.d.ts +20 -54
- package/dist/presentation/feedback/toastSimple/ToastSimple.vue.d.ts +9 -9
- package/dist/presentation/feedback/trendIndicator/TrendIndicator.vue.d.ts +16 -16
- package/dist/presentation/feedback/typingIndicator/TypingIndicator.vue.d.ts +13 -13
- package/dist/presentation/feedback/typingIndicator/index.d.ts +1 -1
- package/dist/presentation/feedback/undoBar/UndoBar.vue.d.ts +21 -21
- package/dist/presentation/forms/DateExtensions.d.ts +4 -4
- package/dist/presentation/forms/InputStyles.d.ts +53 -155
- package/dist/presentation/forms/MonthGrid.vue.d.ts +22 -24
- package/dist/presentation/forms/TimeColumns.vue.d.ts +12 -17
- package/dist/presentation/forms/UseNativeFormReset.d.ts +3 -0
- package/dist/presentation/forms/addressEditor/AddressEditor.vue.d.ts +48 -0
- package/dist/presentation/forms/addressEditor/index.d.ts +1 -0
- package/dist/presentation/forms/calendarPicker/CalendarPicker.vue.d.ts +28 -0
- package/dist/presentation/forms/calendarPicker/index.d.ts +1 -0
- package/dist/presentation/forms/chatComposerInput/ChatComposerInput.vue.d.ts +68 -0
- package/dist/presentation/forms/chatComposerInput/index.d.ts +1 -0
- package/dist/presentation/forms/checkboxField/CheckboxField.vue.d.ts +15 -11
- package/dist/presentation/forms/checkboxGroup/CheckboxGroup.vue.d.ts +14 -19
- package/dist/presentation/forms/checkboxInput/CheckboxInput.variants.d.ts +67 -0
- package/dist/presentation/forms/checkboxInput/CheckboxInput.vue.d.ts +45 -0
- package/dist/presentation/forms/checkboxInput/index.d.ts +2 -0
- package/dist/presentation/forms/choiceCard/ChoiceCard.vue.d.ts +17 -14
- package/dist/presentation/forms/codeEditor/CodeEditor.vue.d.ts +33 -33
- package/dist/presentation/forms/colorArea/ColorArea.vue.d.ts +18 -26
- package/dist/presentation/forms/colorArea/index.d.ts +1 -1
- package/dist/presentation/forms/colorInput/ColorInput.vue.d.ts +39 -0
- package/dist/presentation/forms/colorInput/index.d.ts +1 -0
- package/dist/presentation/forms/colorPicker/ColorPicker.vue.d.ts +21 -26
- package/dist/presentation/forms/colorPicker/index.d.ts +1 -1
- package/dist/presentation/forms/colorSliderInput/ColorSliderInput.vue.d.ts +42 -0
- package/dist/presentation/forms/colorSliderInput/index.d.ts +1 -0
- package/dist/presentation/forms/colorSwatchPicker/ColorSwatchItem.vue.d.ts +12 -13
- package/dist/presentation/forms/colorSwatchPicker/ColorSwatchPicker.vue.d.ts +17 -22
- package/dist/presentation/forms/colorSwatchPicker/index.d.ts +1 -1
- package/dist/presentation/forms/colorWheelInput/ColorWheelInput.vue.d.ts +29 -0
- package/dist/presentation/forms/colorWheelInput/index.d.ts +1 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPicker.vue.d.ts +47 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerContent.vue.d.ts +38 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerContext.d.ts +53 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerEmpty.vue.d.ts +10 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerGroup.vue.d.ts +19 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerInput.vue.d.ts +11 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerItem.vue.d.ts +27 -0
- package/dist/presentation/forms/comboboxPicker/ComboboxPickerSeparator.vue.d.ts +2 -0
- package/dist/presentation/forms/comboboxPicker/index.d.ts +8 -0
- package/dist/presentation/forms/controlGroupField/ControlGroupField.variants.d.ts +70 -0
- package/dist/presentation/forms/controlGroupField/ControlGroupField.vue.d.ts +34 -0
- package/dist/presentation/forms/controlGroupField/index.d.ts +2 -0
- package/dist/presentation/forms/cronInput/CronInput.vue.d.ts +27 -33
- package/dist/presentation/forms/currencyInput/CurrencyInput.vue.d.ts +6 -7
- package/dist/presentation/forms/dataGridEditor/CellEditor.vue.d.ts +28 -0
- package/dist/presentation/forms/dataGridEditor/DataGridEditor.vue.d.ts +46 -0
- package/dist/presentation/forms/dataGridEditor/DataGridEditorTypes.d.ts +65 -0
- package/dist/presentation/forms/dataGridEditor/index.d.ts +2 -0
- package/dist/presentation/forms/dateInput/DateInput.vue.d.ts +49 -0
- package/dist/presentation/forms/dateInput/index.d.ts +1 -0
- package/dist/presentation/forms/datePicker/DatePicker.vue.d.ts +23 -28
- package/dist/presentation/forms/dateRangePicker/DateRangePicker.vue.d.ts +24 -29
- package/dist/presentation/forms/dateTimeInput/DateTimeInput.vue.d.ts +54 -0
- package/dist/presentation/forms/dateTimeInput/index.d.ts +1 -0
- package/dist/presentation/forms/editableInput/EditableInput.vue.d.ts +49 -0
- package/dist/presentation/forms/editableInput/EditableInputCancel.vue.d.ts +11 -0
- package/dist/presentation/forms/editableInput/EditableInputContext.d.ts +37 -0
- package/dist/presentation/forms/editableInput/EditableInputInput.vue.d.ts +11 -0
- package/dist/presentation/forms/editableInput/EditableInputPreview.vue.d.ts +6 -0
- package/dist/presentation/forms/editableInput/EditableInputSubmit.vue.d.ts +13 -0
- package/dist/presentation/forms/editableInput/index.d.ts +7 -0
- package/dist/presentation/forms/emailInput/EmailInput.vue.d.ts +21 -26
- package/dist/presentation/forms/emojiPicker/CategoryNav.vue.d.ts +3 -4
- package/dist/presentation/forms/emojiPicker/EmojiGrid.vue.d.ts +4 -5
- package/dist/presentation/forms/emojiPicker/EmojiPicker.variants.d.ts +10 -4
- package/dist/presentation/forms/emojiPicker/EmojiPicker.vue.d.ts +4 -9
- package/dist/presentation/forms/emojiPicker/EmojiPickerPopover.vue.d.ts +3 -13
- package/dist/presentation/forms/emojiPicker/EmojiTile.vue.d.ts +3 -4
- package/dist/presentation/forms/emojiPicker/UseEmojiPicker.d.ts +48 -0
- package/dist/presentation/forms/emojiPicker/index.d.ts +2 -2
- package/dist/presentation/forms/emojiSizePicker/EmojiSizePicker.variants.d.ts +23 -0
- package/dist/presentation/forms/emojiSizePicker/EmojiSizePicker.vue.d.ts +30 -0
- package/dist/presentation/forms/emojiSizePicker/index.d.ts +2 -0
- package/dist/presentation/forms/field/Field.vue.d.ts +13 -14
- package/dist/presentation/forms/filePicker/FilePicker.vue.d.ts +14 -15
- package/dist/presentation/forms/fileUploadPicker/FileUploadPicker.vue.d.ts +59 -0
- package/dist/presentation/forms/fileUploadPicker/index.d.ts +1 -0
- package/dist/presentation/forms/fontPicker/FontPicker.vue.d.ts +21 -27
- package/dist/presentation/forms/fontPicker/index.d.ts +1 -1
- package/dist/presentation/forms/gradientPicker/GradientPicker.vue.d.ts +18 -24
- package/dist/presentation/forms/iconPicker/IconPicker.vue.d.ts +22 -28
- package/dist/presentation/forms/index.d.ts +33 -35
- package/dist/presentation/forms/index.js +163 -157
- package/dist/presentation/forms/index.js.map +1 -1
- package/dist/presentation/forms/jsonEditor/JsonEditor.vue.d.ts +41 -0
- package/dist/presentation/forms/jsonEditor/JsonEditorContext.d.ts +28 -0
- package/dist/presentation/forms/jsonEditor/JsonEditorExtensions.d.ts +13 -0
- package/dist/presentation/forms/jsonEditor/JsonEditorTextView.vue.d.ts +13 -0
- package/dist/presentation/forms/jsonEditor/JsonEditorTreeNode.vue.d.ts +14 -0
- package/dist/presentation/forms/jsonEditor/JsonEditorTreeView.vue.d.ts +7 -0
- package/dist/presentation/forms/jsonEditor/index.d.ts +2 -2
- package/dist/presentation/forms/keyboardShortcutPicker/KeyboardShortcutPicker.vue.d.ts +16 -22
- package/dist/presentation/forms/keyboardShortcutPicker/index.d.ts +1 -1
- package/dist/presentation/forms/knobInput/KnobInput.vue.d.ts +69 -0
- package/dist/presentation/forms/knobInput/index.d.ts +1 -0
- package/dist/presentation/forms/labeledField/LabeledField.vue.d.ts +22 -0
- package/dist/presentation/forms/labeledField/index.d.ts +2 -0
- package/dist/presentation/forms/listboxPicker/ListboxPicker.variants.d.ts +41 -0
- package/dist/presentation/forms/listboxPicker/ListboxPicker.vue.d.ts +66 -0
- package/dist/presentation/forms/listboxPicker/ListboxPickerContext.d.ts +47 -0
- package/dist/presentation/forms/listboxPicker/ListboxPickerEmpty.vue.d.ts +10 -0
- package/dist/presentation/forms/listboxPicker/ListboxPickerGroup.vue.d.ts +20 -0
- package/dist/presentation/forms/listboxPicker/ListboxPickerItem.vue.d.ts +24 -0
- package/dist/presentation/forms/listboxPicker/ListboxPickerSeparator.vue.d.ts +2 -0
- package/dist/presentation/forms/listboxPicker/index.d.ts +7 -0
- package/dist/presentation/forms/markdownEditor/MarkdownEditor.vue.d.ts +28 -36
- package/dist/presentation/forms/markdownEditor/index.d.ts +1 -1
- package/dist/presentation/forms/maskedInput/MaskedInput.vue.d.ts +20 -25
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPicker.vue.d.ts +49 -0
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerContent.vue.d.ts +30 -0
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerContext.d.ts +47 -0
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerItem.vue.d.ts +24 -0
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerTags.vue.d.ts +23 -0
- package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerTrigger.vue.d.ts +24 -0
- package/dist/presentation/forms/multiSelectPicker/index.d.ts +6 -0
- package/dist/presentation/forms/nodeEditor/NodeEditor.vue.d.ts +58 -0
- package/dist/presentation/forms/numberInput/NumberInput.vue.d.ts +32 -32
- package/dist/presentation/forms/optionTileGroupField/OptionTileGroupField.variants.d.ts +34 -0
- package/dist/presentation/forms/optionTileGroupField/OptionTileGroupField.vue.d.ts +27 -0
- package/dist/presentation/forms/optionTileGroupField/index.d.ts +2 -0
- package/dist/presentation/forms/optionTilePicker/OptionTilePicker.variants.d.ts +8 -0
- package/dist/presentation/forms/optionTilePicker/OptionTilePicker.vue.d.ts +35 -0
- package/dist/presentation/forms/optionTilePicker/index.d.ts +2 -0
- package/dist/presentation/forms/passwordInput/PasswordInput.vue.d.ts +28 -33
- package/dist/presentation/forms/percentInput/PercentInput.vue.d.ts +3 -4
- package/dist/presentation/forms/phoneInput/PhoneInput.vue.d.ts +18 -24
- package/dist/presentation/forms/phoneInput/index.d.ts +1 -1
- package/dist/presentation/forms/pinInput/PinInput.vue.d.ts +20 -25
- package/dist/presentation/forms/radioField/RadioField.vue.d.ts +15 -11
- package/dist/presentation/forms/radioGroup/RadioGroup.vue.d.ts +15 -20
- package/dist/presentation/forms/radioInput/RadioInput.vue.d.ts +29 -0
- package/dist/presentation/forms/radioInput/index.d.ts +1 -0
- package/dist/presentation/forms/rangeCalendarPicker/RangeCalendarPicker.vue.d.ts +32 -0
- package/dist/presentation/forms/rangeCalendarPicker/index.d.ts +1 -0
- package/dist/presentation/forms/reactionPicker/ReactionPicker.vue.d.ts +14 -15
- package/dist/presentation/forms/recurrenceEditor/RecurrenceEditor.vue.d.ts +25 -31
- package/dist/presentation/forms/searchInput/SearchInput.vue.d.ts +23 -28
- package/dist/presentation/forms/segmentedPicker/SegmentedPicker.vue.d.ts +20 -0
- package/dist/presentation/forms/segmentedPicker/index.d.ts +1 -0
- package/dist/presentation/forms/selectPicker/SelectPicker.variants.d.ts +129 -0
- package/dist/presentation/forms/selectPicker/SelectPicker.vue.d.ts +62 -0
- package/dist/presentation/forms/selectPicker/SelectPickerContent.vue.d.ts +43 -0
- package/dist/presentation/forms/selectPicker/SelectPickerContext.d.ts +76 -0
- package/dist/presentation/forms/selectPicker/SelectPickerItem.vue.d.ts +33 -0
- package/dist/presentation/forms/selectPicker/SelectPickerTrigger.vue.d.ts +20 -0
- package/dist/presentation/forms/selectPicker/SelectPickerValue.vue.d.ts +22 -0
- package/dist/presentation/forms/selectPicker/index.d.ts +7 -0
- package/dist/presentation/forms/sliderInput/SliderInput.vue.d.ts +33 -0
- package/dist/presentation/forms/sliderInput/index.d.ts +1 -0
- package/dist/presentation/forms/sortableGroup/SortableGroup.vue.d.ts +17 -0
- package/dist/presentation/forms/sortableGroup/SortableGroupContext.d.ts +23 -0
- package/dist/presentation/forms/sortableGroup/SortableGroupHandle.vue.d.ts +13 -0
- package/dist/presentation/forms/sortableGroup/SortableGroupItem.vue.d.ts +15 -0
- package/dist/presentation/forms/sortableGroup/SortableGroupMoveButton.vue.d.ts +15 -0
- package/dist/presentation/forms/sortableGroup/index.d.ts +5 -0
- package/dist/presentation/forms/switchField/SwitchField.vue.d.ts +13 -14
- package/dist/presentation/forms/switchInput/SwitchInput.vue.d.ts +29 -0
- package/dist/presentation/forms/switchInput/index.d.ts +1 -0
- package/dist/presentation/forms/tagsInput/TagsInput.vue.d.ts +36 -43
- package/dist/presentation/forms/telInput/TelInput.vue.d.ts +21 -26
- package/dist/presentation/forms/textAreaInput/TextAreaInput.vue.d.ts +23 -28
- package/dist/presentation/forms/textInput/TextInput.vue.d.ts +21 -26
- package/dist/presentation/forms/timeInput/TimeInput.vue.d.ts +48 -0
- package/dist/presentation/forms/timeInput/index.d.ts +1 -0
- package/dist/presentation/forms/timePicker/TimePicker.vue.d.ts +22 -27
- package/dist/presentation/forms/toggleGroup/ToggleGroup.variants.d.ts +33 -0
- package/dist/presentation/forms/toggleGroup/ToggleGroup.vue.d.ts +73 -0
- package/dist/presentation/forms/toggleGroup/ToggleGroupContext.d.ts +24 -0
- package/dist/presentation/forms/toggleGroup/index.d.ts +3 -0
- package/dist/presentation/forms/toggleInput/ToggleInput.variants.d.ts +75 -0
- package/dist/presentation/forms/toggleInput/ToggleInput.vue.d.ts +57 -0
- package/dist/presentation/forms/toggleInput/index.d.ts +2 -0
- package/dist/presentation/forms/urlInput/UrlInput.vue.d.ts +21 -26
- package/dist/presentation/forms/wizardForm/WizardForm.vue.d.ts +35 -0
- package/dist/presentation/forms/wizardForm/WizardFormContext.d.ts +38 -0
- package/dist/presentation/forms/wizardForm/WizardFormFooter.vue.d.ts +28 -0
- package/dist/presentation/forms/wizardForm/WizardFormStep.vue.d.ts +28 -0
- package/dist/presentation/forms/wizardForm/WizardFormSteps.vue.d.ts +6 -0
- package/dist/presentation/forms/wizardForm/index.d.ts +6 -0
- package/dist/presentation/layout/anchorLayout/AnchorLayout.variants.d.ts +117 -0
- package/dist/presentation/layout/anchorLayout/AnchorLayout.vue.d.ts +63 -0
- package/dist/presentation/layout/anchorLayout/index.d.ts +2 -0
- package/dist/presentation/layout/appShell/AppShell.vue.d.ts +19 -34
- package/dist/presentation/layout/appShell/AppShellAside.vue.d.ts +3 -4
- package/dist/presentation/layout/appShell/AppShellContent.vue.d.ts +3 -4
- package/dist/presentation/layout/appShell/AppShellFooter.vue.d.ts +3 -4
- package/dist/presentation/layout/appShell/AppShellHeader.vue.d.ts +3 -4
- package/dist/presentation/layout/appShell/AppShellMain.vue.d.ts +3 -4
- package/dist/presentation/layout/appShell/AppShellSidebar.vue.d.ts +3 -4
- package/dist/presentation/layout/aspectRatioLayout/AspectRatioLayout.vue.d.ts +18 -0
- package/dist/presentation/layout/aspectRatioLayout/index.d.ts +1 -0
- package/dist/presentation/layout/boxLayout/BoxLayout.vue.d.ts +19 -0
- package/dist/presentation/layout/boxLayout/index.d.ts +1 -0
- package/dist/presentation/layout/centerLayout/CenterLayout.vue.d.ts +14 -0
- package/dist/presentation/layout/centerLayout/index.d.ts +1 -0
- package/dist/presentation/layout/clusterLayout/ClusterLayout.vue.d.ts +22 -0
- package/dist/presentation/layout/clusterLayout/index.d.ts +1 -0
- package/dist/presentation/layout/containerLayout/ContainerLayout.variants.d.ts +46 -0
- package/dist/presentation/layout/containerLayout/ContainerLayout.vue.d.ts +21 -0
- package/dist/presentation/layout/containerLayout/index.d.ts +2 -0
- package/dist/presentation/layout/dividerLayout/DividerLayout.variants.d.ts +25 -0
- package/dist/presentation/layout/dividerLayout/DividerLayout.vue.d.ts +37 -0
- package/dist/presentation/layout/dividerLayout/index.d.ts +2 -0
- package/dist/presentation/layout/fieldsetLayout/FieldsetLayout.vue.d.ts +22 -0
- package/dist/presentation/layout/fieldsetLayout/index.d.ts +1 -0
- package/dist/presentation/layout/flexLayout/FlexLayout.vue.d.ts +18 -0
- package/dist/presentation/layout/flexLayout/index.d.ts +1 -0
- package/dist/presentation/layout/frameLayout/FrameLayout.vue.d.ts +38 -0
- package/dist/presentation/layout/frameLayout/index.d.ts +1 -0
- package/dist/presentation/layout/grid/Grid.variants.d.ts +59 -153
- package/dist/presentation/layout/grid/Grid.vue.d.ts +13 -13
- package/dist/presentation/layout/hStackLayout/HStackLayout.vue.d.ts +14 -0
- package/dist/presentation/layout/hStackLayout/index.d.ts +1 -0
- package/dist/presentation/layout/index.d.ts +24 -19
- package/dist/presentation/layout/index.js +60 -56
- package/dist/presentation/layout/inlineLayout/InlineLayout.vue.d.ts +42 -0
- package/dist/presentation/layout/inlineLayout/index.d.ts +1 -0
- package/dist/presentation/layout/inputAddonLayout/InputAddonLayout.vue.d.ts +19 -0
- package/dist/presentation/layout/inputAddonLayout/index.d.ts +1 -0
- package/dist/presentation/layout/inputGroup/InputGroup.vue.d.ts +18 -0
- package/dist/presentation/layout/navbar/Navbar.variants.d.ts +20 -62
- package/dist/presentation/layout/navbar/Navbar.vue.d.ts +14 -15
- package/dist/presentation/layout/navbar/index.d.ts +1 -1
- package/dist/presentation/layout/pullToRefreshLayout/PullToRefreshLayout.vue.d.ts +21 -0
- package/dist/presentation/layout/pullToRefreshLayout/index.d.ts +1 -0
- package/dist/presentation/layout/resizablePanelsLayout/ResizablePanel.vue.d.ts +21 -0
- package/dist/presentation/layout/resizablePanelsLayout/ResizablePanelsLayout.vue.d.ts +61 -0
- package/dist/presentation/layout/resizablePanelsLayout/ResizableSeparator.vue.d.ts +9 -0
- package/dist/presentation/layout/resizablePanelsLayout/index.d.ts +4 -0
- package/dist/presentation/layout/scrollArea/ScrollArea.vue.d.ts +8 -8
- package/dist/presentation/layout/section/Section.variants.d.ts +20 -54
- package/dist/presentation/layout/section/Section.vue.d.ts +15 -17
- package/dist/presentation/layout/section/index.d.ts +1 -1
- package/dist/presentation/layout/separatorLayout/SeparatorLayout.vue.d.ts +13 -0
- package/dist/presentation/layout/separatorLayout/index.d.ts +1 -0
- package/dist/presentation/layout/spacerLayout/SpacerLayout.vue.d.ts +14 -0
- package/dist/presentation/layout/spacerLayout/index.d.ts +1 -0
- package/dist/presentation/layout/stackLayout/StackLayout.variants.d.ts +172 -0
- package/dist/presentation/layout/stackLayout/StackLayout.vue.d.ts +37 -0
- package/dist/presentation/layout/stackLayout/index.d.ts +2 -0
- package/dist/presentation/layout/surfaceLayout/SurfaceLayout.vue.d.ts +40 -0
- package/dist/presentation/layout/surfaceLayout/index.d.ts +1 -0
- package/dist/presentation/layout/swipeActionsLayout/SwipeActionsLayout.vue.d.ts +27 -0
- package/dist/presentation/layout/swipeActionsLayout/index.d.ts +1 -0
- package/dist/presentation/layout/tiltLayout/TiltLayout.vue.d.ts +30 -0
- package/dist/presentation/layout/tiltLayout/index.d.ts +1 -0
- package/dist/presentation/layout/twoColumnLayout/TwoColumnLayout.vue.d.ts +27 -0
- package/dist/presentation/layout/twoColumnLayout/index.d.ts +1 -0
- package/dist/presentation/layout/vStackLayout/VStackLayout.vue.d.ts +14 -0
- package/dist/presentation/layout/vStackLayout/index.d.ts +1 -0
- package/dist/presentation/nav/NavExtensions.d.ts +14 -0
- package/dist/presentation/nav/breadcrumb/Breadcrumb.vue.d.ts +7 -8
- package/dist/presentation/nav/breadcrumb/index.d.ts +1 -1
- package/dist/presentation/nav/contextMenu/ContextMenu.vue.d.ts +1 -2
- package/dist/presentation/nav/contextMenu/ContextMenuContent.vue.d.ts +6 -7
- package/dist/presentation/nav/contextMenu/ContextMenuTrigger.vue.d.ts +8 -9
- package/dist/presentation/nav/contextMenu/index.d.ts +3 -3
- package/dist/presentation/nav/dropdownMenu/DropdownMenu.vue.d.ts +12 -26
- package/dist/presentation/nav/dropdownMenu/DropdownMenuContent.vue.d.ts +1 -2
- package/dist/presentation/nav/dropdownMenu/DropdownMenuTrigger.vue.d.ts +6 -7
- package/dist/presentation/nav/dropdownMenu/index.d.ts +3 -3
- package/dist/presentation/nav/index.d.ts +1 -1
- package/dist/presentation/nav/index.js +49 -56
- package/dist/presentation/nav/linkItem/LinkItem.variants.d.ts +61 -0
- package/dist/presentation/nav/linkItem/LinkItem.vue.d.ts +25 -0
- package/dist/presentation/nav/linkItem/index.d.ts +2 -0
- package/dist/presentation/nav/menu/Menu.variants.d.ts +17 -43
- package/dist/presentation/nav/menu/Menu.vue.d.ts +26 -30
- package/dist/presentation/nav/menu/MenuGroup.vue.d.ts +4 -5
- package/dist/presentation/nav/menu/MenuItem.vue.d.ts +9 -10
- package/dist/presentation/nav/menu/MenuLabel.vue.d.ts +3 -4
- package/dist/presentation/nav/menu/MenuSeparator.vue.d.ts +3 -4
- package/dist/presentation/nav/menubar/Menubar.variants.d.ts +3 -5
- package/dist/presentation/nav/menubar/Menubar.vue.d.ts +12 -255
- package/dist/presentation/nav/menubar/MenubarContent.vue.d.ts +6 -7
- package/dist/presentation/nav/menubar/MenubarMenu.vue.d.ts +2 -3
- package/dist/presentation/nav/menubar/MenubarTrigger.vue.d.ts +3 -4
- package/dist/presentation/nav/navItem/NavItem.vue.d.ts +15 -16
- package/dist/presentation/nav/navigationMenu/NavigationMenu.vue.d.ts +11 -12
- package/dist/presentation/nav/navigationMenu/NavigationMenuContent.vue.d.ts +3 -4
- package/dist/presentation/nav/navigationMenu/NavigationMenuItem.vue.d.ts +4 -5
- package/dist/presentation/nav/navigationMenu/NavigationMenuLink.vue.d.ts +3 -4
- package/dist/presentation/nav/navigationMenu/NavigationMenuList.vue.d.ts +3 -246
- package/dist/presentation/nav/navigationMenu/NavigationMenuTrigger.vue.d.ts +3 -4
- package/dist/presentation/nav/navigationMenu/index.d.ts +5 -5
- package/dist/presentation/nav/pagination/Pagination.vue.d.ts +11 -14
- package/dist/presentation/nav/scrollSpy/ScrollSpy.vue.d.ts +7 -8
- package/dist/presentation/nav/scrollSpy/UseScrollSpy.d.ts +1 -1
- package/dist/presentation/nav/tableOfContents/TableOfContents.vue.d.ts +15 -16
- package/dist/presentation/nav/tableOfContents/index.d.ts +1 -1
- package/dist/presentation/overlays/OverlayBody.vue.d.ts +3 -4
- package/dist/presentation/overlays/OverlayCloseButton.vue.d.ts +6 -7
- package/dist/presentation/overlays/OverlayDescription.vue.d.ts +3 -4
- package/dist/presentation/overlays/OverlayExtensions.d.ts +14 -0
- package/dist/presentation/overlays/OverlayFooter.vue.d.ts +3 -4
- package/dist/presentation/overlays/OverlayHeader.vue.d.ts +3 -4
- package/dist/presentation/overlays/OverlayTitle.vue.d.ts +3 -4
- package/dist/presentation/overlays/actionSheet/ActionSheet.vue.d.ts +12 -17
- package/dist/presentation/overlays/actionSheet/ActionSheetAction.vue.d.ts +7 -8
- package/dist/presentation/overlays/actionSheet/ActionSheetCancel.vue.d.ts +3 -4
- package/dist/presentation/overlays/actionSheet/index.d.ts +2 -2
- package/dist/presentation/overlays/alertModal/AlertModal.vue.d.ts +6 -10
- package/dist/presentation/overlays/alertModal/AlertModalAction.vue.d.ts +5 -6
- package/dist/presentation/overlays/alertModal/AlertModalCancel.vue.d.ts +3 -4
- package/dist/presentation/overlays/alertModal/AlertModalContent.vue.d.ts +3 -4
- package/dist/presentation/overlays/alertModal/index.d.ts +3 -3
- package/dist/presentation/overlays/backdropOverlay/BackdropOverlay.vue.d.ts +39 -0
- package/dist/presentation/overlays/backdropOverlay/index.d.ts +1 -0
- package/dist/presentation/overlays/bottomSheet/BottomSheet.vue.d.ts +27 -32
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModal.vue.d.ts +37 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalContent.vue.d.ts +16 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalContext.d.ts +42 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalEmpty.vue.d.ts +18 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalGroup.vue.d.ts +18 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalInput.vue.d.ts +13 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalItem.vue.d.ts +35 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalList.vue.d.ts +18 -0
- package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalSeparator.vue.d.ts +11 -0
- package/dist/presentation/overlays/commandPaletteModal/index.d.ts +9 -0
- package/dist/presentation/overlays/drawer/Drawer.vue.d.ts +16 -29
- package/dist/presentation/overlays/drawer/DrawerContent.vue.d.ts +14 -15
- package/dist/presentation/overlays/drawer/DrawerTrigger.vue.d.ts +6 -7
- package/dist/presentation/overlays/drawer/index.d.ts +1 -1
- package/dist/presentation/overlays/hoverCard/HoverCard.vue.d.ts +17 -30
- package/dist/presentation/overlays/hoverCard/HoverCardArrow.vue.d.ts +3 -4
- package/dist/presentation/overlays/hoverCard/HoverCardContent.vue.d.ts +5 -7
- package/dist/presentation/overlays/hoverCard/HoverCardTrigger.vue.d.ts +6 -7
- package/dist/presentation/overlays/hoverCard/index.d.ts +2 -2
- package/dist/presentation/overlays/index.d.ts +4 -1
- package/dist/presentation/overlays/index.js +50 -37
- package/dist/presentation/overlays/index.js.map +1 -1
- package/dist/presentation/overlays/modal/Modal.vue.d.ts +16 -30
- package/dist/presentation/overlays/modal/ModalContent.vue.d.ts +13 -14
- package/dist/presentation/overlays/modal/ModalTrigger.vue.d.ts +6 -7
- package/dist/presentation/overlays/modal/index.d.ts +2 -2
- package/dist/presentation/overlays/popover/Popover.vue.d.ts +21 -30
- package/dist/presentation/overlays/popover/PopoverArrow.vue.d.ts +3 -4
- package/dist/presentation/overlays/popover/PopoverContent.vue.d.ts +10 -11
- package/dist/presentation/overlays/popover/PopoverTrigger.vue.d.ts +6 -7
- package/dist/presentation/overlays/tooltip/Tooltip.vue.d.ts +41 -0
- package/dist/presentation/overlays/tourPopover/TourPopover.vue.d.ts +46 -0
- package/dist/presentation/overlays/tourPopover/index.d.ts +1 -0
- package/dist/query/PageExtensions.d.ts +16 -0
- package/dist/query/Testing.d.ts +1 -0
- package/dist/query/Testing.js +48 -0
- package/dist/query/Testing.js.map +1 -0
- package/dist/query/adapters/tanstack/CreateQueryClient.d.ts +33 -0
- package/dist/query/adapters/tanstack/Endpoints.d.ts +19 -0
- package/dist/query/adapters/tanstack/OptimisticTransactions.d.ts +3 -0
- package/dist/query/adapters/tanstack/Persistence.d.ts +41 -0
- package/dist/query/adapters/tanstack/QueryOutcome.d.ts +8 -0
- package/dist/query/adapters/tanstack/QueryProgressBridge.d.ts +15 -0
- package/dist/query/adapters/tanstack/QueryProvider.vue.d.ts +16 -0
- package/dist/query/adapters/tanstack/QueryTestUtils.d.ts +54 -0
- package/dist/query/adapters/tanstack/hooks/UseAppInfiniteQuery.d.ts +49 -0
- package/dist/query/adapters/tanstack/hooks/UseAppLazyQuery.d.ts +44 -0
- package/dist/query/adapters/tanstack/hooks/UseAppMutation.d.ts +36 -0
- package/dist/query/adapters/tanstack/hooks/UseAppPaginatedQuery.d.ts +49 -0
- package/dist/query/adapters/tanstack/hooks/UseAppQueries.d.ts +50 -0
- package/dist/query/adapters/tanstack/hooks/UseAppQuery.d.ts +42 -0
- package/dist/query/adapters/tanstack/hooks/UseAppSuspenseQuery.d.ts +50 -0
- package/dist/query/adapters/tanstack/hooks/UseOptimisticMutation.d.ts +38 -0
- package/dist/query/adapters/tanstack/hooks/UsePrefetchQuery.d.ts +28 -0
- package/dist/query/adapters/tanstack/hooks/UseQueryCache.d.ts +33 -0
- package/dist/query/adapters/tanstack/index.d.ts +19 -0
- package/dist/query/adapters/tanstack/queryDevtools/QueryDevtools.vue.d.ts +9 -0
- package/dist/query/adapters/tanstack/queryDevtools/index.d.ts +1 -0
- package/dist/query/index.d.ts +1 -19
- package/dist/query/index.js +155 -93
- package/dist/query/index.js.map +1 -1
- package/dist/router/Paths.d.ts +4 -6
- package/dist/router/ProgressProvider.vue.d.ts +5 -6
- package/dist/router/adapters/vueRouter/CreateAppRouter.d.ts +65 -0
- package/dist/router/adapters/vueRouter/DocumentMeta.d.ts +13 -0
- package/dist/router/adapters/vueRouter/Guards.d.ts +32 -0
- package/dist/router/adapters/vueRouter/LazyRoute.d.ts +19 -0
- package/dist/router/adapters/vueRouter/RouteConfig.d.ts +97 -0
- package/dist/router/adapters/vueRouter/RouteHandles.d.ts +30 -0
- package/dist/router/adapters/vueRouter/RoutePersistence.d.ts +20 -0
- package/dist/router/adapters/vueRouter/appErrorBoundary/AppErrorBoundary.vue.d.ts +25 -0
- package/dist/router/adapters/vueRouter/appErrorBoundary/index.d.ts +1 -0
- package/dist/router/adapters/vueRouter/appNavLink/AppNavLink.vue.d.ts +39 -0
- package/dist/router/adapters/vueRouter/appNavLink/index.d.ts +1 -0
- package/dist/router/adapters/vueRouter/hooks/UseBreadcrumbs.d.ts +17 -0
- package/dist/router/adapters/vueRouter/hooks/UsePrefetch.d.ts +19 -0
- package/dist/router/adapters/vueRouter/index.d.ts +23 -0
- package/dist/router/adapters/vueRouter/navigationProgress/NavigationProgress.vue.d.ts +18 -0
- package/dist/router/adapters/vueRouter/navigationProgress/index.d.ts +1 -0
- package/dist/router/adapters/vueRouter/notFound/NotFound.vue.d.ts +9 -0
- package/dist/router/adapters/vueRouter/notFound/index.d.ts +1 -0
- package/dist/router/adapters/vueRouter/routeAnnouncer/RouteAnnouncer.vue.d.ts +9 -0
- package/dist/router/adapters/vueRouter/routeAnnouncer/index.d.ts +1 -0
- package/dist/router/index.d.ts +1 -23
- package/dist/router/index.js +63 -29
- package/dist/router/index.js.map +1 -1
- package/dist/themes.css +1115 -1115
- package/dist/themes.json +5 -4
- package/package.json +93 -48
- package/dist/auth/AuthContext.d.ts +0 -41
- package/dist/auth/AuthProvider.vue.d.ts +0 -33
- package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js +0 -46
- package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js.map +0 -1
- package/dist/chunks/ApiError-l0YdcqqV.js +0 -15
- package/dist/chunks/ApiError-l0YdcqqV.js.map +0 -1
- package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-iLYlhK05.js +0 -1002
- package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-iLYlhK05.js.map +0 -1
- package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-CKG--_g8.js +0 -78
- package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-CKG--_g8.js.map +0 -1
- package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNaGird.js +0 -1094
- package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNaGird.js.map +0 -1
- package/dist/chunks/Bytes-7Jxs6Bq6.js +0 -21
- package/dist/chunks/Bytes-7Jxs6Bq6.js.map +0 -1
- package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-DfeVsj9h.js +0 -13193
- package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-DfeVsj9h.js.map +0 -1
- package/dist/chunks/Chord-D9Z-j3O0.js +0 -139
- package/dist/chunks/Chord-D9Z-j3O0.js.map +0 -1
- package/dist/chunks/ColorModeContext-Bz6CBL0V.js +0 -21
- package/dist/chunks/ColorModeContext-Bz6CBL0V.js.map +0 -1
- package/dist/chunks/Compare-Du6p-OX1.js +0 -18
- package/dist/chunks/Compare-Du6p-OX1.js.map +0 -1
- package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js +0 -229
- package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js.map +0 -1
- package/dist/chunks/CssExtensions-BzLJG57F.js +0 -161
- package/dist/chunks/CssExtensions-BzLJG57F.js.map +0 -1
- package/dist/chunks/DateExtensions-C6a-h8ji.js +0 -272
- package/dist/chunks/DateExtensions-C6a-h8ji.js.map +0 -1
- package/dist/chunks/DeepEqual-7lBKnkNS.js +0 -29
- package/dist/chunks/DeepEqual-7lBKnkNS.js.map +0 -1
- package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-ptH1ttBL.js +0 -214
- package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-ptH1ttBL.js.map +0 -1
- package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-4n5w3lg2.js +0 -207
- package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-4n5w3lg2.js.map +0 -1
- package/dist/chunks/Environment-CuQav_mw.js +0 -68
- package/dist/chunks/Environment-CuQav_mw.js.map +0 -1
- package/dist/chunks/Equality-DIQYQysz.js +0 -21
- package/dist/chunks/Equality-DIQYQysz.js.map +0 -1
- package/dist/chunks/ErrorLike-Cfj0lZW3.js +0 -27
- package/dist/chunks/ErrorLike-Cfj0lZW3.js.map +0 -1
- package/dist/chunks/ErrorMessage-Cqt7WaFn.js +0 -26
- package/dist/chunks/ErrorMessage-Cqt7WaFn.js.map +0 -1
- package/dist/chunks/ErrorRecognizers-oTklha6D.js +0 -17
- package/dist/chunks/ErrorRecognizers-oTklha6D.js.map +0 -1
- package/dist/chunks/FieldErrors-2zjhia4U.js +0 -56
- package/dist/chunks/FieldErrors-2zjhia4U.js.map +0 -1
- package/dist/chunks/FileName-CmNjFV7t.js +0 -30
- package/dist/chunks/FileName-CmNjFV7t.js.map +0 -1
- package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js +0 -73
- package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js.map +0 -1
- package/dist/chunks/HtmlExtensions-jlKY5f9C.js +0 -23
- package/dist/chunks/HtmlExtensions-jlKY5f9C.js.map +0 -1
- package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js +0 -27
- package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js.map +0 -1
- package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js +0 -68
- package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js.map +0 -1
- package/dist/chunks/KeyboardExtensions-CQlkK53D.js +0 -34
- package/dist/chunks/KeyboardExtensions-CQlkK53D.js.map +0 -1
- package/dist/chunks/Listbox.variants-CqAkYsmK.js +0 -44
- package/dist/chunks/Listbox.variants-CqAkYsmK.js.map +0 -1
- package/dist/chunks/LocaleContext-B3UXrI6p.js +0 -39
- package/dist/chunks/LocaleContext-B3UXrI6p.js.map +0 -1
- package/dist/chunks/Messages-BGfQHMmW.js +0 -201
- package/dist/chunks/Messages-BGfQHMmW.js.map +0 -1
- package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-Co5jaeXk.js +0 -191
- package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-Co5jaeXk.js.map +0 -1
- package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js +0 -86
- package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js.map +0 -1
- package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cy0zvm5d.js +0 -2073
- package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cy0zvm5d.js.map +0 -1
- package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-DySfo3fD.js +0 -2727
- package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-DySfo3fD.js.map +0 -1
- package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-CKSVGCby.js +0 -964
- package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-CKSVGCby.js.map +0 -1
- package/dist/chunks/OverlayChrome-e4MNr8Yl.js +0 -17
- package/dist/chunks/OverlayChrome-e4MNr8Yl.js.map +0 -1
- package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DYd617X5.js +0 -212
- package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DYd617X5.js.map +0 -1
- package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js +0 -34
- package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js.map +0 -1
- package/dist/chunks/Presence-DE4MlrJz.js +0 -138
- package/dist/chunks/Presence-DE4MlrJz.js.map +0 -1
- package/dist/chunks/Primitive-Cm3ECaVw.js +0 -20
- package/dist/chunks/Primitive-Cm3ECaVw.js.map +0 -1
- package/dist/chunks/QueryPermission--OKfvS9c.js +0 -82
- package/dist/chunks/QueryPermission--OKfvS9c.js.map +0 -1
- package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js +0 -235
- package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js.map +0 -1
- package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js +0 -20
- package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js.map +0 -1
- package/dist/chunks/SerializeError-CclP2jCW.js +0 -61
- package/dist/chunks/SerializeError-CclP2jCW.js.map +0 -1
- package/dist/chunks/Side-CSys3p-F.js +0 -23
- package/dist/chunks/Side-CSys3p-F.js.map +0 -1
- package/dist/chunks/Slot-D2lIitvV.js +0 -103
- package/dist/chunks/Slot-D2lIitvV.js.map +0 -1
- package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-8WPwGZ5e.js +0 -10375
- package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-8WPwGZ5e.js.map +0 -1
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js +0 -23
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js.map +0 -1
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js +0 -76
- package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js.map +0 -1
- package/dist/chunks/SubmitErrors-K8nmmj0P.js +0 -374
- package/dist/chunks/SubmitErrors-K8nmmj0P.js.map +0 -1
- package/dist/chunks/SurfaceStyles-B6W7zdMi.js +0 -143
- package/dist/chunks/SurfaceStyles-B6W7zdMi.js.map +0 -1
- package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-C9eM0AoG.js +0 -2157
- package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-C9eM0AoG.js.map +0 -1
- package/dist/chunks/ToError-CyTBsmLO.js +0 -52
- package/dist/chunks/ToError-CyTBsmLO.js.map +0 -1
- package/dist/chunks/Tones-WKBNZ_u2.js +0 -112
- package/dist/chunks/Tones-WKBNZ_u2.js.map +0 -1
- package/dist/chunks/TransitionExtensions-hFi80JX2.js +0 -19
- package/dist/chunks/TransitionExtensions-hFi80JX2.js.map +0 -1
- package/dist/chunks/UseHotkeys-CKIYK5Mq.js +0 -82
- package/dist/chunks/UseHotkeys-CKIYK5Mq.js.map +0 -1
- package/dist/chunks/UseNavigationProgress-TQIkkXyU.js +0 -51
- package/dist/chunks/UseNavigationProgress-TQIkkXyU.js.map +0 -1
- package/dist/chunks/cn-CzDCF-Ah.js +0 -9
- package/dist/chunks/cn-CzDCF-Ah.js.map +0 -1
- package/dist/chunks/dataAttr-7BR67dTj.js +0 -7
- package/dist/chunks/dataAttr-7BR67dTj.js.map +0 -1
- package/dist/chunks/index-BGzbbN9T.js +0 -1707
- package/dist/chunks/index-BGzbbN9T.js.map +0 -1
- package/dist/chunks/index-C034dEhy.js +0 -205
- package/dist/chunks/index-C034dEhy.js.map +0 -1
- package/dist/chunks/index-CEoYQiWL.js +0 -130
- package/dist/chunks/index-CEoYQiWL.js.map +0 -1
- package/dist/chunks/index-CzKEU1kI.js +0 -11
- package/dist/chunks/index-CzKEU1kI.js.map +0 -1
- package/dist/chunks/index-op-kbVUk.js +0 -234
- package/dist/chunks/index-op-kbVUk.js.map +0 -1
- package/dist/chunks/useClipboard-BVRwXC--.js +0 -37
- package/dist/chunks/useClipboard-BVRwXC--.js.map +0 -1
- package/dist/chunks/useControlled-B6M4kTLn.js +0 -24
- package/dist/chunks/useControlled-B6M4kTLn.js.map +0 -1
- package/dist/chunks/useDebounceHandler-BIZgvvGp.js +0 -20
- package/dist/chunks/useDebounceHandler-BIZgvvGp.js.map +0 -1
- package/dist/chunks/useEscape-CYPdpm_l.js +0 -15
- package/dist/chunks/useEscape-CYPdpm_l.js.map +0 -1
- package/dist/chunks/useEventListener-gohT6zGs.js +0 -16
- package/dist/chunks/useEventListener-gohT6zGs.js.map +0 -1
- package/dist/chunks/useId-CtgAhGrn.js +0 -9
- package/dist/chunks/useId-CtgAhGrn.js.map +0 -1
- package/dist/chunks/useMediaQuery-DwVcSgGk.js +0 -27
- package/dist/chunks/useMediaQuery-DwVcSgGk.js.map +0 -1
- package/dist/chunks/useOutsideClick-CW80BJfE.js +0 -22
- package/dist/chunks/useOutsideClick-CW80BJfE.js.map +0 -1
- package/dist/chunks/useRecentItems-DFnt5CBy.js +0 -137
- package/dist/chunks/useRecentItems-DFnt5CBy.js.map +0 -1
- package/dist/chunks/useReducedMotion-B9LqQ3UT.js +0 -8
- package/dist/chunks/useReducedMotion-B9LqQ3UT.js.map +0 -1
- package/dist/chunks/useResizeObserver-BUU7lC-n.js +0 -17
- package/dist/chunks/useResizeObserver-BUU7lC-n.js.map +0 -1
- package/dist/chunks/useScrollLock-d6YIGUcs.js +0 -37
- package/dist/chunks/useScrollLock-d6YIGUcs.js.map +0 -1
- package/dist/flags/FlagsContext.d.ts +0 -32
- package/dist/flags/FlagsProvider.vue.d.ts +0 -24
- package/dist/forms-engine/AppForm.d.ts +0 -258
- package/dist/forms-engine/DeepEqual.d.ts +0 -8
- package/dist/forms-engine/FocusFirstInvalid.d.ts +0 -15
- package/dist/forms-engine/FormGlue.d.ts +0 -55
- package/dist/forms-engine/Paths.d.ts +0 -47
- package/dist/forms-engine/SchemaValidation.d.ts +0 -29
- package/dist/forms-engine/SubmitErrors.d.ts +0 -33
- package/dist/forms-engine/UseFieldArray.d.ts +0 -87
- package/dist/forms-engine/house/HouseFormCore.d.ts +0 -33
- package/dist/forms-engine/house/UseAppForm.d.ts +0 -16
- package/dist/forms-engine/house/index.js +0 -315
- package/dist/forms-engine/house/index.js.map +0 -1
- package/dist/forms-engine/index.d.ts +0 -10
- package/dist/forms-engine/index.js +0 -127
- package/dist/forms-engine/index.js.map +0 -1
- package/dist/forms-engine/tanstack/TanstackFormOverlay.d.ts +0 -49
- package/dist/forms-engine/tanstack/UseAppForm.d.ts +0 -26
- package/dist/forms-engine/tanstack/index.js +0 -407
- package/dist/forms-engine/tanstack/index.js.map +0 -1
- package/dist/foundation/animation/AnimatedLayout.d.ts +0 -72
- package/dist/foundation/clipboard/UseClipboardCopy.d.ts +0 -40
- package/dist/foundation/clipboard/UsePasteHandler.d.ts +0 -35
- package/dist/foundation/commands/CommandsContext.d.ts +0 -30
- package/dist/foundation/commands/CommandsProvider.vue.d.ts +0 -18
- package/dist/foundation/commands/UseCommandRegistry.d.ts +0 -19
- package/dist/foundation/commands/UseCommandShortcuts.d.ts +0 -18
- package/dist/foundation/device/UseBreakpoint.d.ts +0 -20
- package/dist/foundation/device/UseDisplayMode.d.ts +0 -23
- package/dist/foundation/device/UsePointer.d.ts +0 -25
- package/dist/foundation/format/Text.d.ts +0 -51
- package/dist/foundation/format/index.js +0 -100
- package/dist/foundation/format/index.js.map +0 -1
- package/dist/foundation/geolocation/GeolocationReading.d.ts +0 -30
- package/dist/foundation/geolocation/PositionResult.d.ts +0 -74
- package/dist/foundation/geolocation/UseGeolocation.d.ts +0 -38
- package/dist/foundation/geolocation/UseWatchPosition.d.ts +0 -16
- package/dist/foundation/gestures/UseDrag.d.ts +0 -75
- package/dist/foundation/gestures/UseLongPress.d.ts +0 -42
- package/dist/foundation/gestures/UsePinch.d.ts +0 -47
- package/dist/foundation/gestures/UseSwipe.d.ts +0 -46
- package/dist/foundation/hooks/index.d.ts +0 -17
- package/dist/foundation/hooks/index.js +0 -34
- package/dist/foundation/hooks/index.js.map +0 -1
- package/dist/foundation/hooks/useAutosave/index.d.ts +0 -1
- package/dist/foundation/hooks/useAutosave/useAutosave.d.ts +0 -46
- package/dist/foundation/hooks/useClipboard/index.d.ts +0 -1
- package/dist/foundation/hooks/useClipboard/useClipboard.d.ts +0 -24
- package/dist/foundation/hooks/useControlled/index.d.ts +0 -1
- package/dist/foundation/hooks/useControlled/useControlled.d.ts +0 -31
- package/dist/foundation/hooks/useDebounceHandler/index.d.ts +0 -1
- package/dist/foundation/hooks/useDisclosure/index.d.ts +0 -1
- package/dist/foundation/hooks/useEscape/index.d.ts +0 -1
- package/dist/foundation/hooks/useEventListener/index.d.ts +0 -1
- package/dist/foundation/hooks/useFocusTrap/index.d.ts +0 -1
- package/dist/foundation/hooks/useId/index.d.ts +0 -1
- package/dist/foundation/hooks/useMediaQuery/index.d.ts +0 -1
- package/dist/foundation/hooks/useMediaQuery/useMediaQuery.d.ts +0 -12
- package/dist/foundation/hooks/useOutsideClick/index.d.ts +0 -1
- package/dist/foundation/hooks/usePersistentState/index.d.ts +0 -1
- package/dist/foundation/hooks/usePersistentState/usePersistentState.d.ts +0 -31
- package/dist/foundation/hooks/useRecentItems/index.d.ts +0 -1
- package/dist/foundation/hooks/useRecentItems/useRecentItems.d.ts +0 -34
- package/dist/foundation/hooks/useReducedMotion/index.d.ts +0 -1
- package/dist/foundation/hooks/useResizeObserver/index.d.ts +0 -1
- package/dist/foundation/hooks/useScrollLock/index.d.ts +0 -1
- package/dist/foundation/hooks/useTypeahead/index.d.ts +0 -1
- package/dist/foundation/hooks/useTypeahead/useTypeahead.d.ts +0 -42
- package/dist/foundation/http/Page.d.ts +0 -47
- package/dist/foundation/http/temporalReviver.d.ts +0 -9
- package/dist/foundation/i18n/FormattedRelative.vue.d.ts +0 -10
- package/dist/foundation/i18n/LocaleContext.d.ts +0 -35
- package/dist/foundation/i18n/LocaleProvider.vue.d.ts +0 -18
- package/dist/foundation/icons/Icon.vue.d.ts +0 -40
- package/dist/foundation/icons/Spinner.vue.d.ts +0 -7
- package/dist/foundation/media/MediaStreamResult.d.ts +0 -45
- package/dist/foundation/net/UseEventStream.d.ts +0 -25
- package/dist/foundation/net/UsePolling.d.ts +0 -26
- package/dist/foundation/net/UseSocket.d.ts +0 -32
- package/dist/foundation/notifications/UseNotificationPermission.d.ts +0 -27
- package/dist/foundation/notifications/UsePermissionState.d.ts +0 -14
- package/dist/foundation/observers/UseInView.d.ts +0 -41
- package/dist/foundation/observers/UseIntersectionObserver.d.ts +0 -18
- package/dist/foundation/observers/UseMutationObserver.d.ts +0 -21
- package/dist/foundation/screen/ScreenResult.d.ts +0 -38
- package/dist/foundation/screen/UseFullscreen.d.ts +0 -28
- package/dist/foundation/screen/UseOrientation.d.ts +0 -28
- package/dist/foundation/screen/UseWakeLock.d.ts +0 -18
- package/dist/foundation/selection/Filter.d.ts +0 -71
- package/dist/foundation/selection/Selection.d.ts +0 -116
- package/dist/foundation/selection/Sort.d.ts +0 -69
- package/dist/foundation/selection/UseFilters.d.ts +0 -34
- package/dist/foundation/selection/UseSelection.d.ts +0 -54
- package/dist/foundation/selection/UseSort.d.ts +0 -36
- package/dist/foundation/shortcuts/UseHotkeys.d.ts +0 -34
- package/dist/foundation/speech/UseSpeechRecognition.d.ts +0 -45
- package/dist/foundation/speech/UseSpeechSynthesis.d.ts +0 -37
- package/dist/foundation/storage/zustand/ZustandPersist.d.ts +0 -36
- package/dist/foundation/storage/zustand/index.d.ts +0 -1
- package/dist/foundation/storage/zustand/index.js.map +0 -1
- package/dist/foundation/sync/LeaderElection.d.ts +0 -88
- package/dist/foundation/sync/SyncChannel.d.ts +0 -65
- package/dist/foundation/sync/UseBroadcastState.d.ts +0 -31
- package/dist/foundation/sync/UseLeaderElection.d.ts +0 -25
- package/dist/foundation/sync/UseSyncChannel.d.ts +0 -16
- package/dist/foundation/sync/index.d.ts +0 -7
- package/dist/foundation/sync/index.js +0 -484
- package/dist/foundation/sync/index.js.map +0 -1
- package/dist/foundation/themes/pool.d.ts +0 -3
- package/dist/foundation/themes/registry.d.ts +0 -16
- package/dist/foundation/themes/validate.d.ts +0 -25
- package/dist/foundation/themes/validated.d.ts +0 -3
- package/dist/foundation/undo/HistoryCore.d.ts +0 -92
- package/dist/foundation/undo/UseUndoHistory.d.ts +0 -66
- package/dist/foundation/undo/UseUndoShortcuts.d.ts +0 -20
- package/dist/foundation/undo/index.d.ts +0 -5
- package/dist/foundation/undo/index.js +0 -361
- package/dist/foundation/undo/index.js.map +0 -1
- package/dist/foundation/utils/Align/index.d.ts +0 -1
- package/dist/foundation/utils/ColorExtensions/ColorExtensions.d.ts +0 -51
- package/dist/foundation/utils/ColorExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/Compare/index.d.ts +0 -1
- package/dist/foundation/utils/CornerPosition/index.d.ts +0 -1
- package/dist/foundation/utils/CssExtensions/CssExtensions.d.ts +0 -115
- package/dist/foundation/utils/CssExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/ElementTag/index.d.ts +0 -1
- package/dist/foundation/utils/Environment/Environment.d.ts +0 -12
- package/dist/foundation/utils/Environment/index.d.ts +0 -1
- package/dist/foundation/utils/Equality/index.d.ts +0 -1
- package/dist/foundation/utils/HtmlExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/KeyboardExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/Layers/Layers.d.ts +0 -35
- package/dist/foundation/utils/Layers/index.d.ts +0 -1
- package/dist/foundation/utils/OptionalExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/Orientation/index.d.ts +0 -1
- package/dist/foundation/utils/OverlayPosition/index.d.ts +0 -1
- package/dist/foundation/utils/PressExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/ProgressTone/index.d.ts +0 -1
- package/dist/foundation/utils/Severity/index.d.ts +0 -1
- package/dist/foundation/utils/Side/index.d.ts +0 -1
- package/dist/foundation/utils/StatusTone/index.d.ts +0 -1
- package/dist/foundation/utils/StyleTokens/index.d.ts +0 -1
- package/dist/foundation/utils/SurfaceStyles/SurfaceStyles.d.ts +0 -397
- package/dist/foundation/utils/SurfaceStyles/index.d.ts +0 -1
- package/dist/foundation/utils/Tones/Tones.d.ts +0 -21
- package/dist/foundation/utils/Tones/index.d.ts +0 -1
- package/dist/foundation/utils/TransitionExtensions/index.d.ts +0 -1
- package/dist/foundation/utils/cn/index.d.ts +0 -1
- package/dist/foundation/utils/composeEventHandlers/index.d.ts +0 -1
- package/dist/foundation/utils/dataAttr/index.d.ts +0 -1
- package/dist/foundation/utils/index.d.ts +0 -33
- package/dist/foundation/utils/index.js +0 -67
- package/dist/foundation/utils/index.js.map +0 -1
- package/dist/foundation/utils/polymorphic/index.d.ts +0 -1
- package/dist/foundation/utils/polymorphic/polymorphic.d.ts +0 -29
- package/dist/foundation/utils/tv/index.d.ts +0 -1
- package/dist/foundation/validation/Composites.d.ts +0 -62
- package/dist/foundation/validation/Messages.d.ts +0 -69
- package/dist/foundation/validation/ValidationError.d.ts +0 -14
- package/dist/foundation/validation/ValidationResult.d.ts +0 -49
- package/dist/foundation/validation/Validator.d.ts +0 -69
- package/dist/foundation/validation/index.d.ts +0 -8
- package/dist/foundation/validation/index.js +0 -512
- package/dist/foundation/validation/index.js.map +0 -1
- package/dist/presentation/actions/fab/FAB.variants.d.ts +0 -158
- package/dist/presentation/actions/fab/FAB.vue.d.ts +0 -29
- package/dist/presentation/actions/fab/index.d.ts +0 -2
- package/dist/presentation/actions/link/Link.variants.d.ts +0 -111
- package/dist/presentation/actions/link/Link.vue.d.ts +0 -24
- package/dist/presentation/actions/link/index.d.ts +0 -2
- package/dist/presentation/actions/optionTile/OptionTile.variants.d.ts +0 -10
- package/dist/presentation/actions/optionTile/OptionTile.vue.d.ts +0 -31
- package/dist/presentation/actions/optionTile/index.d.ts +0 -2
- package/dist/presentation/actions/optionTileGroup/OptionTileGroup.variants.d.ts +0 -76
- package/dist/presentation/actions/optionTileGroup/OptionTileGroup.vue.d.ts +0 -27
- package/dist/presentation/actions/optionTileGroup/index.d.ts +0 -2
- package/dist/presentation/actions/segmentedControl/SegmentedControl.vue.d.ts +0 -20
- package/dist/presentation/actions/segmentedControl/index.d.ts +0 -1
- package/dist/presentation/actions/speedDial/SpeedDial.vue.d.ts +0 -28
- package/dist/presentation/actions/speedDial/SpeedDialAction.vue.d.ts +0 -41
- package/dist/presentation/actions/speedDial/SpeedDialContext.d.ts +0 -36
- package/dist/presentation/actions/speedDial/SpeedDialList.vue.d.ts +0 -13
- package/dist/presentation/actions/speedDial/SpeedDialTrigger.vue.d.ts +0 -30
- package/dist/presentation/actions/speedDial/index.d.ts +0 -164
- package/dist/presentation/actions/toggleButton/ToggleButton.variants.d.ts +0 -141
- package/dist/presentation/actions/toggleButton/ToggleButton.vue.d.ts +0 -59
- package/dist/presentation/actions/toggleButton/index.d.ts +0 -2
- package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.variants.d.ts +0 -33
- package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.vue.d.ts +0 -72
- package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroupContext.d.ts +0 -24
- package/dist/presentation/actions/toggleButtonGroup/index.d.ts +0 -3
- package/dist/presentation/display/accordion/Accordion.vue.d.ts +0 -45
- package/dist/presentation/display/accordion/AccordionContent.vue.d.ts +0 -14
- package/dist/presentation/display/accordion/AccordionContext.d.ts +0 -29
- package/dist/presentation/display/accordion/AccordionItem.vue.d.ts +0 -20
- package/dist/presentation/display/accordion/AccordionTrigger.vue.d.ts +0 -14
- package/dist/presentation/display/accordion/index.d.ts +0 -5
- package/dist/presentation/display/activityFeed/ActivityFeed.vue.d.ts +0 -18
- package/dist/presentation/display/activityFeed/ActivityItem.vue.d.ts +0 -29
- package/dist/presentation/display/activityFeed/index.d.ts +0 -2
- package/dist/presentation/display/animatedNumber/AnimatedNumber.vue.d.ts +0 -34
- package/dist/presentation/display/animatedNumber/index.d.ts +0 -1
- package/dist/presentation/display/annotationMarker/AnnotationMarker.vue.d.ts +0 -43
- package/dist/presentation/display/annotationMarker/index.d.ts +0 -1
- package/dist/presentation/display/audioWaveform/AudioWaveform.vue.d.ts +0 -58
- package/dist/presentation/display/audioWaveform/index.d.ts +0 -1
- package/dist/presentation/display/chatBubble/ChatBubble.vue.d.ts +0 -79
- package/dist/presentation/display/chatBubble/index.d.ts +0 -1
- package/dist/presentation/display/code/Code.variants.d.ts +0 -48
- package/dist/presentation/display/code/Code.vue.d.ts +0 -17
- package/dist/presentation/display/code/index.d.ts +0 -2
- package/dist/presentation/display/collapsible/Collapsible.vue.d.ts +0 -40
- package/dist/presentation/display/collapsible/CollapsibleContent.vue.d.ts +0 -18
- package/dist/presentation/display/collapsible/CollapsibleContentInner.vue.d.ts +0 -23
- package/dist/presentation/display/collapsible/CollapsibleContext.d.ts +0 -17
- package/dist/presentation/display/collapsible/CollapsibleTrigger.vue.d.ts +0 -18
- package/dist/presentation/display/collapsible/index.d.ts +0 -4
- package/dist/presentation/display/commentThread/Comment.vue.d.ts +0 -39
- package/dist/presentation/display/commentThread/CommentThread.vue.d.ts +0 -14
- package/dist/presentation/display/commentThread/index.d.ts +0 -2
- package/dist/presentation/display/confetti/Confetti.vue.d.ts +0 -40
- package/dist/presentation/display/confetti/index.d.ts +0 -1
- package/dist/presentation/display/countUp/CountUp.vue.d.ts +0 -40
- package/dist/presentation/display/countUp/index.d.ts +0 -1
- package/dist/presentation/display/dataGrid/CellEditor.vue.d.ts +0 -29
- package/dist/presentation/display/dataGrid/DataGrid.vue.d.ts +0 -47
- package/dist/presentation/display/dataGrid/DataGridTypes.d.ts +0 -65
- package/dist/presentation/display/dataGrid/index.d.ts +0 -2
- package/dist/presentation/display/descriptionList/DescriptionList.vue.d.ts +0 -54
- package/dist/presentation/display/descriptionList/index.d.ts +0 -1
- package/dist/presentation/display/eventCalendar/AgendaView.vue.d.ts +0 -13
- package/dist/presentation/display/eventCalendar/EventCalendar.vue.d.ts +0 -42
- package/dist/presentation/display/eventCalendar/EventCalendarTypes.d.ts +0 -28
- package/dist/presentation/display/eventCalendar/MonthView.vue.d.ts +0 -17
- package/dist/presentation/display/eventCalendar/TimeGridView.vue.d.ts +0 -18
- package/dist/presentation/display/eventCalendar/index.d.ts +0 -2
- package/dist/presentation/display/eyebrow/Eyebrow.vue.d.ts +0 -32
- package/dist/presentation/display/eyebrow/index.d.ts +0 -1
- package/dist/presentation/display/gantt/Gantt.vue.d.ts +0 -59
- package/dist/presentation/display/gantt/index.d.ts +0 -1
- package/dist/presentation/display/heatmapCalendar/HeatmapCalendar.vue.d.ts +0 -62
- package/dist/presentation/display/heatmapCalendar/index.d.ts +0 -1
- package/dist/presentation/display/highlight/Highlight.vue.d.ts +0 -20
- package/dist/presentation/display/highlight/index.d.ts +0 -1
- package/dist/presentation/display/image/Image.vue.d.ts +0 -15
- package/dist/presentation/display/image/index.d.ts +0 -1
- package/dist/presentation/display/kbd/Kbd.vue.d.ts +0 -13
- package/dist/presentation/display/kbd/index.d.ts +0 -1
- package/dist/presentation/display/keyboardShortcut/KeyboardShortcut.vue.d.ts +0 -13
- package/dist/presentation/display/keyboardShortcut/index.d.ts +0 -1
- package/dist/presentation/display/list/List.variants.d.ts +0 -112
- package/dist/presentation/display/list/List.vue.d.ts +0 -23
- package/dist/presentation/display/list/ListContext.d.ts +0 -16
- package/dist/presentation/display/list/ListItem.vue.d.ts +0 -29
- package/dist/presentation/display/list/index.d.ts +0 -4
- package/dist/presentation/display/mark/Mark.vue.d.ts +0 -13
- package/dist/presentation/display/mark/index.d.ts +0 -1
- package/dist/presentation/display/marquee/Marquee.vue.d.ts +0 -39
- package/dist/presentation/display/marquee/index.d.ts +0 -1
- package/dist/presentation/display/messageList/DaySeparator.vue.d.ts +0 -17
- package/dist/presentation/display/messageList/MessageList.vue.d.ts +0 -39
- package/dist/presentation/display/messageList/index.d.ts +0 -2
- package/dist/presentation/display/metaInline/MetaInline.vue.d.ts +0 -21
- package/dist/presentation/display/metaInline/index.d.ts +0 -1
- package/dist/presentation/display/metricChip/MetricChip.vue.d.ts +0 -54
- package/dist/presentation/display/metricChip/index.d.ts +0 -1
- package/dist/presentation/display/nodeEditor/NodeEditor.vue.d.ts +0 -58
- package/dist/presentation/display/notificationDot/NotificationDot.vue.d.ts +0 -47
- package/dist/presentation/display/notificationDot/index.d.ts +0 -1
- package/dist/presentation/display/pdfViewer/PDFViewer.vue.d.ts +0 -40
- package/dist/presentation/display/quote/Quote.vue.d.ts +0 -13
- package/dist/presentation/display/quote/index.d.ts +0 -1
- package/dist/presentation/display/scrollReveal/ScrollReveal.vue.d.ts +0 -50
- package/dist/presentation/display/scrollReveal/index.d.ts +0 -1
- package/dist/presentation/display/sectionHeader/SectionHeader.vue.d.ts +0 -49
- package/dist/presentation/display/sectionHeader/index.d.ts +0 -1
- package/dist/presentation/display/separator/Separator.vue.d.ts +0 -14
- package/dist/presentation/display/separator/index.d.ts +0 -1
- package/dist/presentation/display/snippet/Snippet.vue.d.ts +0 -21
- package/dist/presentation/display/snippet/index.d.ts +0 -1
- package/dist/presentation/display/sortable/Sortable.vue.d.ts +0 -18
- package/dist/presentation/display/sortable/SortableContext.d.ts +0 -22
- package/dist/presentation/display/sortable/SortableHandle.vue.d.ts +0 -14
- package/dist/presentation/display/sortable/SortableItem.vue.d.ts +0 -16
- package/dist/presentation/display/sortable/index.d.ts +0 -4
- package/dist/presentation/display/stat/Stat.vue.d.ts +0 -48
- package/dist/presentation/display/stat/index.d.ts +0 -1
- package/dist/presentation/display/swipeActions/SwipeActions.vue.d.ts +0 -28
- package/dist/presentation/display/swipeActions/index.d.ts +0 -1
- package/dist/presentation/display/tabs/Tabs.vue.d.ts +0 -33
- package/dist/presentation/display/tabs/TabsContext.d.ts +0 -34
- package/dist/presentation/display/tabs/TabsList.vue.d.ts +0 -256
- package/dist/presentation/display/tabs/TabsPanel.vue.d.ts +0 -16
- package/dist/presentation/display/tabs/TabsTab.vue.d.ts +0 -20
- package/dist/presentation/display/tabs/index.d.ts +0 -5
- package/dist/presentation/display/tilt/Tilt.vue.d.ts +0 -31
- package/dist/presentation/display/tilt/index.d.ts +0 -1
- package/dist/presentation/display/tooltip/Tooltip.vue.d.ts +0 -53
- package/dist/presentation/display/tree/Tree.vue.d.ts +0 -275
- package/dist/presentation/display/tree/TreeContext.d.ts +0 -29
- package/dist/presentation/display/tree/TreeGroup.vue.d.ts +0 -28
- package/dist/presentation/display/tree/TreeGroupContent.vue.d.ts +0 -17
- package/dist/presentation/display/tree/TreeItem.vue.d.ts +0 -20
- package/dist/presentation/display/tree/TreeNodeRow.vue.d.ts +0 -27
- package/dist/presentation/display/tree/index.d.ts +0 -4
- package/dist/presentation/display/typewriter/Typewriter.vue.d.ts +0 -32
- package/dist/presentation/display/typewriter/index.d.ts +0 -1
- package/dist/presentation/feedback/feedbackToasts/FeedbackToasts.vue.d.ts +0 -18
- package/dist/presentation/feedback/feedbackToasts/index.d.ts +0 -1
- package/dist/presentation/feedback/liveCursor/LiveCursor.vue.d.ts +0 -33
- package/dist/presentation/feedback/liveCursor/index.d.ts +0 -1
- package/dist/presentation/feedback/notificationCenter/NotificationCenter.vue.d.ts +0 -30
- package/dist/presentation/feedback/notificationCenter/NotificationItem.vue.d.ts +0 -40
- package/dist/presentation/feedback/notificationCenter/index.d.ts +0 -2
- package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklist.vue.d.ts +0 -56
- package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklistTask.vue.d.ts +0 -27
- package/dist/presentation/feedback/onboardingChecklist/index.d.ts +0 -3
- package/dist/presentation/feedback/progressCircle/ProgressCircle.vue.d.ts +0 -21
- package/dist/presentation/feedback/progressCircle/index.d.ts +0 -1
- package/dist/presentation/feedback/progressSteps/ProgressSteps.vue.d.ts +0 -16
- package/dist/presentation/feedback/progressSteps/index.d.ts +0 -1
- package/dist/presentation/feedback/skeleton/Skeleton.variants.d.ts +0 -57
- package/dist/presentation/feedback/skeleton/Skeleton.vue.d.ts +0 -17
- package/dist/presentation/feedback/skeleton/index.d.ts +0 -2
- package/dist/presentation/feedback/toaster/Toaster.vue.d.ts +0 -84
- package/dist/presentation/feedback/toaster/index.d.ts +0 -1
- package/dist/presentation/feedback/tour/Tour.vue.d.ts +0 -46
- package/dist/presentation/feedback/tour/index.d.ts +0 -1
- package/dist/presentation/forms/addressForm/AddressForm.vue.d.ts +0 -54
- package/dist/presentation/forms/addressForm/index.d.ts +0 -1
- package/dist/presentation/forms/calendar/Calendar.vue.d.ts +0 -33
- package/dist/presentation/forms/calendar/index.d.ts +0 -1
- package/dist/presentation/forms/characterCount/CharacterCount.vue.d.ts +0 -15
- package/dist/presentation/forms/characterCount/index.d.ts +0 -1
- package/dist/presentation/forms/chatComposer/ChatComposer.vue.d.ts +0 -74
- package/dist/presentation/forms/chatComposer/index.d.ts +0 -1
- package/dist/presentation/forms/checkbox/Checkbox.variants.d.ts +0 -133
- package/dist/presentation/forms/checkbox/Checkbox.vue.d.ts +0 -48
- package/dist/presentation/forms/checkbox/index.d.ts +0 -2
- package/dist/presentation/forms/colorField/ColorField.vue.d.ts +0 -44
- package/dist/presentation/forms/colorField/index.d.ts +0 -1
- package/dist/presentation/forms/colorSlider/ColorSlider.vue.d.ts +0 -47
- package/dist/presentation/forms/colorSlider/index.d.ts +0 -1
- package/dist/presentation/forms/colorSwatch/ColorSwatch.variants.d.ts +0 -186
- package/dist/presentation/forms/colorSwatch/ColorSwatch.vue.d.ts +0 -33
- package/dist/presentation/forms/colorSwatch/index.d.ts +0 -2
- package/dist/presentation/forms/colorWheel/ColorWheel.vue.d.ts +0 -34
- package/dist/presentation/forms/colorWheel/index.d.ts +0 -1
- package/dist/presentation/forms/combobox/Combobox.vue.d.ts +0 -60
- package/dist/presentation/forms/combobox/ComboboxContent.vue.d.ts +0 -39
- package/dist/presentation/forms/combobox/ComboboxContext.d.ts +0 -53
- package/dist/presentation/forms/combobox/ComboboxEmpty.vue.d.ts +0 -10
- package/dist/presentation/forms/combobox/ComboboxGroup.vue.d.ts +0 -19
- package/dist/presentation/forms/combobox/ComboboxInput.vue.d.ts +0 -12
- package/dist/presentation/forms/combobox/ComboboxItem.vue.d.ts +0 -28
- package/dist/presentation/forms/combobox/ComboboxSeparator.vue.d.ts +0 -3
- package/dist/presentation/forms/combobox/index.d.ts +0 -8
- package/dist/presentation/forms/dateField/DateField.vue.d.ts +0 -54
- package/dist/presentation/forms/dateField/index.d.ts +0 -1
- package/dist/presentation/forms/dateTimeField/DateTimeField.vue.d.ts +0 -59
- package/dist/presentation/forms/dateTimeField/index.d.ts +0 -1
- package/dist/presentation/forms/editable/Editable.vue.d.ts +0 -60
- package/dist/presentation/forms/editable/EditableCancel.vue.d.ts +0 -12
- package/dist/presentation/forms/editable/EditableContext.d.ts +0 -37
- package/dist/presentation/forms/editable/EditableInput.vue.d.ts +0 -12
- package/dist/presentation/forms/editable/EditablePreview.vue.d.ts +0 -7
- package/dist/presentation/forms/editable/EditableSubmit.vue.d.ts +0 -14
- package/dist/presentation/forms/editable/index.d.ts +0 -7
- package/dist/presentation/forms/emojiPicker/useEmojiPicker.d.ts +0 -45
- package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.variants.d.ts +0 -23
- package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.vue.d.ts +0 -32
- package/dist/presentation/forms/emojiSizeControl/index.d.ts +0 -2
- package/dist/presentation/forms/fieldset/Fieldset.vue.d.ts +0 -22
- package/dist/presentation/forms/fieldset/index.d.ts +0 -1
- package/dist/presentation/forms/fileUpload/FileUpload.vue.d.ts +0 -60
- package/dist/presentation/forms/fileUpload/index.d.ts +0 -1
- package/dist/presentation/forms/formErrorMessage/FormErrorMessage.vue.d.ts +0 -24
- package/dist/presentation/forms/formErrorMessage/index.d.ts +0 -1
- package/dist/presentation/forms/formHelperText/FormHelperText.vue.d.ts +0 -19
- package/dist/presentation/forms/formHelperText/index.d.ts +0 -1
- package/dist/presentation/forms/inputAddon/InputAddon.vue.d.ts +0 -20
- package/dist/presentation/forms/inputAddon/index.d.ts +0 -1
- package/dist/presentation/forms/inputGroup/InputGroup.vue.d.ts +0 -19
- package/dist/presentation/forms/jsonEditor/JSONEditor.vue.d.ts +0 -49
- package/dist/presentation/forms/jsonEditor/JSONEditorContext.d.ts +0 -28
- package/dist/presentation/forms/jsonEditor/JSONEditorHelpers.d.ts +0 -6
- package/dist/presentation/forms/jsonEditor/JSONEditorTextView.vue.d.ts +0 -14
- package/dist/presentation/forms/jsonEditor/JSONEditorTreeNode.vue.d.ts +0 -15
- package/dist/presentation/forms/jsonEditor/JSONEditorTreeView.vue.d.ts +0 -8
- package/dist/presentation/forms/knob/Knob.vue.d.ts +0 -75
- package/dist/presentation/forms/knob/index.d.ts +0 -1
- package/dist/presentation/forms/label/Label.vue.d.ts +0 -34
- package/dist/presentation/forms/label/index.d.ts +0 -1
- package/dist/presentation/forms/labeledInput/LabeledInput.vue.d.ts +0 -23
- package/dist/presentation/forms/labeledInput/index.d.ts +0 -2
- package/dist/presentation/forms/legend/Legend.vue.d.ts +0 -21
- package/dist/presentation/forms/legend/index.d.ts +0 -1
- package/dist/presentation/forms/listbox/Listbox.variants.d.ts +0 -71
- package/dist/presentation/forms/listbox/Listbox.vue.d.ts +0 -70
- package/dist/presentation/forms/listbox/ListboxContext.d.ts +0 -47
- package/dist/presentation/forms/listbox/ListboxEmpty.vue.d.ts +0 -10
- package/dist/presentation/forms/listbox/ListboxGroup.vue.d.ts +0 -20
- package/dist/presentation/forms/listbox/ListboxItem.vue.d.ts +0 -24
- package/dist/presentation/forms/listbox/ListboxSeparator.vue.d.ts +0 -3
- package/dist/presentation/forms/listbox/index.d.ts +0 -7
- package/dist/presentation/forms/multiSelect/MultiSelect.vue.d.ts +0 -60
- package/dist/presentation/forms/multiSelect/MultiSelectContent.vue.d.ts +0 -31
- package/dist/presentation/forms/multiSelect/MultiSelectContext.d.ts +0 -47
- package/dist/presentation/forms/multiSelect/MultiSelectItem.vue.d.ts +0 -25
- package/dist/presentation/forms/multiSelect/MultiSelectTags.vue.d.ts +0 -24
- package/dist/presentation/forms/multiSelect/MultiSelectTrigger.vue.d.ts +0 -25
- package/dist/presentation/forms/multiSelect/index.d.ts +0 -6
- package/dist/presentation/forms/passwordStrength/PasswordStrength.vue.d.ts +0 -16
- package/dist/presentation/forms/passwordStrength/index.d.ts +0 -1
- package/dist/presentation/forms/radio/Radio.vue.d.ts +0 -35
- package/dist/presentation/forms/radio/index.d.ts +0 -1
- package/dist/presentation/forms/rangeCalendar/RangeCalendar.vue.d.ts +0 -37
- package/dist/presentation/forms/rangeCalendar/index.d.ts +0 -1
- package/dist/presentation/forms/select/Select.variants.d.ts +0 -263
- package/dist/presentation/forms/select/Select.vue.d.ts +0 -69
- package/dist/presentation/forms/select/SelectContent.vue.d.ts +0 -44
- package/dist/presentation/forms/select/SelectContext.d.ts +0 -76
- package/dist/presentation/forms/select/SelectItem.vue.d.ts +0 -33
- package/dist/presentation/forms/select/SelectTrigger.vue.d.ts +0 -21
- package/dist/presentation/forms/select/SelectValue.vue.d.ts +0 -22
- package/dist/presentation/forms/select/index.d.ts +0 -7
- package/dist/presentation/forms/slider/Slider.vue.d.ts +0 -38
- package/dist/presentation/forms/slider/index.d.ts +0 -1
- package/dist/presentation/forms/stepper/Stepper.vue.d.ts +0 -34
- package/dist/presentation/forms/stepper/StepperContext.d.ts +0 -44
- package/dist/presentation/forms/stepper/StepperList.vue.d.ts +0 -256
- package/dist/presentation/forms/stepper/StepperPanel.vue.d.ts +0 -16
- package/dist/presentation/forms/stepper/StepperStep.vue.d.ts +0 -23
- package/dist/presentation/forms/stepper/index.d.ts +0 -5
- package/dist/presentation/forms/switch/Switch.vue.d.ts +0 -35
- package/dist/presentation/forms/switch/index.d.ts +0 -1
- package/dist/presentation/forms/timeField/TimeField.vue.d.ts +0 -53
- package/dist/presentation/forms/timeField/index.d.ts +0 -1
- package/dist/presentation/forms/wizard/Wizard.vue.d.ts +0 -38
- package/dist/presentation/forms/wizard/WizardContext.d.ts +0 -38
- package/dist/presentation/forms/wizard/WizardFooter.vue.d.ts +0 -29
- package/dist/presentation/forms/wizard/WizardStep.vue.d.ts +0 -29
- package/dist/presentation/forms/wizard/WizardSteps.vue.d.ts +0 -7
- package/dist/presentation/forms/wizard/index.d.ts +0 -6
- package/dist/presentation/layout/aspectRatio/AspectRatio.vue.d.ts +0 -18
- package/dist/presentation/layout/aspectRatio/index.d.ts +0 -1
- package/dist/presentation/layout/box/Box.vue.d.ts +0 -19
- package/dist/presentation/layout/box/index.d.ts +0 -1
- package/dist/presentation/layout/center/Center.vue.d.ts +0 -13
- package/dist/presentation/layout/center/index.d.ts +0 -1
- package/dist/presentation/layout/cluster/Cluster.vue.d.ts +0 -22
- package/dist/presentation/layout/cluster/index.d.ts +0 -1
- package/dist/presentation/layout/container/Container.variants.d.ts +0 -84
- package/dist/presentation/layout/container/Container.vue.d.ts +0 -21
- package/dist/presentation/layout/container/index.d.ts +0 -2
- package/dist/presentation/layout/controlGroup/ControlGroup.variants.d.ts +0 -136
- package/dist/presentation/layout/controlGroup/ControlGroup.vue.d.ts +0 -35
- package/dist/presentation/layout/controlGroup/index.d.ts +0 -2
- package/dist/presentation/layout/divider/Divider.variants.d.ts +0 -47
- package/dist/presentation/layout/divider/Divider.vue.d.ts +0 -38
- package/dist/presentation/layout/divider/index.d.ts +0 -2
- package/dist/presentation/layout/flex/Flex.vue.d.ts +0 -18
- package/dist/presentation/layout/flex/index.d.ts +0 -1
- package/dist/presentation/layout/frame/Frame.vue.d.ts +0 -38
- package/dist/presentation/layout/frame/index.d.ts +0 -1
- package/dist/presentation/layout/hStack/HStack.vue.d.ts +0 -14
- package/dist/presentation/layout/hStack/index.d.ts +0 -1
- package/dist/presentation/layout/inline/Inline.vue.d.ts +0 -42
- package/dist/presentation/layout/inline/index.d.ts +0 -1
- package/dist/presentation/layout/overlay/Overlay.variants.d.ts +0 -231
- package/dist/presentation/layout/overlay/Overlay.vue.d.ts +0 -64
- package/dist/presentation/layout/overlay/index.d.ts +0 -2
- package/dist/presentation/layout/pullToRefresh/PullToRefresh.vue.d.ts +0 -22
- package/dist/presentation/layout/pullToRefresh/index.d.ts +0 -1
- package/dist/presentation/layout/resizablePanels/ResizablePanel.vue.d.ts +0 -21
- package/dist/presentation/layout/resizablePanels/ResizablePanels.vue.d.ts +0 -59
- package/dist/presentation/layout/resizablePanels/ResizableSeparator.vue.d.ts +0 -10
- package/dist/presentation/layout/resizablePanels/index.d.ts +0 -4
- package/dist/presentation/layout/spacer/Spacer.vue.d.ts +0 -15
- package/dist/presentation/layout/spacer/index.d.ts +0 -1
- package/dist/presentation/layout/stack/Stack.variants.d.ts +0 -330
- package/dist/presentation/layout/stack/Stack.vue.d.ts +0 -37
- package/dist/presentation/layout/stack/index.d.ts +0 -2
- package/dist/presentation/layout/surface/Surface.vue.d.ts +0 -39
- package/dist/presentation/layout/surface/index.d.ts +0 -1
- package/dist/presentation/layout/twoColumn/TwoColumn.vue.d.ts +0 -28
- package/dist/presentation/layout/twoColumn/index.d.ts +0 -1
- package/dist/presentation/layout/vStack/VStack.vue.d.ts +0 -14
- package/dist/presentation/layout/vStack/index.d.ts +0 -1
- package/dist/presentation/nav/NavHelpers.d.ts +0 -11
- package/dist/presentation/nav/commandPalette/CommandPalette.vue.d.ts +0 -53
- package/dist/presentation/nav/commandPalette/CommandPaletteContent.vue.d.ts +0 -17
- package/dist/presentation/nav/commandPalette/CommandPaletteContext.d.ts +0 -42
- package/dist/presentation/nav/commandPalette/CommandPaletteEmpty.vue.d.ts +0 -19
- package/dist/presentation/nav/commandPalette/CommandPaletteGroup.vue.d.ts +0 -19
- package/dist/presentation/nav/commandPalette/CommandPaletteInput.vue.d.ts +0 -14
- package/dist/presentation/nav/commandPalette/CommandPaletteItem.vue.d.ts +0 -36
- package/dist/presentation/nav/commandPalette/CommandPaletteList.vue.d.ts +0 -19
- package/dist/presentation/nav/commandPalette/CommandPaletteSeparator.vue.d.ts +0 -12
- package/dist/presentation/nav/commandPalette/index.d.ts +0 -9
- package/dist/presentation/overlays/OverlayHelpers.d.ts +0 -11
- package/dist/presentation/overlays/backdrop/Backdrop.vue.d.ts +0 -40
- package/dist/presentation/overlays/backdrop/index.d.ts +0 -1
- package/dist/query/CreateQueryClient.d.ts +0 -19
- package/dist/query/Devtools.vue.d.ts +0 -10
- package/dist/query/Endpoints.d.ts +0 -14
- package/dist/query/PageHelpers.d.ts +0 -10
- package/dist/query/Persistence.d.ts +0 -40
- package/dist/query/QueryProgressBridge.d.ts +0 -16
- package/dist/query/QueryProvider.vue.d.ts +0 -17
- package/dist/query/QueryTestUtils.d.ts +0 -54
- package/dist/query/ToApiError.d.ts +0 -7
- package/dist/query/UseAppInfiniteQuery.d.ts +0 -45
- package/dist/query/UseAppLazyQuery.d.ts +0 -40
- package/dist/query/UseAppMutation.d.ts +0 -32
- package/dist/query/UseAppPaginatedQuery.d.ts +0 -39
- package/dist/query/UseAppQueries.d.ts +0 -43
- package/dist/query/UseAppQuery.d.ts +0 -38
- package/dist/query/UseAppSuspenseQuery.d.ts +0 -42
- package/dist/query/UseOptimisticMutation.d.ts +0 -25
- package/dist/query/UsePrefetchQuery.d.ts +0 -26
- package/dist/query/UseQueryCache.d.ts +0 -31
- package/dist/query/testing.d.ts +0 -1
- package/dist/query/testing.js +0 -48
- package/dist/query/testing.js.map +0 -1
- package/dist/router/AppErrorBoundary.vue.d.ts +0 -26
- package/dist/router/AppNavLink.vue.d.ts +0 -40
- package/dist/router/CreateAppRouter.d.ts +0 -65
- package/dist/router/DocumentMeta.d.ts +0 -9
- package/dist/router/Guards.d.ts +0 -29
- package/dist/router/LazyRoute.d.ts +0 -16
- package/dist/router/NavigationProgress.vue.d.ts +0 -19
- package/dist/router/NotFound.vue.d.ts +0 -10
- package/dist/router/RouteAnnouncer.vue.d.ts +0 -10
- package/dist/router/RouteConfig.d.ts +0 -82
- package/dist/router/RouteHandles.d.ts +0 -24
- package/dist/router/RoutePersistence.d.ts +0 -21
- package/dist/router/UseBreadcrumbs.d.ts +0 -17
- package/dist/router/UsePrefetch.d.ts +0 -19
- /package/dist/{forms-engine → formsEngine}/StandardSchema.d.ts +0 -0
- /package/dist/{forms-engine → formsEngine/adapters}/house/index.d.ts +0 -0
- /package/dist/{forms-engine → formsEngine/adapters}/tanstack/index.d.ts +0 -0
- /package/dist/foundation/{utils/TransitionExtensions → animation}/TransitionExtensions.d.ts +0 -0
- /package/dist/foundation/{hooks/useDebounceHandler/useDebounceHandler.d.ts → async/UseDebounceHandler.d.ts} +0 -0
- /package/dist/foundation/{sync → channels}/CreateSyncChannel.d.ts +0 -0
- /package/dist/foundation/{sync → channels}/MemorySyncHub.d.ts +0 -0
- /package/dist/foundation/{utils/Equality → collections}/Equality.d.ts +0 -0
- /package/dist/foundation/device/{DisplayMode.d.ts → enums/DisplayMode.d.ts} +0 -0
- /package/dist/foundation/device/{PointerType.d.ts → enums/PointerType.d.ts} +0 -0
- /package/dist/foundation/device/{UseOnlineStatus.d.ts → hooks/UseOnlineStatus.d.ts} +0 -0
- /package/dist/foundation/{hooks/useReducedMotion/useReducedMotion.d.ts → device/hooks/UseReducedMotion.d.ts} +0 -0
- /package/dist/foundation/{utils/composeEventHandlers/composeEventHandlers.d.ts → dom/ComposeEventHandlers.d.ts} +0 -0
- /package/dist/foundation/{utils/dataAttr/dataAttr.d.ts → dom/DataAttr.d.ts} +0 -0
- /package/dist/foundation/{utils/PressExtensions → dom}/PressExtensions.d.ts +0 -0
- /package/dist/foundation/{utils/ElementTag → dom/enums}/ElementTag.d.ts +0 -0
- /package/dist/foundation/{utils/HtmlExtensions/HtmlExtensions.d.ts → dom/enums/HtmlValues.d.ts} +0 -0
- /package/dist/foundation/{utils/KeyboardExtensions/KeyboardExtensions.d.ts → dom/enums/Key.d.ts} +0 -0
- /package/dist/foundation/{hooks/useEventListener/useEventListener.d.ts → dom/hooks/UseEventListener.d.ts} +0 -0
- /package/dist/foundation/{hooks/useFocusTrap/useFocusTrap.d.ts → dom/hooks/UseFocusTrap.d.ts} +0 -0
- /package/dist/foundation/{hooks/useOutsideClick/useOutsideClick.d.ts → dom/hooks/UseOutsideClick.d.ts} +0 -0
- /package/dist/foundation/{hooks/useScrollLock/useScrollLock.d.ts → dom/hooks/UseScrollLock.d.ts} +0 -0
- /package/dist/foundation/{format → formatters}/Bytes.d.ts +0 -0
- /package/dist/foundation/{format → formatters}/Count.d.ts +0 -0
- /package/dist/foundation/{format → formatters}/Duration.d.ts +0 -0
- /package/dist/foundation/{format → formatters}/index.d.ts +0 -0
- /package/dist/foundation/geolocation/{Coordinates.d.ts → models/Coordinates.d.ts} +0 -0
- /package/dist/foundation/gestures/{GestureAxis.d.ts → enums/GestureAxis.d.ts} +0 -0
- /package/dist/foundation/gestures/{SwipeDirection.d.ts → enums/SwipeDirection.d.ts} +0 -0
- /package/dist/foundation/{undo → history}/SnapshotHistory.d.ts +0 -0
- /package/dist/foundation/{undo → history}/UndoHistory.d.ts +0 -0
- /package/dist/foundation/http/{ApiResponse.d.ts → models/ApiResponse.d.ts} +0 -0
- /package/dist/foundation/http/{DateBrands.d.ts → models/DateBrands.d.ts} +0 -0
- /package/dist/foundation/http/{ProblemDetails.d.ts → models/ProblemDetails.d.ts} +0 -0
- /package/dist/foundation/{utils/Compare → i18n}/Compare.d.ts +0 -0
- /package/dist/foundation/{hooks/useId/useId.d.ts → identifiers/UseId.d.ts} +0 -0
- /package/dist/foundation/{hooks/useResizeObserver/useResizeObserver.d.ts → observers/hooks/UseResizeObserver.d.ts} +0 -0
- /package/dist/foundation/observers/{UseVisibility.d.ts → hooks/UseVisibility.d.ts} +0 -0
- /package/dist/foundation/{utils/OptionalExtensions → optionals}/OptionalExtensions.d.ts +0 -0
- /package/dist/foundation/resilience/{BackoffStrategy.d.ts → enums/BackoffStrategy.d.ts} +0 -0
- /package/dist/foundation/resilience/{JitterStrategy.d.ts → enums/JitterStrategy.d.ts} +0 -0
- /package/dist/foundation/selection/{Field.d.ts → models/Field.d.ts} +0 -0
- /package/dist/foundation/{hooks/useEscape/useEscape.d.ts → shortcuts/hooks/UseEscape.d.ts} +0 -0
- /package/dist/foundation/{hooks/useDisclosure/useDisclosure.d.ts → state/hooks/UseDisclosure.d.ts} +0 -0
- /package/dist/foundation/storage/{zustand → adapters/zustand}/index.js +0 -0
- /package/dist/foundation/{utils/cn/cn.d.ts → styles/Cn.d.ts} +0 -0
- /package/dist/foundation/{utils/tv/tv.d.ts → styles/Tv.d.ts} +0 -0
- /package/dist/foundation/{utils/Align → styles/enums}/Align.d.ts +0 -0
- /package/dist/foundation/{utils/CornerPosition → styles/enums}/CornerPosition.d.ts +0 -0
- /package/dist/foundation/{utils/Orientation → styles/enums}/Orientation.d.ts +0 -0
- /package/dist/foundation/{utils/OverlayPosition → styles/enums}/OverlayPosition.d.ts +0 -0
- /package/dist/foundation/{utils/ProgressTone → styles/enums}/ProgressTone.d.ts +0 -0
- /package/dist/foundation/{utils/Severity → styles/enums}/Severity.d.ts +0 -0
- /package/dist/foundation/{utils/Side → styles/enums}/Side.d.ts +0 -0
- /package/dist/foundation/{utils/StatusTone → styles/enums}/StatusTone.d.ts +0 -0
- /package/dist/foundation/{utils/StyleTokens → styles/enums}/StyleTokens.d.ts +0 -0
- /package/dist/foundation/themes/{css.d.ts → Css.d.ts} +0 -0
- /package/dist/foundation/themes/{generate.d.ts → Generate.d.ts} +0 -0
- /package/dist/foundation/{validation → validators}/Formats.d.ts +0 -0
- /package/dist/foundation/{validation → validators}/Primitives.d.ts +0 -0
- /package/dist/foundation/{validation → validators}/StandardSchema.d.ts +0 -0
- /package/dist/presentation/{display → forms}/nodeEditor/index.d.ts +0 -0
- /package/dist/presentation/{forms → layout}/inputGroup/index.d.ts +0 -0
- /package/dist/presentation/{display → overlays}/tooltip/index.d.ts +0 -0
- /package/dist/query/{QueryPlugin.d.ts → adapters/tanstack/QueryPlugin.d.ts} +0 -0
- /package/dist/router/{DocumentTitle.d.ts → adapters/vueRouter/DocumentTitle.d.ts} +0 -0
- /package/dist/router/{PageViewTracker.d.ts → adapters/vueRouter/PageViewTracker.d.ts} +0 -0
- /package/dist/router/{UseNavigationBlocker.d.ts → adapters/vueRouter/hooks/UseNavigationBlocker.d.ts} +0 -0
- /package/dist/router/{UseRouteNavigating.d.ts → adapters/vueRouter/hooks/UseRouteNavigating.d.ts} +0 -0
- /package/dist/router/{UseTypedSearchParams.d.ts → adapters/vueRouter/hooks/UseTypedSearchParams.d.ts} +0 -0
- /package/dist/router/{UseNavigationProgress.d.ts → hooks/UseNavigationProgress.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/foundation/speech/SpeechSupport.ts","../../../src/foundation/speech/SpeechResult.ts","../../../src/foundation/speech/SpeechControls.ts","../../../src/foundation/speech/Speak.ts","../../../src/foundation/speech/ListVoices.ts","../../../src/foundation/speech/UseSpeechSynthesis.ts","../../../src/foundation/speech/SpeechRecognitionResult.ts","../../../src/foundation/speech/CreateSpeechRecognizer.ts","../../../src/foundation/speech/UseSpeechRecognition.ts"],"sourcesContent":["// Feature detection for BOTH halves of the speech vector, kept in one file because the two answers are\n// independent and a consumer that assumes otherwise ships a broken button. Firefox synthesizes speech perfectly\n// and recognizes none; a page in a sandboxed iframe can have neither. `getSpeechSupport()` therefore reports two\n// booleans, never one.\n//\n// Every read goes through an `unknown` cast rather than the DOM lib's `declare var speechSynthesis: SpeechSynthesis`\n// — outside a browser that global is genuinely missing, so the typed view is a lie this module must not act on.\n// The same posture as `foundation/media`'s `isKnownInsecureContext`.\n//\n// SYNTHESIS NEEDS TWO GLOBALS, not one. `speechSynthesis` is the controller and `SpeechSynthesisUtterance` is the\n// value it speaks; a page with the first and not the second (a partial polyfill, a stripped webview) would pass a\n// naive `'speechSynthesis' in window` check and then throw on `new SpeechSynthesisUtterance(...)` inside a click\n// handler. `canSpeak()` requires both.\n//\n// RECOGNITION IS PREFIXED. Chrome and Safari expose `webkitSpeechRecognition`; the unprefixed name exists in\n// newer Chrome. Both are checked, unprefixed first. Firefox exposes neither and is not a bug to work around —\n// there is no polyfill short of shipping audio to a server yourself.\n\nimport type { SpeechRecognitionConstructor } from './SpeechRecognitionTypes';\n\n/** What this environment can do. Two independent answers — no browser guarantees both, and Firefox gives one. */\nexport interface SpeechSupport {\n /** Whether `speak` can reach a real `speechSynthesis` AND a real `SpeechSynthesisUtterance`. */\n readonly synthesis: boolean;\n\n /** Whether `createSpeechRecognizer` can reach a real (possibly `webkit`-prefixed) `SpeechRecognition`. */\n readonly recognition: boolean;\n}\n\n/** A `SpeechSynthesisUtterance`-shaped constructor, as read off the global scope. */\nexport type UtteranceConstructor = new (text?: string) => SpeechSynthesisUtterance;\n\n/**\n * Reads `speechSynthesis` when it exists and carries `member` as a callable.\n *\n * Members are asked for one at a time because they fail one at a time: a polyfill can implement `speak` and\n * `cancel` while omitting `pause` / `resume` (which several mobile engines genuinely do not honour). Guarded\n * end-to-end; returns `undefined` under SSR. Internal to the slice — used by the sibling modules, absent from the\n * barrel.\n *\n * @param member The method the caller is about to invoke, or `speak` when it only needs to read a flag.\n * @returns The `SpeechSynthesis` object, or `undefined` when it or `member` is unusable.\n */\nexport function speechSynthesisWith(\n member: 'speak' | 'cancel' | 'pause' | 'resume' | 'getVoices',\n): SpeechSynthesis | undefined {\n try {\n const candidate: unknown = (globalThis as { speechSynthesis?: unknown }).speechSynthesis;\n if (typeof candidate !== 'object' || candidate === null) return undefined;\n\n const api = candidate as SpeechSynthesis;\n if (typeof api[member] !== 'function') return undefined;\n return api;\n } catch {\n // A throwing global getter (a partial polyfill, a locked-down webview) reads as absent — the same posture as\n // `foundation/media`'s `mediaDevicesWith` and `foundation/errors`' guarded member reads.\n return undefined;\n }\n}\n\n/**\n * Reads the `SpeechSynthesisUtterance` constructor.\n *\n * Separate from {@link speechSynthesisWith} because it is a separate global that can be separately missing.\n * Internal to the slice; absent from the barrel.\n *\n * @returns The constructor, or `undefined` under SSR / on a partial implementation.\n */\nexport function utteranceConstructor(): UtteranceConstructor | undefined {\n try {\n const candidate: unknown = (globalThis as { SpeechSynthesisUtterance?: unknown }).SpeechSynthesisUtterance;\n return typeof candidate === 'function' ? (candidate as UtteranceConstructor) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Reads the `SpeechRecognition` constructor, unprefixed first, then `webkit`-prefixed.\n *\n * Unprefixed wins where both exist: it is the one newer Chrome maintains, and an engine shipping both aliases\n * them anyway. Internal to the slice; absent from the barrel.\n *\n * @returns The constructor, or `undefined` under SSR and in Firefox.\n */\nexport function speechRecognitionConstructor(): SpeechRecognitionConstructor | undefined {\n try {\n // Neither name exists in `lib.dom.d.ts`, so the cast goes through `unknown` — a direct assertion off\n // `typeof globalThis` would be comparing against properties TypeScript does not know exist.\n const scope = globalThis as unknown as {\n SpeechRecognition?: unknown;\n webkitSpeechRecognition?: unknown;\n };\n\n const candidate: unknown = scope.SpeechRecognition ?? scope.webkitSpeechRecognition;\n return typeof candidate === 'function' ? (candidate as SpeechRecognitionConstructor) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Whether this environment can speak text aloud.\n *\n * Never throws. `false` under SSR, and `false` on a page carrying only one of the two required globals.\n *\n * @returns `true` when `speak` will reach a real engine.\n */\nexport function canSpeak(): boolean {\n return speechSynthesisWith('speak') !== undefined && utteranceConstructor() !== undefined;\n}\n\n/**\n * Whether this environment can transcribe speech.\n *\n * A capability answer, NOT a permission answer: Chrome exposes the constructor to every page and only refuses at\n * `start()` — with `not-allowed` for a blocked microphone, or `service-not-allowed` on an insecure origin. Treat\n * `true` as \"the button is worth rendering\", never as \"this will work\".\n *\n * Never throws. `false` under SSR and in Firefox, which does not implement recognition at all.\n *\n * @returns `true` when a recognizer can be constructed.\n */\nexport function canRecognizeSpeech(): boolean {\n return speechRecognitionConstructor() !== undefined;\n}\n\n/**\n * Reports both capabilities at once — the shape a consumer branches on when it renders a speak button, a dictate\n * button, or both.\n *\n * Never throws. Both `false` under SSR.\n *\n * @returns The two independent answers.\n */\nexport function getSpeechSupport(): SpeechSupport {\n return { synthesis: canSpeak(), recognition: canRecognizeSpeech() };\n}\n","// The result vocabulary of the synthesis half, and the error-code table that produces it.\n//\n// The table's whole job is separating \"the app stopped this\" from \"the engine failed\". `speechSynthesis.cancel()`\n// reaches the utterance as an `error` event carrying `canceled` or `interrupted` — the same event shape a genuine\n// synthesis failure arrives in — so a consumer that reads every `error` as a failure raises a toast every time a\n// component unmounts mid-sentence. `cancelled` is therefore a status of its own, and never carries an `Error`.\n//\n// (`canceled`, one `l`, is the platform's spelling. The status this slice exposes is `cancelled` — matching the\n// repo's own English, and `foundation/share`'s `dismissed`, which draws the same line for the same reason.)\n//\n// Codes deliberately landing on `failed`, all carrying the real `Error`:\n// - `audio-busy` / `audio-hardware` — the output device is unavailable. Retryable, but not by us.\n// - `synthesis-unavailable` / `synthesis-failed` — the engine gave up on text it accepted.\n// - `language-unavailable` / `voice-unavailable` — the requested `lang` / `voice` has no engine behind it. A\n// consumer bug worth surfacing: silently falling back to the default voice hides a wrong language tag.\n// - `text-too-long` / `invalid-argument` / `not-allowed` — programmer errors, and `not-allowed` specifically\n// means synthesis was refused without a user gesture. All three deserve the error, not a soothing status.\n\n/**\n * The outcome of a {@link speak} attempt. Four arms because an utterance has four meaningfully different endings.\n *\n * - `spoken` — the engine reached the end of the text. It does NOT mean anyone heard it: the device may be muted.\n * - `cancelled` — something called `cancelSpeech` (or the handle's `cancel`) before it finished. A decision, not\n * an error, and never reported as one.\n * - `unsupported` — no `speechSynthesis` / `SpeechSynthesisUtterance` here: SSR, or a stripped webview.\n * - `failed` — anything else, carrying the normalized `Error`.\n */\nexport type SpeakResult =\n | { readonly status: 'spoken' }\n | { readonly status: 'cancelled' }\n | { readonly status: 'unsupported' }\n | { readonly status: 'failed'; readonly error: Error };\n\n/** The `status` discriminant of a {@link SpeakResult} — for a consumer's own switch or status→copy map. */\nexport type SpeakStatus = SpeakResult['status'];\n\n/** Codes that mean the app (or the user) stopped the utterance, rather than the engine failing to speak it. */\nconst CancellationCodes: ReadonlySet<string> = new Set(['canceled', 'cancelled', 'interrupted']);\n\n/**\n * Reads a caught / delivered value's `error` code as a string. Guarded: a throwing getter or a `Proxy` trap reads\n * as absent rather than escalating inside the handler that is already dealing with a failure.\n */\nfunction errorCodeOf(event: unknown): string | undefined {\n if (event === null || (typeof event !== 'object' && typeof event !== 'function')) return undefined;\n\n try {\n const code: unknown = (event as Record<string, unknown>)['error'];\n return typeof code === 'string' ? code : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Classifies a `SpeechSynthesisUtterance` `error` event into its {@link SpeakResult}.\n *\n * Exported for the sibling `Speak` module and its tests; absent from the barrel, where `speak` is the surface a\n * consumer wants. Never throws — an unrecognized or unreadable code becomes `failed` with an `Error` naming what\n * arrived, so even a hostile event produces a usable result.\n *\n * @param event The `error` event the platform delivered.\n * @returns `cancelled` for a cancellation code, `failed` for everything else.\n */\nexport function toSpeakFailure(event: unknown): SpeakResult {\n const code = errorCodeOf(event);\n if (code !== undefined && CancellationCodes.has(code)) return { status: 'cancelled' };\n\n // The raw event rides along as `cause`, which `foundation/errors`' chain walkers already traverse safely\n // (cycle-guarded, depth-capped) — so a log keeps the platform's own object without this module trusting it.\n const error = new Error(`speech synthesis failed: ${code ?? 'unknown'}`, { cause: event });\n return { status: 'failed', error };\n}\n","// The queue-level controls of the synthesis half — and the CANCEL GENERATION that lets `speak` tell \"the engine\n// reached the end of the text\" from \"something stopped it\".\n//\n// WHY A COUNTER EXISTS AT ALL: the platform has no per-utterance cancel. `speechSynthesis.cancel()` clears the\n// WHOLE queue, and what an interrupted utterance receives afterwards is engine-dependent — Chrome fires `end`\n// (byte-for-byte indistinguishable from a natural finish), Firefox fires `error` with `canceled`. An\n// `end`-means-spoken reading therefore reports success for a sentence the user cut off. Every `speak` records the\n// counter before speaking and re-reads it on settle: a bump in between means a cancel reached it, whoever called\n// it — this component's unmount, another component's button, or the handle's own `cancel()`.\n//\n// The bump happens BEFORE the platform call, not after. An engine (or a test double) that dispatches `end`\n// synchronously from inside `cancel()` would otherwise run the handler while the counter still held its old\n// value, and the utterance would report `spoken` for speech that was just cut off. Ordering the bump first makes\n// the observation correct for both dispatch timings; the cost is that a `cancel()` which throws still counts as\n// an intent to cancel, which is the right way round.\n//\n// EVERY CONTROL IS GLOBAL, and that is the platform's design, not a shortcut here: there is one utterance queue\n// per document. `cancelSpeech()` from one component silences another component's speech. Components that must\n// not interfere cannot be fixed at this layer — they have to coordinate above it.\n//\n// Platform caveat worth knowing before shipping a pause button: on Chrome for Android, `pause()` behaves like\n// `cancel()` — the utterance does not resume. `pauseSpeech` reports only that the call was made.\n\nimport { speechSynthesisWith } from './SpeechSupport';\n\n/** Bumped by every cancel that reaches a real engine. Read by `speak` to classify its own ending. */\nlet cancels = 0;\n\n/**\n * The current cancel generation.\n *\n * Internal to the slice — `Speak` samples it before speaking and compares on settle. Absent from the barrel: the\n * number means nothing on its own, and a consumer comparing two samples is reimplementing `speak`.\n *\n * @returns A monotonically increasing count of cancels that reached the engine.\n */\nexport function cancelGeneration(): number {\n return cancels;\n}\n\n/**\n * Stops all speech and empties the utterance queue.\n *\n * GLOBAL: this silences every utterance in the document, not just the caller's. Any in-flight `speak` settles as\n * `cancelled` rather than `spoken` or `failed`.\n *\n * Never throws. A no-op under SSR.\n *\n * @returns `true` when a real engine was reached; `false` under SSR or when the call itself failed.\n */\nexport function cancelSpeech(): boolean {\n const synth = speechSynthesisWith('cancel');\n if (synth === undefined) return false;\n\n cancels += 1;\n try {\n synth.cancel();\n return true;\n } catch {\n // A `cancel()` that throws leaves speech running, and the generation already bumped — so an utterance that\n // survives will report `cancelled`. That is the safe way to be wrong: a cancelled-looking result for speech\n // the app asked to stop, rather than a `spoken` for speech it did not hear the end of.\n return false;\n }\n}\n\n/**\n * Pauses the current utterance, leaving the queue intact.\n *\n * Never throws. A no-op under SSR, and on engines that expose no `pause` (some mobile webviews). See the module\n * header for Chrome-on-Android's pause-is-cancel behaviour.\n *\n * @returns `true` when the call reached a real engine.\n */\nexport function pauseSpeech(): boolean {\n const synth = speechSynthesisWith('pause');\n if (synth === undefined) return false;\n\n try {\n synth.pause();\n return true;\n } catch {\n // A partial implementation refusing the call is reported, never thrown — the caller is a click handler.\n return false;\n }\n}\n\n/**\n * Resumes speech paused by {@link pauseSpeech}.\n *\n * Never throws. A no-op under SSR.\n *\n * @returns `true` when the call reached a real engine.\n */\nexport function resumeSpeech(): boolean {\n const synth = speechSynthesisWith('resume');\n if (synth === undefined) return false;\n\n try {\n synth.resume();\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Whether the engine is speaking right now.\n *\n * Reads the platform's own flag rather than a locally tracked one, so it stays true for speech this module did\n * not start. Note it stays `true` while PAUSED — that is the spec's definition, not a bug; pair it with\n * {@link isSpeechPaused}.\n *\n * Never throws. `false` under SSR.\n *\n * @returns The engine's `speaking` flag.\n */\nexport function isSpeaking(): boolean {\n const synth = speechSynthesisWith('speak');\n if (synth === undefined) return false;\n\n try {\n return synth.speaking === true;\n } catch {\n return false;\n }\n}\n\n/**\n * Whether the engine is in a paused state.\n *\n * Never throws. `false` under SSR.\n *\n * @returns The engine's `paused` flag.\n */\nexport function isSpeechPaused(): boolean {\n const synth = speechSynthesisWith('speak');\n if (synth === undefined) return false;\n\n try {\n return synth.paused === true;\n } catch {\n return false;\n }\n}\n","// One call, four outcomes, no throw — the speaking half of the vector.\n//\n// DEFINING CONTRACT: NOTHING HERE THROWS. `speak` is called straight from a click handler, where a rejection is\n// an unhandled error in the consumer's app and the user hears nothing and sees nothing. Every path — missing API,\n// a cancel, an engine failure, a hostile option object — settles to a `SpeakResult` the caller switches on.\n//\n// THE RETURN IS BOTH A RESULT AND A HANDLE. `await speak(text)` gives the `SpeakResult`; keeping the return value\n// gives `cancel` / `pause` / `resume` for speech that is still running. One object does both because the two are\n// wanted at different moments by the same caller, and a separate `speakWithHandle` would duplicate the module.\n// The handle is a `PromiseLike`, not a `Promise` subclass — awaiting is all a consumer needs, and `.spoken` is\n// there for anyone who wants the real promise.\n//\n// The handle's controls are HONESTLY GLOBAL: the platform has no per-utterance cancel, so `handle.cancel()` is\n// `cancelSpeech()` and clears the whole queue. Naming it on the handle is a convenience, not a narrowing.\n//\n// TWO ENGINE BUGS THIS MODULE ABSORBS:\n// - Utterance garbage collection. Chrome and WebKit have collected a `SpeechSynthesisUtterance` whose only\n// reference was the engine's own queue, and the utterance then falls silent with NO `end` event — a promise\n// that never settles. A module-level `Set` holds every in-flight utterance until it settles, which is the\n// known workaround and costs one reference per active utterance.\n// - Out-of-range `rate` / `pitch` / `volume`. The spec has the setter throw; engines disagree on whether they\n// throw or clamp. Values are clamped here BEFORE assignment, and a non-finite value is dropped rather than\n// clamped — `NaN` means the caller computed something wrong, and the engine default is a better answer than\n// an arbitrary pick from either end of the range.\n//\n// NOT worked around: Chrome stops synthesis after roughly 15 seconds of continuous speech. The known fix is a\n// `pause()`/`resume()` heartbeat on a timer, which interferes with the global queue every consumer shares. Long\n// text should be split into sentence-sized utterances by the caller instead.\n\nimport { toError } from '../errors';\n\nimport { cancelGeneration, cancelSpeech, pauseSpeech, resumeSpeech } from './SpeechControls';\nimport { speechSynthesisWith, utteranceConstructor } from './SpeechSupport';\nimport { toSpeakFailure, type SpeakResult } from './SpeechResult';\n\n/** Tunes one utterance. Every field is optional; an omitted one leaves the engine's own default in place. */\nexport interface SpeakOptions {\n /** The voice to speak with — an entry from `listVoices()`. Omitted means the engine's default for `lang`. */\n readonly voice?: SpeechSynthesisVoice;\n\n /** BCP-47 language tag (`en-US`, `de`). Same vocabulary as `foundation/i18n`'s locale, which `useSpeechSynthesis` defaults it to. */\n readonly lang?: string;\n\n /** Speed, `0.1`–`10`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly rate?: number;\n\n /** Pitch, `0`–`2`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly pitch?: number;\n\n /** Volume, `0`–`1`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly volume?: number;\n}\n\n/**\n * The return of {@link speak}: awaitable for the outcome, and callable for control while it runs.\n *\n * All three controls are GLOBAL — the platform exposes no per-utterance cancel or pause, so they act on the\n * document's whole utterance queue.\n */\nexport interface SpeechHandle extends PromiseLike<SpeakResult> {\n /** The underlying promise, for a caller that wants to store or pass it. Never rejects. */\n readonly spoken: Promise<SpeakResult>;\n\n /** Stops this utterance — and every other queued one. Settles the handle as `cancelled`. */\n readonly cancel: () => void;\n\n /** Pauses the engine. See `SpeechControls` for Chrome-on-Android's pause-is-cancel behaviour. */\n readonly pause: () => void;\n\n /** Resumes a paused engine. */\n readonly resume: () => void;\n}\n\n/**\n * Holds a reference to every utterance the engine is still working on, defeating the GC bug described in the\n * module header. Cleared on settle, so a page that speaks all day does not accumulate.\n */\nconst inFlight = new Set<SpeechSynthesisUtterance>();\n\n/** Clamps to a spec range, dropping non-finite values so the engine keeps its own default. */\nfunction clamp(value: number | undefined, min: number, max: number): number | undefined {\n if (value === undefined || !Number.isFinite(value)) return undefined;\n return Math.min(max, Math.max(min, value));\n}\n\n/** Applies `options` to `utterance`, guarded — an engine may refuse a setter, and a refusal must not throw. */\nfunction configure(utterance: SpeechSynthesisUtterance, options: SpeakOptions | undefined): void {\n if (options === undefined) return;\n\n try {\n if (options.voice !== undefined) utterance.voice = options.voice;\n if (options.lang !== undefined) utterance.lang = options.lang;\n\n const rate = clamp(options.rate, 0.1, 10);\n if (rate !== undefined) utterance.rate = rate;\n\n const pitch = clamp(options.pitch, 0, 2);\n if (pitch !== undefined) utterance.pitch = pitch;\n\n const volume = clamp(options.volume, 0, 1);\n if (volume !== undefined) utterance.volume = volume;\n } catch {\n // A setter that refused its value leaves the engine default in place, which is speakable. Losing the tuning\n // is strictly better than losing the utterance.\n }\n}\n\n/** Wraps a promise and a set of controls into the awaitable handle. */\nfunction toHandle(spoken: Promise<SpeakResult>, controls: Omit<SpeechHandle, 'spoken' | 'then'>): SpeechHandle {\n return {\n spoken,\n cancel: controls.cancel,\n pause: controls.pause,\n resume: controls.resume,\n then: <TResult1 = SpeakResult, TResult2 = never>(\n onFulfilled?: ((value: SpeakResult) => TResult1 | PromiseLike<TResult1>) | null,\n onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> => spoken.then(onFulfilled, onRejected),\n };\n}\n\n/** The controls of a handle for speech that never started — every one a no-op. */\nfunction inertControls(): Omit<SpeechHandle, 'spoken' | 'then'> {\n const noop = (): void => {\n // Nothing is speaking, so there is nothing to cancel, pause, or resume.\n };\n return { cancel: noop, pause: noop, resume: noop };\n}\n\n/**\n * Speaks `text` aloud, settling when the utterance ends.\n *\n * ```ts\n * const result = await speak('Order confirmed', { lang: 'en-GB', rate: 1.1 });\n * if (result.status === 'unsupported') showTextInstead();\n *\n * const handle = speak(longArticle);\n * stopButton.onclick = () => handle.cancel(); // settles as `cancelled`\n * ```\n *\n * Call it from a user gesture where possible: some engines refuse synthesis without one (arriving as `failed`\n * with a `not-allowed` code, since the API was present).\n *\n * Never throws, never rejects.\n *\n * @param text The text to speak. Empty text is handed to the engine unchanged — engines differ on whether they\n * fire `end` for it, which is exactly the kind of thing a caller should not have to guess about mid-sentence.\n * @param options Voice, language, and prosody. Out-of-range prosody is clamped; see {@link SpeakOptions}.\n * @returns The awaitable handle — `spoken` / `cancelled` / `unsupported` / `failed`, plus the live controls.\n */\nexport function speak(text: string, options?: SpeakOptions): SpeechHandle {\n const synth = speechSynthesisWith('speak');\n const Utterance = utteranceConstructor();\n\n // Both globals or nothing: an engine with no `SpeechSynthesisUtterance` cannot be given anything to say.\n if (synth === undefined || Utterance === undefined) {\n return toHandle(Promise.resolve({ status: 'unsupported' }), inertControls());\n }\n\n let settle!: (result: SpeakResult) => void;\n const spoken = new Promise<SpeakResult>((resolve) => {\n settle = resolve;\n });\n\n let settled = false;\n let utterance: SpeechSynthesisUtterance | undefined;\n\n /** Settles once and drops the GC-guard reference. Engines fire both `end` and `error` in some cancel paths. */\n const finish = (result: SpeakResult): void => {\n if (settled) return;\n settled = true;\n if (utterance !== undefined) inFlight.delete(utterance);\n settle(result);\n };\n\n try {\n utterance = new Utterance(text);\n } catch (cause) {\n // A constructor that refused the text (a hostile value, a stripped polyfill) is a failure of this call, not\n // an absence of the feature — `unsupported` would send the caller looking for the wrong fix.\n return toHandle(Promise.resolve({ status: 'failed', error: toError(cause) }), inertControls());\n }\n\n configure(utterance, options);\n\n // Sampled BEFORE `speak`, so any cancel from this point on — ours or another component's — is observable when\n // the ending arrives. See `SpeechControls` for why an `end` event alone cannot answer this.\n const generation = cancelGeneration();\n const wasCancelled = (): boolean => cancelGeneration() !== generation;\n\n utterance.onend = (): void => {\n finish(wasCancelled() ? { status: 'cancelled' } : { status: 'spoken' });\n };\n\n utterance.onerror = (event): void => {\n // A cancel we already know about wins over the code: engines disagree on which code a cancelled utterance\n // carries (`canceled`, `interrupted`, and Safari has shipped others), and the counter is not a guess.\n finish(wasCancelled() ? { status: 'cancelled' } : toSpeakFailure(event));\n };\n\n inFlight.add(utterance);\n\n try {\n synth.speak(utterance);\n } catch (cause) {\n finish({ status: 'failed', error: toError(cause) });\n }\n\n return toHandle(spoken, {\n cancel: (): void => {\n cancelSpeech();\n },\n pause: (): void => {\n pauseSpeech();\n },\n resume: (): void => {\n resumeSpeech();\n },\n });\n}\n","// THE most common bug in this API, and the reason this file exists: `speechSynthesis.getVoices()` returns an\n// EMPTY ARRAY on first call. The voice list is populated asynchronously — Chrome fetches remote voices, and every\n// engine loads them off the main thread — so a component that renders `getVoices()` on mount renders an empty\n// picker, forever, because nothing re-renders it when the list lands. The signal is a `voiceschanged` event, and\n// the fix a consumer eventually writes by hand is exactly `listVoices`.\n//\n// `listVoices` therefore returns a PROMISE that waits for the list, with three subtleties the naive version\n// misses, each of which turns the wait back into an empty array:\n// 1. `voiceschanged` can fire with the list STILL empty. Chrome fires it once during initialization before any\n// voice is registered. Resolving there hands back exactly the empty array this function exists to avoid, so\n// an empty payload is ignored and the wait continues.\n// 2. Some engines never fire the event at all — they simply populate the list a few hundred milliseconds in.\n// The timeout therefore RE-READS `getVoices()` rather than resolving with what it had at subscribe time, so a\n// silent late population still lands.\n// 3. The wait must be bounded. On a device with genuinely no voices the event never comes, and an unbounded\n// promise would hang the component that awaited it. `DefaultVoicesTimeoutMs` bounds it and resolves with\n// whatever exists — possibly nothing, which is a truthful answer a UI can render.\n//\n// The subscription supports BOTH wiring styles. Older WebKit exposes only the `onvoiceschanged` property and no\n// `addEventListener` for it; where the property is used, the previous handler is chained and restored on\n// unsubscribe rather than clobbered, so this slice cannot silently break a consumer's own listener.\n//\n// Language matching lives here too (`voicesForLang`), because \"the voices for this locale\" is what a caller\n// actually wants and BCP-47 tags do not compare with `===`: a `de` request must match a `de-DE` voice, and engines\n// report tags in mixed case and occasionally with an underscore (`en_US`).\n\nimport { speechSynthesisWith } from './SpeechSupport';\n\n/** How long {@link listVoices} waits for a populated list before answering with whatever exists. */\nexport const DefaultVoicesTimeoutMs = 1000;\n\n/** The empty answer, shared so an unsupported environment does not allocate a new array per call. */\nconst NoVoices: readonly SpeechSynthesisVoice[] = [];\n\n/** Tunes the wait for an asynchronously-populated voice list. */\nexport interface ListVoicesOptions {\n /** How long to wait for `voiceschanged` before resolving with whatever exists. Defaults to `1000`. */\n readonly timeoutMs?: number;\n}\n\n/** Reads the engine's current list, guarded — a partial polyfill can return a non-array or throw outright. */\nfunction readVoices(synth: SpeechSynthesis): readonly SpeechSynthesisVoice[] {\n try {\n const voices: unknown = synth.getVoices();\n return Array.isArray(voices) ? (voices as SpeechSynthesisVoice[]) : NoVoices;\n } catch {\n return NoVoices;\n }\n}\n\n/**\n * The synchronous snapshot of the installed voices.\n *\n * OFTEN EMPTY on first paint — that is the platform behaviour this module exists to absorb, not a failure. Use it\n * only where an empty answer is acceptable (a re-render triggered by something else); prefer {@link listVoices}\n * anywhere the answer drives UI.\n *\n * Never throws. `[]` under SSR.\n *\n * @returns The voices the engine has registered so far.\n */\nexport function listVoicesSync(): readonly SpeechSynthesisVoice[] {\n const synth = speechSynthesisWith('getVoices');\n return synth === undefined ? NoVoices : readVoices(synth);\n}\n\n/**\n * Subscribes to `voiceschanged`.\n *\n * Exported for the sibling composable, which re-reads the list when the engine revises it (Chrome does, after remote\n * voices load). Absent from the barrel — a consumer wants `useSpeechSynthesis`'s `voices`, not an event.\n *\n * Never throws. A no-op under SSR, where the returned unsubscribe is still safe to call.\n *\n * @param listener Called whenever the engine reports a change. Receives no arguments; re-read the list.\n * @returns The unsubscribe function.\n */\nexport function onVoicesChanged(listener: () => void): () => void {\n const noop = (): void => {\n // Nothing was subscribed, so there is nothing to tear down.\n };\n\n const synth = speechSynthesisWith('getVoices');\n if (synth === undefined) return noop;\n\n try {\n if (typeof synth.addEventListener === 'function') {\n synth.addEventListener('voiceschanged', listener);\n return (): void => {\n try {\n synth.removeEventListener('voiceschanged', listener);\n } catch {\n // A polyfill that accepted the listener but refuses to remove it leaves one live closure. Throwing from\n // an unsubscribe — usually an effect cleanup — would be far worse than that leak.\n }\n };\n }\n\n // Older WebKit: property-only wiring. Chain rather than clobber, so a consumer's own handler survives us.\n const previous = synth.onvoiceschanged;\n synth.onvoiceschanged = function (this: SpeechSynthesis, event: Event): void {\n if (typeof previous === 'function') previous.call(this, event);\n listener();\n };\n return (): void => {\n synth.onvoiceschanged = previous;\n };\n } catch {\n return noop;\n }\n}\n\n/**\n * Lists the installed voices, WAITING for the asynchronously-populated list rather than returning the empty array\n * a first `getVoices()` hands back.\n *\n * Resolves immediately when the list is already populated — the common case on every call after the first.\n *\n * ```ts\n * const voices = await listVoices();\n * const german = voices.filter((voice) => voice.lang.startsWith('de'));\n * ```\n *\n * Never throws, never rejects. Resolves to `[]` under SSR, and to `[]` on a device that genuinely has no voices\n * (after the timeout).\n *\n * @param options The wait bound. Defaults to {@link DefaultVoicesTimeoutMs}.\n * @returns The voices, or `[]`.\n */\nexport function listVoices(options?: ListVoicesOptions): Promise<readonly SpeechSynthesisVoice[]> {\n const synth = speechSynthesisWith('getVoices');\n if (synth === undefined) return Promise.resolve(NoVoices);\n\n const immediate = readVoices(synth);\n if (immediate.length > 0) return Promise.resolve(immediate);\n\n return new Promise<readonly SpeechSynthesisVoice[]>((resolve) => {\n let settled = false;\n\n // `settle` closes over `unsubscribe` and `timer`, both declared below. Safe because neither the subscription\n // nor the timer can call back synchronously — `onVoicesChanged` only registers, and a timeout is a task.\n const settle = (): void => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n unsubscribe();\n // Re-read rather than close over an earlier snapshot: on the timeout path this is what catches an engine\n // that populated the list without ever firing the event.\n resolve(readVoices(synth));\n };\n\n const unsubscribe = onVoicesChanged((): void => {\n // An event carrying an empty list is not an answer — keep waiting for a real one, or for the deadline.\n if (readVoices(synth).length === 0) return;\n settle();\n });\n\n const timer = setTimeout(settle, options?.timeoutMs ?? DefaultVoicesTimeoutMs);\n });\n}\n\n/** Normalizes a BCP-47 tag for comparison: trimmed, lower-cased, and `en_US`-style separators repaired. */\nfunction normalizeTag(tag: string): string {\n return tag.trim().toLowerCase().replace(/_/g, '-');\n}\n\n/** The primary language subtag — `de` from `de-AT`. The unit a fallback match is made on. */\nfunction primarySubtag(tag: string): string {\n return normalizeTag(tag).split('-')[0] ?? '';\n}\n\n/** Sorts the engine's default voice first within a tier; otherwise preserves the engine's own order. */\nfunction defaultFirst(voices: readonly SpeechSynthesisVoice[]): readonly SpeechSynthesisVoice[] {\n return [...voices].sort((left, right) => Number(right.default === true) - Number(left.default === true));\n}\n\n/**\n * Filters voices to a language tag, exact matches first, then same-primary-subtag ones.\n *\n * Pure — takes the list rather than fetching it, so it is trivially testable and reusable on a list a consumer\n * already holds. Tag comparison is case-insensitive and tolerates the `en_US` separator some engines report.\n *\n * The two tiers are kept in order rather than collapsed because they are not equivalent: `en-GB` text read by an\n * `en-US` voice is understandable, so it belongs in the list — but never ahead of an actual `en-GB` voice.\n *\n * @param voices The list to filter, typically from {@link listVoices}.\n * @param lang A BCP-47 tag (`de`, `en-GB`). Same vocabulary as `foundation/i18n`'s locale.\n * @returns The matching voices, best match first. Empty when nothing matches.\n */\nexport function voicesForLang(\n voices: readonly SpeechSynthesisVoice[],\n lang: string,\n): readonly SpeechSynthesisVoice[] {\n const wanted = normalizeTag(lang);\n if (wanted === '') return NoVoices;\n\n const wantedPrimary = primarySubtag(wanted);\n const exact: SpeechSynthesisVoice[] = [];\n const related: SpeechSynthesisVoice[] = [];\n\n for (const voice of voices) {\n const tag = typeof voice.lang === 'string' ? normalizeTag(voice.lang) : '';\n if (tag === '') continue;\n\n if (tag === wanted) exact.push(voice);\n else if (primarySubtag(tag) === wantedPrimary) related.push(voice);\n }\n\n return [...defaultFirst(exact), ...defaultFirst(related)];\n}\n\n/**\n * Picks the best voice for a language tag, waiting for the voice list the same way {@link listVoices} does.\n *\n * ```ts\n * const voice = await findVoice('de-DE');\n * await speak('Guten Tag', { voice, lang: 'de-DE' });\n * ```\n *\n * Never throws, never rejects.\n *\n * @param lang A BCP-47 tag.\n * @param options The wait bound, forwarded to {@link listVoices}.\n * @returns The best match, or `undefined` when the language has no voice installed (SSR included).\n */\nexport async function findVoice(lang: string, options?: ListVoicesOptions): Promise<SpeechSynthesisVoice | undefined> {\n const voices = await listVoices(options);\n return voicesForLang(voices, lang).at(0);\n}\n","// The Vue binding of the synthesis half — and the reason it exists is the TEARDOWN. Speech is not part of the\n// DOM: a component that starts an utterance and then navigates away keeps talking, out of any view, until the\n// text runs out. Nothing in Vue tears that down, because nothing in Vue knows about it. This composable cancels\n// its own in-flight speech in `onScopeDispose`, which is the single most valuable line in the file.\n//\n// \"ITS OWN\" is load-bearing. The platform's cancel is global — one utterance queue per document — so cancelling\n// unconditionally on teardown would silence a sibling component that is mid-sentence. The composable counts the\n// utterances IT started that have not settled and cancels only when that count is above zero. Two components\n// speaking at once still interfere (the platform gives no way not to), but a component that never spoke cannot\n// silence one that did.\n//\n// `supported` is a `shallowRef` seeded `false` and synced in `onMounted`, the idiom `foundation/hooks`'\n// `useMediaQuery` uses and the Vue counterpart of the original's `useSyncExternalStore`: `false` during SSR and\n// the real answer once mounted, as an update rather than a hydration mismatch. Nothing subscribes because a\n// browser cannot gain a speech engine mid-session — and `canSpeak` reads `window`, so it must not run at setup.\n//\n// `voices` is likewise filled after mount. `getVoices()` returns a FRESH ARRAY on every call, so re-reading it\n// as a derived value would produce a new identity each time; it lives in a `shallowRef`, seeded by `listVoices`\n// (which waits out the empty-first-call problem) and refreshed on `voiceschanged` — Chrome revises the list once\n// remote voices load.\n\nimport { onMounted, onScopeDispose, shallowRef, type ShallowRef } from 'vue';\n\nimport { useLocale } from '../i18n';\n\nimport { listVoices, listVoicesSync, onVoicesChanged } from './ListVoices';\nimport { speak as speakText, type SpeakOptions } from './Speak';\nimport { cancelSpeech, pauseSpeech, resumeSpeech } from './SpeechControls';\nimport type { SpeakResult } from './SpeechResult';\nimport { canSpeak } from './SpeechSupport';\n\n/** What {@link useSpeechSynthesis} returns. */\nexport interface SpeechSynthesisControls {\n /** Whether this browser can speak. `false` under SSR — render the button only once this is `true`. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** The installed voices. Starts empty and fills in asynchronously; see `ListVoices` for why that is normal. */\n readonly voices: Readonly<ShallowRef<readonly SpeechSynthesisVoice[]>>;\n\n /** Whether this composable has an utterance in flight. Not the engine's global flag — another component's speech is not this one's. */\n readonly speaking: Readonly<ShallowRef<boolean>>;\n\n /** Whether this composable paused the engine. */\n readonly paused: Readonly<ShallowRef<boolean>>;\n\n /** Speaks text, resolving to the outcome. Never throws. Defaults `lang` to the active locale. */\n readonly speak: (text: string, options?: SpeakOptions) => Promise<SpeakResult>;\n\n /** Stops all speech in the document — the platform has no narrower cancel. In-flight `speak` calls settle as `cancelled`. */\n readonly cancel: () => void;\n\n /** Pauses the engine. See `SpeechControls` for Chrome-on-Android's pause-is-cancel behaviour. */\n readonly pause: () => void;\n\n /** Resumes a paused engine. */\n readonly resume: () => void;\n}\n\n/**\n * The initial voice list. Empty rather than `listVoicesSync()`, for the same reason `supported` starts `false`:\n * a server renders nothing and a client would render a full picker, and the mismatch is a hydration error —\n * quite apart from `listVoicesSync` reaching for a global the server does not have. The mount hook fills it in\n * on the very next tick.\n */\nconst NoVoices: readonly SpeechSynthesisVoice[] = [];\n\n/**\n * Speaks text and owns the lifecycle — cancelling this composable's in-flight speech when the scope is disposed.\n *\n * ```vue\n * const speech = useSpeechSynthesis();\n * <button :disabled=\"!speech.supported.value\" @click=\"speech.speak(article)\">\n * {{ speech.speaking.value ? 'Stop' : 'Read aloud' }}\n * </button>\n * ```\n *\n * Inherits the slice's never-throws contract — a rejected promise is not one of the outcomes.\n *\n * @returns The state plus the four controls.\n */\nexport function useSpeechSynthesis(): SpeechSynthesisControls {\n const { locale } = useLocale();\n\n const voices = shallowRef<readonly SpeechSynthesisVoice[]>(NoVoices);\n const speaking = shallowRef(false);\n const paused = shallowRef(false);\n const supported = shallowRef(false);\n\n /** Guards state writes after teardown. */\n let disposed = false;\n\n /** How many utterances THIS composable started and has not seen settle. Drives both `speaking` and the cancel. */\n let inFlight = 0;\n\n const speak = async (text: string, options?: SpeakOptions): Promise<SpeakResult> => {\n inFlight += 1;\n if (!disposed) {\n speaking.value = true;\n paused.value = false;\n }\n\n // `lang` falls back to the app's active locale rather than the browser UI language: a localized app should\n // read its own text in the language the user is reading, not the one the OS was installed in.\n const result = await speakText(text, { ...options, lang: options?.lang ?? locale.value });\n\n inFlight = Math.max(0, inFlight - 1);\n // Only the LAST utterance clears the flag — a consumer queueing three sentences is speaking until all three\n // have settled.\n if (!disposed && inFlight === 0) {\n speaking.value = false;\n paused.value = false;\n }\n\n return result;\n };\n\n const cancel = (): void => {\n cancelSpeech();\n if (!disposed) paused.value = false;\n };\n\n const pause = (): void => {\n if (pauseSpeech() && !disposed) paused.value = true;\n };\n\n const resume = (): void => {\n if (resumeSpeech() && !disposed) paused.value = false;\n };\n\n let unsubscribe: (() => void) | undefined;\n\n onMounted(() => {\n supported.value = canSpeak();\n\n const apply = (next: readonly SpeechSynthesisVoice[]): void => {\n if (!disposed) voices.value = next;\n };\n\n // Waits out the empty-first-call problem; resolves immediately once the list is populated.\n void listVoices().then(apply);\n\n unsubscribe = onVoicesChanged((): void => {\n apply(listVoicesSync());\n });\n });\n\n onScopeDispose(() => {\n disposed = true;\n unsubscribe?.();\n unsubscribe = undefined;\n // The whole point of the composable. Only when THIS one has something in flight — the platform's cancel is\n // global, and a teardown is no reason to silence another component.\n if (inFlight > 0) cancelSpeech();\n });\n\n return { supported, voices, speaking, paused, speak, cancel, pause, resume };\n}\n","// The result vocabulary of the recognition half, and the error-code table that produces it. THIS TABLE IS THE\n// MODULE'S REAL VALUE: one `error` event carries at least six situations that a user resolves in six different\n// ways — a blocked microphone (browser settings), no microphone at all (plug one in), a dropped network (Chrome\n// streams audio to a Google server, so recognition dies offline while synthesis keeps working), silence (speak\n// louder), an abort the app itself asked for (say nothing), and a language the service will not transcribe (pick\n// another). A consumer that renders one \"speech recognition failed\" message for all six is unhelpable.\n//\n// The vocabulary deliberately REUSES `foundation/media`'s words where the situation is the same one: `denied` for\n// a refused permission, `unavailable` for a missing device, `unsupported` for a missing API, `failed` for the\n// rest. A microphone denial is a microphone denial whether it arrived through `getUserMedia` or through\n// recognition, and two spellings of it would force every consumer to write the mapping twice.\n//\n// Codes mapped away from their literal name, each for a reason:\n// - `service-not-allowed` → `denied`. Chrome sends this when the BROWSER or OS blocks the speech service rather\n// than the user — including on an insecure origin. Different cause, identical remedy path for the user, and\n// splitting it would give consumers a status with no distinct copy to write.\n// - `audio-capture` → `unavailable`. The literal meaning is \"no input device was usable\", which is\n// `foundation/media`'s `unavailable`, not a failure.\n// - `bad-grammar` → `failed`. It means the app supplied a grammar the engine rejected — a programmer error that\n// deserves the real `Error`, and this slice does not expose grammars at all.\n//\n// `aborted` is a first-class status rather than an error for the same reason `foundation/share` keeps\n// `dismissed`: it is what the app's own `abort()` produces (an unmount, a cancel button), and reporting the app's\n// own decision back to the user as a failure raises a toast for something nobody did wrong.\n\n/**\n * Why a recognition session ended badly. Eight arms, four of them sharing `foundation/media`'s vocabulary.\n *\n * - `denied` — the microphone is blocked, by the user or by the browser / OS. Not retryable without a settings\n * change, so re-prompting on a timer only annoys.\n * - `unavailable` — no usable input device. A desktop with no microphone, or an unplugged one.\n * - `no-speech` — the engine listened and heard nothing. Ordinary, and the most common ending of all: expect it\n * whenever a user presses the button and hesitates.\n * - `network` — the recognition service was unreachable. Chrome performs recognition SERVER-SIDE, so this is\n * routine offline, and no amount of retrying fixes it without a connection.\n * - `aborted` — the app stopped the session (`abort()`, an unmount). A decision, not a failure.\n * - `language-unsupported` — the service will not transcribe the requested `lang`.\n * - `unsupported` — no recognition API here: SSR, or Firefox, which does not implement it.\n * - `failed` — anything else, including an unreadable event.\n */\nexport type SpeechRecognitionStatus =\n | 'denied'\n | 'unavailable'\n | 'no-speech'\n | 'network'\n | 'aborted'\n | 'language-unsupported'\n | 'unsupported'\n | 'failed';\n\n/** A recognition failure: the classified status plus a normalized `Error` for logs and telemetry. */\nexport interface SpeechRecognitionFailure {\n /** What went wrong, in terms a UI can branch on. */\n readonly status: SpeechRecognitionStatus;\n\n /** The normalized error, always present — carrying the raw platform code in its message. */\n readonly error: Error;\n}\n\n/** One transcription update — interim or final — as handed to a recognizer's callbacks. */\nexport interface SpeechTranscript {\n /** The recognized text. */\n readonly transcript: string;\n\n /** `true` once the engine has committed to this phrase; `false` while it is still revising it. */\n readonly isFinal: boolean;\n\n /** The engine's `0`–`1` confidence. Chrome reports `0` for interim results — a hint, never a gate. */\n readonly confidence: number;\n}\n\n/** Platform error code → status. Everything absent from this table lands on `failed` with the real code kept. */\nconst StatusByCode: Readonly<Record<string, SpeechRecognitionStatus>> = {\n 'not-allowed': 'denied',\n 'service-not-allowed': 'denied',\n 'audio-capture': 'unavailable',\n 'no-speech': 'no-speech',\n network: 'network',\n aborted: 'aborted',\n 'language-not-supported': 'language-unsupported',\n};\n\n/** Reads a member as a string, guarded — a throwing getter reads as absent rather than as a second failure. */\nfunction stringMember(value: unknown, key: string): string | undefined {\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) return undefined;\n\n try {\n const member: unknown = (value as Record<string, unknown>)[key];\n return typeof member === 'string' ? member : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Classifies a recognition `error` event into its {@link SpeechRecognitionFailure}.\n *\n * Matched on the `error` string rather than an `instanceof`, for the same reason `foundation/media` matches\n * `DOMException` names: the event type is non-standard, differs between Chrome and Safari, and a test double\n * throws a plain `{ error: 'no-speech' }`.\n *\n * Never throws. An unreadable event becomes `failed` carrying an `Error` that says so.\n *\n * @param event The `error` event the engine delivered.\n * @returns The classified failure.\n */\nexport function toSpeechRecognitionFailure(event: unknown): SpeechRecognitionFailure {\n const code = stringMember(event, 'error');\n const detail = stringMember(event, 'message');\n const status = code === undefined ? 'failed' : (StatusByCode[code] ?? 'failed');\n\n const message =\n detail === undefined || detail === ''\n ? `speech recognition error: ${code ?? 'unknown'}`\n : `speech recognition error: ${code ?? 'unknown'} — ${detail}`;\n\n // The raw event rides as `cause`; `foundation/errors`' chain walkers traverse it safely (cycle-guarded).\n return { status, error: new Error(message, { cause: event }) };\n}\n","// The recognition instance, wrapped so a consumer never touches the prefixed global, never gets a raw event, and\n// never has a call throw at it.\n//\n// DEFINING CONTRACT: NOTHING HERE THROWS. That matters more here than anywhere else in the slice, because the\n// native `start()` throws `InvalidStateError` for the most ordinary mistake there is — pressing the mic button\n// twice. `start()` returns `already-started` for that, and every other call is guarded.\n//\n// STATE IS TRACKED IN THREE VALUES, not two. `starting` exists because `start()` returns long before the engine\n// is listening: the `start` event arrives after the browser has (possibly) prompted for the microphone and opened\n// the audio device. A two-state flag would report `idle` during that window and let a second `start()` through,\n// straight into the `InvalidStateError` this wrapper exists to prevent.\n//\n// EVERY CONSUMER CALLBACK IS INVOKED THROUGH `report`, which swallows a throw. These callbacks run inside the\n// browser's own event dispatch, where an exception becomes an unhandled error in the page with no relation to the\n// code that caused it — the same reason `foundation/share`'s `reportShareError` exists.\n//\n// NO AUTO-RESTART, deliberately. With `continuous: true` Chrome still ends the session after a stretch of\n// silence, and the obvious fix is restarting inside `onend`. That loop is a trap: it re-opens the microphone\n// indefinitely, keeps Chrome streaming audio to a remote service, and turns a `denied` into a hot loop of denials.\n// The session ends, `onEnd` fires, and the consumer decides.\n//\n// PRIVACY, stated plainly because a wrapper this convenient hides it: in Chrome, recognition is NOT on-device.\n// Audio is sent to a Google server and the transcript comes back. Anything spoken into this API leaves the\n// machine. Safari's implementation differs, and Firefox has none at all.\n\nimport { toError } from '../errors';\n\nimport { speechRecognitionConstructor } from './SpeechSupport';\nimport { toSpeechRecognitionFailure, type SpeechRecognitionFailure, type SpeechTranscript } from './SpeechRecognitionResult';\nimport type { SpeechRecognitionEventLike, SpeechRecognitionLike } from './SpeechRecognitionTypes';\n\n/**\n * The outcome of a {@link SpeechRecognizer.start} call.\n *\n * - `started` — the engine accepted the request. Listening begins later, at the `onStart` callback.\n * - `already-started` — a session is running or starting. The native call would have thrown here.\n * - `unsupported` — no recognition API (SSR, Firefox).\n * - `failed` — the engine refused, carrying the normalized `Error`.\n */\nexport type RecognizerStartResult =\n | { readonly status: 'started' }\n | { readonly status: 'already-started' }\n | { readonly status: 'unsupported' }\n | { readonly status: 'failed'; readonly error: Error };\n\n/** Configuration and callbacks for a recognizer. Applied once, at creation — see {@link createSpeechRecognizer}. */\nexport interface SpeechRecognizerOptions {\n /** BCP-47 tag to transcribe (`en-US`, `uz`). Same vocabulary as `foundation/i18n`'s locale. Defaults to the engine's. */\n readonly lang?: string;\n\n /** Keep listening past the first phrase. Defaults to `false`. Chrome still ends the session on long silence. */\n readonly continuous?: boolean;\n\n /** Emit revisable partial results while the user is still speaking. Defaults to `false`. */\n readonly interimResults?: boolean;\n\n /** How many alternatives each result carries. Defaults to the engine's (`1`). */\n readonly maxAlternatives?: number;\n\n /** Every update, interim and final — the one callback that sees the whole stream. A throw from it is swallowed. */\n readonly onResult?: (result: SpeechTranscript) => void;\n\n /** Committed phrases only. The callback most consumers want. A throw from it is swallowed. */\n readonly onFinal?: (transcript: string) => void;\n\n /** The current uncommitted text, joined across pending results. Requires `interimResults`. */\n readonly onInterim?: (transcript: string) => void;\n\n /** A classified failure. `no-speech` and `aborted` arrive here too — neither is worth a toast. */\n readonly onError?: (failure: SpeechRecognitionFailure) => void;\n\n /** The engine is now listening — later than the `start()` that asked for it, and after any permission prompt. */\n readonly onStart?: () => void;\n\n /** The session ended, for ANY reason: `stop`, `abort`, an error, or the engine's own silence timeout. */\n readonly onEnd?: () => void;\n}\n\n/** A wrapped recognition session. Every method is total — nothing throws, nothing needs a `try`. */\nexport interface SpeechRecognizer {\n /** Whether a real engine is behind this recognizer. `false` under SSR, in Firefox, and if construction failed. */\n readonly supported: boolean;\n\n /** Whether the engine is listening right now — `false` during the gap between `start()` and the `start` event. */\n readonly listening: boolean;\n\n /** Begins a session. Safe to call twice: the second call answers `already-started` instead of throwing. */\n readonly start: () => RecognizerStartResult;\n\n /** Ends the session, keeping results the engine has already recognized. A no-op when idle. */\n readonly stop: () => void;\n\n /** Ends the session immediately, discarding pending results. A no-op when idle. Use this on unmount. */\n readonly abort: () => void;\n}\n\n/** Hands a consumer's callback its argument, absorbing a throw so it cannot escape into the browser's dispatch. */\nfunction report<TArgument>(callback: ((argument: TArgument) => void) | undefined, argument: TArgument): void {\n if (callback === undefined) return;\n\n try {\n callback(argument);\n } catch {\n // The consumer's own handler failed. Nothing useful is left to do with that, and the session must continue.\n }\n}\n\n/** The recognizer handed back where no engine exists — every call answers, none of them reach anything. */\nfunction inertRecognizer(start: () => RecognizerStartResult): SpeechRecognizer {\n const noop = (): void => {\n // No session can exist, so there is nothing to stop or abort.\n };\n\n return { supported: false, listening: false, start, stop: noop, abort: noop };\n}\n\n/**\n * Creates a wrapped speech recognizer.\n *\n * ```ts\n * const recognizer = createSpeechRecognizer({\n * lang: 'en-US',\n * interimResults: true,\n * onFinal: (text) => append(text),\n * onError: (failure) => { if (failure.status === 'denied') showMicrophoneHelp(); },\n * });\n *\n * if (recognizer.supported) recognizer.start();\n * ```\n *\n * Options are applied ONCE, at creation: the platform reads `lang` / `continuous` / `interimResults` when a\n * session starts and offers no way to reconfigure a running one, so changing them means creating a new\n * recognizer. `useSpeechRecognition` does exactly that when its `lang` changes.\n *\n * Never throws. Always returns a usable object — check `supported`, or read the `start()` result.\n *\n * @param options Language, session shape, and callbacks.\n * @returns The recognizer. `supported: false` under SSR, in Firefox, and where the constructor exists but refuses.\n */\nexport function createSpeechRecognizer(options?: SpeechRecognizerOptions): SpeechRecognizer {\n const Recognition = speechRecognitionConstructor();\n if (Recognition === undefined) return inertRecognizer(() => ({ status: 'unsupported' }));\n\n let instance: SpeechRecognitionLike;\n try {\n instance = new Recognition();\n } catch (cause) {\n // The constructor exists but refuses to instantiate (a policy-blocked iframe is the realistic case).\n // `supported` reports false because nothing can be started — but `start()` hands back the REAL error rather\n // than a soothing `unsupported`, which would send a developer hunting for a browser that already has the API.\n const error = toError(cause);\n return inertRecognizer(() => ({ status: 'failed', error }));\n }\n\n try {\n if (options?.lang !== undefined) instance.lang = options.lang;\n instance.continuous = options?.continuous ?? false;\n instance.interimResults = options?.interimResults ?? false;\n if (options?.maxAlternatives !== undefined) instance.maxAlternatives = options.maxAlternatives;\n } catch {\n // A partial implementation refusing a setter keeps its own defaults, which still transcribe something.\n }\n\n let state: 'idle' | 'starting' | 'listening' = 'idle';\n\n /** Walks the results this event changed, emitting one update per result and one joined interim string. */\n const emitResults = (event: SpeechRecognitionEventLike): void => {\n try {\n const results = event.results;\n const length = typeof results?.length === 'number' ? results.length : 0;\n // `results` is CUMULATIVE across the session, so a walk from 0 would re-emit every phrase on every event.\n const first = Number.isInteger(event.resultIndex) ? Math.max(0, event.resultIndex) : 0;\n\n let interim = '';\n\n for (let index = first; index < length; index += 1) {\n const result = results[index];\n if (result === undefined) continue;\n\n // Alternative 0 is the engine's best guess; the rest exist only when `maxAlternatives` asked for them.\n const alternative = result[0];\n if (alternative === undefined) continue;\n\n const transcript = typeof alternative.transcript === 'string' ? alternative.transcript : '';\n const confidence = typeof alternative.confidence === 'number' ? alternative.confidence : 0;\n const isFinal = result.isFinal === true;\n\n report(options?.onResult, { transcript, isFinal, confidence });\n if (isFinal) report(options?.onFinal, transcript);\n else if (transcript !== '') interim = interim === '' ? transcript : `${interim} ${transcript}`;\n }\n\n if (interim !== '') report(options?.onInterim, interim);\n } catch {\n // A hostile or half-implemented event shape costs this one update, never the session.\n }\n };\n\n try {\n instance.onstart = (): void => {\n state = 'listening';\n report<void>(options?.onStart, undefined);\n };\n\n instance.onend = (): void => {\n state = 'idle';\n report<void>(options?.onEnd, undefined);\n };\n\n instance.onerror = (event): void => {\n // No state change here: every error is followed by `end`, which is the single place the session closes.\n report(options?.onError, toSpeechRecognitionFailure(event));\n };\n\n instance.onresult = emitResults;\n } catch {\n // An instance that refuses handler assignment can still be started; it just reports nothing.\n }\n\n return {\n supported: true,\n\n get listening(): boolean {\n return state === 'listening';\n },\n\n start: (): RecognizerStartResult => {\n // Pre-empts the native `InvalidStateError` — including during `starting`, the window a two-state flag misses.\n if (state !== 'idle') return { status: 'already-started' };\n\n try {\n instance.start();\n state = 'starting';\n return { status: 'started' };\n } catch (cause) {\n // The engine still considers a previous session open (an `abort` whose `end` has not arrived), or the\n // page has no microphone permission to hand over.\n state = 'idle';\n return { status: 'failed', error: toError(cause) };\n }\n },\n\n stop: (): void => {\n if (state === 'idle') return;\n\n try {\n instance.stop();\n } catch {\n // Stopping something the engine already stopped is not a failure worth surfacing.\n }\n },\n\n abort: (): void => {\n if (state === 'idle') return;\n state = 'idle';\n\n try {\n instance.abort();\n } catch {\n // Same as `stop`. The local state is cleared first, so a refusing engine cannot strand this wrapper.\n }\n },\n };\n}\n","// The Vue binding of the recognition half. Like its synthesis sibling, the line that earns the file is the\n// TEARDOWN: a live recognition session holds the microphone open and — in Chrome — keeps streaming audio to a\n// remote service. A component that navigates away mid-session leaves the recording indicator on, so\n// `onScopeDispose` calls `abort()`, not `stop()`: `stop()` asks for one last transcript nobody is left to\n// receive.\n//\n// THE RECOGNIZER IS CREATED LAZILY, ON FIRST `start()`, not during `setup` and not in `onMounted`. Constructing\n// during `setup` would reach for `SpeechRecognition` on the server, where the global does not exist;\n// constructing in `onMounted` would build one for every consumer who never presses the button, and would hold\n// the constructor open on a component that only renders a disabled control. A lazy getter avoids all three,\n// and `start()` can only ever be called from the client.\n//\n// CHANGING `lang` REBUILDS IT. The platform reads the language when a session starts and offers no way to\n// reconfigure a running recognizer, so a locale switch aborts the current instance and drops it; the next\n// `start()` builds one with the new tag. Aborting mid-session is the honest behaviour — the alternative is\n// transcribing the rest of the sentence in the previous language.\n//\n// TRANSCRIPT ACCUMULATES ACROSS THE SESSION; interim text does not. A final result is appended to `transcript`\n// and clears `interimTranscript`, so a consumer renders `transcript + interimTranscript` and gets the natural\n// \"committed text, then greyed-out live text\" without tracking anything itself. `reset()` clears both.\n\nimport {\n onMounted,\n onScopeDispose,\n shallowRef,\n toValue,\n watch,\n type MaybeRefOrGetter,\n type ShallowRef,\n} from 'vue';\n\nimport { useLocale } from '../i18n';\n\nimport {\n createSpeechRecognizer,\n type RecognizerStartResult,\n type SpeechRecognizer,\n type SpeechRecognizerOptions,\n} from './CreateSpeechRecognizer';\nimport type { SpeechRecognitionFailure } from './SpeechRecognitionResult';\nimport { canRecognizeSpeech } from './SpeechSupport';\n\n/** Options for {@link useSpeechRecognition} — the recognizer's own, with the composable layering state on top. */\nexport type UseSpeechRecognitionOptions = SpeechRecognizerOptions;\n\n/** What {@link useSpeechRecognition} returns. */\nexport interface SpeechRecognitionControls {\n /** Whether this browser can transcribe at all. `false` under SSR and in Firefox — gate the button on it. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** Whether the engine is listening. `false` in the gap between `start()` and the engine actually opening the microphone. */\n readonly listening: Readonly<ShallowRef<boolean>>;\n\n /** Every committed phrase of the session, space-joined. Survives an ended session; cleared by `reset`. */\n readonly transcript: Readonly<ShallowRef<string>>;\n\n /** The current uncommitted text. Requires `interimResults`; cleared when the phrase commits or the session ends. */\n readonly interimTranscript: Readonly<ShallowRef<string>>;\n\n /** The last classified failure, or `null`. Cleared when a new session starts. `no-speech` lands here too. */\n readonly error: Readonly<ShallowRef<SpeechRecognitionFailure | null>>;\n\n /** Begins a session. Safe to call twice — the second answers `already-started`. */\n readonly start: () => RecognizerStartResult;\n\n /** Ends the session, keeping what the engine already recognized. */\n readonly stop: () => void;\n\n /** Ends the session immediately, discarding pending results. */\n readonly abort: () => void;\n\n /** Clears `transcript`, `interimTranscript`, and `error`. Does not touch the session. */\n readonly reset: () => void;\n}\n\n/** Appends a committed phrase, space-joined, skipping the empty results an engine occasionally commits. */\nfunction appendPhrase(previous: string, phrase: string): string {\n const next = phrase.trim();\n if (next === '') return previous;\n return previous === '' ? next : `${previous} ${next}`;\n}\n\n/**\n * Transcribes speech into accumulating reactive state, aborting the session when the scope is disposed.\n *\n * ```vue\n * const dictation = useSpeechRecognition({ interimResults: true, continuous: true });\n * <button :disabled=\"!dictation.supported.value\" @click=\"dictation.start()\">\n * {{ dictation.listening.value ? 'Listening…' : 'Dictate' }}\n * </button>\n * <p>{{ dictation.transcript.value }} <em>{{ dictation.interimTranscript.value }}</em></p>\n * ```\n *\n * `lang` defaults to the active `LocaleProvider` locale, so a localized app transcribes the language its user is\n * reading. Nothing throws.\n *\n * @param options Session shape and pass-through callbacks — each is called in addition to the state updates.\n * A ref or getter is read at call time, so a reactive options source is followed.\n * @returns The transcript state plus the four controls.\n */\nexport function useSpeechRecognition(\n options?: MaybeRefOrGetter<UseSpeechRecognitionOptions | undefined>,\n): SpeechRecognitionControls {\n const { locale } = useLocale();\n\n const transcript = shallowRef('');\n const interimTranscript = shallowRef('');\n const listening = shallowRef(false);\n const error = shallowRef<SpeechRecognitionFailure | null>(null);\n\n // `false` until mount, exactly as the original's SSR snapshot: `canRecognizeSpeech` reads `window`, and a\n // server that claimed support would render a button the client immediately has to disable. Nothing subscribes\n // because a browser cannot gain a recognition engine mid-session.\n const supported = shallowRef(false);\n\n /** Guards state writes after teardown — the pass-through callbacks still fire, the reactive state does not. */\n let disposed = false;\n let recognizer: SpeechRecognizer | null = null;\n\n function getRecognizer(): SpeechRecognizer {\n if (recognizer !== null) return recognizer;\n\n const created = createSpeechRecognizer({\n lang: toValue(options)?.lang ?? locale.value,\n continuous: toValue(options)?.continuous,\n // Interim results default ON here, unlike the bare recognizer: a composable exposing `interimTranscript`\n // that is permanently empty is a worse default than one that costs a few extra updates.\n interimResults: toValue(options)?.interimResults ?? true,\n maxAlternatives: toValue(options)?.maxAlternatives,\n\n onStart: (): void => {\n if (!disposed) {\n listening.value = true;\n error.value = null;\n }\n toValue(options)?.onStart?.();\n },\n\n onEnd: (): void => {\n if (!disposed) {\n listening.value = false;\n // Uncommitted text belongs to a session that no longer exists; keeping it would render as live speech.\n interimTranscript.value = '';\n }\n toValue(options)?.onEnd?.();\n },\n\n onError: (failure): void => {\n if (!disposed) error.value = failure;\n toValue(options)?.onError?.(failure);\n },\n\n onResult: (result): void => {\n if (!disposed) {\n if (result.isFinal) {\n transcript.value = appendPhrase(transcript.value, result.transcript);\n interimTranscript.value = '';\n } else {\n interimTranscript.value = result.transcript;\n }\n }\n toValue(options)?.onResult?.(result);\n },\n\n onFinal: (text): void => {\n toValue(options)?.onFinal?.(text);\n },\n\n onInterim: (text): void => {\n toValue(options)?.onInterim?.(text);\n },\n });\n\n recognizer = created;\n return created;\n }\n\n const start = (): RecognizerStartResult => getRecognizer().start();\n\n // `stop` / `abort` read the field instead of the getter: nothing can be running if nothing was ever built, and\n // constructing a recognizer in order to stop it would open the very session being cancelled.\n const stop = (): void => {\n recognizer?.stop();\n };\n\n const abort = (): void => {\n recognizer?.abort();\n };\n\n const reset = (): void => {\n transcript.value = '';\n interimTranscript.value = '';\n error.value = null;\n };\n\n onMounted(() => {\n supported.value = canRecognizeSpeech();\n });\n\n // Config is applied at construction, so a change means a new instance. Aborting first is deliberate: a session\n // already running under the old language cannot be re-tagged mid-sentence. Non-immediate, so nothing is\n // aborted on the server — there is nothing to abort there anyway.\n watch(\n [\n () => toValue(options)?.lang ?? locale.value,\n () => toValue(options)?.continuous ?? false,\n () => toValue(options)?.interimResults ?? true,\n ],\n () => {\n recognizer?.abort();\n recognizer = null;\n },\n );\n\n onScopeDispose(() => {\n disposed = true;\n // `abort`, never `stop`: nothing is left to receive a final transcript, and the microphone must close now.\n recognizer?.abort();\n recognizer = null;\n });\n\n return { supported, listening, transcript, interimTranscript, error, start, stop, abort, reset };\n}\n"],"names":["NoVoices","inFlight","speak","speakText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/foundation/speech/SpeechSupport.ts","../../../src/foundation/speech/SpeechResult.ts","../../../src/foundation/speech/SpeechControls.ts","../../../src/foundation/speech/Speak.ts","../../../src/foundation/speech/ListVoices.ts","../../../src/foundation/speech/hooks/UseSpeechSynthesis.ts","../../../src/foundation/speech/SpeechRecognitionResult.ts","../../../src/foundation/speech/CreateSpeechRecognizer.ts","../../../src/foundation/speech/hooks/UseSpeechRecognition.ts","../../../src/foundation/speech/enums/SpeechFailureCode.ts","../../../src/foundation/speech/enums/RecognizerStartFailureCode.ts"],"sourcesContent":["import type { SpeechRecognitionConstructor } from './SpeechRecognitionTypes';\n\n/** What this environment can do. Two independent answers — no browser guarantees both, and Firefox gives one. */\nexport interface SpeechSupport {\n /** Whether `speak` can reach a real `speechSynthesis` AND a real `SpeechSynthesisUtterance`. */\n readonly synthesis: boolean;\n\n /** Whether `createSpeechRecognizer` can reach a real (possibly `webkit`-prefixed) `SpeechRecognition`. */\n readonly recognition: boolean;\n}\n\n/** A `SpeechSynthesisUtterance`-shaped constructor, as read off the global scope. */\nexport type UtteranceConstructor = new (text?: string) => SpeechSynthesisUtterance;\n\n/**\n * Reads `speechSynthesis` when it exists and carries `member` as a callable.\n *\n * Members are asked for one at a time because they fail one at a time: a polyfill can implement `speak` and\n * `cancel` while omitting `pause` / `resume` (which several mobile engines genuinely do not honour). Guarded\n * end-to-end; returns `undefined` under SSR. Internal to the slice — used by the sibling modules, absent from the\n * barrel.\n *\n * @param member The method the caller is about to invoke, or `speak` when it only needs to read a flag.\n * @returns The `SpeechSynthesis` object, or `undefined` when it or `member` is unusable.\n */\nexport function speechSynthesisWith(\n member: 'speak' | 'cancel' | 'pause' | 'resume' | 'getVoices',\n): SpeechSynthesis | undefined {\n try {\n const candidate: unknown = (globalThis as { speechSynthesis?: unknown }).speechSynthesis;\n if (typeof candidate !== 'object' || candidate === null) return undefined;\n\n const api = candidate as SpeechSynthesis;\n if (typeof api[member] !== 'function') return undefined;\n return api;\n } catch {\n // A throwing global getter (a partial polyfill, a locked-down webview) reads as absent — the same posture as\n // `foundation/media`'s `mediaDevicesWith` and `foundation/errors`' guarded member reads.\n return undefined;\n }\n}\n\n/**\n * Reads the `SpeechSynthesisUtterance` constructor.\n *\n * Separate from {@link speechSynthesisWith} because it is a separate global that can be separately missing.\n * Internal to the slice; absent from the barrel.\n *\n * @returns The constructor, or `undefined` under SSR / on a partial implementation.\n */\nexport function utteranceConstructor(): UtteranceConstructor | undefined {\n try {\n const candidate: unknown = (globalThis as { SpeechSynthesisUtterance?: unknown }).SpeechSynthesisUtterance;\n return typeof candidate === 'function' ? (candidate as UtteranceConstructor) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Reads the `SpeechRecognition` constructor, unprefixed first, then `webkit`-prefixed.\n *\n * Unprefixed wins where both exist: it is the one newer Chrome maintains, and an engine shipping both aliases\n * them anyway. Internal to the slice; absent from the barrel.\n *\n * @returns The constructor, or `undefined` under SSR and in Firefox.\n */\nexport function speechRecognitionConstructor(): SpeechRecognitionConstructor | undefined {\n try {\n // Neither name exists in `lib.dom.d.ts`, so the cast goes through `unknown` — a direct assertion off\n // `typeof globalThis` would be comparing against properties TypeScript does not know exist.\n const scope = globalThis as unknown as {\n SpeechRecognition?: unknown;\n webkitSpeechRecognition?: unknown;\n };\n\n const candidate: unknown = scope.SpeechRecognition ?? scope.webkitSpeechRecognition;\n return typeof candidate === 'function' ? (candidate as SpeechRecognitionConstructor) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Whether this environment can speak text aloud.\n *\n * Never throws. `false` under SSR, and `false` on a page carrying only one of the two required globals.\n *\n * @returns `true` when `speak` will reach a real engine.\n */\nexport function canSpeak(): boolean {\n return speechSynthesisWith('speak') !== undefined && utteranceConstructor() !== undefined;\n}\n\n/**\n * Whether this environment can transcribe speech.\n *\n * A capability answer, NOT a permission answer: Chrome exposes the constructor to every page and only refuses at\n * `start()` — with `not-allowed` for a blocked microphone, or `service-not-allowed` on an insecure origin. Treat\n * `true` as \"the button is worth rendering\", never as \"this will work\".\n *\n * Never throws. `false` under SSR and in Firefox, which does not implement recognition at all.\n *\n * @returns `true` when a recognizer can be constructed.\n */\nexport function canRecognizeSpeech(): boolean {\n return speechRecognitionConstructor() !== undefined;\n}\n\n/**\n * Reports both capabilities at once — the shape a consumer branches on when it renders a speak button, a dictate\n * button, or both.\n *\n * Never throws. Both `false` under SSR.\n *\n * @returns The two independent answers.\n */\nexport function getSpeechSupport(): SpeechSupport {\n return { synthesis: canSpeak(), recognition: canRecognizeSpeech() };\n}\n","import type { SpeechSpeakResult } from './models/SpeechSpeakResult';\nimport type { SpeechFailure } from './models/SpeechFailure';\n\nexport type { SpeechFailure } from './models/SpeechFailure';\nexport type { SpeechSpeakResult } from './models/SpeechSpeakResult';\nexport type SpeakStatus = 'spoken' | SpeechFailure['status'];\n\n/** Codes that mean the app (or the user) stopped the utterance, rather than the engine failing to speak it. */\nconst CancellationCodes: ReadonlySet<string> = new Set(['canceled', 'cancelled', 'interrupted']);\n\n/**\n * Reads a caught / delivered value's `error` code as a string. Guarded: a throwing getter or a `Proxy` trap reads\n * as absent rather than escalating inside the handler that is already dealing with a failure.\n */\nfunction errorCodeOf(event: unknown): string | undefined {\n if (event === null || (typeof event !== 'object' && typeof event !== 'function')) return undefined;\n\n try {\n const code: unknown = (event as Record<string, unknown>)['error'];\n return typeof code === 'string' ? code : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Classifies a `SpeechSynthesisUtterance` `error` event into its {@link SpeechSpeakResult}.\n *\n * Exported for the sibling `Speak` module and its tests; absent from the barrel, where `speak` is the surface a\n * consumer wants. Never throws — an unrecognized or unreadable code becomes `failed` with an `Error` naming what\n * arrived, so even a hostile event produces a usable result.\n *\n * @param event The `error` event the platform delivered.\n * @returns `cancelled` for a cancellation code, `failed` for everything else.\n */\nexport function toSpeakFailure(event: unknown): SpeechSpeakResult {\n const code = errorCodeOf(event);\n if (code !== undefined && CancellationCodes.has(code)) return { ok: false, failure: { status: 'cancelled' } };\n\n // The raw event rides along as `cause`, which `foundation/errors`' chain walkers already traverse safely\n // (cycle-guarded, depth-capped) — so a log keeps the platform's own object without this module trusting it.\n const error = new Error(`speech synthesis failed: ${code ?? 'unknown'}`, { cause: event });\n return { ok: false, failure: { status: 'failed', error } };\n}\n","import { speechSynthesisWith } from './SpeechSupport';\n\n/** Bumped by every cancel that reaches a real engine. Read by `speak` to classify its own ending. */\nlet cancels = 0;\nconst cancellationListeners = new Set<() => void>();\n\n/** Registers an internal settlement callback for queue-wide cancellation. */\nexport function onSpeechCancelled(listener: () => void): () => void {\n cancellationListeners.add(listener);\n return () => cancellationListeners.delete(listener);\n}\n\n/**\n * The current cancel generation.\n *\n * Internal to the slice — `Speak` samples it before speaking and compares on settle. Absent from the barrel: the\n * number means nothing on its own, and a consumer comparing two samples is reimplementing `speak`.\n *\n * @returns A monotonically increasing count of cancels that reached the engine.\n */\nexport function cancelGeneration(): number {\n return cancels;\n}\n\n/**\n * Stops all speech and empties the utterance queue.\n *\n * GLOBAL: this silences every utterance in the document, not just the caller's. Any in-flight `speak` settles as\n * `cancelled` rather than `spoken` or `failed`.\n *\n * Never throws. A no-op under SSR.\n *\n * @returns `true` when a real engine was reached; `false` under SSR or when the call itself failed.\n */\nexport function cancelSpeech(): boolean {\n const synth = speechSynthesisWith('cancel');\n if (synth === undefined) return false;\n\n cancels += 1;\n for (const listener of [...cancellationListeners]) listener();\n try {\n synth.cancel();\n return true;\n } catch {\n // A `cancel()` that throws leaves speech running, and the generation already bumped — so an utterance that\n // survives will report `cancelled`. That is the safe way to be wrong: a cancelled-looking result for speech\n // the app asked to stop, rather than a `spoken` for speech it did not hear the end of.\n return false;\n }\n}\n\n/**\n * Pauses the current utterance, leaving the queue intact.\n *\n * Never throws. A no-op under SSR, and on engines that expose no `pause` (some mobile webviews). See the module\n * header for Chrome-on-Android's pause-is-cancel behaviour.\n *\n * @returns `true` when the call reached a real engine.\n */\nexport function pauseSpeech(): boolean {\n const synth = speechSynthesisWith('pause');\n if (synth === undefined) return false;\n\n try {\n synth.pause();\n return true;\n } catch {\n // A partial implementation refusing the call is reported, never thrown — the caller is a click handler.\n return false;\n }\n}\n\n/**\n * Resumes speech paused by {@link pauseSpeech}.\n *\n * Never throws. A no-op under SSR.\n *\n * @returns `true` when the call reached a real engine.\n */\nexport function resumeSpeech(): boolean {\n const synth = speechSynthesisWith('resume');\n if (synth === undefined) return false;\n\n try {\n synth.resume();\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Whether the engine is speaking right now.\n *\n * Reads the platform's own flag rather than a locally tracked one, so it stays true for speech this module did\n * not start. Note it stays `true` while PAUSED — that is the spec's definition, not a bug; pair it with\n * {@link isSpeechPaused}.\n *\n * Never throws. `false` under SSR.\n *\n * @returns The engine's `speaking` flag.\n */\nexport function isSpeaking(): boolean {\n const synth = speechSynthesisWith('speak');\n if (synth === undefined) return false;\n\n try {\n return synth.speaking === true;\n } catch {\n return false;\n }\n}\n\n/**\n * Whether the engine is in a paused state.\n *\n * Never throws. `false` under SSR.\n *\n * @returns The engine's `paused` flag.\n */\nexport function isSpeechPaused(): boolean {\n const synth = speechSynthesisWith('speak');\n if (synth === undefined) return false;\n\n try {\n return synth.paused === true;\n } catch {\n return false;\n }\n}\n","import { toError } from '../errors';\n\nimport { cancelGeneration, cancelSpeech, onSpeechCancelled, pauseSpeech, resumeSpeech } from './SpeechControls';\nimport { speechSynthesisWith, utteranceConstructor } from './SpeechSupport';\nimport { toSpeakFailure, type SpeechSpeakResult } from './SpeechResult';\n\n/** Tunes one utterance. Every field is optional; an omitted one leaves the engine's own default in place. */\nexport interface SpeakOptions {\n /** The voice to speak with — an entry from `listVoices()`. Omitted means the engine's default for `lang`. */\n readonly voice?: SpeechSynthesisVoice;\n\n /** BCP-47 tag (`en-US`, `de`). Same vocabulary as `foundation/i18n`, which `useSpeechSynthesis` defaults it to. */\n readonly lang?: string;\n\n /** Speed, `0.1`–`10`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly rate?: number;\n\n /** Pitch, `0`–`2`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly pitch?: number;\n\n /** Volume, `0`–`1`, default `1`. Clamped to that range; a non-finite value is ignored. */\n readonly volume?: number;\n}\n\n/**\n * The return of {@link speak}: awaitable for the outcome, and callable for control while it runs.\n *\n * All three controls are GLOBAL — the platform exposes no per-utterance cancel or pause, so they act on the\n * document's whole utterance queue.\n */\nexport interface SpeechHandle extends PromiseLike<SpeechSpeakResult> {\n /** The underlying promise, for a caller that wants to store or pass it. Never rejects. */\n readonly spoken: Promise<SpeechSpeakResult>;\n\n /** Stops this utterance — and every other queued one. Settles the handle as `cancelled`. */\n readonly cancel: () => void;\n\n /** Pauses the engine. See `SpeechControls` for Chrome-on-Android's pause-is-cancel behaviour. */\n readonly pause: () => void;\n\n /** Resumes a paused engine. */\n readonly resume: () => void;\n}\n\n/**\n * Holds a reference to every utterance the engine is still working on, defeating the GC bug described in the\n * module header. Cleared on settle, so a page that speaks all day does not accumulate.\n */\nconst inFlight = new Set<SpeechSynthesisUtterance>();\n\n/** Clamps to a spec range, dropping non-finite values so the engine keeps its own default. */\nfunction clamp(value: number | undefined, min: number, max: number): number | undefined {\n if (value === undefined || !Number.isFinite(value)) return undefined;\n return Math.min(max, Math.max(min, value));\n}\n\n/** Applies `options` to `utterance`, guarded — an engine may refuse a setter, and a refusal must not throw. */\nfunction configure(utterance: SpeechSynthesisUtterance, options: SpeakOptions | undefined): void {\n if (options === undefined) return;\n\n try {\n if (options.voice !== undefined) utterance.voice = options.voice;\n if (options.lang !== undefined) utterance.lang = options.lang;\n\n const rate = clamp(options.rate, 0.1, 10);\n if (rate !== undefined) utterance.rate = rate;\n\n const pitch = clamp(options.pitch, 0, 2);\n if (pitch !== undefined) utterance.pitch = pitch;\n\n const volume = clamp(options.volume, 0, 1);\n if (volume !== undefined) utterance.volume = volume;\n } catch {\n // A setter that refused its value leaves the engine default in place, which is speakable. Losing the tuning\n // is strictly better than losing the utterance.\n }\n}\n\n/** Wraps a promise and a set of controls into the awaitable handle. */\nfunction toHandle(spoken: Promise<SpeechSpeakResult>, controls: Omit<SpeechHandle, 'spoken' | 'then'>): SpeechHandle {\n return {\n spoken,\n cancel: controls.cancel,\n pause: controls.pause,\n resume: controls.resume,\n then: <TResult1 = SpeechSpeakResult, TResult2 = never>(\n onFulfilled?: ((value: SpeechSpeakResult) => TResult1 | PromiseLike<TResult1>) | null,\n onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> => spoken.then(onFulfilled, onRejected),\n };\n}\n\n/** The controls of a handle for speech that never started — every one a no-op. */\nfunction inertControls(): Omit<SpeechHandle, 'spoken' | 'then'> {\n const noop = (): void => {\n // Nothing is speaking, so there is nothing to cancel, pause, or resume.\n };\n return { cancel: noop, pause: noop, resume: noop };\n}\n\n/**\n * Speaks `text` aloud, settling when the utterance ends.\n *\n * ```ts\n * const result = await speak('Order confirmed', { lang: 'en-GB', rate: 1.1 });\n * if (!result.ok && result.failure.status === 'unsupported') showTextInstead();\n *\n * const handle = speak(longArticle);\n * stopButton.onclick = () => handle.cancel(); // settles as `cancelled`\n * ```\n *\n * Call it from a user gesture where possible: some engines refuse synthesis without one (arriving as `failed`\n * with a `not-allowed` code, since the API was present).\n *\n * Never throws, never rejects.\n *\n * @param text The text to speak. Empty text completes immediately without waiting for a browser event.\n * @param options Voice, language, and prosody. Out-of-range prosody is clamped; see {@link SpeakOptions}.\n * @returns The awaitable handle — `spoken` / `cancelled` / `unsupported` / `failed`, plus the live controls.\n */\nexport function speak(text: string, options?: SpeakOptions): SpeechHandle {\n if (text.length === 0) return toHandle(Promise.resolve({ ok: true, value: undefined }), inertControls());\n const synth = speechSynthesisWith('speak');\n const Utterance = utteranceConstructor();\n\n // Both globals or nothing: an engine with no `SpeechSynthesisUtterance` cannot be given anything to say.\n if (synth === undefined || Utterance === undefined) {\n return toHandle(Promise.resolve({ ok: false, failure: { status: 'unsupported' } }), inertControls());\n }\n\n let settle!: (result: SpeechSpeakResult) => void;\n const spoken = new Promise<SpeechSpeakResult>((resolve) => {\n settle = resolve;\n });\n\n let settled = false;\n let utterance: SpeechSynthesisUtterance | undefined;\n\n /** Settles once and drops the GC-guard reference. Engines fire both `end` and `error` in some cancel paths. */\n const finish = (result: SpeechSpeakResult): void => {\n if (settled) return;\n settled = true;\n unsubscribeCancel?.();\n if (utterance !== undefined) inFlight.delete(utterance);\n settle(result);\n };\n\n try {\n utterance = new Utterance(text);\n } catch (cause) {\n // A constructor that refused the text (a hostile value, a stripped polyfill) is a failure of this call, not\n // an absence of the feature — `unsupported` would send the caller looking for the wrong fix.\n return toHandle(\n Promise.resolve({ ok: false, failure: { status: 'failed', error: toError(cause) } }),\n inertControls(),\n );\n }\n\n configure(utterance, options);\n\n // Sampled BEFORE `speak`, so any cancel from this point on — ours or another component's — is observable when\n // the ending arrives. See `SpeechControls` for why an `end` event alone cannot answer this.\n const generation = cancelGeneration();\n const wasCancelled = (): boolean => cancelGeneration() !== generation;\n const unsubscribeCancel = onSpeechCancelled(() => finish({ ok: false, failure: { status: 'cancelled' } }));\n\n utterance.onend = (): void => {\n finish(wasCancelled() ? { ok: false, failure: { status: 'cancelled' } } : { ok: true, value: undefined });\n };\n\n utterance.onerror = (event): void => {\n // A cancel we already know about wins over the code: engines disagree on which code a cancelled utterance\n // carries (`canceled`, `interrupted`, and Safari has shipped others), and the counter is not a guess.\n finish(wasCancelled() ? { ok: false, failure: { status: 'cancelled' } } : toSpeakFailure(event));\n };\n\n inFlight.add(utterance);\n\n try {\n synth.speak(utterance);\n } catch (cause) {\n finish({ ok: false, failure: { status: 'failed', error: toError(cause) } });\n }\n\n return toHandle(spoken, {\n cancel: (): void => {\n cancelSpeech();\n },\n pause: (): void => {\n pauseSpeech();\n },\n resume: (): void => {\n resumeSpeech();\n },\n });\n}\n","import { speechSynthesisWith } from './SpeechSupport';\n\n/** How long {@link listVoices} waits for a populated list before answering with whatever exists. */\nexport const DefaultVoicesTimeoutMs = 1000;\n\n/** The empty answer, shared so an unsupported environment does not allocate a new array per call. */\nconst NoVoices: ReadonlyArray<SpeechSynthesisVoice> = [];\n\n/** Tunes the wait for an asynchronously-populated voice list. */\nexport interface ListVoicesOptions {\n /** How long to wait for `voiceschanged` before resolving with whatever exists. Defaults to `1000`. */\n readonly timeoutMs?: number;\n}\n\n/** Reads the engine's current list, guarded — a partial polyfill can return a non-array or throw outright. */\nfunction readVoices(synth: SpeechSynthesis): ReadonlyArray<SpeechSynthesisVoice> {\n try {\n const voices: unknown = synth.getVoices();\n return Array.isArray(voices) ? (voices as SpeechSynthesisVoice[]) : NoVoices;\n } catch {\n return NoVoices;\n }\n}\n\n/**\n * The synchronous snapshot of the installed voices.\n *\n * OFTEN EMPTY on first paint — that is the platform behaviour this module exists to absorb, not a failure. Use it\n * only where an empty answer is acceptable (a re-render triggered by something else); prefer {@link listVoices}\n * anywhere the answer drives UI.\n *\n * Never throws. `[]` under SSR.\n *\n * @returns The voices the engine has registered so far.\n */\nexport function listVoicesSync(): ReadonlyArray<SpeechSynthesisVoice> {\n const synth = speechSynthesisWith('getVoices');\n return synth === undefined ? NoVoices : readVoices(synth);\n}\n\n/**\n * Subscribes to `voiceschanged`.\n *\n * Exported for the sibling composable, which re-reads the list when the engine revises it (Chrome does, after remote\n * voices load). Absent from the barrel — a consumer wants `useSpeechSynthesis`'s `voices`, not an event.\n *\n * Never throws. A no-op under SSR, where the returned unsubscribe is still safe to call.\n *\n * @param listener Called whenever the engine reports a change. Receives no arguments; re-read the list.\n * @returns The unsubscribe function.\n */\nexport function onVoicesChanged(listener: () => void): () => void {\n const noop = (): void => {\n // Nothing was subscribed, so there is nothing to tear down.\n };\n\n const synth = speechSynthesisWith('getVoices');\n if (synth === undefined) return noop;\n\n try {\n if (typeof synth.addEventListener === 'function') {\n synth.addEventListener('voiceschanged', listener);\n return (): void => {\n try {\n synth.removeEventListener('voiceschanged', listener);\n } catch {\n // A polyfill that accepted the listener but refuses to remove it leaves one live closure. Throwing from\n // an unsubscribe — usually an effect cleanup — would be far worse than that leak.\n }\n };\n }\n\n // Older WebKit: property-only wiring. Chain rather than clobber, so a consumer's own handler survives us.\n const previous = synth.onvoiceschanged;\n synth.onvoiceschanged = function (this: SpeechSynthesis, event: Event): void {\n if (typeof previous === 'function') previous.call(this, event);\n listener();\n };\n return (): void => {\n synth.onvoiceschanged = previous;\n };\n } catch {\n return noop;\n }\n}\n\n/**\n * Lists the installed voices, WAITING for the asynchronously-populated list rather than returning the empty array\n * a first `getVoices()` hands back.\n *\n * Resolves immediately when the list is already populated — the common case on every call after the first.\n *\n * ```ts\n * const voices = await listVoices();\n * const german = voices.filter((voice) => voice.lang.startsWith('de'));\n * ```\n *\n * Never throws, never rejects. Resolves to `[]` under SSR, and to `[]` on a device that genuinely has no voices\n * (after the timeout).\n *\n * @param options The wait bound. Defaults to {@link DefaultVoicesTimeoutMs}.\n * @returns The voices, or `[]`.\n */\nexport function listVoices(options?: ListVoicesOptions): Promise<ReadonlyArray<SpeechSynthesisVoice>> {\n const synth = speechSynthesisWith('getVoices');\n if (synth === undefined) return Promise.resolve(NoVoices);\n\n const immediate = readVoices(synth);\n if (immediate.length > 0) return Promise.resolve(immediate);\n\n return new Promise<readonly SpeechSynthesisVoice[]>((resolve) => {\n let settled = false;\n\n // `settle` closes over `unsubscribe` and `timer`, both declared below. Safe because neither the subscription\n // nor the timer can call back synchronously — `onVoicesChanged` only registers, and a timeout is a task.\n const settle = (): void => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n unsubscribe();\n // Re-read rather than close over an earlier snapshot: on the timeout path this is what catches an engine\n // that populated the list without ever firing the event.\n resolve(readVoices(synth));\n };\n\n const unsubscribe = onVoicesChanged((): void => {\n // An event carrying an empty list is not an answer — keep waiting for a real one, or for the deadline.\n if (readVoices(synth).length === 0) return;\n settle();\n });\n\n const timer = setTimeout(settle, options?.timeoutMs ?? DefaultVoicesTimeoutMs);\n });\n}\n\n/** Normalizes a BCP-47 tag for comparison: trimmed, lower-cased, and `en_US`-style separators repaired. */\nfunction normalizeTag(tag: string): string {\n return tag.trim().toLowerCase().replace(/_/g, '-');\n}\n\n/** The primary language subtag — `de` from `de-AT`. The unit a fallback match is made on. */\nfunction primarySubtag(tag: string): string {\n return normalizeTag(tag).split('-')[0] ?? '';\n}\n\n/** Sorts the engine's default voice first within a tier; otherwise preserves the engine's own order. */\nfunction defaultFirst(voices: ReadonlyArray<SpeechSynthesisVoice>): ReadonlyArray<SpeechSynthesisVoice> {\n return [...voices].sort((left, right) => Number(right.default === true) - Number(left.default === true));\n}\n\n/**\n * Filters voices to a language tag, exact matches first, then same-primary-subtag ones.\n *\n * Pure — takes the list rather than fetching it, so it is trivially testable and reusable on a list a consumer\n * already holds. Tag comparison is case-insensitive and tolerates the `en_US` separator some engines report.\n *\n * The two tiers are kept in order rather than collapsed because they are not equivalent: `en-GB` text read by an\n * `en-US` voice is understandable, so it belongs in the list — but never ahead of an actual `en-GB` voice.\n *\n * @param voices The list to filter, typically from {@link listVoices}.\n * @param lang A BCP-47 tag (`de`, `en-GB`). Same vocabulary as `foundation/i18n`'s locale.\n * @returns The matching voices, best match first. Empty when nothing matches.\n */\nexport function voicesForLang(\n voices: ReadonlyArray<SpeechSynthesisVoice>,\n lang: string,\n): ReadonlyArray<SpeechSynthesisVoice> {\n const wanted = normalizeTag(lang);\n if (wanted === '') return NoVoices;\n\n const wantedPrimary = primarySubtag(wanted);\n const exact: SpeechSynthesisVoice[] = [];\n const related: SpeechSynthesisVoice[] = [];\n\n for (const voice of voices) {\n const tag = typeof voice.lang === 'string' ? normalizeTag(voice.lang) : '';\n if (tag === '') continue;\n\n if (tag === wanted) exact.push(voice);\n else if (primarySubtag(tag) === wantedPrimary) related.push(voice);\n }\n\n return [...defaultFirst(exact), ...defaultFirst(related)];\n}\n\n/**\n * Picks the best voice for a language tag, waiting for the voice list the same way {@link listVoices} does.\n *\n * ```ts\n * const voice = await findVoice('de-DE');\n * await speak('Guten Tag', { voice, lang: 'de-DE' });\n * ```\n *\n * Never throws, never rejects.\n *\n * @param lang A BCP-47 tag.\n * @param options The wait bound, forwarded to {@link listVoices}.\n * @returns The best match, or `undefined` when the language has no voice installed (SSR included).\n */\nexport async function findVoice(lang: string, options?: ListVoicesOptions): Promise<SpeechSynthesisVoice | undefined> {\n const voices = await listVoices(options);\n return voicesForLang(voices, lang).at(0);\n}\n","import { onMounted, onScopeDispose, shallowRef, type ShallowRef } from 'vue';\n\nimport { useLocale } from '../../i18n';\n\nimport { listVoices, listVoicesSync, onVoicesChanged } from '../ListVoices';\nimport { speak as speakText, type SpeakOptions } from '../Speak';\nimport { cancelSpeech, pauseSpeech, resumeSpeech } from '../SpeechControls';\nimport type { SpeechSpeakResult } from '../SpeechResult';\nimport { canSpeak } from '../SpeechSupport';\n\n/** What {@link useSpeechSynthesis} returns. */\nexport interface SpeechSynthesisControls {\n /** Whether this browser can speak. `false` under SSR — render the button only once this is `true`. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** The installed voices. Starts empty and fills in asynchronously; see `ListVoices` for why that is normal. */\n readonly voices: Readonly<ShallowRef<ReadonlyArray<SpeechSynthesisVoice>>>;\n\n /** Whether this composable has an utterance in flight — not the engine's global flag, shared by all callers. */\n readonly speaking: Readonly<ShallowRef<boolean>>;\n\n /** Whether this composable paused the engine. */\n readonly paused: Readonly<ShallowRef<boolean>>;\n\n /** Speaks text, resolving to the outcome. Never throws. Defaults `lang` to the active locale. */\n readonly speak: (text: string, options?: SpeakOptions) => Promise<SpeechSpeakResult>;\n\n /** Stops all speech in the document — no narrower cancel exists. In-flight `speak` calls settle as `cancelled`. */\n readonly cancel: () => void;\n\n /** Pauses the engine. See `SpeechControls` for Chrome-on-Android's pause-is-cancel behaviour. */\n readonly pause: () => void;\n\n /** Resumes a paused engine. */\n readonly resume: () => void;\n}\n\n/**\n * The initial voice list. Empty rather than `listVoicesSync()`, for the same reason `supported` starts `false`:\n * a server renders nothing and a client would render a full picker, and the mismatch is a hydration error —\n * quite apart from `listVoicesSync` reaching for a global the server does not have. The mount hook fills it in\n * on the very next tick.\n */\nconst NoVoices: ReadonlyArray<SpeechSynthesisVoice> = [];\n\n/**\n * Speaks text and owns the lifecycle — cancelling this composable's in-flight speech when the scope is disposed.\n *\n * ```vue\n * const speech = useSpeechSynthesis();\n * <button :disabled=\"!speech.supported.value\" @click=\"speech.speak(article)\">\n * {{ speech.speaking.value ? 'Stop' : 'Read aloud' }}\n * </button>\n * ```\n *\n * Inherits the slice's never-throws contract — a rejected promise is not one of the outcomes.\n *\n * @returns The state plus the four controls.\n */\nexport function useSpeechSynthesis(): SpeechSynthesisControls {\n const { locale } = useLocale();\n\n const voices = shallowRef<readonly SpeechSynthesisVoice[]>(NoVoices);\n const speaking = shallowRef(false);\n const paused = shallowRef(false);\n const supported = shallowRef(false);\n\n /** Guards state writes after teardown. */\n let disposed = false;\n\n /** How many utterances THIS composable started and has not seen settle. Drives both `speaking` and the cancel. */\n let inFlight = 0;\n\n const speak = async (text: string, options?: SpeakOptions): Promise<SpeechSpeakResult> => {\n if (disposed) return { ok: false, failure: { status: 'cancelled' } };\n inFlight += 1;\n if (!disposed) {\n speaking.value = true;\n paused.value = false;\n }\n\n // `lang` falls back to the app's active locale rather than the browser UI language: a localized app should\n // read its own text in the language the user is reading, not the one the OS was installed in.\n const result = await speakText(text, { ...options, lang: options?.lang ?? locale.value });\n\n inFlight = Math.max(0, inFlight - 1);\n // Only the LAST utterance clears the flag — a consumer queueing three sentences is speaking until all three\n // have settled.\n if (!disposed && inFlight === 0) {\n speaking.value = false;\n paused.value = false;\n }\n\n return result;\n };\n\n const cancel = (): void => {\n cancelSpeech();\n if (!disposed) paused.value = false;\n };\n\n const pause = (): void => {\n if (pauseSpeech() && !disposed) paused.value = true;\n };\n\n const resume = (): void => {\n if (resumeSpeech() && !disposed) paused.value = false;\n };\n\n let unsubscribe: (() => void) | undefined;\n\n onMounted(() => {\n supported.value = canSpeak();\n\n const apply = (next: ReadonlyArray<SpeechSynthesisVoice>): void => {\n if (!disposed) voices.value = next;\n };\n\n // Waits out the empty-first-call problem; resolves immediately once the list is populated.\n void listVoices().then(apply);\n\n unsubscribe = onVoicesChanged((): void => {\n apply(listVoicesSync());\n });\n });\n\n onScopeDispose(() => {\n disposed = true;\n unsubscribe?.();\n unsubscribe = undefined;\n // The whole point of the composable. Only when THIS one has something in flight — the platform's cancel is\n // global, and a teardown is no reason to silence another component.\n if (inFlight > 0) cancelSpeech();\n });\n\n return { supported, voices, speaking, paused, speak, cancel, pause, resume };\n}\n","/**\n * Why a recognition session ended badly. Eight arms, four of them sharing `foundation/media`'s vocabulary.\n *\n * - `denied` — the microphone is blocked, by the user or by the browser / OS. Not retryable without a settings\n * change, so re-prompting on a timer only annoys.\n * - `unavailable` — no usable input device. A desktop with no microphone, or an unplugged one.\n * - `no-speech` — the engine listened and heard nothing. Ordinary, and the most common ending of all: expect it\n * whenever a user presses the button and hesitates.\n * - `network` — the recognition service was unreachable. Chrome performs recognition SERVER-SIDE, so this is\n * routine offline, and no amount of retrying fixes it without a connection.\n * - `aborted` — the app stopped the session (`abort()`, an unmount). A decision, not a failure.\n * - `language-unsupported` — the service will not transcribe the requested `lang`.\n * - `unsupported` — no recognition API here: SSR, or Firefox, which does not implement it.\n * - `failed` — anything else, including an unreadable event.\n */\nexport type SpeechRecognitionStatus =\n 'denied' | 'unavailable' | 'no-speech' | 'network' | 'aborted' | 'language-unsupported' | 'unsupported' | 'failed';\n\n/** A recognition failure: the classified status plus a normalized `Error` for logs and telemetry. */\nexport interface SpeechRecognitionFailure {\n /** What went wrong, in terms a UI can branch on. */\n readonly status: SpeechRecognitionStatus;\n\n /** The normalized error, always present — carrying the raw platform code in its message. */\n readonly error: Error;\n}\n\n/** One transcription update — interim or final — as handed to a recognizer's callbacks. */\nexport interface SpeechTranscript {\n /** The recognized text. */\n readonly transcript: string;\n\n /** `true` once the engine has committed to this phrase; `false` while it is still revising it. */\n readonly isFinal: boolean;\n\n /** The engine's `0`–`1` confidence. Chrome reports `0` for interim results — a hint, never a gate. */\n readonly confidence: number;\n}\n\n/** Platform error code → status. Everything absent from this table lands on `failed` with the real code kept. */\nconst StatusByCode: Readonly<Record<string, SpeechRecognitionStatus>> = {\n 'not-allowed': 'denied',\n 'service-not-allowed': 'denied',\n 'audio-capture': 'unavailable',\n 'no-speech': 'no-speech',\n network: 'network',\n aborted: 'aborted',\n 'language-not-supported': 'language-unsupported',\n};\n\n/** Reads a member as a string, guarded — a throwing getter reads as absent rather than as a second failure. */\nfunction stringMember(value: unknown, key: string): string | undefined {\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) return undefined;\n\n try {\n const member: unknown = (value as Record<string, unknown>)[key];\n return typeof member === 'string' ? member : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Classifies a recognition `error` event into its {@link SpeechRecognitionFailure}.\n *\n * Matched on the `error` string rather than an `instanceof`, for the same reason `foundation/media` matches\n * `DOMException` names: the event type is non-standard, differs between Chrome and Safari, and a test double\n * throws a plain `{ error: 'no-speech' }`.\n *\n * Never throws. An unreadable event becomes `failed` carrying an `Error` that says so.\n *\n * @param event The `error` event the engine delivered.\n * @returns The classified failure.\n */\nexport function toSpeechRecognitionFailure(event: unknown): SpeechRecognitionFailure {\n const code = stringMember(event, 'error');\n const detail = stringMember(event, 'message');\n const status = code === undefined ? 'failed' : (StatusByCode[code] ?? 'failed');\n\n const message =\n detail === undefined || detail === ''\n ? `speech recognition error: ${code ?? 'unknown'}`\n : `speech recognition error: ${code ?? 'unknown'} — ${detail}`;\n\n // The raw event rides as `cause`; `foundation/errors`' chain walkers traverse it safely (cycle-guarded).\n return { status, error: new Error(message, { cause: event }) };\n}\n","import type { RecognizerStartResult } from './models/RecognizerStartResult';\n\nimport { toError } from '../errors';\nimport { ResultExtensions } from '../results';\n\nimport { speechRecognitionConstructor } from './SpeechSupport';\nimport {\n toSpeechRecognitionFailure,\n type SpeechRecognitionFailure,\n type SpeechTranscript,\n} from './SpeechRecognitionResult';\nimport type { SpeechRecognitionEventLike, SpeechRecognitionLike } from './SpeechRecognitionTypes';\nexport type { RecognizerStartFailure } from './models/RecognizerStartFailure';\nexport type { RecognizerStartResult } from './models/RecognizerStartResult';\n\n/** Configuration and callbacks for a recognizer. Applied once, at creation — see {@link createSpeechRecognizer}. */\nexport interface SpeechRecognizerOptions {\n /** BCP-47 tag to transcribe (`en-US`, `uz`). Same vocabulary as `foundation/i18n`. Defaults to the engine's. */\n readonly lang?: string;\n\n /** Keep listening past the first phrase. Defaults to `false`. Chrome still ends the session on long silence. */\n readonly continuous?: boolean;\n\n /** Emit revisable partial results while the user is still speaking. Defaults to `false`. */\n readonly interimResults?: boolean;\n\n /** How many alternatives each result carries. Defaults to the engine's (`1`). */\n readonly maxAlternatives?: number;\n\n /** Every update, interim and final — the one callback that sees the whole stream. A throw from it is swallowed. */\n readonly onResult?: (result: SpeechTranscript) => void;\n\n /** Committed phrases only. The callback most consumers want. A throw from it is swallowed. */\n readonly onFinal?: (transcript: string) => void;\n\n /** The current uncommitted text, joined across pending results. Requires `interimResults`. */\n readonly onInterim?: (transcript: string) => void;\n\n /** A classified failure. `no-speech` and `aborted` arrive here too — neither is worth a toast. */\n readonly onError?: (failure: SpeechRecognitionFailure) => void;\n\n /** The engine is now listening — later than the `start()` that asked for it, and after any permission prompt. */\n readonly onStart?: () => void;\n\n /** The session ended, for ANY reason: `stop`, `abort`, an error, or the engine's own silence timeout. */\n readonly onEnd?: () => void;\n}\n\n/** A wrapped recognition session. Every method is total — nothing throws, nothing needs a `try`. */\nexport interface SpeechRecognizer {\n /** Whether a real engine is behind this recognizer. `false` under SSR, in Firefox, and if construction failed. */\n readonly supported: boolean;\n\n /** Whether the engine is listening right now — `false` during the gap between `start()` and the `start` event. */\n readonly listening: boolean;\n\n /** Begins a session. Repeated calls succeed without restarting a session that is starting or listening. */\n readonly start: () => RecognizerStartResult;\n\n /** Ends the session, keeping results the engine has already recognized. A no-op when idle. */\n readonly stop: () => void;\n\n /** Ends the session immediately, discarding pending results. A no-op when idle. Use this on unmount. */\n readonly abort: () => void;\n}\n\n/** Hands a consumer's callback its argument, absorbing a throw so it cannot escape into the browser's dispatch. */\nfunction report<TArgument>(callback: ((argument: TArgument) => void) | undefined, argument: TArgument): void {\n if (callback === undefined) return;\n\n try {\n callback(argument);\n } catch {\n // The consumer's own handler failed. Nothing useful is left to do with that, and the session must continue.\n }\n}\n\n/** The recognizer handed back where no engine exists — every call answers, none of them reach anything. */\nfunction inertRecognizer(start: () => RecognizerStartResult): SpeechRecognizer {\n const noop = (): void => {\n // No session can exist, so there is nothing to stop or abort.\n };\n\n return { supported: false, listening: false, start, stop: noop, abort: noop };\n}\n\n/**\n * Creates a wrapped speech recognizer.\n *\n * ```ts\n * const recognizer = createSpeechRecognizer({\n * lang: 'en-US',\n * interimResults: true,\n * onFinal: (text) => append(text),\n * onError: (failure) => { if (failure.status === 'denied') showMicrophoneHelp(); },\n * });\n *\n * if (recognizer.supported) recognizer.start();\n * ```\n *\n * Options are applied ONCE, at creation: the platform reads `lang` / `continuous` / `interimResults` when a\n * session starts and offers no way to reconfigure a running one, so changing them means creating a new\n * recognizer. `useSpeechRecognition` does exactly that when its `lang` changes.\n *\n * Never throws. Always returns a usable object — check `supported`, or read the `start()` result.\n *\n * @param options Language, session shape, and callbacks.\n * @returns The recognizer. `supported: false` under SSR, in Firefox, and where the constructor exists but refuses.\n */\nexport function createSpeechRecognizer(options?: SpeechRecognizerOptions): SpeechRecognizer {\n const Recognition = speechRecognitionConstructor();\n if (Recognition === undefined) return inertRecognizer(() => ResultExtensions.fail({ status: 'unsupported' }));\n\n let instance: SpeechRecognitionLike;\n try {\n instance = new Recognition();\n } catch (cause) {\n // The constructor exists but refuses to instantiate (a policy-blocked iframe is the realistic case).\n // `supported` reports false because nothing can be started — but `start()` hands back the REAL error rather\n // than a soothing `unsupported`, which would send a developer hunting for a browser that already has the API.\n const error = toError(cause);\n return inertRecognizer(() => ResultExtensions.fail({ status: 'failed', error }));\n }\n\n try {\n if (options?.lang !== undefined) instance.lang = options.lang;\n instance.continuous = options?.continuous ?? false;\n instance.interimResults = options?.interimResults ?? false;\n if (options?.maxAlternatives !== undefined) instance.maxAlternatives = options.maxAlternatives;\n } catch {\n // A partial implementation refusing a setter keeps its own defaults, which still transcribe something.\n }\n\n let state: 'idle' | 'starting' | 'listening' = 'idle';\n\n /** Walks the results this event changed, emitting one update per result and one joined interim string. */\n const emitResults = (event: SpeechRecognitionEventLike): void => {\n try {\n const results = event.results;\n const length = typeof results?.length === 'number' ? results.length : 0;\n // `results` is CUMULATIVE across the session, so a walk from 0 would re-emit every phrase on every event.\n const first = Number.isInteger(event.resultIndex) ? Math.max(0, event.resultIndex) : 0;\n\n let interim = '';\n\n for (let index = first; index < length; index += 1) {\n const result = results[index];\n if (result === undefined) continue;\n\n // Alternative 0 is the engine's best guess; the rest exist only when `maxAlternatives` asked for them.\n const alternative = result[0];\n if (alternative === undefined) continue;\n\n const transcript = typeof alternative.transcript === 'string' ? alternative.transcript : '';\n const confidence = typeof alternative.confidence === 'number' ? alternative.confidence : 0;\n const isFinal = result.isFinal === true;\n\n report(options?.onResult, { transcript, isFinal, confidence });\n if (isFinal) report(options?.onFinal, transcript);\n else if (transcript !== '') interim = interim === '' ? transcript : `${interim} ${transcript}`;\n }\n\n if (interim !== '') report(options?.onInterim, interim);\n } catch {\n // A hostile or half-implemented event shape costs this one update, never the session.\n }\n };\n\n try {\n instance.onstart = (): void => {\n state = 'listening';\n report<void>(options?.onStart, undefined);\n };\n\n instance.onend = (): void => {\n state = 'idle';\n report<void>(options?.onEnd, undefined);\n };\n\n instance.onerror = (event): void => {\n // No state change here: every error is followed by `end`, which is the single place the session closes.\n report(options?.onError, toSpeechRecognitionFailure(event));\n };\n\n instance.onresult = emitResults;\n } catch {\n // An instance that refuses handler assignment can still be started; it just reports nothing.\n }\n\n return {\n supported: true,\n\n get listening(): boolean {\n return state === 'listening';\n },\n\n start: (): RecognizerStartResult => {\n // Pre-empts the native `InvalidStateError` — including during `starting`, the window a two-state flag misses.\n if (state !== 'idle') return ResultExtensions.ok(undefined);\n\n try {\n instance.start();\n state = 'starting';\n return ResultExtensions.ok(undefined);\n } catch (cause) {\n // The engine still considers a previous session open (an `abort` whose `end` has not arrived), or the\n // page has no microphone permission to hand over.\n state = 'idle';\n return ResultExtensions.fail({ status: 'failed', error: toError(cause) });\n }\n },\n\n stop: (): void => {\n if (state === 'idle') return;\n\n try {\n instance.stop();\n } catch {\n // Stopping something the engine already stopped is not a failure worth surfacing.\n }\n },\n\n abort: (): void => {\n if (state === 'idle') return;\n state = 'idle';\n\n try {\n instance.abort();\n } catch {\n // Same as `stop`. The local state is cleared first, so a refusing engine cannot strand this wrapper.\n }\n },\n };\n}\n","import { onMounted, onScopeDispose, shallowRef, toValue, watch, type MaybeRefOrGetter, type ShallowRef } from 'vue';\n\nimport { useLocale } from '../../i18n';\n\nimport {\n createSpeechRecognizer,\n type RecognizerStartResult,\n type SpeechRecognizer,\n type SpeechRecognizerOptions,\n} from '../CreateSpeechRecognizer';\nimport type { SpeechRecognitionFailure } from '../SpeechRecognitionResult';\nimport { canRecognizeSpeech } from '../SpeechSupport';\n\n/** Options for {@link useSpeechRecognition} — the recognizer's own, with the composable layering state on top. */\nexport type UseSpeechRecognitionOptions = SpeechRecognizerOptions;\n\n/** What {@link useSpeechRecognition} returns. */\nexport interface SpeechRecognitionControls {\n /** Whether this browser can transcribe at all. `false` under SSR and in Firefox — gate the button on it. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** Whether the engine is listening. `false` in the gap between `start()` and the microphone actually opening. */\n readonly listening: Readonly<ShallowRef<boolean>>;\n\n /** Every committed phrase of the session, space-joined. Survives an ended session; cleared by `reset`. */\n readonly transcript: Readonly<ShallowRef<string>>;\n\n /** The current uncommitted text. Requires `interimResults`; cleared when the phrase commits or the session ends. */\n readonly interimTranscript: Readonly<ShallowRef<string>>;\n\n /** The last classified failure, or `null`. Cleared when a new session starts. `no-speech` lands here too. */\n readonly error: Readonly<ShallowRef<SpeechRecognitionFailure | null>>;\n\n /** Begins a session. Repeated calls succeed without restarting a session that is starting or listening. */\n readonly start: () => RecognizerStartResult;\n\n /** Ends the session, keeping what the engine already recognized. */\n readonly stop: () => void;\n\n /** Ends the session immediately, discarding pending results. */\n readonly abort: () => void;\n\n /** Clears `transcript`, `interimTranscript`, and `error`. Does not touch the session. */\n readonly reset: () => void;\n}\n\n/** Appends a committed phrase, space-joined, skipping the empty results an engine occasionally commits. */\nfunction appendPhrase(previous: string, phrase: string): string {\n const next = phrase.trim();\n if (next === '') return previous;\n return previous === '' ? next : `${previous} ${next}`;\n}\n\n/**\n * Transcribes speech into accumulating reactive state, aborting the session when the scope is disposed.\n *\n * ```vue\n * const dictation = useSpeechRecognition({ interimResults: true, continuous: true });\n * <button :disabled=\"!dictation.supported.value\" @click=\"dictation.start()\">\n * {{ dictation.listening.value ? 'Listening…' : 'Dictate' }}\n * </button>\n * <p>{{ dictation.transcript.value }} <em>{{ dictation.interimTranscript.value }}</em></p>\n * ```\n *\n * `lang` defaults to the active `LocaleProvider` locale, so a localized app transcribes the language its user is\n * reading. Nothing throws.\n *\n * @param options Session shape and pass-through callbacks — each is called in addition to the state updates.\n * A ref or getter is read at call time, so a reactive options source is followed.\n * @returns The transcript state plus the four controls.\n */\nexport function useSpeechRecognition(\n options?: MaybeRefOrGetter<UseSpeechRecognitionOptions | undefined>,\n): SpeechRecognitionControls {\n const { locale } = useLocale();\n\n const transcript = shallowRef('');\n const interimTranscript = shallowRef('');\n const listening = shallowRef(false);\n const error = shallowRef<SpeechRecognitionFailure | null>(null);\n\n // `false` until mount, exactly as the original's SSR snapshot: `canRecognizeSpeech` reads `window`, and a\n // server that claimed support would render a button the client immediately has to disable. Nothing subscribes\n // because a browser cannot gain a recognition engine mid-session.\n const supported = shallowRef(false);\n\n /** Guards state writes after teardown — the pass-through callbacks still fire, the reactive state does not. */\n let disposed = false;\n let generation = 0;\n let recognizer: SpeechRecognizer | null = null;\n\n function getRecognizer(): SpeechRecognizer {\n if (recognizer !== null) return recognizer;\n\n const operation = ++generation;\n const current = (): boolean => !disposed && operation === generation;\n const created = createSpeechRecognizer({\n lang: toValue(options)?.lang ?? locale.value,\n continuous: toValue(options)?.continuous,\n // Interim results default ON here, unlike the bare recognizer: a composable exposing `interimTranscript`\n // that is permanently empty is a worse default than one that costs a few extra updates.\n interimResults: toValue(options)?.interimResults ?? true,\n maxAlternatives: toValue(options)?.maxAlternatives,\n\n onStart: (): void => {\n if (!current()) return;\n listening.value = true;\n error.value = null;\n toValue(options)?.onStart?.();\n },\n\n onEnd: (): void => {\n if (!current()) return;\n listening.value = false;\n interimTranscript.value = '';\n toValue(options)?.onEnd?.();\n },\n\n onError: (failure): void => {\n if (!current()) return;\n error.value = failure;\n toValue(options)?.onError?.(failure);\n },\n\n onResult: (result): void => {\n if (!current()) return;\n if (result.isFinal) {\n transcript.value = appendPhrase(transcript.value, result.transcript);\n interimTranscript.value = '';\n } else {\n interimTranscript.value = result.transcript;\n }\n toValue(options)?.onResult?.(result);\n },\n\n onFinal: (text): void => {\n if (!current()) return;\n toValue(options)?.onFinal?.(text);\n },\n\n onInterim: (text): void => {\n if (!current()) return;\n toValue(options)?.onInterim?.(text);\n },\n });\n\n recognizer = created;\n return created;\n }\n\n const start = (): RecognizerStartResult =>\n disposed ? { ok: false, failure: { status: 'unsupported' } } : getRecognizer().start();\n\n // `stop` / `abort` read the field instead of the getter: nothing can be running if nothing was ever built, and\n // constructing a recognizer in order to stop it would open the very session being cancelled.\n const stop = (): void => {\n recognizer?.stop();\n };\n\n const abort = (): void => {\n recognizer?.abort();\n };\n\n const reset = (): void => {\n transcript.value = '';\n interimTranscript.value = '';\n error.value = null;\n };\n\n onMounted(() => {\n supported.value = canRecognizeSpeech();\n });\n\n // Config is applied at construction, so a change means a new instance. Aborting first is deliberate: a session\n // already running under the old language cannot be re-tagged mid-sentence. Non-immediate, so nothing is\n // aborted on the server — there is nothing to abort there anyway.\n watch(\n [\n () => toValue(options)?.lang ?? locale.value,\n () => toValue(options)?.continuous ?? false,\n () => toValue(options)?.interimResults ?? true,\n ],\n () => {\n generation++;\n listening.value = false;\n interimTranscript.value = '';\n recognizer?.abort();\n recognizer = null;\n },\n );\n\n onScopeDispose(() => {\n disposed = true;\n // `abort`, never `stop`: nothing is left to receive a final transcript, and the microphone must close now.\n recognizer?.abort();\n recognizer = null;\n });\n\n return { supported, listening, transcript, interimTranscript, error, start, stop, abort, reset };\n}\n","/** Closed failure vocabulary for SpeechFailure. */\nexport const SpeechFailureCode = {\n Cancelled: 'cancelled',\n Unsupported: 'unsupported',\n Failed: 'failed',\n} as const;\n\nexport type SpeechFailureCode = (typeof SpeechFailureCode)[keyof typeof SpeechFailureCode];\n","/** Closed failure vocabulary for RecognizerStartFailure. */\nexport const RecognizerStartFailureCode = {\n Unsupported: 'unsupported',\n Failed: 'failed',\n} as const;\n\nexport type RecognizerStartFailureCode = (typeof RecognizerStartFailureCode)[keyof typeof RecognizerStartFailureCode];\n"],"names":["NoVoices","inFlight","speak","speakText"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RecognizerStartFailureCode } from '../enums/RecognizerStartFailureCode';
|
|
2
|
+
/** Expected reasons the operation could not produce its requested value. */
|
|
3
|
+
export type RecognizerStartFailure = {
|
|
4
|
+
readonly status: typeof RecognizerStartFailureCode.Unsupported;
|
|
5
|
+
} | {
|
|
6
|
+
readonly status: typeof RecognizerStartFailureCode.Failed;
|
|
7
|
+
readonly error: Error;
|
|
8
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SpeechFailureCode } from '../enums/SpeechFailureCode';
|
|
2
|
+
/** Expected reasons the operation could not produce its requested value. */
|
|
3
|
+
export type SpeechFailure = {
|
|
4
|
+
readonly status: typeof SpeechFailureCode.Cancelled;
|
|
5
|
+
} | {
|
|
6
|
+
readonly status: typeof SpeechFailureCode.Unsupported;
|
|
7
|
+
} | {
|
|
8
|
+
readonly status: typeof SpeechFailureCode.Failed;
|
|
9
|
+
readonly error: Error;
|
|
10
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { MaybeRefOrGetter, WritableComputedRef } from 'vue';
|
|
2
|
+
interface UseControlledOptions<T> {
|
|
3
|
+
controlled: MaybeRefOrGetter<T | undefined>;
|
|
4
|
+
default: MaybeRefOrGetter<T>;
|
|
5
|
+
onChange?: (value: T) => void;
|
|
6
|
+
}
|
|
7
|
+
/** The controlled/uncontrolled handle — a writable value plus the explicit setter it delegates to. */
|
|
8
|
+
export interface ControlledValue<T> {
|
|
9
|
+
/**
|
|
10
|
+
* The resolved value. Writable: `value.value = next` runs the same path as `setValue(next)`,
|
|
11
|
+
* so it drops straight into `v-model`. A writable computed rather than a plain ref because the
|
|
12
|
+
* controlled branch must never keep its own copy of the value.
|
|
13
|
+
*/
|
|
14
|
+
readonly value: WritableComputedRef<T>;
|
|
15
|
+
/** Sets the next value — updates internal state when uncontrolled, and emits `onChange` only for a distinct value. */
|
|
16
|
+
readonly setValue: (value: T) => void;
|
|
17
|
+
/** Fixed ownership chosen at setup. */
|
|
18
|
+
readonly isControlled: boolean;
|
|
19
|
+
/** Requests the original default through the same ownership path as user edits. */
|
|
20
|
+
readonly reset: () => void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Standard controlled/uncontrolled pattern.
|
|
24
|
+
*
|
|
25
|
+
* - If `controlled` initially resolves to a defined value, the component is controlled — internal state is
|
|
26
|
+
* ignored, `setValue` only fires `onChange`.
|
|
27
|
+
* - Otherwise the component owns its state, `setValue` updates it, and `onChange`
|
|
28
|
+
* still fires for consumers that want to observe changes.
|
|
29
|
+
*
|
|
30
|
+
* Pass `controlled` as a getter (`() => props.value`) so the controlled branch tracks the prop.
|
|
31
|
+
* `default` is read once, at setup — it seeds the uncontrolled state, exactly as the original's
|
|
32
|
+
* `useState(defaultValue)` did.
|
|
33
|
+
*/
|
|
34
|
+
export declare function useControlled<T>({ controlled, default: defaultValue, onChange, }: UseControlledOptions<T>): ControlledValue<T>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -13,5 +13,5 @@ export interface StorageBroker {
|
|
|
13
13
|
* swallowed. Never throws, so a caller never has to guard the storage call.
|
|
14
14
|
*/
|
|
15
15
|
export declare const localStorageStorageBroker: StorageBroker;
|
|
16
|
-
/** Builds an isolated in-memory `StorageBroker` backed by a `Map` — the test double
|
|
16
|
+
/** Builds an isolated in-memory `StorageBroker` backed by a `Map` — the test double: no cross-tab sync, no DOM. */
|
|
17
17
|
export declare function memoryStorageBroker(): StorageBroker;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { StorageBroker } from '../../StorageBroker';
|
|
2
|
+
/** Persisted envelope zustand writes — store state plus its own persist version. Mirrors `zustand/middleware`. */
|
|
3
|
+
export interface StorageValue<S> {
|
|
4
|
+
/** The persisted store state. */
|
|
5
|
+
readonly state: S;
|
|
6
|
+
/** zustand's persist schema version (owned by the store's `persist` options), if set. */
|
|
7
|
+
readonly version?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The post-JSON storage contract zustand's `persist` reads and writes through (mirror of zustand v5's
|
|
11
|
+
* `PersistStorage<S>`). Values are already-parsed `StorageValue` objects — no string encoding here, since the
|
|
12
|
+
* backing `StorageBroker` owns JSON serialization.
|
|
13
|
+
*/
|
|
14
|
+
export interface PersistStorage<S> {
|
|
15
|
+
/** Reads the persisted envelope for `name`, or null when absent or unreadable. */
|
|
16
|
+
getItem(name: string): StorageValue<S> | null;
|
|
17
|
+
/** Persists `value` under `name`. */
|
|
18
|
+
setItem(name: string, value: StorageValue<S>): void;
|
|
19
|
+
/** Removes any persisted value under `name`. */
|
|
20
|
+
removeItem(name: string): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Adapts `broker` into a zustand `PersistStorage<S>`. Because the broker already serializes to and from JSON,
|
|
24
|
+
* the returned storage hands zustand the parsed `StorageValue` directly (no `createJSONStorage` wrapper needed).
|
|
25
|
+
* It inherits the broker's failure-tolerance: an absent, malformed, or blocked read yields null, which zustand
|
|
26
|
+
* treats as "no persisted state" and falls back to the store's initial state.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* import { create } from 'zustand';
|
|
30
|
+
* import { persist } from 'zustand/middleware';
|
|
31
|
+
* import { localStorageStorageBroker } from '@wow-two-beta/ui-vue/foundation/storage';
|
|
32
|
+
* import { brokerPersistStorage } from '@wow-two-beta/ui-vue/foundation/storage/zustand';
|
|
33
|
+
*
|
|
34
|
+
* const useStore = create(persist(init, { name: 'app', storage: brokerPersistStorage(localStorageStorageBroker) }));
|
|
35
|
+
*/
|
|
36
|
+
export declare function brokerPersistStorage<S>(broker: StorageBroker): PersistStorage<S>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type StorageValue, type PersistStorage, brokerPersistStorage } from './ZustandPersist';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/foundation/storage/adapters/zustand/ZustandPersist.ts"],"sourcesContent":["// zustand-persist adapter. Bridges a `StorageBroker` into the storage seam zustand's `persist` middleware\n// expects, so a zustand store persists through the SAME swappable broker as the rest of the SDK: the in-memory\n// double in tests, a `namespacedBroker` for isolation, or the SSR-safe `localStorage` broker in production — with\n// no store change. Versioning/migration stays with zustand's own `version`/`migrate` persist options (this\n// adapter is the *storage* seam, not a second migration system — use `createVersionedStore` for plain values).\n//\n// zustand is NOT a dependency here: the `PersistStorage`/`StorageValue` shapes below are a structural mirror of\n// zustand v5's (`zustand/middleware`). The object returned by `brokerPersistStorage` is structurally assignable\n// to zustand's real `PersistStorage<S>` on the consumer side, so the consumer simply brings zustand and passes\n// this in: `persist(init, { name, storage: brokerPersistStorage(broker) })`. Keep these types in sync with zustand v5.\n\nimport type { StorageBroker } from '../../StorageBroker';\n\n/** Persisted envelope zustand writes — store state plus its own persist version. Mirrors `zustand/middleware`. */\nexport interface StorageValue<S> {\n /** The persisted store state. */\n readonly state: S;\n\n /** zustand's persist schema version (owned by the store's `persist` options), if set. */\n readonly version?: number;\n}\n\n/**\n * The post-JSON storage contract zustand's `persist` reads and writes through (mirror of zustand v5's\n * `PersistStorage<S>`). Values are already-parsed `StorageValue` objects — no string encoding here, since the\n * backing `StorageBroker` owns JSON serialization.\n */\nexport interface PersistStorage<S> {\n /** Reads the persisted envelope for `name`, or null when absent or unreadable. */\n getItem(name: string): StorageValue<S> | null;\n\n /** Persists `value` under `name`. */\n setItem(name: string, value: StorageValue<S>): void;\n\n /** Removes any persisted value under `name`. */\n removeItem(name: string): void;\n}\n\n/**\n * Adapts `broker` into a zustand `PersistStorage<S>`. Because the broker already serializes to and from JSON,\n * the returned storage hands zustand the parsed `StorageValue` directly (no `createJSONStorage` wrapper needed).\n * It inherits the broker's failure-tolerance: an absent, malformed, or blocked read yields null, which zustand\n * treats as \"no persisted state\" and falls back to the store's initial state.\n *\n * @example\n * import { create } from 'zustand';\n * import { persist } from 'zustand/middleware';\n * import { localStorageStorageBroker } from '@wow-two-beta/ui-vue/foundation/storage';\n * import { brokerPersistStorage } from '@wow-two-beta/ui-vue/foundation/storage/zustand';\n *\n * const useStore = create(persist(init, { name: 'app', storage: brokerPersistStorage(localStorageStorageBroker) }));\n */\nexport function brokerPersistStorage<S>(broker: StorageBroker): PersistStorage<S> {\n return {\n getItem: (name) => broker.read<StorageValue<S>>(name),\n setItem: (name, value) => broker.write(name, value),\n removeItem: (name) => broker.remove(name),\n };\n}\n"],"names":[],"mappings":"AAoDO,SAAS,qBAAwB,QAA0C;AAChF,SAAO;AAAA,IACL,SAAS,CAAC,SAAS,OAAO,KAAsB,IAAI;AAAA,IACpD,SAAS,CAAC,MAAM,UAAU,OAAO,MAAM,MAAM,KAAK;AAAA,IAClD,YAAY,CAAC,SAAS,OAAO,OAAO,IAAI;AAAA,EAAA;AAE5C;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { MaybeRefOrGetter, ShallowRef } from 'vue';
|
|
2
|
+
import { AppError, Result } from '../../results';
|
|
3
|
+
/** The lifecycle of the latest autosave intent, including a queued trailing write. */
|
|
4
|
+
export type AutosaveStatus = 'idle' | 'pending' | 'saving' | 'saved' | 'error';
|
|
5
|
+
/** Tunes autosave timing, gating and failure reporting. */
|
|
6
|
+
export interface UseAutosaveOptions {
|
|
7
|
+
/** The quiet period in milliseconds. Defaults to 800; read when an edit is scheduled. */
|
|
8
|
+
readonly delayMs?: MaybeRefOrGetter<number>;
|
|
9
|
+
/** Disabling drops pending work and invalidates completion state; reenabling schedules the current value. */
|
|
10
|
+
readonly enabled?: MaybeRefOrGetter<boolean>;
|
|
11
|
+
/** Reports a current write's explicit failure or exception while the scope remains enabled and live. */
|
|
12
|
+
readonly onError?: (error: unknown) => void | PromiseLike<void>;
|
|
13
|
+
}
|
|
14
|
+
/** The current autosave intent and explicit queue controls. */
|
|
15
|
+
export interface AutosaveControls {
|
|
16
|
+
readonly status: Readonly<ShallowRef<AutosaveStatus>>;
|
|
17
|
+
/** The latest current-intent failure or exception; cleared by a new edit or cancellation. */
|
|
18
|
+
readonly error: Readonly<ShallowRef<unknown | null>>;
|
|
19
|
+
/** Date.now() when a still-current write last succeeded; obsolete completions do not advance it. */
|
|
20
|
+
readonly lastSavedAt: Readonly<ShallowRef<number | null>>;
|
|
21
|
+
/**
|
|
22
|
+
* Makes pending work ready immediately, still waiting for any active sink. Without pending work this is a no-op.
|
|
23
|
+
*/
|
|
24
|
+
flush(): void;
|
|
25
|
+
/** Drops queued work and invalidates active completion state. An already-started sink cannot be undone. */
|
|
26
|
+
cancel(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Watches edits deeply and serializes saves, retaining only the latest pending value behind an active write.
|
|
30
|
+
* A new edit immediately supersedes the old completion status, even while its debounce is still pending.
|
|
31
|
+
* The sink receives the latest value when its turn starts. For mutable drafts, a sink that needs an immutable
|
|
32
|
+
* payload must snapshot before its first await; autosave does not impose a cloning policy on domain values.
|
|
33
|
+
*
|
|
34
|
+
* A void sink acknowledges completion by returning normally, preserving synchronous storage adapters.
|
|
35
|
+
* A Result sink acknowledges success explicitly or supplies an AppError. Neither means durable persistence
|
|
36
|
+
* beyond the sink's own contract. Thrown/rejected exceptions remain the original error in the handle/onError;
|
|
37
|
+
* they are not converted into an expected Result failure. Error-observer failures are reported diagnostically.
|
|
38
|
+
*
|
|
39
|
+
* The initial value is not saved. Disable/cancel discard queued writes and invalidate late completion state.
|
|
40
|
+
* Disposal cancels scheduling and starts no new writes; the rejection of an already-started sink is observed
|
|
41
|
+
* without updating disposed state or invoking onError. Flush readies queued work but does not await durability;
|
|
42
|
+
* disposal still cancels a write queued behind an active sink.
|
|
43
|
+
*/
|
|
44
|
+
export declare function useAutosave<T>(value: MaybeRefOrGetter<T>, save: (value: T) => void | Result<void, AppError> | PromiseLike<void | Result<void, AppError>>, options?: UseAutosaveOptions): AutosaveControls;
|