@wow-two-beta/ui-vue 0.0.2

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.
Files changed (1507) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +113 -0
  3. package/dist/analytics/Analytics.d.ts +50 -0
  4. package/dist/analytics/AnalyticsEvent.d.ts +49 -0
  5. package/dist/analytics/AnalyticsProvider.d.ts +37 -0
  6. package/dist/analytics/ConsoleAnalyticsProvider.d.ts +8 -0
  7. package/dist/analytics/MemoryAnalyticsProvider.d.ts +19 -0
  8. package/dist/analytics/index.d.ts +5 -0
  9. package/dist/analytics/index.js +196 -0
  10. package/dist/analytics/index.js.map +1 -0
  11. package/dist/auth/AuthBridge.d.ts +30 -0
  12. package/dist/auth/AuthContext.d.ts +41 -0
  13. package/dist/auth/AuthProvider.vue.d.ts +33 -0
  14. package/dist/auth/AuthSession.d.ts +41 -0
  15. package/dist/auth/BearerStrategy.d.ts +36 -0
  16. package/dist/auth/CookieStrategy.d.ts +29 -0
  17. package/dist/auth/RedirectStrategy.d.ts +24 -0
  18. package/dist/auth/TokenStorage.d.ts +9 -0
  19. package/dist/auth/index.d.ts +8 -0
  20. package/dist/auth/index.js +275 -0
  21. package/dist/auth/index.js.map +1 -0
  22. package/dist/chunks/Accept-BWpCXDmS.js +35 -0
  23. package/dist/chunks/Accept-BWpCXDmS.js.map +1 -0
  24. package/dist/chunks/Align-DqFtCY3a.js +12 -0
  25. package/dist/chunks/Align-DqFtCY3a.js.map +1 -0
  26. package/dist/chunks/AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js +53 -0
  27. package/dist/chunks/AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js.map +1 -0
  28. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js +46 -0
  29. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js.map +1 -0
  30. package/dist/chunks/ApiError-l0YdcqqV.js +15 -0
  31. package/dist/chunks/ApiError-l0YdcqqV.js.map +1 -0
  32. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js +996 -0
  33. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js.map +1 -0
  34. package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js +78 -0
  35. package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js.map +1 -0
  36. package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js +1094 -0
  37. package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js.map +1 -0
  38. package/dist/chunks/Bytes-7Jxs6Bq6.js +21 -0
  39. package/dist/chunks/Bytes-7Jxs6Bq6.js.map +1 -0
  40. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js +12748 -0
  41. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js.map +1 -0
  42. package/dist/chunks/Chord-D9Z-j3O0.js +139 -0
  43. package/dist/chunks/Chord-D9Z-j3O0.js.map +1 -0
  44. package/dist/chunks/ColorModeContext-Bz6CBL0V.js +21 -0
  45. package/dist/chunks/ColorModeContext-Bz6CBL0V.js.map +1 -0
  46. package/dist/chunks/Compare-Du6p-OX1.js +18 -0
  47. package/dist/chunks/Compare-Du6p-OX1.js.map +1 -0
  48. package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js +229 -0
  49. package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js.map +1 -0
  50. package/dist/chunks/CornerPosition-FneGck5D.js +14 -0
  51. package/dist/chunks/CornerPosition-FneGck5D.js.map +1 -0
  52. package/dist/chunks/CssExtensions-BzLJG57F.js +161 -0
  53. package/dist/chunks/CssExtensions-BzLJG57F.js.map +1 -0
  54. package/dist/chunks/DateExtensions-QahSUlRy.js +282 -0
  55. package/dist/chunks/DateExtensions-QahSUlRy.js.map +1 -0
  56. package/dist/chunks/DeepEqual-7lBKnkNS.js +29 -0
  57. package/dist/chunks/DeepEqual-7lBKnkNS.js.map +1 -0
  58. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js +214 -0
  59. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js.map +1 -0
  60. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js +207 -0
  61. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js.map +1 -0
  62. package/dist/chunks/EmojiCatalog-CR4Lcm43.js +1923 -0
  63. package/dist/chunks/EmojiCatalog-CR4Lcm43.js.map +1 -0
  64. package/dist/chunks/Environment-CuQav_mw.js +68 -0
  65. package/dist/chunks/Environment-CuQav_mw.js.map +1 -0
  66. package/dist/chunks/Equality-DIQYQysz.js +21 -0
  67. package/dist/chunks/Equality-DIQYQysz.js.map +1 -0
  68. package/dist/chunks/ErrorLike-Cfj0lZW3.js +27 -0
  69. package/dist/chunks/ErrorLike-Cfj0lZW3.js.map +1 -0
  70. package/dist/chunks/ErrorMessage-Cqt7WaFn.js +26 -0
  71. package/dist/chunks/ErrorMessage-Cqt7WaFn.js.map +1 -0
  72. package/dist/chunks/ErrorRecognizers-oTklha6D.js +17 -0
  73. package/dist/chunks/ErrorRecognizers-oTklha6D.js.map +1 -0
  74. package/dist/chunks/FeedbackBus-BRbyOMCn.js +39 -0
  75. package/dist/chunks/FeedbackBus-BRbyOMCn.js.map +1 -0
  76. package/dist/chunks/FieldErrors-2zjhia4U.js +56 -0
  77. package/dist/chunks/FieldErrors-2zjhia4U.js.map +1 -0
  78. package/dist/chunks/FileName-CmNjFV7t.js +30 -0
  79. package/dist/chunks/FileName-CmNjFV7t.js.map +1 -0
  80. package/dist/chunks/FormControlContext-B71MFW26.js +22 -0
  81. package/dist/chunks/FormControlContext-B71MFW26.js.map +1 -0
  82. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js +73 -0
  83. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js.map +1 -0
  84. package/dist/chunks/HtmlExtensions-jlKY5f9C.js +23 -0
  85. package/dist/chunks/HtmlExtensions-jlKY5f9C.js.map +1 -0
  86. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js +27 -0
  87. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js.map +1 -0
  88. package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js +68 -0
  89. package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js.map +1 -0
  90. package/dist/chunks/KeyboardExtensions-CQlkK53D.js +34 -0
  91. package/dist/chunks/KeyboardExtensions-CQlkK53D.js.map +1 -0
  92. package/dist/chunks/Listbox.variants-CqAkYsmK.js +44 -0
  93. package/dist/chunks/Listbox.variants-CqAkYsmK.js.map +1 -0
  94. package/dist/chunks/LocaleContext-B3UXrI6p.js +39 -0
  95. package/dist/chunks/LocaleContext-B3UXrI6p.js.map +1 -0
  96. package/dist/chunks/Messages-BGfQHMmW.js +201 -0
  97. package/dist/chunks/Messages-BGfQHMmW.js.map +1 -0
  98. package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js +191 -0
  99. package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js.map +1 -0
  100. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js +86 -0
  101. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js.map +1 -0
  102. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js +2073 -0
  103. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js.map +1 -0
  104. package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-gi0uHIuK.js +2727 -0
  105. package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-gi0uHIuK.js.map +1 -0
  106. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js +943 -0
  107. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js.map +1 -0
  108. package/dist/chunks/Orientation-u-sYunuG.js +10 -0
  109. package/dist/chunks/Orientation-u-sYunuG.js.map +1 -0
  110. package/dist/chunks/OverlayArrow.vue_vue_type_script_setup_true_lang-CLYhnI8i.js +33 -0
  111. package/dist/chunks/OverlayArrow.vue_vue_type_script_setup_true_lang-CLYhnI8i.js.map +1 -0
  112. package/dist/chunks/OverlayChrome-e4MNr8Yl.js +17 -0
  113. package/dist/chunks/OverlayChrome-e4MNr8Yl.js.map +1 -0
  114. package/dist/chunks/OverlayPosition-BNybkMGG.js +18 -0
  115. package/dist/chunks/OverlayPosition-BNybkMGG.js.map +1 -0
  116. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js +212 -0
  117. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js.map +1 -0
  118. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js +34 -0
  119. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js.map +1 -0
  120. package/dist/chunks/Presence-C7IJvh_P.js +120 -0
  121. package/dist/chunks/Presence-C7IJvh_P.js.map +1 -0
  122. package/dist/chunks/PressExtensions-DXqhjlR2.js +16 -0
  123. package/dist/chunks/PressExtensions-DXqhjlR2.js.map +1 -0
  124. package/dist/chunks/Primitive-Cm3ECaVw.js +20 -0
  125. package/dist/chunks/Primitive-Cm3ECaVw.js.map +1 -0
  126. package/dist/chunks/ProgressTone-BpLPUptx.js +16 -0
  127. package/dist/chunks/ProgressTone-BpLPUptx.js.map +1 -0
  128. package/dist/chunks/QueryPermission--OKfvS9c.js +82 -0
  129. package/dist/chunks/QueryPermission--OKfvS9c.js.map +1 -0
  130. package/dist/chunks/QueryPlugin-CfotNm6j.js +12 -0
  131. package/dist/chunks/QueryPlugin-CfotNm6j.js.map +1 -0
  132. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js +235 -0
  133. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js.map +1 -0
  134. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js +20 -0
  135. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js.map +1 -0
  136. package/dist/chunks/SerializeError-CclP2jCW.js +61 -0
  137. package/dist/chunks/SerializeError-CclP2jCW.js.map +1 -0
  138. package/dist/chunks/Severity-D0C5oAt-.js +16 -0
  139. package/dist/chunks/Severity-D0C5oAt-.js.map +1 -0
  140. package/dist/chunks/Side-CSys3p-F.js +23 -0
  141. package/dist/chunks/Side-CSys3p-F.js.map +1 -0
  142. package/dist/chunks/Slot-D2lIitvV.js +103 -0
  143. package/dist/chunks/Slot-D2lIitvV.js.map +1 -0
  144. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js +10364 -0
  145. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js.map +1 -0
  146. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js +23 -0
  147. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js.map +1 -0
  148. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js +76 -0
  149. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js.map +1 -0
  150. package/dist/chunks/StatusTone-BoPK1s09.js +16 -0
  151. package/dist/chunks/StatusTone-BoPK1s09.js.map +1 -0
  152. package/dist/chunks/StorageBroker-COC81ZGB.js +64 -0
  153. package/dist/chunks/StorageBroker-COC81ZGB.js.map +1 -0
  154. package/dist/chunks/StyleTokens-Bkz7Dm5L.js +65 -0
  155. package/dist/chunks/StyleTokens-Bkz7Dm5L.js.map +1 -0
  156. package/dist/chunks/SubmitErrors-K8nmmj0P.js +374 -0
  157. package/dist/chunks/SubmitErrors-K8nmmj0P.js.map +1 -0
  158. package/dist/chunks/SurfaceStyles-ChdpGRBO.js +143 -0
  159. package/dist/chunks/SurfaceStyles-ChdpGRBO.js.map +1 -0
  160. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js +2159 -0
  161. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js.map +1 -0
  162. package/dist/chunks/ToError-CyTBsmLO.js +52 -0
  163. package/dist/chunks/ToError-CyTBsmLO.js.map +1 -0
  164. package/dist/chunks/Tones-CI65uuq9.js +90 -0
  165. package/dist/chunks/Tones-CI65uuq9.js.map +1 -0
  166. package/dist/chunks/TransitionExtensions-hFi80JX2.js +19 -0
  167. package/dist/chunks/TransitionExtensions-hFi80JX2.js.map +1 -0
  168. package/dist/chunks/UseHotkeys-CKIYK5Mq.js +82 -0
  169. package/dist/chunks/UseHotkeys-CKIYK5Mq.js.map +1 -0
  170. package/dist/chunks/UseNavigationProgress-TQIkkXyU.js +51 -0
  171. package/dist/chunks/UseNavigationProgress-TQIkkXyU.js.map +1 -0
  172. package/dist/chunks/cn-CzDCF-Ah.js +9 -0
  173. package/dist/chunks/cn-CzDCF-Ah.js.map +1 -0
  174. package/dist/chunks/dataAttr-7BR67dTj.js +7 -0
  175. package/dist/chunks/dataAttr-7BR67dTj.js.map +1 -0
  176. package/dist/chunks/index-BD7H9CkO.js +130 -0
  177. package/dist/chunks/index-BD7H9CkO.js.map +1 -0
  178. package/dist/chunks/index-BGzbbN9T.js +1707 -0
  179. package/dist/chunks/index-BGzbbN9T.js.map +1 -0
  180. package/dist/chunks/index-C034dEhy.js +205 -0
  181. package/dist/chunks/index-C034dEhy.js.map +1 -0
  182. package/dist/chunks/index-Cbydgcdk.js +234 -0
  183. package/dist/chunks/index-Cbydgcdk.js.map +1 -0
  184. package/dist/chunks/index-CzKEU1kI.js +11 -0
  185. package/dist/chunks/index-CzKEU1kI.js.map +1 -0
  186. package/dist/chunks/index-KL15HQew.js +61 -0
  187. package/dist/chunks/index-KL15HQew.js.map +1 -0
  188. package/dist/chunks/index-drjQ833B.js +10 -0
  189. package/dist/chunks/index-drjQ833B.js.map +1 -0
  190. package/dist/chunks/useClipboard-BVRwXC--.js +37 -0
  191. package/dist/chunks/useClipboard-BVRwXC--.js.map +1 -0
  192. package/dist/chunks/useControlled-B6M4kTLn.js +24 -0
  193. package/dist/chunks/useControlled-B6M4kTLn.js.map +1 -0
  194. package/dist/chunks/useDebounceHandler-BIZgvvGp.js +20 -0
  195. package/dist/chunks/useDebounceHandler-BIZgvvGp.js.map +1 -0
  196. package/dist/chunks/useEscape-CYPdpm_l.js +15 -0
  197. package/dist/chunks/useEscape-CYPdpm_l.js.map +1 -0
  198. package/dist/chunks/useEventListener-gohT6zGs.js +16 -0
  199. package/dist/chunks/useEventListener-gohT6zGs.js.map +1 -0
  200. package/dist/chunks/useId-CtgAhGrn.js +9 -0
  201. package/dist/chunks/useId-CtgAhGrn.js.map +1 -0
  202. package/dist/chunks/useMediaQuery-DwVcSgGk.js +27 -0
  203. package/dist/chunks/useMediaQuery-DwVcSgGk.js.map +1 -0
  204. package/dist/chunks/useOutsideClick-CW80BJfE.js +22 -0
  205. package/dist/chunks/useOutsideClick-CW80BJfE.js.map +1 -0
  206. package/dist/chunks/useRecentItems-DFnt5CBy.js +137 -0
  207. package/dist/chunks/useRecentItems-DFnt5CBy.js.map +1 -0
  208. package/dist/chunks/useReducedMotion-B9LqQ3UT.js +8 -0
  209. package/dist/chunks/useReducedMotion-B9LqQ3UT.js.map +1 -0
  210. package/dist/chunks/useResizeObserver-BUU7lC-n.js +17 -0
  211. package/dist/chunks/useResizeObserver-BUU7lC-n.js.map +1 -0
  212. package/dist/chunks/useScrollLock-d6YIGUcs.js +37 -0
  213. package/dist/chunks/useScrollLock-d6YIGUcs.js.map +1 -0
  214. package/dist/domain/color/Gradient.d.ts +60 -0
  215. package/dist/domain/color/GradientType.d.ts +8 -0
  216. package/dist/domain/color/index.d.ts +3 -0
  217. package/dist/domain/color/index.js +6 -0
  218. package/dist/domain/color/index.js.map +1 -0
  219. package/dist/domain/emoji/EmojiCatalog.d.ts +29 -0
  220. package/dist/domain/emoji/EmojiCatalogData.d.ts +3 -0
  221. package/dist/domain/emoji/EmojiCategory.d.ts +20 -0
  222. package/dist/domain/emoji/index.d.ts +3 -0
  223. package/dist/domain/emoji/index.js +6 -0
  224. package/dist/domain/emoji/index.js.map +1 -0
  225. package/dist/feedback/FeedbackBus.d.ts +71 -0
  226. package/dist/feedback/FeedbackQueryErrors.d.ts +21 -0
  227. package/dist/feedback/index.d.ts +2 -0
  228. package/dist/feedback/index.js +20 -0
  229. package/dist/feedback/index.js.map +1 -0
  230. package/dist/flags/FlagClient.d.ts +72 -0
  231. package/dist/flags/FlagProvider.d.ts +38 -0
  232. package/dist/flags/FlagTypes.d.ts +85 -0
  233. package/dist/flags/FlagsContext.d.ts +32 -0
  234. package/dist/flags/FlagsProvider.vue.d.ts +24 -0
  235. package/dist/flags/StaticFlagProvider.d.ts +51 -0
  236. package/dist/flags/index.d.ts +6 -0
  237. package/dist/flags/index.js +243 -0
  238. package/dist/flags/index.js.map +1 -0
  239. package/dist/forms-engine/AppForm.d.ts +258 -0
  240. package/dist/forms-engine/DeepEqual.d.ts +8 -0
  241. package/dist/forms-engine/FocusFirstInvalid.d.ts +15 -0
  242. package/dist/forms-engine/FormGlue.d.ts +55 -0
  243. package/dist/forms-engine/Paths.d.ts +47 -0
  244. package/dist/forms-engine/SchemaValidation.d.ts +29 -0
  245. package/dist/forms-engine/StandardSchema.d.ts +55 -0
  246. package/dist/forms-engine/SubmitErrors.d.ts +33 -0
  247. package/dist/forms-engine/UseFieldArray.d.ts +87 -0
  248. package/dist/forms-engine/house/HouseFormCore.d.ts +33 -0
  249. package/dist/forms-engine/house/UseAppForm.d.ts +16 -0
  250. package/dist/forms-engine/house/index.d.ts +7 -0
  251. package/dist/forms-engine/house/index.js +315 -0
  252. package/dist/forms-engine/house/index.js.map +1 -0
  253. package/dist/forms-engine/index.d.ts +10 -0
  254. package/dist/forms-engine/index.js +127 -0
  255. package/dist/forms-engine/index.js.map +1 -0
  256. package/dist/forms-engine/tanstack/TanstackFormOverlay.d.ts +49 -0
  257. package/dist/forms-engine/tanstack/UseAppForm.d.ts +26 -0
  258. package/dist/forms-engine/tanstack/index.d.ts +8 -0
  259. package/dist/forms-engine/tanstack/index.js +407 -0
  260. package/dist/forms-engine/tanstack/index.js.map +1 -0
  261. package/dist/foundation/animation/Animate.d.ts +73 -0
  262. package/dist/foundation/animation/AnimatedLayout.d.ts +72 -0
  263. package/dist/foundation/animation/Flip.d.ts +90 -0
  264. package/dist/foundation/animation/UseFlip.d.ts +22 -0
  265. package/dist/foundation/animation/index.d.ts +4 -0
  266. package/dist/foundation/animation/index.js +241 -0
  267. package/dist/foundation/animation/index.js.map +1 -0
  268. package/dist/foundation/async/Abort.d.ts +33 -0
  269. package/dist/foundation/async/Combinators.d.ts +17 -0
  270. package/dist/foundation/async/Deferred.d.ts +18 -0
  271. package/dist/foundation/async/Limit.d.ts +36 -0
  272. package/dist/foundation/async/Rate.d.ts +31 -0
  273. package/dist/foundation/async/Retry.d.ts +20 -0
  274. package/dist/foundation/async/Timeout.d.ts +32 -0
  275. package/dist/foundation/async/index.d.ts +7 -0
  276. package/dist/foundation/async/index.js +290 -0
  277. package/dist/foundation/async/index.js.map +1 -0
  278. package/dist/foundation/clipboard/ClipboardPermission.d.ts +17 -0
  279. package/dist/foundation/clipboard/ClipboardResult.d.ts +102 -0
  280. package/dist/foundation/clipboard/ClipboardSupport.d.ts +55 -0
  281. package/dist/foundation/clipboard/CopyItems.d.ts +44 -0
  282. package/dist/foundation/clipboard/CopyText.d.ts +16 -0
  283. package/dist/foundation/clipboard/LegacyCopy.d.ts +38 -0
  284. package/dist/foundation/clipboard/PasteItems.d.ts +25 -0
  285. package/dist/foundation/clipboard/ReadClipboard.d.ts +29 -0
  286. package/dist/foundation/clipboard/UseClipboardCopy.d.ts +40 -0
  287. package/dist/foundation/clipboard/UsePasteHandler.d.ts +35 -0
  288. package/dist/foundation/clipboard/index.d.ts +10 -0
  289. package/dist/foundation/clipboard/index.js +437 -0
  290. package/dist/foundation/clipboard/index.js.map +1 -0
  291. package/dist/foundation/collections/Arrays.d.ts +131 -0
  292. package/dist/foundation/collections/Comparison.d.ts +39 -0
  293. package/dist/foundation/collections/Records.d.ts +72 -0
  294. package/dist/foundation/collections/SetOps.d.ts +45 -0
  295. package/dist/foundation/collections/Tree.d.ts +63 -0
  296. package/dist/foundation/collections/index.d.ts +5 -0
  297. package/dist/foundation/collections/index.js +460 -0
  298. package/dist/foundation/collections/index.js.map +1 -0
  299. package/dist/foundation/commands/Command.d.ts +46 -0
  300. package/dist/foundation/commands/CommandRegistry.d.ts +36 -0
  301. package/dist/foundation/commands/CommandShortcut.d.ts +8 -0
  302. package/dist/foundation/commands/CommandsContext.d.ts +30 -0
  303. package/dist/foundation/commands/CommandsProvider.vue.d.ts +18 -0
  304. package/dist/foundation/commands/SearchCommands.d.ts +28 -0
  305. package/dist/foundation/commands/UseCommandRegistry.d.ts +19 -0
  306. package/dist/foundation/commands/UseCommandShortcuts.d.ts +18 -0
  307. package/dist/foundation/commands/index.d.ts +8 -0
  308. package/dist/foundation/commands/index.js +278 -0
  309. package/dist/foundation/commands/index.js.map +1 -0
  310. package/dist/foundation/config/ConfigField.d.ts +60 -0
  311. package/dist/foundation/config/ConfigSource.d.ts +24 -0
  312. package/dist/foundation/config/DefineConfig.d.ts +43 -0
  313. package/dist/foundation/config/index.d.ts +3 -0
  314. package/dist/foundation/config/index.js +186 -0
  315. package/dist/foundation/config/index.js.map +1 -0
  316. package/dist/foundation/crypto/Digest.d.ts +25 -0
  317. package/dist/foundation/crypto/Encoding.d.ts +43 -0
  318. package/dist/foundation/crypto/HashObject.d.ts +18 -0
  319. package/dist/foundation/crypto/Random.d.ts +32 -0
  320. package/dist/foundation/crypto/TimingSafeEqual.d.ts +12 -0
  321. package/dist/foundation/crypto/WebCrypto.d.ts +15 -0
  322. package/dist/foundation/crypto/index.d.ts +6 -0
  323. package/dist/foundation/crypto/index.js +226 -0
  324. package/dist/foundation/crypto/index.js.map +1 -0
  325. package/dist/foundation/datetime/Arithmetic.d.ts +31 -0
  326. package/dist/foundation/datetime/Boundaries.d.ts +24 -0
  327. package/dist/foundation/datetime/Comparison.d.ts +43 -0
  328. package/dist/foundation/datetime/Difference.d.ts +28 -0
  329. package/dist/foundation/datetime/Internals.d.ts +12 -0
  330. package/dist/foundation/datetime/Interval.d.ts +38 -0
  331. package/dist/foundation/datetime/IsoDate.d.ts +24 -0
  332. package/dist/foundation/datetime/index.d.ts +6 -0
  333. package/dist/foundation/datetime/index.js +302 -0
  334. package/dist/foundation/datetime/index.js.map +1 -0
  335. package/dist/foundation/device/Breakpoints.d.ts +54 -0
  336. package/dist/foundation/device/DisplayMode.d.ts +13 -0
  337. package/dist/foundation/device/Platform.d.ts +27 -0
  338. package/dist/foundation/device/PointerType.d.ts +11 -0
  339. package/dist/foundation/device/UseBreakpoint.d.ts +20 -0
  340. package/dist/foundation/device/UseDisplayMode.d.ts +23 -0
  341. package/dist/foundation/device/UseOnlineStatus.d.ts +12 -0
  342. package/dist/foundation/device/UsePointer.d.ts +25 -0
  343. package/dist/foundation/device/index.d.ts +8 -0
  344. package/dist/foundation/device/index.js +187 -0
  345. package/dist/foundation/device/index.js.map +1 -0
  346. package/dist/foundation/errors/ErrorChain.d.ts +23 -0
  347. package/dist/foundation/errors/ErrorLike.d.ts +35 -0
  348. package/dist/foundation/errors/ErrorMessage.d.ts +13 -0
  349. package/dist/foundation/errors/ErrorRecognizers.d.ts +18 -0
  350. package/dist/foundation/errors/SerializeError.d.ts +25 -0
  351. package/dist/foundation/errors/ToError.d.ts +15 -0
  352. package/dist/foundation/errors/index.d.ts +6 -0
  353. package/dist/foundation/errors/index.js +18 -0
  354. package/dist/foundation/errors/index.js.map +1 -0
  355. package/dist/foundation/files/Accept.d.ts +30 -0
  356. package/dist/foundation/files/DownloadFile.d.ts +10 -0
  357. package/dist/foundation/files/FileName.d.ts +21 -0
  358. package/dist/foundation/files/ReadFile.d.ts +6 -0
  359. package/dist/foundation/files/index.d.ts +4 -0
  360. package/dist/foundation/files/index.js +62 -0
  361. package/dist/foundation/files/index.js.map +1 -0
  362. package/dist/foundation/format/Bytes.d.ts +15 -0
  363. package/dist/foundation/format/Count.d.ts +10 -0
  364. package/dist/foundation/format/Duration.d.ts +13 -0
  365. package/dist/foundation/format/Text.d.ts +51 -0
  366. package/dist/foundation/format/index.d.ts +4 -0
  367. package/dist/foundation/format/index.js +100 -0
  368. package/dist/foundation/format/index.js.map +1 -0
  369. package/dist/foundation/geolocation/CanLocate.d.ts +18 -0
  370. package/dist/foundation/geolocation/Coordinates.d.ts +41 -0
  371. package/dist/foundation/geolocation/DistanceBetween.d.ts +21 -0
  372. package/dist/foundation/geolocation/GeolocationPermission.d.ts +13 -0
  373. package/dist/foundation/geolocation/GeolocationReading.d.ts +30 -0
  374. package/dist/foundation/geolocation/GetCurrentPosition.d.ts +14 -0
  375. package/dist/foundation/geolocation/PositionResult.d.ts +74 -0
  376. package/dist/foundation/geolocation/UseGeolocation.d.ts +38 -0
  377. package/dist/foundation/geolocation/UseWatchPosition.d.ts +16 -0
  378. package/dist/foundation/geolocation/WatchPosition.d.ts +19 -0
  379. package/dist/foundation/geolocation/index.d.ts +10 -0
  380. package/dist/foundation/geolocation/index.js +236 -0
  381. package/dist/foundation/geolocation/index.js.map +1 -0
  382. package/dist/foundation/gestures/GestureAxis.d.ts +11 -0
  383. package/dist/foundation/gestures/GestureMath.d.ts +182 -0
  384. package/dist/foundation/gestures/SwipeDirection.d.ts +13 -0
  385. package/dist/foundation/gestures/UseDrag.d.ts +75 -0
  386. package/dist/foundation/gestures/UseLongPress.d.ts +42 -0
  387. package/dist/foundation/gestures/UsePinch.d.ts +47 -0
  388. package/dist/foundation/gestures/UseSwipe.d.ts +46 -0
  389. package/dist/foundation/gestures/index.d.ts +7 -0
  390. package/dist/foundation/gestures/index.js +440 -0
  391. package/dist/foundation/gestures/index.js.map +1 -0
  392. package/dist/foundation/hooks/index.d.ts +17 -0
  393. package/dist/foundation/hooks/index.js +34 -0
  394. package/dist/foundation/hooks/index.js.map +1 -0
  395. package/dist/foundation/hooks/useAutosave/index.d.ts +1 -0
  396. package/dist/foundation/hooks/useAutosave/useAutosave.d.ts +46 -0
  397. package/dist/foundation/hooks/useClipboard/index.d.ts +1 -0
  398. package/dist/foundation/hooks/useClipboard/useClipboard.d.ts +24 -0
  399. package/dist/foundation/hooks/useControlled/index.d.ts +1 -0
  400. package/dist/foundation/hooks/useControlled/useControlled.d.ts +31 -0
  401. package/dist/foundation/hooks/useDebounceHandler/index.d.ts +1 -0
  402. package/dist/foundation/hooks/useDebounceHandler/useDebounceHandler.d.ts +16 -0
  403. package/dist/foundation/hooks/useDisclosure/index.d.ts +1 -0
  404. package/dist/foundation/hooks/useDisclosure/useDisclosure.d.ts +18 -0
  405. package/dist/foundation/hooks/useEscape/index.d.ts +1 -0
  406. package/dist/foundation/hooks/useEscape/useEscape.d.ts +10 -0
  407. package/dist/foundation/hooks/useEventListener/index.d.ts +1 -0
  408. package/dist/foundation/hooks/useEventListener/useEventListener.d.ts +17 -0
  409. package/dist/foundation/hooks/useFocusTrap/index.d.ts +1 -0
  410. package/dist/foundation/hooks/useFocusTrap/useFocusTrap.d.ts +15 -0
  411. package/dist/foundation/hooks/useId/index.d.ts +1 -0
  412. package/dist/foundation/hooks/useId/useId.d.ts +8 -0
  413. package/dist/foundation/hooks/useMediaQuery/index.d.ts +1 -0
  414. package/dist/foundation/hooks/useMediaQuery/useMediaQuery.d.ts +12 -0
  415. package/dist/foundation/hooks/useOutsideClick/index.d.ts +1 -0
  416. package/dist/foundation/hooks/useOutsideClick/useOutsideClick.d.ts +12 -0
  417. package/dist/foundation/hooks/usePersistentState/index.d.ts +1 -0
  418. package/dist/foundation/hooks/usePersistentState/usePersistentState.d.ts +31 -0
  419. package/dist/foundation/hooks/useRecentItems/index.d.ts +1 -0
  420. package/dist/foundation/hooks/useRecentItems/useRecentItems.d.ts +34 -0
  421. package/dist/foundation/hooks/useReducedMotion/index.d.ts +1 -0
  422. package/dist/foundation/hooks/useReducedMotion/useReducedMotion.d.ts +7 -0
  423. package/dist/foundation/hooks/useResizeObserver/index.d.ts +1 -0
  424. package/dist/foundation/hooks/useResizeObserver/useResizeObserver.d.ts +11 -0
  425. package/dist/foundation/hooks/useScrollLock/index.d.ts +1 -0
  426. package/dist/foundation/hooks/useScrollLock/useScrollLock.d.ts +11 -0
  427. package/dist/foundation/hooks/useTypeahead/index.d.ts +1 -0
  428. package/dist/foundation/hooks/useTypeahead/useTypeahead.d.ts +42 -0
  429. package/dist/foundation/http/ApiError.d.ts +7 -0
  430. package/dist/foundation/http/ApiResponse.d.ts +4 -0
  431. package/dist/foundation/http/CreateApiClient.d.ts +65 -0
  432. package/dist/foundation/http/DateBrands.d.ts +8 -0
  433. package/dist/foundation/http/Envelope.d.ts +33 -0
  434. package/dist/foundation/http/FieldErrors.d.ts +16 -0
  435. package/dist/foundation/http/Page.d.ts +47 -0
  436. package/dist/foundation/http/ProblemDetails.d.ts +9 -0
  437. package/dist/foundation/http/index.d.ts +9 -0
  438. package/dist/foundation/http/index.js +180 -0
  439. package/dist/foundation/http/index.js.map +1 -0
  440. package/dist/foundation/http/temporalReviver.d.ts +9 -0
  441. package/dist/foundation/i18n/FormattedRelative.vue.d.ts +10 -0
  442. package/dist/foundation/i18n/LocaleContext.d.ts +35 -0
  443. package/dist/foundation/i18n/LocaleFormatters.d.ts +24 -0
  444. package/dist/foundation/i18n/LocaleProvider.vue.d.ts +18 -0
  445. package/dist/foundation/i18n/index.d.ts +4 -0
  446. package/dist/foundation/i18n/index.js +79 -0
  447. package/dist/foundation/i18n/index.js.map +1 -0
  448. package/dist/foundation/icons/Icon.vue.d.ts +40 -0
  449. package/dist/foundation/icons/Spinner.vue.d.ts +7 -0
  450. package/dist/foundation/icons/index.d.ts +2 -0
  451. package/dist/foundation/icons/index.js +7 -0
  452. package/dist/foundation/icons/index.js.map +1 -0
  453. package/dist/foundation/idb/IdbPromises.d.ts +25 -0
  454. package/dist/foundation/idb/IndexedDbSupport.d.ts +32 -0
  455. package/dist/foundation/idb/KeyValueStore.d.ts +84 -0
  456. package/dist/foundation/idb/OpenDatabase.d.ts +62 -0
  457. package/dist/foundation/idb/Transactions.d.ts +44 -0
  458. package/dist/foundation/idb/index.d.ts +5 -0
  459. package/dist/foundation/idb/index.js +403 -0
  460. package/dist/foundation/idb/index.js.map +1 -0
  461. package/dist/foundation/identifiers/Guid.d.ts +41 -0
  462. package/dist/foundation/identifiers/index.d.ts +1 -0
  463. package/dist/foundation/identifiers/index.js +68 -0
  464. package/dist/foundation/identifiers/index.js.map +1 -0
  465. package/dist/foundation/logger/ConsoleLogSink.d.ts +8 -0
  466. package/dist/foundation/logger/LogLevel.d.ts +34 -0
  467. package/dist/foundation/logger/LogRecord.d.ts +17 -0
  468. package/dist/foundation/logger/LogSink.d.ts +17 -0
  469. package/dist/foundation/logger/Logger.d.ts +55 -0
  470. package/dist/foundation/logger/MemoryLogSink.d.ts +11 -0
  471. package/dist/foundation/logger/Redaction.d.ts +29 -0
  472. package/dist/foundation/logger/index.d.ts +7 -0
  473. package/dist/foundation/logger/index.js +232 -0
  474. package/dist/foundation/logger/index.js.map +1 -0
  475. package/dist/foundation/media/CanCaptureMedia.d.ts +36 -0
  476. package/dist/foundation/media/FacingMode.d.ts +45 -0
  477. package/dist/foundation/media/ListMediaDevices.d.ts +41 -0
  478. package/dist/foundation/media/MediaPermission.d.ts +23 -0
  479. package/dist/foundation/media/MediaStreamResult.d.ts +45 -0
  480. package/dist/foundation/media/RequestMediaStream.d.ts +37 -0
  481. package/dist/foundation/media/StopMediaStream.d.ts +10 -0
  482. package/dist/foundation/media/UseMediaStream.d.ts +41 -0
  483. package/dist/foundation/media/index.d.ts +8 -0
  484. package/dist/foundation/media/index.js +218 -0
  485. package/dist/foundation/media/index.js.map +1 -0
  486. package/dist/foundation/net/ConnectionState.d.ts +36 -0
  487. package/dist/foundation/net/CreateEventStream.d.ts +101 -0
  488. package/dist/foundation/net/CreatePoller.d.ts +59 -0
  489. package/dist/foundation/net/CreateSocketClient.d.ts +93 -0
  490. package/dist/foundation/net/Liveness.d.ts +41 -0
  491. package/dist/foundation/net/Reconnect.d.ts +49 -0
  492. package/dist/foundation/net/UseEventStream.d.ts +25 -0
  493. package/dist/foundation/net/UsePolling.d.ts +26 -0
  494. package/dist/foundation/net/UseSocket.d.ts +32 -0
  495. package/dist/foundation/net/index.d.ts +9 -0
  496. package/dist/foundation/net/index.js +840 -0
  497. package/dist/foundation/net/index.js.map +1 -0
  498. package/dist/foundation/notifications/CanNotify.d.ts +11 -0
  499. package/dist/foundation/notifications/NotificationPermission.d.ts +31 -0
  500. package/dist/foundation/notifications/Notify.d.ts +66 -0
  501. package/dist/foundation/notifications/QueryPermission.d.ts +55 -0
  502. package/dist/foundation/notifications/UseNotificationPermission.d.ts +27 -0
  503. package/dist/foundation/notifications/UsePermissionState.d.ts +14 -0
  504. package/dist/foundation/notifications/index.d.ts +6 -0
  505. package/dist/foundation/notifications/index.js +199 -0
  506. package/dist/foundation/notifications/index.js.map +1 -0
  507. package/dist/foundation/observers/ObserveIntersection.d.ts +57 -0
  508. package/dist/foundation/observers/ObserveMutation.d.ts +52 -0
  509. package/dist/foundation/observers/UseInView.d.ts +41 -0
  510. package/dist/foundation/observers/UseIntersectionObserver.d.ts +18 -0
  511. package/dist/foundation/observers/UseMutationObserver.d.ts +21 -0
  512. package/dist/foundation/observers/UseVisibility.d.ts +33 -0
  513. package/dist/foundation/observers/VisibilitySteps.d.ts +14 -0
  514. package/dist/foundation/observers/index.d.ts +7 -0
  515. package/dist/foundation/observers/index.js +199 -0
  516. package/dist/foundation/observers/index.js.map +1 -0
  517. package/dist/foundation/primitives/accessibleIcon/AccessibleIcon.d.ts +27 -0
  518. package/dist/foundation/primitives/accessibleIcon/index.d.ts +1 -0
  519. package/dist/foundation/primitives/anchoredPositioner/AnchoredPositioner.vue.d.ts +37 -0
  520. package/dist/foundation/primitives/anchoredPositioner/index.d.ts +1 -0
  521. package/dist/foundation/primitives/announce/Announce.vue.d.ts +28 -0
  522. package/dist/foundation/primitives/announce/index.d.ts +1 -0
  523. package/dist/foundation/primitives/collection/Collection.d.ts +24 -0
  524. package/dist/foundation/primitives/collection/index.d.ts +1 -0
  525. package/dist/foundation/primitives/colorModeProvider/ColorModeContext.d.ts +26 -0
  526. package/dist/foundation/primitives/colorModeProvider/ColorModeProvider.vue.d.ts +20 -0
  527. package/dist/foundation/primitives/colorModeProvider/index.d.ts +2 -0
  528. package/dist/foundation/primitives/directionProvider/DirectionContext.d.ts +23 -0
  529. package/dist/foundation/primitives/directionProvider/DirectionProvider.vue.d.ts +14 -0
  530. package/dist/foundation/primitives/directionProvider/index.d.ts +2 -0
  531. package/dist/foundation/primitives/dismissableLayer/DismissableLayer.vue.d.ts +22 -0
  532. package/dist/foundation/primitives/dismissableLayer/index.d.ts +1 -0
  533. package/dist/foundation/primitives/focusScope/FocusScope.vue.d.ts +26 -0
  534. package/dist/foundation/primitives/focusScope/index.d.ts +1 -0
  535. package/dist/foundation/primitives/formControlContext/FormControlContext.d.ts +57 -0
  536. package/dist/foundation/primitives/formControlContext/FormControlProvider.vue.d.ts +25 -0
  537. package/dist/foundation/primitives/formControlContext/index.d.ts +2 -0
  538. package/dist/foundation/primitives/index.d.ts +17 -0
  539. package/dist/foundation/primitives/index.js +52 -0
  540. package/dist/foundation/primitives/index.js.map +1 -0
  541. package/dist/foundation/primitives/overlayArrow/OverlayArrow.vue.d.ts +27 -0
  542. package/dist/foundation/primitives/overlayArrow/index.d.ts +1 -0
  543. package/dist/foundation/primitives/portal/Portal.vue.d.ts +16 -0
  544. package/dist/foundation/primitives/portal/index.d.ts +1 -0
  545. package/dist/foundation/primitives/presence/Presence.d.ts +32 -0
  546. package/dist/foundation/primitives/presence/index.d.ts +1 -0
  547. package/dist/foundation/primitives/rovingFocusGroup/RovingFocusContext.d.ts +74 -0
  548. package/dist/foundation/primitives/rovingFocusGroup/RovingFocusGroup.vue.d.ts +20 -0
  549. package/dist/foundation/primitives/rovingFocusGroup/index.d.ts +2 -0
  550. package/dist/foundation/primitives/scrollLockProvider/ScrollLockProvider.vue.d.ts +15 -0
  551. package/dist/foundation/primitives/scrollLockProvider/index.d.ts +1 -0
  552. package/dist/foundation/primitives/scrollViewport/ScrollViewport.vue.d.ts +41 -0
  553. package/dist/foundation/primitives/scrollViewport/index.d.ts +1 -0
  554. package/dist/foundation/primitives/slot/Primitive.d.ts +69 -0
  555. package/dist/foundation/primitives/slot/Slot.d.ts +38 -0
  556. package/dist/foundation/primitives/slot/index.d.ts +2 -0
  557. package/dist/foundation/primitives/visuallyHidden/VisuallyHidden.vue.d.ts +11 -0
  558. package/dist/foundation/primitives/visuallyHidden/index.d.ts +1 -0
  559. package/dist/foundation/resilience/BackoffStrategy.d.ts +10 -0
  560. package/dist/foundation/resilience/JitterStrategy.d.ts +12 -0
  561. package/dist/foundation/resilience/RetryDelay.d.ts +5 -0
  562. package/dist/foundation/resilience/RetryPolicy.d.ts +34 -0
  563. package/dist/foundation/resilience/index.d.ts +4 -0
  564. package/dist/foundation/resilience/index.js +63 -0
  565. package/dist/foundation/resilience/index.js.map +1 -0
  566. package/dist/foundation/screen/Fullscreen.d.ts +73 -0
  567. package/dist/foundation/screen/ScreenEnvironment.d.ts +42 -0
  568. package/dist/foundation/screen/ScreenOrientation.d.ts +110 -0
  569. package/dist/foundation/screen/ScreenResult.d.ts +38 -0
  570. package/dist/foundation/screen/UseFullscreen.d.ts +28 -0
  571. package/dist/foundation/screen/UseOrientation.d.ts +28 -0
  572. package/dist/foundation/screen/UseWakeLock.d.ts +18 -0
  573. package/dist/foundation/screen/WakeLock.d.ts +79 -0
  574. package/dist/foundation/screen/index.d.ts +7 -0
  575. package/dist/foundation/screen/index.js +402 -0
  576. package/dist/foundation/screen/index.js.map +1 -0
  577. package/dist/foundation/selection/Field.d.ts +31 -0
  578. package/dist/foundation/selection/Filter.d.ts +71 -0
  579. package/dist/foundation/selection/Selection.d.ts +116 -0
  580. package/dist/foundation/selection/Sort.d.ts +69 -0
  581. package/dist/foundation/selection/UseFilters.d.ts +34 -0
  582. package/dist/foundation/selection/UseSelection.d.ts +54 -0
  583. package/dist/foundation/selection/UseSort.d.ts +36 -0
  584. package/dist/foundation/selection/index.d.ts +7 -0
  585. package/dist/foundation/selection/index.js +407 -0
  586. package/dist/foundation/selection/index.js.map +1 -0
  587. package/dist/foundation/share/CanShare.d.ts +11 -0
  588. package/dist/foundation/share/Share.d.ts +45 -0
  589. package/dist/foundation/share/ShareData.d.ts +43 -0
  590. package/dist/foundation/share/ShareOrCopy.d.ts +27 -0
  591. package/dist/foundation/share/UseShare.d.ts +30 -0
  592. package/dist/foundation/share/index.d.ts +5 -0
  593. package/dist/foundation/share/index.js +111 -0
  594. package/dist/foundation/share/index.js.map +1 -0
  595. package/dist/foundation/shortcuts/Chord.d.ts +51 -0
  596. package/dist/foundation/shortcuts/UseHotkeys.d.ts +34 -0
  597. package/dist/foundation/shortcuts/index.d.ts +3 -0
  598. package/dist/foundation/shortcuts/index.js +15 -0
  599. package/dist/foundation/shortcuts/index.js.map +1 -0
  600. package/dist/foundation/speech/CreateSpeechRecognizer.d.ts +79 -0
  601. package/dist/foundation/speech/ListVoices.d.ts +78 -0
  602. package/dist/foundation/speech/Speak.d.ts +52 -0
  603. package/dist/foundation/speech/SpeechControls.d.ts +57 -0
  604. package/dist/foundation/speech/SpeechRecognitionResult.d.ts +45 -0
  605. package/dist/foundation/speech/SpeechRecognitionTypes.d.ts +67 -0
  606. package/dist/foundation/speech/SpeechResult.d.ts +32 -0
  607. package/dist/foundation/speech/SpeechSupport.d.ts +69 -0
  608. package/dist/foundation/speech/UseSpeechRecognition.d.ts +45 -0
  609. package/dist/foundation/speech/UseSpeechSynthesis.d.ts +37 -0
  610. package/dist/foundation/speech/index.d.ts +10 -0
  611. package/dist/foundation/speech/index.js +573 -0
  612. package/dist/foundation/speech/index.js.map +1 -0
  613. package/dist/foundation/storage/NamespacedBroker.d.ts +7 -0
  614. package/dist/foundation/storage/StorageBroker.d.ts +17 -0
  615. package/dist/foundation/storage/VersionedStore.d.ts +42 -0
  616. package/dist/foundation/storage/index.d.ts +3 -0
  617. package/dist/foundation/storage/index.js +65 -0
  618. package/dist/foundation/storage/index.js.map +1 -0
  619. package/dist/foundation/storage/zustand/ZustandPersist.d.ts +36 -0
  620. package/dist/foundation/storage/zustand/index.d.ts +1 -0
  621. package/dist/foundation/storage/zustand/index.js +11 -0
  622. package/dist/foundation/storage/zustand/index.js.map +1 -0
  623. package/dist/foundation/sync/CreateSyncChannel.d.ts +16 -0
  624. package/dist/foundation/sync/LeaderElection.d.ts +88 -0
  625. package/dist/foundation/sync/MemorySyncHub.d.ts +29 -0
  626. package/dist/foundation/sync/SyncChannel.d.ts +65 -0
  627. package/dist/foundation/sync/UseBroadcastState.d.ts +31 -0
  628. package/dist/foundation/sync/UseLeaderElection.d.ts +25 -0
  629. package/dist/foundation/sync/UseSyncChannel.d.ts +16 -0
  630. package/dist/foundation/sync/index.d.ts +7 -0
  631. package/dist/foundation/sync/index.js +484 -0
  632. package/dist/foundation/sync/index.js.map +1 -0
  633. package/dist/foundation/themes/Oklch.d.ts +42 -0
  634. package/dist/foundation/themes/Theme.d.ts +112 -0
  635. package/dist/foundation/themes/Tokens.d.ts +40 -0
  636. package/dist/foundation/themes/css.d.ts +20 -0
  637. package/dist/foundation/themes/generate.d.ts +6 -0
  638. package/dist/foundation/themes/index.d.ts +11 -0
  639. package/dist/foundation/themes/index.js +37 -0
  640. package/dist/foundation/themes/index.js.map +1 -0
  641. package/dist/foundation/themes/pool.d.ts +3 -0
  642. package/dist/foundation/themes/registry.d.ts +16 -0
  643. package/dist/foundation/themes/validate.d.ts +25 -0
  644. package/dist/foundation/themes/validated.d.ts +3 -0
  645. package/dist/foundation/undo/HistoryCore.d.ts +92 -0
  646. package/dist/foundation/undo/SnapshotHistory.d.ts +33 -0
  647. package/dist/foundation/undo/UndoHistory.d.ts +41 -0
  648. package/dist/foundation/undo/UseUndoHistory.d.ts +66 -0
  649. package/dist/foundation/undo/UseUndoShortcuts.d.ts +20 -0
  650. package/dist/foundation/undo/index.d.ts +5 -0
  651. package/dist/foundation/undo/index.js +361 -0
  652. package/dist/foundation/undo/index.js.map +1 -0
  653. package/dist/foundation/uploads/UploadItem.d.ts +47 -0
  654. package/dist/foundation/uploads/UploadQueue.d.ts +79 -0
  655. package/dist/foundation/uploads/UploadTransport.d.ts +41 -0
  656. package/dist/foundation/uploads/UseUploadQueue.d.ts +47 -0
  657. package/dist/foundation/uploads/XhrUploadTransport.d.ts +23 -0
  658. package/dist/foundation/uploads/index.d.ts +5 -0
  659. package/dist/foundation/uploads/index.js +449 -0
  660. package/dist/foundation/uploads/index.js.map +1 -0
  661. package/dist/foundation/utils/Align/Align.d.ts +10 -0
  662. package/dist/foundation/utils/Align/index.d.ts +1 -0
  663. package/dist/foundation/utils/ColorExtensions/ColorExtensions.d.ts +51 -0
  664. package/dist/foundation/utils/ColorExtensions/index.d.ts +1 -0
  665. package/dist/foundation/utils/Compare/Compare.d.ts +7 -0
  666. package/dist/foundation/utils/Compare/index.d.ts +1 -0
  667. package/dist/foundation/utils/CornerPosition/CornerPosition.d.ts +12 -0
  668. package/dist/foundation/utils/CornerPosition/index.d.ts +1 -0
  669. package/dist/foundation/utils/CssExtensions/CssExtensions.d.ts +115 -0
  670. package/dist/foundation/utils/CssExtensions/index.d.ts +1 -0
  671. package/dist/foundation/utils/ElementTag/ElementTag.d.ts +28 -0
  672. package/dist/foundation/utils/ElementTag/index.d.ts +1 -0
  673. package/dist/foundation/utils/Environment/Environment.d.ts +12 -0
  674. package/dist/foundation/utils/Environment/index.d.ts +1 -0
  675. package/dist/foundation/utils/Equality/Equality.d.ts +13 -0
  676. package/dist/foundation/utils/Equality/index.d.ts +1 -0
  677. package/dist/foundation/utils/HtmlExtensions/HtmlExtensions.d.ts +22 -0
  678. package/dist/foundation/utils/HtmlExtensions/index.d.ts +1 -0
  679. package/dist/foundation/utils/KeyboardExtensions/KeyboardExtensions.d.ts +32 -0
  680. package/dist/foundation/utils/KeyboardExtensions/index.d.ts +1 -0
  681. package/dist/foundation/utils/Layers/Layers.d.ts +35 -0
  682. package/dist/foundation/utils/Layers/index.d.ts +1 -0
  683. package/dist/foundation/utils/OptionalExtensions/OptionalExtensions.d.ts +12 -0
  684. package/dist/foundation/utils/OptionalExtensions/index.d.ts +1 -0
  685. package/dist/foundation/utils/Orientation/Orientation.d.ts +8 -0
  686. package/dist/foundation/utils/Orientation/index.d.ts +1 -0
  687. package/dist/foundation/utils/OverlayPosition/OverlayPosition.d.ts +16 -0
  688. package/dist/foundation/utils/OverlayPosition/index.d.ts +1 -0
  689. package/dist/foundation/utils/PressExtensions/PressExtensions.d.ts +17 -0
  690. package/dist/foundation/utils/PressExtensions/index.d.ts +1 -0
  691. package/dist/foundation/utils/ProgressTone/ProgressTone.d.ts +14 -0
  692. package/dist/foundation/utils/ProgressTone/index.d.ts +1 -0
  693. package/dist/foundation/utils/Severity/Severity.d.ts +14 -0
  694. package/dist/foundation/utils/Severity/index.d.ts +1 -0
  695. package/dist/foundation/utils/Side/Side.d.ts +12 -0
  696. package/dist/foundation/utils/Side/index.d.ts +1 -0
  697. package/dist/foundation/utils/StatusTone/StatusTone.d.ts +14 -0
  698. package/dist/foundation/utils/StatusTone/index.d.ts +1 -0
  699. package/dist/foundation/utils/StyleTokens/StyleTokens.d.ts +68 -0
  700. package/dist/foundation/utils/StyleTokens/index.d.ts +1 -0
  701. package/dist/foundation/utils/SurfaceStyles/SurfaceStyles.d.ts +397 -0
  702. package/dist/foundation/utils/SurfaceStyles/index.d.ts +1 -0
  703. package/dist/foundation/utils/Tones/Tones.d.ts +21 -0
  704. package/dist/foundation/utils/Tones/index.d.ts +1 -0
  705. package/dist/foundation/utils/TransitionExtensions/TransitionExtensions.d.ts +18 -0
  706. package/dist/foundation/utils/TransitionExtensions/index.d.ts +1 -0
  707. package/dist/foundation/utils/cn/cn.d.ts +6 -0
  708. package/dist/foundation/utils/cn/index.d.ts +1 -0
  709. package/dist/foundation/utils/composeEventHandlers/composeEventHandlers.d.ts +9 -0
  710. package/dist/foundation/utils/composeEventHandlers/index.d.ts +1 -0
  711. package/dist/foundation/utils/dataAttr/dataAttr.d.ts +6 -0
  712. package/dist/foundation/utils/dataAttr/index.d.ts +1 -0
  713. package/dist/foundation/utils/index.d.ts +33 -0
  714. package/dist/foundation/utils/index.js +67 -0
  715. package/dist/foundation/utils/index.js.map +1 -0
  716. package/dist/foundation/utils/polymorphic/index.d.ts +1 -0
  717. package/dist/foundation/utils/polymorphic/polymorphic.d.ts +29 -0
  718. package/dist/foundation/utils/tv/index.d.ts +1 -0
  719. package/dist/foundation/utils/tv/tv.d.ts +1 -0
  720. package/dist/foundation/validation/Composites.d.ts +62 -0
  721. package/dist/foundation/validation/Formats.d.ts +9 -0
  722. package/dist/foundation/validation/Messages.d.ts +69 -0
  723. package/dist/foundation/validation/Primitives.d.ts +49 -0
  724. package/dist/foundation/validation/StandardSchema.d.ts +55 -0
  725. package/dist/foundation/validation/ValidationError.d.ts +14 -0
  726. package/dist/foundation/validation/ValidationResult.d.ts +49 -0
  727. package/dist/foundation/validation/Validator.d.ts +69 -0
  728. package/dist/foundation/validation/index.d.ts +8 -0
  729. package/dist/foundation/validation/index.js +512 -0
  730. package/dist/foundation/validation/index.js.map +1 -0
  731. package/dist/foundation/virtualization/Measurements.d.ts +79 -0
  732. package/dist/foundation/virtualization/UseVirtualList.d.ts +79 -0
  733. package/dist/foundation/virtualization/Windowing.d.ts +78 -0
  734. package/dist/foundation/virtualization/index.d.ts +3 -0
  735. package/dist/foundation/virtualization/index.js +300 -0
  736. package/dist/foundation/virtualization/index.js.map +1 -0
  737. package/dist/foundation/workers/RunInWorker.d.ts +41 -0
  738. package/dist/foundation/workers/UseWorker.d.ts +28 -0
  739. package/dist/foundation/workers/WorkerClient.d.ts +85 -0
  740. package/dist/foundation/workers/WorkerHost.d.ts +80 -0
  741. package/dist/foundation/workers/WorkerProtocol.d.ts +78 -0
  742. package/dist/foundation/workers/WorkerSupport.d.ts +15 -0
  743. package/dist/foundation/workers/index.d.ts +6 -0
  744. package/dist/foundation/workers/index.js +292 -0
  745. package/dist/foundation/workers/index.js.map +1 -0
  746. package/dist/index.css +314 -0
  747. package/dist/index.d.ts +14 -0
  748. package/dist/index.js +636 -0
  749. package/dist/index.js.map +1 -0
  750. package/dist/presentation/actions/backToTopButton/BackToTopButton.vue.d.ts +33 -0
  751. package/dist/presentation/actions/backToTopButton/index.d.ts +1 -0
  752. package/dist/presentation/actions/button/Button.variants.d.ts +311 -0
  753. package/dist/presentation/actions/button/Button.vue.d.ts +119 -0
  754. package/dist/presentation/actions/button/index.d.ts +2 -0
  755. package/dist/presentation/actions/buttonGroup/ButtonGroup.vue.d.ts +22 -0
  756. package/dist/presentation/actions/buttonGroup/index.d.ts +1 -0
  757. package/dist/presentation/actions/copyButton/CopyButton.vue.d.ts +35 -0
  758. package/dist/presentation/actions/copyButton/index.d.ts +1 -0
  759. package/dist/presentation/actions/disclosureButton/DisclosureButton.vue.d.ts +32 -0
  760. package/dist/presentation/actions/disclosureButton/index.d.ts +1 -0
  761. package/dist/presentation/actions/fab/FAB.variants.d.ts +158 -0
  762. package/dist/presentation/actions/fab/FAB.vue.d.ts +29 -0
  763. package/dist/presentation/actions/fab/index.d.ts +2 -0
  764. package/dist/presentation/actions/index.d.ts +14 -0
  765. package/dist/presentation/actions/index.js +47 -0
  766. package/dist/presentation/actions/index.js.map +1 -0
  767. package/dist/presentation/actions/link/Link.variants.d.ts +111 -0
  768. package/dist/presentation/actions/link/Link.vue.d.ts +24 -0
  769. package/dist/presentation/actions/link/index.d.ts +2 -0
  770. package/dist/presentation/actions/optionTile/OptionTile.variants.d.ts +10 -0
  771. package/dist/presentation/actions/optionTile/OptionTile.vue.d.ts +31 -0
  772. package/dist/presentation/actions/optionTile/index.d.ts +2 -0
  773. package/dist/presentation/actions/optionTileGroup/OptionTileGroup.variants.d.ts +76 -0
  774. package/dist/presentation/actions/optionTileGroup/OptionTileGroup.vue.d.ts +27 -0
  775. package/dist/presentation/actions/optionTileGroup/index.d.ts +2 -0
  776. package/dist/presentation/actions/segmentedControl/SegmentedControl.vue.d.ts +20 -0
  777. package/dist/presentation/actions/segmentedControl/index.d.ts +1 -0
  778. package/dist/presentation/actions/speedDial/SpeedDial.vue.d.ts +28 -0
  779. package/dist/presentation/actions/speedDial/SpeedDialAction.vue.d.ts +40 -0
  780. package/dist/presentation/actions/speedDial/SpeedDialContext.d.ts +36 -0
  781. package/dist/presentation/actions/speedDial/SpeedDialList.vue.d.ts +13 -0
  782. package/dist/presentation/actions/speedDial/SpeedDialTrigger.vue.d.ts +30 -0
  783. package/dist/presentation/actions/speedDial/index.d.ts +166 -0
  784. package/dist/presentation/actions/toggleButton/ToggleButton.variants.d.ts +141 -0
  785. package/dist/presentation/actions/toggleButton/ToggleButton.vue.d.ts +59 -0
  786. package/dist/presentation/actions/toggleButton/index.d.ts +2 -0
  787. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.variants.d.ts +33 -0
  788. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.vue.d.ts +72 -0
  789. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroupContext.d.ts +24 -0
  790. package/dist/presentation/actions/toggleButtonGroup/index.d.ts +3 -0
  791. package/dist/presentation/actions/toolbar/Toolbar.vue.d.ts +19 -0
  792. package/dist/presentation/actions/toolbar/ToolbarButton.vue.d.ts +16 -0
  793. package/dist/presentation/actions/toolbar/ToolbarContext.d.ts +9 -0
  794. package/dist/presentation/actions/toolbar/ToolbarLink.vue.d.ts +11 -0
  795. package/dist/presentation/actions/toolbar/ToolbarSeparator.vue.d.ts +3 -0
  796. package/dist/presentation/actions/toolbar/index.d.ts +87 -0
  797. package/dist/presentation/display/accordion/Accordion.vue.d.ts +45 -0
  798. package/dist/presentation/display/accordion/AccordionContent.vue.d.ts +14 -0
  799. package/dist/presentation/display/accordion/AccordionContext.d.ts +29 -0
  800. package/dist/presentation/display/accordion/AccordionItem.vue.d.ts +20 -0
  801. package/dist/presentation/display/accordion/AccordionTrigger.vue.d.ts +14 -0
  802. package/dist/presentation/display/accordion/index.d.ts +5 -0
  803. package/dist/presentation/display/activityFeed/ActivityFeed.vue.d.ts +18 -0
  804. package/dist/presentation/display/activityFeed/ActivityItem.vue.d.ts +29 -0
  805. package/dist/presentation/display/activityFeed/index.d.ts +2 -0
  806. package/dist/presentation/display/animatedNumber/AnimatedNumber.vue.d.ts +34 -0
  807. package/dist/presentation/display/animatedNumber/index.d.ts +1 -0
  808. package/dist/presentation/display/annotationMarker/AnnotationMarker.vue.d.ts +43 -0
  809. package/dist/presentation/display/annotationMarker/index.d.ts +1 -0
  810. package/dist/presentation/display/audioPlayer/AudioPlayer.vue.d.ts +38 -0
  811. package/dist/presentation/display/audioPlayer/index.d.ts +1 -0
  812. package/dist/presentation/display/audioWaveform/AudioWaveform.vue.d.ts +57 -0
  813. package/dist/presentation/display/audioWaveform/index.d.ts +1 -0
  814. package/dist/presentation/display/avatar/Avatar.variants.d.ts +312 -0
  815. package/dist/presentation/display/avatar/Avatar.vue.d.ts +49 -0
  816. package/dist/presentation/display/avatar/index.d.ts +2 -0
  817. package/dist/presentation/display/avatarGroup/AvatarGroup.vue.d.ts +25 -0
  818. package/dist/presentation/display/avatarGroup/index.d.ts +1 -0
  819. package/dist/presentation/display/badge/Badge.variants.d.ts +128 -0
  820. package/dist/presentation/display/badge/Badge.vue.d.ts +20 -0
  821. package/dist/presentation/display/badge/index.d.ts +2 -0
  822. package/dist/presentation/display/badgeOverlay/BadgeOverlay.vue.d.ts +24 -0
  823. package/dist/presentation/display/badgeOverlay/index.d.ts +1 -0
  824. package/dist/presentation/display/card/Card.vue.d.ts +32 -0
  825. package/dist/presentation/display/card/CardBody.vue.d.ts +12 -0
  826. package/dist/presentation/display/card/CardDescription.vue.d.ts +12 -0
  827. package/dist/presentation/display/card/CardFooter.vue.d.ts +12 -0
  828. package/dist/presentation/display/card/CardHeader.vue.d.ts +12 -0
  829. package/dist/presentation/display/card/CardTitle.vue.d.ts +12 -0
  830. package/dist/presentation/display/card/index.d.ts +6 -0
  831. package/dist/presentation/display/carousel/Carousel.vue.d.ts +34 -0
  832. package/dist/presentation/display/carousel/CarouselContext.d.ts +38 -0
  833. package/dist/presentation/display/carousel/CarouselDot.vue.d.ts +9 -0
  834. package/dist/presentation/display/carousel/CarouselDots.vue.d.ts +7 -0
  835. package/dist/presentation/display/carousel/CarouselNext.vue.d.ts +12 -0
  836. package/dist/presentation/display/carousel/CarouselPrev.vue.d.ts +12 -0
  837. package/dist/presentation/display/carousel/CarouselSlide.vue.d.ts +14 -0
  838. package/dist/presentation/display/carousel/CarouselSlides.vue.d.ts +14 -0
  839. package/dist/presentation/display/carousel/CarouselViewport.vue.d.ts +14 -0
  840. package/dist/presentation/display/carousel/index.d.ts +10 -0
  841. package/dist/presentation/display/chatBubble/ChatBubble.vue.d.ts +79 -0
  842. package/dist/presentation/display/chatBubble/index.d.ts +1 -0
  843. package/dist/presentation/display/code/Code.variants.d.ts +48 -0
  844. package/dist/presentation/display/code/Code.vue.d.ts +17 -0
  845. package/dist/presentation/display/code/index.d.ts +2 -0
  846. package/dist/presentation/display/collapsible/Collapsible.vue.d.ts +40 -0
  847. package/dist/presentation/display/collapsible/CollapsibleContent.vue.d.ts +18 -0
  848. package/dist/presentation/display/collapsible/CollapsibleContentInner.vue.d.ts +23 -0
  849. package/dist/presentation/display/collapsible/CollapsibleContext.d.ts +17 -0
  850. package/dist/presentation/display/collapsible/CollapsibleTrigger.vue.d.ts +18 -0
  851. package/dist/presentation/display/collapsible/index.d.ts +4 -0
  852. package/dist/presentation/display/commentThread/Comment.vue.d.ts +39 -0
  853. package/dist/presentation/display/commentThread/CommentThread.vue.d.ts +14 -0
  854. package/dist/presentation/display/commentThread/index.d.ts +2 -0
  855. package/dist/presentation/display/confetti/Confetti.vue.d.ts +40 -0
  856. package/dist/presentation/display/confetti/index.d.ts +1 -0
  857. package/dist/presentation/display/countBadge/CountBadge.vue.d.ts +24 -0
  858. package/dist/presentation/display/countBadge/index.d.ts +1 -0
  859. package/dist/presentation/display/countUp/CountUp.vue.d.ts +40 -0
  860. package/dist/presentation/display/countUp/index.d.ts +1 -0
  861. package/dist/presentation/display/dataGrid/CellEditor.vue.d.ts +29 -0
  862. package/dist/presentation/display/dataGrid/DataGrid.vue.d.ts +47 -0
  863. package/dist/presentation/display/dataGrid/DataGridTypes.d.ts +65 -0
  864. package/dist/presentation/display/dataGrid/index.d.ts +2 -0
  865. package/dist/presentation/display/dataTable/DataTable.vue.d.ts +91 -0
  866. package/dist/presentation/display/dataTable/index.d.ts +1 -0
  867. package/dist/presentation/display/descriptionList/DescriptionList.vue.d.ts +54 -0
  868. package/dist/presentation/display/descriptionList/index.d.ts +1 -0
  869. package/dist/presentation/display/diffViewer/DiffViewer.vue.d.ts +38 -0
  870. package/dist/presentation/display/diffViewer/index.d.ts +1 -0
  871. package/dist/presentation/display/emptyState/EmptyState.vue.d.ts +43 -0
  872. package/dist/presentation/display/emptyState/index.d.ts +1 -0
  873. package/dist/presentation/display/eventCalendar/AgendaView.vue.d.ts +13 -0
  874. package/dist/presentation/display/eventCalendar/EventCalendar.vue.d.ts +41 -0
  875. package/dist/presentation/display/eventCalendar/EventCalendarTypes.d.ts +28 -0
  876. package/dist/presentation/display/eventCalendar/MonthView.vue.d.ts +17 -0
  877. package/dist/presentation/display/eventCalendar/TimeGridView.vue.d.ts +18 -0
  878. package/dist/presentation/display/eventCalendar/index.d.ts +2 -0
  879. package/dist/presentation/display/eyebrow/Eyebrow.vue.d.ts +32 -0
  880. package/dist/presentation/display/eyebrow/index.d.ts +1 -0
  881. package/dist/presentation/display/featureCard/FeatureCard.vue.d.ts +83 -0
  882. package/dist/presentation/display/featureCard/index.d.ts +1 -0
  883. package/dist/presentation/display/frameGlyph/FrameGlyph.vue.d.ts +19 -0
  884. package/dist/presentation/display/frameGlyph/index.d.ts +1 -0
  885. package/dist/presentation/display/gantt/Gantt.vue.d.ts +58 -0
  886. package/dist/presentation/display/gantt/index.d.ts +1 -0
  887. package/dist/presentation/display/gradientText/GradientText.vue.d.ts +54 -0
  888. package/dist/presentation/display/gradientText/index.d.ts +1 -0
  889. package/dist/presentation/display/heading/Heading.variants.d.ts +201 -0
  890. package/dist/presentation/display/heading/Heading.vue.d.ts +26 -0
  891. package/dist/presentation/display/heading/index.d.ts +2 -0
  892. package/dist/presentation/display/heatmapCalendar/HeatmapCalendar.vue.d.ts +61 -0
  893. package/dist/presentation/display/heatmapCalendar/index.d.ts +1 -0
  894. package/dist/presentation/display/highlight/Highlight.vue.d.ts +20 -0
  895. package/dist/presentation/display/highlight/index.d.ts +1 -0
  896. package/dist/presentation/display/image/Image.vue.d.ts +15 -0
  897. package/dist/presentation/display/image/index.d.ts +1 -0
  898. package/dist/presentation/display/index.d.ts +73 -0
  899. package/dist/presentation/display/index.js +192 -0
  900. package/dist/presentation/display/index.js.map +1 -0
  901. package/dist/presentation/display/infoRow/InfoRow.vue.d.ts +39 -0
  902. package/dist/presentation/display/infoRow/index.d.ts +1 -0
  903. package/dist/presentation/display/kbd/Kbd.vue.d.ts +13 -0
  904. package/dist/presentation/display/kbd/index.d.ts +1 -0
  905. package/dist/presentation/display/keyboardShortcut/KeyboardShortcut.vue.d.ts +13 -0
  906. package/dist/presentation/display/keyboardShortcut/index.d.ts +1 -0
  907. package/dist/presentation/display/list/List.variants.d.ts +112 -0
  908. package/dist/presentation/display/list/List.vue.d.ts +23 -0
  909. package/dist/presentation/display/list/ListItem.vue.d.ts +23 -0
  910. package/dist/presentation/display/list/index.d.ts +3 -0
  911. package/dist/presentation/display/mark/Mark.vue.d.ts +13 -0
  912. package/dist/presentation/display/mark/index.d.ts +1 -0
  913. package/dist/presentation/display/marquee/Marquee.vue.d.ts +39 -0
  914. package/dist/presentation/display/marquee/index.d.ts +1 -0
  915. package/dist/presentation/display/messageList/DaySeparator.vue.d.ts +17 -0
  916. package/dist/presentation/display/messageList/MessageList.vue.d.ts +39 -0
  917. package/dist/presentation/display/messageList/index.d.ts +2 -0
  918. package/dist/presentation/display/metaInline/MetaInline.vue.d.ts +21 -0
  919. package/dist/presentation/display/metaInline/index.d.ts +1 -0
  920. package/dist/presentation/display/metricChip/MetricChip.vue.d.ts +54 -0
  921. package/dist/presentation/display/metricChip/index.d.ts +1 -0
  922. package/dist/presentation/display/moduleGlyphs/CellsGlyph.vue.d.ts +13 -0
  923. package/dist/presentation/display/moduleGlyphs/DotsGlyph.vue.d.ts +9 -0
  924. package/dist/presentation/display/moduleGlyphs/HorizontalBarsGlyph.vue.d.ts +9 -0
  925. package/dist/presentation/display/moduleGlyphs/ModuleGlyphs.d.ts +15 -0
  926. package/dist/presentation/display/moduleGlyphs/VerticalBarsGlyph.vue.d.ts +9 -0
  927. package/dist/presentation/display/moduleGlyphs/index.d.ts +5 -0
  928. package/dist/presentation/display/nodeEditor/NodeEditor.vue.d.ts +58 -0
  929. package/dist/presentation/display/nodeEditor/index.d.ts +1 -0
  930. package/dist/presentation/display/notificationDot/NotificationDot.vue.d.ts +47 -0
  931. package/dist/presentation/display/notificationDot/index.d.ts +1 -0
  932. package/dist/presentation/display/pdfViewer/PDFViewer.vue.d.ts +40 -0
  933. package/dist/presentation/display/pdfViewer/index.d.ts +1 -0
  934. package/dist/presentation/display/pricingCard/PricingCard.vue.d.ts +107 -0
  935. package/dist/presentation/display/pricingCard/index.d.ts +1 -0
  936. package/dist/presentation/display/quote/Quote.vue.d.ts +13 -0
  937. package/dist/presentation/display/quote/index.d.ts +1 -0
  938. package/dist/presentation/display/radiusGlyph/RadiusGlyph.vue.d.ts +23 -0
  939. package/dist/presentation/display/radiusGlyph/index.d.ts +1 -0
  940. package/dist/presentation/display/reactionBar/ReactionBar.vue.d.ts +47 -0
  941. package/dist/presentation/display/reactionBar/index.d.ts +1 -0
  942. package/dist/presentation/display/scheduleView/ScheduleView.vue.d.ts +58 -0
  943. package/dist/presentation/display/scheduleView/index.d.ts +1 -0
  944. package/dist/presentation/display/scrollReveal/ScrollReveal.vue.d.ts +50 -0
  945. package/dist/presentation/display/scrollReveal/index.d.ts +1 -0
  946. package/dist/presentation/display/sectionHeader/SectionHeader.vue.d.ts +49 -0
  947. package/dist/presentation/display/sectionHeader/index.d.ts +1 -0
  948. package/dist/presentation/display/separator/Separator.vue.d.ts +14 -0
  949. package/dist/presentation/display/separator/index.d.ts +1 -0
  950. package/dist/presentation/display/snippet/Snippet.vue.d.ts +21 -0
  951. package/dist/presentation/display/snippet/index.d.ts +1 -0
  952. package/dist/presentation/display/sortable/Sortable.vue.d.ts +18 -0
  953. package/dist/presentation/display/sortable/SortableContext.d.ts +22 -0
  954. package/dist/presentation/display/sortable/SortableHandle.vue.d.ts +14 -0
  955. package/dist/presentation/display/sortable/SortableItem.vue.d.ts +16 -0
  956. package/dist/presentation/display/sortable/index.d.ts +4 -0
  957. package/dist/presentation/display/sparkline/Sparkline.vue.d.ts +62 -0
  958. package/dist/presentation/display/sparkline/index.d.ts +1 -0
  959. package/dist/presentation/display/stat/Stat.vue.d.ts +48 -0
  960. package/dist/presentation/display/stat/index.d.ts +1 -0
  961. package/dist/presentation/display/status/Status.vue.d.ts +35 -0
  962. package/dist/presentation/display/status/index.d.ts +1 -0
  963. package/dist/presentation/display/stepCard/StepCard.vue.d.ts +85 -0
  964. package/dist/presentation/display/stepCard/index.d.ts +1 -0
  965. package/dist/presentation/display/swipeActions/SwipeActions.vue.d.ts +28 -0
  966. package/dist/presentation/display/swipeActions/index.d.ts +1 -0
  967. package/dist/presentation/display/table/Table.vue.d.ts +30 -0
  968. package/dist/presentation/display/table/TableBody.vue.d.ts +12 -0
  969. package/dist/presentation/display/table/TableCaption.vue.d.ts +12 -0
  970. package/dist/presentation/display/table/TableCell.vue.d.ts +14 -0
  971. package/dist/presentation/display/table/TableContext.d.ts +46 -0
  972. package/dist/presentation/display/table/TableFooter.vue.d.ts +12 -0
  973. package/dist/presentation/display/table/TableHead.vue.d.ts +26 -0
  974. package/dist/presentation/display/table/TableHeaderCell.vue.d.ts +14 -0
  975. package/dist/presentation/display/table/TableRow.vue.d.ts +12 -0
  976. package/dist/presentation/display/table/index.d.ts +9 -0
  977. package/dist/presentation/display/tabs/Tabs.vue.d.ts +33 -0
  978. package/dist/presentation/display/tabs/TabsContext.d.ts +34 -0
  979. package/dist/presentation/display/tabs/TabsList.vue.d.ts +256 -0
  980. package/dist/presentation/display/tabs/TabsPanel.vue.d.ts +16 -0
  981. package/dist/presentation/display/tabs/TabsTab.vue.d.ts +20 -0
  982. package/dist/presentation/display/tabs/index.d.ts +5 -0
  983. package/dist/presentation/display/tag/Tag.variants.d.ts +84 -0
  984. package/dist/presentation/display/tag/Tag.vue.d.ts +25 -0
  985. package/dist/presentation/display/tag/index.d.ts +2 -0
  986. package/dist/presentation/display/text/Text.variants.d.ts +301 -0
  987. package/dist/presentation/display/text/Text.vue.d.ts +33 -0
  988. package/dist/presentation/display/text/index.d.ts +2 -0
  989. package/dist/presentation/display/threadView/ThreadView.vue.d.ts +46 -0
  990. package/dist/presentation/display/threadView/index.d.ts +1 -0
  991. package/dist/presentation/display/tilt/Tilt.vue.d.ts +31 -0
  992. package/dist/presentation/display/tilt/index.d.ts +1 -0
  993. package/dist/presentation/display/timeline/Timeline.vue.d.ts +19 -0
  994. package/dist/presentation/display/timeline/TimelineContext.d.ts +40 -0
  995. package/dist/presentation/display/timeline/TimelineDescription.vue.d.ts +14 -0
  996. package/dist/presentation/display/timeline/TimelineItem.vue.d.ts +22 -0
  997. package/dist/presentation/display/timeline/TimelineTitle.vue.d.ts +14 -0
  998. package/dist/presentation/display/timeline/index.d.ts +5 -0
  999. package/dist/presentation/display/tooltip/Tooltip.vue.d.ts +53 -0
  1000. package/dist/presentation/display/tooltip/index.d.ts +1 -0
  1001. package/dist/presentation/display/tree/Tree.vue.d.ts +275 -0
  1002. package/dist/presentation/display/tree/TreeContext.d.ts +29 -0
  1003. package/dist/presentation/display/tree/TreeGroup.vue.d.ts +28 -0
  1004. package/dist/presentation/display/tree/TreeGroupContent.vue.d.ts +17 -0
  1005. package/dist/presentation/display/tree/TreeItem.vue.d.ts +20 -0
  1006. package/dist/presentation/display/tree/TreeNodeRow.vue.d.ts +27 -0
  1007. package/dist/presentation/display/tree/index.d.ts +4 -0
  1008. package/dist/presentation/display/typewriter/Typewriter.vue.d.ts +32 -0
  1009. package/dist/presentation/display/typewriter/index.d.ts +1 -0
  1010. package/dist/presentation/display/videoPlayer/VideoPlayer.vue.d.ts +55 -0
  1011. package/dist/presentation/display/videoPlayer/index.d.ts +1 -0
  1012. package/dist/presentation/feedback/alert/Alert.vue.d.ts +41 -0
  1013. package/dist/presentation/feedback/alert/index.d.ts +1 -0
  1014. package/dist/presentation/feedback/alertSimple/AlertSimple.variants.d.ts +61 -0
  1015. package/dist/presentation/feedback/alertSimple/AlertSimple.vue.d.ts +17 -0
  1016. package/dist/presentation/feedback/alertSimple/index.d.ts +2 -0
  1017. package/dist/presentation/feedback/banner/Banner.vue.d.ts +41 -0
  1018. package/dist/presentation/feedback/banner/index.d.ts +1 -0
  1019. package/dist/presentation/feedback/bannerSimple/BannerSimple.variants.d.ts +61 -0
  1020. package/dist/presentation/feedback/bannerSimple/BannerSimple.vue.d.ts +17 -0
  1021. package/dist/presentation/feedback/bannerSimple/index.d.ts +2 -0
  1022. package/dist/presentation/feedback/callout/Callout.vue.d.ts +27 -0
  1023. package/dist/presentation/feedback/callout/index.d.ts +1 -0
  1024. package/dist/presentation/feedback/feedbackToasts/FeedbackToasts.vue.d.ts +18 -0
  1025. package/dist/presentation/feedback/feedbackToasts/index.d.ts +1 -0
  1026. package/dist/presentation/feedback/index.d.ts +27 -0
  1027. package/dist/presentation/feedback/index.js +49 -0
  1028. package/dist/presentation/feedback/index.js.map +1 -0
  1029. package/dist/presentation/feedback/inlineSpinner/InlineSpinner.vue.d.ts +22 -0
  1030. package/dist/presentation/feedback/inlineSpinner/index.d.ts +1 -0
  1031. package/dist/presentation/feedback/liveCursor/LiveCursor.vue.d.ts +33 -0
  1032. package/dist/presentation/feedback/liveCursor/index.d.ts +1 -0
  1033. package/dist/presentation/feedback/loadingOverlay/LoadingOverlay.vue.d.ts +36 -0
  1034. package/dist/presentation/feedback/loadingOverlay/index.d.ts +1 -0
  1035. package/dist/presentation/feedback/loadingState/LoadingState.vue.d.ts +26 -0
  1036. package/dist/presentation/feedback/loadingState/index.d.ts +1 -0
  1037. package/dist/presentation/feedback/meterBar/MeterBar.vue.d.ts +21 -0
  1038. package/dist/presentation/feedback/meterBar/index.d.ts +1 -0
  1039. package/dist/presentation/feedback/notificationCenter/NotificationCenter.vue.d.ts +30 -0
  1040. package/dist/presentation/feedback/notificationCenter/NotificationItem.vue.d.ts +40 -0
  1041. package/dist/presentation/feedback/notificationCenter/index.d.ts +2 -0
  1042. package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklist.vue.d.ts +56 -0
  1043. package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklistTask.vue.d.ts +27 -0
  1044. package/dist/presentation/feedback/onboardingChecklist/index.d.ts +3 -0
  1045. package/dist/presentation/feedback/presenceIndicator/PresenceIndicator.vue.d.ts +34 -0
  1046. package/dist/presentation/feedback/presenceIndicator/index.d.ts +1 -0
  1047. package/dist/presentation/feedback/progressBar/ProgressBar.variants.d.ts +104 -0
  1048. package/dist/presentation/feedback/progressBar/ProgressBar.vue.d.ts +19 -0
  1049. package/dist/presentation/feedback/progressBar/index.d.ts +2 -0
  1050. package/dist/presentation/feedback/progressCircle/ProgressCircle.vue.d.ts +21 -0
  1051. package/dist/presentation/feedback/progressCircle/index.d.ts +1 -0
  1052. package/dist/presentation/feedback/progressSteps/ProgressSteps.vue.d.ts +16 -0
  1053. package/dist/presentation/feedback/progressSteps/index.d.ts +1 -0
  1054. package/dist/presentation/feedback/skeleton/Skeleton.variants.d.ts +57 -0
  1055. package/dist/presentation/feedback/skeleton/Skeleton.vue.d.ts +17 -0
  1056. package/dist/presentation/feedback/skeleton/index.d.ts +2 -0
  1057. package/dist/presentation/feedback/spinner/Spinner.variants.d.ts +115 -0
  1058. package/dist/presentation/feedback/spinner/Spinner.vue.d.ts +17 -0
  1059. package/dist/presentation/feedback/spinner/index.d.ts +2 -0
  1060. package/dist/presentation/feedback/statusIndicator/StatusIndicator.vue.d.ts +31 -0
  1061. package/dist/presentation/feedback/statusIndicator/index.d.ts +1 -0
  1062. package/dist/presentation/feedback/toast/Toast.vue.d.ts +41 -0
  1063. package/dist/presentation/feedback/toast/index.d.ts +1 -0
  1064. package/dist/presentation/feedback/toastSimple/ToastSimple.variants.d.ts +61 -0
  1065. package/dist/presentation/feedback/toastSimple/ToastSimple.vue.d.ts +20 -0
  1066. package/dist/presentation/feedback/toastSimple/index.d.ts +2 -0
  1067. package/dist/presentation/feedback/toaster/Toaster.vue.d.ts +84 -0
  1068. package/dist/presentation/feedback/toaster/index.d.ts +1 -0
  1069. package/dist/presentation/feedback/tour/Tour.vue.d.ts +45 -0
  1070. package/dist/presentation/feedback/tour/index.d.ts +1 -0
  1071. package/dist/presentation/feedback/trendIndicator/TrendIndicator.vue.d.ts +32 -0
  1072. package/dist/presentation/feedback/trendIndicator/index.d.ts +1 -0
  1073. package/dist/presentation/feedback/typingIndicator/TypingIndicator.vue.d.ts +36 -0
  1074. package/dist/presentation/feedback/typingIndicator/index.d.ts +1 -0
  1075. package/dist/presentation/feedback/undoBar/UndoBar.vue.d.ts +34 -0
  1076. package/dist/presentation/feedback/undoBar/index.d.ts +1 -0
  1077. package/dist/presentation/forms/ColorExtensions.d.ts +37 -0
  1078. package/dist/presentation/forms/DateExtensions.d.ts +70 -0
  1079. package/dist/presentation/forms/InputStyles.d.ts +228 -0
  1080. package/dist/presentation/forms/MonthGrid.vue.d.ts +40 -0
  1081. package/dist/presentation/forms/addressForm/AddressForm.vue.d.ts +54 -0
  1082. package/dist/presentation/forms/addressForm/index.d.ts +1 -0
  1083. package/dist/presentation/forms/calendar/Calendar.vue.d.ts +33 -0
  1084. package/dist/presentation/forms/calendar/index.d.ts +1 -0
  1085. package/dist/presentation/forms/characterCount/CharacterCount.vue.d.ts +15 -0
  1086. package/dist/presentation/forms/characterCount/index.d.ts +1 -0
  1087. package/dist/presentation/forms/chatComposer/ChatComposer.vue.d.ts +74 -0
  1088. package/dist/presentation/forms/chatComposer/index.d.ts +1 -0
  1089. package/dist/presentation/forms/checkbox/Checkbox.variants.d.ts +133 -0
  1090. package/dist/presentation/forms/checkbox/Checkbox.vue.d.ts +48 -0
  1091. package/dist/presentation/forms/checkbox/index.d.ts +2 -0
  1092. package/dist/presentation/forms/checkboxField/CheckboxField.vue.d.ts +35 -0
  1093. package/dist/presentation/forms/checkboxField/index.d.ts +1 -0
  1094. package/dist/presentation/forms/checkboxGroup/CheckboxGroup.vue.d.ts +39 -0
  1095. package/dist/presentation/forms/checkboxGroup/CheckboxGroupContext.d.ts +14 -0
  1096. package/dist/presentation/forms/checkboxGroup/index.d.ts +2 -0
  1097. package/dist/presentation/forms/choiceCard/ChoiceCard.vue.d.ts +35 -0
  1098. package/dist/presentation/forms/choiceCard/index.d.ts +1 -0
  1099. package/dist/presentation/forms/codeEditor/CodeEditor.vue.d.ts +50 -0
  1100. package/dist/presentation/forms/codeEditor/index.d.ts +1 -0
  1101. package/dist/presentation/forms/colorArea/ColorArea.vue.d.ts +40 -0
  1102. package/dist/presentation/forms/colorArea/index.d.ts +1 -0
  1103. package/dist/presentation/forms/colorField/ColorField.vue.d.ts +44 -0
  1104. package/dist/presentation/forms/colorField/index.d.ts +1 -0
  1105. package/dist/presentation/forms/colorPicker/ColorPicker.vue.d.ts +62 -0
  1106. package/dist/presentation/forms/colorPicker/index.d.ts +1 -0
  1107. package/dist/presentation/forms/colorSlider/ColorSlider.vue.d.ts +47 -0
  1108. package/dist/presentation/forms/colorSlider/index.d.ts +1 -0
  1109. package/dist/presentation/forms/colorSwatch/ColorSwatch.variants.d.ts +186 -0
  1110. package/dist/presentation/forms/colorSwatch/ColorSwatch.vue.d.ts +33 -0
  1111. package/dist/presentation/forms/colorSwatch/index.d.ts +2 -0
  1112. package/dist/presentation/forms/colorSwatchPicker/ColorSwatchItem.vue.d.ts +27 -0
  1113. package/dist/presentation/forms/colorSwatchPicker/ColorSwatchPicker.vue.d.ts +41 -0
  1114. package/dist/presentation/forms/colorSwatchPicker/index.d.ts +1 -0
  1115. package/dist/presentation/forms/colorWheel/ColorWheel.vue.d.ts +34 -0
  1116. package/dist/presentation/forms/colorWheel/index.d.ts +1 -0
  1117. package/dist/presentation/forms/combobox/Combobox.vue.d.ts +60 -0
  1118. package/dist/presentation/forms/combobox/ComboboxContent.vue.d.ts +39 -0
  1119. package/dist/presentation/forms/combobox/ComboboxContext.d.ts +53 -0
  1120. package/dist/presentation/forms/combobox/ComboboxEmpty.vue.d.ts +10 -0
  1121. package/dist/presentation/forms/combobox/ComboboxGroup.vue.d.ts +19 -0
  1122. package/dist/presentation/forms/combobox/ComboboxInput.vue.d.ts +12 -0
  1123. package/dist/presentation/forms/combobox/ComboboxItem.vue.d.ts +28 -0
  1124. package/dist/presentation/forms/combobox/ComboboxSeparator.vue.d.ts +3 -0
  1125. package/dist/presentation/forms/combobox/index.d.ts +8 -0
  1126. package/dist/presentation/forms/cronInput/CronInput.vue.d.ts +68 -0
  1127. package/dist/presentation/forms/cronInput/index.d.ts +1 -0
  1128. package/dist/presentation/forms/currencyInput/CurrencyInput.vue.d.ts +12 -0
  1129. package/dist/presentation/forms/currencyInput/index.d.ts +1 -0
  1130. package/dist/presentation/forms/dateField/DateField.vue.d.ts +42 -0
  1131. package/dist/presentation/forms/dateField/index.d.ts +1 -0
  1132. package/dist/presentation/forms/datePicker/DatePicker.vue.d.ts +53 -0
  1133. package/dist/presentation/forms/datePicker/index.d.ts +1 -0
  1134. package/dist/presentation/forms/dateRangePicker/DateRangePicker.vue.d.ts +54 -0
  1135. package/dist/presentation/forms/dateRangePicker/index.d.ts +1 -0
  1136. package/dist/presentation/forms/dateTimeField/DateTimeField.vue.d.ts +42 -0
  1137. package/dist/presentation/forms/dateTimeField/index.d.ts +1 -0
  1138. package/dist/presentation/forms/editable/Editable.vue.d.ts +60 -0
  1139. package/dist/presentation/forms/editable/EditableCancel.vue.d.ts +12 -0
  1140. package/dist/presentation/forms/editable/EditableContext.d.ts +37 -0
  1141. package/dist/presentation/forms/editable/EditableInput.vue.d.ts +12 -0
  1142. package/dist/presentation/forms/editable/EditablePreview.vue.d.ts +7 -0
  1143. package/dist/presentation/forms/editable/EditableSubmit.vue.d.ts +14 -0
  1144. package/dist/presentation/forms/editable/index.d.ts +7 -0
  1145. package/dist/presentation/forms/emailInput/EmailInput.vue.d.ts +43 -0
  1146. package/dist/presentation/forms/emailInput/index.d.ts +1 -0
  1147. package/dist/presentation/forms/emojiPicker/CategoryNav.vue.d.ts +19 -0
  1148. package/dist/presentation/forms/emojiPicker/EmojiGrid.vue.d.ts +26 -0
  1149. package/dist/presentation/forms/emojiPicker/EmojiPicker.variants.d.ts +77 -0
  1150. package/dist/presentation/forms/emojiPicker/EmojiPicker.vue.d.ts +45 -0
  1151. package/dist/presentation/forms/emojiPicker/EmojiPickerPopover.vue.d.ts +68 -0
  1152. package/dist/presentation/forms/emojiPicker/EmojiTile.vue.d.ts +22 -0
  1153. package/dist/presentation/forms/emojiPicker/index.d.ts +4 -0
  1154. package/dist/presentation/forms/emojiPicker/useEmojiPicker.d.ts +45 -0
  1155. package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.variants.d.ts +23 -0
  1156. package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.vue.d.ts +32 -0
  1157. package/dist/presentation/forms/emojiSizeControl/index.d.ts +2 -0
  1158. package/dist/presentation/forms/field/Field.vue.d.ts +37 -0
  1159. package/dist/presentation/forms/field/index.d.ts +6 -0
  1160. package/dist/presentation/forms/fieldset/Fieldset.vue.d.ts +22 -0
  1161. package/dist/presentation/forms/fieldset/index.d.ts +1 -0
  1162. package/dist/presentation/forms/filePicker/FilePicker.vue.d.ts +34 -0
  1163. package/dist/presentation/forms/filePicker/index.d.ts +1 -0
  1164. package/dist/presentation/forms/fileUpload/FileUpload.vue.d.ts +60 -0
  1165. package/dist/presentation/forms/fileUpload/index.d.ts +1 -0
  1166. package/dist/presentation/forms/fontPicker/FontPicker.vue.d.ts +43 -0
  1167. package/dist/presentation/forms/fontPicker/index.d.ts +1 -0
  1168. package/dist/presentation/forms/formErrorMessage/FormErrorMessage.vue.d.ts +24 -0
  1169. package/dist/presentation/forms/formErrorMessage/index.d.ts +1 -0
  1170. package/dist/presentation/forms/formHelperText/FormHelperText.vue.d.ts +19 -0
  1171. package/dist/presentation/forms/formHelperText/index.d.ts +1 -0
  1172. package/dist/presentation/forms/gradientPicker/GradientPicker.vue.d.ts +50 -0
  1173. package/dist/presentation/forms/gradientPicker/index.d.ts +1 -0
  1174. package/dist/presentation/forms/iconPicker/IconPicker.vue.d.ts +45 -0
  1175. package/dist/presentation/forms/iconPicker/index.d.ts +1 -0
  1176. package/dist/presentation/forms/index.d.ts +75 -0
  1177. package/dist/presentation/forms/index.js +165 -0
  1178. package/dist/presentation/forms/index.js.map +1 -0
  1179. package/dist/presentation/forms/inputAddon/InputAddon.vue.d.ts +20 -0
  1180. package/dist/presentation/forms/inputAddon/index.d.ts +1 -0
  1181. package/dist/presentation/forms/inputGroup/InputGroup.vue.d.ts +19 -0
  1182. package/dist/presentation/forms/inputGroup/index.d.ts +1 -0
  1183. package/dist/presentation/forms/jsonEditor/JSONEditor.vue.d.ts +49 -0
  1184. package/dist/presentation/forms/jsonEditor/JSONEditorContext.d.ts +28 -0
  1185. package/dist/presentation/forms/jsonEditor/JSONEditorHelpers.d.ts +6 -0
  1186. package/dist/presentation/forms/jsonEditor/JSONEditorTextView.vue.d.ts +14 -0
  1187. package/dist/presentation/forms/jsonEditor/JSONEditorTreeNode.vue.d.ts +15 -0
  1188. package/dist/presentation/forms/jsonEditor/JSONEditorTreeView.vue.d.ts +8 -0
  1189. package/dist/presentation/forms/jsonEditor/index.d.ts +2 -0
  1190. package/dist/presentation/forms/keyboardShortcutPicker/KeyboardShortcutPicker.vue.d.ts +43 -0
  1191. package/dist/presentation/forms/keyboardShortcutPicker/index.d.ts +1 -0
  1192. package/dist/presentation/forms/knob/Knob.vue.d.ts +75 -0
  1193. package/dist/presentation/forms/knob/index.d.ts +1 -0
  1194. package/dist/presentation/forms/label/Label.vue.d.ts +34 -0
  1195. package/dist/presentation/forms/label/index.d.ts +1 -0
  1196. package/dist/presentation/forms/labeledInput/LabeledInput.vue.d.ts +23 -0
  1197. package/dist/presentation/forms/labeledInput/index.d.ts +2 -0
  1198. package/dist/presentation/forms/legend/Legend.vue.d.ts +21 -0
  1199. package/dist/presentation/forms/legend/index.d.ts +1 -0
  1200. package/dist/presentation/forms/listbox/Listbox.variants.d.ts +71 -0
  1201. package/dist/presentation/forms/listbox/Listbox.vue.d.ts +70 -0
  1202. package/dist/presentation/forms/listbox/ListboxContext.d.ts +47 -0
  1203. package/dist/presentation/forms/listbox/ListboxEmpty.vue.d.ts +10 -0
  1204. package/dist/presentation/forms/listbox/ListboxGroup.vue.d.ts +20 -0
  1205. package/dist/presentation/forms/listbox/ListboxItem.vue.d.ts +24 -0
  1206. package/dist/presentation/forms/listbox/ListboxSeparator.vue.d.ts +3 -0
  1207. package/dist/presentation/forms/listbox/index.d.ts +7 -0
  1208. package/dist/presentation/forms/markdownEditor/MarkdownEditor.vue.d.ts +73 -0
  1209. package/dist/presentation/forms/markdownEditor/index.d.ts +1 -0
  1210. package/dist/presentation/forms/maskedInput/MaskedInput.vue.d.ts +42 -0
  1211. package/dist/presentation/forms/maskedInput/index.d.ts +1 -0
  1212. package/dist/presentation/forms/multiSelect/MultiSelect.vue.d.ts +52 -0
  1213. package/dist/presentation/forms/multiSelect/MultiSelectContent.vue.d.ts +31 -0
  1214. package/dist/presentation/forms/multiSelect/MultiSelectContext.d.ts +38 -0
  1215. package/dist/presentation/forms/multiSelect/MultiSelectItem.vue.d.ts +25 -0
  1216. package/dist/presentation/forms/multiSelect/MultiSelectTags.vue.d.ts +14 -0
  1217. package/dist/presentation/forms/multiSelect/MultiSelectTrigger.vue.d.ts +20 -0
  1218. package/dist/presentation/forms/multiSelect/index.d.ts +6 -0
  1219. package/dist/presentation/forms/numberInput/NumberInput.vue.d.ts +51 -0
  1220. package/dist/presentation/forms/numberInput/index.d.ts +1 -0
  1221. package/dist/presentation/forms/passwordInput/PasswordInput.vue.d.ts +48 -0
  1222. package/dist/presentation/forms/passwordInput/index.d.ts +1 -0
  1223. package/dist/presentation/forms/passwordStrength/PasswordStrength.vue.d.ts +16 -0
  1224. package/dist/presentation/forms/passwordStrength/index.d.ts +1 -0
  1225. package/dist/presentation/forms/percentInput/PercentInput.vue.d.ts +8 -0
  1226. package/dist/presentation/forms/percentInput/index.d.ts +1 -0
  1227. package/dist/presentation/forms/phoneInput/PhoneInput.vue.d.ts +45 -0
  1228. package/dist/presentation/forms/phoneInput/index.d.ts +1 -0
  1229. package/dist/presentation/forms/pinInput/PinInput.vue.d.ts +46 -0
  1230. package/dist/presentation/forms/pinInput/index.d.ts +1 -0
  1231. package/dist/presentation/forms/radio/Radio.vue.d.ts +35 -0
  1232. package/dist/presentation/forms/radio/index.d.ts +1 -0
  1233. package/dist/presentation/forms/radioField/RadioField.vue.d.ts +35 -0
  1234. package/dist/presentation/forms/radioField/index.d.ts +1 -0
  1235. package/dist/presentation/forms/radioGroup/RadioGroup.vue.d.ts +41 -0
  1236. package/dist/presentation/forms/radioGroup/RadioGroupContext.d.ts +16 -0
  1237. package/dist/presentation/forms/radioGroup/index.d.ts +2 -0
  1238. package/dist/presentation/forms/rangeCalendar/RangeCalendar.vue.d.ts +37 -0
  1239. package/dist/presentation/forms/rangeCalendar/index.d.ts +1 -0
  1240. package/dist/presentation/forms/reactionPicker/ReactionPicker.vue.d.ts +32 -0
  1241. package/dist/presentation/forms/reactionPicker/index.d.ts +1 -0
  1242. package/dist/presentation/forms/recurrenceEditor/RecurrenceEditor.vue.d.ts +88 -0
  1243. package/dist/presentation/forms/recurrenceEditor/index.d.ts +1 -0
  1244. package/dist/presentation/forms/searchInput/SearchInput.vue.d.ts +48 -0
  1245. package/dist/presentation/forms/searchInput/index.d.ts +1 -0
  1246. package/dist/presentation/forms/select/Select.variants.d.ts +263 -0
  1247. package/dist/presentation/forms/select/Select.vue.d.ts +69 -0
  1248. package/dist/presentation/forms/select/SelectContent.vue.d.ts +44 -0
  1249. package/dist/presentation/forms/select/SelectContext.d.ts +76 -0
  1250. package/dist/presentation/forms/select/SelectItem.vue.d.ts +33 -0
  1251. package/dist/presentation/forms/select/SelectTrigger.vue.d.ts +21 -0
  1252. package/dist/presentation/forms/select/SelectValue.vue.d.ts +22 -0
  1253. package/dist/presentation/forms/select/index.d.ts +7 -0
  1254. package/dist/presentation/forms/slider/Slider.vue.d.ts +38 -0
  1255. package/dist/presentation/forms/slider/index.d.ts +1 -0
  1256. package/dist/presentation/forms/stepper/Stepper.vue.d.ts +34 -0
  1257. package/dist/presentation/forms/stepper/StepperContext.d.ts +44 -0
  1258. package/dist/presentation/forms/stepper/StepperList.vue.d.ts +256 -0
  1259. package/dist/presentation/forms/stepper/StepperPanel.vue.d.ts +16 -0
  1260. package/dist/presentation/forms/stepper/StepperStep.vue.d.ts +23 -0
  1261. package/dist/presentation/forms/stepper/index.d.ts +5 -0
  1262. package/dist/presentation/forms/switch/Switch.vue.d.ts +35 -0
  1263. package/dist/presentation/forms/switch/index.d.ts +1 -0
  1264. package/dist/presentation/forms/switchField/SwitchField.vue.d.ts +33 -0
  1265. package/dist/presentation/forms/switchField/index.d.ts +1 -0
  1266. package/dist/presentation/forms/tagsInput/TagsInput.vue.d.ts +75 -0
  1267. package/dist/presentation/forms/tagsInput/index.d.ts +1 -0
  1268. package/dist/presentation/forms/telInput/TelInput.vue.d.ts +43 -0
  1269. package/dist/presentation/forms/telInput/index.d.ts +1 -0
  1270. package/dist/presentation/forms/textAreaInput/TextAreaInput.vue.d.ts +46 -0
  1271. package/dist/presentation/forms/textAreaInput/index.d.ts +1 -0
  1272. package/dist/presentation/forms/textInput/TextInput.vue.d.ts +43 -0
  1273. package/dist/presentation/forms/textInput/index.d.ts +1 -0
  1274. package/dist/presentation/forms/timeField/TimeField.vue.d.ts +38 -0
  1275. package/dist/presentation/forms/timeField/index.d.ts +1 -0
  1276. package/dist/presentation/forms/timePicker/TimePicker.vue.d.ts +50 -0
  1277. package/dist/presentation/forms/timePicker/index.d.ts +1 -0
  1278. package/dist/presentation/forms/urlInput/UrlInput.vue.d.ts +43 -0
  1279. package/dist/presentation/forms/urlInput/index.d.ts +1 -0
  1280. package/dist/presentation/forms/wizard/Wizard.vue.d.ts +38 -0
  1281. package/dist/presentation/forms/wizard/WizardContext.d.ts +38 -0
  1282. package/dist/presentation/forms/wizard/WizardFooter.vue.d.ts +29 -0
  1283. package/dist/presentation/forms/wizard/WizardStep.vue.d.ts +29 -0
  1284. package/dist/presentation/forms/wizard/WizardSteps.vue.d.ts +7 -0
  1285. package/dist/presentation/forms/wizard/index.d.ts +6 -0
  1286. package/dist/presentation/layout/appShell/AppShell.vue.d.ts +90 -0
  1287. package/dist/presentation/layout/appShell/AppShellAside.vue.d.ts +20 -0
  1288. package/dist/presentation/layout/appShell/AppShellContent.vue.d.ts +20 -0
  1289. package/dist/presentation/layout/appShell/AppShellFooter.vue.d.ts +20 -0
  1290. package/dist/presentation/layout/appShell/AppShellHeader.vue.d.ts +20 -0
  1291. package/dist/presentation/layout/appShell/AppShellMain.vue.d.ts +20 -0
  1292. package/dist/presentation/layout/appShell/AppShellSidebar.vue.d.ts +20 -0
  1293. package/dist/presentation/layout/appShell/index.d.ts +7 -0
  1294. package/dist/presentation/layout/aspectRatio/AspectRatio.vue.d.ts +18 -0
  1295. package/dist/presentation/layout/aspectRatio/index.d.ts +1 -0
  1296. package/dist/presentation/layout/box/Box.vue.d.ts +19 -0
  1297. package/dist/presentation/layout/box/index.d.ts +1 -0
  1298. package/dist/presentation/layout/center/Center.vue.d.ts +13 -0
  1299. package/dist/presentation/layout/center/index.d.ts +1 -0
  1300. package/dist/presentation/layout/cluster/Cluster.vue.d.ts +22 -0
  1301. package/dist/presentation/layout/cluster/index.d.ts +1 -0
  1302. package/dist/presentation/layout/container/Container.variants.d.ts +84 -0
  1303. package/dist/presentation/layout/container/Container.vue.d.ts +21 -0
  1304. package/dist/presentation/layout/container/index.d.ts +2 -0
  1305. package/dist/presentation/layout/controlGroup/ControlGroup.variants.d.ts +136 -0
  1306. package/dist/presentation/layout/controlGroup/ControlGroup.vue.d.ts +35 -0
  1307. package/dist/presentation/layout/controlGroup/index.d.ts +2 -0
  1308. package/dist/presentation/layout/divider/Divider.variants.d.ts +47 -0
  1309. package/dist/presentation/layout/divider/Divider.vue.d.ts +38 -0
  1310. package/dist/presentation/layout/divider/index.d.ts +2 -0
  1311. package/dist/presentation/layout/flex/Flex.vue.d.ts +18 -0
  1312. package/dist/presentation/layout/flex/index.d.ts +1 -0
  1313. package/dist/presentation/layout/frame/Frame.vue.d.ts +38 -0
  1314. package/dist/presentation/layout/frame/index.d.ts +1 -0
  1315. package/dist/presentation/layout/grid/Grid.variants.d.ts +193 -0
  1316. package/dist/presentation/layout/grid/Grid.vue.d.ts +32 -0
  1317. package/dist/presentation/layout/grid/index.d.ts +2 -0
  1318. package/dist/presentation/layout/hStack/HStack.vue.d.ts +14 -0
  1319. package/dist/presentation/layout/hStack/index.d.ts +1 -0
  1320. package/dist/presentation/layout/index.d.ts +24 -0
  1321. package/dist/presentation/layout/index.js +64 -0
  1322. package/dist/presentation/layout/index.js.map +1 -0
  1323. package/dist/presentation/layout/inline/Inline.vue.d.ts +42 -0
  1324. package/dist/presentation/layout/inline/index.d.ts +1 -0
  1325. package/dist/presentation/layout/navbar/Navbar.variants.d.ts +86 -0
  1326. package/dist/presentation/layout/navbar/Navbar.vue.d.ts +43 -0
  1327. package/dist/presentation/layout/navbar/index.d.ts +2 -0
  1328. package/dist/presentation/layout/overlay/Overlay.variants.d.ts +231 -0
  1329. package/dist/presentation/layout/overlay/Overlay.vue.d.ts +64 -0
  1330. package/dist/presentation/layout/overlay/index.d.ts +2 -0
  1331. package/dist/presentation/layout/pullToRefresh/PullToRefresh.vue.d.ts +22 -0
  1332. package/dist/presentation/layout/pullToRefresh/index.d.ts +1 -0
  1333. package/dist/presentation/layout/resizablePanels/ResizablePanel.vue.d.ts +21 -0
  1334. package/dist/presentation/layout/resizablePanels/ResizablePanels.vue.d.ts +59 -0
  1335. package/dist/presentation/layout/resizablePanels/ResizableSeparator.vue.d.ts +10 -0
  1336. package/dist/presentation/layout/resizablePanels/index.d.ts +4 -0
  1337. package/dist/presentation/layout/scrollArea/ScrollArea.vue.d.ts +31 -0
  1338. package/dist/presentation/layout/scrollArea/index.d.ts +1 -0
  1339. package/dist/presentation/layout/section/Section.variants.d.ts +76 -0
  1340. package/dist/presentation/layout/section/Section.vue.d.ts +33 -0
  1341. package/dist/presentation/layout/section/index.d.ts +2 -0
  1342. package/dist/presentation/layout/spacer/Spacer.vue.d.ts +15 -0
  1343. package/dist/presentation/layout/spacer/index.d.ts +1 -0
  1344. package/dist/presentation/layout/stack/Stack.variants.d.ts +330 -0
  1345. package/dist/presentation/layout/stack/Stack.vue.d.ts +37 -0
  1346. package/dist/presentation/layout/stack/index.d.ts +2 -0
  1347. package/dist/presentation/layout/surface/Surface.vue.d.ts +39 -0
  1348. package/dist/presentation/layout/surface/index.d.ts +1 -0
  1349. package/dist/presentation/layout/twoColumn/TwoColumn.vue.d.ts +28 -0
  1350. package/dist/presentation/layout/twoColumn/index.d.ts +1 -0
  1351. package/dist/presentation/layout/vStack/VStack.vue.d.ts +14 -0
  1352. package/dist/presentation/layout/vStack/index.d.ts +1 -0
  1353. package/dist/presentation/nav/NavHelpers.d.ts +11 -0
  1354. package/dist/presentation/nav/breadcrumb/Breadcrumb.vue.d.ts +27 -0
  1355. package/dist/presentation/nav/breadcrumb/index.d.ts +1 -0
  1356. package/dist/presentation/nav/commandPalette/CommandPalette.vue.d.ts +53 -0
  1357. package/dist/presentation/nav/commandPalette/CommandPaletteContent.vue.d.ts +17 -0
  1358. package/dist/presentation/nav/commandPalette/CommandPaletteContext.d.ts +42 -0
  1359. package/dist/presentation/nav/commandPalette/CommandPaletteEmpty.vue.d.ts +19 -0
  1360. package/dist/presentation/nav/commandPalette/CommandPaletteGroup.vue.d.ts +19 -0
  1361. package/dist/presentation/nav/commandPalette/CommandPaletteInput.vue.d.ts +14 -0
  1362. package/dist/presentation/nav/commandPalette/CommandPaletteItem.vue.d.ts +36 -0
  1363. package/dist/presentation/nav/commandPalette/CommandPaletteList.vue.d.ts +19 -0
  1364. package/dist/presentation/nav/commandPalette/CommandPaletteSeparator.vue.d.ts +12 -0
  1365. package/dist/presentation/nav/commandPalette/index.d.ts +9 -0
  1366. package/dist/presentation/nav/contextMenu/ContextMenu.vue.d.ts +18 -0
  1367. package/dist/presentation/nav/contextMenu/ContextMenuContent.vue.d.ts +29 -0
  1368. package/dist/presentation/nav/contextMenu/ContextMenuContext.d.ts +20 -0
  1369. package/dist/presentation/nav/contextMenu/ContextMenuTrigger.vue.d.ts +27 -0
  1370. package/dist/presentation/nav/contextMenu/index.d.ts +4 -0
  1371. package/dist/presentation/nav/dropdownMenu/DropdownMenu.vue.d.ts +44 -0
  1372. package/dist/presentation/nav/dropdownMenu/DropdownMenuContent.vue.d.ts +20 -0
  1373. package/dist/presentation/nav/dropdownMenu/DropdownMenuContext.d.ts +28 -0
  1374. package/dist/presentation/nav/dropdownMenu/DropdownMenuTrigger.vue.d.ts +24 -0
  1375. package/dist/presentation/nav/dropdownMenu/index.d.ts +4 -0
  1376. package/dist/presentation/nav/index.d.ts +11 -0
  1377. package/dist/presentation/nav/index.js +62 -0
  1378. package/dist/presentation/nav/index.js.map +1 -0
  1379. package/dist/presentation/nav/menu/Menu.variants.d.ts +61 -0
  1380. package/dist/presentation/nav/menu/Menu.vue.d.ts +65 -0
  1381. package/dist/presentation/nav/menu/MenuContext.d.ts +25 -0
  1382. package/dist/presentation/nav/menu/MenuGroup.vue.d.ts +19 -0
  1383. package/dist/presentation/nav/menu/MenuItem.vue.d.ts +33 -0
  1384. package/dist/presentation/nav/menu/MenuLabel.vue.d.ts +20 -0
  1385. package/dist/presentation/nav/menu/MenuSeparator.vue.d.ts +12 -0
  1386. package/dist/presentation/nav/menu/index.d.ts +7 -0
  1387. package/dist/presentation/nav/menubar/Menubar.variants.d.ts +6 -0
  1388. package/dist/presentation/nav/menubar/Menubar.vue.d.ts +274 -0
  1389. package/dist/presentation/nav/menubar/MenubarContent.vue.d.ts +30 -0
  1390. package/dist/presentation/nav/menubar/MenubarContext.d.ts +34 -0
  1391. package/dist/presentation/nav/menubar/MenubarMenu.vue.d.ts +14 -0
  1392. package/dist/presentation/nav/menubar/MenubarTrigger.vue.d.ts +20 -0
  1393. package/dist/presentation/nav/menubar/index.d.ts +5 -0
  1394. package/dist/presentation/nav/navItem/NavItem.vue.d.ts +30 -0
  1395. package/dist/presentation/nav/navItem/index.d.ts +1 -0
  1396. package/dist/presentation/nav/navigationMenu/NavigationMenu.vue.d.ts +33 -0
  1397. package/dist/presentation/nav/navigationMenu/NavigationMenuContent.vue.d.ts +20 -0
  1398. package/dist/presentation/nav/navigationMenu/NavigationMenuContext.d.ts +24 -0
  1399. package/dist/presentation/nav/navigationMenu/NavigationMenuItem.vue.d.ts +16 -0
  1400. package/dist/presentation/nav/navigationMenu/NavigationMenuLink.vue.d.ts +20 -0
  1401. package/dist/presentation/nav/navigationMenu/NavigationMenuList.vue.d.ts +262 -0
  1402. package/dist/presentation/nav/navigationMenu/NavigationMenuTrigger.vue.d.ts +20 -0
  1403. package/dist/presentation/nav/navigationMenu/index.d.ts +7 -0
  1404. package/dist/presentation/nav/pagination/Pagination.vue.d.ts +24 -0
  1405. package/dist/presentation/nav/pagination/index.d.ts +1 -0
  1406. package/dist/presentation/nav/scrollSpy/ScrollSpy.vue.d.ts +31 -0
  1407. package/dist/presentation/nav/scrollSpy/UseScrollSpy.d.ts +20 -0
  1408. package/dist/presentation/nav/scrollSpy/index.d.ts +2 -0
  1409. package/dist/presentation/nav/tableOfContents/TableOfContents.vue.d.ts +41 -0
  1410. package/dist/presentation/nav/tableOfContents/index.d.ts +1 -0
  1411. package/dist/presentation/overlays/OverlayBody.vue.d.ts +20 -0
  1412. package/dist/presentation/overlays/OverlayChrome.d.ts +9 -0
  1413. package/dist/presentation/overlays/OverlayCloseButton.vue.d.ts +24 -0
  1414. package/dist/presentation/overlays/OverlayDescription.vue.d.ts +20 -0
  1415. package/dist/presentation/overlays/OverlayFooter.vue.d.ts +20 -0
  1416. package/dist/presentation/overlays/OverlayHeader.vue.d.ts +20 -0
  1417. package/dist/presentation/overlays/OverlayHelpers.d.ts +11 -0
  1418. package/dist/presentation/overlays/OverlayTitle.vue.d.ts +20 -0
  1419. package/dist/presentation/overlays/actionSheet/ActionSheet.vue.d.ts +52 -0
  1420. package/dist/presentation/overlays/actionSheet/ActionSheetAction.vue.d.ts +29 -0
  1421. package/dist/presentation/overlays/actionSheet/ActionSheetCancel.vue.d.ts +19 -0
  1422. package/dist/presentation/overlays/actionSheet/index.d.ts +4 -0
  1423. package/dist/presentation/overlays/alertModal/AlertModal.vue.d.ts +28 -0
  1424. package/dist/presentation/overlays/alertModal/AlertModalAction.vue.d.ts +24 -0
  1425. package/dist/presentation/overlays/alertModal/AlertModalCancel.vue.d.ts +19 -0
  1426. package/dist/presentation/overlays/alertModal/AlertModalContent.vue.d.ts +15 -0
  1427. package/dist/presentation/overlays/alertModal/index.d.ts +12 -0
  1428. package/dist/presentation/overlays/backdrop/Backdrop.vue.d.ts +40 -0
  1429. package/dist/presentation/overlays/backdrop/index.d.ts +1 -0
  1430. package/dist/presentation/overlays/bottomSheet/BottomSheet.vue.d.ts +79 -0
  1431. package/dist/presentation/overlays/bottomSheet/index.d.ts +3 -0
  1432. package/dist/presentation/overlays/drawer/Drawer.vue.d.ts +68 -0
  1433. package/dist/presentation/overlays/drawer/DrawerContent.vue.d.ts +54 -0
  1434. package/dist/presentation/overlays/drawer/DrawerTrigger.vue.d.ts +24 -0
  1435. package/dist/presentation/overlays/drawer/index.d.ts +9 -0
  1436. package/dist/presentation/overlays/hoverCard/HoverCard.vue.d.ts +68 -0
  1437. package/dist/presentation/overlays/hoverCard/HoverCardArrow.vue.d.ts +10 -0
  1438. package/dist/presentation/overlays/hoverCard/HoverCardContent.vue.d.ts +20 -0
  1439. package/dist/presentation/overlays/hoverCard/HoverCardTrigger.vue.d.ts +24 -0
  1440. package/dist/presentation/overlays/hoverCard/index.d.ts +4 -0
  1441. package/dist/presentation/overlays/index.d.ts +8 -0
  1442. package/dist/presentation/overlays/index.js +62 -0
  1443. package/dist/presentation/overlays/index.js.map +1 -0
  1444. package/dist/presentation/overlays/modal/Modal.vue.d.ts +75 -0
  1445. package/dist/presentation/overlays/modal/ModalContent.vue.d.ts +38 -0
  1446. package/dist/presentation/overlays/modal/ModalTrigger.vue.d.ts +24 -0
  1447. package/dist/presentation/overlays/modal/index.d.ts +22 -0
  1448. package/dist/presentation/overlays/popover/Popover.vue.d.ts +70 -0
  1449. package/dist/presentation/overlays/popover/PopoverArrow.vue.d.ts +10 -0
  1450. package/dist/presentation/overlays/popover/PopoverContent.vue.d.ts +34 -0
  1451. package/dist/presentation/overlays/popover/PopoverTrigger.vue.d.ts +24 -0
  1452. package/dist/presentation/overlays/popover/index.d.ts +4 -0
  1453. package/dist/query/CreateQueryClient.d.ts +19 -0
  1454. package/dist/query/Devtools.vue.d.ts +10 -0
  1455. package/dist/query/Endpoints.d.ts +14 -0
  1456. package/dist/query/PageHelpers.d.ts +10 -0
  1457. package/dist/query/Persistence.d.ts +40 -0
  1458. package/dist/query/QueryPlugin.d.ts +14 -0
  1459. package/dist/query/QueryProgressBridge.d.ts +16 -0
  1460. package/dist/query/QueryProvider.vue.d.ts +17 -0
  1461. package/dist/query/QueryTestUtils.d.ts +54 -0
  1462. package/dist/query/ToApiError.d.ts +7 -0
  1463. package/dist/query/UseAppInfiniteQuery.d.ts +45 -0
  1464. package/dist/query/UseAppLazyQuery.d.ts +40 -0
  1465. package/dist/query/UseAppMutation.d.ts +32 -0
  1466. package/dist/query/UseAppPaginatedQuery.d.ts +39 -0
  1467. package/dist/query/UseAppQueries.d.ts +43 -0
  1468. package/dist/query/UseAppQuery.d.ts +38 -0
  1469. package/dist/query/UseAppSuspenseQuery.d.ts +42 -0
  1470. package/dist/query/UseOptimisticMutation.d.ts +25 -0
  1471. package/dist/query/UsePrefetchQuery.d.ts +26 -0
  1472. package/dist/query/UseQueryCache.d.ts +31 -0
  1473. package/dist/query/index.d.ts +19 -0
  1474. package/dist/query/index.js +461 -0
  1475. package/dist/query/index.js.map +1 -0
  1476. package/dist/query/testing.d.ts +1 -0
  1477. package/dist/query/testing.js +48 -0
  1478. package/dist/query/testing.js.map +1 -0
  1479. package/dist/router/AppErrorBoundary.vue.d.ts +26 -0
  1480. package/dist/router/AppNavLink.vue.d.ts +40 -0
  1481. package/dist/router/CreateAppRouter.d.ts +65 -0
  1482. package/dist/router/DocumentMeta.d.ts +9 -0
  1483. package/dist/router/DocumentTitle.d.ts +18 -0
  1484. package/dist/router/Guards.d.ts +29 -0
  1485. package/dist/router/LazyRoute.d.ts +16 -0
  1486. package/dist/router/NavigationProgress.vue.d.ts +19 -0
  1487. package/dist/router/NavigationProgressModes.d.ts +18 -0
  1488. package/dist/router/NotFound.vue.d.ts +10 -0
  1489. package/dist/router/PageViewTracker.d.ts +23 -0
  1490. package/dist/router/Paths.d.ts +18 -0
  1491. package/dist/router/ProgressProvider.vue.d.ts +19 -0
  1492. package/dist/router/RouteAnnouncer.vue.d.ts +10 -0
  1493. package/dist/router/RouteConfig.d.ts +82 -0
  1494. package/dist/router/RouteHandles.d.ts +24 -0
  1495. package/dist/router/RoutePersistence.d.ts +21 -0
  1496. package/dist/router/UseBreadcrumbs.d.ts +17 -0
  1497. package/dist/router/UseNavigationBlocker.d.ts +41 -0
  1498. package/dist/router/UseNavigationProgress.d.ts +32 -0
  1499. package/dist/router/UsePrefetch.d.ts +19 -0
  1500. package/dist/router/UseRouteNavigating.d.ts +15 -0
  1501. package/dist/router/UseTypedSearchParams.d.ts +17 -0
  1502. package/dist/router/index.d.ts +23 -0
  1503. package/dist/router/index.js +711 -0
  1504. package/dist/router/index.js.map +1 -0
  1505. package/dist/themes.css +15374 -0
  1506. package/dist/themes.json +2898 -0
  1507. package/package.json +432 -0
@@ -0,0 +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":";;;AA2CO,SAAS,oBACd,QAC6B;AAC7B,MAAI;AACF,UAAM,YAAsB,WAA6C;AACzE,QAAI,OAAO,cAAc,YAAY,cAAc,KAAM,QAAO;AAEhE,UAAM,MAAM;AACZ,QAAI,OAAO,IAAI,MAAM,MAAM,WAAY,QAAO;AAC9C,WAAO;AAAA,EACT,QAAQ;AAGN,WAAO;AAAA,EACT;AACF;AAUO,SAAS,uBAAyD;AACvE,MAAI;AACF,UAAM,YAAsB,WAAsD;AAClF,WAAO,OAAO,cAAc,aAAc,YAAqC;AAAA,EACjF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAUO,SAAS,+BAAyE;AACvF,MAAI;AAGF,UAAM,QAAQ;AAKd,UAAM,YAAqB,MAAM,qBAAqB,MAAM;AAC5D,WAAO,OAAO,cAAc,aAAc,YAA6C;AAAA,EACzF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AASO,SAAS,WAAoB;AAClC,SAAO,oBAAoB,OAAO,MAAM,UAAa,2BAA2B;AAClF;AAaO,SAAS,qBAA8B;AAC5C,SAAO,mCAAmC;AAC5C;AAUO,SAAS,mBAAkC;AAChD,SAAO,EAAE,WAAW,SAAA,GAAY,aAAa,qBAAmB;AAClE;ACpGA,MAAM,oBAAyC,oBAAI,IAAI,CAAC,YAAY,aAAa,aAAa,CAAC;AAM/F,SAAS,YAAY,OAAoC;AACvD,MAAI,UAAU,QAAS,OAAO,UAAU,YAAY,OAAO,UAAU,WAAa,QAAO;AAEzF,MAAI;AACF,UAAM,OAAiB,MAAkC,OAAO;AAChE,WAAO,OAAO,SAAS,WAAW,OAAO;AAAA,EAC3C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAYO,SAAS,eAAe,OAA6B;AAC1D,QAAM,OAAO,YAAY,KAAK;AAC9B,MAAI,SAAS,UAAa,kBAAkB,IAAI,IAAI,EAAG,QAAO,EAAE,QAAQ,YAAA;AAIxE,QAAM,QAAQ,IAAI,MAAM,4BAA4B,QAAQ,SAAS,IAAI,EAAE,OAAO,OAAO;AACzF,SAAO,EAAE,QAAQ,UAAU,MAAA;AAC7B;AC9CA,IAAI,UAAU;AAUP,SAAS,mBAA2B;AACzC,SAAO;AACT;AAYO,SAAS,eAAwB;AACtC,QAAM,QAAQ,oBAAoB,QAAQ;AAC1C,MAAI,UAAU,OAAW,QAAO;AAEhC,aAAW;AACX,MAAI;AACF,UAAM,OAAA;AACN,WAAO;AAAA,EACT,QAAQ;AAIN,WAAO;AAAA,EACT;AACF;AAUO,SAAS,cAAuB;AACrC,QAAM,QAAQ,oBAAoB,OAAO;AACzC,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI;AACF,UAAM,MAAA;AACN,WAAO;AAAA,EACT,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AASO,SAAS,eAAwB;AACtC,QAAM,QAAQ,oBAAoB,QAAQ;AAC1C,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI;AACF,UAAM,OAAA;AACN,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAaO,SAAS,aAAsB;AACpC,QAAM,QAAQ,oBAAoB,OAAO;AACzC,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI;AACF,WAAO,MAAM,aAAa;AAAA,EAC5B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AASO,SAAS,iBAA0B;AACxC,QAAM,QAAQ,oBAAoB,OAAO;AACzC,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI;AACF,WAAO,MAAM,WAAW;AAAA,EAC1B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;ACnEA,MAAM,+BAAe,IAAA;AAGrB,SAAS,MAAM,OAA2B,KAAa,KAAiC;AACtF,MAAI,UAAU,UAAa,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AAC3D,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAC3C;AAGA,SAAS,UAAU,WAAqC,SAAyC;AAC/F,MAAI,YAAY,OAAW;AAE3B,MAAI;AACF,QAAI,QAAQ,UAAU,OAAW,WAAU,QAAQ,QAAQ;AAC3D,QAAI,QAAQ,SAAS,OAAW,WAAU,OAAO,QAAQ;AAEzD,UAAM,OAAO,MAAM,QAAQ,MAAM,KAAK,EAAE;AACxC,QAAI,SAAS,OAAW,WAAU,OAAO;AAEzC,UAAM,QAAQ,MAAM,QAAQ,OAAO,GAAG,CAAC;AACvC,QAAI,UAAU,OAAW,WAAU,QAAQ;AAE3C,UAAM,SAAS,MAAM,QAAQ,QAAQ,GAAG,CAAC;AACzC,QAAI,WAAW,OAAW,WAAU,SAAS;AAAA,EAC/C,QAAQ;AAAA,EAGR;AACF;AAGA,SAAS,SAAS,QAA8B,UAA+D;AAC7G,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,OAAO,SAAS;AAAA,IAChB,QAAQ,SAAS;AAAA,IACjB,MAAM,CACJ,aACA,eACqC,OAAO,KAAK,aAAa,UAAU;AAAA,EAAA;AAE9E;AAGA,SAAS,gBAAuD;AAC9D,QAAM,OAAO,MAAY;AAAA,EAEzB;AACA,SAAO,EAAE,QAAQ,MAAM,OAAO,MAAM,QAAQ,KAAA;AAC9C;AAuBO,SAAS,MAAM,MAAc,SAAsC;AACxE,QAAM,QAAQ,oBAAoB,OAAO;AACzC,QAAM,YAAY,qBAAA;AAGlB,MAAI,UAAU,UAAa,cAAc,QAAW;AAClD,WAAO,SAAS,QAAQ,QAAQ,EAAE,QAAQ,cAAA,CAAe,GAAG,eAAe;AAAA,EAC7E;AAEA,MAAI;AACJ,QAAM,SAAS,IAAI,QAAqB,CAAC,YAAY;AACnD,aAAS;AAAA,EACX,CAAC;AAED,MAAI,UAAU;AACd,MAAI;AAGJ,QAAM,SAAS,CAAC,WAA8B;AAC5C,QAAI,QAAS;AACb,cAAU;AACV,QAAI,cAAc,OAAW,UAAS,OAAO,SAAS;AACtD,WAAO,MAAM;AAAA,EACf;AAEA,MAAI;AACF,gBAAY,IAAI,UAAU,IAAI;AAAA,EAChC,SAAS,OAAO;AAGd,WAAO,SAAS,QAAQ,QAAQ,EAAE,QAAQ,UAAU,OAAO,QAAQ,KAAK,GAAG,GAAG,eAAe;AAAA,EAC/F;AAEA,YAAU,WAAW,OAAO;AAI5B,QAAM,aAAa,iBAAA;AACnB,QAAM,eAAe,MAAe,iBAAA,MAAuB;AAE3D,YAAU,QAAQ,MAAY;AAC5B,WAAO,aAAA,IAAiB,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,UAAU;AAAA,EACxE;AAEA,YAAU,UAAU,CAAC,UAAgB;AAGnC,WAAO,aAAA,IAAiB,EAAE,QAAQ,gBAAgB,eAAe,KAAK,CAAC;AAAA,EACzE;AAEA,WAAS,IAAI,SAAS;AAEtB,MAAI;AACF,UAAM,MAAM,SAAS;AAAA,EACvB,SAAS,OAAO;AACd,WAAO,EAAE,QAAQ,UAAU,OAAO,QAAQ,KAAK,GAAG;AAAA,EACpD;AAEA,SAAO,SAAS,QAAQ;AAAA,IACtB,QAAQ,MAAY;AAClB,mBAAA;AAAA,IACF;AAAA,IACA,OAAO,MAAY;AACjB,kBAAA;AAAA,IACF;AAAA,IACA,QAAQ,MAAY;AAClB,mBAAA;AAAA,IACF;AAAA,EAAA,CACD;AACH;AC9LO,MAAM,yBAAyB;AAGtC,MAAMA,aAA4C,CAAA;AASlD,SAAS,WAAW,OAAyD;AAC3E,MAAI;AACF,UAAM,SAAkB,MAAM,UAAA;AAC9B,WAAO,MAAM,QAAQ,MAAM,IAAK,SAAoCA;AAAAA,EACtE,QAAQ;AACN,WAAOA;AAAAA,EACT;AACF;AAaO,SAAS,iBAAkD;AAChE,QAAM,QAAQ,oBAAoB,WAAW;AAC7C,SAAO,UAAU,SAAYA,aAAW,WAAW,KAAK;AAC1D;AAaO,SAAS,gBAAgB,UAAkC;AAChE,QAAM,OAAO,MAAY;AAAA,EAEzB;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAC7C,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI;AACF,QAAI,OAAO,MAAM,qBAAqB,YAAY;AAChD,YAAM,iBAAiB,iBAAiB,QAAQ;AAChD,aAAO,MAAY;AACjB,YAAI;AACF,gBAAM,oBAAoB,iBAAiB,QAAQ;AAAA,QACrD,QAAQ;AAAA,QAGR;AAAA,MACF;AAAA,IACF;AAGA,UAAM,WAAW,MAAM;AACvB,UAAM,kBAAkB,SAAiC,OAAoB;AAC3E,UAAI,OAAO,aAAa,WAAY,UAAS,KAAK,MAAM,KAAK;AAC7D,eAAA;AAAA,IACF;AACA,WAAO,MAAY;AACjB,YAAM,kBAAkB;AAAA,IAC1B;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAmBO,SAAS,WAAW,SAAuE;AAChG,QAAM,QAAQ,oBAAoB,WAAW;AAC7C,MAAI,UAAU,OAAW,QAAO,QAAQ,QAAQA,UAAQ;AAExD,QAAM,YAAY,WAAW,KAAK;AAClC,MAAI,UAAU,SAAS,EAAG,QAAO,QAAQ,QAAQ,SAAS;AAE1D,SAAO,IAAI,QAAyC,CAAC,YAAY;AAC/D,QAAI,UAAU;AAId,UAAM,SAAS,MAAY;AACzB,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,kBAAA;AAGA,cAAQ,WAAW,KAAK,CAAC;AAAA,IAC3B;AAEA,UAAM,cAAc,gBAAgB,MAAY;AAE9C,UAAI,WAAW,KAAK,EAAE,WAAW,EAAG;AACpC,aAAA;AAAA,IACF,CAAC;AAED,UAAM,QAAQ,WAAW,QAAQ,SAAS,aAAa,sBAAsB;AAAA,EAC/E,CAAC;AACH;AAGA,SAAS,aAAa,KAAqB;AACzC,SAAO,IAAI,OAAO,cAAc,QAAQ,MAAM,GAAG;AACnD;AAGA,SAAS,cAAc,KAAqB;AAC1C,SAAO,aAAa,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK;AAC5C;AAGA,SAAS,aAAa,QAA0E;AAC9F,SAAO,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,UAAU,OAAO,MAAM,YAAY,IAAI,IAAI,OAAO,KAAK,YAAY,IAAI,CAAC;AACzG;AAeO,SAAS,cACd,QACA,MACiC;AACjC,QAAM,SAAS,aAAa,IAAI;AAChC,MAAI,WAAW,GAAI,QAAOA;AAE1B,QAAM,gBAAgB,cAAc,MAAM;AAC1C,QAAM,QAAgC,CAAA;AACtC,QAAM,UAAkC,CAAA;AAExC,aAAW,SAAS,QAAQ;AAC1B,UAAM,MAAM,OAAO,MAAM,SAAS,WAAW,aAAa,MAAM,IAAI,IAAI;AACxE,QAAI,QAAQ,GAAI;AAEhB,QAAI,QAAQ,OAAQ,OAAM,KAAK,KAAK;AAAA,aAC3B,cAAc,GAAG,MAAM,cAAe,SAAQ,KAAK,KAAK;AAAA,EACnE;AAEA,SAAO,CAAC,GAAG,aAAa,KAAK,GAAG,GAAG,aAAa,OAAO,CAAC;AAC1D;AAgBA,eAAsB,UAAU,MAAc,SAAwE;AACpH,QAAM,SAAS,MAAM,WAAW,OAAO;AACvC,SAAO,cAAc,QAAQ,IAAI,EAAE,GAAG,CAAC;AACzC;ACpKA,MAAM,WAA4C,CAAA;AAgB3C,SAAS,qBAA8C;AAC5D,QAAM,EAAE,OAAA,IAAW,UAAA;AAEnB,QAAM,SAAS,WAA4C,QAAQ;AACnE,QAAM,WAAW,WAAW,KAAK;AACjC,QAAM,SAAS,WAAW,KAAK;AAC/B,QAAM,YAAY,WAAW,KAAK;AAGlC,MAAI,WAAW;AAGf,MAAIC,YAAW;AAEf,QAAMC,UAAQ,OAAO,MAAc,YAAiD;AAClF,IAAAD,aAAY;AACZ,QAAI,CAAC,UAAU;AACb,eAAS,QAAQ;AACjB,aAAO,QAAQ;AAAA,IACjB;AAIA,UAAM,SAAS,MAAME,MAAU,MAAM,EAAE,GAAG,SAAS,MAAM,SAAS,QAAQ,OAAO,MAAA,CAAO;AAExF,IAAAF,YAAW,KAAK,IAAI,GAAGA,YAAW,CAAC;AAGnC,QAAI,CAAC,YAAYA,cAAa,GAAG;AAC/B,eAAS,QAAQ;AACjB,aAAO,QAAQ;AAAA,IACjB;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,MAAY;AACzB,iBAAA;AACA,QAAI,CAAC,SAAU,QAAO,QAAQ;AAAA,EAChC;AAEA,QAAM,QAAQ,MAAY;AACxB,QAAI,YAAA,KAAiB,CAAC,iBAAiB,QAAQ;AAAA,EACjD;AAEA,QAAM,SAAS,MAAY;AACzB,QAAI,aAAA,KAAkB,CAAC,iBAAiB,QAAQ;AAAA,EAClD;AAEA,MAAI;AAEJ,YAAU,MAAM;AACd,cAAU,QAAQ,SAAA;AAElB,UAAM,QAAQ,CAAC,SAAgD;AAC7D,UAAI,CAAC,SAAU,QAAO,QAAQ;AAAA,IAChC;AAGA,SAAK,WAAA,EAAa,KAAK,KAAK;AAE5B,kBAAc,gBAAgB,MAAY;AACxC,YAAM,gBAAgB;AAAA,IACxB,CAAC;AAAA,EACH,CAAC;AAED,iBAAe,MAAM;AACnB,eAAW;AACX,kBAAA;AACA,kBAAc;AAGd,QAAIA,YAAW,EAAG,cAAA;AAAA,EACpB,CAAC;AAED,SAAO,EAAE,WAAW,QAAQ,UAAU,eAAQC,SAAO,QAAQ,OAAO,OAAA;AACtE;ACpFA,MAAM,eAAkE;AAAA,EACtE,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,0BAA0B;AAC5B;AAGA,SAAS,aAAa,OAAgB,KAAiC;AACrE,MAAI,UAAU,QAAS,OAAO,UAAU,YAAY,OAAO,UAAU,WAAa,QAAO;AAEzF,MAAI;AACF,UAAM,SAAmB,MAAkC,GAAG;AAC9D,WAAO,OAAO,WAAW,WAAW,SAAS;AAAA,EAC/C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAcO,SAAS,2BAA2B,OAA0C;AACnF,QAAM,OAAO,aAAa,OAAO,OAAO;AACxC,QAAM,SAAS,aAAa,OAAO,SAAS;AAC5C,QAAM,SAAS,SAAS,SAAY,WAAY,aAAa,IAAI,KAAK;AAEtE,QAAM,UACJ,WAAW,UAAa,WAAW,KAC/B,6BAA6B,QAAQ,SAAS,KAC9C,6BAA6B,QAAQ,SAAS,MAAM,MAAM;AAGhE,SAAO,EAAE,QAAQ,OAAO,IAAI,MAAM,SAAS,EAAE,OAAO,MAAA,CAAO,EAAA;AAC7D;ACrBA,SAAS,OAAkB,UAAuD,UAA2B;AAC3G,MAAI,aAAa,OAAW;AAE5B,MAAI;AACF,aAAS,QAAQ;AAAA,EACnB,QAAQ;AAAA,EAER;AACF;AAGA,SAAS,gBAAgB,OAAsD;AAC7E,QAAM,OAAO,MAAY;AAAA,EAEzB;AAEA,SAAO,EAAE,WAAW,OAAO,WAAW,OAAO,OAAO,MAAM,MAAM,OAAO,KAAA;AACzE;AAyBO,SAAS,uBAAuB,SAAqD;AAC1F,QAAM,cAAc,6BAAA;AACpB,MAAI,gBAAgB,OAAW,QAAO,gBAAgB,OAAO,EAAE,QAAQ,gBAAgB;AAEvF,MAAI;AACJ,MAAI;AACF,eAAW,IAAI,YAAA;AAAA,EACjB,SAAS,OAAO;AAId,UAAM,QAAQ,QAAQ,KAAK;AAC3B,WAAO,gBAAgB,OAAO,EAAE,QAAQ,UAAU,QAAQ;AAAA,EAC5D;AAEA,MAAI;AACF,QAAI,SAAS,SAAS,OAAW,UAAS,OAAO,QAAQ;AACzD,aAAS,aAAa,SAAS,cAAc;AAC7C,aAAS,iBAAiB,SAAS,kBAAkB;AACrD,QAAI,SAAS,oBAAoB,OAAW,UAAS,kBAAkB,QAAQ;AAAA,EACjF,QAAQ;AAAA,EAER;AAEA,MAAI,QAA2C;AAG/C,QAAM,cAAc,CAAC,UAA4C;AAC/D,QAAI;AACF,YAAM,UAAU,MAAM;AACtB,YAAM,SAAS,OAAO,SAAS,WAAW,WAAW,QAAQ,SAAS;AAEtE,YAAM,QAAQ,OAAO,UAAU,MAAM,WAAW,IAAI,KAAK,IAAI,GAAG,MAAM,WAAW,IAAI;AAErF,UAAI,UAAU;AAEd,eAAS,QAAQ,OAAO,QAAQ,QAAQ,SAAS,GAAG;AAClD,cAAM,SAAS,QAAQ,KAAK;AAC5B,YAAI,WAAW,OAAW;AAG1B,cAAM,cAAc,OAAO,CAAC;AAC5B,YAAI,gBAAgB,OAAW;AAE/B,cAAM,aAAa,OAAO,YAAY,eAAe,WAAW,YAAY,aAAa;AACzF,cAAM,aAAa,OAAO,YAAY,eAAe,WAAW,YAAY,aAAa;AACzF,cAAM,UAAU,OAAO,YAAY;AAEnC,eAAO,SAAS,UAAU,EAAE,YAAY,SAAS,YAAY;AAC7D,YAAI,QAAS,QAAO,SAAS,SAAS,UAAU;AAAA,iBACvC,eAAe,GAAI,WAAU,YAAY,KAAK,aAAa,GAAG,OAAO,IAAI,UAAU;AAAA,MAC9F;AAEA,UAAI,YAAY,GAAI,QAAO,SAAS,WAAW,OAAO;AAAA,IACxD,QAAQ;AAAA,IAER;AAAA,EACF;AAEA,MAAI;AACF,aAAS,UAAU,MAAY;AAC7B,cAAQ;AACR,aAAa,SAAS,SAAS,MAAS;AAAA,IAC1C;AAEA,aAAS,QAAQ,MAAY;AAC3B,cAAQ;AACR,aAAa,SAAS,OAAO,MAAS;AAAA,IACxC;AAEA,aAAS,UAAU,CAAC,UAAgB;AAElC,aAAO,SAAS,SAAS,2BAA2B,KAAK,CAAC;AAAA,IAC5D;AAEA,aAAS,WAAW;AAAA,EACtB,QAAQ;AAAA,EAER;AAEA,SAAO;AAAA,IACL,WAAW;AAAA,IAEX,IAAI,YAAqB;AACvB,aAAO,UAAU;AAAA,IACnB;AAAA,IAEA,OAAO,MAA6B;AAElC,UAAI,UAAU,OAAQ,QAAO,EAAE,QAAQ,kBAAA;AAEvC,UAAI;AACF,iBAAS,MAAA;AACT,gBAAQ;AACR,eAAO,EAAE,QAAQ,UAAA;AAAA,MACnB,SAAS,OAAO;AAGd,gBAAQ;AACR,eAAO,EAAE,QAAQ,UAAU,OAAO,QAAQ,KAAK,EAAA;AAAA,MACjD;AAAA,IACF;AAAA,IAEA,MAAM,MAAY;AAChB,UAAI,UAAU,OAAQ;AAEtB,UAAI;AACF,iBAAS,KAAA;AAAA,MACX,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,IAEA,OAAO,MAAY;AACjB,UAAI,UAAU,OAAQ;AACtB,cAAQ;AAER,UAAI;AACF,iBAAS,MAAA;AAAA,MACX,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EAAA;AAEJ;AC3LA,SAAS,aAAa,UAAkB,QAAwB;AAC9D,QAAM,OAAO,OAAO,KAAA;AACpB,MAAI,SAAS,GAAI,QAAO;AACxB,SAAO,aAAa,KAAK,OAAO,GAAG,QAAQ,IAAI,IAAI;AACrD;AAoBO,SAAS,qBACd,SAC2B;AAC3B,QAAM,EAAE,OAAA,IAAW,UAAA;AAEnB,QAAM,aAAa,WAAW,EAAE;AAChC,QAAM,oBAAoB,WAAW,EAAE;AACvC,QAAM,YAAY,WAAW,KAAK;AAClC,QAAM,QAAQ,WAA4C,IAAI;AAK9D,QAAM,YAAY,WAAW,KAAK;AAGlC,MAAI,WAAW;AACf,MAAI,aAAsC;AAE1C,WAAS,gBAAkC;AACzC,QAAI,eAAe,KAAM,QAAO;AAEhC,UAAM,UAAU,uBAAuB;AAAA,MACrC,MAAM,QAAQ,OAAO,GAAG,QAAQ,OAAO;AAAA,MACvC,YAAY,QAAQ,OAAO,GAAG;AAAA;AAAA;AAAA,MAG9B,gBAAgB,QAAQ,OAAO,GAAG,kBAAkB;AAAA,MACpD,iBAAiB,QAAQ,OAAO,GAAG;AAAA,MAEnC,SAAS,MAAY;AACnB,YAAI,CAAC,UAAU;AACb,oBAAU,QAAQ;AAClB,gBAAM,QAAQ;AAAA,QAChB;AACA,gBAAQ,OAAO,GAAG,UAAA;AAAA,MACpB;AAAA,MAEA,OAAO,MAAY;AACjB,YAAI,CAAC,UAAU;AACb,oBAAU,QAAQ;AAElB,4BAAkB,QAAQ;AAAA,QAC5B;AACA,gBAAQ,OAAO,GAAG,QAAA;AAAA,MACpB;AAAA,MAEA,SAAS,CAAC,YAAkB;AAC1B,YAAI,CAAC,SAAU,OAAM,QAAQ;AAC7B,gBAAQ,OAAO,GAAG,UAAU,OAAO;AAAA,MACrC;AAAA,MAEA,UAAU,CAAC,WAAiB;AAC1B,YAAI,CAAC,UAAU;AACb,cAAI,OAAO,SAAS;AAClB,uBAAW,QAAQ,aAAa,WAAW,OAAO,OAAO,UAAU;AACnE,8BAAkB,QAAQ;AAAA,UAC5B,OAAO;AACL,8BAAkB,QAAQ,OAAO;AAAA,UACnC;AAAA,QACF;AACA,gBAAQ,OAAO,GAAG,WAAW,MAAM;AAAA,MACrC;AAAA,MAEA,SAAS,CAAC,SAAe;AACvB,gBAAQ,OAAO,GAAG,UAAU,IAAI;AAAA,MAClC;AAAA,MAEA,WAAW,CAAC,SAAe;AACzB,gBAAQ,OAAO,GAAG,YAAY,IAAI;AAAA,MACpC;AAAA,IAAA,CACD;AAED,iBAAa;AACb,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAA6B,cAAA,EAAgB,MAAA;AAI3D,QAAM,OAAO,MAAY;AACvB,gBAAY,KAAA;AAAA,EACd;AAEA,QAAM,QAAQ,MAAY;AACxB,gBAAY,MAAA;AAAA,EACd;AAEA,QAAM,QAAQ,MAAY;AACxB,eAAW,QAAQ;AACnB,sBAAkB,QAAQ;AAC1B,UAAM,QAAQ;AAAA,EAChB;AAEA,YAAU,MAAM;AACd,cAAU,QAAQ,mBAAA;AAAA,EACpB,CAAC;AAKD;AAAA,IACE;AAAA,MACE,MAAM,QAAQ,OAAO,GAAG,QAAQ,OAAO;AAAA,MACvC,MAAM,QAAQ,OAAO,GAAG,cAAc;AAAA,MACtC,MAAM,QAAQ,OAAO,GAAG,kBAAkB;AAAA,IAAA;AAAA,IAE5C,MAAM;AACJ,kBAAY,MAAA;AACZ,mBAAa;AAAA,IACf;AAAA,EAAA;AAGF,iBAAe,MAAM;AACnB,eAAW;AAEX,gBAAY,MAAA;AACZ,iBAAa;AAAA,EACf,CAAC;AAED,SAAO,EAAE,WAAW,WAAW,YAAY,mBAAmB,OAAO,OAAO,MAAM,OAAO,MAAA;AAC3F;"}
@@ -0,0 +1,7 @@
1
+ import { StorageBroker } from './StorageBroker';
2
+ /**
3
+ * Wraps `inner` so every key is transparently prefixed with `namespace` (joined by `:`). Reads, writes, and
4
+ * removes all address the namespaced key, so two brokers with distinct namespaces over the same backing store
5
+ * never observe each other's values. Delegates JSON handling and failure-tolerance to `inner` unchanged.
6
+ */
7
+ export declare function namespacedBroker(inner: StorageBroker, namespace: string): StorageBroker;
@@ -0,0 +1,17 @@
1
+ /** Defines a JSON key/value persistence seam the storage hooks read and write through. */
2
+ export interface StorageBroker {
3
+ /** Reads and parses the value stored under `key`, or null when absent or unreadable. */
4
+ read<T>(key: string): T | null;
5
+ /** Serializes `value` to JSON and writes it under `key`; a quota or serialization failure is swallowed. */
6
+ write<T>(key: string, value: T): void;
7
+ /** Removes any value stored under `key`. */
8
+ remove(key: string): void;
9
+ }
10
+ /**
11
+ * The production broker — persists through the browser's `localStorage` as JSON, SSR-safe and failure-tolerant.
12
+ * A read that is absent, malformed, or blocked returns null; a write that exceeds quota or fails to serialize is
13
+ * swallowed. Never throws, so a caller never has to guard the storage call.
14
+ */
15
+ export declare const localStorageStorageBroker: StorageBroker;
16
+ /** Builds an isolated in-memory `StorageBroker` backed by a `Map` — the test double, with no cross-tab sync and no DOM. */
17
+ export declare function memoryStorageBroker(): StorageBroker;
@@ -0,0 +1,42 @@
1
+ import { StorageBroker } from './StorageBroker';
2
+ /** Upgrades a value from one schema version to the next. Receives the prior shape as `unknown`; returns the next. */
3
+ export type Migration = (previous: unknown) => unknown;
4
+ /** A map from *source* version to the migration that upgrades it to the following version (`n` upgrades `n`→`n+1`). */
5
+ export type MigrationMap = Readonly<Record<number, Migration>>;
6
+ /** Configures a versioned store. */
7
+ export interface VersionedStoreOptions<T> {
8
+ /** The storage key the envelope is persisted under. */
9
+ readonly key: string;
10
+ /** The current schema version (a positive integer). A stored value below this is migrated up on read. */
11
+ readonly version: number;
12
+ /** The value returned when nothing is stored or the stored value cannot be recovered. */
13
+ readonly initial: T;
14
+ /** Migrations keyed by source version; `migrations[n]` upgrades a v`n` value to v`n+1`. */
15
+ readonly migrations?: MigrationMap;
16
+ /** The backing persistence seam; defaults to `localStorageStorageBroker`. */
17
+ readonly broker?: StorageBroker;
18
+ }
19
+ /** A versioned view over a storage key — hydrate-with-migration on read, envelope-stamp on write. */
20
+ export interface VersionedStore<T> {
21
+ /** The storage key this store owns. */
22
+ readonly key: string;
23
+ /** The current schema version. */
24
+ readonly version: number;
25
+ /** Reads and, if needed, migrates the stored value; returns `initial` on absence or any unrecoverable state. */
26
+ read(): T;
27
+ /** Writes `value` stamped with the current version. */
28
+ write(value: T): void;
29
+ /** Removes the stored value. */
30
+ clear(): void;
31
+ }
32
+ /**
33
+ * Builds a {@link VersionedStore} over `key`. On `read`, a stored value is interpreted as:
34
+ * - **current version** → returned as-is;
35
+ * - **older version** → each `migrations[n]` is applied in turn from the stored version up to `version`, the
36
+ * upgraded value is written back, and returned. A gap in the chain (a missing `migrations[n]`) yields `initial`;
37
+ * - **newer version** (a rollback to older code) → `initial`, leaving the forward-written value untouched;
38
+ * - **legacy bare value** (no envelope) → treated as version `0` and migrated the same way.
39
+ *
40
+ * Any thrown error inside migration or the broker degrades to `initial`, mirroring the broker's never-throw contract.
41
+ */
42
+ export declare function createVersionedStore<T>(options: VersionedStoreOptions<T>): VersionedStore<T>;
@@ -0,0 +1,3 @@
1
+ export { type StorageBroker, localStorageStorageBroker, memoryStorageBroker, } from './StorageBroker';
2
+ export { namespacedBroker } from './NamespacedBroker';
3
+ export { type Migration, type MigrationMap, type VersionedStore, type VersionedStoreOptions, createVersionedStore, } from './VersionedStore';
@@ -0,0 +1,65 @@
1
+ import { l as localStorageStorageBroker } from "../../chunks/StorageBroker-COC81ZGB.js";
2
+ import { m } from "../../chunks/StorageBroker-COC81ZGB.js";
3
+ const NAMESPACE_SEPARATOR = ":";
4
+ function namespacedBroker(inner, namespace) {
5
+ const scope = (key) => `${namespace}${NAMESPACE_SEPARATOR}${key}`;
6
+ return {
7
+ read(key) {
8
+ return inner.read(scope(key));
9
+ },
10
+ write(key, value) {
11
+ inner.write(scope(key), value);
12
+ },
13
+ remove(key) {
14
+ inner.remove(scope(key));
15
+ }
16
+ };
17
+ }
18
+ function isEnvelope(value) {
19
+ return typeof value === "object" && value !== null && "v" in value && "data" in value && typeof value.v === "number";
20
+ }
21
+ function createVersionedStore(options) {
22
+ const { key, version, initial, migrations = {} } = options;
23
+ const broker = options.broker ?? localStorageStorageBroker;
24
+ function migrate(fromVersion, data) {
25
+ let current = data;
26
+ for (let from = fromVersion; from < version; from++) {
27
+ const step = migrations[from];
28
+ if (step === void 0) return null;
29
+ current = step(current);
30
+ }
31
+ return { data: current };
32
+ }
33
+ return {
34
+ key,
35
+ version,
36
+ read() {
37
+ try {
38
+ const stored = broker.read(key);
39
+ if (stored === null) return initial;
40
+ const { v, data } = isEnvelope(stored) ? stored : { v: 0, data: stored };
41
+ if (v === version) return data;
42
+ if (v > version) return initial;
43
+ const migrated = migrate(v, data);
44
+ if (migrated === null) return initial;
45
+ broker.write(key, { v: version, data: migrated.data });
46
+ return migrated.data;
47
+ } catch {
48
+ return initial;
49
+ }
50
+ },
51
+ write(value) {
52
+ broker.write(key, { v: version, data: value });
53
+ },
54
+ clear() {
55
+ broker.remove(key);
56
+ }
57
+ };
58
+ }
59
+ export {
60
+ createVersionedStore,
61
+ localStorageStorageBroker,
62
+ m as memoryStorageBroker,
63
+ namespacedBroker
64
+ };
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/foundation/storage/NamespacedBroker.ts","../../../src/foundation/storage/VersionedStore.ts"],"sourcesContent":["// A `StorageBroker` decorator that prefixes every key with a namespace. Wrapping a shared broker (one\n// `localStorage`) in a namespace keeps unrelated features — or two tenants in the same app — from colliding on\n// a bare key like `\"draft\"`, without any hook change: the persistence hooks still see a plain `StorageBroker`.\n// Composes with any broker (production, memory, or another namespace) since it only rewrites keys.\n\nimport type { StorageBroker } from './StorageBroker';\n\n/** The separator between a namespace and the caller's key. */\nconst NAMESPACE_SEPARATOR = ':';\n\n/**\n * Wraps `inner` so every key is transparently prefixed with `namespace` (joined by `:`). Reads, writes, and\n * removes all address the namespaced key, so two brokers with distinct namespaces over the same backing store\n * never observe each other's values. Delegates JSON handling and failure-tolerance to `inner` unchanged.\n */\nexport function namespacedBroker(inner: StorageBroker, namespace: string): StorageBroker {\n const scope = (key: string): string => `${namespace}${NAMESPACE_SEPARATOR}${key}`;\n\n return {\n read<T>(key: string): T | null {\n return inner.read<T>(scope(key));\n },\n\n write<T>(key: string, value: T): void {\n inner.write(scope(key), value);\n },\n\n remove(key: string): void {\n inner.remove(scope(key));\n },\n };\n}\n","// A versioned wrapper over a `StorageBroker`. Persisted client state outlives the code that wrote it: a user\n// carries last month's `localStorage` into today's deploy. A `VersionedStore` stamps each value with a schema\n// `version` and, on read, walks a migration chain from the stored version up to the current one — so an old\n// shape is upgraded in place instead of silently mis-parsed. It inherits the broker's failure-tolerance: any\n// unrecoverable state (missing migration, a future version, a broken read) degrades to `initial`, never a throw.\n\nimport { localStorageStorageBroker, type StorageBroker } from './StorageBroker';\n\n/** Upgrades a value from one schema version to the next. Receives the prior shape as `unknown`; returns the next. */\nexport type Migration = (previous: unknown) => unknown;\n\n/** A map from *source* version to the migration that upgrades it to the following version (`n` upgrades `n`→`n+1`). */\nexport type MigrationMap = Readonly<Record<number, Migration>>;\n\n/** Configures a versioned store. */\nexport interface VersionedStoreOptions<T> {\n /** The storage key the envelope is persisted under. */\n readonly key: string;\n\n /** The current schema version (a positive integer). A stored value below this is migrated up on read. */\n readonly version: number;\n\n /** The value returned when nothing is stored or the stored value cannot be recovered. */\n readonly initial: T;\n\n /** Migrations keyed by source version; `migrations[n]` upgrades a v`n` value to v`n+1`. */\n readonly migrations?: MigrationMap;\n\n /** The backing persistence seam; defaults to `localStorageStorageBroker`. */\n readonly broker?: StorageBroker;\n}\n\n/** A versioned view over a storage key — hydrate-with-migration on read, envelope-stamp on write. */\nexport interface VersionedStore<T> {\n /** The storage key this store owns. */\n readonly key: string;\n\n /** The current schema version. */\n readonly version: number;\n\n /** Reads and, if needed, migrates the stored value; returns `initial` on absence or any unrecoverable state. */\n read(): T;\n\n /** Writes `value` stamped with the current version. */\n write(value: T): void;\n\n /** Removes the stored value. */\n clear(): void;\n}\n\n/** The persisted shape: the schema version alongside the caller's data. */\ninterface Envelope {\n readonly v: number;\n readonly data: unknown;\n}\n\n/** Recognises a value as a version envelope (vs a legacy bare value written before versioning). */\nfunction isEnvelope(value: unknown): value is Envelope {\n return typeof value === 'object' && value !== null && 'v' in value && 'data' in value && typeof (value as Envelope).v === 'number';\n}\n\n/**\n * Builds a {@link VersionedStore} over `key`. On `read`, a stored value is interpreted as:\n * - **current version** → returned as-is;\n * - **older version** → each `migrations[n]` is applied in turn from the stored version up to `version`, the\n * upgraded value is written back, and returned. A gap in the chain (a missing `migrations[n]`) yields `initial`;\n * - **newer version** (a rollback to older code) → `initial`, leaving the forward-written value untouched;\n * - **legacy bare value** (no envelope) → treated as version `0` and migrated the same way.\n *\n * Any thrown error inside migration or the broker degrades to `initial`, mirroring the broker's never-throw contract.\n */\nexport function createVersionedStore<T>(options: VersionedStoreOptions<T>): VersionedStore<T> {\n const { key, version, initial, migrations = {} } = options;\n const broker = options.broker ?? localStorageStorageBroker;\n\n /** Runs the migration chain from `fromVersion` to the current `version`; null when a step is missing. */\n function migrate(fromVersion: number, data: unknown): { data: unknown } | null {\n let current = data;\n for (let from = fromVersion; from < version; from++) {\n const step = migrations[from];\n if (step === undefined) return null; // chain gap — cannot safely interpret the old shape\n current = step(current);\n }\n return { data: current };\n }\n\n return {\n key,\n version,\n\n read(): T {\n try {\n const stored = broker.read<unknown>(key);\n if (stored === null) return initial;\n\n const { v, data } = isEnvelope(stored) ? stored : { v: 0, data: stored };\n\n if (v === version) return data as T;\n if (v > version) return initial; // forward-written by newer code — don't guess\n\n const migrated = migrate(v, data);\n if (migrated === null) return initial;\n\n // Persist the upgrade so the next read is a fast, migration-free hit.\n broker.write<Envelope>(key, { v: version, data: migrated.data });\n return migrated.data as T;\n } catch {\n return initial;\n }\n },\n\n write(value: T): void {\n broker.write<Envelope>(key, { v: version, data: value });\n },\n\n clear(): void {\n broker.remove(key);\n },\n };\n}\n"],"names":[],"mappings":";;AAQA,MAAM,sBAAsB;AAOrB,SAAS,iBAAiB,OAAsB,WAAkC;AACvF,QAAM,QAAQ,CAAC,QAAwB,GAAG,SAAS,GAAG,mBAAmB,GAAG,GAAG;AAE/E,SAAO;AAAA,IACL,KAAQ,KAAuB;AAC7B,aAAO,MAAM,KAAQ,MAAM,GAAG,CAAC;AAAA,IACjC;AAAA,IAEA,MAAS,KAAa,OAAgB;AACpC,YAAM,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,IAC/B;AAAA,IAEA,OAAO,KAAmB;AACxB,YAAM,OAAO,MAAM,GAAG,CAAC;AAAA,IACzB;AAAA,EAAA;AAEJ;AC0BA,SAAS,WAAW,OAAmC;AACrD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,OAAO,SAAS,UAAU,SAAS,OAAQ,MAAmB,MAAM;AAC5H;AAYO,SAAS,qBAAwB,SAAsD;AAC5F,QAAM,EAAE,KAAK,SAAS,SAAS,aAAa,CAAA,MAAO;AACnD,QAAM,SAAS,QAAQ,UAAU;AAGjC,WAAS,QAAQ,aAAqB,MAAyC;AAC7E,QAAI,UAAU;AACd,aAAS,OAAO,aAAa,OAAO,SAAS,QAAQ;AACnD,YAAM,OAAO,WAAW,IAAI;AAC5B,UAAI,SAAS,OAAW,QAAO;AAC/B,gBAAU,KAAK,OAAO;AAAA,IACxB;AACA,WAAO,EAAE,MAAM,QAAA;AAAA,EACjB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IAEA,OAAU;AACR,UAAI;AACF,cAAM,SAAS,OAAO,KAAc,GAAG;AACvC,YAAI,WAAW,KAAM,QAAO;AAE5B,cAAM,EAAE,GAAG,KAAA,IAAS,WAAW,MAAM,IAAI,SAAS,EAAE,GAAG,GAAG,MAAM,OAAA;AAEhE,YAAI,MAAM,QAAS,QAAO;AAC1B,YAAI,IAAI,QAAS,QAAO;AAExB,cAAM,WAAW,QAAQ,GAAG,IAAI;AAChC,YAAI,aAAa,KAAM,QAAO;AAG9B,eAAO,MAAgB,KAAK,EAAE,GAAG,SAAS,MAAM,SAAS,MAAM;AAC/D,eAAO,SAAS;AAAA,MAClB,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IAEA,MAAM,OAAgB;AACpB,aAAO,MAAgB,KAAK,EAAE,GAAG,SAAS,MAAM,OAAO;AAAA,IACzD;AAAA,IAEA,QAAc;AACZ,aAAO,OAAO,GAAG;AAAA,IACnB;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,36 @@
1
+ import { StorageBroker } from '../StorageBroker';
2
+ /** The persisted envelope zustand writes — the store state plus zustand's 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,11 @@
1
+ function brokerPersistStorage(broker) {
2
+ return {
3
+ getItem: (name) => broker.read(name),
4
+ setItem: (name, value) => broker.write(name, value),
5
+ removeItem: (name) => broker.remove(name)
6
+ };
7
+ }
8
+ export {
9
+ brokerPersistStorage
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/foundation/storage/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/** The persisted envelope zustand writes — the store state plus zustand's 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,16 @@
1
+ import { SyncChannel, SyncChannelOptions } from './SyncChannel';
2
+ /**
3
+ * Opens this tab's endpoint on the named cross-tab channel. Messages posted here reach every other tab on the
4
+ * same origin with a channel of the same name — and never this tab, on either transport.
5
+ *
6
+ * Prefers `BroadcastChannel`, falls back to a `storage`-event channel written through a `StorageBroker`, and
7
+ * degrades to an inert no-op under SSR or when neither exists. Nothing throws: an unavailable API, a
8
+ * non-cloneable payload, blocked storage, and a listener that throws are all absorbed, so a single-tab app and
9
+ * a server render both behave as if the channel simply has no peers.
10
+ *
11
+ * @typeParam TMessage - The payload shape agreed between tabs; a compile-time contract, not a runtime guarantee.
12
+ * @param name - Channel name; peers are every endpoint sharing it on the origin.
13
+ * @param options - Transport selection, storage seam, key prefix, pinned id, and clock.
14
+ * @returns The endpoint: `post`, `subscribe`, `close`, plus its resolved identity and transport.
15
+ */
16
+ export declare function createSyncChannel<TMessage>(name: string, options?: SyncChannelOptions): SyncChannel<TMessage>;
@@ -0,0 +1,88 @@
1
+ import { Guid } from '../identifiers';
2
+ import { SyncChannel, SyncChannelOptions } from './SyncChannel';
3
+ /**
4
+ * Carries the election's traffic. Each signal repeats its sender's id in the payload rather than relying on the
5
+ * envelope, so the messages stay self-describing when read in devtools or replayed through another transport.
6
+ */
7
+ export type LeaderSignal =
8
+ /** Asserts live leadership; resets every follower's expiry watchdog. */
9
+ {
10
+ readonly kind: 'heartbeat';
11
+ readonly id: Guid;
12
+ }
13
+ /** Announces a bid for the empty throne; a live leader answers it with a heartbeat. */
14
+ | {
15
+ readonly kind: 'claim';
16
+ readonly id: Guid;
17
+ }
18
+ /** Surrenders leadership deliberately, so peers re-elect at once instead of waiting out the expiry. */
19
+ | {
20
+ readonly kind: 'resign';
21
+ readonly id: Guid;
22
+ };
23
+ /** Names a participant's position in the election. */
24
+ export type LeaderRole = 'follower' | 'candidate' | 'leader';
25
+ /** Defines the options that tune an election's timing and transport. */
26
+ export interface LeaderElectionOptions {
27
+ /** Sets how often the leader re-asserts, in milliseconds; defaults to 1000. */
28
+ readonly heartbeatInterval?: number;
29
+ /** Sets how long a follower tolerates silence before claiming, in milliseconds; defaults to 3500. */
30
+ readonly timeout?: number;
31
+ /** Sets how long a candidate collects rival claims, in milliseconds; defaults to 150. */
32
+ readonly claimWindow?: number;
33
+ /**
34
+ * Supplies the channel to run on instead of opening one — the seam tests use to join a `memorySyncHub`. An
35
+ * injected channel is NOT closed by `close`; its owner keeps that duty.
36
+ */
37
+ readonly channel?: SyncChannel<LeaderSignal>;
38
+ /** Tunes the channel opened when `channel` is omitted; ignored when one is supplied. */
39
+ readonly channelOptions?: SyncChannelOptions;
40
+ }
41
+ /** Represents this tab's participation in a named election. */
42
+ export interface LeaderElection {
43
+ /** Identifies this participant — the same id as the underlying channel's endpoint. */
44
+ readonly id: Guid;
45
+ /** Reports whether this tab currently holds the lease. */
46
+ readonly isLeader: boolean;
47
+ /** Reports this tab's position — `candidate` is the transient state inside a claim window. */
48
+ readonly role: LeaderRole;
49
+ /**
50
+ * Registers `listener` for the moment this tab takes leadership. Fires IMMEDIATELY and synchronously if it is
51
+ * already the leader when subscribing, so a late subscriber cannot miss the transition it was waiting for.
52
+ *
53
+ * @param listener - Invoked on becoming leader; a throw is swallowed.
54
+ * @returns An idempotent disposer.
55
+ */
56
+ onBecomeLeader(listener: () => void): () => void;
57
+ /**
58
+ * Registers `listener` for the moment this tab loses leadership — superseded by a lower id, or after
59
+ * `release`. Not fired by `close`, which is a teardown rather than a state change.
60
+ *
61
+ * @param listener - Invoked on losing leadership; a throw is swallowed.
62
+ * @returns An idempotent disposer.
63
+ */
64
+ onLoseLeader(listener: () => void): () => void;
65
+ /**
66
+ * Surrenders leadership deliberately and tells peers to re-elect at once. This tab stays in the election and
67
+ * may win again later — typically after `timeout`, by which point a peer has long since taken over.
68
+ */
69
+ release(): void;
70
+ /**
71
+ * Leaves the election entirely: resigns first if leading, then drops every timer and listener. Idempotent.
72
+ * Does not fire `onLoseLeader`. Closes the underlying channel only when this election opened it.
73
+ */
74
+ close(): void;
75
+ }
76
+ /**
77
+ * Joins the named election, in which exactly one participating tab holds leadership at a time.
78
+ *
79
+ * Leadership is a lease kept alive by a heartbeat, so a tab that dies without resigning is superseded once its
80
+ * lease expires — the reclaim path is the reason this exists. Ties are broken by lowest id, which for the
81
+ * time-ordered v7 ids minted here means the longest-open tab wins. Starts campaigning immediately; nothing
82
+ * throws, and under SSR or with no cross-tab transport the sole participant simply becomes leader.
83
+ *
84
+ * @param name - Election name; tabs sharing it on the origin compete for one leadership.
85
+ * @param options - Timing, and the channel to run on.
86
+ * @returns The participant handle: state, transition events, `release`, and `close`.
87
+ */
88
+ export declare function createLeaderElection(name: string, options?: LeaderElectionOptions): LeaderElection;
@@ -0,0 +1,29 @@
1
+ import { Guid } from '../identifiers';
2
+ import { SyncChannel } from './SyncChannel';
3
+ /** Represents an isolated in-process message bus standing in for one origin's set of browser tabs. */
4
+ export interface MemorySyncHub {
5
+ /**
6
+ * Opens a new endpoint on `name` — the test's equivalent of opening another tab. Two calls with the same
7
+ * name yield two peers that can talk to each other but not to themselves.
8
+ *
9
+ * @typeParam TMessage - The payload shape shared by the endpoints on this channel.
10
+ * @param name - Channel name; only endpoints sharing it exchange messages.
11
+ * @param id - Pins the endpoint's id, for deterministic leader tie-breaks; minted as a v7 GUID when omitted.
12
+ * @returns A `SyncChannel` backed by this hub.
13
+ */
14
+ channel<TMessage>(name: string, id?: Guid): SyncChannel<TMessage>;
15
+ /** Counts the endpoints that are still open, across every channel name — the leak check after a teardown. */
16
+ readonly openCount: number;
17
+ /** Closes every endpoint and empties the hub, so one test cannot leak peers into the next. */
18
+ reset(): void;
19
+ }
20
+ /**
21
+ * Builds an isolated in-memory hub whose channels deliver synchronously and never touch a browser API.
22
+ *
23
+ * Use it to test cross-tab logic — including this slice's own leader election — under `vi.useFakeTimers`, where
24
+ * the real `BroadcastChannel`'s event-loop delivery would otherwise race the faked clock. Each hub is a closed
25
+ * world: two hubs never see each other's traffic.
26
+ *
27
+ * @returns A hub that mints `SyncChannel` endpoints and can be reset between tests.
28
+ */
29
+ export declare function memorySyncHub(): MemorySyncHub;