@wow-two-beta/ui-vue 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2100) hide show
  1. package/README.md +201 -65
  2. package/dist/analytics/Analytics.d.ts +5 -5
  3. package/dist/analytics/AnalyticsProvider.d.ts +1 -1
  4. package/dist/analytics/MemoryAnalyticsProvider.d.ts +4 -4
  5. package/dist/analytics/index.js +9 -1
  6. package/dist/analytics/index.js.map +1 -1
  7. package/dist/auth/AuthBridge.d.ts +4 -4
  8. package/dist/auth/AuthSession.d.ts +14 -7
  9. package/dist/auth/BearerStrategy.d.ts +12 -8
  10. package/dist/auth/CookieStrategy.d.ts +11 -8
  11. package/dist/auth/RedirectStrategy.d.ts +2 -2
  12. package/dist/auth/TokenStorage.d.ts +2 -2
  13. package/dist/auth/index.d.ts +4 -4
  14. package/dist/auth/index.js +138 -64
  15. package/dist/auth/index.js.map +1 -1
  16. package/dist/auth/providers/AuthContext.d.ts +43 -0
  17. package/dist/auth/providers/AuthProvider.vue.d.ts +39 -0
  18. package/dist/chunks/Align-DqFtCY3a.js.map +1 -1
  19. package/dist/chunks/AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js.map +1 -1
  20. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-QM4vCs2n.js +46 -0
  21. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-QM4vCs2n.js.map +1 -0
  22. package/dist/chunks/ApiError-_AOua_XE.js +41 -0
  23. package/dist/chunks/ApiError-_AOua_XE.js.map +1 -0
  24. package/dist/chunks/AppErrorFactory-DCdNbVfv.js +54 -0
  25. package/dist/chunks/AppErrorFactory-DCdNbVfv.js.map +1 -0
  26. package/dist/chunks/AriaAttribute-CmUjjXjp.js +42 -0
  27. package/dist/chunks/AriaAttribute-CmUjjXjp.js.map +1 -0
  28. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CSRUFdcY.js +936 -0
  29. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CSRUFdcY.js.map +1 -0
  30. package/dist/chunks/BackdropOverlay.vue_vue_type_script_setup_true_lang-DM8CjnY2.js +76 -0
  31. package/dist/chunks/BackdropOverlay.vue_vue_type_script_setup_true_lang-DM8CjnY2.js.map +1 -0
  32. package/dist/chunks/Button.vue_vue_type_script_setup_true_lang-CLqRVtAu.js +632 -0
  33. package/dist/chunks/Button.vue_vue_type_script_setup_true_lang-CLqRVtAu.js.map +1 -0
  34. package/dist/chunks/Bytes-CzQrdbN4.js +21 -0
  35. package/dist/chunks/Bytes-CzQrdbN4.js.map +1 -0
  36. package/dist/chunks/CharacterCountCallout.vue_vue_type_script_setup_true_lang-CJaPwXly.js +2076 -0
  37. package/dist/chunks/CharacterCountCallout.vue_vue_type_script_setup_true_lang-CJaPwXly.js.map +1 -0
  38. package/dist/chunks/Chord-C3OKRsgk.js +139 -0
  39. package/dist/chunks/Chord-C3OKRsgk.js.map +1 -0
  40. package/dist/chunks/Cn-CzDCF-Ah.js +9 -0
  41. package/dist/chunks/Cn-CzDCF-Ah.js.map +1 -0
  42. package/dist/chunks/ColorExtensions-DiCSaVbJ.js +53 -0
  43. package/dist/chunks/ColorExtensions-DiCSaVbJ.js.map +1 -0
  44. package/dist/chunks/ColorModeContext-DC77vyvQ.js +19 -0
  45. package/dist/chunks/ColorModeContext-DC77vyvQ.js.map +1 -0
  46. package/dist/chunks/CommandPaletteModalSeparator.vue_vue_type_script_setup_true_lang-B6FGFSfj.js +2080 -0
  47. package/dist/chunks/CommandPaletteModalSeparator.vue_vue_type_script_setup_true_lang-B6FGFSfj.js.map +1 -0
  48. package/dist/chunks/Compare-C5NGppdh.js +35 -0
  49. package/dist/chunks/Compare-C5NGppdh.js.map +1 -0
  50. package/dist/chunks/ComposeEventHandlers-rgxao5aD.js +12 -0
  51. package/dist/chunks/ComposeEventHandlers-rgxao5aD.js.map +1 -0
  52. package/dist/chunks/CornerPosition-FneGck5D.js.map +1 -1
  53. package/dist/chunks/CssExtensions-ctGVlfYU.js +161 -0
  54. package/dist/chunks/CssExtensions-ctGVlfYU.js.map +1 -0
  55. package/dist/chunks/DataAttr-7BR67dTj.js +7 -0
  56. package/dist/chunks/DataAttr-7BR67dTj.js.map +1 -0
  57. package/dist/chunks/DeepEqual-xCcUOAA8.js +131 -0
  58. package/dist/chunks/DeepEqual-xCcUOAA8.js.map +1 -0
  59. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-DElE4ZeQ.js +322 -0
  60. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-DElE4ZeQ.js.map +1 -0
  61. package/dist/chunks/DomOrderExtensions-Czsyvn6e.js +16 -0
  62. package/dist/chunks/DomOrderExtensions-Czsyvn6e.js.map +1 -0
  63. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-dLwafPAj.js +212 -0
  64. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-dLwafPAj.js.map +1 -0
  65. package/dist/chunks/EmojiCatalog-CR4Lcm43.js.map +1 -1
  66. package/dist/chunks/Environment-BLuXHzzF.js +16 -0
  67. package/dist/chunks/Environment-BLuXHzzF.js.map +1 -0
  68. package/dist/chunks/Equality-BabbLMBX.js +27 -0
  69. package/dist/chunks/Equality-BabbLMBX.js.map +1 -0
  70. package/dist/chunks/ErrorLike-CRnbeEM0.js +27 -0
  71. package/dist/chunks/ErrorLike-CRnbeEM0.js.map +1 -0
  72. package/dist/chunks/ErrorRecognizers-DO2SHD6N.js +17 -0
  73. package/dist/chunks/ErrorRecognizers-DO2SHD6N.js.map +1 -0
  74. package/dist/chunks/ExactNumber-CboRl3_0.js +224 -0
  75. package/dist/chunks/ExactNumber-CboRl3_0.js.map +1 -0
  76. package/dist/chunks/FeedbackBus-CTj18X4n.js.map +1 -1
  77. package/dist/chunks/FieldErrorCallout.vue_vue_type_script_setup_true_lang-C185v77U.js +55 -0
  78. package/dist/chunks/FieldErrorCallout.vue_vue_type_script_setup_true_lang-C185v77U.js.map +1 -0
  79. package/dist/chunks/FieldErrors-DIHjOm5W.js +57 -0
  80. package/dist/chunks/FieldErrors-DIHjOm5W.js.map +1 -0
  81. package/dist/chunks/FieldHelperText.vue_vue_type_script_setup_true_lang-YYE7Zysp.js +497 -0
  82. package/dist/chunks/FieldHelperText.vue_vue_type_script_setup_true_lang-YYE7Zysp.js.map +1 -0
  83. package/dist/chunks/FileName-DUtj4I5A.js +33 -0
  84. package/dist/chunks/FileName-DUtj4I5A.js.map +1 -0
  85. package/dist/chunks/FormControlContext-B71MFW26.js.map +1 -1
  86. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-D_yikT2o.js +70 -0
  87. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-D_yikT2o.js.map +1 -0
  88. package/dist/chunks/GoogleIdentity-D12Kr334.js +123 -0
  89. package/dist/chunks/GoogleIdentity-D12Kr334.js.map +1 -0
  90. package/dist/chunks/Guid-CflnxKPZ.js +68 -0
  91. package/dist/chunks/Guid-CflnxKPZ.js.map +1 -0
  92. package/dist/chunks/HtmlValues-jlKY5f9C.js +23 -0
  93. package/dist/chunks/HtmlValues-jlKY5f9C.js.map +1 -0
  94. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-BVWSqaoe.js +28 -0
  95. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-BVWSqaoe.js.map +1 -0
  96. package/dist/chunks/InlineLayout.vue_vue_type_script_setup_true_lang-CdG8lfst.js +68 -0
  97. package/dist/chunks/InlineLayout.vue_vue_type_script_setup_true_lang-CdG8lfst.js.map +1 -0
  98. package/dist/chunks/Key-CQlkK53D.js +34 -0
  99. package/dist/chunks/Key-CQlkK53D.js.map +1 -0
  100. package/dist/chunks/LinkItem.vue_vue_type_script_setup_true_lang-BjPIqvPc.js +1809 -0
  101. package/dist/chunks/LinkItem.vue_vue_type_script_setup_true_lang-BjPIqvPc.js.map +1 -0
  102. package/dist/chunks/LocaleContext-B7vUZmX-.js +41 -0
  103. package/dist/chunks/LocaleContext-B7vUZmX-.js.map +1 -0
  104. package/dist/chunks/Messages-CSW3nyTs.js +201 -0
  105. package/dist/chunks/Messages-CSW3nyTs.js.map +1 -0
  106. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-ed_LzXDI.js +86 -0
  107. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-ed_LzXDI.js.map +1 -0
  108. package/dist/chunks/OnboardingChecklistCardTask.vue_vue_type_script_setup_true_lang-vqTtyR9L.js +9796 -0
  109. package/dist/chunks/OnboardingChecklistCardTask.vue_vue_type_script_setup_true_lang-vqTtyR9L.js.map +1 -0
  110. package/dist/chunks/OptionalExtensions-NiO6gV0W.js +10 -0
  111. package/dist/chunks/OptionalExtensions-NiO6gV0W.js.map +1 -0
  112. package/dist/chunks/Orientation-u-sYunuG.js.map +1 -1
  113. package/dist/chunks/OverlayArrow.vue_vue_type_script_setup_true_lang-CLYhnI8i.js.map +1 -1
  114. package/dist/chunks/OverlayPosition-BNybkMGG.js.map +1 -1
  115. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DPJZHdv2.js +268 -0
  116. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-DPJZHdv2.js.map +1 -0
  117. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-C2_xSIMy.js +32 -0
  118. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-C2_xSIMy.js.map +1 -0
  119. package/dist/chunks/Presence-BwBquQOQ.js +138 -0
  120. package/dist/chunks/Presence-BwBquQOQ.js.map +1 -0
  121. package/dist/chunks/PressExtensions-DXqhjlR2.js.map +1 -1
  122. package/dist/chunks/Primitive-Bt_MgDir.js +20 -0
  123. package/dist/chunks/Primitive-Bt_MgDir.js.map +1 -0
  124. package/dist/chunks/ProgressTone-BpLPUptx.js.map +1 -1
  125. package/dist/chunks/QueryPermission-BsLR2WRk.js +94 -0
  126. package/dist/chunks/QueryPermission-BsLR2WRk.js.map +1 -0
  127. package/dist/chunks/QueryPlugin-CfotNm6j.js.map +1 -1
  128. package/dist/chunks/ResultExtensions-B7dWH0FZ.js +58 -0
  129. package/dist/chunks/ResultExtensions-B7dWH0FZ.js.map +1 -0
  130. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-BGZe5AX4.js +244 -0
  131. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-BGZe5AX4.js.map +1 -0
  132. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-DAYt3wgP.js +20 -0
  133. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-DAYt3wgP.js.map +1 -0
  134. package/dist/chunks/SerializeError-BzTdy-3I.js +61 -0
  135. package/dist/chunks/SerializeError-BzTdy-3I.js.map +1 -0
  136. package/dist/chunks/Severity-D0C5oAt-.js.map +1 -1
  137. package/dist/chunks/Side-Kw61CDou.js +14 -0
  138. package/dist/chunks/Side-Kw61CDou.js.map +1 -0
  139. package/dist/chunks/Slot-CLT4PkWl.js +99 -0
  140. package/dist/chunks/Slot-CLT4PkWl.js.map +1 -0
  141. package/dist/chunks/SortableGroupMoveButton.vue_vue_type_script_setup_true_lang-TLzaptOC.js +14429 -0
  142. package/dist/chunks/SortableGroupMoveButton.vue_vue_type_script_setup_true_lang-TLzaptOC.js.map +1 -0
  143. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-CU7oxE3n.js +23 -0
  144. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-CU7oxE3n.js.map +1 -0
  145. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-jgKrZLIK.js +76 -0
  146. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-jgKrZLIK.js.map +1 -0
  147. package/dist/chunks/StackLayout.vue_vue_type_script_setup_true_lang-BTht83c-.js +172 -0
  148. package/dist/chunks/StackLayout.vue_vue_type_script_setup_true_lang-BTht83c-.js.map +1 -0
  149. package/dist/chunks/StatusTone-BoPK1s09.js.map +1 -1
  150. package/dist/chunks/StorageBroker-COC81ZGB.js.map +1 -1
  151. package/dist/chunks/StyleTokens-Bkz7Dm5L.js.map +1 -1
  152. package/dist/chunks/SubmitErrors-1_5oKOb1.js +402 -0
  153. package/dist/chunks/SubmitErrors-1_5oKOb1.js.map +1 -0
  154. package/dist/chunks/SurfaceStyles-BYLzCbuJ.js +144 -0
  155. package/dist/chunks/SurfaceStyles-BYLzCbuJ.js.map +1 -0
  156. package/dist/chunks/SwipeActionsLayout.vue_vue_type_script_setup_true_lang-Dc0UJfs9.js +2388 -0
  157. package/dist/chunks/SwipeActionsLayout.vue_vue_type_script_setup_true_lang-Dc0UJfs9.js.map +1 -0
  158. package/dist/chunks/ToError-vXncXe19.js +52 -0
  159. package/dist/chunks/ToError-vXncXe19.js.map +1 -0
  160. package/dist/chunks/Tones-DSlTgkaB.js +108 -0
  161. package/dist/chunks/Tones-DSlTgkaB.js.map +1 -0
  162. package/dist/chunks/TransitionExtensions-HyBfcJnn.js +19 -0
  163. package/dist/chunks/TransitionExtensions-HyBfcJnn.js.map +1 -0
  164. package/dist/chunks/UrlExtensions-DqgLm0KY.js +46 -0
  165. package/dist/chunks/UrlExtensions-DqgLm0KY.js.map +1 -0
  166. package/dist/chunks/UseClipboard-x6nEdQ9f.js +230 -0
  167. package/dist/chunks/UseClipboard-x6nEdQ9f.js.map +1 -0
  168. package/dist/chunks/UseControlled-BQneb7BW.js +29 -0
  169. package/dist/chunks/UseControlled-BQneb7BW.js.map +1 -0
  170. package/dist/chunks/UseDebounceHandler-BIZgvvGp.js +20 -0
  171. package/dist/chunks/UseDebounceHandler-BIZgvvGp.js.map +1 -0
  172. package/dist/chunks/UseEscape-CYPdpm_l.js +15 -0
  173. package/dist/chunks/UseEscape-CYPdpm_l.js.map +1 -0
  174. package/dist/chunks/UseEventListener-C1WgWGoT.js +17 -0
  175. package/dist/chunks/UseEventListener-C1WgWGoT.js.map +1 -0
  176. package/dist/chunks/UseHotkeys-dSOwoutT.js +82 -0
  177. package/dist/chunks/UseHotkeys-dSOwoutT.js.map +1 -0
  178. package/dist/chunks/UseId-CtgAhGrn.js +9 -0
  179. package/dist/chunks/UseId-CtgAhGrn.js.map +1 -0
  180. package/dist/chunks/UseNavigationProgress-Bx_MWd39.js +51 -0
  181. package/dist/chunks/UseNavigationProgress-Bx_MWd39.js.map +1 -0
  182. package/dist/chunks/UseOutsideClick-8TTSb9x6.js +57 -0
  183. package/dist/chunks/UseOutsideClick-8TTSb9x6.js.map +1 -0
  184. package/dist/chunks/UseRecentItems-Bgj28t5Y.js +63 -0
  185. package/dist/chunks/UseRecentItems-Bgj28t5Y.js.map +1 -0
  186. package/dist/chunks/UseReducedMotion-NZ5fg-Xb.js +36 -0
  187. package/dist/chunks/UseReducedMotion-NZ5fg-Xb.js.map +1 -0
  188. package/dist/chunks/UseResizeObserver-BUU7lC-n.js +17 -0
  189. package/dist/chunks/UseResizeObserver-BUU7lC-n.js.map +1 -0
  190. package/dist/chunks/UseScrollLock-DSk4L9xF.js +38 -0
  191. package/dist/chunks/UseScrollLock-DSk4L9xF.js.map +1 -0
  192. package/dist/chunks/UseTypeahead-C-y7nBo2.js +82 -0
  193. package/dist/chunks/UseTypeahead-C-y7nBo2.js.map +1 -0
  194. package/dist/chunks/index-BNxprnsV.js +81 -0
  195. package/dist/chunks/index-BNxprnsV.js.map +1 -0
  196. package/dist/chunks/index-BvFTmSpn.js +251 -0
  197. package/dist/chunks/index-BvFTmSpn.js.map +1 -0
  198. package/dist/chunks/index-BzMmo8Zb.js +245 -0
  199. package/dist/chunks/index-BzMmo8Zb.js.map +1 -0
  200. package/dist/chunks/index-Ck71aqGg.js +11 -0
  201. package/dist/chunks/index-Ck71aqGg.js.map +1 -0
  202. package/dist/chunks/index-ClXOmDLK.js +9 -0
  203. package/dist/chunks/index-ClXOmDLK.js.map +1 -0
  204. package/dist/chunks/index-DAbvXWP_.js +118 -0
  205. package/dist/chunks/index-DAbvXWP_.js.map +1 -0
  206. package/dist/chunks/index-DOC7DwST.js +12 -0
  207. package/dist/chunks/index-DOC7DwST.js.map +1 -0
  208. package/dist/chunks/index-DQ01kvk7.js +28 -0
  209. package/dist/chunks/index-DQ01kvk7.js.map +1 -0
  210. package/dist/chunks/index-DqGUKtAH.js +1783 -0
  211. package/dist/chunks/index-DqGUKtAH.js.map +1 -0
  212. package/dist/chunks/index-KL15HQew.js.map +1 -1
  213. package/dist/domain/color/Gradient.d.ts +2 -2
  214. package/dist/domain/color/index.d.ts +1 -1
  215. package/dist/domain/emoji/EmojiCatalog.d.ts +4 -4
  216. package/dist/domain/emoji/EmojiCatalogData.d.ts +1 -1
  217. package/dist/feedback/FeedbackBus.d.ts +10 -10
  218. package/dist/feedback/FeedbackQueryErrors.d.ts +5 -20
  219. package/dist/feedback/index.js +4 -5
  220. package/dist/feedback/index.js.map +1 -1
  221. package/dist/flags/FlagClient.d.ts +3 -3
  222. package/dist/flags/FlagProvider.d.ts +3 -3
  223. package/dist/flags/FlagTypes.d.ts +6 -6
  224. package/dist/flags/StaticFlagProvider.d.ts +4 -10
  225. package/dist/flags/index.d.ts +2 -2
  226. package/dist/flags/index.js +106 -26
  227. package/dist/flags/index.js.map +1 -1
  228. package/dist/flags/providers/FlagsContext.d.ts +31 -0
  229. package/dist/flags/providers/FlagsProvider.vue.d.ts +24 -0
  230. package/dist/formsEngine/AppForm.d.ts +259 -0
  231. package/dist/formsEngine/DeepEqual.d.ts +8 -0
  232. package/dist/formsEngine/FocusFirstInvalid.d.ts +9 -0
  233. package/dist/formsEngine/FormGlue.d.ts +54 -0
  234. package/dist/formsEngine/FormOperations.d.ts +11 -0
  235. package/dist/formsEngine/FormSnapshot.d.ts +7 -0
  236. package/dist/formsEngine/Paths.d.ts +47 -0
  237. package/dist/formsEngine/SchemaValidation.d.ts +39 -0
  238. package/dist/formsEngine/SubmitErrors.d.ts +28 -0
  239. package/dist/formsEngine/UseFieldArray.d.ts +87 -0
  240. package/dist/formsEngine/adapters/house/HouseFormCore.d.ts +34 -0
  241. package/dist/formsEngine/adapters/house/UseAppForm.d.ts +16 -0
  242. package/dist/formsEngine/adapters/house/index.js +436 -0
  243. package/dist/formsEngine/adapters/house/index.js.map +1 -0
  244. package/dist/formsEngine/adapters/tanstack/TanstackFormOverlay.d.ts +56 -0
  245. package/dist/formsEngine/adapters/tanstack/UseAppForm.d.ts +26 -0
  246. package/dist/formsEngine/adapters/tanstack/index.js +516 -0
  247. package/dist/formsEngine/adapters/tanstack/index.js.map +1 -0
  248. package/dist/formsEngine/index.d.ts +10 -0
  249. package/dist/formsEngine/index.js +130 -0
  250. package/dist/formsEngine/index.js.map +1 -0
  251. package/dist/foundation/animation/Animate.d.ts +1 -1
  252. package/dist/foundation/animation/Flip.d.ts +1 -1
  253. package/dist/foundation/animation/UseFlip.d.ts +1 -1
  254. package/dist/foundation/animation/animatedLayout/AnimatedLayout.d.ts +72 -0
  255. package/dist/foundation/animation/animatedLayout/index.d.ts +1 -0
  256. package/dist/foundation/animation/index.d.ts +5 -3
  257. package/dist/foundation/animation/index.js +17 -18
  258. package/dist/foundation/animation/index.js.map +1 -1
  259. package/dist/foundation/async/Retry.d.ts +1 -1
  260. package/dist/foundation/async/index.d.ts +1 -0
  261. package/dist/foundation/async/index.js +12 -6
  262. package/dist/foundation/async/index.js.map +1 -1
  263. package/dist/foundation/channels/LeaderElection.d.ts +97 -0
  264. package/dist/foundation/channels/SyncChannel.d.ts +76 -0
  265. package/dist/foundation/channels/hooks/UseBroadcastState.d.ts +31 -0
  266. package/dist/foundation/channels/hooks/UseLeaderElection.d.ts +25 -0
  267. package/dist/foundation/channels/hooks/UseSyncChannel.d.ts +16 -0
  268. package/dist/foundation/channels/index.d.ts +7 -0
  269. package/dist/foundation/channels/index.js +493 -0
  270. package/dist/foundation/channels/index.js.map +1 -0
  271. package/dist/foundation/clipboard/ClipboardFailureCode.d.ts +7 -0
  272. package/dist/foundation/clipboard/ClipboardPermission.d.ts +10 -4
  273. package/dist/foundation/clipboard/ClipboardResult.d.ts +9 -43
  274. package/dist/foundation/clipboard/ClipboardSupport.d.ts +14 -3
  275. package/dist/foundation/clipboard/PasteItems.d.ts +2 -2
  276. package/dist/foundation/clipboard/ReadClipboard.d.ts +1 -2
  277. package/dist/foundation/clipboard/hooks/UseClipboard.d.ts +25 -0
  278. package/dist/foundation/clipboard/hooks/UseClipboardCopy.d.ts +40 -0
  279. package/dist/foundation/clipboard/hooks/UsePasteHandler.d.ts +35 -0
  280. package/dist/foundation/clipboard/index.d.ts +5 -3
  281. package/dist/foundation/clipboard/index.js +52 -186
  282. package/dist/foundation/clipboard/index.js.map +1 -1
  283. package/dist/foundation/clipboard/models/ClipboardFailure.d.ts +11 -0
  284. package/dist/foundation/clipboard/models/ClipboardReadItemsResult.d.ts +5 -0
  285. package/dist/foundation/clipboard/models/ClipboardReadTextResult.d.ts +4 -0
  286. package/dist/foundation/clipboard/models/ClipboardWriteResult.d.ts +4 -0
  287. package/dist/foundation/collections/Arrays.d.ts +12 -12
  288. package/dist/foundation/collections/Comparison.d.ts +1 -1
  289. package/dist/foundation/collections/Records.d.ts +3 -3
  290. package/dist/foundation/collections/SetOps.d.ts +4 -4
  291. package/dist/foundation/collections/Tree.d.ts +5 -4
  292. package/dist/foundation/collections/index.d.ts +3 -2
  293. package/dist/foundation/collections/index.js +98 -94
  294. package/dist/foundation/collections/index.js.map +1 -1
  295. package/dist/foundation/commands/Command.d.ts +14 -22
  296. package/dist/foundation/commands/CommandRegistry.d.ts +11 -10
  297. package/dist/foundation/commands/CommandRunFailureCode.d.ts +7 -0
  298. package/dist/foundation/commands/SearchCommands.d.ts +3 -3
  299. package/dist/foundation/commands/hooks/UseCommandRegistry.d.ts +19 -0
  300. package/dist/foundation/commands/hooks/UseCommandShortcuts.d.ts +18 -0
  301. package/dist/foundation/commands/index.d.ts +9 -6
  302. package/dist/foundation/commands/index.js +16 -22
  303. package/dist/foundation/commands/index.js.map +1 -1
  304. package/dist/foundation/commands/models/CommandRunFailure.d.ts +11 -0
  305. package/dist/foundation/commands/models/CommandRunResult.d.ts +4 -0
  306. package/dist/foundation/commands/providers/CommandsContext.d.ts +30 -0
  307. package/dist/foundation/commands/providers/CommandsProvider.vue.d.ts +18 -0
  308. package/dist/foundation/config/ConfigField.d.ts +2 -2
  309. package/dist/foundation/config/ConfigSource.d.ts +3 -3
  310. package/dist/foundation/config/DefineConfig.d.ts +3 -3
  311. package/dist/foundation/config/Environment.d.ts +12 -0
  312. package/dist/foundation/config/index.d.ts +2 -1
  313. package/dist/foundation/config/index.js +11 -7
  314. package/dist/foundation/config/index.js.map +1 -1
  315. package/dist/foundation/crypto/Digest.d.ts +18 -4
  316. package/dist/foundation/crypto/Encoding.d.ts +4 -1
  317. package/dist/foundation/crypto/Random.d.ts +3 -3
  318. package/dist/foundation/crypto/WebCrypto.d.ts +2 -2
  319. package/dist/foundation/crypto/index.d.ts +2 -2
  320. package/dist/foundation/crypto/index.js +36 -26
  321. package/dist/foundation/crypto/index.js.map +1 -1
  322. package/dist/foundation/datetime/Comparison.d.ts +2 -2
  323. package/dist/foundation/datetime/Internals.d.ts +4 -4
  324. package/dist/foundation/datetime/TemporalCodecs.d.ts +26 -0
  325. package/dist/foundation/datetime/index.d.ts +2 -1
  326. package/dist/foundation/datetime/index.js +147 -20
  327. package/dist/foundation/datetime/index.js.map +1 -1
  328. package/dist/foundation/device/Breakpoints.d.ts +4 -10
  329. package/dist/foundation/device/hooks/UseBreakpoint.d.ts +4 -0
  330. package/dist/foundation/device/hooks/UseDisplayMode.d.ts +23 -0
  331. package/dist/foundation/device/hooks/UseMediaQuery.d.ts +14 -0
  332. package/dist/foundation/device/hooks/UsePointer.d.ts +25 -0
  333. package/dist/foundation/device/index.d.ts +9 -7
  334. package/dist/foundation/device/index.js +51 -45
  335. package/dist/foundation/device/index.js.map +1 -1
  336. package/dist/foundation/dom/DomOrderExtensions.d.ts +4 -0
  337. package/dist/foundation/dom/Polymorphic.d.ts +29 -0
  338. package/dist/foundation/dom/UrlExtensions.d.ts +5 -0
  339. package/dist/foundation/dom/enums/AriaAttribute.d.ts +48 -0
  340. package/dist/foundation/dom/enums/AttributeValue.d.ts +9 -0
  341. package/dist/foundation/dom/enums/DomEvent.d.ts +25 -0
  342. package/dist/foundation/dom/index.d.ts +16 -0
  343. package/dist/foundation/dom/index.js +31 -0
  344. package/dist/foundation/dom/index.js.map +1 -0
  345. package/dist/foundation/errors/ErrorLike.d.ts +1 -1
  346. package/dist/foundation/errors/ErrorMessage.d.ts +1 -1
  347. package/dist/foundation/errors/SerializeError.d.ts +13 -4
  348. package/dist/foundation/errors/ToError.d.ts +4 -1
  349. package/dist/foundation/errors/index.js +32 -12
  350. package/dist/foundation/errors/index.js.map +1 -1
  351. package/dist/foundation/files/index.d.ts +1 -1
  352. package/dist/foundation/files/index.js +2 -2
  353. package/dist/foundation/files/index.js.map +1 -1
  354. package/dist/foundation/formatters/Text.d.ts +52 -0
  355. package/dist/foundation/formatters/index.js +102 -0
  356. package/dist/foundation/formatters/index.js.map +1 -0
  357. package/dist/foundation/geolocation/DistanceBetween.d.ts +1 -1
  358. package/dist/foundation/geolocation/GetCurrentPosition.d.ts +3 -3
  359. package/dist/foundation/geolocation/PositionFailureCode.d.ts +9 -0
  360. package/dist/foundation/geolocation/PositionMapping.d.ts +50 -0
  361. package/dist/foundation/geolocation/WatchPosition.d.ts +3 -3
  362. package/dist/foundation/geolocation/hooks/UseGeolocation.d.ts +38 -0
  363. package/dist/foundation/geolocation/hooks/UseWatchPosition.d.ts +16 -0
  364. package/dist/foundation/geolocation/index.d.ts +6 -5
  365. package/dist/foundation/geolocation/index.js +39 -23
  366. package/dist/foundation/geolocation/index.js.map +1 -1
  367. package/dist/foundation/geolocation/models/GeolocationReading.d.ts +37 -0
  368. package/dist/foundation/geolocation/models/PositionFailure.d.ts +14 -0
  369. package/dist/foundation/geolocation/models/PositionReadResult.d.ts +5 -0
  370. package/dist/foundation/gestures/GestureMath.d.ts +4 -4
  371. package/dist/foundation/gestures/hooks/UseDrag.d.ts +75 -0
  372. package/dist/foundation/gestures/hooks/UseLongPress.d.ts +42 -0
  373. package/dist/foundation/gestures/hooks/UsePinch.d.ts +47 -0
  374. package/dist/foundation/gestures/hooks/UseSwipe.d.ts +46 -0
  375. package/dist/foundation/gestures/index.d.ts +6 -6
  376. package/dist/foundation/gestures/index.js +15 -14
  377. package/dist/foundation/gestures/index.js.map +1 -1
  378. package/dist/foundation/history/HistoryCore.d.ts +92 -0
  379. package/dist/foundation/history/hooks/UseUndoHistory.d.ts +66 -0
  380. package/dist/foundation/history/hooks/UseUndoShortcuts.d.ts +20 -0
  381. package/dist/foundation/history/index.d.ts +5 -0
  382. package/dist/foundation/history/index.js +363 -0
  383. package/dist/foundation/history/index.js.map +1 -0
  384. package/dist/foundation/http/ApiError.d.ts +7 -4
  385. package/dist/foundation/http/ApiFailure.d.ts +21 -0
  386. package/dist/foundation/http/ApiJsonCodec.d.ts +8 -0
  387. package/dist/foundation/http/CreateApiClient.d.ts +27 -42
  388. package/dist/foundation/http/Envelope.d.ts +7 -29
  389. package/dist/foundation/http/FieldErrors.d.ts +1 -1
  390. package/dist/foundation/http/index.d.ts +6 -5
  391. package/dist/foundation/http/index.js +123 -124
  392. package/dist/foundation/http/index.js.map +1 -1
  393. package/dist/foundation/http/models/Page.d.ts +47 -0
  394. package/dist/foundation/i18n/IntlCache.d.ts +4 -0
  395. package/dist/foundation/i18n/formattedRelative/FormattedRelative.vue.d.ts +9 -0
  396. package/dist/foundation/i18n/formattedRelative/index.d.ts +1 -0
  397. package/dist/foundation/i18n/index.d.ts +4 -3
  398. package/dist/foundation/i18n/index.js +13 -22
  399. package/dist/foundation/i18n/index.js.map +1 -1
  400. package/dist/foundation/i18n/providers/LocaleContext.d.ts +35 -0
  401. package/dist/foundation/i18n/providers/LocaleProvider.vue.d.ts +18 -0
  402. package/dist/foundation/icons/icon/Icon.vue.d.ts +44 -0
  403. package/dist/foundation/icons/icon/index.d.ts +1 -0
  404. package/dist/foundation/icons/index.d.ts +2 -2
  405. package/dist/foundation/icons/index.js +2 -2
  406. package/dist/foundation/icons/spinner/Spinner.vue.d.ts +6 -0
  407. package/dist/foundation/icons/spinner/index.d.ts +1 -0
  408. package/dist/foundation/idb/KeyValueStore.d.ts +3 -3
  409. package/dist/foundation/idb/Transactions.d.ts +1 -1
  410. package/dist/foundation/idb/index.d.ts +2 -2
  411. package/dist/foundation/idb/index.js +21 -4
  412. package/dist/foundation/idb/index.js.map +1 -1
  413. package/dist/foundation/identifiers/Guid.d.ts +6 -3
  414. package/dist/foundation/identifiers/index.d.ts +1 -0
  415. package/dist/foundation/identifiers/index.js +4 -65
  416. package/dist/foundation/identifiers/index.js.map +1 -1
  417. package/dist/foundation/json/JsonFailureCode.d.ts +9 -0
  418. package/dist/foundation/json/JsonLimits.d.ts +6 -0
  419. package/dist/foundation/json/JsonText.d.ts +12 -0
  420. package/dist/foundation/json/LosslessJson.d.ts +8 -0
  421. package/dist/foundation/json/adapters/losslessJson/JsonAdapter.d.ts +5 -0
  422. package/dist/foundation/json/index.d.ts +5 -0
  423. package/dist/foundation/json/index.js +7 -0
  424. package/dist/foundation/json/index.js.map +1 -0
  425. package/dist/foundation/json/models/JsonFailure.d.ts +6 -0
  426. package/dist/foundation/json/models/LosslessJsonValue.d.ts +5 -0
  427. package/dist/foundation/logger/ConsoleLogSink.d.ts +4 -1
  428. package/dist/foundation/logger/LogLevel.d.ts +8 -2
  429. package/dist/foundation/logger/LogRecord.d.ts +2 -2
  430. package/dist/foundation/logger/LogSink.d.ts +5 -2
  431. package/dist/foundation/logger/Logger.d.ts +15 -6
  432. package/dist/foundation/logger/MemoryLogSink.d.ts +1 -1
  433. package/dist/foundation/logger/Redaction.d.ts +4 -4
  434. package/dist/foundation/logger/index.js +8 -3
  435. package/dist/foundation/logger/index.js.map +1 -1
  436. package/dist/foundation/media/CanCaptureMedia.d.ts +10 -1
  437. package/dist/foundation/media/FacingMode.d.ts +11 -4
  438. package/dist/foundation/media/ListMediaDevices.d.ts +8 -5
  439. package/dist/foundation/media/MediaStreamFailureCode.d.ts +10 -0
  440. package/dist/foundation/media/MediaStreamMapping.d.ts +15 -0
  441. package/dist/foundation/media/RequestMediaStream.d.ts +4 -4
  442. package/dist/foundation/media/UseMediaStream.d.ts +18 -5
  443. package/dist/foundation/media/index.d.ts +2 -1
  444. package/dist/foundation/media/index.js +51 -23
  445. package/dist/foundation/media/index.js.map +1 -1
  446. package/dist/foundation/media/models/MediaStreamFailure.d.ts +16 -0
  447. package/dist/foundation/media/models/MediaStreamRequestResult.d.ts +4 -0
  448. package/dist/foundation/net/ConnectionState.d.ts +6 -3
  449. package/dist/foundation/net/CreateEventStream.d.ts +10 -4
  450. package/dist/foundation/net/CreatePoller.d.ts +9 -3
  451. package/dist/foundation/net/CreateSocketClient.d.ts +5 -5
  452. package/dist/foundation/net/Liveness.d.ts +1 -1
  453. package/dist/foundation/net/Reconnect.d.ts +1 -1
  454. package/dist/foundation/net/hooks/UseEventStream.d.ts +25 -0
  455. package/dist/foundation/net/hooks/UsePolling.d.ts +26 -0
  456. package/dist/foundation/net/hooks/UseSocket.d.ts +32 -0
  457. package/dist/foundation/net/index.d.ts +3 -3
  458. package/dist/foundation/net/index.js +7 -5
  459. package/dist/foundation/net/index.js.map +1 -1
  460. package/dist/foundation/notifications/NotificationFailureCode.d.ts +7 -0
  461. package/dist/foundation/notifications/NotificationPermission.d.ts +12 -1
  462. package/dist/foundation/notifications/Notify.d.ts +7 -24
  463. package/dist/foundation/notifications/QueryPermission.d.ts +12 -1
  464. package/dist/foundation/notifications/hooks/UseNotificationPermission.d.ts +27 -0
  465. package/dist/foundation/notifications/hooks/UsePermissionState.d.ts +14 -0
  466. package/dist/foundation/notifications/index.d.ts +4 -3
  467. package/dist/foundation/notifications/index.js +41 -19
  468. package/dist/foundation/notifications/index.js.map +1 -1
  469. package/dist/foundation/notifications/models/NotificationFailure.d.ts +10 -0
  470. package/dist/foundation/notifications/models/NotificationShowResult.d.ts +4 -0
  471. package/dist/foundation/numbers/ExactNumber.d.ts +13 -0
  472. package/dist/foundation/numbers/NumberLimits.d.ts +7 -0
  473. package/dist/foundation/numbers/adapters/bignumber/DecimalArithmetic.d.ts +4 -0
  474. package/dist/foundation/numbers/enums/NumberFailureCode.d.ts +10 -0
  475. package/dist/foundation/numbers/enums/NumberRounding.d.ts +13 -0
  476. package/dist/foundation/numbers/index.d.ts +6 -0
  477. package/dist/foundation/numbers/index.js +8 -0
  478. package/dist/foundation/numbers/index.js.map +1 -0
  479. package/dist/foundation/numbers/models/ExactNumber.d.ts +47 -0
  480. package/dist/foundation/numbers/models/NumberFailure.d.ts +6 -0
  481. package/dist/foundation/numbers/models/NumberRoundingOptions.d.ts +6 -0
  482. package/dist/foundation/oauth/GoogleIdentity.d.ts +98 -0
  483. package/dist/foundation/oauth/index.d.ts +1 -0
  484. package/dist/foundation/oauth/index.js +7 -0
  485. package/dist/foundation/oauth/index.js.map +1 -0
  486. package/dist/foundation/observers/ObserveIntersection.d.ts +1 -1
  487. package/dist/foundation/observers/ObserveMutation.d.ts +2 -2
  488. package/dist/foundation/observers/VisibilitySteps.d.ts +1 -1
  489. package/dist/foundation/observers/hooks/UseInView.d.ts +41 -0
  490. package/dist/foundation/observers/hooks/UseIntersectionObserver.d.ts +18 -0
  491. package/dist/foundation/observers/hooks/UseMutationObserver.d.ts +21 -0
  492. package/dist/foundation/observers/index.d.ts +5 -4
  493. package/dist/foundation/observers/index.js +15 -13
  494. package/dist/foundation/observers/index.js.map +1 -1
  495. package/dist/foundation/optionals/index.d.ts +1 -0
  496. package/dist/foundation/optionals/index.js +5 -0
  497. package/dist/foundation/optionals/index.js.map +1 -0
  498. package/dist/foundation/primitives/accessibleIcon/AccessibleIcon.d.ts +5 -6
  499. package/dist/foundation/primitives/anchoredPositioner/AnchoredPositioner.vue.d.ts +11 -10
  500. package/dist/foundation/primitives/anchoredPositioner/index.d.ts +1 -1
  501. package/dist/foundation/primitives/announce/Announce.vue.d.ts +7 -6
  502. package/dist/foundation/primitives/colorModeProvider/ColorModeProvider.vue.d.ts +8 -8
  503. package/dist/foundation/primitives/colorModeProvider/index.d.ts +2 -2
  504. package/dist/foundation/primitives/directionProvider/DirectionProvider.vue.d.ts +4 -4
  505. package/dist/foundation/primitives/dismissableLayer/DismissableLayer.vue.d.ts +12 -12
  506. package/dist/foundation/primitives/focusScope/FocusScope.vue.d.ts +18 -16
  507. package/dist/foundation/primitives/focusScope/FocusScopeRegistry.d.ts +27 -0
  508. package/dist/foundation/primitives/formControlContext/FormControlContext.d.ts +12 -3
  509. package/dist/foundation/primitives/formControlContext/FormControlProvider.vue.d.ts +14 -14
  510. package/dist/foundation/primitives/formControlContext/index.d.ts +1 -1
  511. package/dist/foundation/primitives/index.js +11 -11
  512. package/dist/foundation/primitives/overlayArrow/OverlayArrow.vue.d.ts +6 -6
  513. package/dist/foundation/primitives/portal/Portal.vue.d.ts +5 -5
  514. package/dist/foundation/primitives/presence/Presence.d.ts +9 -5
  515. package/dist/foundation/primitives/rovingFocusGroup/RovingFocusContext.d.ts +1 -1
  516. package/dist/foundation/primitives/rovingFocusGroup/RovingFocusGroup.vue.d.ts +11 -10
  517. package/dist/foundation/primitives/scrollLockProvider/ScrollLockProvider.vue.d.ts +6 -6
  518. package/dist/foundation/primitives/scrollLockProvider/index.d.ts +1 -1
  519. package/dist/foundation/primitives/scrollViewport/ScrollViewport.vue.d.ts +10 -9
  520. package/dist/foundation/primitives/slot/ComponentElement.d.ts +7 -0
  521. package/dist/foundation/primitives/slot/Primitive.d.ts +8 -8
  522. package/dist/foundation/primitives/slot/Slot.d.ts +3 -3
  523. package/dist/foundation/primitives/slot/index.d.ts +2 -1
  524. package/dist/foundation/primitives/visuallyHidden/VisuallyHidden.vue.d.ts +4 -3
  525. package/dist/foundation/resilience/RetryDelay.d.ts +4 -1
  526. package/dist/foundation/resilience/RetryPolicy.d.ts +6 -6
  527. package/dist/foundation/resilience/index.d.ts +2 -2
  528. package/dist/foundation/resilience/index.js.map +1 -1
  529. package/dist/foundation/results/AppErrorFactory.d.ts +22 -0
  530. package/dist/foundation/results/AppErrorType.d.ts +13 -0
  531. package/dist/foundation/results/ResultExtensions.d.ts +33 -0
  532. package/dist/foundation/results/index.d.ts +5 -0
  533. package/dist/foundation/results/index.js +8 -0
  534. package/dist/foundation/results/index.js.map +1 -0
  535. package/dist/foundation/results/models/AppError.d.ts +10 -0
  536. package/dist/foundation/results/models/Result.d.ts +9 -0
  537. package/dist/foundation/screen/Fullscreen.d.ts +6 -6
  538. package/dist/foundation/screen/ScreenOrientation.d.ts +7 -14
  539. package/dist/foundation/screen/ScreenOutcome.d.ts +5 -0
  540. package/dist/foundation/screen/WakeLock.d.ts +2 -2
  541. package/dist/foundation/screen/enums/OrientationLockFailureCode.d.ts +9 -0
  542. package/dist/foundation/screen/enums/ScreenFailureCode.d.ts +8 -0
  543. package/dist/foundation/screen/hooks/UseFullscreen.d.ts +28 -0
  544. package/dist/foundation/screen/hooks/UseOrientation.d.ts +28 -0
  545. package/dist/foundation/screen/hooks/UseWakeLock.d.ts +18 -0
  546. package/dist/foundation/screen/index.d.ts +7 -5
  547. package/dist/foundation/screen/index.js +37 -26
  548. package/dist/foundation/screen/index.js.map +1 -1
  549. package/dist/foundation/screen/models/OrientationLockFailure.d.ts +7 -0
  550. package/dist/foundation/screen/models/OrientationLockResult.d.ts +3 -0
  551. package/dist/foundation/screen/models/ScreenFailure.d.ts +14 -0
  552. package/dist/foundation/screen/models/ScreenRequestResult.d.ts +4 -0
  553. package/dist/foundation/selection/hooks/UseFilters.d.ts +34 -0
  554. package/dist/foundation/selection/hooks/UseSelection.d.ts +54 -0
  555. package/dist/foundation/selection/hooks/UseSort.d.ts +36 -0
  556. package/dist/foundation/selection/hooks/UseTypeahead.d.ts +42 -0
  557. package/dist/foundation/selection/index.d.ts +8 -7
  558. package/dist/foundation/selection/index.js +28 -30
  559. package/dist/foundation/selection/index.js.map +1 -1
  560. package/dist/foundation/selection/models/Filter.d.ts +71 -0
  561. package/dist/foundation/selection/models/Selection.d.ts +116 -0
  562. package/dist/foundation/selection/models/Sort.d.ts +69 -0
  563. package/dist/foundation/share/Share.d.ts +7 -23
  564. package/dist/foundation/share/ShareData.d.ts +1 -1
  565. package/dist/foundation/share/ShareFailureCode.d.ts +7 -0
  566. package/dist/foundation/share/ShareOrCopy.d.ts +6 -8
  567. package/dist/foundation/share/UseShare.d.ts +14 -7
  568. package/dist/foundation/share/index.d.ts +3 -2
  569. package/dist/foundation/share/index.js +43 -18
  570. package/dist/foundation/share/index.js.map +1 -1
  571. package/dist/foundation/share/models/ShareFailure.d.ts +10 -0
  572. package/dist/foundation/share/models/ShareSendOrCopyResult.d.ts +4 -0
  573. package/dist/foundation/share/models/ShareSendResult.d.ts +4 -0
  574. package/dist/foundation/shortcuts/Chord.d.ts +1 -1
  575. package/dist/foundation/shortcuts/hooks/UseHotkeys.d.ts +34 -0
  576. package/dist/foundation/shortcuts/index.d.ts +3 -2
  577. package/dist/foundation/shortcuts/index.js +5 -3
  578. package/dist/foundation/shortcuts/index.js.map +1 -1
  579. package/dist/foundation/speech/CreateSpeechRecognizer.d.ts +5 -20
  580. package/dist/foundation/speech/ListVoices.d.ts +3 -3
  581. package/dist/foundation/speech/Speak.d.ts +6 -7
  582. package/dist/foundation/speech/SpeechControls.d.ts +2 -0
  583. package/dist/foundation/speech/SpeechResult.d.ts +7 -23
  584. package/dist/foundation/speech/enums/RecognizerStartFailureCode.d.ts +6 -0
  585. package/dist/foundation/speech/enums/SpeechFailureCode.d.ts +7 -0
  586. package/dist/foundation/speech/hooks/UseSpeechRecognition.d.ts +45 -0
  587. package/dist/foundation/speech/hooks/UseSpeechSynthesis.d.ts +37 -0
  588. package/dist/foundation/speech/index.d.ts +6 -4
  589. package/dist/foundation/speech/index.js +62 -31
  590. package/dist/foundation/speech/index.js.map +1 -1
  591. package/dist/foundation/speech/models/RecognizerStartFailure.d.ts +8 -0
  592. package/dist/foundation/speech/models/RecognizerStartResult.d.ts +4 -0
  593. package/dist/foundation/speech/models/SpeechFailure.d.ts +10 -0
  594. package/dist/foundation/speech/models/SpeechSpeakResult.d.ts +4 -0
  595. package/dist/foundation/state/hooks/UseControlled.d.ts +35 -0
  596. package/dist/foundation/state/index.d.ts +2 -0
  597. package/dist/foundation/state/index.js +7 -0
  598. package/dist/foundation/state/index.js.map +1 -0
  599. package/dist/foundation/storage/StorageBroker.d.ts +1 -1
  600. package/dist/foundation/storage/adapters/zustand/ZustandPersist.d.ts +36 -0
  601. package/dist/foundation/storage/adapters/zustand/index.d.ts +1 -0
  602. package/dist/foundation/storage/adapters/zustand/index.js.map +1 -0
  603. package/dist/foundation/storage/hooks/UseAutosave.d.ts +44 -0
  604. package/dist/foundation/storage/hooks/UsePersistentState.d.ts +31 -0
  605. package/dist/foundation/storage/hooks/UseRecentItems.d.ts +34 -0
  606. package/dist/foundation/storage/index.d.ts +4 -1
  607. package/dist/foundation/storage/index.js +118 -3
  608. package/dist/foundation/storage/index.js.map +1 -1
  609. package/dist/foundation/styles/SurfaceStyles.d.ts +191 -0
  610. package/dist/foundation/styles/constants/Layers.d.ts +35 -0
  611. package/dist/foundation/styles/constants/Tones.d.ts +21 -0
  612. package/dist/foundation/styles/extensions/ColorExtensions.d.ts +51 -0
  613. package/dist/foundation/styles/extensions/CssExtensions.d.ts +124 -0
  614. package/dist/foundation/styles/index.d.ts +20 -0
  615. package/dist/foundation/styles/index.js +45 -0
  616. package/dist/foundation/styles/index.js.map +1 -0
  617. package/dist/foundation/themes/ForegroundContrast.d.ts +3 -0
  618. package/dist/foundation/themes/Oklch.d.ts +2 -0
  619. package/dist/foundation/themes/Registry.d.ts +18 -0
  620. package/dist/foundation/themes/Tokens.d.ts +5 -5
  621. package/dist/foundation/themes/Validate.d.ts +30 -0
  622. package/dist/foundation/themes/constants/Authored.d.ts +3 -0
  623. package/dist/foundation/themes/constants/Pool.d.ts +3 -0
  624. package/dist/foundation/themes/index.d.ts +6 -6
  625. package/dist/foundation/themes/index.js +30 -29
  626. package/dist/foundation/uploads/UploadItem.d.ts +3 -3
  627. package/dist/foundation/uploads/UploadQueue.d.ts +3 -3
  628. package/dist/foundation/uploads/UseUploadQueue.d.ts +4 -4
  629. package/dist/foundation/uploads/XhrUploadTransport.d.ts +1 -1
  630. package/dist/foundation/uploads/index.d.ts +2 -2
  631. package/dist/foundation/uploads/index.js +11 -11
  632. package/dist/foundation/uploads/index.js.map +1 -1
  633. package/dist/foundation/validators/Composites.d.ts +71 -0
  634. package/dist/foundation/validators/Messages.d.ts +69 -0
  635. package/dist/foundation/validators/ValidationError.d.ts +14 -0
  636. package/dist/foundation/validators/ValidationOutcome.d.ts +40 -0
  637. package/dist/foundation/validators/Validator.d.ts +76 -0
  638. package/dist/foundation/validators/index.d.ts +8 -0
  639. package/dist/foundation/validators/index.js +484 -0
  640. package/dist/foundation/validators/index.js.map +1 -0
  641. package/dist/foundation/validators/models/ValidationFailure.d.ts +6 -0
  642. package/dist/foundation/validators/models/ValidatorParseResult.d.ts +3 -0
  643. package/dist/foundation/virtualization/Measurements.d.ts +2 -2
  644. package/dist/foundation/virtualization/UseVirtualList.d.ts +6 -3
  645. package/dist/foundation/virtualization/Windowing.d.ts +7 -4
  646. package/dist/foundation/virtualization/index.d.ts +3 -3
  647. package/dist/foundation/virtualization/index.js +15 -19
  648. package/dist/foundation/virtualization/index.js.map +1 -1
  649. package/dist/foundation/workers/RunInWorker.d.ts +8 -20
  650. package/dist/foundation/workers/UseWorker.d.ts +2 -7
  651. package/dist/foundation/workers/WorkerClient.d.ts +6 -9
  652. package/dist/foundation/workers/WorkerHost.d.ts +3 -3
  653. package/dist/foundation/workers/WorkerProtocol.d.ts +2 -2
  654. package/dist/foundation/workers/WorkerRunFailureCode.d.ts +6 -0
  655. package/dist/foundation/workers/index.d.ts +3 -2
  656. package/dist/foundation/workers/index.js +16 -6
  657. package/dist/foundation/workers/index.js.map +1 -1
  658. package/dist/foundation/workers/models/WorkerRunFailure.d.ts +8 -0
  659. package/dist/foundation/workers/models/WorkerRunResult.d.ts +3 -0
  660. package/dist/index.css +170 -44
  661. package/dist/index.d.ts +7 -2
  662. package/dist/index.js +568 -557
  663. package/dist/index.js.map +1 -1
  664. package/dist/presentation/actions/backToTopButton/BackToTopButton.vue.d.ts +20 -18
  665. package/dist/presentation/actions/backToTopButton/index.d.ts +1 -1
  666. package/dist/presentation/actions/button/Button.variants.d.ts +83 -241
  667. package/dist/presentation/actions/button/Button.vue.d.ts +67 -72
  668. package/dist/presentation/actions/button/index.d.ts +1 -1
  669. package/dist/presentation/actions/buttonGroup/ButtonGroup.vue.d.ts +12 -11
  670. package/dist/presentation/actions/copyButton/CopyButton.vue.d.ts +22 -16
  671. package/dist/presentation/actions/disclosureButton/DisclosureButton.vue.d.ts +20 -18
  672. package/dist/presentation/actions/disclosureButton/index.d.ts +1 -1
  673. package/dist/presentation/actions/fabButton/FabButton.variants.d.ts +80 -0
  674. package/dist/presentation/actions/fabButton/FabButton.vue.d.ts +32 -0
  675. package/dist/presentation/actions/fabButton/index.d.ts +2 -0
  676. package/dist/presentation/actions/googleSignInButton/GoogleSignInButton.vue.d.ts +37 -0
  677. package/dist/presentation/actions/googleSignInButton/index.d.ts +1 -0
  678. package/dist/presentation/actions/index.d.ts +3 -8
  679. package/dist/presentation/actions/index.js +18 -35
  680. package/dist/presentation/actions/speedDialGroup/SpeedDialGroup.vue.d.ts +27 -0
  681. package/dist/presentation/actions/speedDialGroup/SpeedDialGroupAction.vue.d.ts +41 -0
  682. package/dist/presentation/actions/speedDialGroup/SpeedDialGroupContext.d.ts +36 -0
  683. package/dist/presentation/actions/speedDialGroup/SpeedDialGroupList.vue.d.ts +12 -0
  684. package/dist/presentation/actions/speedDialGroup/SpeedDialGroupTrigger.vue.d.ts +31 -0
  685. package/dist/presentation/actions/speedDialGroup/index.d.ts +18 -0
  686. package/dist/presentation/actions/toolbar/Toolbar.vue.d.ts +10 -9
  687. package/dist/presentation/actions/toolbar/ToolbarButton.vue.d.ts +8 -7
  688. package/dist/presentation/actions/toolbar/ToolbarContext.d.ts +1 -1
  689. package/dist/presentation/actions/toolbar/ToolbarLink.vue.d.ts +4 -3
  690. package/dist/presentation/actions/toolbar/ToolbarSeparator.vue.d.ts +1 -2
  691. package/dist/presentation/actions/toolbar/index.d.ts +6 -74
  692. package/dist/presentation/display/accordionGroup/AccordionGroup.vue.d.ts +44 -0
  693. package/dist/presentation/display/accordionGroup/AccordionGroupContent.vue.d.ts +13 -0
  694. package/dist/presentation/display/accordionGroup/AccordionGroupContext.d.ts +29 -0
  695. package/dist/presentation/display/accordionGroup/AccordionGroupItem.vue.d.ts +19 -0
  696. package/dist/presentation/display/accordionGroup/AccordionGroupTrigger.vue.d.ts +13 -0
  697. package/dist/presentation/display/accordionGroup/index.d.ts +5 -0
  698. package/dist/presentation/display/activityTimeline/ActivityItem.vue.d.ts +28 -0
  699. package/dist/presentation/display/activityTimeline/ActivityTimeline.vue.d.ts +17 -0
  700. package/dist/presentation/display/activityTimeline/index.d.ts +2 -0
  701. package/dist/presentation/display/animatedNumberText/AnimatedNumberText.vue.d.ts +33 -0
  702. package/dist/presentation/display/animatedNumberText/index.d.ts +1 -0
  703. package/dist/presentation/display/annotationBadge/AnnotationBadge.vue.d.ts +42 -0
  704. package/dist/presentation/display/annotationBadge/index.d.ts +1 -0
  705. package/dist/presentation/display/audioPlayer/AudioPlayer.vue.d.ts +19 -20
  706. package/dist/presentation/display/audioWaveformPreview/AudioWaveformPreview.vue.d.ts +57 -0
  707. package/dist/presentation/display/audioWaveformPreview/index.d.ts +1 -0
  708. package/dist/presentation/display/avatar/Avatar.variants.d.ts +77 -227
  709. package/dist/presentation/display/avatar/Avatar.vue.d.ts +24 -22
  710. package/dist/presentation/display/avatarGroup/AvatarGroup.vue.d.ts +10 -11
  711. package/dist/presentation/display/badge/Badge.variants.d.ts +35 -97
  712. package/dist/presentation/display/badge/Badge.vue.d.ts +6 -7
  713. package/dist/presentation/display/badgeOverlay/BadgeOverlay.vue.d.ts +8 -9
  714. package/dist/presentation/display/card/Card.vue.d.ts +10 -11
  715. package/dist/presentation/display/card/CardBody.vue.d.ts +3 -4
  716. package/dist/presentation/display/card/CardDescription.vue.d.ts +3 -4
  717. package/dist/presentation/display/card/CardFooter.vue.d.ts +3 -4
  718. package/dist/presentation/display/card/CardHeader.vue.d.ts +3 -4
  719. package/dist/presentation/display/card/CardTitle.vue.d.ts +3 -4
  720. package/dist/presentation/display/carousel/Carousel.vue.d.ts +23 -18
  721. package/dist/presentation/display/carousel/CarouselDot.vue.d.ts +4 -5
  722. package/dist/presentation/display/carousel/CarouselDots.vue.d.ts +3 -4
  723. package/dist/presentation/display/carousel/CarouselNext.vue.d.ts +3 -4
  724. package/dist/presentation/display/carousel/CarouselPrev.vue.d.ts +3 -4
  725. package/dist/presentation/display/carousel/CarouselSlide.vue.d.ts +3 -4
  726. package/dist/presentation/display/carousel/CarouselSlides.vue.d.ts +3 -4
  727. package/dist/presentation/display/carousel/CarouselViewport.vue.d.ts +3 -4
  728. package/dist/presentation/display/carousel/index.d.ts +1 -1
  729. package/dist/presentation/display/chatBubbleCard/ChatBubbleCard.vue.d.ts +78 -0
  730. package/dist/presentation/display/chatBubbleCard/index.d.ts +1 -0
  731. package/dist/presentation/display/codeText/CodeText.variants.d.ts +26 -0
  732. package/dist/presentation/display/codeText/CodeText.vue.d.ts +16 -0
  733. package/dist/presentation/display/codeText/index.d.ts +2 -0
  734. package/dist/presentation/display/collapsibleGroup/CollapsibleGroup.vue.d.ts +28 -0
  735. package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContent.vue.d.ts +17 -0
  736. package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContentInner.vue.d.ts +22 -0
  737. package/dist/presentation/display/collapsibleGroup/CollapsibleGroupContext.d.ts +17 -0
  738. package/dist/presentation/display/collapsibleGroup/CollapsibleGroupTrigger.vue.d.ts +17 -0
  739. package/dist/presentation/display/collapsibleGroup/index.d.ts +4 -0
  740. package/dist/presentation/display/colorSwatchPreview/ColorSwatchPreview.variants.d.ts +92 -0
  741. package/dist/presentation/display/colorSwatchPreview/ColorSwatchPreview.vue.d.ts +32 -0
  742. package/dist/presentation/display/colorSwatchPreview/index.d.ts +2 -0
  743. package/dist/presentation/display/commentThreadGroup/Comment.vue.d.ts +38 -0
  744. package/dist/presentation/display/commentThreadGroup/CommentThreadGroup.vue.d.ts +13 -0
  745. package/dist/presentation/display/commentThreadGroup/index.d.ts +2 -0
  746. package/dist/presentation/display/confettiOverlay/ConfettiOverlay.vue.d.ts +39 -0
  747. package/dist/presentation/display/confettiOverlay/index.d.ts +1 -0
  748. package/dist/presentation/display/countBadge/CountBadge.vue.d.ts +11 -12
  749. package/dist/presentation/display/countUpText/CountUpText.vue.d.ts +39 -0
  750. package/dist/presentation/display/countUpText/index.d.ts +1 -0
  751. package/dist/presentation/display/dataTable/DataTable.vue.d.ts +25 -26
  752. package/dist/presentation/display/descriptionGroup/DescriptionGroup.vue.d.ts +53 -0
  753. package/dist/presentation/display/descriptionGroup/index.d.ts +1 -0
  754. package/dist/presentation/display/diffViewer/DiffViewer.vue.d.ts +16 -15
  755. package/dist/presentation/display/emptyState/EmptyState.vue.d.ts +9 -10
  756. package/dist/presentation/display/eventCalendarViewer/AgendaView.vue.d.ts +12 -0
  757. package/dist/presentation/display/eventCalendarViewer/EventCalendarViewer.vue.d.ts +37 -0
  758. package/dist/presentation/display/eventCalendarViewer/EventCalendarViewerTypes.d.ts +28 -0
  759. package/dist/presentation/display/eventCalendarViewer/MonthView.vue.d.ts +16 -0
  760. package/dist/presentation/display/eventCalendarViewer/TimeGridView.vue.d.ts +17 -0
  761. package/dist/presentation/display/eventCalendarViewer/index.d.ts +2 -0
  762. package/dist/presentation/display/eyebrowText/EyebrowText.vue.d.ts +31 -0
  763. package/dist/presentation/display/eyebrowText/index.d.ts +1 -0
  764. package/dist/presentation/display/featureCard/FeatureCard.vue.d.ts +7 -61
  765. package/dist/presentation/display/fieldHelperText/FieldHelperText.vue.d.ts +19 -0
  766. package/dist/presentation/display/fieldHelperText/index.d.ts +1 -0
  767. package/dist/presentation/display/frameGlyph/FrameGlyph.vue.d.ts +6 -5
  768. package/dist/presentation/display/ganttTimeline/GanttTimeline.vue.d.ts +58 -0
  769. package/dist/presentation/display/ganttTimeline/index.d.ts +1 -0
  770. package/dist/presentation/display/gradientText/GradientText.vue.d.ts +23 -18
  771. package/dist/presentation/display/gradientText/index.d.ts +1 -1
  772. package/dist/presentation/display/heading/Heading.variants.d.ts +50 -140
  773. package/dist/presentation/display/heading/Heading.vue.d.ts +9 -10
  774. package/dist/presentation/display/heading/index.d.ts +1 -1
  775. package/dist/presentation/display/heatmapCalendarGrid/HeatmapCalendarGrid.vue.d.ts +64 -0
  776. package/dist/presentation/display/heatmapCalendarGrid/index.d.ts +1 -0
  777. package/dist/presentation/display/highlightText/HighlightText.vue.d.ts +19 -0
  778. package/dist/presentation/display/highlightText/index.d.ts +1 -0
  779. package/dist/presentation/display/imagePreview/ImagePreview.vue.d.ts +15 -0
  780. package/dist/presentation/display/imagePreview/index.d.ts +1 -0
  781. package/dist/presentation/display/index.d.ts +42 -42
  782. package/dist/presentation/display/index.js +150 -143
  783. package/dist/presentation/display/infoRow/InfoRow.vue.d.ts +8 -9
  784. package/dist/presentation/display/kbdText/KbdText.vue.d.ts +13 -0
  785. package/dist/presentation/display/kbdText/index.d.ts +1 -0
  786. package/dist/presentation/display/keyboardShortcutText/KeyboardShortcutText.vue.d.ts +12 -0
  787. package/dist/presentation/display/keyboardShortcutText/index.d.ts +1 -0
  788. package/dist/presentation/display/labelText/LabelText.vue.d.ts +34 -0
  789. package/dist/presentation/display/labelText/index.d.ts +1 -0
  790. package/dist/presentation/display/legendText/LegendText.vue.d.ts +21 -0
  791. package/dist/presentation/display/legendText/index.d.ts +1 -0
  792. package/dist/presentation/display/listGroup/ListGroup.variants.d.ts +62 -0
  793. package/dist/presentation/display/listGroup/ListGroup.vue.d.ts +22 -0
  794. package/dist/presentation/display/listGroup/ListGroupContext.d.ts +16 -0
  795. package/dist/presentation/display/listGroup/ListGroupItem.vue.d.ts +28 -0
  796. package/dist/presentation/display/listGroup/index.d.ts +4 -0
  797. package/dist/presentation/display/markText/MarkText.vue.d.ts +13 -0
  798. package/dist/presentation/display/markText/index.d.ts +1 -0
  799. package/dist/presentation/display/marqueeGroup/MarqueeGroup.vue.d.ts +44 -0
  800. package/dist/presentation/display/marqueeGroup/index.d.ts +1 -0
  801. package/dist/presentation/display/messageGroup/DaySeparator.vue.d.ts +16 -0
  802. package/dist/presentation/display/messageGroup/MessageGroup.vue.d.ts +38 -0
  803. package/dist/presentation/display/messageGroup/index.d.ts +2 -0
  804. package/dist/presentation/display/metaInlineText/MetaInlineText.vue.d.ts +20 -0
  805. package/dist/presentation/display/metaInlineText/index.d.ts +1 -0
  806. package/dist/presentation/display/metricBadge/MetricBadge.vue.d.ts +53 -0
  807. package/dist/presentation/display/metricBadge/index.d.ts +1 -0
  808. package/dist/presentation/display/moduleGlyphs/CellsGlyph.vue.d.ts +5 -5
  809. package/dist/presentation/display/moduleGlyphs/DotsGlyph.vue.d.ts +4 -5
  810. package/dist/presentation/display/moduleGlyphs/HorizontalBarsGlyph.vue.d.ts +4 -5
  811. package/dist/presentation/display/moduleGlyphs/ModuleGlyphs.d.ts +3 -3
  812. package/dist/presentation/display/moduleGlyphs/VerticalBarsGlyph.vue.d.ts +4 -5
  813. package/dist/presentation/display/notificationCenterGroup/NotificationCenterGroup.vue.d.ts +30 -0
  814. package/dist/presentation/display/notificationCenterGroup/NotificationItem.vue.d.ts +40 -0
  815. package/dist/presentation/display/notificationCenterGroup/index.d.ts +2 -0
  816. package/dist/presentation/display/notificationIndicator/NotificationIndicator.vue.d.ts +46 -0
  817. package/dist/presentation/display/notificationIndicator/index.d.ts +1 -0
  818. package/dist/presentation/display/onboardingChecklistCard/OnboardingChecklistCard.vue.d.ts +57 -0
  819. package/dist/presentation/display/onboardingChecklistCard/OnboardingChecklistCardTask.vue.d.ts +27 -0
  820. package/dist/presentation/display/onboardingChecklistCard/index.d.ts +3 -0
  821. package/dist/presentation/display/pdfViewer/PdfViewer.vue.d.ts +39 -0
  822. package/dist/presentation/display/pdfViewer/index.d.ts +1 -1
  823. package/dist/presentation/display/pricingCard/PricingCard.vue.d.ts +16 -70
  824. package/dist/presentation/display/quoteText/QuoteText.vue.d.ts +13 -0
  825. package/dist/presentation/display/quoteText/index.d.ts +1 -0
  826. package/dist/presentation/display/radiusGlyph/RadiusGlyph.vue.d.ts +6 -6
  827. package/dist/presentation/display/reactionBar/ReactionBar.vue.d.ts +18 -18
  828. package/dist/presentation/display/reactionBar/index.d.ts +1 -1
  829. package/dist/presentation/display/scheduleView/ScheduleView.vue.d.ts +22 -23
  830. package/dist/presentation/display/scrollRevealGroup/ScrollRevealGroup.vue.d.ts +49 -0
  831. package/dist/presentation/display/scrollRevealGroup/index.d.ts +1 -0
  832. package/dist/presentation/display/sectionHeading/SectionHeading.vue.d.ts +48 -0
  833. package/dist/presentation/display/sectionHeading/index.d.ts +1 -0
  834. package/dist/presentation/display/snippetText/SnippetText.vue.d.ts +20 -0
  835. package/dist/presentation/display/snippetText/index.d.ts +1 -0
  836. package/dist/presentation/display/sparkline/Sparkline.vue.d.ts +21 -22
  837. package/dist/presentation/display/sparkline/index.d.ts +1 -1
  838. package/dist/presentation/display/statCard/StatCard.vue.d.ts +47 -0
  839. package/dist/presentation/display/statCard/index.d.ts +1 -0
  840. package/dist/presentation/display/status/Status.vue.d.ts +11 -12
  841. package/dist/presentation/display/stepCard/StepCard.vue.d.ts +8 -62
  842. package/dist/presentation/display/stepperGroup/StepperGroup.vue.d.ts +28 -0
  843. package/dist/presentation/display/stepperGroup/StepperGroupContext.d.ts +44 -0
  844. package/dist/presentation/display/stepperGroup/StepperGroupList.vue.d.ts +13 -0
  845. package/dist/presentation/display/stepperGroup/StepperGroupPanel.vue.d.ts +15 -0
  846. package/dist/presentation/display/stepperGroup/StepperGroupStep.vue.d.ts +22 -0
  847. package/dist/presentation/display/stepperGroup/index.d.ts +5 -0
  848. package/dist/presentation/display/table/Table.vue.d.ts +17 -18
  849. package/dist/presentation/display/table/TableBody.vue.d.ts +3 -4
  850. package/dist/presentation/display/table/TableCaption.vue.d.ts +3 -4
  851. package/dist/presentation/display/table/TableCell.vue.d.ts +3 -4
  852. package/dist/presentation/display/table/TableContext.d.ts +3 -3
  853. package/dist/presentation/display/table/TableFooter.vue.d.ts +3 -4
  854. package/dist/presentation/display/table/TableHead.vue.d.ts +6 -7
  855. package/dist/presentation/display/table/TableHeaderCell.vue.d.ts +3 -4
  856. package/dist/presentation/display/table/TableRow.vue.d.ts +3 -4
  857. package/dist/presentation/display/table/index.d.ts +1 -1
  858. package/dist/presentation/display/tabsGroup/TabsGroup.vue.d.ts +32 -0
  859. package/dist/presentation/display/tabsGroup/TabsGroupContext.d.ts +34 -0
  860. package/dist/presentation/display/tabsGroup/TabsGroupList.vue.d.ts +13 -0
  861. package/dist/presentation/display/tabsGroup/TabsGroupPanel.vue.d.ts +15 -0
  862. package/dist/presentation/display/tabsGroup/TabsGroupTab.vue.d.ts +19 -0
  863. package/dist/presentation/display/tabsGroup/index.d.ts +5 -0
  864. package/dist/presentation/display/tag/Tag.variants.d.ts +23 -61
  865. package/dist/presentation/display/tag/Tag.vue.d.ts +8 -9
  866. package/dist/presentation/display/text/Text.variants.d.ts +74 -220
  867. package/dist/presentation/display/text/Text.vue.d.ts +16 -16
  868. package/dist/presentation/display/text/index.d.ts +1 -1
  869. package/dist/presentation/display/threadView/ThreadView.vue.d.ts +15 -16
  870. package/dist/presentation/display/timeline/Timeline.vue.d.ts +6 -7
  871. package/dist/presentation/display/timeline/TimelineContext.d.ts +1 -1
  872. package/dist/presentation/display/timeline/TimelineDescription.vue.d.ts +3 -4
  873. package/dist/presentation/display/timeline/TimelineItem.vue.d.ts +6 -7
  874. package/dist/presentation/display/timeline/TimelineTitle.vue.d.ts +3 -4
  875. package/dist/presentation/display/timeline/index.d.ts +1 -1
  876. package/dist/presentation/display/treeViewer/TreeViewer.vue.d.ts +32 -0
  877. package/dist/presentation/display/treeViewer/TreeViewerContext.d.ts +29 -0
  878. package/dist/presentation/display/treeViewer/TreeViewerGroup.vue.d.ts +27 -0
  879. package/dist/presentation/display/treeViewer/TreeViewerGroupContent.vue.d.ts +16 -0
  880. package/dist/presentation/display/treeViewer/TreeViewerItem.vue.d.ts +19 -0
  881. package/dist/presentation/display/treeViewer/TreeViewerNodeRow.vue.d.ts +26 -0
  882. package/dist/presentation/display/treeViewer/index.d.ts +4 -0
  883. package/dist/presentation/display/typewriterText/TypewriterText.vue.d.ts +37 -0
  884. package/dist/presentation/display/typewriterText/index.d.ts +1 -0
  885. package/dist/presentation/display/videoPlayer/VideoPlayer.vue.d.ts +26 -27
  886. package/dist/presentation/display/videoPlayer/index.d.ts +1 -1
  887. package/dist/presentation/feedback/alert/Alert.vue.d.ts +23 -23
  888. package/dist/presentation/feedback/alertSimple/AlertSimple.variants.d.ts +20 -54
  889. package/dist/presentation/feedback/alertSimple/AlertSimple.vue.d.ts +7 -7
  890. package/dist/presentation/feedback/banner/Banner.vue.d.ts +23 -23
  891. package/dist/presentation/feedback/bannerSimple/BannerSimple.variants.d.ts +20 -54
  892. package/dist/presentation/feedback/bannerSimple/BannerSimple.vue.d.ts +7 -7
  893. package/dist/presentation/feedback/callout/Callout.vue.d.ts +15 -15
  894. package/dist/presentation/feedback/characterCountCallout/CharacterCountCallout.vue.d.ts +14 -0
  895. package/dist/presentation/feedback/characterCountCallout/index.d.ts +1 -0
  896. package/dist/presentation/feedback/feedbackToastHost/FeedbackToastHost.vue.d.ts +17 -0
  897. package/dist/presentation/feedback/feedbackToastHost/index.d.ts +1 -0
  898. package/dist/presentation/feedback/fieldErrorCallout/FieldErrorCallout.vue.d.ts +24 -0
  899. package/dist/presentation/feedback/fieldErrorCallout/index.d.ts +1 -0
  900. package/dist/presentation/feedback/index.d.ts +9 -9
  901. package/dist/presentation/feedback/index.js +35 -38
  902. package/dist/presentation/feedback/index.js.map +1 -1
  903. package/dist/presentation/feedback/inlineSpinner/InlineSpinner.vue.d.ts +10 -12
  904. package/dist/presentation/feedback/liveCursorIndicator/LiveCursorIndicator.vue.d.ts +33 -0
  905. package/dist/presentation/feedback/liveCursorIndicator/index.d.ts +1 -0
  906. package/dist/presentation/feedback/loadingOverlay/LoadingOverlay.vue.d.ts +18 -19
  907. package/dist/presentation/feedback/loadingOverlay/index.d.ts +1 -1
  908. package/dist/presentation/feedback/loadingState/LoadingState.vue.d.ts +14 -14
  909. package/dist/presentation/feedback/meterBar/MeterBar.vue.d.ts +12 -13
  910. package/dist/presentation/feedback/passwordStrengthCallout/PasswordStrengthCallout.vue.d.ts +15 -0
  911. package/dist/presentation/feedback/passwordStrengthCallout/index.d.ts +1 -0
  912. package/dist/presentation/feedback/presenceIndicator/PresenceIndicator.vue.d.ts +12 -13
  913. package/dist/presentation/feedback/presenceIndicator/index.d.ts +1 -1
  914. package/dist/presentation/feedback/progressBar/ProgressBar.variants.d.ts +33 -91
  915. package/dist/presentation/feedback/progressBar/ProgressBar.vue.d.ts +11 -12
  916. package/dist/presentation/feedback/progressBar/index.d.ts +1 -1
  917. package/dist/presentation/feedback/progressCircleIndicator/ProgressCircleIndicator.vue.d.ts +20 -0
  918. package/dist/presentation/feedback/progressCircleIndicator/index.d.ts +1 -0
  919. package/dist/presentation/feedback/progressStepsIndicator/ProgressStepsIndicator.vue.d.ts +15 -0
  920. package/dist/presentation/feedback/progressStepsIndicator/index.d.ts +1 -0
  921. package/dist/presentation/feedback/skeletonState/SkeletonState.variants.d.ts +31 -0
  922. package/dist/presentation/feedback/skeletonState/SkeletonState.vue.d.ts +17 -0
  923. package/dist/presentation/feedback/skeletonState/index.d.ts +2 -0
  924. package/dist/presentation/feedback/spinner/Spinner.variants.d.ts +32 -90
  925. package/dist/presentation/feedback/spinner/Spinner.vue.d.ts +9 -10
  926. package/dist/presentation/feedback/statusIndicator/StatusIndicator.vue.d.ts +14 -14
  927. package/dist/presentation/feedback/toast/Toast.vue.d.ts +23 -23
  928. package/dist/presentation/feedback/toastHost/ToastHost.vue.d.ts +95 -0
  929. package/dist/presentation/feedback/toastHost/index.d.ts +1 -0
  930. package/dist/presentation/feedback/toastSimple/ToastSimple.variants.d.ts +20 -54
  931. package/dist/presentation/feedback/toastSimple/ToastSimple.vue.d.ts +9 -9
  932. package/dist/presentation/feedback/trendIndicator/TrendIndicator.vue.d.ts +16 -16
  933. package/dist/presentation/feedback/typingIndicator/TypingIndicator.vue.d.ts +13 -13
  934. package/dist/presentation/feedback/typingIndicator/index.d.ts +1 -1
  935. package/dist/presentation/feedback/undoBar/UndoBar.vue.d.ts +21 -21
  936. package/dist/presentation/forms/DateExtensions.d.ts +4 -4
  937. package/dist/presentation/forms/InputStyles.d.ts +53 -155
  938. package/dist/presentation/forms/MonthGrid.vue.d.ts +22 -24
  939. package/dist/presentation/forms/TimeColumns.vue.d.ts +17 -0
  940. package/dist/presentation/forms/UseNativeFormReset.d.ts +3 -0
  941. package/dist/presentation/forms/addressEditor/AddressEditor.vue.d.ts +48 -0
  942. package/dist/presentation/forms/addressEditor/index.d.ts +1 -0
  943. package/dist/presentation/forms/calendarPicker/CalendarPicker.vue.d.ts +28 -0
  944. package/dist/presentation/forms/calendarPicker/index.d.ts +1 -0
  945. package/dist/presentation/forms/chatComposerInput/ChatComposerInput.vue.d.ts +68 -0
  946. package/dist/presentation/forms/chatComposerInput/index.d.ts +1 -0
  947. package/dist/presentation/forms/checkboxField/CheckboxField.vue.d.ts +15 -11
  948. package/dist/presentation/forms/checkboxGroup/CheckboxGroup.vue.d.ts +14 -19
  949. package/dist/presentation/forms/checkboxInput/CheckboxInput.variants.d.ts +67 -0
  950. package/dist/presentation/forms/checkboxInput/CheckboxInput.vue.d.ts +45 -0
  951. package/dist/presentation/forms/checkboxInput/index.d.ts +2 -0
  952. package/dist/presentation/forms/choiceCard/ChoiceCard.vue.d.ts +17 -14
  953. package/dist/presentation/forms/codeEditor/CodeEditor.vue.d.ts +33 -33
  954. package/dist/presentation/forms/colorArea/ColorArea.vue.d.ts +18 -26
  955. package/dist/presentation/forms/colorArea/index.d.ts +1 -1
  956. package/dist/presentation/forms/colorInput/ColorInput.vue.d.ts +39 -0
  957. package/dist/presentation/forms/colorInput/index.d.ts +1 -0
  958. package/dist/presentation/forms/colorPicker/ColorPicker.vue.d.ts +21 -26
  959. package/dist/presentation/forms/colorPicker/index.d.ts +1 -1
  960. package/dist/presentation/forms/colorSliderInput/ColorSliderInput.vue.d.ts +42 -0
  961. package/dist/presentation/forms/colorSliderInput/index.d.ts +1 -0
  962. package/dist/presentation/forms/colorSwatchPicker/ColorSwatchItem.vue.d.ts +12 -13
  963. package/dist/presentation/forms/colorSwatchPicker/ColorSwatchPicker.vue.d.ts +17 -22
  964. package/dist/presentation/forms/colorSwatchPicker/index.d.ts +1 -1
  965. package/dist/presentation/forms/colorWheelInput/ColorWheelInput.vue.d.ts +29 -0
  966. package/dist/presentation/forms/colorWheelInput/index.d.ts +1 -0
  967. package/dist/presentation/forms/comboboxPicker/ComboboxPicker.vue.d.ts +47 -0
  968. package/dist/presentation/forms/comboboxPicker/ComboboxPickerContent.vue.d.ts +38 -0
  969. package/dist/presentation/forms/comboboxPicker/ComboboxPickerContext.d.ts +53 -0
  970. package/dist/presentation/forms/comboboxPicker/ComboboxPickerEmpty.vue.d.ts +10 -0
  971. package/dist/presentation/forms/comboboxPicker/ComboboxPickerGroup.vue.d.ts +19 -0
  972. package/dist/presentation/forms/comboboxPicker/ComboboxPickerInput.vue.d.ts +11 -0
  973. package/dist/presentation/forms/comboboxPicker/ComboboxPickerItem.vue.d.ts +27 -0
  974. package/dist/presentation/forms/comboboxPicker/ComboboxPickerSeparator.vue.d.ts +2 -0
  975. package/dist/presentation/forms/comboboxPicker/index.d.ts +8 -0
  976. package/dist/presentation/forms/controlGroupField/ControlGroupField.variants.d.ts +70 -0
  977. package/dist/presentation/forms/controlGroupField/ControlGroupField.vue.d.ts +34 -0
  978. package/dist/presentation/forms/controlGroupField/index.d.ts +2 -0
  979. package/dist/presentation/forms/cronInput/CronInput.vue.d.ts +27 -33
  980. package/dist/presentation/forms/currencyInput/CurrencyInput.vue.d.ts +6 -7
  981. package/dist/presentation/forms/dataGridEditor/CellEditor.vue.d.ts +28 -0
  982. package/dist/presentation/forms/dataGridEditor/DataGridEditor.vue.d.ts +46 -0
  983. package/dist/presentation/forms/dataGridEditor/DataGridEditorTypes.d.ts +65 -0
  984. package/dist/presentation/forms/dataGridEditor/index.d.ts +2 -0
  985. package/dist/presentation/forms/dateInput/DateInput.vue.d.ts +49 -0
  986. package/dist/presentation/forms/dateInput/index.d.ts +1 -0
  987. package/dist/presentation/forms/datePicker/DatePicker.vue.d.ts +23 -28
  988. package/dist/presentation/forms/dateRangePicker/DateRangePicker.vue.d.ts +24 -29
  989. package/dist/presentation/forms/dateTimeInput/DateTimeInput.vue.d.ts +54 -0
  990. package/dist/presentation/forms/dateTimeInput/index.d.ts +1 -0
  991. package/dist/presentation/forms/editableInput/EditableInput.vue.d.ts +49 -0
  992. package/dist/presentation/forms/editableInput/EditableInputCancel.vue.d.ts +11 -0
  993. package/dist/presentation/forms/editableInput/EditableInputContext.d.ts +37 -0
  994. package/dist/presentation/forms/editableInput/EditableInputInput.vue.d.ts +11 -0
  995. package/dist/presentation/forms/editableInput/EditableInputPreview.vue.d.ts +6 -0
  996. package/dist/presentation/forms/editableInput/EditableInputSubmit.vue.d.ts +13 -0
  997. package/dist/presentation/forms/editableInput/index.d.ts +7 -0
  998. package/dist/presentation/forms/emailInput/EmailInput.vue.d.ts +21 -26
  999. package/dist/presentation/forms/emojiPicker/CategoryNav.vue.d.ts +3 -4
  1000. package/dist/presentation/forms/emojiPicker/EmojiGrid.vue.d.ts +4 -5
  1001. package/dist/presentation/forms/emojiPicker/EmojiPicker.variants.d.ts +10 -4
  1002. package/dist/presentation/forms/emojiPicker/EmojiPicker.vue.d.ts +4 -9
  1003. package/dist/presentation/forms/emojiPicker/EmojiPickerPopover.vue.d.ts +3 -13
  1004. package/dist/presentation/forms/emojiPicker/EmojiTile.vue.d.ts +3 -4
  1005. package/dist/presentation/forms/emojiPicker/UseEmojiPicker.d.ts +48 -0
  1006. package/dist/presentation/forms/emojiPicker/index.d.ts +2 -2
  1007. package/dist/presentation/forms/emojiSizePicker/EmojiSizePicker.variants.d.ts +23 -0
  1008. package/dist/presentation/forms/emojiSizePicker/EmojiSizePicker.vue.d.ts +30 -0
  1009. package/dist/presentation/forms/emojiSizePicker/index.d.ts +2 -0
  1010. package/dist/presentation/forms/field/Field.vue.d.ts +13 -14
  1011. package/dist/presentation/forms/filePicker/FilePicker.vue.d.ts +14 -15
  1012. package/dist/presentation/forms/fileUploadPicker/FileUploadPicker.vue.d.ts +59 -0
  1013. package/dist/presentation/forms/fileUploadPicker/index.d.ts +1 -0
  1014. package/dist/presentation/forms/fontPicker/FontPicker.vue.d.ts +21 -27
  1015. package/dist/presentation/forms/fontPicker/index.d.ts +1 -1
  1016. package/dist/presentation/forms/gradientPicker/GradientPicker.vue.d.ts +18 -24
  1017. package/dist/presentation/forms/iconPicker/IconPicker.vue.d.ts +22 -28
  1018. package/dist/presentation/forms/index.d.ts +33 -35
  1019. package/dist/presentation/forms/index.js +163 -157
  1020. package/dist/presentation/forms/index.js.map +1 -1
  1021. package/dist/presentation/forms/jsonEditor/JsonEditor.vue.d.ts +41 -0
  1022. package/dist/presentation/forms/jsonEditor/JsonEditorContext.d.ts +28 -0
  1023. package/dist/presentation/forms/jsonEditor/JsonEditorExtensions.d.ts +13 -0
  1024. package/dist/presentation/forms/jsonEditor/JsonEditorTextView.vue.d.ts +13 -0
  1025. package/dist/presentation/forms/jsonEditor/JsonEditorTreeNode.vue.d.ts +14 -0
  1026. package/dist/presentation/forms/jsonEditor/JsonEditorTreeView.vue.d.ts +7 -0
  1027. package/dist/presentation/forms/jsonEditor/index.d.ts +2 -2
  1028. package/dist/presentation/forms/keyboardShortcutPicker/KeyboardShortcutPicker.vue.d.ts +16 -22
  1029. package/dist/presentation/forms/keyboardShortcutPicker/index.d.ts +1 -1
  1030. package/dist/presentation/forms/knobInput/KnobInput.vue.d.ts +69 -0
  1031. package/dist/presentation/forms/knobInput/index.d.ts +1 -0
  1032. package/dist/presentation/forms/labeledField/LabeledField.vue.d.ts +22 -0
  1033. package/dist/presentation/forms/labeledField/index.d.ts +2 -0
  1034. package/dist/presentation/forms/listboxPicker/ListboxPicker.variants.d.ts +41 -0
  1035. package/dist/presentation/forms/listboxPicker/ListboxPicker.vue.d.ts +66 -0
  1036. package/dist/presentation/forms/listboxPicker/ListboxPickerContext.d.ts +47 -0
  1037. package/dist/presentation/forms/listboxPicker/ListboxPickerEmpty.vue.d.ts +10 -0
  1038. package/dist/presentation/forms/listboxPicker/ListboxPickerGroup.vue.d.ts +20 -0
  1039. package/dist/presentation/forms/listboxPicker/ListboxPickerItem.vue.d.ts +24 -0
  1040. package/dist/presentation/forms/listboxPicker/ListboxPickerSeparator.vue.d.ts +2 -0
  1041. package/dist/presentation/forms/listboxPicker/index.d.ts +7 -0
  1042. package/dist/presentation/forms/markdownEditor/MarkdownEditor.vue.d.ts +28 -36
  1043. package/dist/presentation/forms/markdownEditor/index.d.ts +1 -1
  1044. package/dist/presentation/forms/maskedInput/MaskedInput.vue.d.ts +20 -25
  1045. package/dist/presentation/forms/multiSelectPicker/MultiSelectPicker.vue.d.ts +49 -0
  1046. package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerContent.vue.d.ts +30 -0
  1047. package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerContext.d.ts +47 -0
  1048. package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerItem.vue.d.ts +24 -0
  1049. package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerTags.vue.d.ts +23 -0
  1050. package/dist/presentation/forms/multiSelectPicker/MultiSelectPickerTrigger.vue.d.ts +24 -0
  1051. package/dist/presentation/forms/multiSelectPicker/index.d.ts +6 -0
  1052. package/dist/presentation/forms/nodeEditor/NodeEditor.vue.d.ts +58 -0
  1053. package/dist/presentation/forms/numberInput/NumberInput.vue.d.ts +32 -32
  1054. package/dist/presentation/forms/optionTileGroupField/OptionTileGroupField.variants.d.ts +34 -0
  1055. package/dist/presentation/forms/optionTileGroupField/OptionTileGroupField.vue.d.ts +27 -0
  1056. package/dist/presentation/forms/optionTileGroupField/index.d.ts +2 -0
  1057. package/dist/presentation/forms/optionTilePicker/OptionTilePicker.variants.d.ts +8 -0
  1058. package/dist/presentation/forms/optionTilePicker/OptionTilePicker.vue.d.ts +35 -0
  1059. package/dist/presentation/forms/optionTilePicker/index.d.ts +2 -0
  1060. package/dist/presentation/forms/passwordInput/PasswordInput.vue.d.ts +28 -33
  1061. package/dist/presentation/forms/percentInput/PercentInput.vue.d.ts +3 -4
  1062. package/dist/presentation/forms/phoneInput/PhoneInput.vue.d.ts +18 -24
  1063. package/dist/presentation/forms/phoneInput/index.d.ts +1 -1
  1064. package/dist/presentation/forms/pinInput/PinInput.vue.d.ts +20 -25
  1065. package/dist/presentation/forms/radioField/RadioField.vue.d.ts +15 -11
  1066. package/dist/presentation/forms/radioGroup/RadioGroup.vue.d.ts +15 -20
  1067. package/dist/presentation/forms/radioInput/RadioInput.vue.d.ts +29 -0
  1068. package/dist/presentation/forms/radioInput/index.d.ts +1 -0
  1069. package/dist/presentation/forms/rangeCalendarPicker/RangeCalendarPicker.vue.d.ts +32 -0
  1070. package/dist/presentation/forms/rangeCalendarPicker/index.d.ts +1 -0
  1071. package/dist/presentation/forms/reactionPicker/ReactionPicker.vue.d.ts +14 -15
  1072. package/dist/presentation/forms/recurrenceEditor/RecurrenceEditor.vue.d.ts +25 -31
  1073. package/dist/presentation/forms/searchInput/SearchInput.vue.d.ts +23 -28
  1074. package/dist/presentation/forms/segmentedPicker/SegmentedPicker.vue.d.ts +20 -0
  1075. package/dist/presentation/forms/segmentedPicker/index.d.ts +1 -0
  1076. package/dist/presentation/forms/selectPicker/SelectPicker.variants.d.ts +129 -0
  1077. package/dist/presentation/forms/selectPicker/SelectPicker.vue.d.ts +62 -0
  1078. package/dist/presentation/forms/selectPicker/SelectPickerContent.vue.d.ts +43 -0
  1079. package/dist/presentation/forms/selectPicker/SelectPickerContext.d.ts +76 -0
  1080. package/dist/presentation/forms/selectPicker/SelectPickerItem.vue.d.ts +33 -0
  1081. package/dist/presentation/forms/selectPicker/SelectPickerTrigger.vue.d.ts +20 -0
  1082. package/dist/presentation/forms/selectPicker/SelectPickerValue.vue.d.ts +22 -0
  1083. package/dist/presentation/forms/selectPicker/index.d.ts +7 -0
  1084. package/dist/presentation/forms/sliderInput/SliderInput.vue.d.ts +33 -0
  1085. package/dist/presentation/forms/sliderInput/index.d.ts +1 -0
  1086. package/dist/presentation/forms/sortableGroup/SortableGroup.vue.d.ts +17 -0
  1087. package/dist/presentation/forms/sortableGroup/SortableGroupContext.d.ts +23 -0
  1088. package/dist/presentation/forms/sortableGroup/SortableGroupHandle.vue.d.ts +13 -0
  1089. package/dist/presentation/forms/sortableGroup/SortableGroupItem.vue.d.ts +15 -0
  1090. package/dist/presentation/forms/sortableGroup/SortableGroupMoveButton.vue.d.ts +15 -0
  1091. package/dist/presentation/forms/sortableGroup/index.d.ts +5 -0
  1092. package/dist/presentation/forms/switchField/SwitchField.vue.d.ts +13 -14
  1093. package/dist/presentation/forms/switchInput/SwitchInput.vue.d.ts +29 -0
  1094. package/dist/presentation/forms/switchInput/index.d.ts +1 -0
  1095. package/dist/presentation/forms/tagsInput/TagsInput.vue.d.ts +36 -43
  1096. package/dist/presentation/forms/telInput/TelInput.vue.d.ts +21 -26
  1097. package/dist/presentation/forms/textAreaInput/TextAreaInput.vue.d.ts +23 -28
  1098. package/dist/presentation/forms/textInput/TextInput.vue.d.ts +21 -26
  1099. package/dist/presentation/forms/timeInput/TimeInput.vue.d.ts +48 -0
  1100. package/dist/presentation/forms/timeInput/index.d.ts +1 -0
  1101. package/dist/presentation/forms/timePicker/TimePicker.vue.d.ts +25 -30
  1102. package/dist/presentation/forms/toggleGroup/ToggleGroup.variants.d.ts +33 -0
  1103. package/dist/presentation/forms/toggleGroup/ToggleGroup.vue.d.ts +73 -0
  1104. package/dist/presentation/forms/toggleGroup/ToggleGroupContext.d.ts +24 -0
  1105. package/dist/presentation/forms/toggleGroup/index.d.ts +3 -0
  1106. package/dist/presentation/forms/toggleInput/ToggleInput.variants.d.ts +75 -0
  1107. package/dist/presentation/forms/toggleInput/ToggleInput.vue.d.ts +57 -0
  1108. package/dist/presentation/forms/toggleInput/index.d.ts +2 -0
  1109. package/dist/presentation/forms/urlInput/UrlInput.vue.d.ts +21 -26
  1110. package/dist/presentation/forms/wizardForm/WizardForm.vue.d.ts +35 -0
  1111. package/dist/presentation/forms/wizardForm/WizardFormContext.d.ts +38 -0
  1112. package/dist/presentation/forms/wizardForm/WizardFormFooter.vue.d.ts +28 -0
  1113. package/dist/presentation/forms/wizardForm/WizardFormStep.vue.d.ts +28 -0
  1114. package/dist/presentation/forms/wizardForm/WizardFormSteps.vue.d.ts +6 -0
  1115. package/dist/presentation/forms/wizardForm/index.d.ts +6 -0
  1116. package/dist/presentation/layout/anchorLayout/AnchorLayout.variants.d.ts +117 -0
  1117. package/dist/presentation/layout/anchorLayout/AnchorLayout.vue.d.ts +63 -0
  1118. package/dist/presentation/layout/anchorLayout/index.d.ts +2 -0
  1119. package/dist/presentation/layout/appShell/AppShell.vue.d.ts +19 -34
  1120. package/dist/presentation/layout/appShell/AppShellAside.vue.d.ts +3 -4
  1121. package/dist/presentation/layout/appShell/AppShellContent.vue.d.ts +3 -4
  1122. package/dist/presentation/layout/appShell/AppShellFooter.vue.d.ts +3 -4
  1123. package/dist/presentation/layout/appShell/AppShellHeader.vue.d.ts +3 -4
  1124. package/dist/presentation/layout/appShell/AppShellMain.vue.d.ts +3 -4
  1125. package/dist/presentation/layout/appShell/AppShellSidebar.vue.d.ts +3 -4
  1126. package/dist/presentation/layout/aspectRatioLayout/AspectRatioLayout.vue.d.ts +18 -0
  1127. package/dist/presentation/layout/aspectRatioLayout/index.d.ts +1 -0
  1128. package/dist/presentation/layout/boxLayout/BoxLayout.vue.d.ts +19 -0
  1129. package/dist/presentation/layout/boxLayout/index.d.ts +1 -0
  1130. package/dist/presentation/layout/centerLayout/CenterLayout.vue.d.ts +14 -0
  1131. package/dist/presentation/layout/centerLayout/index.d.ts +1 -0
  1132. package/dist/presentation/layout/clusterLayout/ClusterLayout.vue.d.ts +22 -0
  1133. package/dist/presentation/layout/clusterLayout/index.d.ts +1 -0
  1134. package/dist/presentation/layout/containerLayout/ContainerLayout.variants.d.ts +46 -0
  1135. package/dist/presentation/layout/containerLayout/ContainerLayout.vue.d.ts +21 -0
  1136. package/dist/presentation/layout/containerLayout/index.d.ts +2 -0
  1137. package/dist/presentation/layout/dividerLayout/DividerLayout.variants.d.ts +25 -0
  1138. package/dist/presentation/layout/dividerLayout/DividerLayout.vue.d.ts +37 -0
  1139. package/dist/presentation/layout/dividerLayout/index.d.ts +2 -0
  1140. package/dist/presentation/layout/fieldsetLayout/FieldsetLayout.vue.d.ts +22 -0
  1141. package/dist/presentation/layout/fieldsetLayout/index.d.ts +1 -0
  1142. package/dist/presentation/layout/flexLayout/FlexLayout.vue.d.ts +18 -0
  1143. package/dist/presentation/layout/flexLayout/index.d.ts +1 -0
  1144. package/dist/presentation/layout/frameLayout/FrameLayout.vue.d.ts +38 -0
  1145. package/dist/presentation/layout/frameLayout/index.d.ts +1 -0
  1146. package/dist/presentation/layout/grid/Grid.variants.d.ts +59 -153
  1147. package/dist/presentation/layout/grid/Grid.vue.d.ts +13 -13
  1148. package/dist/presentation/layout/hStackLayout/HStackLayout.vue.d.ts +14 -0
  1149. package/dist/presentation/layout/hStackLayout/index.d.ts +1 -0
  1150. package/dist/presentation/layout/index.d.ts +24 -19
  1151. package/dist/presentation/layout/index.js +60 -56
  1152. package/dist/presentation/layout/inlineLayout/InlineLayout.vue.d.ts +42 -0
  1153. package/dist/presentation/layout/inlineLayout/index.d.ts +1 -0
  1154. package/dist/presentation/layout/inputAddonLayout/InputAddonLayout.vue.d.ts +19 -0
  1155. package/dist/presentation/layout/inputAddonLayout/index.d.ts +1 -0
  1156. package/dist/presentation/layout/inputGroup/InputGroup.vue.d.ts +18 -0
  1157. package/dist/presentation/layout/navbar/Navbar.variants.d.ts +20 -62
  1158. package/dist/presentation/layout/navbar/Navbar.vue.d.ts +14 -15
  1159. package/dist/presentation/layout/navbar/index.d.ts +1 -1
  1160. package/dist/presentation/layout/pullToRefreshLayout/PullToRefreshLayout.vue.d.ts +21 -0
  1161. package/dist/presentation/layout/pullToRefreshLayout/index.d.ts +1 -0
  1162. package/dist/presentation/layout/resizablePanelsLayout/ResizablePanel.vue.d.ts +21 -0
  1163. package/dist/presentation/layout/resizablePanelsLayout/ResizablePanelsLayout.vue.d.ts +61 -0
  1164. package/dist/presentation/layout/resizablePanelsLayout/ResizableSeparator.vue.d.ts +9 -0
  1165. package/dist/presentation/layout/resizablePanelsLayout/index.d.ts +4 -0
  1166. package/dist/presentation/layout/scrollArea/ScrollArea.vue.d.ts +8 -8
  1167. package/dist/presentation/layout/section/Section.variants.d.ts +20 -54
  1168. package/dist/presentation/layout/section/Section.vue.d.ts +15 -17
  1169. package/dist/presentation/layout/section/index.d.ts +1 -1
  1170. package/dist/presentation/layout/separatorLayout/SeparatorLayout.vue.d.ts +13 -0
  1171. package/dist/presentation/layout/separatorLayout/index.d.ts +1 -0
  1172. package/dist/presentation/layout/spacerLayout/SpacerLayout.vue.d.ts +14 -0
  1173. package/dist/presentation/layout/spacerLayout/index.d.ts +1 -0
  1174. package/dist/presentation/layout/stackLayout/StackLayout.variants.d.ts +172 -0
  1175. package/dist/presentation/layout/stackLayout/StackLayout.vue.d.ts +37 -0
  1176. package/dist/presentation/layout/stackLayout/index.d.ts +2 -0
  1177. package/dist/presentation/layout/surfaceLayout/SurfaceLayout.vue.d.ts +40 -0
  1178. package/dist/presentation/layout/surfaceLayout/index.d.ts +1 -0
  1179. package/dist/presentation/layout/swipeActionsLayout/SwipeActionsLayout.vue.d.ts +27 -0
  1180. package/dist/presentation/layout/swipeActionsLayout/index.d.ts +1 -0
  1181. package/dist/presentation/layout/tiltLayout/TiltLayout.vue.d.ts +30 -0
  1182. package/dist/presentation/layout/tiltLayout/index.d.ts +1 -0
  1183. package/dist/presentation/layout/twoColumnLayout/TwoColumnLayout.vue.d.ts +27 -0
  1184. package/dist/presentation/layout/twoColumnLayout/index.d.ts +1 -0
  1185. package/dist/presentation/layout/vStackLayout/VStackLayout.vue.d.ts +14 -0
  1186. package/dist/presentation/layout/vStackLayout/index.d.ts +1 -0
  1187. package/dist/presentation/nav/NavExtensions.d.ts +14 -0
  1188. package/dist/presentation/nav/breadcrumb/Breadcrumb.vue.d.ts +7 -8
  1189. package/dist/presentation/nav/breadcrumb/index.d.ts +1 -1
  1190. package/dist/presentation/nav/contextMenu/ContextMenu.vue.d.ts +1 -2
  1191. package/dist/presentation/nav/contextMenu/ContextMenuContent.vue.d.ts +6 -7
  1192. package/dist/presentation/nav/contextMenu/ContextMenuTrigger.vue.d.ts +8 -9
  1193. package/dist/presentation/nav/contextMenu/index.d.ts +3 -3
  1194. package/dist/presentation/nav/dropdownMenu/DropdownMenu.vue.d.ts +12 -26
  1195. package/dist/presentation/nav/dropdownMenu/DropdownMenuContent.vue.d.ts +1 -2
  1196. package/dist/presentation/nav/dropdownMenu/DropdownMenuTrigger.vue.d.ts +6 -7
  1197. package/dist/presentation/nav/dropdownMenu/index.d.ts +3 -3
  1198. package/dist/presentation/nav/index.d.ts +1 -1
  1199. package/dist/presentation/nav/index.js +49 -56
  1200. package/dist/presentation/nav/linkItem/LinkItem.variants.d.ts +61 -0
  1201. package/dist/presentation/nav/linkItem/LinkItem.vue.d.ts +25 -0
  1202. package/dist/presentation/nav/linkItem/index.d.ts +2 -0
  1203. package/dist/presentation/nav/menu/Menu.variants.d.ts +17 -43
  1204. package/dist/presentation/nav/menu/Menu.vue.d.ts +26 -30
  1205. package/dist/presentation/nav/menu/MenuGroup.vue.d.ts +4 -5
  1206. package/dist/presentation/nav/menu/MenuItem.vue.d.ts +9 -10
  1207. package/dist/presentation/nav/menu/MenuLabel.vue.d.ts +3 -4
  1208. package/dist/presentation/nav/menu/MenuSeparator.vue.d.ts +3 -4
  1209. package/dist/presentation/nav/menubar/Menubar.variants.d.ts +3 -5
  1210. package/dist/presentation/nav/menubar/Menubar.vue.d.ts +12 -255
  1211. package/dist/presentation/nav/menubar/MenubarContent.vue.d.ts +6 -7
  1212. package/dist/presentation/nav/menubar/MenubarMenu.vue.d.ts +2 -3
  1213. package/dist/presentation/nav/menubar/MenubarTrigger.vue.d.ts +3 -4
  1214. package/dist/presentation/nav/navItem/NavItem.vue.d.ts +15 -16
  1215. package/dist/presentation/nav/navigationMenu/NavigationMenu.vue.d.ts +11 -12
  1216. package/dist/presentation/nav/navigationMenu/NavigationMenuContent.vue.d.ts +3 -4
  1217. package/dist/presentation/nav/navigationMenu/NavigationMenuItem.vue.d.ts +4 -5
  1218. package/dist/presentation/nav/navigationMenu/NavigationMenuLink.vue.d.ts +3 -4
  1219. package/dist/presentation/nav/navigationMenu/NavigationMenuList.vue.d.ts +3 -246
  1220. package/dist/presentation/nav/navigationMenu/NavigationMenuTrigger.vue.d.ts +3 -4
  1221. package/dist/presentation/nav/navigationMenu/index.d.ts +5 -5
  1222. package/dist/presentation/nav/pagination/Pagination.vue.d.ts +11 -14
  1223. package/dist/presentation/nav/scrollSpy/ScrollSpy.vue.d.ts +7 -8
  1224. package/dist/presentation/nav/scrollSpy/UseScrollSpy.d.ts +1 -1
  1225. package/dist/presentation/nav/tableOfContents/TableOfContents.vue.d.ts +15 -16
  1226. package/dist/presentation/nav/tableOfContents/index.d.ts +1 -1
  1227. package/dist/presentation/overlays/OverlayBody.vue.d.ts +3 -4
  1228. package/dist/presentation/overlays/OverlayCloseButton.vue.d.ts +6 -7
  1229. package/dist/presentation/overlays/OverlayDescription.vue.d.ts +3 -4
  1230. package/dist/presentation/overlays/OverlayExtensions.d.ts +14 -0
  1231. package/dist/presentation/overlays/OverlayFooter.vue.d.ts +3 -4
  1232. package/dist/presentation/overlays/OverlayHeader.vue.d.ts +3 -4
  1233. package/dist/presentation/overlays/OverlayTitle.vue.d.ts +3 -4
  1234. package/dist/presentation/overlays/actionSheet/ActionSheet.vue.d.ts +12 -17
  1235. package/dist/presentation/overlays/actionSheet/ActionSheetAction.vue.d.ts +7 -8
  1236. package/dist/presentation/overlays/actionSheet/ActionSheetCancel.vue.d.ts +3 -4
  1237. package/dist/presentation/overlays/actionSheet/index.d.ts +2 -2
  1238. package/dist/presentation/overlays/alertModal/AlertModal.vue.d.ts +6 -10
  1239. package/dist/presentation/overlays/alertModal/AlertModalAction.vue.d.ts +5 -6
  1240. package/dist/presentation/overlays/alertModal/AlertModalCancel.vue.d.ts +3 -4
  1241. package/dist/presentation/overlays/alertModal/AlertModalContent.vue.d.ts +3 -4
  1242. package/dist/presentation/overlays/alertModal/index.d.ts +3 -3
  1243. package/dist/presentation/overlays/backdropOverlay/BackdropOverlay.vue.d.ts +39 -0
  1244. package/dist/presentation/overlays/backdropOverlay/index.d.ts +1 -0
  1245. package/dist/presentation/overlays/bottomSheet/BottomSheet.vue.d.ts +27 -32
  1246. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModal.vue.d.ts +37 -0
  1247. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalContent.vue.d.ts +16 -0
  1248. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalContext.d.ts +42 -0
  1249. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalEmpty.vue.d.ts +18 -0
  1250. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalGroup.vue.d.ts +18 -0
  1251. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalInput.vue.d.ts +13 -0
  1252. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalItem.vue.d.ts +35 -0
  1253. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalList.vue.d.ts +18 -0
  1254. package/dist/presentation/overlays/commandPaletteModal/CommandPaletteModalSeparator.vue.d.ts +11 -0
  1255. package/dist/presentation/overlays/commandPaletteModal/index.d.ts +9 -0
  1256. package/dist/presentation/overlays/drawer/Drawer.vue.d.ts +16 -29
  1257. package/dist/presentation/overlays/drawer/DrawerContent.vue.d.ts +14 -15
  1258. package/dist/presentation/overlays/drawer/DrawerTrigger.vue.d.ts +6 -7
  1259. package/dist/presentation/overlays/drawer/index.d.ts +1 -1
  1260. package/dist/presentation/overlays/hoverCard/HoverCard.vue.d.ts +17 -30
  1261. package/dist/presentation/overlays/hoverCard/HoverCardArrow.vue.d.ts +3 -4
  1262. package/dist/presentation/overlays/hoverCard/HoverCardContent.vue.d.ts +5 -7
  1263. package/dist/presentation/overlays/hoverCard/HoverCardTrigger.vue.d.ts +6 -7
  1264. package/dist/presentation/overlays/hoverCard/index.d.ts +2 -2
  1265. package/dist/presentation/overlays/index.d.ts +4 -1
  1266. package/dist/presentation/overlays/index.js +50 -37
  1267. package/dist/presentation/overlays/index.js.map +1 -1
  1268. package/dist/presentation/overlays/modal/Modal.vue.d.ts +16 -30
  1269. package/dist/presentation/overlays/modal/ModalContent.vue.d.ts +13 -14
  1270. package/dist/presentation/overlays/modal/ModalTrigger.vue.d.ts +6 -7
  1271. package/dist/presentation/overlays/modal/index.d.ts +2 -2
  1272. package/dist/presentation/overlays/popover/Popover.vue.d.ts +21 -30
  1273. package/dist/presentation/overlays/popover/PopoverArrow.vue.d.ts +3 -4
  1274. package/dist/presentation/overlays/popover/PopoverContent.vue.d.ts +10 -11
  1275. package/dist/presentation/overlays/popover/PopoverTrigger.vue.d.ts +6 -7
  1276. package/dist/presentation/overlays/tooltip/Tooltip.vue.d.ts +41 -0
  1277. package/dist/presentation/overlays/tourPopover/TourPopover.vue.d.ts +46 -0
  1278. package/dist/presentation/overlays/tourPopover/index.d.ts +1 -0
  1279. package/dist/query/PageExtensions.d.ts +16 -0
  1280. package/dist/query/Testing.d.ts +1 -0
  1281. package/dist/query/Testing.js +48 -0
  1282. package/dist/query/Testing.js.map +1 -0
  1283. package/dist/query/adapters/tanstack/CreateQueryClient.d.ts +33 -0
  1284. package/dist/query/adapters/tanstack/Endpoints.d.ts +19 -0
  1285. package/dist/query/adapters/tanstack/OptimisticTransactions.d.ts +3 -0
  1286. package/dist/query/adapters/tanstack/Persistence.d.ts +41 -0
  1287. package/dist/query/adapters/tanstack/QueryOutcome.d.ts +8 -0
  1288. package/dist/query/adapters/tanstack/QueryProgressBridge.d.ts +15 -0
  1289. package/dist/query/adapters/tanstack/QueryProvider.vue.d.ts +16 -0
  1290. package/dist/query/adapters/tanstack/QueryTestUtils.d.ts +54 -0
  1291. package/dist/query/adapters/tanstack/hooks/UseAppInfiniteQuery.d.ts +49 -0
  1292. package/dist/query/adapters/tanstack/hooks/UseAppLazyQuery.d.ts +44 -0
  1293. package/dist/query/adapters/tanstack/hooks/UseAppMutation.d.ts +36 -0
  1294. package/dist/query/adapters/tanstack/hooks/UseAppPaginatedQuery.d.ts +49 -0
  1295. package/dist/query/adapters/tanstack/hooks/UseAppQueries.d.ts +50 -0
  1296. package/dist/query/adapters/tanstack/hooks/UseAppQuery.d.ts +42 -0
  1297. package/dist/query/adapters/tanstack/hooks/UseAppSuspenseQuery.d.ts +50 -0
  1298. package/dist/query/adapters/tanstack/hooks/UseOptimisticMutation.d.ts +38 -0
  1299. package/dist/query/adapters/tanstack/hooks/UsePrefetchQuery.d.ts +28 -0
  1300. package/dist/query/adapters/tanstack/hooks/UseQueryCache.d.ts +33 -0
  1301. package/dist/query/adapters/tanstack/index.d.ts +19 -0
  1302. package/dist/query/adapters/tanstack/queryDevtools/QueryDevtools.vue.d.ts +9 -0
  1303. package/dist/query/adapters/tanstack/queryDevtools/index.d.ts +1 -0
  1304. package/dist/query/index.d.ts +1 -19
  1305. package/dist/query/index.js +155 -93
  1306. package/dist/query/index.js.map +1 -1
  1307. package/dist/router/Paths.d.ts +4 -6
  1308. package/dist/router/ProgressProvider.vue.d.ts +5 -6
  1309. package/dist/router/adapters/vueRouter/CreateAppRouter.d.ts +65 -0
  1310. package/dist/router/adapters/vueRouter/DocumentMeta.d.ts +13 -0
  1311. package/dist/router/adapters/vueRouter/Guards.d.ts +32 -0
  1312. package/dist/router/adapters/vueRouter/LazyRoute.d.ts +19 -0
  1313. package/dist/router/adapters/vueRouter/RouteConfig.d.ts +97 -0
  1314. package/dist/router/adapters/vueRouter/RouteHandles.d.ts +30 -0
  1315. package/dist/router/adapters/vueRouter/RoutePersistence.d.ts +20 -0
  1316. package/dist/router/adapters/vueRouter/appErrorBoundary/AppErrorBoundary.vue.d.ts +25 -0
  1317. package/dist/router/adapters/vueRouter/appErrorBoundary/index.d.ts +1 -0
  1318. package/dist/router/adapters/vueRouter/appNavLink/AppNavLink.vue.d.ts +39 -0
  1319. package/dist/router/adapters/vueRouter/appNavLink/index.d.ts +1 -0
  1320. package/dist/router/adapters/vueRouter/hooks/UseBreadcrumbs.d.ts +17 -0
  1321. package/dist/router/adapters/vueRouter/hooks/UsePrefetch.d.ts +19 -0
  1322. package/dist/router/adapters/vueRouter/index.d.ts +23 -0
  1323. package/dist/router/adapters/vueRouter/navigationProgress/NavigationProgress.vue.d.ts +18 -0
  1324. package/dist/router/adapters/vueRouter/navigationProgress/index.d.ts +1 -0
  1325. package/dist/router/adapters/vueRouter/notFound/NotFound.vue.d.ts +9 -0
  1326. package/dist/router/adapters/vueRouter/notFound/index.d.ts +1 -0
  1327. package/dist/router/adapters/vueRouter/routeAnnouncer/RouteAnnouncer.vue.d.ts +9 -0
  1328. package/dist/router/adapters/vueRouter/routeAnnouncer/index.d.ts +1 -0
  1329. package/dist/router/index.d.ts +1 -23
  1330. package/dist/router/index.js +63 -29
  1331. package/dist/router/index.js.map +1 -1
  1332. package/dist/themes.css +1115 -1115
  1333. package/dist/themes.json +5 -4
  1334. package/package.json +95 -49
  1335. package/dist/auth/AuthContext.d.ts +0 -41
  1336. package/dist/auth/AuthProvider.vue.d.ts +0 -33
  1337. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js +0 -46
  1338. package/dist/chunks/Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js.map +0 -1
  1339. package/dist/chunks/ApiError-l0YdcqqV.js +0 -15
  1340. package/dist/chunks/ApiError-l0YdcqqV.js.map +0 -1
  1341. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js +0 -996
  1342. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js.map +0 -1
  1343. package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js +0 -78
  1344. package/dist/chunks/Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js.map +0 -1
  1345. package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js +0 -1094
  1346. package/dist/chunks/BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js.map +0 -1
  1347. package/dist/chunks/Bytes-7Jxs6Bq6.js +0 -21
  1348. package/dist/chunks/Bytes-7Jxs6Bq6.js.map +0 -1
  1349. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js +0 -12748
  1350. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js.map +0 -1
  1351. package/dist/chunks/Chord-D9Z-j3O0.js +0 -139
  1352. package/dist/chunks/Chord-D9Z-j3O0.js.map +0 -1
  1353. package/dist/chunks/ColorModeContext-Bz6CBL0V.js +0 -21
  1354. package/dist/chunks/ColorModeContext-Bz6CBL0V.js.map +0 -1
  1355. package/dist/chunks/Compare-Du6p-OX1.js +0 -18
  1356. package/dist/chunks/Compare-Du6p-OX1.js.map +0 -1
  1357. package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js +0 -229
  1358. package/dist/chunks/ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js.map +0 -1
  1359. package/dist/chunks/CssExtensions-BzLJG57F.js +0 -161
  1360. package/dist/chunks/CssExtensions-BzLJG57F.js.map +0 -1
  1361. package/dist/chunks/DateExtensions-QahSUlRy.js +0 -282
  1362. package/dist/chunks/DateExtensions-QahSUlRy.js.map +0 -1
  1363. package/dist/chunks/DeepEqual-7lBKnkNS.js +0 -29
  1364. package/dist/chunks/DeepEqual-7lBKnkNS.js.map +0 -1
  1365. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js +0 -214
  1366. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js.map +0 -1
  1367. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js +0 -207
  1368. package/dist/chunks/DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js.map +0 -1
  1369. package/dist/chunks/Environment-CuQav_mw.js +0 -68
  1370. package/dist/chunks/Environment-CuQav_mw.js.map +0 -1
  1371. package/dist/chunks/Equality-DIQYQysz.js +0 -21
  1372. package/dist/chunks/Equality-DIQYQysz.js.map +0 -1
  1373. package/dist/chunks/ErrorLike-Cfj0lZW3.js +0 -27
  1374. package/dist/chunks/ErrorLike-Cfj0lZW3.js.map +0 -1
  1375. package/dist/chunks/ErrorMessage-Cqt7WaFn.js +0 -26
  1376. package/dist/chunks/ErrorMessage-Cqt7WaFn.js.map +0 -1
  1377. package/dist/chunks/ErrorRecognizers-oTklha6D.js +0 -17
  1378. package/dist/chunks/ErrorRecognizers-oTklha6D.js.map +0 -1
  1379. package/dist/chunks/FieldErrors-2zjhia4U.js +0 -56
  1380. package/dist/chunks/FieldErrors-2zjhia4U.js.map +0 -1
  1381. package/dist/chunks/FileName-CmNjFV7t.js +0 -30
  1382. package/dist/chunks/FileName-CmNjFV7t.js.map +0 -1
  1383. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js +0 -73
  1384. package/dist/chunks/FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js.map +0 -1
  1385. package/dist/chunks/HtmlExtensions-jlKY5f9C.js +0 -23
  1386. package/dist/chunks/HtmlExtensions-jlKY5f9C.js.map +0 -1
  1387. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js +0 -27
  1388. package/dist/chunks/Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js.map +0 -1
  1389. package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js +0 -68
  1390. package/dist/chunks/Inline.vue_vue_type_script_setup_true_lang-BvWbQpJD.js.map +0 -1
  1391. package/dist/chunks/KeyboardExtensions-CQlkK53D.js +0 -34
  1392. package/dist/chunks/KeyboardExtensions-CQlkK53D.js.map +0 -1
  1393. package/dist/chunks/Listbox.variants-CqAkYsmK.js +0 -44
  1394. package/dist/chunks/Listbox.variants-CqAkYsmK.js.map +0 -1
  1395. package/dist/chunks/LocaleContext-B3UXrI6p.js +0 -39
  1396. package/dist/chunks/LocaleContext-B3UXrI6p.js.map +0 -1
  1397. package/dist/chunks/Messages-BGfQHMmW.js +0 -201
  1398. package/dist/chunks/Messages-BGfQHMmW.js.map +0 -1
  1399. package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js +0 -191
  1400. package/dist/chunks/ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js.map +0 -1
  1401. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js +0 -86
  1402. package/dist/chunks/NavItem.vue_vue_type_script_setup_true_lang-CGBo2TiV.js.map +0 -1
  1403. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js +0 -2073
  1404. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js.map +0 -1
  1405. package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-KC5Iusce.js +0 -2727
  1406. package/dist/chunks/NotificationItem.vue_vue_type_script_setup_true_lang-KC5Iusce.js.map +0 -1
  1407. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js +0 -943
  1408. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js.map +0 -1
  1409. package/dist/chunks/OverlayChrome-e4MNr8Yl.js +0 -17
  1410. package/dist/chunks/OverlayChrome-e4MNr8Yl.js.map +0 -1
  1411. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js +0 -212
  1412. package/dist/chunks/PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js.map +0 -1
  1413. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js +0 -34
  1414. package/dist/chunks/Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js.map +0 -1
  1415. package/dist/chunks/Presence-C7IJvh_P.js +0 -120
  1416. package/dist/chunks/Presence-C7IJvh_P.js.map +0 -1
  1417. package/dist/chunks/Primitive-Cm3ECaVw.js +0 -20
  1418. package/dist/chunks/Primitive-Cm3ECaVw.js.map +0 -1
  1419. package/dist/chunks/QueryPermission--OKfvS9c.js +0 -82
  1420. package/dist/chunks/QueryPermission--OKfvS9c.js.map +0 -1
  1421. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js +0 -235
  1422. package/dist/chunks/RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js.map +0 -1
  1423. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js +0 -20
  1424. package/dist/chunks/ScrollLockProvider.vue_vue_type_script_setup_true_lang-_ihHJ7jI.js.map +0 -1
  1425. package/dist/chunks/SerializeError-CclP2jCW.js +0 -61
  1426. package/dist/chunks/SerializeError-CclP2jCW.js.map +0 -1
  1427. package/dist/chunks/Side-CSys3p-F.js +0 -23
  1428. package/dist/chunks/Side-CSys3p-F.js.map +0 -1
  1429. package/dist/chunks/Slot-D2lIitvV.js +0 -103
  1430. package/dist/chunks/Slot-D2lIitvV.js.map +0 -1
  1431. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js +0 -10364
  1432. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js.map +0 -1
  1433. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js +0 -23
  1434. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-BAepBy2n.js.map +0 -1
  1435. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js +0 -76
  1436. package/dist/chunks/Spinner.vue_vue_type_script_setup_true_lang-C4lNiUOm.js.map +0 -1
  1437. package/dist/chunks/SubmitErrors-K8nmmj0P.js +0 -374
  1438. package/dist/chunks/SubmitErrors-K8nmmj0P.js.map +0 -1
  1439. package/dist/chunks/SurfaceStyles-ChdpGRBO.js +0 -143
  1440. package/dist/chunks/SurfaceStyles-ChdpGRBO.js.map +0 -1
  1441. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js +0 -2159
  1442. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js.map +0 -1
  1443. package/dist/chunks/ToError-CyTBsmLO.js +0 -52
  1444. package/dist/chunks/ToError-CyTBsmLO.js.map +0 -1
  1445. package/dist/chunks/Tones-CI65uuq9.js +0 -90
  1446. package/dist/chunks/Tones-CI65uuq9.js.map +0 -1
  1447. package/dist/chunks/TransitionExtensions-hFi80JX2.js +0 -19
  1448. package/dist/chunks/TransitionExtensions-hFi80JX2.js.map +0 -1
  1449. package/dist/chunks/UseHotkeys-CKIYK5Mq.js +0 -82
  1450. package/dist/chunks/UseHotkeys-CKIYK5Mq.js.map +0 -1
  1451. package/dist/chunks/UseNavigationProgress-TQIkkXyU.js +0 -51
  1452. package/dist/chunks/UseNavigationProgress-TQIkkXyU.js.map +0 -1
  1453. package/dist/chunks/cn-CzDCF-Ah.js +0 -9
  1454. package/dist/chunks/cn-CzDCF-Ah.js.map +0 -1
  1455. package/dist/chunks/dataAttr-7BR67dTj.js +0 -7
  1456. package/dist/chunks/dataAttr-7BR67dTj.js.map +0 -1
  1457. package/dist/chunks/index-BD7H9CkO.js +0 -130
  1458. package/dist/chunks/index-BD7H9CkO.js.map +0 -1
  1459. package/dist/chunks/index-BGzbbN9T.js +0 -1707
  1460. package/dist/chunks/index-BGzbbN9T.js.map +0 -1
  1461. package/dist/chunks/index-C034dEhy.js +0 -205
  1462. package/dist/chunks/index-C034dEhy.js.map +0 -1
  1463. package/dist/chunks/index-Cbydgcdk.js +0 -234
  1464. package/dist/chunks/index-Cbydgcdk.js.map +0 -1
  1465. package/dist/chunks/index-CzKEU1kI.js +0 -11
  1466. package/dist/chunks/index-CzKEU1kI.js.map +0 -1
  1467. package/dist/chunks/useClipboard-BVRwXC--.js +0 -37
  1468. package/dist/chunks/useClipboard-BVRwXC--.js.map +0 -1
  1469. package/dist/chunks/useControlled-B6M4kTLn.js +0 -24
  1470. package/dist/chunks/useControlled-B6M4kTLn.js.map +0 -1
  1471. package/dist/chunks/useDebounceHandler-BIZgvvGp.js +0 -20
  1472. package/dist/chunks/useDebounceHandler-BIZgvvGp.js.map +0 -1
  1473. package/dist/chunks/useEscape-CYPdpm_l.js +0 -15
  1474. package/dist/chunks/useEscape-CYPdpm_l.js.map +0 -1
  1475. package/dist/chunks/useEventListener-gohT6zGs.js +0 -16
  1476. package/dist/chunks/useEventListener-gohT6zGs.js.map +0 -1
  1477. package/dist/chunks/useId-CtgAhGrn.js +0 -9
  1478. package/dist/chunks/useId-CtgAhGrn.js.map +0 -1
  1479. package/dist/chunks/useMediaQuery-DwVcSgGk.js +0 -27
  1480. package/dist/chunks/useMediaQuery-DwVcSgGk.js.map +0 -1
  1481. package/dist/chunks/useOutsideClick-CW80BJfE.js +0 -22
  1482. package/dist/chunks/useOutsideClick-CW80BJfE.js.map +0 -1
  1483. package/dist/chunks/useRecentItems-DFnt5CBy.js +0 -137
  1484. package/dist/chunks/useRecentItems-DFnt5CBy.js.map +0 -1
  1485. package/dist/chunks/useReducedMotion-B9LqQ3UT.js +0 -8
  1486. package/dist/chunks/useReducedMotion-B9LqQ3UT.js.map +0 -1
  1487. package/dist/chunks/useResizeObserver-BUU7lC-n.js +0 -17
  1488. package/dist/chunks/useResizeObserver-BUU7lC-n.js.map +0 -1
  1489. package/dist/chunks/useScrollLock-d6YIGUcs.js +0 -37
  1490. package/dist/chunks/useScrollLock-d6YIGUcs.js.map +0 -1
  1491. package/dist/flags/FlagsContext.d.ts +0 -32
  1492. package/dist/flags/FlagsProvider.vue.d.ts +0 -24
  1493. package/dist/forms-engine/AppForm.d.ts +0 -258
  1494. package/dist/forms-engine/DeepEqual.d.ts +0 -8
  1495. package/dist/forms-engine/FocusFirstInvalid.d.ts +0 -15
  1496. package/dist/forms-engine/FormGlue.d.ts +0 -55
  1497. package/dist/forms-engine/Paths.d.ts +0 -47
  1498. package/dist/forms-engine/SchemaValidation.d.ts +0 -29
  1499. package/dist/forms-engine/SubmitErrors.d.ts +0 -33
  1500. package/dist/forms-engine/UseFieldArray.d.ts +0 -87
  1501. package/dist/forms-engine/house/HouseFormCore.d.ts +0 -33
  1502. package/dist/forms-engine/house/UseAppForm.d.ts +0 -16
  1503. package/dist/forms-engine/house/index.js +0 -315
  1504. package/dist/forms-engine/house/index.js.map +0 -1
  1505. package/dist/forms-engine/index.d.ts +0 -10
  1506. package/dist/forms-engine/index.js +0 -127
  1507. package/dist/forms-engine/index.js.map +0 -1
  1508. package/dist/forms-engine/tanstack/TanstackFormOverlay.d.ts +0 -49
  1509. package/dist/forms-engine/tanstack/UseAppForm.d.ts +0 -26
  1510. package/dist/forms-engine/tanstack/index.js +0 -407
  1511. package/dist/forms-engine/tanstack/index.js.map +0 -1
  1512. package/dist/foundation/animation/AnimatedLayout.d.ts +0 -72
  1513. package/dist/foundation/clipboard/UseClipboardCopy.d.ts +0 -40
  1514. package/dist/foundation/clipboard/UsePasteHandler.d.ts +0 -35
  1515. package/dist/foundation/commands/CommandsContext.d.ts +0 -30
  1516. package/dist/foundation/commands/CommandsProvider.vue.d.ts +0 -18
  1517. package/dist/foundation/commands/UseCommandRegistry.d.ts +0 -19
  1518. package/dist/foundation/commands/UseCommandShortcuts.d.ts +0 -18
  1519. package/dist/foundation/device/UseBreakpoint.d.ts +0 -20
  1520. package/dist/foundation/device/UseDisplayMode.d.ts +0 -23
  1521. package/dist/foundation/device/UsePointer.d.ts +0 -25
  1522. package/dist/foundation/format/Text.d.ts +0 -51
  1523. package/dist/foundation/format/index.js +0 -100
  1524. package/dist/foundation/format/index.js.map +0 -1
  1525. package/dist/foundation/geolocation/GeolocationReading.d.ts +0 -30
  1526. package/dist/foundation/geolocation/PositionResult.d.ts +0 -74
  1527. package/dist/foundation/geolocation/UseGeolocation.d.ts +0 -38
  1528. package/dist/foundation/geolocation/UseWatchPosition.d.ts +0 -16
  1529. package/dist/foundation/gestures/UseDrag.d.ts +0 -75
  1530. package/dist/foundation/gestures/UseLongPress.d.ts +0 -42
  1531. package/dist/foundation/gestures/UsePinch.d.ts +0 -47
  1532. package/dist/foundation/gestures/UseSwipe.d.ts +0 -46
  1533. package/dist/foundation/hooks/index.d.ts +0 -17
  1534. package/dist/foundation/hooks/index.js +0 -34
  1535. package/dist/foundation/hooks/index.js.map +0 -1
  1536. package/dist/foundation/hooks/useAutosave/index.d.ts +0 -1
  1537. package/dist/foundation/hooks/useAutosave/useAutosave.d.ts +0 -46
  1538. package/dist/foundation/hooks/useClipboard/index.d.ts +0 -1
  1539. package/dist/foundation/hooks/useClipboard/useClipboard.d.ts +0 -24
  1540. package/dist/foundation/hooks/useControlled/index.d.ts +0 -1
  1541. package/dist/foundation/hooks/useControlled/useControlled.d.ts +0 -31
  1542. package/dist/foundation/hooks/useDebounceHandler/index.d.ts +0 -1
  1543. package/dist/foundation/hooks/useDisclosure/index.d.ts +0 -1
  1544. package/dist/foundation/hooks/useEscape/index.d.ts +0 -1
  1545. package/dist/foundation/hooks/useEventListener/index.d.ts +0 -1
  1546. package/dist/foundation/hooks/useFocusTrap/index.d.ts +0 -1
  1547. package/dist/foundation/hooks/useId/index.d.ts +0 -1
  1548. package/dist/foundation/hooks/useMediaQuery/index.d.ts +0 -1
  1549. package/dist/foundation/hooks/useMediaQuery/useMediaQuery.d.ts +0 -12
  1550. package/dist/foundation/hooks/useOutsideClick/index.d.ts +0 -1
  1551. package/dist/foundation/hooks/usePersistentState/index.d.ts +0 -1
  1552. package/dist/foundation/hooks/usePersistentState/usePersistentState.d.ts +0 -31
  1553. package/dist/foundation/hooks/useRecentItems/index.d.ts +0 -1
  1554. package/dist/foundation/hooks/useRecentItems/useRecentItems.d.ts +0 -34
  1555. package/dist/foundation/hooks/useReducedMotion/index.d.ts +0 -1
  1556. package/dist/foundation/hooks/useResizeObserver/index.d.ts +0 -1
  1557. package/dist/foundation/hooks/useScrollLock/index.d.ts +0 -1
  1558. package/dist/foundation/hooks/useTypeahead/index.d.ts +0 -1
  1559. package/dist/foundation/hooks/useTypeahead/useTypeahead.d.ts +0 -42
  1560. package/dist/foundation/http/Page.d.ts +0 -47
  1561. package/dist/foundation/http/temporalReviver.d.ts +0 -9
  1562. package/dist/foundation/i18n/FormattedRelative.vue.d.ts +0 -10
  1563. package/dist/foundation/i18n/LocaleContext.d.ts +0 -35
  1564. package/dist/foundation/i18n/LocaleProvider.vue.d.ts +0 -18
  1565. package/dist/foundation/icons/Icon.vue.d.ts +0 -40
  1566. package/dist/foundation/icons/Spinner.vue.d.ts +0 -7
  1567. package/dist/foundation/media/MediaStreamResult.d.ts +0 -45
  1568. package/dist/foundation/net/UseEventStream.d.ts +0 -25
  1569. package/dist/foundation/net/UsePolling.d.ts +0 -26
  1570. package/dist/foundation/net/UseSocket.d.ts +0 -32
  1571. package/dist/foundation/notifications/UseNotificationPermission.d.ts +0 -27
  1572. package/dist/foundation/notifications/UsePermissionState.d.ts +0 -14
  1573. package/dist/foundation/observers/UseInView.d.ts +0 -41
  1574. package/dist/foundation/observers/UseIntersectionObserver.d.ts +0 -18
  1575. package/dist/foundation/observers/UseMutationObserver.d.ts +0 -21
  1576. package/dist/foundation/screen/ScreenResult.d.ts +0 -38
  1577. package/dist/foundation/screen/UseFullscreen.d.ts +0 -28
  1578. package/dist/foundation/screen/UseOrientation.d.ts +0 -28
  1579. package/dist/foundation/screen/UseWakeLock.d.ts +0 -18
  1580. package/dist/foundation/selection/Filter.d.ts +0 -71
  1581. package/dist/foundation/selection/Selection.d.ts +0 -116
  1582. package/dist/foundation/selection/Sort.d.ts +0 -69
  1583. package/dist/foundation/selection/UseFilters.d.ts +0 -34
  1584. package/dist/foundation/selection/UseSelection.d.ts +0 -54
  1585. package/dist/foundation/selection/UseSort.d.ts +0 -36
  1586. package/dist/foundation/shortcuts/UseHotkeys.d.ts +0 -34
  1587. package/dist/foundation/speech/UseSpeechRecognition.d.ts +0 -45
  1588. package/dist/foundation/speech/UseSpeechSynthesis.d.ts +0 -37
  1589. package/dist/foundation/storage/zustand/ZustandPersist.d.ts +0 -36
  1590. package/dist/foundation/storage/zustand/index.d.ts +0 -1
  1591. package/dist/foundation/storage/zustand/index.js.map +0 -1
  1592. package/dist/foundation/sync/LeaderElection.d.ts +0 -88
  1593. package/dist/foundation/sync/SyncChannel.d.ts +0 -65
  1594. package/dist/foundation/sync/UseBroadcastState.d.ts +0 -31
  1595. package/dist/foundation/sync/UseLeaderElection.d.ts +0 -25
  1596. package/dist/foundation/sync/UseSyncChannel.d.ts +0 -16
  1597. package/dist/foundation/sync/index.d.ts +0 -7
  1598. package/dist/foundation/sync/index.js +0 -484
  1599. package/dist/foundation/sync/index.js.map +0 -1
  1600. package/dist/foundation/themes/pool.d.ts +0 -3
  1601. package/dist/foundation/themes/registry.d.ts +0 -16
  1602. package/dist/foundation/themes/validate.d.ts +0 -25
  1603. package/dist/foundation/themes/validated.d.ts +0 -3
  1604. package/dist/foundation/undo/HistoryCore.d.ts +0 -92
  1605. package/dist/foundation/undo/UseUndoHistory.d.ts +0 -66
  1606. package/dist/foundation/undo/UseUndoShortcuts.d.ts +0 -20
  1607. package/dist/foundation/undo/index.d.ts +0 -5
  1608. package/dist/foundation/undo/index.js +0 -361
  1609. package/dist/foundation/undo/index.js.map +0 -1
  1610. package/dist/foundation/utils/Align/index.d.ts +0 -1
  1611. package/dist/foundation/utils/ColorExtensions/ColorExtensions.d.ts +0 -51
  1612. package/dist/foundation/utils/ColorExtensions/index.d.ts +0 -1
  1613. package/dist/foundation/utils/Compare/index.d.ts +0 -1
  1614. package/dist/foundation/utils/CornerPosition/index.d.ts +0 -1
  1615. package/dist/foundation/utils/CssExtensions/CssExtensions.d.ts +0 -115
  1616. package/dist/foundation/utils/CssExtensions/index.d.ts +0 -1
  1617. package/dist/foundation/utils/ElementTag/index.d.ts +0 -1
  1618. package/dist/foundation/utils/Environment/Environment.d.ts +0 -12
  1619. package/dist/foundation/utils/Environment/index.d.ts +0 -1
  1620. package/dist/foundation/utils/Equality/index.d.ts +0 -1
  1621. package/dist/foundation/utils/HtmlExtensions/index.d.ts +0 -1
  1622. package/dist/foundation/utils/KeyboardExtensions/index.d.ts +0 -1
  1623. package/dist/foundation/utils/Layers/Layers.d.ts +0 -35
  1624. package/dist/foundation/utils/Layers/index.d.ts +0 -1
  1625. package/dist/foundation/utils/OptionalExtensions/index.d.ts +0 -1
  1626. package/dist/foundation/utils/Orientation/index.d.ts +0 -1
  1627. package/dist/foundation/utils/OverlayPosition/index.d.ts +0 -1
  1628. package/dist/foundation/utils/PressExtensions/index.d.ts +0 -1
  1629. package/dist/foundation/utils/ProgressTone/index.d.ts +0 -1
  1630. package/dist/foundation/utils/Severity/index.d.ts +0 -1
  1631. package/dist/foundation/utils/Side/index.d.ts +0 -1
  1632. package/dist/foundation/utils/StatusTone/index.d.ts +0 -1
  1633. package/dist/foundation/utils/StyleTokens/index.d.ts +0 -1
  1634. package/dist/foundation/utils/SurfaceStyles/SurfaceStyles.d.ts +0 -397
  1635. package/dist/foundation/utils/SurfaceStyles/index.d.ts +0 -1
  1636. package/dist/foundation/utils/Tones/Tones.d.ts +0 -21
  1637. package/dist/foundation/utils/Tones/index.d.ts +0 -1
  1638. package/dist/foundation/utils/TransitionExtensions/index.d.ts +0 -1
  1639. package/dist/foundation/utils/cn/index.d.ts +0 -1
  1640. package/dist/foundation/utils/composeEventHandlers/index.d.ts +0 -1
  1641. package/dist/foundation/utils/dataAttr/index.d.ts +0 -1
  1642. package/dist/foundation/utils/index.d.ts +0 -33
  1643. package/dist/foundation/utils/index.js +0 -67
  1644. package/dist/foundation/utils/index.js.map +0 -1
  1645. package/dist/foundation/utils/polymorphic/index.d.ts +0 -1
  1646. package/dist/foundation/utils/polymorphic/polymorphic.d.ts +0 -29
  1647. package/dist/foundation/utils/tv/index.d.ts +0 -1
  1648. package/dist/foundation/validation/Composites.d.ts +0 -62
  1649. package/dist/foundation/validation/Messages.d.ts +0 -69
  1650. package/dist/foundation/validation/ValidationError.d.ts +0 -14
  1651. package/dist/foundation/validation/ValidationResult.d.ts +0 -49
  1652. package/dist/foundation/validation/Validator.d.ts +0 -69
  1653. package/dist/foundation/validation/index.d.ts +0 -8
  1654. package/dist/foundation/validation/index.js +0 -512
  1655. package/dist/foundation/validation/index.js.map +0 -1
  1656. package/dist/presentation/actions/fab/FAB.variants.d.ts +0 -158
  1657. package/dist/presentation/actions/fab/FAB.vue.d.ts +0 -29
  1658. package/dist/presentation/actions/fab/index.d.ts +0 -2
  1659. package/dist/presentation/actions/link/Link.variants.d.ts +0 -111
  1660. package/dist/presentation/actions/link/Link.vue.d.ts +0 -24
  1661. package/dist/presentation/actions/link/index.d.ts +0 -2
  1662. package/dist/presentation/actions/optionTile/OptionTile.variants.d.ts +0 -10
  1663. package/dist/presentation/actions/optionTile/OptionTile.vue.d.ts +0 -31
  1664. package/dist/presentation/actions/optionTile/index.d.ts +0 -2
  1665. package/dist/presentation/actions/optionTileGroup/OptionTileGroup.variants.d.ts +0 -76
  1666. package/dist/presentation/actions/optionTileGroup/OptionTileGroup.vue.d.ts +0 -27
  1667. package/dist/presentation/actions/optionTileGroup/index.d.ts +0 -2
  1668. package/dist/presentation/actions/segmentedControl/SegmentedControl.vue.d.ts +0 -20
  1669. package/dist/presentation/actions/segmentedControl/index.d.ts +0 -1
  1670. package/dist/presentation/actions/speedDial/SpeedDial.vue.d.ts +0 -28
  1671. package/dist/presentation/actions/speedDial/SpeedDialAction.vue.d.ts +0 -40
  1672. package/dist/presentation/actions/speedDial/SpeedDialContext.d.ts +0 -36
  1673. package/dist/presentation/actions/speedDial/SpeedDialList.vue.d.ts +0 -13
  1674. package/dist/presentation/actions/speedDial/SpeedDialTrigger.vue.d.ts +0 -30
  1675. package/dist/presentation/actions/speedDial/index.d.ts +0 -166
  1676. package/dist/presentation/actions/toggleButton/ToggleButton.variants.d.ts +0 -141
  1677. package/dist/presentation/actions/toggleButton/ToggleButton.vue.d.ts +0 -59
  1678. package/dist/presentation/actions/toggleButton/index.d.ts +0 -2
  1679. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.variants.d.ts +0 -33
  1680. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.vue.d.ts +0 -72
  1681. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroupContext.d.ts +0 -24
  1682. package/dist/presentation/actions/toggleButtonGroup/index.d.ts +0 -3
  1683. package/dist/presentation/display/accordion/Accordion.vue.d.ts +0 -45
  1684. package/dist/presentation/display/accordion/AccordionContent.vue.d.ts +0 -14
  1685. package/dist/presentation/display/accordion/AccordionContext.d.ts +0 -29
  1686. package/dist/presentation/display/accordion/AccordionItem.vue.d.ts +0 -20
  1687. package/dist/presentation/display/accordion/AccordionTrigger.vue.d.ts +0 -14
  1688. package/dist/presentation/display/accordion/index.d.ts +0 -5
  1689. package/dist/presentation/display/activityFeed/ActivityFeed.vue.d.ts +0 -18
  1690. package/dist/presentation/display/activityFeed/ActivityItem.vue.d.ts +0 -29
  1691. package/dist/presentation/display/activityFeed/index.d.ts +0 -2
  1692. package/dist/presentation/display/animatedNumber/AnimatedNumber.vue.d.ts +0 -34
  1693. package/dist/presentation/display/animatedNumber/index.d.ts +0 -1
  1694. package/dist/presentation/display/annotationMarker/AnnotationMarker.vue.d.ts +0 -43
  1695. package/dist/presentation/display/annotationMarker/index.d.ts +0 -1
  1696. package/dist/presentation/display/audioWaveform/AudioWaveform.vue.d.ts +0 -57
  1697. package/dist/presentation/display/audioWaveform/index.d.ts +0 -1
  1698. package/dist/presentation/display/chatBubble/ChatBubble.vue.d.ts +0 -79
  1699. package/dist/presentation/display/chatBubble/index.d.ts +0 -1
  1700. package/dist/presentation/display/code/Code.variants.d.ts +0 -48
  1701. package/dist/presentation/display/code/Code.vue.d.ts +0 -17
  1702. package/dist/presentation/display/code/index.d.ts +0 -2
  1703. package/dist/presentation/display/collapsible/Collapsible.vue.d.ts +0 -40
  1704. package/dist/presentation/display/collapsible/CollapsibleContent.vue.d.ts +0 -18
  1705. package/dist/presentation/display/collapsible/CollapsibleContentInner.vue.d.ts +0 -23
  1706. package/dist/presentation/display/collapsible/CollapsibleContext.d.ts +0 -17
  1707. package/dist/presentation/display/collapsible/CollapsibleTrigger.vue.d.ts +0 -18
  1708. package/dist/presentation/display/collapsible/index.d.ts +0 -4
  1709. package/dist/presentation/display/commentThread/Comment.vue.d.ts +0 -39
  1710. package/dist/presentation/display/commentThread/CommentThread.vue.d.ts +0 -14
  1711. package/dist/presentation/display/commentThread/index.d.ts +0 -2
  1712. package/dist/presentation/display/confetti/Confetti.vue.d.ts +0 -40
  1713. package/dist/presentation/display/confetti/index.d.ts +0 -1
  1714. package/dist/presentation/display/countUp/CountUp.vue.d.ts +0 -40
  1715. package/dist/presentation/display/countUp/index.d.ts +0 -1
  1716. package/dist/presentation/display/dataGrid/CellEditor.vue.d.ts +0 -29
  1717. package/dist/presentation/display/dataGrid/DataGrid.vue.d.ts +0 -47
  1718. package/dist/presentation/display/dataGrid/DataGridTypes.d.ts +0 -65
  1719. package/dist/presentation/display/dataGrid/index.d.ts +0 -2
  1720. package/dist/presentation/display/descriptionList/DescriptionList.vue.d.ts +0 -54
  1721. package/dist/presentation/display/descriptionList/index.d.ts +0 -1
  1722. package/dist/presentation/display/eventCalendar/AgendaView.vue.d.ts +0 -13
  1723. package/dist/presentation/display/eventCalendar/EventCalendar.vue.d.ts +0 -41
  1724. package/dist/presentation/display/eventCalendar/EventCalendarTypes.d.ts +0 -28
  1725. package/dist/presentation/display/eventCalendar/MonthView.vue.d.ts +0 -17
  1726. package/dist/presentation/display/eventCalendar/TimeGridView.vue.d.ts +0 -18
  1727. package/dist/presentation/display/eventCalendar/index.d.ts +0 -2
  1728. package/dist/presentation/display/eyebrow/Eyebrow.vue.d.ts +0 -32
  1729. package/dist/presentation/display/eyebrow/index.d.ts +0 -1
  1730. package/dist/presentation/display/gantt/Gantt.vue.d.ts +0 -58
  1731. package/dist/presentation/display/gantt/index.d.ts +0 -1
  1732. package/dist/presentation/display/heatmapCalendar/HeatmapCalendar.vue.d.ts +0 -61
  1733. package/dist/presentation/display/heatmapCalendar/index.d.ts +0 -1
  1734. package/dist/presentation/display/highlight/Highlight.vue.d.ts +0 -20
  1735. package/dist/presentation/display/highlight/index.d.ts +0 -1
  1736. package/dist/presentation/display/image/Image.vue.d.ts +0 -15
  1737. package/dist/presentation/display/image/index.d.ts +0 -1
  1738. package/dist/presentation/display/kbd/Kbd.vue.d.ts +0 -13
  1739. package/dist/presentation/display/kbd/index.d.ts +0 -1
  1740. package/dist/presentation/display/keyboardShortcut/KeyboardShortcut.vue.d.ts +0 -13
  1741. package/dist/presentation/display/keyboardShortcut/index.d.ts +0 -1
  1742. package/dist/presentation/display/list/List.variants.d.ts +0 -112
  1743. package/dist/presentation/display/list/List.vue.d.ts +0 -23
  1744. package/dist/presentation/display/list/ListItem.vue.d.ts +0 -23
  1745. package/dist/presentation/display/list/index.d.ts +0 -3
  1746. package/dist/presentation/display/mark/Mark.vue.d.ts +0 -13
  1747. package/dist/presentation/display/mark/index.d.ts +0 -1
  1748. package/dist/presentation/display/marquee/Marquee.vue.d.ts +0 -39
  1749. package/dist/presentation/display/marquee/index.d.ts +0 -1
  1750. package/dist/presentation/display/messageList/DaySeparator.vue.d.ts +0 -17
  1751. package/dist/presentation/display/messageList/MessageList.vue.d.ts +0 -39
  1752. package/dist/presentation/display/messageList/index.d.ts +0 -2
  1753. package/dist/presentation/display/metaInline/MetaInline.vue.d.ts +0 -21
  1754. package/dist/presentation/display/metaInline/index.d.ts +0 -1
  1755. package/dist/presentation/display/metricChip/MetricChip.vue.d.ts +0 -54
  1756. package/dist/presentation/display/metricChip/index.d.ts +0 -1
  1757. package/dist/presentation/display/nodeEditor/NodeEditor.vue.d.ts +0 -58
  1758. package/dist/presentation/display/notificationDot/NotificationDot.vue.d.ts +0 -47
  1759. package/dist/presentation/display/notificationDot/index.d.ts +0 -1
  1760. package/dist/presentation/display/pdfViewer/PDFViewer.vue.d.ts +0 -40
  1761. package/dist/presentation/display/quote/Quote.vue.d.ts +0 -13
  1762. package/dist/presentation/display/quote/index.d.ts +0 -1
  1763. package/dist/presentation/display/scrollReveal/ScrollReveal.vue.d.ts +0 -50
  1764. package/dist/presentation/display/scrollReveal/index.d.ts +0 -1
  1765. package/dist/presentation/display/sectionHeader/SectionHeader.vue.d.ts +0 -49
  1766. package/dist/presentation/display/sectionHeader/index.d.ts +0 -1
  1767. package/dist/presentation/display/separator/Separator.vue.d.ts +0 -14
  1768. package/dist/presentation/display/separator/index.d.ts +0 -1
  1769. package/dist/presentation/display/snippet/Snippet.vue.d.ts +0 -21
  1770. package/dist/presentation/display/snippet/index.d.ts +0 -1
  1771. package/dist/presentation/display/sortable/Sortable.vue.d.ts +0 -18
  1772. package/dist/presentation/display/sortable/SortableContext.d.ts +0 -22
  1773. package/dist/presentation/display/sortable/SortableHandle.vue.d.ts +0 -14
  1774. package/dist/presentation/display/sortable/SortableItem.vue.d.ts +0 -16
  1775. package/dist/presentation/display/sortable/index.d.ts +0 -4
  1776. package/dist/presentation/display/stat/Stat.vue.d.ts +0 -48
  1777. package/dist/presentation/display/stat/index.d.ts +0 -1
  1778. package/dist/presentation/display/swipeActions/SwipeActions.vue.d.ts +0 -28
  1779. package/dist/presentation/display/swipeActions/index.d.ts +0 -1
  1780. package/dist/presentation/display/tabs/Tabs.vue.d.ts +0 -33
  1781. package/dist/presentation/display/tabs/TabsContext.d.ts +0 -34
  1782. package/dist/presentation/display/tabs/TabsList.vue.d.ts +0 -256
  1783. package/dist/presentation/display/tabs/TabsPanel.vue.d.ts +0 -16
  1784. package/dist/presentation/display/tabs/TabsTab.vue.d.ts +0 -20
  1785. package/dist/presentation/display/tabs/index.d.ts +0 -5
  1786. package/dist/presentation/display/tilt/Tilt.vue.d.ts +0 -31
  1787. package/dist/presentation/display/tilt/index.d.ts +0 -1
  1788. package/dist/presentation/display/tooltip/Tooltip.vue.d.ts +0 -53
  1789. package/dist/presentation/display/tree/Tree.vue.d.ts +0 -275
  1790. package/dist/presentation/display/tree/TreeContext.d.ts +0 -29
  1791. package/dist/presentation/display/tree/TreeGroup.vue.d.ts +0 -28
  1792. package/dist/presentation/display/tree/TreeGroupContent.vue.d.ts +0 -17
  1793. package/dist/presentation/display/tree/TreeItem.vue.d.ts +0 -20
  1794. package/dist/presentation/display/tree/TreeNodeRow.vue.d.ts +0 -27
  1795. package/dist/presentation/display/tree/index.d.ts +0 -4
  1796. package/dist/presentation/display/typewriter/Typewriter.vue.d.ts +0 -32
  1797. package/dist/presentation/display/typewriter/index.d.ts +0 -1
  1798. package/dist/presentation/feedback/feedbackToasts/FeedbackToasts.vue.d.ts +0 -18
  1799. package/dist/presentation/feedback/feedbackToasts/index.d.ts +0 -1
  1800. package/dist/presentation/feedback/liveCursor/LiveCursor.vue.d.ts +0 -33
  1801. package/dist/presentation/feedback/liveCursor/index.d.ts +0 -1
  1802. package/dist/presentation/feedback/notificationCenter/NotificationCenter.vue.d.ts +0 -30
  1803. package/dist/presentation/feedback/notificationCenter/NotificationItem.vue.d.ts +0 -40
  1804. package/dist/presentation/feedback/notificationCenter/index.d.ts +0 -2
  1805. package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklist.vue.d.ts +0 -56
  1806. package/dist/presentation/feedback/onboardingChecklist/OnboardingChecklistTask.vue.d.ts +0 -27
  1807. package/dist/presentation/feedback/onboardingChecklist/index.d.ts +0 -3
  1808. package/dist/presentation/feedback/progressCircle/ProgressCircle.vue.d.ts +0 -21
  1809. package/dist/presentation/feedback/progressCircle/index.d.ts +0 -1
  1810. package/dist/presentation/feedback/progressSteps/ProgressSteps.vue.d.ts +0 -16
  1811. package/dist/presentation/feedback/progressSteps/index.d.ts +0 -1
  1812. package/dist/presentation/feedback/skeleton/Skeleton.variants.d.ts +0 -57
  1813. package/dist/presentation/feedback/skeleton/Skeleton.vue.d.ts +0 -17
  1814. package/dist/presentation/feedback/skeleton/index.d.ts +0 -2
  1815. package/dist/presentation/feedback/toaster/Toaster.vue.d.ts +0 -84
  1816. package/dist/presentation/feedback/toaster/index.d.ts +0 -1
  1817. package/dist/presentation/feedback/tour/Tour.vue.d.ts +0 -45
  1818. package/dist/presentation/feedback/tour/index.d.ts +0 -1
  1819. package/dist/presentation/forms/addressForm/AddressForm.vue.d.ts +0 -54
  1820. package/dist/presentation/forms/addressForm/index.d.ts +0 -1
  1821. package/dist/presentation/forms/calendar/Calendar.vue.d.ts +0 -33
  1822. package/dist/presentation/forms/calendar/index.d.ts +0 -1
  1823. package/dist/presentation/forms/characterCount/CharacterCount.vue.d.ts +0 -15
  1824. package/dist/presentation/forms/characterCount/index.d.ts +0 -1
  1825. package/dist/presentation/forms/chatComposer/ChatComposer.vue.d.ts +0 -74
  1826. package/dist/presentation/forms/chatComposer/index.d.ts +0 -1
  1827. package/dist/presentation/forms/checkbox/Checkbox.variants.d.ts +0 -133
  1828. package/dist/presentation/forms/checkbox/Checkbox.vue.d.ts +0 -48
  1829. package/dist/presentation/forms/checkbox/index.d.ts +0 -2
  1830. package/dist/presentation/forms/colorField/ColorField.vue.d.ts +0 -44
  1831. package/dist/presentation/forms/colorField/index.d.ts +0 -1
  1832. package/dist/presentation/forms/colorSlider/ColorSlider.vue.d.ts +0 -47
  1833. package/dist/presentation/forms/colorSlider/index.d.ts +0 -1
  1834. package/dist/presentation/forms/colorSwatch/ColorSwatch.variants.d.ts +0 -186
  1835. package/dist/presentation/forms/colorSwatch/ColorSwatch.vue.d.ts +0 -33
  1836. package/dist/presentation/forms/colorSwatch/index.d.ts +0 -2
  1837. package/dist/presentation/forms/colorWheel/ColorWheel.vue.d.ts +0 -34
  1838. package/dist/presentation/forms/colorWheel/index.d.ts +0 -1
  1839. package/dist/presentation/forms/combobox/Combobox.vue.d.ts +0 -60
  1840. package/dist/presentation/forms/combobox/ComboboxContent.vue.d.ts +0 -39
  1841. package/dist/presentation/forms/combobox/ComboboxContext.d.ts +0 -53
  1842. package/dist/presentation/forms/combobox/ComboboxEmpty.vue.d.ts +0 -10
  1843. package/dist/presentation/forms/combobox/ComboboxGroup.vue.d.ts +0 -19
  1844. package/dist/presentation/forms/combobox/ComboboxInput.vue.d.ts +0 -12
  1845. package/dist/presentation/forms/combobox/ComboboxItem.vue.d.ts +0 -28
  1846. package/dist/presentation/forms/combobox/ComboboxSeparator.vue.d.ts +0 -3
  1847. package/dist/presentation/forms/combobox/index.d.ts +0 -8
  1848. package/dist/presentation/forms/dateField/DateField.vue.d.ts +0 -42
  1849. package/dist/presentation/forms/dateField/index.d.ts +0 -1
  1850. package/dist/presentation/forms/dateTimeField/DateTimeField.vue.d.ts +0 -42
  1851. package/dist/presentation/forms/dateTimeField/index.d.ts +0 -1
  1852. package/dist/presentation/forms/editable/Editable.vue.d.ts +0 -60
  1853. package/dist/presentation/forms/editable/EditableCancel.vue.d.ts +0 -12
  1854. package/dist/presentation/forms/editable/EditableContext.d.ts +0 -37
  1855. package/dist/presentation/forms/editable/EditableInput.vue.d.ts +0 -12
  1856. package/dist/presentation/forms/editable/EditablePreview.vue.d.ts +0 -7
  1857. package/dist/presentation/forms/editable/EditableSubmit.vue.d.ts +0 -14
  1858. package/dist/presentation/forms/editable/index.d.ts +0 -7
  1859. package/dist/presentation/forms/emojiPicker/useEmojiPicker.d.ts +0 -45
  1860. package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.variants.d.ts +0 -23
  1861. package/dist/presentation/forms/emojiSizeControl/EmojiSizeControl.vue.d.ts +0 -32
  1862. package/dist/presentation/forms/emojiSizeControl/index.d.ts +0 -2
  1863. package/dist/presentation/forms/fieldset/Fieldset.vue.d.ts +0 -22
  1864. package/dist/presentation/forms/fieldset/index.d.ts +0 -1
  1865. package/dist/presentation/forms/fileUpload/FileUpload.vue.d.ts +0 -60
  1866. package/dist/presentation/forms/fileUpload/index.d.ts +0 -1
  1867. package/dist/presentation/forms/formErrorMessage/FormErrorMessage.vue.d.ts +0 -24
  1868. package/dist/presentation/forms/formErrorMessage/index.d.ts +0 -1
  1869. package/dist/presentation/forms/formHelperText/FormHelperText.vue.d.ts +0 -19
  1870. package/dist/presentation/forms/formHelperText/index.d.ts +0 -1
  1871. package/dist/presentation/forms/inputAddon/InputAddon.vue.d.ts +0 -20
  1872. package/dist/presentation/forms/inputAddon/index.d.ts +0 -1
  1873. package/dist/presentation/forms/inputGroup/InputGroup.vue.d.ts +0 -19
  1874. package/dist/presentation/forms/jsonEditor/JSONEditor.vue.d.ts +0 -49
  1875. package/dist/presentation/forms/jsonEditor/JSONEditorContext.d.ts +0 -28
  1876. package/dist/presentation/forms/jsonEditor/JSONEditorHelpers.d.ts +0 -6
  1877. package/dist/presentation/forms/jsonEditor/JSONEditorTextView.vue.d.ts +0 -14
  1878. package/dist/presentation/forms/jsonEditor/JSONEditorTreeNode.vue.d.ts +0 -15
  1879. package/dist/presentation/forms/jsonEditor/JSONEditorTreeView.vue.d.ts +0 -8
  1880. package/dist/presentation/forms/knob/Knob.vue.d.ts +0 -75
  1881. package/dist/presentation/forms/knob/index.d.ts +0 -1
  1882. package/dist/presentation/forms/label/Label.vue.d.ts +0 -34
  1883. package/dist/presentation/forms/label/index.d.ts +0 -1
  1884. package/dist/presentation/forms/labeledInput/LabeledInput.vue.d.ts +0 -23
  1885. package/dist/presentation/forms/labeledInput/index.d.ts +0 -2
  1886. package/dist/presentation/forms/legend/Legend.vue.d.ts +0 -21
  1887. package/dist/presentation/forms/legend/index.d.ts +0 -1
  1888. package/dist/presentation/forms/listbox/Listbox.variants.d.ts +0 -71
  1889. package/dist/presentation/forms/listbox/Listbox.vue.d.ts +0 -70
  1890. package/dist/presentation/forms/listbox/ListboxContext.d.ts +0 -47
  1891. package/dist/presentation/forms/listbox/ListboxEmpty.vue.d.ts +0 -10
  1892. package/dist/presentation/forms/listbox/ListboxGroup.vue.d.ts +0 -20
  1893. package/dist/presentation/forms/listbox/ListboxItem.vue.d.ts +0 -24
  1894. package/dist/presentation/forms/listbox/ListboxSeparator.vue.d.ts +0 -3
  1895. package/dist/presentation/forms/listbox/index.d.ts +0 -7
  1896. package/dist/presentation/forms/multiSelect/MultiSelect.vue.d.ts +0 -52
  1897. package/dist/presentation/forms/multiSelect/MultiSelectContent.vue.d.ts +0 -31
  1898. package/dist/presentation/forms/multiSelect/MultiSelectContext.d.ts +0 -38
  1899. package/dist/presentation/forms/multiSelect/MultiSelectItem.vue.d.ts +0 -25
  1900. package/dist/presentation/forms/multiSelect/MultiSelectTags.vue.d.ts +0 -14
  1901. package/dist/presentation/forms/multiSelect/MultiSelectTrigger.vue.d.ts +0 -20
  1902. package/dist/presentation/forms/multiSelect/index.d.ts +0 -6
  1903. package/dist/presentation/forms/passwordStrength/PasswordStrength.vue.d.ts +0 -16
  1904. package/dist/presentation/forms/passwordStrength/index.d.ts +0 -1
  1905. package/dist/presentation/forms/radio/Radio.vue.d.ts +0 -35
  1906. package/dist/presentation/forms/radio/index.d.ts +0 -1
  1907. package/dist/presentation/forms/rangeCalendar/RangeCalendar.vue.d.ts +0 -37
  1908. package/dist/presentation/forms/rangeCalendar/index.d.ts +0 -1
  1909. package/dist/presentation/forms/select/Select.variants.d.ts +0 -263
  1910. package/dist/presentation/forms/select/Select.vue.d.ts +0 -69
  1911. package/dist/presentation/forms/select/SelectContent.vue.d.ts +0 -44
  1912. package/dist/presentation/forms/select/SelectContext.d.ts +0 -76
  1913. package/dist/presentation/forms/select/SelectItem.vue.d.ts +0 -33
  1914. package/dist/presentation/forms/select/SelectTrigger.vue.d.ts +0 -21
  1915. package/dist/presentation/forms/select/SelectValue.vue.d.ts +0 -22
  1916. package/dist/presentation/forms/select/index.d.ts +0 -7
  1917. package/dist/presentation/forms/slider/Slider.vue.d.ts +0 -38
  1918. package/dist/presentation/forms/slider/index.d.ts +0 -1
  1919. package/dist/presentation/forms/stepper/Stepper.vue.d.ts +0 -34
  1920. package/dist/presentation/forms/stepper/StepperContext.d.ts +0 -44
  1921. package/dist/presentation/forms/stepper/StepperList.vue.d.ts +0 -256
  1922. package/dist/presentation/forms/stepper/StepperPanel.vue.d.ts +0 -16
  1923. package/dist/presentation/forms/stepper/StepperStep.vue.d.ts +0 -23
  1924. package/dist/presentation/forms/stepper/index.d.ts +0 -5
  1925. package/dist/presentation/forms/switch/Switch.vue.d.ts +0 -35
  1926. package/dist/presentation/forms/switch/index.d.ts +0 -1
  1927. package/dist/presentation/forms/timeField/TimeField.vue.d.ts +0 -38
  1928. package/dist/presentation/forms/timeField/index.d.ts +0 -1
  1929. package/dist/presentation/forms/wizard/Wizard.vue.d.ts +0 -38
  1930. package/dist/presentation/forms/wizard/WizardContext.d.ts +0 -38
  1931. package/dist/presentation/forms/wizard/WizardFooter.vue.d.ts +0 -29
  1932. package/dist/presentation/forms/wizard/WizardStep.vue.d.ts +0 -29
  1933. package/dist/presentation/forms/wizard/WizardSteps.vue.d.ts +0 -7
  1934. package/dist/presentation/forms/wizard/index.d.ts +0 -6
  1935. package/dist/presentation/layout/aspectRatio/AspectRatio.vue.d.ts +0 -18
  1936. package/dist/presentation/layout/aspectRatio/index.d.ts +0 -1
  1937. package/dist/presentation/layout/box/Box.vue.d.ts +0 -19
  1938. package/dist/presentation/layout/box/index.d.ts +0 -1
  1939. package/dist/presentation/layout/center/Center.vue.d.ts +0 -13
  1940. package/dist/presentation/layout/center/index.d.ts +0 -1
  1941. package/dist/presentation/layout/cluster/Cluster.vue.d.ts +0 -22
  1942. package/dist/presentation/layout/cluster/index.d.ts +0 -1
  1943. package/dist/presentation/layout/container/Container.variants.d.ts +0 -84
  1944. package/dist/presentation/layout/container/Container.vue.d.ts +0 -21
  1945. package/dist/presentation/layout/container/index.d.ts +0 -2
  1946. package/dist/presentation/layout/controlGroup/ControlGroup.variants.d.ts +0 -136
  1947. package/dist/presentation/layout/controlGroup/ControlGroup.vue.d.ts +0 -35
  1948. package/dist/presentation/layout/controlGroup/index.d.ts +0 -2
  1949. package/dist/presentation/layout/divider/Divider.variants.d.ts +0 -47
  1950. package/dist/presentation/layout/divider/Divider.vue.d.ts +0 -38
  1951. package/dist/presentation/layout/divider/index.d.ts +0 -2
  1952. package/dist/presentation/layout/flex/Flex.vue.d.ts +0 -18
  1953. package/dist/presentation/layout/flex/index.d.ts +0 -1
  1954. package/dist/presentation/layout/frame/Frame.vue.d.ts +0 -38
  1955. package/dist/presentation/layout/frame/index.d.ts +0 -1
  1956. package/dist/presentation/layout/hStack/HStack.vue.d.ts +0 -14
  1957. package/dist/presentation/layout/hStack/index.d.ts +0 -1
  1958. package/dist/presentation/layout/inline/Inline.vue.d.ts +0 -42
  1959. package/dist/presentation/layout/inline/index.d.ts +0 -1
  1960. package/dist/presentation/layout/overlay/Overlay.variants.d.ts +0 -231
  1961. package/dist/presentation/layout/overlay/Overlay.vue.d.ts +0 -64
  1962. package/dist/presentation/layout/overlay/index.d.ts +0 -2
  1963. package/dist/presentation/layout/pullToRefresh/PullToRefresh.vue.d.ts +0 -22
  1964. package/dist/presentation/layout/pullToRefresh/index.d.ts +0 -1
  1965. package/dist/presentation/layout/resizablePanels/ResizablePanel.vue.d.ts +0 -21
  1966. package/dist/presentation/layout/resizablePanels/ResizablePanels.vue.d.ts +0 -59
  1967. package/dist/presentation/layout/resizablePanels/ResizableSeparator.vue.d.ts +0 -10
  1968. package/dist/presentation/layout/resizablePanels/index.d.ts +0 -4
  1969. package/dist/presentation/layout/spacer/Spacer.vue.d.ts +0 -15
  1970. package/dist/presentation/layout/spacer/index.d.ts +0 -1
  1971. package/dist/presentation/layout/stack/Stack.variants.d.ts +0 -330
  1972. package/dist/presentation/layout/stack/Stack.vue.d.ts +0 -37
  1973. package/dist/presentation/layout/stack/index.d.ts +0 -2
  1974. package/dist/presentation/layout/surface/Surface.vue.d.ts +0 -39
  1975. package/dist/presentation/layout/surface/index.d.ts +0 -1
  1976. package/dist/presentation/layout/twoColumn/TwoColumn.vue.d.ts +0 -28
  1977. package/dist/presentation/layout/twoColumn/index.d.ts +0 -1
  1978. package/dist/presentation/layout/vStack/VStack.vue.d.ts +0 -14
  1979. package/dist/presentation/layout/vStack/index.d.ts +0 -1
  1980. package/dist/presentation/nav/NavHelpers.d.ts +0 -11
  1981. package/dist/presentation/nav/commandPalette/CommandPalette.vue.d.ts +0 -53
  1982. package/dist/presentation/nav/commandPalette/CommandPaletteContent.vue.d.ts +0 -17
  1983. package/dist/presentation/nav/commandPalette/CommandPaletteContext.d.ts +0 -42
  1984. package/dist/presentation/nav/commandPalette/CommandPaletteEmpty.vue.d.ts +0 -19
  1985. package/dist/presentation/nav/commandPalette/CommandPaletteGroup.vue.d.ts +0 -19
  1986. package/dist/presentation/nav/commandPalette/CommandPaletteInput.vue.d.ts +0 -14
  1987. package/dist/presentation/nav/commandPalette/CommandPaletteItem.vue.d.ts +0 -36
  1988. package/dist/presentation/nav/commandPalette/CommandPaletteList.vue.d.ts +0 -19
  1989. package/dist/presentation/nav/commandPalette/CommandPaletteSeparator.vue.d.ts +0 -12
  1990. package/dist/presentation/nav/commandPalette/index.d.ts +0 -9
  1991. package/dist/presentation/overlays/OverlayHelpers.d.ts +0 -11
  1992. package/dist/presentation/overlays/backdrop/Backdrop.vue.d.ts +0 -40
  1993. package/dist/presentation/overlays/backdrop/index.d.ts +0 -1
  1994. package/dist/query/CreateQueryClient.d.ts +0 -19
  1995. package/dist/query/Devtools.vue.d.ts +0 -10
  1996. package/dist/query/Endpoints.d.ts +0 -14
  1997. package/dist/query/PageHelpers.d.ts +0 -10
  1998. package/dist/query/Persistence.d.ts +0 -40
  1999. package/dist/query/QueryProgressBridge.d.ts +0 -16
  2000. package/dist/query/QueryProvider.vue.d.ts +0 -17
  2001. package/dist/query/QueryTestUtils.d.ts +0 -54
  2002. package/dist/query/ToApiError.d.ts +0 -7
  2003. package/dist/query/UseAppInfiniteQuery.d.ts +0 -45
  2004. package/dist/query/UseAppLazyQuery.d.ts +0 -40
  2005. package/dist/query/UseAppMutation.d.ts +0 -32
  2006. package/dist/query/UseAppPaginatedQuery.d.ts +0 -39
  2007. package/dist/query/UseAppQueries.d.ts +0 -43
  2008. package/dist/query/UseAppQuery.d.ts +0 -38
  2009. package/dist/query/UseAppSuspenseQuery.d.ts +0 -42
  2010. package/dist/query/UseOptimisticMutation.d.ts +0 -25
  2011. package/dist/query/UsePrefetchQuery.d.ts +0 -26
  2012. package/dist/query/UseQueryCache.d.ts +0 -31
  2013. package/dist/query/testing.d.ts +0 -1
  2014. package/dist/query/testing.js +0 -48
  2015. package/dist/query/testing.js.map +0 -1
  2016. package/dist/router/AppErrorBoundary.vue.d.ts +0 -26
  2017. package/dist/router/AppNavLink.vue.d.ts +0 -40
  2018. package/dist/router/CreateAppRouter.d.ts +0 -65
  2019. package/dist/router/DocumentMeta.d.ts +0 -9
  2020. package/dist/router/Guards.d.ts +0 -29
  2021. package/dist/router/LazyRoute.d.ts +0 -16
  2022. package/dist/router/NavigationProgress.vue.d.ts +0 -19
  2023. package/dist/router/NotFound.vue.d.ts +0 -10
  2024. package/dist/router/RouteAnnouncer.vue.d.ts +0 -10
  2025. package/dist/router/RouteConfig.d.ts +0 -82
  2026. package/dist/router/RouteHandles.d.ts +0 -24
  2027. package/dist/router/RoutePersistence.d.ts +0 -21
  2028. package/dist/router/UseBreadcrumbs.d.ts +0 -17
  2029. package/dist/router/UsePrefetch.d.ts +0 -19
  2030. /package/dist/{forms-engine → formsEngine}/StandardSchema.d.ts +0 -0
  2031. /package/dist/{forms-engine → formsEngine/adapters}/house/index.d.ts +0 -0
  2032. /package/dist/{forms-engine → formsEngine/adapters}/tanstack/index.d.ts +0 -0
  2033. /package/dist/foundation/{utils/TransitionExtensions → animation}/TransitionExtensions.d.ts +0 -0
  2034. /package/dist/foundation/{hooks/useDebounceHandler/useDebounceHandler.d.ts → async/UseDebounceHandler.d.ts} +0 -0
  2035. /package/dist/foundation/{sync → channels}/CreateSyncChannel.d.ts +0 -0
  2036. /package/dist/foundation/{sync → channels}/MemorySyncHub.d.ts +0 -0
  2037. /package/dist/foundation/{utils/Equality → collections}/Equality.d.ts +0 -0
  2038. /package/dist/foundation/device/{DisplayMode.d.ts → enums/DisplayMode.d.ts} +0 -0
  2039. /package/dist/foundation/device/{PointerType.d.ts → enums/PointerType.d.ts} +0 -0
  2040. /package/dist/foundation/device/{UseOnlineStatus.d.ts → hooks/UseOnlineStatus.d.ts} +0 -0
  2041. /package/dist/foundation/{hooks/useReducedMotion/useReducedMotion.d.ts → device/hooks/UseReducedMotion.d.ts} +0 -0
  2042. /package/dist/foundation/{utils/composeEventHandlers/composeEventHandlers.d.ts → dom/ComposeEventHandlers.d.ts} +0 -0
  2043. /package/dist/foundation/{utils/dataAttr/dataAttr.d.ts → dom/DataAttr.d.ts} +0 -0
  2044. /package/dist/foundation/{utils/PressExtensions → dom}/PressExtensions.d.ts +0 -0
  2045. /package/dist/foundation/{utils/ElementTag → dom/enums}/ElementTag.d.ts +0 -0
  2046. /package/dist/foundation/{utils/HtmlExtensions/HtmlExtensions.d.ts → dom/enums/HtmlValues.d.ts} +0 -0
  2047. /package/dist/foundation/{utils/KeyboardExtensions/KeyboardExtensions.d.ts → dom/enums/Key.d.ts} +0 -0
  2048. /package/dist/foundation/{hooks/useEventListener/useEventListener.d.ts → dom/hooks/UseEventListener.d.ts} +0 -0
  2049. /package/dist/foundation/{hooks/useFocusTrap/useFocusTrap.d.ts → dom/hooks/UseFocusTrap.d.ts} +0 -0
  2050. /package/dist/foundation/{hooks/useOutsideClick/useOutsideClick.d.ts → dom/hooks/UseOutsideClick.d.ts} +0 -0
  2051. /package/dist/foundation/{hooks/useScrollLock/useScrollLock.d.ts → dom/hooks/UseScrollLock.d.ts} +0 -0
  2052. /package/dist/foundation/{format → formatters}/Bytes.d.ts +0 -0
  2053. /package/dist/foundation/{format → formatters}/Count.d.ts +0 -0
  2054. /package/dist/foundation/{format → formatters}/Duration.d.ts +0 -0
  2055. /package/dist/foundation/{format → formatters}/index.d.ts +0 -0
  2056. /package/dist/foundation/geolocation/{Coordinates.d.ts → models/Coordinates.d.ts} +0 -0
  2057. /package/dist/foundation/gestures/{GestureAxis.d.ts → enums/GestureAxis.d.ts} +0 -0
  2058. /package/dist/foundation/gestures/{SwipeDirection.d.ts → enums/SwipeDirection.d.ts} +0 -0
  2059. /package/dist/foundation/{undo → history}/SnapshotHistory.d.ts +0 -0
  2060. /package/dist/foundation/{undo → history}/UndoHistory.d.ts +0 -0
  2061. /package/dist/foundation/http/{ApiResponse.d.ts → models/ApiResponse.d.ts} +0 -0
  2062. /package/dist/foundation/http/{DateBrands.d.ts → models/DateBrands.d.ts} +0 -0
  2063. /package/dist/foundation/http/{ProblemDetails.d.ts → models/ProblemDetails.d.ts} +0 -0
  2064. /package/dist/foundation/{utils/Compare → i18n}/Compare.d.ts +0 -0
  2065. /package/dist/foundation/{hooks/useId/useId.d.ts → identifiers/UseId.d.ts} +0 -0
  2066. /package/dist/foundation/{hooks/useResizeObserver/useResizeObserver.d.ts → observers/hooks/UseResizeObserver.d.ts} +0 -0
  2067. /package/dist/foundation/observers/{UseVisibility.d.ts → hooks/UseVisibility.d.ts} +0 -0
  2068. /package/dist/foundation/{utils/OptionalExtensions → optionals}/OptionalExtensions.d.ts +0 -0
  2069. /package/dist/foundation/resilience/{BackoffStrategy.d.ts → enums/BackoffStrategy.d.ts} +0 -0
  2070. /package/dist/foundation/resilience/{JitterStrategy.d.ts → enums/JitterStrategy.d.ts} +0 -0
  2071. /package/dist/foundation/selection/{Field.d.ts → models/Field.d.ts} +0 -0
  2072. /package/dist/foundation/{hooks/useEscape/useEscape.d.ts → shortcuts/hooks/UseEscape.d.ts} +0 -0
  2073. /package/dist/foundation/{hooks/useDisclosure/useDisclosure.d.ts → state/hooks/UseDisclosure.d.ts} +0 -0
  2074. /package/dist/foundation/storage/{zustand → adapters/zustand}/index.js +0 -0
  2075. /package/dist/foundation/{utils/cn/cn.d.ts → styles/Cn.d.ts} +0 -0
  2076. /package/dist/foundation/{utils/tv/tv.d.ts → styles/Tv.d.ts} +0 -0
  2077. /package/dist/foundation/{utils/Align → styles/enums}/Align.d.ts +0 -0
  2078. /package/dist/foundation/{utils/CornerPosition → styles/enums}/CornerPosition.d.ts +0 -0
  2079. /package/dist/foundation/{utils/Orientation → styles/enums}/Orientation.d.ts +0 -0
  2080. /package/dist/foundation/{utils/OverlayPosition → styles/enums}/OverlayPosition.d.ts +0 -0
  2081. /package/dist/foundation/{utils/ProgressTone → styles/enums}/ProgressTone.d.ts +0 -0
  2082. /package/dist/foundation/{utils/Severity → styles/enums}/Severity.d.ts +0 -0
  2083. /package/dist/foundation/{utils/Side → styles/enums}/Side.d.ts +0 -0
  2084. /package/dist/foundation/{utils/StatusTone → styles/enums}/StatusTone.d.ts +0 -0
  2085. /package/dist/foundation/{utils/StyleTokens → styles/enums}/StyleTokens.d.ts +0 -0
  2086. /package/dist/foundation/themes/{css.d.ts → Css.d.ts} +0 -0
  2087. /package/dist/foundation/themes/{generate.d.ts → Generate.d.ts} +0 -0
  2088. /package/dist/foundation/{validation → validators}/Formats.d.ts +0 -0
  2089. /package/dist/foundation/{validation → validators}/Primitives.d.ts +0 -0
  2090. /package/dist/foundation/{validation → validators}/StandardSchema.d.ts +0 -0
  2091. /package/dist/presentation/{display → forms}/nodeEditor/index.d.ts +0 -0
  2092. /package/dist/presentation/{forms → layout}/inputGroup/index.d.ts +0 -0
  2093. /package/dist/presentation/{display → overlays}/tooltip/index.d.ts +0 -0
  2094. /package/dist/query/{QueryPlugin.d.ts → adapters/tanstack/QueryPlugin.d.ts} +0 -0
  2095. /package/dist/router/{DocumentTitle.d.ts → adapters/vueRouter/DocumentTitle.d.ts} +0 -0
  2096. /package/dist/router/{PageViewTracker.d.ts → adapters/vueRouter/PageViewTracker.d.ts} +0 -0
  2097. /package/dist/router/{UseNavigationBlocker.d.ts → adapters/vueRouter/hooks/UseNavigationBlocker.d.ts} +0 -0
  2098. /package/dist/router/{UseRouteNavigating.d.ts → adapters/vueRouter/hooks/UseRouteNavigating.d.ts} +0 -0
  2099. /package/dist/router/{UseTypedSearchParams.d.ts → adapters/vueRouter/hooks/UseTypedSearchParams.d.ts} +0 -0
  2100. /package/dist/router/{UseNavigationProgress.d.ts → hooks/UseNavigationProgress.d.ts} +0 -0
@@ -1,14 +1,14 @@
1
1
  import { JitterStrategy, BackoffStrategy, shouldRetry, computeRetryDelay } from "../resilience/index.js";
2
- import { t as toError } from "../../chunks/ToError-CyTBsmLO.js";
3
- import { shallowRef, toValue, onMounted, watch, onScopeDispose } from "vue";
2
+ import { t as toError } from "../../chunks/ToError-vXncXe19.js";
3
+ import { shallowRef, toValue, onMounted, watch, onScopeDispose, unref } from "vue";
4
4
  const ConnectionState = {
5
5
  /** Refers to a first connection attempt in flight — nothing has been established yet. */
6
6
  Connecting: "connecting",
7
7
  /** Refers to an established connection that is passing traffic. */
8
8
  Open: "open",
9
- /** Refers to a dropped connection with a retry pending or in flight — the distinction the wire ready-state cannot express. */
9
+ /** Refers to a dropped connection with a retry pending or in flight — what the wire ready-state cannot express. */
10
10
  Reconnecting: "reconnecting",
11
- /** Refers to a connection that is down and not coming back — closed by the caller, unsupported, or out of retries. */
11
+ /** Refers to a connection down for good — closed by the caller, unsupported, or out of retries. */
12
12
  Closed: "closed"
13
13
  };
14
14
  const EventSourceReadyState = {
@@ -388,7 +388,9 @@ function createSocketClient(url, options = {}) {
388
388
  on("open", () => {
389
389
  scheduler.reset();
390
390
  setState(ConnectionState.Open);
391
+ if (closedByCaller || connection !== target) return;
391
392
  onOpen?.();
393
+ if (closedByCaller || connection !== target) return;
392
394
  flushQueue(target);
393
395
  startHeartbeat();
394
396
  });
@@ -793,7 +795,7 @@ function usePolling(fn, options = {}) {
793
795
  function build() {
794
796
  teardown();
795
797
  const current = toValue(options);
796
- const next = createPoller(() => toValue(fn)(), {
798
+ const next = createPoller(() => unref(fn)(), {
797
799
  ...current,
798
800
  intervalMs: current.intervalMs,
799
801
  onStateChange: (value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/foundation/net/ConnectionState.ts","../../../src/foundation/net/Reconnect.ts","../../../src/foundation/net/CreateEventStream.ts","../../../src/foundation/net/UseEventStream.ts","../../../src/foundation/net/CreateSocketClient.ts","../../../src/foundation/net/UseSocket.ts","../../../src/foundation/net/Liveness.ts","../../../src/foundation/net/CreatePoller.ts","../../../src/foundation/net/UsePolling.ts"],"sourcesContent":["// The connection vocabulary shared by every long-lived transport in this slice, plus the two sets of WIRE\n// ready-state numbers the platform uses.\n//\n// WHY A SEPARATE STATE FROM THE WIRE NUMBER: `EventSource.readyState` and `WebSocket.readyState` are both\n// small integers, they overlap numerically, and they mean DIFFERENT things — `2` is `CLOSED` for an\n// `EventSource` and `CLOSING` for a `WebSocket`. Worse, neither can express \"the socket is down and this\n// wrapper is waiting out a backoff delay before the next attempt\", which is the state a UI most wants to\n// render (\"reconnecting…\"). `EventSource` reports that situation as `CONNECTING`, indistinguishable from the\n// very first connect. So consumers get this string union and never see a raw integer.\n//\n// WHY THE NUMBERS ARE SPELLED OUT HERE RATHER THAN READ OFF THE GLOBALS: `WebSocket.OPEN` is a static member\n// of a class that does not exist under SSR, in a node test, or in a browser with the API disabled. Reading it\n// at module scope is a `ReferenceError` at import time — the exact failure this slice promises never to have.\n// The values are fixed by the WHATWG spec and cannot drift, so hardcoding them is both safe and the only\n// SSR-correct option.\n\n/** Describes a long-lived connection's state, uniformly across SSE, WebSocket, and polling. */\nexport const ConnectionState = {\n /** Refers to a first connection attempt in flight — nothing has been established yet. */\n Connecting: 'connecting',\n /** Refers to an established connection that is passing traffic. */\n Open: 'open',\n /** Refers to a dropped connection with a retry pending or in flight — the distinction the wire ready-state cannot express. */\n Reconnecting: 'reconnecting',\n /** Refers to a connection that is down and not coming back — closed by the caller, unsupported, or out of retries. */\n Closed: 'closed',\n} as const;\n\nexport type ConnectionState = (typeof ConnectionState)[keyof typeof ConnectionState];\n\n/**\n * Provides the `EventSource.readyState` values from the WHATWG spec. Note `Closed` here is TERMINAL — the\n * browser only reports it once it has abandoned its own reconnection, which is precisely the signal\n * `createEventStream` waits for before taking the retry over.\n */\nexport const EventSourceReadyState = {\n /** Refers to the connection being established — including the browser's OWN automatic reconnection. */\n Connecting: 0,\n /** Refers to an open, streaming connection. */\n Open: 1,\n /** Refers to a connection the browser will not retry: a fatal error, or an explicit `close()`. */\n Closed: 2,\n} as const;\n\n/** Provides the `WebSocket.readyState` values from the WHATWG spec — note `Closing` occupies `2`, where `EventSource` puts `Closed`. */\nexport const SocketReadyState = {\n /** Refers to a handshake in progress; `send()` throws here, which is why this slice queues instead. */\n Connecting: 0,\n /** Refers to an open socket ready for frames. */\n Open: 1,\n /** Refers to a close handshake in progress; frames sent now are discarded. */\n Closing: 2,\n /** Refers to a closed or failed socket. */\n Closed: 3,\n} as const;\n","// The one place in this slice that decides WHEN to reconnect — and it decides nothing itself. Every delay\n// comes from `foundation/resilience`'s `computeRetryDelay`, and every \"should we even try again\" answer comes\n// from its `shouldRetry`. That slice owns retry POLICY (growth, jitter, cap, attempt budget); this scheduler\n// owns only the timer and the attempt counter. Changing how backoff behaves means editing `resilience`, never\n// this file — the same split `foundation/async`'s `retryAsync` follows.\n//\n// WHY A SHARED SCHEDULER RATHER THAN A `setTimeout` IN EACH TRANSPORT: both `createEventStream` and\n// `createSocketClient` need identical bookkeeping — the attempt count, the previous delay (decorrelated\n// jitter is a function of it), a cancellable handle, and a reset on success. Written twice they drift, and\n// the half that drifts is always the reset: a client that forgets to zero its counter after a successful\n// reconnect spends the rest of the session waiting the maximum delay after every blip.\n//\n// THE STACKING GUARD IS THE LOAD-BEARING PART. `schedule()` refuses to arm a second timer while one is\n// pending. Both transports can be told about the same failure through more than one path — a WebSocket that\n// errors then closes fires BOTH handlers, and an `EventSource` can report an error while a retry is already\n// waiting — and without this guard each path arms its own timer, so a single drop produces two connections.\n// Two sockets both \"work\", which is why this bug survives review: the symptom is duplicated messages and a\n// doubled server load, not an obvious failure.\n//\n// `shouldRetry` IS QUERIED WITH STATUS `0`. It grades HTTP statuses, and a dropped stream has none — `0` is\n// exactly the \"network / unknown\" code `resilience` reserves for that, and it is a member of\n// `DefaultTransientStatuses`, so a default policy treats a drop as transient. A caller who genuinely wants a\n// stream that never reconnects passes `retry: false` rather than fighting the status vocabulary.\n\nimport { BackoffStrategy, JitterStrategy, computeRetryDelay, shouldRetry, type RetryPolicy } from '../resilience';\n\n/** The status handed to `shouldRetry` for a transport-level drop — `resilience`'s \"network / unknown\" code. */\nconst TransportFailureStatus = 0;\n\n/**\n * Provides the default reconnect policy for a long-lived connection: unbounded attempts, exponential growth\n * from 1s, capped at 30s, with equal jitter.\n *\n * Differs from `DefaultRetryPolicy` in two ways that matter for a STREAM rather than a request. Attempts are\n * unbounded because a stream's failure mode is a server restart or a laptop lid, and giving up after two\n * tries leaves a dead page that no amount of waiting fixes — a request can surface an error to the caller,\n * a background stream has nobody to tell. And the jitter is `Equal`, not `Full`: full jitter can pick a delay\n * near zero, so a single client reconnecting to a flapping server hammers it immediately, whereas equal\n * jitter guarantees a floor of half the computed delay while still spreading a whole fleet apart.\n */\nexport const DefaultReconnectPolicy: RetryPolicy = {\n maxRetries: Number.POSITIVE_INFINITY,\n backoff: BackoffStrategy.Exponential,\n baseDelayMs: 1_000,\n maxDelayMs: 30_000,\n jitter: JitterStrategy.Equal,\n};\n\n/** Configures a {@link createReconnectScheduler} instance. Every member is optional. */\nexport interface ReconnectSchedulerOptions {\n /** The retry policy driving the delays, or `false` to disable reconnection entirely. Default {@link DefaultReconnectPolicy}. */\n readonly retry?: RetryPolicy | false;\n\n /** The randomness feeding jitter — injectable so a test can pin an exact delay. Default `Math.random`. */\n readonly random?: () => number;\n\n /** Fires when an attempt is armed, before the wait — the seam for logging \"reconnecting in 4s (attempt 3)\". */\n readonly onScheduled?: (attempt: number, delayMs: number) => void;\n}\n\n/** Schedules reconnection attempts with `foundation/resilience` backoff, at most one in flight. */\nexport interface ReconnectScheduler {\n /** The number of consecutive attempts armed since the last {@link ReconnectScheduler.reset}. */\n readonly attempts: number;\n\n /** The delay (ms) of the attempt currently waiting, or `undefined` when none is pending. */\n readonly pendingDelayMs: number | undefined;\n\n /**\n * Arms the next attempt after a `resilience`-computed delay.\n *\n * @param run - Invoked once the delay elapses. Not invoked if {@link ReconnectScheduler.cancel} lands first.\n * @returns `true` when an attempt is pending afterwards — including when one was ALREADY pending and this\n * call was absorbed by the stacking guard; `false` when reconnection is disabled or the budget is spent.\n */\n schedule(run: () => void): boolean;\n\n /** Zeroes the attempt counter after a successful connection, so the next drop starts from the base delay again. */\n reset(): void;\n\n /** Cancels a pending attempt and clears its timer. Idempotent, and safe when nothing is pending. */\n cancel(): void;\n}\n\n/**\n * Creates the reconnect scheduler shared by this slice's transports — one pending attempt at most, delays\n * and budget delegated wholly to `foundation/resilience`.\n *\n * @param options - The retry policy, randomness source, and scheduling hook.\n * @returns A scheduler; call `cancel()` when the owning transport closes, or its timer outlives it.\n */\nexport function createReconnectScheduler(options: ReconnectSchedulerOptions = {}): ReconnectScheduler {\n const { retry = DefaultReconnectPolicy, random = Math.random, onScheduled } = options;\n\n let attempts = 0;\n let previousDelayMs = 0;\n let pendingDelayMs: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return {\n get attempts() {\n return attempts;\n },\n\n get pendingDelayMs() {\n return pendingDelayMs;\n },\n\n schedule(run: () => void): boolean {\n if (retry === false) return false;\n // The stacking guard — see this file's header. Reporting `true` is correct: an attempt IS pending.\n if (timer !== undefined) return true;\n if (!shouldRetry(retry, attempts, TransportFailureStatus)) return false;\n\n const attempt = attempts + 1;\n const delayMs = computeRetryDelay(retry, attempt, previousDelayMs, random);\n\n attempts = attempt;\n previousDelayMs = delayMs;\n pendingDelayMs = delayMs;\n\n timer = setTimeout(() => {\n // Blank both handles BEFORE running, so a `run` that fails and immediately re-schedules is not\n // rejected by the stacking guard against its own already-fired timer.\n timer = undefined;\n pendingDelayMs = undefined;\n run();\n }, delayMs);\n\n onScheduled?.(attempt, delayMs);\n return true;\n },\n\n reset(): void {\n attempts = 0;\n previousDelayMs = 0;\n },\n\n cancel(): void {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n pendingDelayMs = undefined;\n },\n };\n}\n","// Server-Sent Events with typed named-event handlers and a reconnect that does NOT fight the browser's own.\n//\n// THE DOUBLE-RECONNECT TRAP, which is the whole reason this wrapper is subtle. `EventSource` already\n// reconnects by itself: on an ordinary drop the browser sets `readyState` back to `CONNECTING`, waits out its\n// own delay (the server can set it with a `retry:` field), and re-opens the SAME `EventSource` object. It\n// fires `error` while doing so. So the naive wrapper — \"on error, make a new `EventSource`\" — ends up with\n// TWO live connections for one drop: the browser's retry on the old object, plus the wrapper's new one. Each\n// subsequent drop doubles again. The symptom is duplicated events and a server that sees connection counts\n// climb, never a thrown error, which is why this ships to production so often.\n//\n// HOW THIS AVOIDS IT: the `error` handler branches on `source.readyState`, which is the only signal that\n// distinguishes the two cases.\n// - `CONNECTING` (0) — the browser owns this retry and is already running it. The wrapper arms NO timer and\n// builds NO `EventSource`; it only reports the error with `owner: 'browser'` and shows `reconnecting`.\n// - `CLOSED` (2) — the browser has given up for good (a non-2xx response, a wrong content type, a bad\n// CORS preflight; none of these are retried by the spec). Only here does the wrapper take over: it\n// detaches its listeners, closes the dead object, and schedules a fresh connect on `resilience` backoff.\n// The two owners are therefore mutually exclusive by construction, and `ReconnectOwner` reports which one is\n// acting so a consumer can log it. The scheduler's own stacking guard backstops the invariant.\n//\n// WHY THE FATAL CASE STILL RETRIES AT ALL: the browser abandons the stream on a 502 from a proxy that is\n// restarting, or on the 401 that follows an expired token — both routinely fix themselves. Leaving the page\n// permanently dead because a gateway blinked is worse than a bounded reconnect, and a caller who disagrees\n// passes `retry: false`.\n//\n// NAMED EVENTS ARE A MAP, NOT A SWITCH. A server sending `event: order-updated` delivers to a listener\n// registered for that exact name, and NOT to `onmessage` — a detail that silently breaks the \"I subscribed to\n// onMessage but receive nothing\" case. `options.events` registers one real listener per key, and the generic\n// parameter types each payload independently.\n\nimport { toError } from '../errors';\nimport type { RetryPolicy } from '../resilience';\n\nimport { ConnectionState, EventSourceReadyState } from './ConnectionState';\nimport { createReconnectScheduler } from './Reconnect';\n\n/**\n * The minimal `EventSource` surface this wrapper drives. Narrow on purpose: a test double or a polyfill can\n * satisfy it in a few lines, and the real `EventSource` satisfies it structurally.\n */\nexport interface EventStreamSource {\n /** The wire ready-state — see {@link EventSourceReadyState}. The branch the double-reconnect guard turns on. */\n readonly readyState: number;\n\n /** Closes the connection and stops the browser's own reconnection. */\n close(): void;\n\n /** Registers a listener for `open`, `error`, `message`, or a server-named event. */\n addEventListener(type: string, listener: (event: Event) => void): void;\n\n /** Removes a previously registered listener. */\n removeEventListener(type: string, listener: (event: Event) => void): void;\n}\n\n/** Builds the underlying source — injectable so tests and polyfills need no global. */\nexport type EventStreamSourceFactory = (url: string, init: { withCredentials: boolean }) => EventStreamSource;\n\n/** Identifies who is retrying a broken stream — the guard against reconnecting on top of the browser. */\nexport const ReconnectOwner = {\n /** Refers to the browser's own `EventSource` retry already being in flight; this wrapper stands down. */\n Browser: 'browser',\n /** Refers to the browser having given up, with this wrapper's `resilience`-scheduled retry pending. */\n Wrapper: 'wrapper',\n /** Refers to nobody retrying — reconnection is disabled, the attempt budget is spent, or the stream was closed. */\n None: 'none',\n} as const;\n\nexport type ReconnectOwner = (typeof ReconnectOwner)[keyof typeof ReconnectOwner];\n\n/** Describes a stream failure — above all, who (if anyone) is going to do something about it. */\nexport interface EventStreamErrorContext {\n /** Whoever is retrying this failure. See {@link ReconnectOwner}. */\n readonly owner: ReconnectOwner;\n\n /** The wrapper's consecutive attempt count; `0` while the browser owns the retry, since the wrapper has armed nothing. */\n readonly attempt: number;\n\n /** The connection state after this failure was handled. */\n readonly state: ConnectionState;\n}\n\n/**\n * Maps each server event name to the payload it carries — the generic every handler in\n * {@link EventStreamOptions.events} is typed from.\n */\nexport type EventStreamPayloads = Record<string, unknown>;\n\n/** Maps event names to their handlers, each typed by that event's payload. */\nexport type EventStreamHandlers<TEvents extends EventStreamPayloads> = {\n readonly [K in keyof TEvents & string]?: (data: TEvents[K], event: MessageEvent<string>) => void;\n};\n\n/** Configures a {@link createEventStream} call. Every member is optional. */\nexport interface EventStreamOptions<TEvents extends EventStreamPayloads = EventStreamPayloads> {\n /** Handlers for server-NAMED events (`event: order-updated`). These never reach {@link EventStreamOptions.onMessage}. */\n readonly events?: EventStreamHandlers<TEvents>;\n\n /** Handles unnamed events only — the default `message` type. */\n readonly onMessage?: (data: unknown, event: MessageEvent<string>) => void;\n\n /** Fires each time the connection opens, including after every reconnect. */\n readonly onOpen?: () => void;\n\n /** Fires on every failure, with the context saying who is retrying it. */\n readonly onError?: (error: Error, context: EventStreamErrorContext) => void;\n\n /** Fires on every connection-state transition — the seam for a \"reconnecting…\" indicator. */\n readonly onStateChange?: (state: ConnectionState) => void;\n\n /** Whether to send credentials cross-origin. Default `false`. */\n readonly withCredentials?: boolean;\n\n /**\n * Decodes a frame's `data` text. Default: `JSON.parse`, falling back to the RAW STRING when the text is not\n * JSON — SSE carries text, and plain-text frames and sentinels like `[DONE]` are common enough that\n * throwing on them would be hostile. Supply this to be strict, or to decode another format.\n */\n readonly parse?: (raw: string) => unknown;\n\n /** The reconnect policy for failures the browser abandons, or `false` to never reconnect. Default `DefaultReconnectPolicy`. */\n readonly retry?: RetryPolicy | false;\n\n /** The randomness feeding backoff jitter — injectable for deterministic tests. Default `Math.random`. */\n readonly random?: () => number;\n\n /** The source factory. Default constructs a global `EventSource`; inject a double in tests. */\n readonly eventSource?: EventStreamSourceFactory;\n}\n\n/** Controls a live Server-Sent Events subscription. */\nexport interface EventStream {\n /** The current connection state — `reconnecting` covers both the browser's retry and this wrapper's. */\n readonly readyState: ConnectionState;\n\n /** Whether an `EventSource` implementation was available at all; `false` under SSR, where the stream is inert. */\n readonly supported: boolean;\n\n /** The wrapper's consecutive reconnect attempts, zeroed on every successful open. */\n readonly attempts: number;\n\n /** Closes the stream, cancels any pending reconnect, and detaches every listener. Idempotent; suppresses all further reconnection. */\n close(): void;\n}\n\n/** Decodes frame text as JSON, falling back to the raw string — see {@link EventStreamOptions.parse}. */\nfunction parseFrame(raw: string): unknown {\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return raw;\n }\n}\n\n/** Reads a listener's event as a message frame; non-string `data` is coerced so a double can pass plain objects. */\nfunction frameTextOf(event: Event): { text: string; message: MessageEvent<string> } {\n const message = event as MessageEvent<string>;\n const data: unknown = message.data;\n return { text: typeof data === 'string' ? data : String(data), message };\n}\n\n/** Resolves the source factory: the injected one, else the global `EventSource`, else `undefined` (SSR / unsupported). */\nfunction resolveSourceFactory(injected?: EventStreamSourceFactory): EventStreamSourceFactory | undefined {\n if (injected !== undefined) return injected;\n if (typeof EventSource === 'undefined') return undefined;\n return (url, init) => new EventSource(url, init);\n}\n\n/**\n * Opens a Server-Sent Events stream with typed named-event handlers and a reconnect that defers to the\n * browser's own — see this file's header for how the double-reconnect is avoided.\n *\n * Never throws, at import time or at call time. Where `EventSource` does not exist (SSR, a locked-down\n * runtime) the returned stream reports `supported: false` and state `closed`, and every method is a no-op —\n * a defined answer rather than an exception a render cannot catch.\n *\n * @typeParam TEvents - Maps each server event name to its payload type.\n * @param url - The stream endpoint.\n * @param options - Handlers, retry policy, parsing, and injection seams.\n * @returns The stream handle. ALWAYS call `close()` when done — an open `EventSource` survives navigation\n * within an SPA and keeps both the connection and every captured handler alive.\n */\nexport function createEventStream<TEvents extends EventStreamPayloads = EventStreamPayloads>(\n url: string,\n options: EventStreamOptions<TEvents> = {},\n): EventStream {\n const {\n events,\n onMessage,\n onOpen,\n onError,\n onStateChange,\n withCredentials = false,\n parse = parseFrame,\n retry,\n random,\n eventSource,\n } = options;\n\n const factory = resolveSourceFactory(eventSource);\n const scheduler = createReconnectScheduler({ retry, random });\n\n let state: ConnectionState = ConnectionState.Connecting;\n let source: EventStreamSource | undefined;\n let detach: (() => void) | undefined;\n let closed = false;\n\n /** Publishes a state transition, skipping no-op repeats so a consumer's `onStateChange` is not spammed. */\n const setState = (next: ConnectionState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Reports a failure, tolerating a throwing consumer handler — a bad listener must not break the transport. */\n const report = (error: unknown, owner: ReconnectOwner, attempt: number): void => {\n try {\n onError?.(toError(error), { owner, attempt, state });\n } catch {\n // Swallowed by contract: this runs from a DOM event handler, where a throw is unhandleable noise.\n }\n };\n\n /** Binds every listener to a source and returns the matching detach — one closure so no listener can be missed. */\n const bind = (target: EventStreamSource): (() => void) => {\n const bound: [type: string, listener: (event: Event) => void][] = [];\n\n /** Registers a listener and records it for the paired detach. */\n const on = (type: string, listener: (event: Event) => void): void => {\n target.addEventListener(type, listener);\n bound.push([type, listener]);\n };\n\n on('open', () => {\n // A successful open zeroes the attempt counter — otherwise a long-lived stream that blipped once\n // spends the rest of the session starting from the maximum delay.\n scheduler.reset();\n setState(ConnectionState.Open);\n onOpen?.();\n });\n\n // The `error` event itself carries nothing useful — the spec gives it no reason, no status, no body.\n // Everything actionable is in `readyState`, which is why only the source is passed on.\n on('error', () => handleError(target));\n\n if (onMessage !== undefined) {\n on('message', (event) => {\n const { text, message } = frameTextOf(event);\n onMessage(parse(text), message);\n });\n }\n\n for (const name of Object.keys(events ?? {})) {\n const handler = (events as Record<string, ((data: unknown, event: MessageEvent<string>) => void) | undefined>)[\n name\n ];\n if (handler === undefined) continue;\n on(name, (event) => {\n const { text, message } = frameTextOf(event);\n handler(parse(text), message);\n });\n }\n\n return () => {\n for (const entry of bound) target.removeEventListener(entry[0], entry[1]);\n bound.length = 0;\n };\n };\n\n /** Opens a source and binds it; a constructor throw (a malformed URL) is reported, not propagated. */\n const connect = (): void => {\n if (closed || factory === undefined) return;\n\n setState(scheduler.attempts === 0 ? ConnectionState.Connecting : ConnectionState.Reconnecting);\n\n let opened: EventStreamSource;\n try {\n opened = factory(url, { withCredentials });\n } catch (error) {\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n report(error, scheduled ? ReconnectOwner.Wrapper : ReconnectOwner.None, scheduler.attempts);\n return;\n }\n\n source = opened;\n detach = bind(opened);\n };\n\n /** The double-reconnect guard itself: branch on the wire ready-state, and never retry what the browser is already retrying. */\n function handleError(target: EventStreamSource): void {\n if (closed) return;\n\n // The browser is mid-reconnect on this very object. Arming anything here is the duplicate-connection bug.\n if (target.readyState === EventSourceReadyState.Connecting) {\n setState(ConnectionState.Reconnecting);\n report(new Error(`The event stream to ${url} dropped; the browser is reconnecting.`), ReconnectOwner.Browser, 0);\n return;\n }\n\n // `CLOSED` — the browser will do nothing further. Tear the dead object down completely before replacing\n // it: an un-detached listener on a closed source still pins every closure it captured.\n detach?.();\n detach = undefined;\n target.close();\n source = undefined;\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n report(\n new Error(`The event stream to ${url} failed and the browser stopped retrying.`),\n scheduled ? ReconnectOwner.Wrapper : ReconnectOwner.None,\n scheduler.attempts,\n );\n }\n\n if (factory === undefined) {\n // Unsupported: a defined, inert answer. No throw, no listeners, no timers.\n state = ConnectionState.Closed;\n return {\n get readyState() {\n return state;\n },\n supported: false,\n get attempts() {\n return 0;\n },\n close: () => undefined,\n };\n }\n\n connect();\n\n return {\n get readyState() {\n return state;\n },\n supported: true,\n get attempts() {\n return scheduler.attempts;\n },\n close(): void {\n if (closed) return;\n closed = true;\n scheduler.cancel();\n detach?.();\n detach = undefined;\n source?.close();\n source = undefined;\n setState(ConnectionState.Closed);\n },\n };\n}\n","// Vue binding for `createEventStream` — one stream per scope, closed when the scope is disposed.\n//\n// THE LIFETIME RULE THIS ENFORCES: an `EventSource` is a live HTTP connection that outlives the component\n// that opened it. Nothing about unmounting a tree closes it, so a route change away from a page holding an\n// un-closed stream leaves the connection open, the handlers subscribed, and the reconnect timer armed — and\n// navigating back opens a SECOND one. Binding the stream to `onMounted` / `onScopeDispose` makes the teardown\n// automatic.\n//\n// OPENED FROM `onMounted`, NEVER FROM AN IMMEDIATE WATCHER. `createEventStream` resolves `EventSource` inside\n// the call, and an immediate watcher also runs during a server render. `onMounted` is client-only by\n// construction, so the SSR pass reports `closed` / `supported: true` and the stream opens at hydration.\n//\n// HANDLERS ARE READ THROUGH `toValue` AT CALL TIME, the Vue counterpart of the original's handlers-in-a-ref.\n// A component's `setup` runs once, so a plain options object is already stable — but a caller that wants\n// genuinely live handlers can pass a ref or getter and every callback re-reads it per event, with the stream\n// itself staying put.\n//\n// OPTIONS ARE READ ONCE, when the stream opens. Changing `retry`, `events`, or `withCredentials` after mount\n// does NOT rebuild the stream; only `url` does. Options are configuration, not state — a consumer that must\n// genuinely swap them at runtime should remount with a `key`. This mirrors `useSyncChannel` in\n// `foundation/sync`.\n//\n// A `null` URL MEANS \"NOT YET\", not \"broken\" — the shape every real app needs while it waits for a token or a\n// route param. No stream is opened, and the state reads `closed`.\n\nimport {\n onMounted,\n onScopeDispose,\n shallowRef,\n toValue,\n watch,\n type MaybeRefOrGetter,\n type ShallowRef,\n} from 'vue';\n\nimport { ConnectionState } from './ConnectionState';\nimport {\n createEventStream,\n type EventStream,\n type EventStreamOptions,\n type EventStreamPayloads,\n} from './CreateEventStream';\n\n/** The live view a scope gets over its stream. */\nexport interface EventStreamHandle {\n /** The current connection state, updating on every transition. */\n readonly readyState: Readonly<ShallowRef<ConnectionState>>;\n\n /** Whether `EventSource` exists in this runtime; `false` under SSR and in a locked-down browser. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** Closes the stream early. The scope-disposal cleanup calls it anyway. */\n readonly close: () => void;\n}\n\n/**\n * Opens a Server-Sent Events stream for the lifetime of the scope.\n *\n * The stream is closed when the scope is disposed and re-opened whenever `url` changes. Pass `null` to hold\n * off connecting (waiting for auth, a route param, a feature flag) — a ref or getter is how that flips.\n *\n * @typeParam TEvents - Maps each server event name to its payload type.\n * @param url - The stream endpoint, or `null` to stay disconnected.\n * @param options - Handlers and configuration, read once when the stream opens; handler callbacks are re-read\n * per event, so a ref or getter keeps them live.\n * @returns The connection state, support flag, and `close`.\n */\nexport function useEventStream<TEvents extends EventStreamPayloads = EventStreamPayloads>(\n url: MaybeRefOrGetter<string | null>,\n options: MaybeRefOrGetter<EventStreamOptions<TEvents>> = {},\n): EventStreamHandle {\n const readyState = shallowRef<ConnectionState>(\n toValue(url) === null ? ConnectionState.Closed : ConnectionState.Connecting,\n );\n const supported = shallowRef(true);\n\n let stream: EventStream | null = null;\n\n function teardown(): void {\n stream?.close();\n stream = null;\n }\n\n function open(): void {\n teardown();\n\n const endpoint = toValue(url);\n if (endpoint === null) {\n readyState.value = ConnectionState.Closed;\n return;\n }\n\n const current = toValue(options);\n const next = createEventStream<TEvents>(endpoint, {\n ...current,\n // Every consumer callback is re-read through `toValue` at call time, which is what lets the watcher\n // depend on `url` alone. `onStateChange` is additionally intercepted to drive this scope's own state.\n onStateChange: (state) => {\n readyState.value = state;\n toValue(options).onStateChange?.(state);\n },\n onOpen: () => toValue(options).onOpen?.(),\n onError: (error, context) => toValue(options).onError?.(error, context),\n onMessage: (data, event) => toValue(options).onMessage?.(data, event),\n });\n\n stream = next;\n supported.value = next.supported;\n readyState.value = next.readyState;\n }\n\n onMounted(open);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `EventSource` is absent.\n watch(() => toValue(url), open);\n onScopeDispose(teardown);\n\n const close = (): void => {\n stream?.close();\n };\n\n return { readyState, supported, close };\n}\n","// A WebSocket client that fixes the three bugs every hand-rolled one has: dropped early sends, an\n// intentional close that reconnects anyway, and a half-open socket nobody notices.\n//\n// (1) MESSAGES SENT WHILE `CONNECTING` ARE LOST. A `WebSocket` is not usable the moment it is constructed —\n// the handshake takes a round trip, and `send()` during `CONNECTING` throws `InvalidStateError`. The bug is\n// not the throw; it is that the throw happens in code that looks obviously correct (`const s =\n// createSocket(); s.send(hello)`) and disappears on a fast local connection, so it ships. This client QUEUES\n// anything sent before `OPEN` and flushes it, in order, on open — the same queue that covers sends during a\n// reconnect, when the socket is `CONNECTING` again for seconds at a time.\n//\n// The queue is BOUNDED (`queueLimit`, default 100) and drops the OLDEST frame when full. Unbounded is not an\n// option: a tab left open through an hour-long outage would otherwise accumulate every frame the app ever\n// tried to send and hand the server all of them at once on reconnect. Oldest-first is the right end to drop\n// for the state-update traffic sockets usually carry, where the newest frame supersedes the ones behind it —\n// a caller whose messages are commands rather than state should keep `queueLimit` small and watch\n// `queuedCount`.\n//\n// (2) AN INTENTIONAL `close()` MUST NOT RECONNECT. `onclose` fires for a network drop and for a deliberate\n// close identically, so a reconnect handler wired to it fights every logout, unmount, and navigation — the\n// socket keeps coming back, usually with the OLD credentials. A single `closedByCaller` flag, set before the\n// close is requested, is the whole fix; every reconnect path checks it.\n//\n// (3) A HALF-OPEN SOCKET REPORTS `OPEN` FOREVER. When a peer vanishes without a close frame — a laptop lid, a\n// dropped NAT entry, a killed load balancer — TCP has nothing to report, so `onclose` never fires and\n// `readyState` stays `OPEN`. The connection is dead and the app cannot tell. The only detector is an\n// application-level heartbeat: send a ping, require traffic back within a deadline, treat silence as death\n// and reconnect. Note the ping MUST be application-level — the WebSocket protocol has real ping/pong frames,\n// but browsers expose no API to send one, so a server-side-only heartbeat cannot be observed from here.\n//\n// ANY INBOUND FRAME CLEARS THE PONG DEADLINE, not just a frame matching some pong shape. A socket delivering\n// data is alive by definition, so requiring a specific reply would kill healthy busy connections whose pong\n// is merely queued behind other traffic. This also means a server needs no pong support at all for the\n// heartbeat to be useful on a chatty socket.\n//\n// All reconnect delays come from `Reconnect.ts`, hence from `foundation/resilience`. None are computed here.\n\nimport { toError } from '../errors';\nimport type { RetryPolicy } from '../resilience';\n\nimport { ConnectionState, SocketReadyState } from './ConnectionState';\nimport { createReconnectScheduler } from './Reconnect';\n\n/** The default cap on frames buffered while the socket is not open. */\nconst DefaultQueueLimit = 100;\n\n/** The default ping frame — an application-level heartbeat, since browsers cannot send protocol pings. */\nconst DefaultPingFrame = (): string => JSON.stringify({ type: 'ping' });\n\n/**\n * The minimal `WebSocket` surface this client drives. Narrow on purpose: a test double satisfies it in a few\n * lines, and the real `WebSocket` satisfies it structurally.\n */\nexport interface SocketConnection {\n /** The wire ready-state — see {@link SocketReadyState}. Gates every send. */\n readonly readyState: number;\n\n /** Sends one text frame. Throws while `CONNECTING`, which is exactly what the queue exists to prevent. */\n send(data: string): void;\n\n /** Starts the close handshake. */\n close(code?: number, reason?: string): void;\n\n /** Registers a listener for `open`, `close`, `error`, or `message`. */\n addEventListener(type: string, listener: (event: Event) => void): void;\n\n /** Removes a previously registered listener. */\n removeEventListener(type: string, listener: (event: Event) => void): void;\n}\n\n/** Builds the underlying socket — injectable so tests and polyfills need no global. */\nexport type SocketFactory = (url: string, protocols?: string | readonly string[]) => SocketConnection;\n\n/** Configures the liveness heartbeat that detects a half-open socket. */\nexport interface SocketHeartbeatOptions {\n /** The interval (ms) between pings. */\n readonly intervalMs: number;\n\n /** The silence (ms) tolerated after a ping before the socket is declared dead and reconnected. Default: the interval. */\n readonly timeoutMs?: number;\n\n /** Builds the ping frame. Default `{\"type\":\"ping\"}`. Return the exact text your server expects. */\n readonly ping?: () => string;\n}\n\n/** Configures a {@link createSocketClient} call. Every member is optional. */\nexport interface SocketClientOptions<TIn = unknown, TOut = unknown> {\n /** The subprotocols offered during the handshake. */\n readonly protocols?: string | readonly string[];\n\n /** Receives every decoded inbound message. Frames that fail to decode go to {@link SocketClientOptions.onError} instead. */\n readonly onMessage?: (message: TIn, event: MessageEvent) => void;\n\n /** Fires each time the socket opens, including after every reconnect and BEFORE the queue is flushed. */\n readonly onOpen?: () => void;\n\n /** Fires on every close, with `wasClean` distinguishing a handshake close from a drop. */\n readonly onClose?: (event: CloseEvent) => void;\n\n /** Fires on a socket error, a decode failure, or a send that the transport rejected. */\n readonly onError?: (error: Error) => void;\n\n /** Fires on every connection-state transition — the seam for a \"reconnecting…\" indicator. */\n readonly onStateChange?: (state: ConnectionState) => void;\n\n /** Encodes an outbound message. Default `JSON.stringify`. */\n readonly serialize?: (message: TOut) => string;\n\n /** Decodes an inbound frame. Default `JSON.parse`. A throw here is reported, and the frame is dropped. */\n readonly deserialize?: (raw: string) => TIn;\n\n /** The reconnect policy, or `false` to never reconnect. Default `DefaultReconnectPolicy`. */\n readonly retry?: RetryPolicy | false;\n\n /** The half-open detector. Omit to disable heartbeating entirely. */\n readonly heartbeat?: SocketHeartbeatOptions;\n\n /** The cap on frames buffered while not open; the oldest is dropped when full. Default `100`. */\n readonly queueLimit?: number;\n\n /** The randomness feeding backoff jitter — injectable for deterministic tests. Default `Math.random`. */\n readonly random?: () => number;\n\n /** The socket factory. Default constructs a global `WebSocket`; inject a double in tests. */\n readonly socket?: SocketFactory;\n}\n\n/** Controls a live WebSocket connection. */\nexport interface SocketClient<TOut = unknown> {\n /** The current connection state. */\n readonly readyState: ConnectionState;\n\n /** Whether a `WebSocket` implementation was available at all; `false` under SSR, where the client is inert. */\n readonly supported: boolean;\n\n /** The number of frames buffered awaiting an open socket — non-zero means back-pressure or an outage. */\n readonly queuedCount: number;\n\n /** The consecutive reconnect attempts, zeroed on every successful open. */\n readonly attempts: number;\n\n /**\n * Sends a message, queueing it when the socket is not open yet.\n *\n * @param message - The payload, encoded by `serialize`.\n * @returns `true` when the frame went out immediately, `false` when it was queued or dropped.\n */\n send(message: TOut): boolean;\n\n /** Closes the socket, cancels reconnection permanently, clears the heartbeat, and detaches every listener. Idempotent. */\n close(code?: number, reason?: string): void;\n}\n\n/** Resolves the socket factory: the injected one, else the global `WebSocket`, else `undefined` (SSR / unsupported). */\nfunction resolveSocketFactory(injected?: SocketFactory): SocketFactory | undefined {\n if (injected !== undefined) return injected;\n if (typeof WebSocket === 'undefined') return undefined;\n return (url, protocols) => new WebSocket(url, protocols as string | string[] | undefined);\n}\n\n/**\n * Opens a JSON WebSocket with a send queue, `resilience`-scheduled reconnection, and a half-open detector —\n * see this file's header for the three bugs each of those exists to prevent.\n *\n * Never throws, at import time or at call time. Where `WebSocket` does not exist (SSR) the returned client\n * reports `supported: false` and state `closed`, `send` returns `false`, and `close` is a no-op.\n *\n * @typeParam TIn - The decoded inbound message type.\n * @typeParam TOut - The outbound message type.\n * @param url - The socket endpoint (`ws://` or `wss://`).\n * @param options - Handlers, retry policy, heartbeat, codecs, and injection seams.\n * @returns The client handle. ALWAYS call `close()` when done — an abandoned socket keeps its connection, its\n * heartbeat timers, and every captured handler alive.\n */\nexport function createSocketClient<TIn = unknown, TOut = unknown>(\n url: string,\n options: SocketClientOptions<TIn, TOut> = {},\n): SocketClient<TOut> {\n const {\n protocols,\n onMessage,\n onOpen,\n onClose,\n onError,\n onStateChange,\n serialize = (message: TOut) => JSON.stringify(message),\n deserialize = (raw: string) => JSON.parse(raw) as TIn,\n retry,\n heartbeat,\n queueLimit = DefaultQueueLimit,\n random,\n socket: socketFactory,\n } = options;\n\n const factory = resolveSocketFactory(socketFactory);\n const scheduler = createReconnectScheduler({ retry, random });\n\n /** Frames buffered while the socket is not `OPEN`, oldest first. */\n const queue: string[] = [];\n\n let state: ConnectionState = ConnectionState.Connecting;\n let connection: SocketConnection | undefined;\n let detach: (() => void) | undefined;\n let closedByCaller = false;\n let pingTimer: ReturnType<typeof setInterval> | undefined;\n let pongTimer: ReturnType<typeof setTimeout> | undefined;\n\n /** Publishes a state transition, skipping no-op repeats. */\n const setState = (next: ConnectionState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Reports an error, tolerating a throwing consumer handler — a bad listener must not break the transport. */\n const report = (error: unknown): void => {\n try {\n onError?.(toError(error));\n } catch {\n // Swallowed by contract: this runs from a DOM event handler, where a throw is unhandleable noise.\n }\n };\n\n /** Stops both heartbeat timers. Runs on every close and every drop, so neither can outlive its socket. */\n const stopHeartbeat = (): void => {\n if (pingTimer !== undefined) {\n clearInterval(pingTimer);\n pingTimer = undefined;\n }\n if (pongTimer !== undefined) {\n clearTimeout(pongTimer);\n pongTimer = undefined;\n }\n };\n\n /** Clears the pong deadline — called for ANY inbound frame, since traffic is proof of life. */\n const noteTraffic = (): void => {\n if (pongTimer !== undefined) {\n clearTimeout(pongTimer);\n pongTimer = undefined;\n }\n };\n\n /** Tears the current socket down and reconnects — the path for a drop, NOT for a caller's close. */\n const recycle = (): void => {\n if (closedByCaller) return;\n\n stopHeartbeat();\n // Detach BEFORE closing: our own `close` would otherwise fire the close handler, which would schedule a\n // second reconnect on top of this one.\n detach?.();\n detach = undefined;\n const dying = connection;\n connection = undefined;\n try {\n dying?.close();\n } catch {\n // A socket already dead rejects `close()` in some runtimes; nothing to recover.\n }\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n };\n\n /** Starts the heartbeat for a freshly opened socket, if one is configured. */\n const startHeartbeat = (): void => {\n if (heartbeat === undefined) return;\n\n const { intervalMs, timeoutMs = heartbeat.intervalMs, ping = DefaultPingFrame } = heartbeat;\n if (!Number.isFinite(intervalMs) || intervalMs <= 0) return;\n\n pingTimer = setInterval(() => {\n const live = connection;\n if (live === undefined || live.readyState !== SocketReadyState.Open) return;\n\n try {\n live.send(ping());\n } catch (error) {\n report(error);\n }\n\n // Arm the deadline only if one is not already running: back-to-back pings with no traffic between them\n // must not each reset the clock, or a dead socket is never detected.\n if (pongTimer !== undefined) return;\n pongTimer = setTimeout(() => {\n pongTimer = undefined;\n report(new Error(`The socket to ${url} missed its heartbeat; treating it as half-open.`));\n recycle();\n }, timeoutMs);\n }, intervalMs);\n };\n\n /** Writes every buffered frame in order, on open. A frame the socket rejects is reported and dropped, not re-queued. */\n const flushQueue = (target: SocketConnection): void => {\n const pending = queue.splice(0, queue.length);\n for (const frame of pending) {\n try {\n target.send(frame);\n } catch (error) {\n report(error);\n }\n }\n };\n\n /** Binds every listener to a socket and returns the matching detach — one closure so no listener can be missed. */\n const bind = (target: SocketConnection): (() => void) => {\n const bound: [type: string, listener: (event: Event) => void][] = [];\n\n /** Registers a listener and records it for the paired detach. */\n const on = (type: string, listener: (event: Event) => void): void => {\n target.addEventListener(type, listener);\n bound.push([type, listener]);\n };\n\n on('open', () => {\n scheduler.reset();\n setState(ConnectionState.Open);\n onOpen?.();\n // Flush AFTER `onOpen`, so a handler that sends a subscribe/auth frame on connect lands ahead of the\n // backlog rather than behind it — the ordering a protocol with a handshake requires.\n flushQueue(target);\n startHeartbeat();\n });\n\n on('message', (event) => {\n noteTraffic();\n if (onMessage === undefined) return;\n\n const message = event as MessageEvent;\n const data: unknown = message.data;\n if (typeof data !== 'string') {\n // Binary frames are out of scope for a JSON client; reporting beats silently dropping.\n report(new Error(`The socket to ${url} delivered a non-text frame, which this client cannot decode.`));\n return;\n }\n\n let decoded: TIn;\n try {\n decoded = deserialize(data);\n } catch (error) {\n report(error);\n return;\n }\n onMessage(decoded, message);\n });\n\n on('error', () => {\n // The `error` event carries no detail by design (it would leak cross-origin information). The close\n // that follows is what actually drives reconnection.\n report(new Error(`The socket to ${url} reported an error.`));\n });\n\n on('close', (event) => {\n stopHeartbeat();\n onClose?.(event as CloseEvent);\n if (closedByCaller) return;\n\n detach?.();\n detach = undefined;\n connection = undefined;\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n });\n\n return () => {\n for (const entry of bound) target.removeEventListener(entry[0], entry[1]);\n bound.length = 0;\n };\n };\n\n /** Opens a socket and binds it; a constructor throw (a bad URL scheme) is reported and retried, not propagated. */\n function connect(): void {\n if (closedByCaller || factory === undefined) return;\n\n setState(scheduler.attempts === 0 ? ConnectionState.Connecting : ConnectionState.Reconnecting);\n\n let opened: SocketConnection;\n try {\n opened = factory(url, protocols);\n } catch (error) {\n report(error);\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n return;\n }\n\n connection = opened;\n detach = bind(opened);\n }\n\n if (factory === undefined) {\n // Unsupported: a defined, inert answer. No throw, no listeners, no timers.\n state = ConnectionState.Closed;\n return {\n get readyState() {\n return state;\n },\n supported: false,\n get queuedCount() {\n return 0;\n },\n get attempts() {\n return 0;\n },\n send: () => false,\n close: () => undefined,\n };\n }\n\n connect();\n\n return {\n get readyState() {\n return state;\n },\n supported: true,\n get queuedCount() {\n return queue.length;\n },\n get attempts() {\n return scheduler.attempts;\n },\n\n send(message: TOut): boolean {\n // A closed client silently drops rather than buffering forever — nothing will ever flush the queue.\n if (closedByCaller) return false;\n\n let frame: string;\n try {\n frame = serialize(message);\n } catch (error) {\n report(error);\n return false;\n }\n\n const live = connection;\n if (live !== undefined && live.readyState === SocketReadyState.Open) {\n try {\n live.send(frame);\n return true;\n } catch (error) {\n // The socket claimed `OPEN` and refused anyway (a race with a close). Queue it for the reconnect\n // rather than losing it.\n report(error);\n }\n }\n\n queue.push(frame);\n if (queue.length > queueLimit) queue.splice(0, queue.length - queueLimit);\n return false;\n },\n\n close(code?: number, reason?: string): void {\n if (closedByCaller) return;\n // Set BEFORE requesting the close, so the `close` event this triggers sees the flag and stands down.\n closedByCaller = true;\n scheduler.cancel();\n stopHeartbeat();\n queue.length = 0;\n\n const dying = connection;\n connection = undefined;\n try {\n dying?.close(code, reason);\n } catch {\n // A socket already dead rejects `close()` in some runtimes; nothing to recover.\n }\n detach?.();\n detach = undefined;\n setState(ConnectionState.Closed);\n },\n };\n}\n","// Vue binding for `createSocketClient` — one socket per scope, closed when the scope is disposed.\n//\n// THE LIFETIME RULE THIS ENFORCES: a `WebSocket` abandoned by its component stays connected, keeps its\n// heartbeat interval running, and keeps reconnecting on backoff — forever, since nothing else holds a\n// reference with which to close it. In an SPA that is one leaked socket per visit to the page, and the server\n// sees the connection count climb with no matching users. Binding the client to `onMounted` /\n// `onScopeDispose` makes the teardown automatic.\n//\n// OPENED FROM `onMounted`, NEVER FROM AN IMMEDIATE WATCHER. `createSocketClient` resolves `WebSocket` inside\n// the call, and an immediate watcher also runs during a server render, where that global does not exist.\n//\n// THE RETURNED `send` IS ALWAYS SAFE TO CALL. It reads the current client from the closure, so it never goes\n// stale, and it works BEFORE the socket finishes connecting — the client's queue is what makes that true (see\n// `CreateSocketClient.ts`, bug 1). Calling it after disposal is a no-op rather than a crash, which matters\n// because an in-flight event handler routinely outlives the tree.\n//\n// HANDLERS ARE READ THROUGH `toValue` AT CALL TIME, options are read once, and a `null` URL means \"not yet\" —\n// same three rules as `useEventStream`, for the same reasons.\n\nimport {\n onMounted,\n onScopeDispose,\n shallowRef,\n toValue,\n watch,\n type MaybeRefOrGetter,\n type ShallowRef,\n} from 'vue';\n\nimport { ConnectionState } from './ConnectionState';\nimport { createSocketClient, type SocketClient, type SocketClientOptions } from './CreateSocketClient';\n\n/** The live view a scope gets over its socket. */\nexport interface SocketHandle<TOut> {\n /** The current connection state, updating on every transition. */\n readonly readyState: Readonly<ShallowRef<ConnectionState>>;\n\n /** Whether `WebSocket` exists in this runtime; `false` under SSR. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /**\n * Sends a message, queueing it while the socket is still connecting.\n *\n * @returns `true` when the frame went out immediately, `false` when queued, dropped, or disposed.\n */\n readonly send: (message: TOut) => boolean;\n\n /** Closes the socket early and suppresses reconnection. The scope-disposal cleanup calls it anyway. */\n readonly close: () => void;\n}\n\n/**\n * Opens a JSON WebSocket for the lifetime of the scope.\n *\n * The socket is closed when the scope is disposed and re-opened whenever `url` changes. Pass `null` to hold\n * off connecting (waiting for auth, a route param, a feature flag) — a ref or getter is how that flips.\n *\n * @typeParam TIn - The decoded inbound message type.\n * @typeParam TOut - The outbound message type.\n * @param url - The socket endpoint, or `null` to stay disconnected.\n * @param options - Handlers and configuration, read once when the socket opens; handler callbacks are re-read\n * per message, so a ref or getter keeps them live.\n * @returns The connection state, support flag, and `send` / `close`.\n */\nexport function useSocket<TIn = unknown, TOut = unknown>(\n url: MaybeRefOrGetter<string | null>,\n options: MaybeRefOrGetter<SocketClientOptions<TIn, TOut>> = {},\n): SocketHandle<TOut> {\n const readyState = shallowRef<ConnectionState>(\n toValue(url) === null ? ConnectionState.Closed : ConnectionState.Connecting,\n );\n const supported = shallowRef(true);\n\n let client: SocketClient<TOut> | null = null;\n\n function teardown(): void {\n client?.close();\n client = null;\n }\n\n function open(): void {\n teardown();\n\n const endpoint = toValue(url);\n if (endpoint === null) {\n readyState.value = ConnectionState.Closed;\n return;\n }\n\n const current = toValue(options);\n const next = createSocketClient<TIn, TOut>(endpoint, {\n ...current,\n // Every consumer callback is re-read through `toValue` at call time, which is what lets the watcher\n // depend on `url` alone. `onStateChange` is additionally intercepted to drive this scope's own state.\n onStateChange: (state) => {\n readyState.value = state;\n toValue(options).onStateChange?.(state);\n },\n onOpen: () => toValue(options).onOpen?.(),\n onClose: (event) => toValue(options).onClose?.(event),\n onError: (error) => toValue(options).onError?.(error),\n onMessage: (message, event) => toValue(options).onMessage?.(message, event),\n });\n\n client = next;\n supported.value = next.supported;\n readyState.value = next.readyState;\n }\n\n onMounted(open);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `WebSocket` is absent.\n watch(() => toValue(url), open);\n onScopeDispose(teardown);\n\n const send = (message: TOut): boolean => client?.send(message) ?? false;\n\n const close = (): void => {\n client?.close();\n };\n\n return { readyState, supported, send, close };\n}\n","// Connectivity as a NON-VUE signal, for the factories in this slice that are plain functions and cannot\n// call a composable.\n//\n// RELATIONSHIP TO `foundation/device`'s `useOnlineStatus` — READ BEFORE ADDING ANOTHER TRACKER. That\n// composable is and remains THE Vue binding for connectivity; nothing here replaces it, and a component must\n// keep using it. But `createPoller` and `waitForOnline` are framework-agnostic factories called from timers,\n// effects, and `catch` blocks, where a composable is illegal. `device` keeps its reader module-private, so the\n// choice was to export a reader from `device` (widening a slice this one has no business editing, and one\n// another lane may be touching) or to keep a five-line reader here. This is the five-line reader, and it\n// MIRRORS the composable's\n// semantics deliberately: same optimistic default, same guarded read, same two events. If either changes,\n// change both.\n//\n// WHAT `navigator.onLine` IS WORTH, restated because every caller gets this wrong: `false` is trustworthy\n// (the browser knows there is no link); `true` only means a link exists — a captive portal, a dead VPN, or a\n// server that is simply down all report `true`. So this drives \"stop polling, nothing can succeed\" and\n// \"wait before retrying\", never \"we are online, therefore this will work\".\n//\n// `waitForOnline` RESOLVES A VERDICT AND NEVER THROWS, which is a deliberate deviation from `withTimeout` in\n// `foundation/async` (that one rejects with a `TimeoutError`). Every call site for this function is ALREADY\n// inside a failure path — a mutation just failed and the caller is deciding whether to retry. Rejecting\n// there forces a nested try/catch around the recovery logic to distinguish \"still offline\" from a real\n// fault, and a missed catch turns a recoverable failure into an unhandled rejection. A boolean reads as the\n// question actually being asked: `if (await waitForOnline({ timeoutMs: 5_000 })) retry();`.\n\n/**\n * Reads `navigator.onLine`, defaulting to online when there is no `navigator` (SSR), when the property is\n * missing (a partial polyfill), or when the read throws.\n *\n * Mirrors `useOnlineStatus`'s reader exactly — see this file's header for why the duplication is deliberate.\n *\n * @returns `true` while the browser reports a network link; optimistically `true` when unreadable.\n */\nexport function readOnlineStatus(): boolean {\n try {\n if (typeof navigator === 'undefined') return true;\n return navigator.onLine !== false;\n } catch {\n return true;\n }\n}\n\n/**\n * Subscribes to connectivity changes via the window `online` / `offline` events.\n *\n * A no-op returning a no-op disposer when there is no `window` (SSR), so callers need no environment branch.\n * The listener receives the new status, never a raw `Event`.\n *\n * @param listener - Invoked with `true` on `online` and `false` on `offline`.\n * @returns A disposer that detaches both listeners; safe to call more than once.\n */\nexport function subscribeOnline(listener: (online: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => undefined;\n\n const target = window;\n const onOnline = (): void => listener(true);\n const onOffline = (): void => listener(false);\n\n target.addEventListener('online', onOnline);\n target.addEventListener('offline', onOffline);\n\n let detached = false;\n return () => {\n if (detached) return;\n detached = true;\n target.removeEventListener('online', onOnline);\n target.removeEventListener('offline', onOffline);\n };\n}\n\n/** Configures a {@link waitForOnline} call. Every member is optional. */\nexport interface WaitForOnlineOptions {\n /** The maximum wait (ms) before giving up and resolving `false`. Omit, or pass a non-positive value, to wait indefinitely. */\n readonly timeoutMs?: number;\n\n /** Abandons the wait early, resolving `false` — an abort is a \"stop waiting\" verdict here, never a rejection. */\n readonly signal?: AbortSignal;\n}\n\n/**\n * Waits for connectivity to come back, resolving `true` the moment it does.\n *\n * Resolves `true` immediately when already online, and `false` when the timeout lapses or the signal aborts —\n * never rejects, and never leaves a timer or a listener behind on any of those paths. Under SSR, or wherever\n * connectivity cannot be observed, it resolves `true` at once rather than hanging on an event that can never\n * arrive.\n *\n * Remember what a `true` verdict is worth (see this file's header): it says a link exists, not that the\n * server is reachable. Use it to gate a retry, then let the retry decide.\n *\n * @param options - The deadline and cancellation signal.\n * @returns `true` when connectivity is (or becomes) available; `false` on timeout or abort.\n */\nexport function waitForOnline(options: WaitForOnlineOptions = {}): Promise<boolean> {\n const { timeoutMs, signal } = options;\n\n if (readOnlineStatus()) return Promise.resolve(true);\n if (signal?.aborted === true) return Promise.resolve(false);\n // Nothing to listen on — an indefinite wait here could never be satisfied, so answer with the current read\n // instead of hanging forever.\n if (typeof window === 'undefined') return Promise.resolve(readOnlineStatus());\n\n return new Promise<boolean>((resolve) => {\n let settled = false;\n let unsubscribe: (() => void) | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let onAbort: (() => void) | undefined;\n\n /** The single teardown every exit path runs — timer, connectivity listeners, and abort listener alike. */\n const cleanup = (): void => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n unsubscribe?.();\n unsubscribe = undefined;\n if (signal !== undefined && onAbort !== undefined) {\n signal.removeEventListener('abort', onAbort);\n onAbort = undefined;\n }\n };\n\n /** Settles once and only once — three racing sources can all fire in the same tick. */\n const finish = (online: boolean): void => {\n if (settled) return;\n settled = true;\n cleanup();\n resolve(online);\n };\n\n unsubscribe = subscribeOnline((online) => {\n if (online) finish(true);\n });\n\n if (timeoutMs !== undefined && timeoutMs > 0 && Number.isFinite(timeoutMs)) {\n timer = setTimeout(() => {\n timer = undefined;\n finish(false);\n }, timeoutMs);\n }\n\n if (signal !== undefined) {\n const listener = (): void => finish(false);\n onAbort = listener;\n signal.addEventListener('abort', listener, { once: true });\n }\n });\n}\n","// Interval polling that stops burning quota when nobody is looking.\n//\n// WHY A HIDDEN TAB MUST NOT POLL: a background tab is invisible, not closed. A 10-second poll left running\n// across a workday is thousands of requests nobody will ever see the result of — paid for in the user's\n// battery, the user's mobile data, and the API's rate limit, which is then unavailable to the tab the user is\n// actually looking at. Browsers throttle background timers, but throttling is not stopping: the requests\n// still go out, just less punctually. So this suspends on `visibilitychange` and, by default, refreshes\n// immediately on return, since data that went stale while hidden is the first thing the returning user reads.\n//\n// WHY OFFLINE MUST NOT POLL: every tick during an outage is a guaranteed failure. Left running it produces a\n// stream of errors that drowns the log, trips error-rate alerting, and — where the poll feeds a UI — flickers\n// a failure banner on a schedule. Suspending costs nothing, because the `online` event fires the moment there\n// is anything to poll for.\n//\n// SUSPENSION IS REASON-COUNTED, NOT A BOOLEAN, and this is the non-obvious part. Three independent things can\n// suspend the poller — the caller's `pause()`, a hidden tab, an offline browser — and with one flag they\n// overwrite each other: the tab regains focus, clears the flag, and silently resumes a poller the CALLER\n// paused, which is a real bug (a modal that paused polling reopens to a poller running behind it). A set of\n// reasons makes the rule exact: the poller ticks only when the set is empty, and `resume()` clears only the\n// caller's reason.\n//\n// TICKS DO NOT OVERLAP. Scheduling is a `setTimeout` CHAIN, re-armed after each run settles, not a\n// `setInterval`. With an interval, a poll slower than its period stacks: requests overlap, responses arrive\n// out of order, and the slowest response wins the UI — worse the more congested the network is, which is\n// exactly when it hurts. The chain makes `intervalMs` the gap BETWEEN runs, so a slow backend degrades to\n// polling less often instead of DDoSing itself.\n//\n// CONNECTIVITY IS READ THROUGH `Liveness.ts`, whose header explains why this slice has a non-Vue reader at\n// all instead of `foundation/device`'s `useOnlineStatus`.\n\nimport { toError } from '../errors';\n\nimport { readOnlineStatus, subscribeOnline } from './Liveness';\n\n/** The default gap between polls. */\nconst DefaultIntervalMs = 30_000;\n\n/** Names why a poller is suspended — a set of these, not a flag, so the reasons cannot overwrite each other. */\nconst SuspendReason = {\n /** Refers to the caller's own `pause()`. Cleared only by `resume()`. */\n Manual: 'manual',\n /** Refers to a hidden tab. Cleared by `visibilitychange`. */\n Hidden: 'hidden',\n /** Refers to an offline browser. Cleared by the `online` event. */\n Offline: 'offline',\n} as const;\n\ntype SuspendReason = (typeof SuspendReason)[keyof typeof SuspendReason];\n\n/** Describes what a poller is doing right now. */\nexport const PollerState = {\n /** Refers to a poller created but not started. */\n Idle: 'idle',\n /** Refers to a poller with a tick scheduled or running. */\n Running: 'running',\n /** Refers to a started poller held by at least one suspend reason — paused, hidden, or offline. */\n Paused: 'paused',\n /** Refers to a stopped poller: timers cleared, listeners detached, restartable with `start()`. */\n Stopped: 'stopped',\n} as const;\n\nexport type PollerState = (typeof PollerState)[keyof typeof PollerState];\n\n/** The work a poller repeats. A returned promise is awaited, so the next tick is scheduled only after it settles. */\nexport type PollFn = () => unknown;\n\n/** Configures a {@link createPoller} call. Every member is optional. */\nexport interface PollerOptions {\n /** The gap (ms) between the end of one poll and the start of the next. Default `30000`. */\n readonly intervalMs?: number;\n\n /** Whether to start polling immediately on creation. Default `true`; `false` waits for `start()`. */\n readonly autoStart?: boolean;\n\n /** Whether to run one poll at once on start, rather than after the first interval. Default `false`. */\n readonly immediate?: boolean;\n\n /** Whether to suspend while the tab is hidden. Default `true`. */\n readonly pauseWhenHidden?: boolean;\n\n /** Whether to suspend while the browser reports no network link. Default `true`. */\n readonly pauseWhenOffline?: boolean;\n\n /** Whether returning from a suspension polls at once instead of waiting a full interval. Default `true` — the data is already stale. */\n readonly refreshOnResume?: boolean;\n\n /** Receives an error thrown or rejected by the poll. The chain continues regardless — a failed poll is not a reason to stop polling. */\n readonly onError?: (error: Error) => void;\n\n /** Fires on every state transition — the seam for a \"paused (offline)\" indicator. */\n readonly onStateChange?: (state: PollerState) => void;\n}\n\n/** Controls a running poll loop. */\nexport interface Poller {\n /** The current state. `paused` covers all three suspend reasons. */\n readonly state: PollerState;\n\n /** Starts (or restarts) polling. A no-op while already running. */\n start(): void;\n\n /** Suspends polling until `resume()`. Independent of the automatic hidden / offline suspensions. */\n pause(): void;\n\n /** Clears the caller's suspension. Polling stays suspended if the tab is still hidden or the browser still offline. */\n resume(): void;\n\n /** Stops polling, clears the pending timer, and detaches the visibility and connectivity listeners. Idempotent. */\n stop(): void;\n}\n\n/** Reads `document.visibilityState`, defaulting to visible where there is no document (SSR) or the read throws. */\nfunction readHidden(): boolean {\n try {\n if (typeof document === 'undefined') return false;\n return document.visibilityState === 'hidden';\n } catch {\n return false;\n }\n}\n\n/**\n * Subscribes to `visibilitychange`, reporting whether the document is now hidden.\n *\n * A no-op returning a no-op disposer where there is no `document`, so callers need no environment branch.\n */\nfunction subscribeVisibility(listener: (hidden: boolean) => void): () => void {\n if (typeof document === 'undefined') return () => undefined;\n\n const target = document;\n const onChange = (): void => listener(readHidden());\n target.addEventListener('visibilitychange', onChange);\n\n let detached = false;\n return () => {\n if (detached) return;\n detached = true;\n target.removeEventListener('visibilitychange', onChange);\n };\n}\n\n/**\n * Creates a poller that repeats `fn` on an interval and suspends itself while the tab is hidden or the\n * browser is offline — see this file's header for why both of those are non-negotiable.\n *\n * Never throws: an error from `fn` goes to `onError` and the loop continues, because a poll that failed once\n * is the poll most worth retrying. Ticks never overlap.\n *\n * @param fn - The work to repeat; a returned promise is awaited before the next tick is scheduled.\n * @param options - Interval, suspension behaviour, and hooks.\n * @returns The poller handle. ALWAYS call `stop()` when done — a live poller holds a timer and two document /\n * window listeners.\n */\nexport function createPoller(fn: PollFn, options: PollerOptions = {}): Poller {\n const {\n intervalMs = DefaultIntervalMs,\n autoStart = true,\n immediate = false,\n pauseWhenHidden = true,\n pauseWhenOffline = true,\n refreshOnResume = true,\n onError,\n onStateChange,\n } = options;\n\n const suspended = new Set<SuspendReason>();\n\n let state: PollerState = PollerState.Idle;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let running = false;\n let inFlight = false;\n let unsubscribeVisibility: (() => void) | undefined;\n let unsubscribeOnline: (() => void) | undefined;\n\n /** Publishes a state transition, skipping no-op repeats. */\n const setState = (next: PollerState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Clears the pending tick, if any. Never touches the listeners — suspension keeps them. */\n const clearPending = (): void => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n };\n\n /** Arms the next tick. Refuses while stopped or suspended, which is what makes every suspend path a one-liner. */\n const scheduleNext = (): void => {\n if (!running || suspended.size > 0 || timer !== undefined) return;\n timer = setTimeout(() => {\n timer = undefined;\n void tick();\n }, intervalMs);\n };\n\n /** Runs one poll and re-arms — the chain that replaces `setInterval`. */\n async function tick(): Promise<void> {\n if (!running || suspended.size > 0 || inFlight) return;\n\n inFlight = true;\n try {\n await fn();\n } catch (error) {\n try {\n onError?.(toError(error));\n } catch {\n // Swallowed by contract: a throwing error handler must not break the loop it was told about.\n }\n } finally {\n inFlight = false;\n }\n\n // Re-checked AFTER the await: the poll may have been stopped or suspended while it was in flight, and\n // arming a timer for a poller that is already gone is exactly how a \"stopped\" poller keeps ticking.\n scheduleNext();\n }\n\n /** Adds a suspend reason and parks the loop. */\n const suspend = (reason: SuspendReason): void => {\n if (suspended.has(reason)) return;\n suspended.add(reason);\n clearPending();\n if (running) setState(PollerState.Paused);\n };\n\n /** Removes a suspend reason and, once none remain, resumes — immediately when `refreshOnResume`. */\n const unsuspend = (reason: SuspendReason): void => {\n if (!suspended.delete(reason)) return;\n if (!running || suspended.size > 0) return;\n\n setState(PollerState.Running);\n if (refreshOnResume) void tick();\n else scheduleNext();\n };\n\n /** Attaches the visibility and connectivity listeners and seeds the matching suspend reasons. */\n const attachEnvironment = (): void => {\n if (pauseWhenHidden) {\n if (readHidden()) suspended.add(SuspendReason.Hidden);\n unsubscribeVisibility = subscribeVisibility((hidden) => {\n if (hidden) suspend(SuspendReason.Hidden);\n else unsuspend(SuspendReason.Hidden);\n });\n }\n\n if (pauseWhenOffline) {\n if (!readOnlineStatus()) suspended.add(SuspendReason.Offline);\n unsubscribeOnline = subscribeOnline((online) => {\n if (online) unsuspend(SuspendReason.Offline);\n else suspend(SuspendReason.Offline);\n });\n }\n };\n\n /** Detaches both environment listeners. Idempotent. */\n const detachEnvironment = (): void => {\n unsubscribeVisibility?.();\n unsubscribeVisibility = undefined;\n unsubscribeOnline?.();\n unsubscribeOnline = undefined;\n };\n\n const poller: Poller = {\n get state() {\n return state;\n },\n\n start(): void {\n if (running) return;\n running = true;\n // A restart begins from a clean slate — a stale `hidden` reason left over from the previous run would\n // otherwise park the poller forever, since the event that would clear it has already fired.\n suspended.clear();\n attachEnvironment();\n\n if (suspended.size > 0) {\n setState(PollerState.Paused);\n return;\n }\n\n setState(PollerState.Running);\n if (immediate) void tick();\n else scheduleNext();\n },\n\n pause(): void {\n suspend(SuspendReason.Manual);\n },\n\n resume(): void {\n unsuspend(SuspendReason.Manual);\n },\n\n stop(): void {\n if (!running && state === PollerState.Stopped) return;\n running = false;\n clearPending();\n detachEnvironment();\n suspended.clear();\n setState(PollerState.Stopped);\n },\n };\n\n if (autoStart) poller.start();\n\n return poller;\n}\n","// Vue binding for `createPoller` — one loop per scope, stopped when the scope is disposed.\n//\n// THE LIFETIME RULE THIS ENFORCES: a poller holds a timer plus a `visibilitychange` and two connectivity\n// listeners. A disposed scope that never stopped its poller keeps all four, keeps issuing requests, and keeps\n// writing into state that no longer renders — except it also costs a request every interval, forever.\n//\n// BUILT FROM `onMounted`, NEVER FROM AN IMMEDIATE WATCHER. `createPoller` attaches its `visibilitychange`\n// listener to `document` and its connectivity listeners to `window`; an immediate watcher also runs during a\n// server render, where neither exists. `onMounted` is client-only by construction.\n//\n// `fn` IS READ THROUGH `toValue` AT CALL TIME rather than captured. A component's `setup` runs once, so the\n// React original's infinite-restart hazard (a fresh `fn` identity every render, each render caused by the\n// previous poll's own state write) simply cannot occur here — but reading it per tick is still the right\n// contract, because it lets a caller pass a getter whose target changes without rebuilding the loop.\n//\n// The suspend rules (hidden tab, offline) belong to the poller itself, not to this composable, so a\n// framework-free caller gets identical behaviour — see `CreatePoller.ts`. In particular this composable does\n// NOT call `useOnlineStatus`: doing so would update reactive state on every connectivity flip merely to tell\n// the poller something it already knows from the same events.\n\nimport {\n onMounted,\n onScopeDispose,\n shallowRef,\n toValue,\n watch,\n type MaybeRefOrGetter,\n type ShallowRef,\n} from 'vue';\n\nimport { PollerState, createPoller, type PollFn, type Poller, type PollerOptions } from './CreatePoller';\n\n/** The live view a scope gets over its poll loop. */\nexport interface PollingHandle {\n /** The current poller state, updating on every transition. `paused` covers manual, hidden, and offline. */\n readonly state: Readonly<ShallowRef<PollerState>>;\n\n /** Suspends polling until `resume()`. */\n readonly pause: () => void;\n\n /** Clears the manual suspension; polling stays suspended if the tab is hidden or the browser offline. */\n readonly resume: () => void;\n\n /** Stops the loop and detaches its listeners. The scope-disposal cleanup calls it anyway. */\n readonly stop: () => void;\n}\n\n/**\n * Runs `fn` on an interval for the lifetime of the scope, suspended automatically while the tab is hidden or\n * the browser is offline.\n *\n * The loop stops when the scope is disposed and is rebuilt whenever `intervalMs` changes. `fn` is read fresh\n * on each tick, so a getter whose target changes needs no rebuild.\n *\n * @param fn - The work to repeat; a returned promise is awaited before the next tick is scheduled.\n * @param options - Interval and suspension behaviour, read once when the loop is built; handler callbacks are\n * re-read per emission, so a ref or getter keeps them live.\n * @returns The poller state and `pause` / `resume` / `stop`.\n */\nexport function usePolling(\n fn: MaybeRefOrGetter<PollFn>,\n options: MaybeRefOrGetter<PollerOptions> = {},\n): PollingHandle {\n const state = shallowRef<PollerState>(PollerState.Idle);\n\n let poller: Poller | null = null;\n\n function teardown(): void {\n poller?.stop();\n poller = null;\n }\n\n function build(): void {\n teardown();\n\n const current = toValue(options);\n const next = createPoller(() => toValue(fn)(), {\n ...current,\n intervalMs: current.intervalMs,\n onStateChange: (value) => {\n state.value = value;\n toValue(options).onStateChange?.(value);\n },\n onError: (error) => toValue(options).onError?.(error),\n });\n\n poller = next;\n state.value = next.state;\n }\n\n onMounted(build);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `document` and `window` are\n // absent. `intervalMs` alone is the rebuild trigger — the platform cannot retune a live interval.\n watch(() => toValue(options).intervalMs, build);\n onScopeDispose(teardown);\n\n const pause = (): void => {\n poller?.pause();\n };\n\n const resume = (): void => {\n poller?.resume();\n };\n\n const stop = (): void => {\n poller?.stop();\n };\n\n return { state, pause, resume, stop };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/foundation/net/ConnectionState.ts","../../../src/foundation/net/Reconnect.ts","../../../src/foundation/net/CreateEventStream.ts","../../../src/foundation/net/hooks/UseEventStream.ts","../../../src/foundation/net/CreateSocketClient.ts","../../../src/foundation/net/hooks/UseSocket.ts","../../../src/foundation/net/Liveness.ts","../../../src/foundation/net/CreatePoller.ts","../../../src/foundation/net/hooks/UsePolling.ts"],"sourcesContent":["// The connection vocabulary shared by every long-lived transport in this slice, plus the two sets of WIRE\n// ready-state numbers the platform uses.\n//\n// WHY A SEPARATE STATE FROM THE WIRE NUMBER: `EventSource.readyState` and `WebSocket.readyState` are both\n// small integers, they overlap numerically, and they mean DIFFERENT things — `2` is `CLOSED` for an\n// `EventSource` and `CLOSING` for a `WebSocket`. Worse, neither can express \"the socket is down and this\n// wrapper is waiting out a backoff delay before the next attempt\", which is the state a UI most wants to\n// render (\"reconnecting…\"). `EventSource` reports that situation as `CONNECTING`, indistinguishable from the\n// very first connect. So consumers get this string union and never see a raw integer.\n//\n// WHY THE NUMBERS ARE SPELLED OUT HERE RATHER THAN READ OFF THE GLOBALS: `WebSocket.OPEN` is a static member\n// of a class that does not exist under SSR, in a node test, or in a browser with the API disabled. Reading it\n// at module scope is a `ReferenceError` at import time — the exact failure this slice promises never to have.\n// The values are fixed by the WHATWG spec and cannot drift, so hardcoding them is both safe and the only\n// SSR-correct option.\n\n/** Describes a long-lived connection's state, uniformly across SSE, WebSocket, and polling. */\nexport const ConnectionState = {\n /** Refers to a first connection attempt in flight — nothing has been established yet. */\n Connecting: 'connecting',\n /** Refers to an established connection that is passing traffic. */\n Open: 'open',\n /** Refers to a dropped connection with a retry pending or in flight — what the wire ready-state cannot express. */\n Reconnecting: 'reconnecting',\n /** Refers to a connection down for good — closed by the caller, unsupported, or out of retries. */\n Closed: 'closed',\n} as const;\n\nexport type ConnectionState = (typeof ConnectionState)[keyof typeof ConnectionState];\n\n/**\n * Provides the `EventSource.readyState` values from the WHATWG spec. Note `Closed` here is TERMINAL — the\n * browser only reports it once it has abandoned its own reconnection, which is precisely the signal\n * `createEventStream` waits for before taking the retry over.\n */\nexport const EventSourceReadyState = {\n /** Refers to the connection being established — including the browser's OWN automatic reconnection. */\n Connecting: 0,\n /** Refers to an open, streaming connection. */\n Open: 1,\n /** Refers to a connection the browser will not retry: a fatal error, or an explicit `close()`. */\n Closed: 2,\n} as const;\n\n/**\n * Provides the `WebSocket.readyState` values from the WHATWG spec — `Closing` occupies `2`, where\n * `EventSource` puts `Closed`.\n */\nexport const SocketReadyState = {\n /** Refers to a handshake in progress; `send()` throws here, which is why this slice queues instead. */\n Connecting: 0,\n /** Refers to an open socket ready for frames. */\n Open: 1,\n /** Refers to a close handshake in progress; frames sent now are discarded. */\n Closing: 2,\n /** Refers to a closed or failed socket. */\n Closed: 3,\n} as const;\n","// The one place in this slice that decides WHEN to reconnect — and it decides nothing itself. Every delay\n// comes from `foundation/resilience`'s `computeRetryDelay`, and every \"should we even try again\" answer comes\n// from its `shouldRetry`. That slice owns retry POLICY (growth, jitter, cap, attempt budget); this scheduler\n// owns only the timer and the attempt counter. Changing how backoff behaves means editing `resilience`, never\n// this file — the same split `foundation/async`'s `retryAsync` follows.\n//\n// WHY A SHARED SCHEDULER RATHER THAN A `setTimeout` IN EACH TRANSPORT: both `createEventStream` and\n// `createSocketClient` need identical bookkeeping — the attempt count, the previous delay (decorrelated\n// jitter is a function of it), a cancellable handle, and a reset on success. Written twice they drift, and\n// the half that drifts is always the reset: a client that forgets to zero its counter after a successful\n// reconnect spends the rest of the session waiting the maximum delay after every blip.\n//\n// THE STACKING GUARD IS THE LOAD-BEARING PART. `schedule()` refuses to arm a second timer while one is\n// pending. Both transports can be told about the same failure through more than one path — a WebSocket that\n// errors then closes fires BOTH handlers, and an `EventSource` can report an error while a retry is already\n// waiting — and without this guard each path arms its own timer, so a single drop produces two connections.\n// Two sockets both \"work\", which is why this bug survives review: the symptom is duplicated messages and a\n// doubled server load, not an obvious failure.\n//\n// `shouldRetry` IS QUERIED WITH STATUS `0`. It grades HTTP statuses, and a dropped stream has none — `0` is\n// exactly the \"network / unknown\" code `resilience` reserves for that, and it is a member of\n// `DefaultTransientStatuses`, so a default policy treats a drop as transient. A caller who genuinely wants a\n// stream that never reconnects passes `retry: false` rather than fighting the status vocabulary.\n\nimport { BackoffStrategy, JitterStrategy, computeRetryDelay, shouldRetry, type RetryPolicy } from '../resilience';\n\n/** The status handed to `shouldRetry` for a transport-level drop — `resilience`'s \"network / unknown\" code. */\nconst TransportFailureStatus = 0;\n\n/**\n * Provides the default reconnect policy for a long-lived connection: unbounded attempts, exponential growth\n * from 1s, capped at 30s, with equal jitter.\n *\n * Differs from `DefaultRetryPolicy` in two ways that matter for a STREAM rather than a request. Attempts are\n * unbounded because a stream's failure mode is a server restart or a laptop lid, and giving up after two\n * tries leaves a dead page that no amount of waiting fixes — a request can surface an error to the caller,\n * a background stream has nobody to tell. And the jitter is `Equal`, not `Full`: full jitter can pick a delay\n * near zero, so a single client reconnecting to a flapping server hammers it immediately, whereas equal\n * jitter guarantees a floor of half the computed delay while still spreading a whole fleet apart.\n */\nexport const DefaultReconnectPolicy: RetryPolicy = {\n maxRetries: Number.POSITIVE_INFINITY,\n backoff: BackoffStrategy.Exponential,\n baseDelayMs: 1_000,\n maxDelayMs: 30_000,\n jitter: JitterStrategy.Equal,\n};\n\n/** Configures a {@link createReconnectScheduler} instance. Every member is optional. */\nexport interface ReconnectSchedulerOptions {\n /** Retry policy driving the delays, or `false` to disable reconnection. Default {@link DefaultReconnectPolicy}. */\n readonly retry?: RetryPolicy | false;\n\n /** The randomness feeding jitter — injectable so a test can pin an exact delay. Default `Math.random`. */\n readonly random?: () => number;\n\n /** Fires when an attempt is armed, before the wait — the seam for logging \"reconnecting in 4s (attempt 3)\". */\n readonly onScheduled?: (attempt: number, delayMs: number) => void;\n}\n\n/** Schedules reconnection attempts with `foundation/resilience` backoff, at most one in flight. */\nexport interface ReconnectScheduler {\n /** The number of consecutive attempts armed since the last {@link ReconnectScheduler.reset}. */\n readonly attempts: number;\n\n /** The delay (ms) of the attempt currently waiting, or `undefined` when none is pending. */\n readonly pendingDelayMs: number | undefined;\n\n /**\n * Arms the next attempt after a `resilience`-computed delay.\n *\n * @param run - Invoked once the delay elapses. Not invoked if {@link ReconnectScheduler.cancel} lands first.\n * @returns `true` when an attempt is pending afterwards — including when one was ALREADY pending and this\n * call was absorbed by the stacking guard; `false` when reconnection is disabled or the budget is spent.\n */\n schedule(run: () => void): boolean;\n\n /** Zeroes the attempt counter after a successful connection, so the next drop starts from the base delay again. */\n reset(): void;\n\n /** Cancels a pending attempt and clears its timer. Idempotent, and safe when nothing is pending. */\n cancel(): void;\n}\n\n/**\n * Creates the reconnect scheduler shared by this slice's transports — one pending attempt at most, delays\n * and budget delegated wholly to `foundation/resilience`.\n *\n * @param options - The retry policy, randomness source, and scheduling hook.\n * @returns A scheduler; call `cancel()` when the owning transport closes, or its timer outlives it.\n */\nexport function createReconnectScheduler(options: ReconnectSchedulerOptions = {}): ReconnectScheduler {\n const { retry = DefaultReconnectPolicy, random = Math.random, onScheduled } = options;\n\n let attempts = 0;\n let previousDelayMs = 0;\n let pendingDelayMs: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return {\n get attempts() {\n return attempts;\n },\n\n get pendingDelayMs() {\n return pendingDelayMs;\n },\n\n schedule(run: () => void): boolean {\n if (retry === false) return false;\n // The stacking guard — see this file's header. Reporting `true` is correct: an attempt IS pending.\n if (timer !== undefined) return true;\n if (!shouldRetry(retry, attempts, TransportFailureStatus)) return false;\n\n const attempt = attempts + 1;\n const delayMs = computeRetryDelay(retry, attempt, previousDelayMs, random);\n\n attempts = attempt;\n previousDelayMs = delayMs;\n pendingDelayMs = delayMs;\n\n timer = setTimeout(() => {\n // Blank both handles BEFORE running, so a `run` that fails and immediately re-schedules is not\n // rejected by the stacking guard against its own already-fired timer.\n timer = undefined;\n pendingDelayMs = undefined;\n run();\n }, delayMs);\n\n onScheduled?.(attempt, delayMs);\n return true;\n },\n\n reset(): void {\n attempts = 0;\n previousDelayMs = 0;\n },\n\n cancel(): void {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n pendingDelayMs = undefined;\n },\n };\n}\n","// Server-Sent Events with typed named-event handlers and a reconnect that does NOT fight the browser's own.\n//\n// THE DOUBLE-RECONNECT TRAP, which is the whole reason this wrapper is subtle. `EventSource` already\n// reconnects by itself: on an ordinary drop the browser sets `readyState` back to `CONNECTING`, waits out its\n// own delay (the server can set it with a `retry:` field), and re-opens the SAME `EventSource` object. It\n// fires `error` while doing so. So the naive wrapper — \"on error, make a new `EventSource`\" — ends up with\n// TWO live connections for one drop: the browser's retry on the old object, plus the wrapper's new one. Each\n// subsequent drop doubles again. The symptom is duplicated events and a server that sees connection counts\n// climb, never a thrown error, which is why this ships to production so often.\n//\n// HOW THIS AVOIDS IT: the `error` handler branches on `source.readyState`, which is the only signal that\n// distinguishes the two cases.\n// - `CONNECTING` (0) — the browser owns this retry and is already running it. The wrapper arms NO timer and\n// builds NO `EventSource`; it only reports the error with `owner: 'browser'` and shows `reconnecting`.\n// - `CLOSED` (2) — the browser has given up for good (a non-2xx response, a wrong content type, a bad\n// CORS preflight; none of these are retried by the spec). Only here does the wrapper take over: it\n// detaches its listeners, closes the dead object, and schedules a fresh connect on `resilience` backoff.\n// The two owners are therefore mutually exclusive by construction, and `ReconnectOwner` reports which one is\n// acting so a consumer can log it. The scheduler's own stacking guard backstops the invariant.\n//\n// WHY THE FATAL CASE STILL RETRIES AT ALL: the browser abandons the stream on a 502 from a proxy that is\n// restarting, or on the 401 that follows an expired token — both routinely fix themselves. Leaving the page\n// permanently dead because a gateway blinked is worse than a bounded reconnect, and a caller who disagrees\n// passes `retry: false`.\n//\n// NAMED EVENTS ARE A MAP, NOT A SWITCH. A server sending `event: order-updated` delivers to a listener\n// registered for that exact name, and NOT to `onmessage` — a detail that silently breaks the \"I subscribed to\n// onMessage but receive nothing\" case. `options.events` registers one real listener per key, and the generic\n// parameter types each payload independently.\n\nimport { toError } from '../errors';\nimport type { RetryPolicy } from '../resilience';\n\nimport { ConnectionState, EventSourceReadyState } from './ConnectionState';\nimport { createReconnectScheduler } from './Reconnect';\n\n/**\n * The minimal `EventSource` surface this wrapper drives. Narrow on purpose: a test double or a polyfill can\n * satisfy it in a few lines, and the real `EventSource` satisfies it structurally.\n */\nexport interface EventStreamSource {\n /** The wire ready-state — see {@link EventSourceReadyState}. The branch the double-reconnect guard turns on. */\n readonly readyState: number;\n\n /** Closes the connection and stops the browser's own reconnection. */\n close(): void;\n\n /** Registers a listener for `open`, `error`, `message`, or a server-named event. */\n addEventListener(type: string, listener: (event: Event) => void): void;\n\n /** Removes a previously registered listener. */\n removeEventListener(type: string, listener: (event: Event) => void): void;\n}\n\n/** Builds the underlying source — injectable so tests and polyfills need no global. */\nexport type EventStreamSourceFactory = (url: string, init: { withCredentials: boolean }) => EventStreamSource;\n\n/** Identifies who is retrying a broken stream — the guard against reconnecting on top of the browser. */\nexport const ReconnectOwner = {\n /** Refers to the browser's own `EventSource` retry already being in flight; this wrapper stands down. */\n Browser: 'browser',\n /** Refers to the browser having given up, with this wrapper's `resilience`-scheduled retry pending. */\n Wrapper: 'wrapper',\n /** Refers to nobody retrying — reconnection is disabled, the attempt budget is spent, or the stream was closed. */\n None: 'none',\n} as const;\n\nexport type ReconnectOwner = (typeof ReconnectOwner)[keyof typeof ReconnectOwner];\n\n/** Describes a stream failure — above all, who (if anyone) is going to do something about it. */\nexport interface EventStreamErrorContext {\n /** Whoever is retrying this failure. See {@link ReconnectOwner}. */\n readonly owner: ReconnectOwner;\n\n /** The wrapper's consecutive attempt count; `0` while the browser owns the retry, since nothing is armed yet. */\n readonly attempt: number;\n\n /** The connection state after this failure was handled. */\n readonly state: ConnectionState;\n}\n\n/**\n * Maps each server event name to the payload it carries — the generic every handler in\n * {@link EventStreamOptions.events} is typed from.\n */\nexport type EventStreamPayloads = Record<string, unknown>;\n\n/** Maps event names to their handlers, each typed by that event's payload. */\nexport type EventStreamHandlers<TEvents extends EventStreamPayloads> = {\n readonly [K in keyof TEvents & string]?: (data: TEvents[K], event: MessageEvent<string>) => void;\n};\n\n/** Configures a {@link createEventStream} call. Every member is optional. */\nexport interface EventStreamOptions<TEvents extends EventStreamPayloads = EventStreamPayloads> {\n /** Handlers for server-NAMED events (`event: order-updated`). Never reach {@link EventStreamOptions.onMessage}. */\n readonly events?: EventStreamHandlers<TEvents>;\n\n /** Handles unnamed events only — the default `message` type. */\n readonly onMessage?: (data: unknown, event: MessageEvent<string>) => void;\n\n /** Fires each time the connection opens, including after every reconnect. */\n readonly onOpen?: () => void;\n\n /** Fires on every failure, with the context saying who is retrying it. */\n readonly onError?: (error: Error, context: EventStreamErrorContext) => void;\n\n /** Fires on every connection-state transition — the seam for a \"reconnecting…\" indicator. */\n readonly onStateChange?: (state: ConnectionState) => void;\n\n /** Whether to send credentials cross-origin. Default `false`. */\n readonly withCredentials?: boolean;\n\n /**\n * Decodes a frame's `data` text. Default: `JSON.parse`, falling back to the RAW STRING when the text is not\n * JSON — SSE carries text, and plain-text frames and sentinels like `[DONE]` are common enough that\n * throwing on them would be hostile. Supply this to be strict, or to decode another format.\n */\n readonly parse?: (raw: string) => unknown;\n\n /**\n * The reconnect policy for failures the browser abandons, or `false` to never reconnect.\n * Default `DefaultReconnectPolicy`.\n */\n readonly retry?: RetryPolicy | false;\n\n /** The randomness feeding backoff jitter — injectable for deterministic tests. Default `Math.random`. */\n readonly random?: () => number;\n\n /** The source factory. Default constructs a global `EventSource`; inject a double in tests. */\n readonly eventSource?: EventStreamSourceFactory;\n}\n\n/** Controls a live Server-Sent Events subscription. */\nexport interface EventStream {\n /** The current connection state — `reconnecting` covers both the browser's retry and this wrapper's. */\n readonly readyState: ConnectionState;\n\n /** Whether an `EventSource` implementation was available at all; `false` under SSR, where the stream is inert. */\n readonly supported: boolean;\n\n /** The wrapper's consecutive reconnect attempts, zeroed on every successful open. */\n readonly attempts: number;\n\n /**\n * Closes the stream, cancels any pending reconnect, and detaches every listener. Idempotent; suppresses all\n * further reconnection.\n */\n close(): void;\n}\n\n/** Decodes frame text as JSON, falling back to the raw string — see {@link EventStreamOptions.parse}. */\nfunction parseFrame(raw: string): unknown {\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return raw;\n }\n}\n\n/** Reads a listener's event as a message frame; non-string `data` is coerced so a double can pass plain objects. */\nfunction frameTextOf(event: Event): { text: string; message: MessageEvent<string> } {\n const message = event as MessageEvent<string>;\n const data: unknown = message.data;\n return { text: typeof data === 'string' ? data : String(data), message };\n}\n\n/** Resolves the source factory: the injected one, else global `EventSource`, else `undefined` (SSR / unsupported). */\nfunction resolveSourceFactory(injected?: EventStreamSourceFactory): EventStreamSourceFactory | undefined {\n if (injected !== undefined) return injected;\n if (typeof EventSource === 'undefined') return undefined;\n return (url, init) => new EventSource(url, init);\n}\n\n/**\n * Opens a Server-Sent Events stream with typed named-event handlers and a reconnect that defers to the\n * browser's own — see this file's header for how the double-reconnect is avoided.\n *\n * Never throws, at import time or at call time. Where `EventSource` does not exist (SSR, a locked-down\n * runtime) the returned stream reports `supported: false` and state `closed`, and every method is a no-op —\n * a defined answer rather than an exception a render cannot catch.\n *\n * @typeParam TEvents - Maps each server event name to its payload type.\n * @param url - The stream endpoint.\n * @param options - Handlers, retry policy, parsing, and injection seams.\n * @returns The stream handle. ALWAYS call `close()` when done — an open `EventSource` survives navigation\n * within an SPA and keeps both the connection and every captured handler alive.\n */\nexport function createEventStream<TEvents extends EventStreamPayloads = EventStreamPayloads>(\n url: string,\n options: EventStreamOptions<TEvents> = {},\n): EventStream {\n const {\n events,\n onMessage,\n onOpen,\n onError,\n onStateChange,\n withCredentials = false,\n parse = parseFrame,\n retry,\n random,\n eventSource,\n } = options;\n\n const factory = resolveSourceFactory(eventSource);\n const scheduler = createReconnectScheduler({ retry, random });\n\n let state: ConnectionState = ConnectionState.Connecting;\n let source: EventStreamSource | undefined;\n let detach: (() => void) | undefined;\n let closed = false;\n\n /** Publishes a state transition, skipping no-op repeats so a consumer's `onStateChange` is not spammed. */\n const setState = (next: ConnectionState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Reports a failure, tolerating a throwing consumer handler — a bad listener must not break the transport. */\n const report = (error: unknown, owner: ReconnectOwner, attempt: number): void => {\n try {\n onError?.(toError(error), { owner, attempt, state });\n } catch {\n // Swallowed by contract: this runs from a DOM event handler, where a throw is unhandleable noise.\n }\n };\n\n /** Binds every listener to a source and returns the matching detach — one closure so no listener can be missed. */\n const bind = (target: EventStreamSource): (() => void) => {\n const bound: [type: string, listener: (event: Event) => void][] = [];\n\n /** Registers a listener and records it for the paired detach. */\n const on = (type: string, listener: (event: Event) => void): void => {\n target.addEventListener(type, listener);\n bound.push([type, listener]);\n };\n\n on('open', () => {\n // A successful open zeroes the attempt counter — otherwise a long-lived stream that blipped once\n // spends the rest of the session starting from the maximum delay.\n scheduler.reset();\n setState(ConnectionState.Open);\n onOpen?.();\n });\n\n // The `error` event itself carries nothing useful — the spec gives it no reason, no status, no body.\n // Everything actionable is in `readyState`, which is why only the source is passed on.\n on('error', () => handleError(target));\n\n if (onMessage !== undefined) {\n on('message', (event) => {\n const { text, message } = frameTextOf(event);\n onMessage(parse(text), message);\n });\n }\n\n for (const name of Object.keys(events ?? {})) {\n const handler = (events as Record<string, ((data: unknown, event: MessageEvent<string>) => void) | undefined>)[\n name\n ];\n if (handler === undefined) continue;\n on(name, (event) => {\n const { text, message } = frameTextOf(event);\n handler(parse(text), message);\n });\n }\n\n return () => {\n for (const entry of bound) target.removeEventListener(entry[0], entry[1]);\n bound.length = 0;\n };\n };\n\n /** Opens a source and binds it; a constructor throw (a malformed URL) is reported, not propagated. */\n const connect = (): void => {\n if (closed || factory === undefined) return;\n\n setState(scheduler.attempts === 0 ? ConnectionState.Connecting : ConnectionState.Reconnecting);\n\n let opened: EventStreamSource;\n try {\n opened = factory(url, { withCredentials });\n } catch (error) {\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n report(error, scheduled ? ReconnectOwner.Wrapper : ReconnectOwner.None, scheduler.attempts);\n return;\n }\n\n source = opened;\n detach = bind(opened);\n };\n\n /** The double-reconnect guard: branch on the wire ready-state, never retry what the browser is already retrying. */\n function handleError(target: EventStreamSource): void {\n if (closed) return;\n\n // The browser is mid-reconnect on this very object. Arming anything here is the duplicate-connection bug.\n if (target.readyState === EventSourceReadyState.Connecting) {\n setState(ConnectionState.Reconnecting);\n report(new Error(`The event stream to ${url} dropped; the browser is reconnecting.`), ReconnectOwner.Browser, 0);\n return;\n }\n\n // `CLOSED` — the browser will do nothing further. Tear the dead object down completely before replacing\n // it: an un-detached listener on a closed source still pins every closure it captured.\n detach?.();\n detach = undefined;\n target.close();\n source = undefined;\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n report(\n new Error(`The event stream to ${url} failed and the browser stopped retrying.`),\n scheduled ? ReconnectOwner.Wrapper : ReconnectOwner.None,\n scheduler.attempts,\n );\n }\n\n if (factory === undefined) {\n // Unsupported: a defined, inert answer. No throw, no listeners, no timers.\n state = ConnectionState.Closed;\n return {\n get readyState() {\n return state;\n },\n supported: false,\n get attempts() {\n return 0;\n },\n close: () => undefined,\n };\n }\n\n connect();\n\n return {\n get readyState() {\n return state;\n },\n supported: true,\n get attempts() {\n return scheduler.attempts;\n },\n close(): void {\n if (closed) return;\n closed = true;\n scheduler.cancel();\n detach?.();\n detach = undefined;\n source?.close();\n source = undefined;\n setState(ConnectionState.Closed);\n },\n };\n}\n","// Vue binding for `createEventStream` — one stream per scope, closed when the scope is disposed.\n//\n// THE LIFETIME RULE THIS ENFORCES: an `EventSource` is a live HTTP connection that outlives the component\n// that opened it. Nothing about unmounting a tree closes it, so a route change away from a page holding an\n// un-closed stream leaves the connection open, the handlers subscribed, and the reconnect timer armed — and\n// navigating back opens a SECOND one. Binding the stream to `onMounted` / `onScopeDispose` makes the teardown\n// automatic.\n//\n// OPENED FROM `onMounted`, NEVER FROM AN IMMEDIATE WATCHER. `createEventStream` resolves `EventSource` inside\n// the call, and an immediate watcher also runs during a server render. `onMounted` is client-only by\n// construction, so the SSR pass reports `closed` / `supported: true` and the stream opens at hydration.\n//\n// HANDLERS ARE READ THROUGH `toValue` AT CALL TIME, the Vue counterpart of the original's handlers-in-a-ref.\n// A component's `setup` runs once, so a plain options object is already stable — but a caller that wants\n// genuinely live handlers can pass a ref or getter and every callback re-reads it per event, with the stream\n// itself staying put.\n//\n// OPTIONS ARE READ ONCE, when the stream opens. Changing `retry`, `events`, or `withCredentials` after mount\n// does NOT rebuild the stream; only `url` does. Options are configuration, not state — a consumer that must\n// genuinely swap them at runtime should remount with a `key`. This mirrors `useSyncChannel` in\n// `foundation/channels`.\n//\n// A `null` URL MEANS \"NOT YET\", not \"broken\" — the shape every real app needs while it waits for a token or a\n// route param. No stream is opened, and the state reads `closed`.\n\nimport { onMounted, onScopeDispose, shallowRef, toValue, watch, type MaybeRefOrGetter, type ShallowRef } from 'vue';\n\nimport { ConnectionState } from '../ConnectionState';\nimport {\n createEventStream,\n type EventStream,\n type EventStreamOptions,\n type EventStreamPayloads,\n} from '../CreateEventStream';\n\n/** The live view a scope gets over its stream. */\nexport interface EventStreamHandle {\n /** The current connection state, updating on every transition. */\n readonly readyState: Readonly<ShallowRef<ConnectionState>>;\n\n /** Whether `EventSource` exists in this runtime; `false` under SSR and in a locked-down browser. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /** Closes the stream early. The scope-disposal cleanup calls it anyway. */\n readonly close: () => void;\n}\n\n/**\n * Opens a Server-Sent Events stream for the lifetime of the scope.\n *\n * The stream is closed when the scope is disposed and re-opened whenever `url` changes. Pass `null` to hold\n * off connecting (waiting for auth, a route param, a feature flag) — a ref or getter is how that flips.\n *\n * @typeParam TEvents - Maps each server event name to its payload type.\n * @param url - The stream endpoint, or `null` to stay disconnected.\n * @param options - Handlers and configuration, read once when the stream opens; handler callbacks are re-read\n * per event, so a ref or getter keeps them live.\n * @returns The connection state, support flag, and `close`.\n */\nexport function useEventStream<TEvents extends EventStreamPayloads = EventStreamPayloads>(\n url: MaybeRefOrGetter<string | null>,\n options: MaybeRefOrGetter<EventStreamOptions<TEvents>> = {},\n): EventStreamHandle {\n const readyState = shallowRef<ConnectionState>(\n toValue(url) === null ? ConnectionState.Closed : ConnectionState.Connecting,\n );\n const supported = shallowRef(true);\n\n let stream: EventStream | null = null;\n\n function teardown(): void {\n stream?.close();\n stream = null;\n }\n\n function open(): void {\n teardown();\n\n const endpoint = toValue(url);\n if (endpoint === null) {\n readyState.value = ConnectionState.Closed;\n return;\n }\n\n const current = toValue(options);\n const next = createEventStream<TEvents>(endpoint, {\n ...current,\n // Every consumer callback is re-read through `toValue` at call time, which is what lets the watcher\n // depend on `url` alone. `onStateChange` is additionally intercepted to drive this scope's own state.\n onStateChange: (state) => {\n readyState.value = state;\n toValue(options).onStateChange?.(state);\n },\n onOpen: () => toValue(options).onOpen?.(),\n onError: (error, context) => toValue(options).onError?.(error, context),\n onMessage: (data, event) => toValue(options).onMessage?.(data, event),\n });\n\n stream = next;\n supported.value = next.supported;\n readyState.value = next.readyState;\n }\n\n onMounted(open);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `EventSource` is absent.\n watch(() => toValue(url), open);\n onScopeDispose(teardown);\n\n const close = (): void => {\n stream?.close();\n };\n\n return { readyState, supported, close };\n}\n","// A WebSocket client that fixes the three bugs every hand-rolled one has: dropped early sends, an\n// intentional close that reconnects anyway, and a half-open socket nobody notices.\n//\n// (1) MESSAGES SENT WHILE `CONNECTING` ARE LOST. A `WebSocket` is not usable the moment it is constructed —\n// the handshake takes a round trip, and `send()` during `CONNECTING` throws `InvalidStateError`. The bug is\n// not the throw; it is that the throw happens in code that looks obviously correct (`const s =\n// createSocket(); s.send(hello)`) and disappears on a fast local connection, so it ships. This client QUEUES\n// anything sent before `OPEN` and flushes it, in order, on open — the same queue that covers sends during a\n// reconnect, when the socket is `CONNECTING` again for seconds at a time.\n//\n// The queue is BOUNDED (`queueLimit`, default 100) and drops the OLDEST frame when full. Unbounded is not an\n// option: a tab left open through an hour-long outage would otherwise accumulate every frame the app ever\n// tried to send and hand the server all of them at once on reconnect. Oldest-first is the right end to drop\n// for the state-update traffic sockets usually carry, where the newest frame supersedes the ones behind it —\n// a caller whose messages are commands rather than state should keep `queueLimit` small and watch\n// `queuedCount`.\n//\n// (2) AN INTENTIONAL `close()` MUST NOT RECONNECT. `onclose` fires for a network drop and for a deliberate\n// close identically, so a reconnect handler wired to it fights every logout, unmount, and navigation — the\n// socket keeps coming back, usually with the OLD credentials. A single `closedByCaller` flag, set before the\n// close is requested, is the whole fix; every reconnect path checks it.\n//\n// (3) A HALF-OPEN SOCKET REPORTS `OPEN` FOREVER. When a peer vanishes without a close frame — a laptop lid, a\n// dropped NAT entry, a killed load balancer — TCP has nothing to report, so `onclose` never fires and\n// `readyState` stays `OPEN`. The connection is dead and the app cannot tell. The only detector is an\n// application-level heartbeat: send a ping, require traffic back within a deadline, treat silence as death\n// and reconnect. Note the ping MUST be application-level — the WebSocket protocol has real ping/pong frames,\n// but browsers expose no API to send one, so a server-side-only heartbeat cannot be observed from here.\n//\n// ANY INBOUND FRAME CLEARS THE PONG DEADLINE, not just a frame matching some pong shape. A socket delivering\n// data is alive by definition, so requiring a specific reply would kill healthy busy connections whose pong\n// is merely queued behind other traffic. This also means a server needs no pong support at all for the\n// heartbeat to be useful on a chatty socket.\n//\n// All reconnect delays come from `Reconnect.ts`, hence from `foundation/resilience`. None are computed here.\n\nimport { toError } from '../errors';\nimport type { RetryPolicy } from '../resilience';\n\nimport { ConnectionState, SocketReadyState } from './ConnectionState';\nimport { createReconnectScheduler } from './Reconnect';\n\n/** The default cap on frames buffered while the socket is not open. */\nconst DefaultQueueLimit = 100;\n\n/** The default ping frame — an application-level heartbeat, since browsers cannot send protocol pings. */\nconst DefaultPingFrame = (): string => JSON.stringify({ type: 'ping' });\n\n/**\n * The minimal `WebSocket` surface this client drives. Narrow on purpose: a test double satisfies it in a few\n * lines, and the real `WebSocket` satisfies it structurally.\n */\nexport interface SocketConnection {\n /** The wire ready-state — see {@link SocketReadyState}. Gates every send. */\n readonly readyState: number;\n\n /** Sends one text frame. Throws while `CONNECTING`, which is exactly what the queue exists to prevent. */\n send(data: string): void;\n\n /** Starts the close handshake. */\n close(code?: number, reason?: string): void;\n\n /** Registers a listener for `open`, `close`, `error`, or `message`. */\n addEventListener(type: string, listener: (event: Event) => void): void;\n\n /** Removes a previously registered listener. */\n removeEventListener(type: string, listener: (event: Event) => void): void;\n}\n\n/** Builds the underlying socket — injectable so tests and polyfills need no global. */\nexport type SocketFactory = (url: string, protocols?: string | ReadonlyArray<string>) => SocketConnection;\n\n/** Configures the liveness heartbeat that detects a half-open socket. */\nexport interface SocketHeartbeatOptions {\n /** The interval (ms) between pings. */\n readonly intervalMs: number;\n\n /** The silence (ms) after a ping before the socket is declared dead and reconnected. Default: the interval. */\n readonly timeoutMs?: number;\n\n /** Builds the ping frame. Default `{\"type\":\"ping\"}`. Return the exact text your server expects. */\n readonly ping?: () => string;\n}\n\n/** Configures a {@link createSocketClient} call. Every member is optional. */\nexport interface SocketClientOptions<TIn = unknown, TOut = unknown> {\n /** The subprotocols offered during the handshake. */\n readonly protocols?: string | ReadonlyArray<string>;\n\n /** Receives every decoded inbound message. Frames that fail to decode go to {@link SocketClientOptions.onError}. */\n readonly onMessage?: (message: TIn, event: MessageEvent) => void;\n\n /** Fires each time the socket opens, including after every reconnect and BEFORE the queue is flushed. */\n readonly onOpen?: () => void;\n\n /** Fires on every close, with `wasClean` distinguishing a handshake close from a drop. */\n readonly onClose?: (event: CloseEvent) => void;\n\n /** Fires on a socket error, a decode failure, or a send that the transport rejected. */\n readonly onError?: (error: Error) => void;\n\n /** Fires on every connection-state transition — the seam for a \"reconnecting…\" indicator. */\n readonly onStateChange?: (state: ConnectionState) => void;\n\n /** Encodes an outbound message. Default `JSON.stringify`. */\n readonly serialize?: (message: TOut) => string;\n\n /** Decodes an inbound frame. Default `JSON.parse`. A throw here is reported, and the frame is dropped. */\n readonly deserialize?: (raw: string) => TIn;\n\n /** The reconnect policy, or `false` to never reconnect. Default `DefaultReconnectPolicy`. */\n readonly retry?: RetryPolicy | false;\n\n /** The half-open detector. Omit to disable heartbeating entirely. */\n readonly heartbeat?: SocketHeartbeatOptions;\n\n /** The cap on frames buffered while not open; the oldest is dropped when full. Default `100`. */\n readonly queueLimit?: number;\n\n /** The randomness feeding backoff jitter — injectable for deterministic tests. Default `Math.random`. */\n readonly random?: () => number;\n\n /** The socket factory. Default constructs a global `WebSocket`; inject a double in tests. */\n readonly socket?: SocketFactory;\n}\n\n/** Controls a live WebSocket connection. */\nexport interface SocketClient<TOut = unknown> {\n /** The current connection state. */\n readonly readyState: ConnectionState;\n\n /** Whether a `WebSocket` implementation was available at all; `false` under SSR, where the client is inert. */\n readonly supported: boolean;\n\n /** The number of frames buffered awaiting an open socket — non-zero means back-pressure or an outage. */\n readonly queuedCount: number;\n\n /** The consecutive reconnect attempts, zeroed on every successful open. */\n readonly attempts: number;\n\n /**\n * Sends a message, queueing it when the socket is not open yet.\n *\n * @param message - The payload, encoded by `serialize`.\n * @returns `true` when the frame went out immediately, `false` when it was queued or dropped.\n */\n send(message: TOut): boolean;\n\n /** Closes the socket, cancels reconnection permanently, clears the heartbeat, detaches all listeners. Idempotent. */\n close(code?: number, reason?: string): void;\n}\n\n/** Resolves the socket factory: the injected one, else the global `WebSocket`, else `undefined` (SSR / unsupported). */\nfunction resolveSocketFactory(injected?: SocketFactory): SocketFactory | undefined {\n if (injected !== undefined) return injected;\n if (typeof WebSocket === 'undefined') return undefined;\n return (url, protocols) => new WebSocket(url, protocols as string | string[] | undefined);\n}\n\n/**\n * Opens a JSON WebSocket with a send queue, `resilience`-scheduled reconnection, and a half-open detector —\n * see this file's header for the three bugs each of those exists to prevent.\n *\n * Never throws, at import time or at call time. Where `WebSocket` does not exist (SSR) the returned client\n * reports `supported: false` and state `closed`, `send` returns `false`, and `close` is a no-op.\n *\n * @typeParam TIn - The decoded inbound message type.\n * @typeParam TOut - The outbound message type.\n * @param url - The socket endpoint (`ws://` or `wss://`).\n * @param options - Handlers, retry policy, heartbeat, codecs, and injection seams.\n * @returns The client handle. ALWAYS call `close()` when done — an abandoned socket keeps its connection, its\n * heartbeat timers, and every captured handler alive.\n */\nexport function createSocketClient<TIn = unknown, TOut = unknown>(\n url: string,\n options: SocketClientOptions<TIn, TOut> = {},\n): SocketClient<TOut> {\n const {\n protocols,\n onMessage,\n onOpen,\n onClose,\n onError,\n onStateChange,\n serialize = (message: TOut) => JSON.stringify(message),\n deserialize = (raw: string) => JSON.parse(raw) as TIn,\n retry,\n heartbeat,\n queueLimit = DefaultQueueLimit,\n random,\n socket: socketFactory,\n } = options;\n\n const factory = resolveSocketFactory(socketFactory);\n const scheduler = createReconnectScheduler({ retry, random });\n\n /** Frames buffered while the socket is not `OPEN`, oldest first. */\n const queue: string[] = [];\n\n let state: ConnectionState = ConnectionState.Connecting;\n let connection: SocketConnection | undefined;\n let detach: (() => void) | undefined;\n let closedByCaller = false;\n let pingTimer: ReturnType<typeof setInterval> | undefined;\n let pongTimer: ReturnType<typeof setTimeout> | undefined;\n\n /** Publishes a state transition, skipping no-op repeats. */\n const setState = (next: ConnectionState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Reports an error, tolerating a throwing consumer handler — a bad listener must not break the transport. */\n const report = (error: unknown): void => {\n try {\n onError?.(toError(error));\n } catch {\n // Swallowed by contract: this runs from a DOM event handler, where a throw is unhandleable noise.\n }\n };\n\n /** Stops both heartbeat timers. Runs on every close and every drop, so neither can outlive its socket. */\n const stopHeartbeat = (): void => {\n if (pingTimer !== undefined) {\n clearInterval(pingTimer);\n pingTimer = undefined;\n }\n if (pongTimer !== undefined) {\n clearTimeout(pongTimer);\n pongTimer = undefined;\n }\n };\n\n /** Clears the pong deadline — called for ANY inbound frame, since traffic is proof of life. */\n const noteTraffic = (): void => {\n if (pongTimer !== undefined) {\n clearTimeout(pongTimer);\n pongTimer = undefined;\n }\n };\n\n /** Tears the current socket down and reconnects — the path for a drop, NOT for a caller's close. */\n const recycle = (): void => {\n if (closedByCaller) return;\n\n stopHeartbeat();\n // Detach BEFORE closing: our own `close` would otherwise fire the close handler, which would schedule a\n // second reconnect on top of this one.\n detach?.();\n detach = undefined;\n const dying = connection;\n connection = undefined;\n try {\n dying?.close();\n } catch {\n // A socket already dead rejects `close()` in some runtimes; nothing to recover.\n }\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n };\n\n /** Starts the heartbeat for a freshly opened socket, if one is configured. */\n const startHeartbeat = (): void => {\n if (heartbeat === undefined) return;\n\n const { intervalMs, timeoutMs = heartbeat.intervalMs, ping = DefaultPingFrame } = heartbeat;\n if (!Number.isFinite(intervalMs) || intervalMs <= 0) return;\n\n pingTimer = setInterval(() => {\n const live = connection;\n if (live === undefined || live.readyState !== SocketReadyState.Open) return;\n\n try {\n live.send(ping());\n } catch (error) {\n report(error);\n }\n\n // Arm the deadline only if one is not already running: back-to-back pings with no traffic between them\n // must not each reset the clock, or a dead socket is never detected.\n if (pongTimer !== undefined) return;\n pongTimer = setTimeout(() => {\n pongTimer = undefined;\n report(new Error(`The socket to ${url} missed its heartbeat; treating it as half-open.`));\n recycle();\n }, timeoutMs);\n }, intervalMs);\n };\n\n /** Writes every buffered frame in order on open. A rejected frame is reported and dropped, never re-queued. */\n const flushQueue = (target: SocketConnection): void => {\n const pending = queue.splice(0, queue.length);\n for (const frame of pending) {\n try {\n target.send(frame);\n } catch (error) {\n report(error);\n }\n }\n };\n\n /** Binds every listener to a socket and returns the matching detach — one closure so no listener can be missed. */\n const bind = (target: SocketConnection): (() => void) => {\n const bound: [type: string, listener: (event: Event) => void][] = [];\n\n /** Registers a listener and records it for the paired detach. */\n const on = (type: string, listener: (event: Event) => void): void => {\n target.addEventListener(type, listener);\n bound.push([type, listener]);\n };\n\n on('open', () => {\n scheduler.reset();\n setState(ConnectionState.Open);\n if (closedByCaller || connection !== target) return;\n onOpen?.();\n if (closedByCaller || connection !== target) return;\n // Flush AFTER `onOpen`, so a handler that sends a subscribe/auth frame on connect lands ahead of the\n // backlog rather than behind it — the ordering a protocol with a handshake requires.\n flushQueue(target);\n startHeartbeat();\n });\n\n on('message', (event) => {\n noteTraffic();\n if (onMessage === undefined) return;\n\n const message = event as MessageEvent;\n const data: unknown = message.data;\n if (typeof data !== 'string') {\n // Binary frames are out of scope for a JSON client; reporting beats silently dropping.\n report(new Error(`The socket to ${url} delivered a non-text frame, which this client cannot decode.`));\n return;\n }\n\n let decoded: TIn;\n try {\n decoded = deserialize(data);\n } catch (error) {\n report(error);\n return;\n }\n onMessage(decoded, message);\n });\n\n on('error', () => {\n // The `error` event carries no detail by design (it would leak cross-origin information). The close\n // that follows is what actually drives reconnection.\n report(new Error(`The socket to ${url} reported an error.`));\n });\n\n on('close', (event) => {\n stopHeartbeat();\n onClose?.(event as CloseEvent);\n if (closedByCaller) return;\n\n detach?.();\n detach = undefined;\n connection = undefined;\n\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n });\n\n return () => {\n for (const entry of bound) target.removeEventListener(entry[0], entry[1]);\n bound.length = 0;\n };\n };\n\n /** Opens a socket and binds it; a constructor throw (a bad URL scheme) is reported and retried, not propagated. */\n function connect(): void {\n if (closedByCaller || factory === undefined) return;\n\n setState(scheduler.attempts === 0 ? ConnectionState.Connecting : ConnectionState.Reconnecting);\n\n let opened: SocketConnection;\n try {\n opened = factory(url, protocols);\n } catch (error) {\n report(error);\n const scheduled = scheduler.schedule(connect);\n setState(scheduled ? ConnectionState.Reconnecting : ConnectionState.Closed);\n return;\n }\n\n connection = opened;\n detach = bind(opened);\n }\n\n if (factory === undefined) {\n // Unsupported: a defined, inert answer. No throw, no listeners, no timers.\n state = ConnectionState.Closed;\n return {\n get readyState() {\n return state;\n },\n supported: false,\n get queuedCount() {\n return 0;\n },\n get attempts() {\n return 0;\n },\n send: () => false,\n close: () => undefined,\n };\n }\n\n connect();\n\n return {\n get readyState() {\n return state;\n },\n supported: true,\n get queuedCount() {\n return queue.length;\n },\n get attempts() {\n return scheduler.attempts;\n },\n\n send(message: TOut): boolean {\n // A closed client silently drops rather than buffering forever — nothing will ever flush the queue.\n if (closedByCaller) return false;\n\n let frame: string;\n try {\n frame = serialize(message);\n } catch (error) {\n report(error);\n return false;\n }\n\n const live = connection;\n if (live !== undefined && live.readyState === SocketReadyState.Open) {\n try {\n live.send(frame);\n return true;\n } catch (error) {\n // The socket claimed `OPEN` and refused anyway (a race with a close). Queue it for the reconnect\n // rather than losing it.\n report(error);\n }\n }\n\n queue.push(frame);\n if (queue.length > queueLimit) queue.splice(0, queue.length - queueLimit);\n return false;\n },\n\n close(code?: number, reason?: string): void {\n if (closedByCaller) return;\n // Set BEFORE requesting the close, so the `close` event this triggers sees the flag and stands down.\n closedByCaller = true;\n scheduler.cancel();\n stopHeartbeat();\n queue.length = 0;\n\n const dying = connection;\n connection = undefined;\n try {\n dying?.close(code, reason);\n } catch {\n // A socket already dead rejects `close()` in some runtimes; nothing to recover.\n }\n detach?.();\n detach = undefined;\n setState(ConnectionState.Closed);\n },\n };\n}\n","// Vue binding for `createSocketClient` — one socket per scope, closed when the scope is disposed.\n//\n// THE LIFETIME RULE THIS ENFORCES: a `WebSocket` abandoned by its component stays connected, keeps its\n// heartbeat interval running, and keeps reconnecting on backoff — forever, since nothing else holds a\n// reference with which to close it. In an SPA that is one leaked socket per visit to the page, and the server\n// sees the connection count climb with no matching users. Binding the client to `onMounted` /\n// `onScopeDispose` makes the teardown automatic.\n//\n// OPENED FROM `onMounted`, NEVER FROM AN IMMEDIATE WATCHER. `createSocketClient` resolves `WebSocket` inside\n// the call, and an immediate watcher also runs during a server render, where that global does not exist.\n//\n// THE RETURNED `send` IS ALWAYS SAFE TO CALL. It reads the current client from the closure, so it never goes\n// stale, and it works BEFORE the socket finishes connecting — the client's queue is what makes that true (see\n// `CreateSocketClient.ts`, bug 1). Calling it after disposal is a no-op rather than a crash, which matters\n// because an in-flight event handler routinely outlives the tree.\n//\n// HANDLERS ARE READ THROUGH `toValue` AT CALL TIME, options are read once, and a `null` URL means \"not yet\" —\n// same three rules as `useEventStream`, for the same reasons.\n\nimport { onMounted, onScopeDispose, shallowRef, toValue, watch, type MaybeRefOrGetter, type ShallowRef } from 'vue';\n\nimport { ConnectionState } from '../ConnectionState';\nimport { createSocketClient, type SocketClient, type SocketClientOptions } from '../CreateSocketClient';\n\n/** The live view a scope gets over its socket. */\nexport interface SocketHandle<TOut> {\n /** The current connection state, updating on every transition. */\n readonly readyState: Readonly<ShallowRef<ConnectionState>>;\n\n /** Whether `WebSocket` exists in this runtime; `false` under SSR. */\n readonly supported: Readonly<ShallowRef<boolean>>;\n\n /**\n * Sends a message, queueing it while the socket is still connecting.\n *\n * @returns `true` when the frame went out immediately, `false` when queued, dropped, or disposed.\n */\n readonly send: (message: TOut) => boolean;\n\n /** Closes the socket early and suppresses reconnection. The scope-disposal cleanup calls it anyway. */\n readonly close: () => void;\n}\n\n/**\n * Opens a JSON WebSocket for the lifetime of the scope.\n *\n * The socket is closed when the scope is disposed and re-opened whenever `url` changes. Pass `null` to hold\n * off connecting (waiting for auth, a route param, a feature flag) — a ref or getter is how that flips.\n *\n * @typeParam TIn - The decoded inbound message type.\n * @typeParam TOut - The outbound message type.\n * @param url - The socket endpoint, or `null` to stay disconnected.\n * @param options - Handlers and configuration, read once when the socket opens; handler callbacks are re-read\n * per message, so a ref or getter keeps them live.\n * @returns The connection state, support flag, and `send` / `close`.\n */\nexport function useSocket<TIn = unknown, TOut = unknown>(\n url: MaybeRefOrGetter<string | null>,\n options: MaybeRefOrGetter<SocketClientOptions<TIn, TOut>> = {},\n): SocketHandle<TOut> {\n const readyState = shallowRef<ConnectionState>(\n toValue(url) === null ? ConnectionState.Closed : ConnectionState.Connecting,\n );\n const supported = shallowRef(true);\n\n let client: SocketClient<TOut> | null = null;\n\n function teardown(): void {\n client?.close();\n client = null;\n }\n\n function open(): void {\n teardown();\n\n const endpoint = toValue(url);\n if (endpoint === null) {\n readyState.value = ConnectionState.Closed;\n return;\n }\n\n const current = toValue(options);\n const next = createSocketClient<TIn, TOut>(endpoint, {\n ...current,\n // Every consumer callback is re-read through `toValue` at call time, which is what lets the watcher\n // depend on `url` alone. `onStateChange` is additionally intercepted to drive this scope's own state.\n onStateChange: (state) => {\n readyState.value = state;\n toValue(options).onStateChange?.(state);\n },\n onOpen: () => toValue(options).onOpen?.(),\n onClose: (event) => toValue(options).onClose?.(event),\n onError: (error) => toValue(options).onError?.(error),\n onMessage: (message, event) => toValue(options).onMessage?.(message, event),\n });\n\n client = next;\n supported.value = next.supported;\n readyState.value = next.readyState;\n }\n\n onMounted(open);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `WebSocket` is absent.\n watch(() => toValue(url), open);\n onScopeDispose(teardown);\n\n const send = (message: TOut): boolean => client?.send(message) ?? false;\n\n const close = (): void => {\n client?.close();\n };\n\n return { readyState, supported, send, close };\n}\n","// Connectivity as a NON-VUE signal, for the factories in this slice that are plain functions and cannot\n// call a composable.\n//\n// RELATIONSHIP TO `foundation/device`'s `useOnlineStatus` — READ BEFORE ADDING ANOTHER TRACKER. That\n// composable is and remains THE Vue binding for connectivity; nothing here replaces it, and a component must\n// keep using it. But `createPoller` and `waitForOnline` are framework-agnostic factories called from timers,\n// effects, and `catch` blocks, where a composable is illegal. `device` keeps its reader module-private, so the\n// choice was to export a reader from `device` (widening a slice this one has no business editing, and one\n// another lane may be touching) or to keep a five-line reader here. This is the five-line reader, and it\n// MIRRORS the composable's\n// semantics deliberately: same optimistic default, same guarded read, same two events. If either changes,\n// change both.\n//\n// WHAT `navigator.onLine` IS WORTH, restated because every caller gets this wrong: `false` is trustworthy\n// (the browser knows there is no link); `true` only means a link exists — a captive portal, a dead VPN, or a\n// server that is simply down all report `true`. So this drives \"stop polling, nothing can succeed\" and\n// \"wait before retrying\", never \"we are online, therefore this will work\".\n//\n// `waitForOnline` RESOLVES A VERDICT AND NEVER THROWS, which is a deliberate deviation from `withTimeout` in\n// `foundation/async` (that one rejects with a `TimeoutError`). Every call site for this function is ALREADY\n// inside a failure path — a mutation just failed and the caller is deciding whether to retry. Rejecting\n// there forces a nested try/catch around the recovery logic to distinguish \"still offline\" from a real\n// fault, and a missed catch turns a recoverable failure into an unhandled rejection. A boolean reads as the\n// question actually being asked: `if (await waitForOnline({ timeoutMs: 5_000 })) retry();`.\n\n/**\n * Reads `navigator.onLine`, defaulting to online when there is no `navigator` (SSR), when the property is\n * missing (a partial polyfill), or when the read throws.\n *\n * Mirrors `useOnlineStatus`'s reader exactly — see this file's header for why the duplication is deliberate.\n *\n * @returns `true` while the browser reports a network link; optimistically `true` when unreadable.\n */\nexport function readOnlineStatus(): boolean {\n try {\n if (typeof navigator === 'undefined') return true;\n return navigator.onLine !== false;\n } catch {\n return true;\n }\n}\n\n/**\n * Subscribes to connectivity changes via the window `online` / `offline` events.\n *\n * A no-op returning a no-op disposer when there is no `window` (SSR), so callers need no environment branch.\n * The listener receives the new status, never a raw `Event`.\n *\n * @param listener - Invoked with `true` on `online` and `false` on `offline`.\n * @returns A disposer that detaches both listeners; safe to call more than once.\n */\nexport function subscribeOnline(listener: (online: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => undefined;\n\n const target = window;\n const onOnline = (): void => listener(true);\n const onOffline = (): void => listener(false);\n\n target.addEventListener('online', onOnline);\n target.addEventListener('offline', onOffline);\n\n let detached = false;\n return () => {\n if (detached) return;\n detached = true;\n target.removeEventListener('online', onOnline);\n target.removeEventListener('offline', onOffline);\n };\n}\n\n/** Configures a {@link waitForOnline} call. Every member is optional. */\nexport interface WaitForOnlineOptions {\n /** Max wait (ms) before resolving `false`. Omit, or pass a non-positive value, to wait indefinitely. */\n readonly timeoutMs?: number;\n\n /** Abandons the wait early, resolving `false` — an abort is a \"stop waiting\" verdict here, never a rejection. */\n readonly signal?: AbortSignal;\n}\n\n/**\n * Waits for connectivity to come back, resolving `true` the moment it does.\n *\n * Resolves `true` immediately when already online, and `false` when the timeout lapses or the signal aborts —\n * never rejects, and never leaves a timer or a listener behind on any of those paths. Under SSR, or wherever\n * connectivity cannot be observed, it resolves `true` at once rather than hanging on an event that can never\n * arrive.\n *\n * Remember what a `true` verdict is worth (see this file's header): it says a link exists, not that the\n * server is reachable. Use it to gate a retry, then let the retry decide.\n *\n * @param options - The deadline and cancellation signal.\n * @returns `true` when connectivity is (or becomes) available; `false` on timeout or abort.\n */\nexport function waitForOnline(options: WaitForOnlineOptions = {}): Promise<boolean> {\n const { timeoutMs, signal } = options;\n\n if (readOnlineStatus()) return Promise.resolve(true);\n if (signal?.aborted === true) return Promise.resolve(false);\n // Nothing to listen on — an indefinite wait here could never be satisfied, so answer with the current read\n // instead of hanging forever.\n if (typeof window === 'undefined') return Promise.resolve(readOnlineStatus());\n\n return new Promise<boolean>((resolve) => {\n let settled = false;\n let unsubscribe: (() => void) | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let onAbort: (() => void) | undefined;\n\n /** The single teardown every exit path runs — timer, connectivity listeners, and abort listener alike. */\n const cleanup = (): void => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n unsubscribe?.();\n unsubscribe = undefined;\n if (signal !== undefined && onAbort !== undefined) {\n signal.removeEventListener('abort', onAbort);\n onAbort = undefined;\n }\n };\n\n /** Settles once and only once — three racing sources can all fire in the same tick. */\n const finish = (online: boolean): void => {\n if (settled) return;\n settled = true;\n cleanup();\n resolve(online);\n };\n\n unsubscribe = subscribeOnline((online) => {\n if (online) finish(true);\n });\n\n if (timeoutMs !== undefined && timeoutMs > 0 && Number.isFinite(timeoutMs)) {\n timer = setTimeout(() => {\n timer = undefined;\n finish(false);\n }, timeoutMs);\n }\n\n if (signal !== undefined) {\n const listener = (): void => finish(false);\n onAbort = listener;\n signal.addEventListener('abort', listener, { once: true });\n }\n });\n}\n","// Interval polling that stops burning quota when nobody is looking.\n//\n// WHY A HIDDEN TAB MUST NOT POLL: a background tab is invisible, not closed. A 10-second poll left running\n// across a workday is thousands of requests nobody will ever see the result of — paid for in the user's\n// battery, the user's mobile data, and the API's rate limit, which is then unavailable to the tab the user is\n// actually looking at. Browsers throttle background timers, but throttling is not stopping: the requests\n// still go out, just less punctually. So this suspends on `visibilitychange` and, by default, refreshes\n// immediately on return, since data that went stale while hidden is the first thing the returning user reads.\n//\n// WHY OFFLINE MUST NOT POLL: every tick during an outage is a guaranteed failure. Left running it produces a\n// stream of errors that drowns the log, trips error-rate alerting, and — where the poll feeds a UI — flickers\n// a failure banner on a schedule. Suspending costs nothing, because the `online` event fires the moment there\n// is anything to poll for.\n//\n// SUSPENSION IS REASON-COUNTED, NOT A BOOLEAN, and this is the non-obvious part. Three independent things can\n// suspend the poller — the caller's `pause()`, a hidden tab, an offline browser — and with one flag they\n// overwrite each other: the tab regains focus, clears the flag, and silently resumes a poller the CALLER\n// paused, which is a real bug (a modal that paused polling reopens to a poller running behind it). A set of\n// reasons makes the rule exact: the poller ticks only when the set is empty, and `resume()` clears only the\n// caller's reason.\n//\n// TICKS DO NOT OVERLAP. Scheduling is a `setTimeout` CHAIN, re-armed after each run settles, not a\n// `setInterval`. With an interval, a poll slower than its period stacks: requests overlap, responses arrive\n// out of order, and the slowest response wins the UI — worse the more congested the network is, which is\n// exactly when it hurts. The chain makes `intervalMs` the gap BETWEEN runs, so a slow backend degrades to\n// polling less often instead of DDoSing itself.\n//\n// CONNECTIVITY IS READ THROUGH `Liveness.ts`, whose header explains why this slice has a non-Vue reader at\n// all instead of `foundation/device`'s `useOnlineStatus`.\n\nimport { toError } from '../errors';\n\nimport { readOnlineStatus, subscribeOnline } from './Liveness';\n\n/** The default gap between polls. */\nconst DefaultIntervalMs = 30_000;\n\n/** Names why a poller is suspended — a set of these, not a flag, so the reasons cannot overwrite each other. */\nconst SuspendReason = {\n /** Refers to the caller's own `pause()`. Cleared only by `resume()`. */\n Manual: 'manual',\n /** Refers to a hidden tab. Cleared by `visibilitychange`. */\n Hidden: 'hidden',\n /** Refers to an offline browser. Cleared by the `online` event. */\n Offline: 'offline',\n} as const;\n\ntype SuspendReason = (typeof SuspendReason)[keyof typeof SuspendReason];\n\n/** Describes what a poller is doing right now. */\nexport const PollerState = {\n /** Refers to a poller created but not started. */\n Idle: 'idle',\n /** Refers to a poller with a tick scheduled or running. */\n Running: 'running',\n /** Refers to a started poller held by at least one suspend reason — paused, hidden, or offline. */\n Paused: 'paused',\n /** Refers to a stopped poller: timers cleared, listeners detached, restartable with `start()`. */\n Stopped: 'stopped',\n} as const;\n\nexport type PollerState = (typeof PollerState)[keyof typeof PollerState];\n\n/** The work a poller repeats. A returned promise is awaited, so the next tick is scheduled only after it settles. */\nexport type PollFn = () => unknown;\n\n/** Configures a {@link createPoller} call. Every member is optional. */\nexport interface PollerOptions {\n /** The gap (ms) between the end of one poll and the start of the next. Default `30000`. */\n readonly intervalMs?: number;\n\n /** Whether to start polling immediately on creation. Default `true`; `false` waits for `start()`. */\n readonly autoStart?: boolean;\n\n /** Whether to run one poll at once on start, rather than after the first interval. Default `false`. */\n readonly immediate?: boolean;\n\n /** Whether to suspend while the tab is hidden. Default `true`. */\n readonly pauseWhenHidden?: boolean;\n\n /** Whether to suspend while the browser reports no network link. Default `true`. */\n readonly pauseWhenOffline?: boolean;\n\n /**\n * Whether returning from a suspension polls at once instead of waiting a full interval. Default `true` — the\n * data is already stale.\n */\n readonly refreshOnResume?: boolean;\n\n /**\n * Receives an error thrown or rejected by the poll. The chain continues regardless — a failed poll is not a\n * reason to stop polling.\n */\n readonly onError?: (error: Error) => void;\n\n /** Fires on every state transition — the seam for a \"paused (offline)\" indicator. */\n readonly onStateChange?: (state: PollerState) => void;\n}\n\n/** Controls a running poll loop. */\nexport interface Poller {\n /** The current state. `paused` covers all three suspend reasons. */\n readonly state: PollerState;\n\n /** Starts (or restarts) polling. A no-op while already running. */\n start(): void;\n\n /** Suspends polling until `resume()`. Independent of the automatic hidden / offline suspensions. */\n pause(): void;\n\n /** Clears the caller's suspension. Polling stays suspended while the tab is hidden or the browser offline. */\n resume(): void;\n\n /** Stops polling, clears the pending timer, and detaches the visibility and connectivity listeners. Idempotent. */\n stop(): void;\n}\n\n/** Reads `document.visibilityState`, defaulting to visible where there is no document (SSR) or the read throws. */\nfunction readHidden(): boolean {\n try {\n if (typeof document === 'undefined') return false;\n return document.visibilityState === 'hidden';\n } catch {\n return false;\n }\n}\n\n/**\n * Subscribes to `visibilitychange`, reporting whether the document is now hidden.\n *\n * A no-op returning a no-op disposer where there is no `document`, so callers need no environment branch.\n */\nfunction subscribeVisibility(listener: (hidden: boolean) => void): () => void {\n if (typeof document === 'undefined') return () => undefined;\n\n const target = document;\n const onChange = (): void => listener(readHidden());\n target.addEventListener('visibilitychange', onChange);\n\n let detached = false;\n return () => {\n if (detached) return;\n detached = true;\n target.removeEventListener('visibilitychange', onChange);\n };\n}\n\n/**\n * Creates a poller that repeats `fn` on an interval and suspends itself while the tab is hidden or the\n * browser is offline — see this file's header for why both of those are non-negotiable.\n *\n * Never throws: an error from `fn` goes to `onError` and the loop continues, because a poll that failed once\n * is the poll most worth retrying. Ticks never overlap.\n *\n * @param fn - The work to repeat; a returned promise is awaited before the next tick is scheduled.\n * @param options - Interval, suspension behaviour, and hooks.\n * @returns The poller handle. ALWAYS call `stop()` when done — a live poller holds a timer and two document /\n * window listeners.\n */\nexport function createPoller(fn: PollFn, options: PollerOptions = {}): Poller {\n const {\n intervalMs = DefaultIntervalMs,\n autoStart = true,\n immediate = false,\n pauseWhenHidden = true,\n pauseWhenOffline = true,\n refreshOnResume = true,\n onError,\n onStateChange,\n } = options;\n\n const suspended = new Set<SuspendReason>();\n\n let state: PollerState = PollerState.Idle;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let running = false;\n let inFlight = false;\n let unsubscribeVisibility: (() => void) | undefined;\n let unsubscribeOnline: (() => void) | undefined;\n\n /** Publishes a state transition, skipping no-op repeats. */\n const setState = (next: PollerState): void => {\n if (state === next) return;\n state = next;\n onStateChange?.(next);\n };\n\n /** Clears the pending tick, if any. Never touches the listeners — suspension keeps them. */\n const clearPending = (): void => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n };\n\n /** Arms the next tick. Refuses while stopped or suspended, which is what makes every suspend path a one-liner. */\n const scheduleNext = (): void => {\n if (!running || suspended.size > 0 || timer !== undefined) return;\n timer = setTimeout(() => {\n timer = undefined;\n void tick();\n }, intervalMs);\n };\n\n /** Runs one poll and re-arms — the chain that replaces `setInterval`. */\n async function tick(): Promise<void> {\n if (!running || suspended.size > 0 || inFlight) return;\n\n inFlight = true;\n try {\n await fn();\n } catch (error) {\n try {\n onError?.(toError(error));\n } catch {\n // Swallowed by contract: a throwing error handler must not break the loop it was told about.\n }\n } finally {\n inFlight = false;\n }\n\n // Re-checked AFTER the await: the poll may have been stopped or suspended while it was in flight, and\n // arming a timer for a poller that is already gone is exactly how a \"stopped\" poller keeps ticking.\n scheduleNext();\n }\n\n /** Adds a suspend reason and parks the loop. */\n const suspend = (reason: SuspendReason): void => {\n if (suspended.has(reason)) return;\n suspended.add(reason);\n clearPending();\n if (running) setState(PollerState.Paused);\n };\n\n /** Removes a suspend reason and, once none remain, resumes — immediately when `refreshOnResume`. */\n const unsuspend = (reason: SuspendReason): void => {\n if (!suspended.delete(reason)) return;\n if (!running || suspended.size > 0) return;\n\n setState(PollerState.Running);\n if (refreshOnResume) void tick();\n else scheduleNext();\n };\n\n /** Attaches the visibility and connectivity listeners and seeds the matching suspend reasons. */\n const attachEnvironment = (): void => {\n if (pauseWhenHidden) {\n if (readHidden()) suspended.add(SuspendReason.Hidden);\n unsubscribeVisibility = subscribeVisibility((hidden) => {\n if (hidden) suspend(SuspendReason.Hidden);\n else unsuspend(SuspendReason.Hidden);\n });\n }\n\n if (pauseWhenOffline) {\n if (!readOnlineStatus()) suspended.add(SuspendReason.Offline);\n unsubscribeOnline = subscribeOnline((online) => {\n if (online) unsuspend(SuspendReason.Offline);\n else suspend(SuspendReason.Offline);\n });\n }\n };\n\n /** Detaches both environment listeners. Idempotent. */\n const detachEnvironment = (): void => {\n unsubscribeVisibility?.();\n unsubscribeVisibility = undefined;\n unsubscribeOnline?.();\n unsubscribeOnline = undefined;\n };\n\n const poller: Poller = {\n get state() {\n return state;\n },\n\n start(): void {\n if (running) return;\n running = true;\n // A restart begins from a clean slate — a stale `hidden` reason left over from the previous run would\n // otherwise park the poller forever, since the event that would clear it has already fired.\n suspended.clear();\n attachEnvironment();\n\n if (suspended.size > 0) {\n setState(PollerState.Paused);\n return;\n }\n\n setState(PollerState.Running);\n if (immediate) void tick();\n else scheduleNext();\n },\n\n pause(): void {\n suspend(SuspendReason.Manual);\n },\n\n resume(): void {\n unsuspend(SuspendReason.Manual);\n },\n\n stop(): void {\n if (!running && state === PollerState.Stopped) return;\n running = false;\n clearPending();\n detachEnvironment();\n suspended.clear();\n setState(PollerState.Stopped);\n },\n };\n\n if (autoStart) poller.start();\n\n return poller;\n}\n","import {\n onMounted,\n onScopeDispose,\n shallowRef,\n toValue,\n unref,\n watch,\n type MaybeRef,\n type MaybeRefOrGetter,\n type ShallowRef,\n} from 'vue';\n\nimport { PollerState, createPoller, type PollFn, type Poller, type PollerOptions } from '../CreatePoller';\n\n/** The live view a scope gets over its poll loop. */\nexport interface PollingHandle {\n /** The current poller state, updating on every transition. `paused` covers manual, hidden, and offline. */\n readonly state: Readonly<ShallowRef<PollerState>>;\n\n /** Suspends polling until `resume()`. */\n readonly pause: () => void;\n\n /** Clears the manual suspension; polling stays suspended if the tab is hidden or the browser offline. */\n readonly resume: () => void;\n\n /** Stops the loop and detaches its listeners. The scope-disposal cleanup calls it anyway. */\n readonly stop: () => void;\n}\n\n/**\n * Runs `fn` on an interval for the lifetime of the scope, suspended automatically while the tab is hidden or\n * the browser is offline.\n *\n * The loop stops when the scope is disposed and is rebuilt whenever `intervalMs` changes. `fn` is read fresh\n * on each tick, so a ref whose target changes needs no rebuild.\n *\n * @param fn - The work to repeat; a returned promise is awaited before the next tick is scheduled.\n * @param options - Interval and suspension behaviour, read once when the loop is built; handler callbacks are\n * re-read per emission, so a ref or getter keeps them live.\n * @returns The poller state and `pause` / `resume` / `stop`.\n */\nexport function usePolling(fn: MaybeRef<PollFn>, options: MaybeRefOrGetter<PollerOptions> = {}): PollingHandle {\n const state = shallowRef<PollerState>(PollerState.Idle);\n\n let poller: Poller | null = null;\n\n function teardown(): void {\n poller?.stop();\n poller = null;\n }\n\n function build(): void {\n teardown();\n\n const current = toValue(options);\n const next = createPoller(() => unref(fn)(), {\n ...current,\n intervalMs: current.intervalMs,\n onStateChange: (value) => {\n state.value = value;\n toValue(options).onStateChange?.(value);\n },\n onError: (error) => toValue(options).onError?.(error),\n });\n\n poller = next;\n state.value = next.state;\n }\n\n onMounted(build);\n // Non-immediate on purpose: an immediate watcher runs on the server, where `document` and `window` are\n // absent. `intervalMs` alone is the rebuild trigger — the platform cannot retune a live interval.\n watch(() => toValue(options).intervalMs, build);\n onScopeDispose(teardown);\n\n const pause = (): void => {\n poller?.pause();\n };\n\n const resume = (): void => {\n poller?.resume();\n };\n\n const stop = (): void => {\n poller?.stop();\n };\n\n return { state, pause, resume, stop };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Closed failure vocabulary for NotificationFailure. */
2
+ export declare const NotificationFailureCode: {
3
+ readonly Denied: "denied";
4
+ readonly Unsupported: "unsupported";
5
+ readonly Failed: "failed";
6
+ };
7
+ export type NotificationFailureCode = (typeof NotificationFailureCode)[keyof typeof NotificationFailureCode];
@@ -6,7 +6,18 @@
6
6
  * - `default` — not decided yet. The only state where {@link requestNotificationPermission} shows a prompt.
7
7
  * - `unsupported` — no Notification API here: SSR, a non-supporting browser, or an unreadable implementation.
8
8
  */
9
- export type NotificationPermissionState = 'granted' | 'denied' | 'default' | 'unsupported';
9
+ export declare const NotificationPermissionState: {
10
+ /** Notifications will be shown. */
11
+ readonly Granted: "granted";
12
+ /** The user refused. The prompt will not reappear; only browser settings can undo it. */
13
+ readonly Denied: "denied";
14
+ /** Not decided yet — the only state where {@link requestNotificationPermission} shows a prompt. */
15
+ readonly Default: "default";
16
+ /** No Notification API here: SSR, a non-supporting browser, or an unreadable implementation. */
17
+ readonly Unsupported: "unsupported";
18
+ };
19
+ /** The state of this origin's notification grant. */
20
+ export type NotificationPermissionState = (typeof NotificationPermissionState)[keyof typeof NotificationPermissionState];
10
21
  /**
11
22
  * Whether the environment exposes a constructible `Notification`. False under SSR and on non-supporting
12
23
  * browsers. Exported for the sibling modules; absent from the barrel — callers ask
@@ -1,25 +1,8 @@
1
- /**
2
- * The outcome of a notification attempt.
3
- *
4
- * - `shown` handed to the OS, carrying the live handle. "Handed off", not "seen": the platform reports
5
- * neither whether it was rendered nor whether the user looked at it.
6
- * - `denied` — the API exists but this origin holds no grant (refused, or never asked).
7
- * - `unsupported` — no Notification API here: SSR, or a non-supporting browser.
8
- * - `failed` — construction threw, carrying the normalized `Error`.
9
- */
10
- export type NotifyResult = {
11
- readonly status: 'shown';
12
- readonly notification: Notification;
13
- } | {
14
- readonly status: 'denied';
15
- } | {
16
- readonly status: 'unsupported';
17
- } | {
18
- readonly status: 'failed';
19
- readonly error: Error;
20
- };
21
- /** The `status` discriminant of a {@link NotifyResult} — for a consumer's own switch or status→copy map. */
22
- export type NotifyStatus = NotifyResult['status'];
1
+ import { NotificationShowResult } from './models/NotificationShowResult';
2
+ import { NotificationFailure } from './models/NotificationFailure';
3
+ export type { NotificationFailure } from './models/NotificationFailure';
4
+ export type { NotificationShowResult } from './models/NotificationShowResult';
5
+ export type NotifyStatus = 'shown' | NotificationFailure['status'];
23
6
  /** Tunes a notification. Every member is optional; a bare `notify(title)` is valid. */
24
7
  export interface NotifyOptions {
25
8
  /** Body text rendered under the title. */
@@ -53,7 +36,7 @@ export interface NotifyOptions {
53
36
  readonly onClick?: (event: Event) => void;
54
37
  }
55
38
  /**
56
- * Shows an OS-level notification and returns a {@link NotifyResult}. Never throws.
39
+ * Shows an OS-level notification and returns a {@link NotificationShowResult}. Never throws.
57
40
  *
58
41
  * Requires a granted permission — this call never prompts. Pair it with `getNotificationPermission` /
59
42
  * `requestNotificationPermission` (or the `useNotificationPermission` hook) and treat `denied` as "ask first",
@@ -63,4 +46,4 @@ export interface NotifyOptions {
63
46
  * @param options Body, icon, tag, and the {@link NotifyOptions.autoCloseMs} / {@link NotifyOptions.onClick}
64
47
  * conveniences this module adds on top of the platform dictionary.
65
48
  */
66
- export declare function notify(title: string, options?: NotifyOptions): NotifyResult;
49
+ export declare function notify(title: string, options?: NotifyOptions): NotificationShowResult;
@@ -6,7 +6,18 @@
6
6
  * - `unsupported` — no Permissions API, an unknown permission name, or an unreadable answer. Not a state the
7
7
  * platform has; the wrapper's own "no usable answer".
8
8
  */
9
- export type PermissionQueryState = 'granted' | 'denied' | 'prompt' | 'unsupported';
9
+ export declare const PermissionQueryState: {
10
+ /** The user allowed the capability; using it raises no prompt. */
11
+ readonly Granted: "granted";
12
+ /** The user refused. Only browser settings can undo it — stop asking. */
13
+ readonly Denied: "denied";
14
+ /** Not decided yet; requesting the capability will show a prompt. */
15
+ readonly Prompt: "prompt";
16
+ /** No usable answer came back — no Permissions API, an unknown name, or an off-spec state. Not `prompt`. */
17
+ readonly Unsupported: "unsupported";
18
+ };
19
+ /** The state of a queried permission. */
20
+ export type PermissionQueryState = (typeof PermissionQueryState)[keyof typeof PermissionQueryState];
10
21
  /**
11
22
  * A permission name. The DOM's `PermissionName` union supplies autocomplete for the well-known names, and the
12
23
  * `string` arm keeps the door open for the ones a given engine ships ahead of the type definitions