@vizejs/composable 0.426.3 → 0.428.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/dist/abort-signal.d.mts +1 -1
  2. package/dist/active-element.d.mts +37 -0
  3. package/dist/active-element.mjs +56 -0
  4. package/dist/animate.d.mts +114 -0
  5. package/dist/animate.mjs +157 -0
  6. package/dist/battery.d.mts +61 -0
  7. package/dist/battery.mjs +90 -0
  8. package/dist/breakpoints.d.mts +82 -0
  9. package/dist/breakpoints.mjs +91 -0
  10. package/dist/catalog-BeTXFKxF.d.mts +4188 -0
  11. package/dist/catalog-r4Z5nptX.mjs +5144 -0
  12. package/dist/catalog.d.mts +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/color-mode.d.mts +131 -0
  15. package/dist/color-mode.mjs +133 -0
  16. package/dist/computed-async.d.mts +63 -0
  17. package/dist/computed-async.mjs +43 -0
  18. package/dist/computed-with-control.d.mts +44 -0
  19. package/dist/computed-with-control.mjs +54 -0
  20. package/dist/create-event-hook.d.mts +77 -0
  21. package/dist/create-event-hook.mjs +66 -0
  22. package/dist/create-global-state.d.mts +24 -0
  23. package/dist/create-global-state.mjs +34 -0
  24. package/dist/create-injection-state.d.mts +51 -0
  25. package/dist/create-injection-state.mjs +19 -0
  26. package/dist/create-shared-composable.d.mts +38 -0
  27. package/dist/create-shared-composable.mjs +54 -0
  28. package/dist/device-motion.d.mts +71 -0
  29. package/dist/device-motion.mjs +75 -0
  30. package/dist/device-orientation.d.mts +82 -0
  31. package/dist/device-orientation.mjs +86 -0
  32. package/dist/device-pixel-ratio.d.mts +45 -0
  33. package/dist/device-pixel-ratio.mjs +50 -0
  34. package/dist/document-visibility.mjs +6 -2
  35. package/dist/draggable.d.mts +121 -0
  36. package/dist/draggable.mjs +153 -0
  37. package/dist/element-bounding.d.mts +87 -0
  38. package/dist/element-bounding.mjs +95 -0
  39. package/dist/element-by-point.d.mts +70 -0
  40. package/dist/element-by-point.mjs +69 -0
  41. package/dist/element-hover.d.mts +42 -0
  42. package/dist/element-hover.mjs +70 -0
  43. package/dist/element-ref.d.mts +34 -0
  44. package/dist/element-ref.mjs +23 -0
  45. package/dist/element-target-Crpxl4D9.d.mts +60 -0
  46. package/dist/element-target.d.mts +2 -0
  47. package/dist/element-target.mjs +58 -0
  48. package/dist/event-listener.mjs +7 -3
  49. package/dist/focus.d.mts +69 -0
  50. package/dist/focus.mjs +124 -0
  51. package/dist/fps.d.mts +59 -0
  52. package/dist/fps.mjs +64 -0
  53. package/dist/geolocation.d.mts +98 -0
  54. package/dist/geolocation.mjs +86 -0
  55. package/dist/i18n.d.mts +237 -0
  56. package/dist/i18n.mjs +215 -0
  57. package/dist/icu-message.d.mts +235 -0
  58. package/dist/icu-message.mjs +343 -0
  59. package/dist/idle.d.mts +79 -0
  60. package/dist/idle.mjs +90 -0
  61. package/dist/index.d.mts +172 -6
  62. package/dist/index.mjs +173 -7
  63. package/dist/infinite-scroll.d.mts +56 -0
  64. package/dist/infinite-scroll.mjs +72 -0
  65. package/dist/intersection-observer.d.mts +122 -0
  66. package/dist/intersection-observer.mjs +117 -0
  67. package/dist/magic-keys.d.mts +121 -0
  68. package/dist/magic-keys.mjs +163 -0
  69. package/dist/math.d.mts +96 -0
  70. package/dist/math.mjs +84 -0
  71. package/dist/media-query.d.mts +3 -1
  72. package/dist/media-query.mjs +5 -3
  73. package/dist/mouse-in-element.d.mts +49 -0
  74. package/dist/mouse-in-element.mjs +66 -0
  75. package/dist/mouse.d.mts +77 -0
  76. package/dist/mouse.mjs +100 -0
  77. package/dist/mutation-observer.d.mts +98 -0
  78. package/dist/mutation-observer.mjs +69 -0
  79. package/dist/network.d.mts +96 -0
  80. package/dist/network.mjs +117 -0
  81. package/dist/on-click-outside.d.mts +69 -0
  82. package/dist/on-click-outside.mjs +115 -0
  83. package/dist/on-key-stroke.d.mts +71 -0
  84. package/dist/on-key-stroke.mjs +79 -0
  85. package/dist/on-long-press.d.mts +82 -0
  86. package/dist/on-long-press.mjs +105 -0
  87. package/dist/on-start-typing.d.mts +44 -0
  88. package/dist/on-start-typing.mjs +61 -0
  89. package/dist/page-leave.d.mts +26 -0
  90. package/dist/page-leave.mjs +40 -0
  91. package/dist/parent-element.d.mts +16 -0
  92. package/dist/parent-element.mjs +27 -0
  93. package/dist/pinch.d.mts +73 -0
  94. package/dist/pinch.mjs +138 -0
  95. package/dist/pointer-lock.d.mts +79 -0
  96. package/dist/pointer-lock.mjs +126 -0
  97. package/dist/pointer.d.mts +78 -0
  98. package/dist/pointer.mjs +95 -0
  99. package/dist/preferences.d.mts +55 -0
  100. package/dist/preferences.mjs +63 -0
  101. package/dist/preferred-languages.d.mts +43 -0
  102. package/dist/preferred-languages.mjs +44 -0
  103. package/dist/reactify.d.mts +28 -0
  104. package/dist/reactify.mjs +7 -0
  105. package/dist/ref-auto-reset.d.mts +47 -0
  106. package/dist/ref-auto-reset.mjs +70 -0
  107. package/dist/ref-debounced.d.mts +29 -0
  108. package/dist/ref-debounced.mjs +29 -0
  109. package/dist/ref-default.d.mts +27 -0
  110. package/dist/ref-default.mjs +33 -0
  111. package/dist/resize-observer.d.mts +96 -0
  112. package/dist/resize-observer.mjs +111 -0
  113. package/dist/resolver.d.mts +124 -0
  114. package/dist/resolver.mjs +138 -0
  115. package/dist/retry-async.d.mts +2 -2
  116. package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
  117. package/dist/retry-delay.d.mts +1 -72
  118. package/dist/screen-orientation.d.mts +77 -0
  119. package/dist/screen-orientation.mjs +74 -0
  120. package/dist/scroll-lock.d.mts +37 -0
  121. package/dist/scroll-lock.mjs +50 -0
  122. package/dist/scroll.d.mts +158 -0
  123. package/dist/scroll.mjs +172 -0
  124. package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
  125. package/dist/standard-schema.d.mts +2 -0
  126. package/dist/standard-schema.mjs +60 -0
  127. package/dist/swipe.d.mts +125 -0
  128. package/dist/swipe.mjs +225 -0
  129. package/dist/sync-ref.d.mts +80 -0
  130. package/dist/sync-ref.mjs +43 -0
  131. package/dist/text-selection.d.mts +46 -0
  132. package/dist/text-selection.mjs +62 -0
  133. package/dist/textarea-autosize.d.mts +58 -0
  134. package/dist/textarea-autosize.mjs +54 -0
  135. package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
  136. package/dist/timeout-scheduler.d.mts +1 -17
  137. package/dist/to-reactive.d.mts +26 -0
  138. package/dist/to-reactive.mjs +46 -0
  139. package/dist/transition.d.mts +125 -0
  140. package/dist/transition.mjs +266 -0
  141. package/dist/until.d.mts +177 -0
  142. package/dist/until.mjs +111 -0
  143. package/dist/use-array.d.mts +112 -0
  144. package/dist/use-array.mjs +90 -0
  145. package/dist/use-async-queue.d.mts +109 -0
  146. package/dist/use-async-queue.mjs +96 -0
  147. package/dist/use-async-state.d.mts +86 -0
  148. package/dist/use-async-state.mjs +41 -0
  149. package/dist/use-barcode-detector.d.mts +159 -0
  150. package/dist/use-barcode-detector.mjs +143 -0
  151. package/dist/use-bluetooth.d.mts +164 -0
  152. package/dist/use-bluetooth.mjs +183 -0
  153. package/dist/use-broadcast-channel.d.mts +115 -0
  154. package/dist/use-broadcast-channel.mjs +121 -0
  155. package/dist/use-builtin-ai.d.mts +342 -0
  156. package/dist/use-builtin-ai.mjs +261 -0
  157. package/dist/use-clipboard.d.mts +169 -0
  158. package/dist/use-clipboard.mjs +226 -0
  159. package/dist/use-compression-stream.d.mts +173 -0
  160. package/dist/use-compression-stream.mjs +166 -0
  161. package/dist/use-confirm-dialog.d.mts +70 -0
  162. package/dist/use-confirm-dialog.mjs +57 -0
  163. package/dist/use-contact-picker.d.mts +117 -0
  164. package/dist/use-contact-picker.mjs +103 -0
  165. package/dist/use-cookie.d.mts +196 -0
  166. package/dist/use-cookie.mjs +259 -0
  167. package/dist/use-countdown.d.mts +85 -0
  168. package/dist/use-countdown.mjs +74 -0
  169. package/dist/use-css-var.d.mts +96 -0
  170. package/dist/use-css-var.mjs +104 -0
  171. package/dist/use-cycle-list.d.mts +76 -0
  172. package/dist/use-cycle-list.mjs +39 -0
  173. package/dist/use-date-format.d.mts +103 -0
  174. package/dist/use-date-format.mjs +147 -0
  175. package/dist/use-date-time-format.d.mts +75 -0
  176. package/dist/use-date-time-format.mjs +53 -0
  177. package/dist/use-debounced.d.mts +1 -1
  178. package/dist/use-display-media.d.mts +62 -0
  179. package/dist/use-display-media.mjs +46 -0
  180. package/dist/use-display-names.d.mts +75 -0
  181. package/dist/use-display-names.mjs +52 -0
  182. package/dist/use-document-title.d.mts +88 -0
  183. package/dist/use-document-title.mjs +100 -0
  184. package/dist/use-drop-zone.d.mts +128 -0
  185. package/dist/use-drop-zone.mjs +154 -0
  186. package/dist/use-event-source.d.mts +184 -0
  187. package/dist/use-event-source.mjs +226 -0
  188. package/dist/use-eye-dropper.d.mts +79 -0
  189. package/dist/use-eye-dropper.mjs +68 -0
  190. package/dist/use-favicon.d.mts +78 -0
  191. package/dist/use-favicon.mjs +68 -0
  192. package/dist/use-fetch.d.mts +230 -0
  193. package/dist/use-fetch.mjs +263 -0
  194. package/dist/use-field.d.mts +107 -0
  195. package/dist/use-field.mjs +117 -0
  196. package/dist/use-file-dialog.d.mts +139 -0
  197. package/dist/use-file-dialog.mjs +101 -0
  198. package/dist/use-file-system-access.d.mts +184 -0
  199. package/dist/use-file-system-access.mjs +151 -0
  200. package/dist/use-form-field-props.d.mts +235 -0
  201. package/dist/use-form-field-props.mjs +164 -0
  202. package/dist/use-form.d.mts +324 -0
  203. package/dist/use-form.mjs +482 -0
  204. package/dist/use-fullscreen.d.mts +104 -0
  205. package/dist/use-fullscreen.mjs +95 -0
  206. package/dist/use-gamepad.d.mts +242 -0
  207. package/dist/use-gamepad.mjs +218 -0
  208. package/dist/use-hid.d.mts +160 -0
  209. package/dist/use-hid.mjs +156 -0
  210. package/dist/use-id-generator.d.mts +44 -0
  211. package/dist/use-id-generator.mjs +38 -0
  212. package/dist/use-image.d.mts +125 -0
  213. package/dist/use-image.mjs +109 -0
  214. package/dist/use-indexed-db.d.mts +207 -0
  215. package/dist/use-indexed-db.mjs +251 -0
  216. package/dist/use-interval-BA55gTHT.d.mts +140 -0
  217. package/dist/use-interval.d.mts +2 -0
  218. package/dist/use-interval.mjs +100 -0
  219. package/dist/use-list-format.d.mts +60 -0
  220. package/dist/use-list-format.mjs +40 -0
  221. package/dist/use-machine.d.mts +90 -0
  222. package/dist/use-machine.mjs +78 -0
  223. package/dist/use-map.d.mts +90 -0
  224. package/dist/use-map.mjs +70 -0
  225. package/dist/use-media-controls.d.mts +198 -0
  226. package/dist/use-media-controls.mjs +264 -0
  227. package/dist/use-memoize.d.mts +73 -0
  228. package/dist/use-memoize.mjs +28 -0
  229. package/dist/use-mounted.d.mts +24 -0
  230. package/dist/use-mounted.mjs +29 -0
  231. package/dist/use-navigation-api.d.mts +360 -0
  232. package/dist/use-navigation-api.mjs +231 -0
  233. package/dist/use-notification.d.mts +139 -0
  234. package/dist/use-notification.mjs +131 -0
  235. package/dist/use-now.d.mts +137 -0
  236. package/dist/use-now.mjs +44 -0
  237. package/dist/use-number-format.d.mts +73 -0
  238. package/dist/use-number-format.mjs +58 -0
  239. package/dist/use-object-url.d.mts +47 -0
  240. package/dist/use-object-url.mjs +54 -0
  241. package/dist/use-offset-pagination.d.mts +91 -0
  242. package/dist/use-offset-pagination.mjs +80 -0
  243. package/dist/use-payment-request.d.mts +239 -0
  244. package/dist/use-payment-request.mjs +206 -0
  245. package/dist/use-performance-observer.d.mts +285 -0
  246. package/dist/use-performance-observer.mjs +132 -0
  247. package/dist/use-permission.d.mts +99 -0
  248. package/dist/use-permission.mjs +92 -0
  249. package/dist/use-plural-rules.d.mts +79 -0
  250. package/dist/use-plural-rules.mjs +59 -0
  251. package/dist/use-push-subscription.d.mts +154 -0
  252. package/dist/use-push-subscription.mjs +146 -0
  253. package/dist/use-queue.d.mts +89 -0
  254. package/dist/use-queue.mjs +116 -0
  255. package/dist/use-raf-fn.d.mts +87 -0
  256. package/dist/use-raf-fn.mjs +99 -0
  257. package/dist/use-relative-time-format.d.mts +111 -0
  258. package/dist/use-relative-time-format.mjs +119 -0
  259. package/dist/use-request-idle-callback.d.mts +122 -0
  260. package/dist/use-request-idle-callback.mjs +147 -0
  261. package/dist/use-route-query.d.mts +149 -0
  262. package/dist/use-route-query.mjs +86 -0
  263. package/dist/use-scheduler-post-task.d.mts +156 -0
  264. package/dist/use-scheduler-post-task.mjs +182 -0
  265. package/dist/use-screen-details.d.mts +205 -0
  266. package/dist/use-screen-details.mjs +188 -0
  267. package/dist/use-script-tag.d.mts +162 -0
  268. package/dist/use-script-tag.mjs +171 -0
  269. package/dist/use-segmenter.d.mts +78 -0
  270. package/dist/use-segmenter.mjs +66 -0
  271. package/dist/use-selection.d.mts +125 -0
  272. package/dist/use-selection.mjs +77 -0
  273. package/dist/use-serial.d.mts +165 -0
  274. package/dist/use-serial.mjs +205 -0
  275. package/dist/use-service-worker.d.mts +177 -0
  276. package/dist/use-service-worker.mjs +178 -0
  277. package/dist/use-set.d.mts +96 -0
  278. package/dist/use-set.mjs +74 -0
  279. package/dist/use-share.d.mts +92 -0
  280. package/dist/use-share.mjs +99 -0
  281. package/dist/use-sorted-locale.d.mts +62 -0
  282. package/dist/use-sorted-locale.mjs +52 -0
  283. package/dist/use-sorted.d.mts +29 -0
  284. package/dist/use-sorted.mjs +14 -0
  285. package/dist/use-speech-recognition.d.mts +150 -0
  286. package/dist/use-speech-recognition.mjs +168 -0
  287. package/dist/use-speech-synthesis.d.mts +148 -0
  288. package/dist/use-speech-synthesis.mjs +152 -0
  289. package/dist/use-stack.d.mts +83 -0
  290. package/dist/use-stack.mjs +93 -0
  291. package/dist/use-stepper.d.mts +79 -0
  292. package/dist/use-stepper.mjs +52 -0
  293. package/dist/use-storage-estimate.d.mts +151 -0
  294. package/dist/use-storage-estimate.mjs +170 -0
  295. package/dist/use-storage.d.mts +214 -0
  296. package/dist/use-storage.mjs +415 -0
  297. package/dist/use-style-tag.d.mts +102 -0
  298. package/dist/use-style-tag.mjs +91 -0
  299. package/dist/use-supported.d.mts +23 -0
  300. package/dist/use-supported.mjs +26 -0
  301. package/dist/use-throttled.d.mts +1 -1
  302. package/dist/use-time-ago.d.mts +163 -0
  303. package/dist/use-time-ago.mjs +95 -0
  304. package/dist/use-timeout.d.mts +122 -0
  305. package/dist/use-timeout.mjs +65 -0
  306. package/dist/use-url-hash.d.mts +88 -0
  307. package/dist/use-url-hash.mjs +145 -0
  308. package/dist/use-url-search-params.d.mts +223 -0
  309. package/dist/use-url-search-params.mjs +295 -0
  310. package/dist/use-usb.d.mts +212 -0
  311. package/dist/use-usb.mjs +137 -0
  312. package/dist/use-user-activation.d.mts +83 -0
  313. package/dist/use-user-activation.mjs +113 -0
  314. package/dist/use-user-media.d.mts +194 -0
  315. package/dist/use-user-media.mjs +214 -0
  316. package/dist/use-v-model.d.mts +113 -0
  317. package/dist/use-v-model.mjs +40 -0
  318. package/dist/use-vibrate.d.mts +81 -0
  319. package/dist/use-vibrate.mjs +90 -0
  320. package/dist/use-view-transition.d.mts +106 -0
  321. package/dist/use-view-transition.mjs +101 -0
  322. package/dist/use-visual-viewport.d.mts +105 -0
  323. package/dist/use-visual-viewport.mjs +104 -0
  324. package/dist/use-wake-lock.d.mts +96 -0
  325. package/dist/use-wake-lock.mjs +106 -0
  326. package/dist/use-web-authn.d.mts +404 -0
  327. package/dist/use-web-authn.mjs +323 -0
  328. package/dist/use-web-locks.d.mts +180 -0
  329. package/dist/use-web-locks.mjs +136 -0
  330. package/dist/use-web-midi.d.mts +148 -0
  331. package/dist/use-web-midi.mjs +140 -0
  332. package/dist/use-web-vitals.d.mts +142 -0
  333. package/dist/use-web-vitals.mjs +248 -0
  334. package/dist/use-websocket.d.mts +218 -0
  335. package/dist/use-websocket.mjs +257 -0
  336. package/dist/use-worker-fn.d.mts +119 -0
  337. package/dist/use-worker-fn.mjs +162 -0
  338. package/dist/virtual-list.d.mts +105 -0
  339. package/dist/virtual-list.mjs +128 -0
  340. package/dist/watch-debounced.d.mts +84 -0
  341. package/dist/watch-debounced.mjs +84 -0
  342. package/dist/watch-ignorable.d.mts +47 -0
  343. package/dist/watch-ignorable.mjs +61 -0
  344. package/dist/watch-once.d.mts +29 -0
  345. package/dist/watch-once.mjs +10 -0
  346. package/dist/watch-pausable.d.mts +51 -0
  347. package/dist/watch-pausable.mjs +23 -0
  348. package/dist/watch-source.d.mts +29 -0
  349. package/dist/watch-source.mjs +1 -0
  350. package/dist/watch-throttled.d.mts +70 -0
  351. package/dist/watch-throttled.mjs +94 -0
  352. package/dist/whenever.d.mts +39 -0
  353. package/dist/whenever.mjs +41 -0
  354. package/dist/window-size.d.mts +87 -0
  355. package/dist/window-size.mjs +65 -0
  356. package/package.json +846 -5
  357. package/registry/files/abort-signal.ts +292 -0
  358. package/registry/files/active-element.ts +93 -0
  359. package/registry/files/animate.ts +322 -0
  360. package/registry/files/async-resource.ts +190 -0
  361. package/registry/files/battery.ts +166 -0
  362. package/registry/files/breakpoints.ts +166 -0
  363. package/registry/files/capability.ts +171 -0
  364. package/registry/files/color-mode.ts +274 -0
  365. package/registry/files/computed-async.ts +123 -0
  366. package/registry/files/computed-with-control.ts +80 -0
  367. package/registry/files/create-event-hook.ts +139 -0
  368. package/registry/files/create-global-state.ts +34 -0
  369. package/registry/files/create-injection-state.ts +75 -0
  370. package/registry/files/create-shared-composable.ts +74 -0
  371. package/registry/files/device-motion.ts +152 -0
  372. package/registry/files/device-orientation.ts +168 -0
  373. package/registry/files/device-pixel-ratio.ts +100 -0
  374. package/registry/files/disposal-scope.ts +201 -0
  375. package/registry/files/document-visibility.ts +152 -0
  376. package/registry/files/draggable.ts +273 -0
  377. package/registry/files/element-bounding.ts +175 -0
  378. package/registry/files/element-by-point.ts +149 -0
  379. package/registry/files/element-hover.ts +104 -0
  380. package/registry/files/element-ref.ts +58 -0
  381. package/registry/files/element-target.ts +99 -0
  382. package/registry/files/event-listener.ts +188 -0
  383. package/registry/files/focus.ts +181 -0
  384. package/registry/files/fps.ts +133 -0
  385. package/registry/files/geolocation.ts +214 -0
  386. package/registry/files/i18n.ts +524 -0
  387. package/registry/files/icu-message.ts +701 -0
  388. package/registry/files/idle.ts +176 -0
  389. package/registry/files/infinite-scroll.ts +135 -0
  390. package/registry/files/intersection-observer.ts +261 -0
  391. package/registry/files/locale.ts +148 -0
  392. package/registry/files/magic-keys.ts +298 -0
  393. package/registry/files/math.ts +175 -0
  394. package/registry/files/media-query.ts +102 -0
  395. package/registry/files/mouse-in-element.ts +107 -0
  396. package/registry/files/mouse.ts +167 -0
  397. package/registry/files/mutation-observer.ts +183 -0
  398. package/registry/files/network.ts +229 -0
  399. package/registry/files/on-click-outside.ts +178 -0
  400. package/registry/files/on-key-stroke.ts +135 -0
  401. package/registry/files/on-long-press.ts +188 -0
  402. package/registry/files/on-start-typing.ts +88 -0
  403. package/registry/files/page-leave.ts +57 -0
  404. package/registry/files/parent-element.ts +29 -0
  405. package/registry/files/pinch.ts +187 -0
  406. package/registry/files/pointer-lock.ts +232 -0
  407. package/registry/files/pointer.ts +153 -0
  408. package/registry/files/preferences.ts +98 -0
  409. package/registry/files/preferred-languages.ts +88 -0
  410. package/registry/files/reactify.ts +39 -0
  411. package/registry/files/ref-auto-reset.ts +102 -0
  412. package/registry/files/ref-debounced.ts +34 -0
  413. package/registry/files/ref-default.ts +35 -0
  414. package/registry/files/resize-observer.ts +220 -0
  415. package/registry/files/retry-async.ts +261 -0
  416. package/registry/files/retry-delay.ts +132 -0
  417. package/registry/files/scope.ts +21 -0
  418. package/registry/files/screen-orientation.ts +165 -0
  419. package/registry/files/scroll-lock.ts +80 -0
  420. package/registry/files/scroll.ts +338 -0
  421. package/registry/files/standard-schema.ts +163 -0
  422. package/registry/files/swipe.ts +321 -0
  423. package/registry/files/sync-ref.ts +166 -0
  424. package/registry/files/temporal.ts +182 -0
  425. package/registry/files/text-selection.ts +110 -0
  426. package/registry/files/textarea-autosize.ts +114 -0
  427. package/registry/files/timeout-scheduler.ts +16 -0
  428. package/registry/files/to-reactive.ts +44 -0
  429. package/registry/files/transition.ts +271 -0
  430. package/registry/files/until.ts +352 -0
  431. package/registry/files/use-array.ts +201 -0
  432. package/registry/files/use-async-queue.ts +278 -0
  433. package/registry/files/use-async-state.ts +139 -0
  434. package/registry/files/use-barcode-detector.ts +321 -0
  435. package/registry/files/use-bluetooth.ts +409 -0
  436. package/registry/files/use-broadcast-channel.ts +250 -0
  437. package/registry/files/use-builtin-ai.ts +674 -0
  438. package/registry/files/use-clipboard.ts +425 -0
  439. package/registry/files/use-compression-stream.ts +364 -0
  440. package/registry/files/use-confirm-dialog.ts +137 -0
  441. package/registry/files/use-contact-picker.ts +246 -0
  442. package/registry/files/use-cookie.ts +500 -0
  443. package/registry/files/use-countdown.ts +161 -0
  444. package/registry/files/use-counter.ts +147 -0
  445. package/registry/files/use-css-var.ts +191 -0
  446. package/registry/files/use-cycle-list.ts +136 -0
  447. package/registry/files/use-date-format.ts +281 -0
  448. package/registry/files/use-date-time-format.ts +113 -0
  449. package/registry/files/use-debounced.ts +163 -0
  450. package/registry/files/use-display-media.ts +89 -0
  451. package/registry/files/use-display-names.ts +122 -0
  452. package/registry/files/use-document-title.ts +196 -0
  453. package/registry/files/use-drop-zone.ts +287 -0
  454. package/registry/files/use-event-source.ts +470 -0
  455. package/registry/files/use-eye-dropper.ts +134 -0
  456. package/registry/files/use-favicon.ts +140 -0
  457. package/registry/files/use-fetch.ts +578 -0
  458. package/registry/files/use-field.ts +247 -0
  459. package/registry/files/use-file-dialog.ts +257 -0
  460. package/registry/files/use-file-system-access.ts +383 -0
  461. package/registry/files/use-form-field-props.ts +381 -0
  462. package/registry/files/use-form.ts +980 -0
  463. package/registry/files/use-fullscreen.ts +214 -0
  464. package/registry/files/use-gamepad.ts +463 -0
  465. package/registry/files/use-hid.ts +359 -0
  466. package/registry/files/use-history.ts +231 -0
  467. package/registry/files/use-id-generator.ts +61 -0
  468. package/registry/files/use-image.ts +253 -0
  469. package/registry/files/use-indexed-db.ts +508 -0
  470. package/registry/files/use-interval.ts +253 -0
  471. package/registry/files/use-list-format.ts +85 -0
  472. package/registry/files/use-machine.ts +171 -0
  473. package/registry/files/use-map.ts +145 -0
  474. package/registry/files/use-media-controls.ts +545 -0
  475. package/registry/files/use-memoize.ts +118 -0
  476. package/registry/files/use-mounted.ts +30 -0
  477. package/registry/files/use-navigation-api.ts +641 -0
  478. package/registry/files/use-notification.ts +285 -0
  479. package/registry/files/use-now.ts +194 -0
  480. package/registry/files/use-number-format.ts +120 -0
  481. package/registry/files/use-object-url.ts +87 -0
  482. package/registry/files/use-offset-pagination.ts +168 -0
  483. package/registry/files/use-payment-request.ts +465 -0
  484. package/registry/files/use-performance-observer.ts +469 -0
  485. package/registry/files/use-permission.ts +220 -0
  486. package/registry/files/use-plural-rules.ts +134 -0
  487. package/registry/files/use-previous.ts +62 -0
  488. package/registry/files/use-push-subscription.ts +352 -0
  489. package/registry/files/use-queue.ts +197 -0
  490. package/registry/files/use-raf-fn.ts +176 -0
  491. package/registry/files/use-relative-time-format.ts +201 -0
  492. package/registry/files/use-request-idle-callback.ts +278 -0
  493. package/registry/files/use-route-query.ts +300 -0
  494. package/registry/files/use-scheduler-post-task.ts +397 -0
  495. package/registry/files/use-screen-details.ts +393 -0
  496. package/registry/files/use-script-tag.ts +341 -0
  497. package/registry/files/use-segmenter.ts +147 -0
  498. package/registry/files/use-selection.ts +233 -0
  499. package/registry/files/use-serial.ts +404 -0
  500. package/registry/files/use-service-worker.ts +413 -0
  501. package/registry/files/use-set.ts +154 -0
  502. package/registry/files/use-share.ts +168 -0
  503. package/registry/files/use-sorted-locale.ts +130 -0
  504. package/registry/files/use-sorted.ts +49 -0
  505. package/registry/files/use-speech-recognition.ts +357 -0
  506. package/registry/files/use-speech-synthesis.ts +333 -0
  507. package/registry/files/use-stack.ts +164 -0
  508. package/registry/files/use-stepper.ts +166 -0
  509. package/registry/files/use-storage-estimate.ts +352 -0
  510. package/registry/files/use-storage.ts +635 -0
  511. package/registry/files/use-style-tag.ts +200 -0
  512. package/registry/files/use-supported.ts +26 -0
  513. package/registry/files/use-throttled.ts +215 -0
  514. package/registry/files/use-time-ago.ts +276 -0
  515. package/registry/files/use-timeout.ts +218 -0
  516. package/registry/files/use-toggle.ts +54 -0
  517. package/registry/files/use-url-hash.ts +280 -0
  518. package/registry/files/use-url-search-params.ts +497 -0
  519. package/registry/files/use-usb.ts +395 -0
  520. package/registry/files/use-user-activation.ts +215 -0
  521. package/registry/files/use-user-media.ts +422 -0
  522. package/registry/files/use-v-model.ts +210 -0
  523. package/registry/files/use-vibrate.ts +174 -0
  524. package/registry/files/use-view-transition.ts +229 -0
  525. package/registry/files/use-visual-viewport.ts +228 -0
  526. package/registry/files/use-wake-lock.ts +206 -0
  527. package/registry/files/use-web-authn.ts +793 -0
  528. package/registry/files/use-web-locks.ts +363 -0
  529. package/registry/files/use-web-midi.ts +306 -0
  530. package/registry/files/use-web-vitals.ts +409 -0
  531. package/registry/files/use-websocket.ts +553 -0
  532. package/registry/files/use-worker-fn.ts +306 -0
  533. package/registry/files/virtual-list.ts +230 -0
  534. package/registry/files/watch-debounced.ts +206 -0
  535. package/registry/files/watch-ignorable.ts +128 -0
  536. package/registry/files/watch-once.ts +46 -0
  537. package/registry/files/watch-pausable.ts +93 -0
  538. package/registry/files/watch-source.ts +51 -0
  539. package/registry/files/watch-throttled.ts +201 -0
  540. package/registry/files/whenever.ts +70 -0
  541. package/registry/files/window-size.ts +151 -0
  542. package/registry/registry.json +5792 -0
  543. package/dist/catalog-D2AL3xYl.d.mts +0 -523
  544. package/dist/catalog-D5SYCsgW.mjs +0 -549
@@ -0,0 +1,101 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { shallowRef, toValue } from "vue";
3
+ //#region src/use-file-dialog.ts
4
+ function browserFileDialogHost() {
5
+ return typeof window === "undefined" ? void 0 : window.document;
6
+ }
7
+ /**
8
+ * Open the native file picker without rendering an input.
9
+ *
10
+ * A detached `<input type="file">` is created lazily on the first `open`
11
+ * (never during setup or server rendering), configured from reactive
12
+ * options plus per-call overrides, and observed for `change` and `cancel`.
13
+ * The selection is exposed as a readonly `File[]`. Listeners are removed
14
+ * when the owning reactive scope stops.
15
+ *
16
+ * Server rendering: `files` is `initialFiles` and `open` returns false.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const { files, open, onChange } = useFileDialog({ accept: "image/*" });
21
+ * onChange((selection) => upload(selection));
22
+ * ```
23
+ *
24
+ * @param options Dialog settings, initial selection, and capability.
25
+ * @default options {}
26
+ * @returns Selection state and dialog actions.
27
+ */
28
+ function useFileDialog(options = {}) {
29
+ const files = shallowRef(options.initialFiles ?? null);
30
+ const changeHandlers = /* @__PURE__ */ new Set();
31
+ const cancelHandlers = /* @__PURE__ */ new Set();
32
+ let input;
33
+ let inputHost;
34
+ const resolveHost = () => options.host === void 0 ? browserFileDialogHost() : toValue(options.host) ?? void 0;
35
+ const onInputChange = () => {
36
+ const selected = input?.files ? Array.from(input.files) : [];
37
+ files.value = selected.length > 0 ? selected : null;
38
+ for (const handler of changeHandlers) handler(files.value);
39
+ };
40
+ const onInputCancel = () => {
41
+ for (const handler of cancelHandlers) handler();
42
+ };
43
+ const detach = () => {
44
+ input?.removeEventListener("change", onInputChange);
45
+ input?.removeEventListener("cancel", onInputCancel);
46
+ input = void 0;
47
+ inputHost = void 0;
48
+ };
49
+ const ensureInput = (host) => {
50
+ if (input && inputHost === host) return input;
51
+ detach();
52
+ const created = host.createElement("input");
53
+ created.type = "file";
54
+ created.addEventListener("change", onInputChange);
55
+ created.addEventListener("cancel", onInputCancel);
56
+ input = created;
57
+ inputHost = host;
58
+ return created;
59
+ };
60
+ const reset = () => {
61
+ files.value = null;
62
+ if (input) input.value = "";
63
+ for (const handler of changeHandlers) handler(null);
64
+ };
65
+ const open = (overrides = {}) => {
66
+ const host = resolveHost();
67
+ if (!host) return false;
68
+ const element = ensureInput(host);
69
+ element.accept = overrides.accept ?? toValue(options.accept) ?? "*";
70
+ element.multiple = overrides.multiple ?? toValue(options.multiple) ?? true;
71
+ const capture = overrides.capture ?? toValue(options.capture);
72
+ if (capture === void 0) element.removeAttribute("capture");
73
+ else element.setAttribute("capture", capture);
74
+ if (overrides.directory ?? toValue(options.directory) ?? false) element.setAttribute("webkitdirectory", "");
75
+ else element.removeAttribute("webkitdirectory");
76
+ if (overrides.reset ?? options.reset ?? false) reset();
77
+ element.value = "";
78
+ element.click();
79
+ return true;
80
+ };
81
+ const subscribe = (handlers) => (handler) => {
82
+ handlers.add(handler);
83
+ return () => {
84
+ handlers.delete(handler);
85
+ };
86
+ };
87
+ tryOnScopeDispose(() => {
88
+ detach();
89
+ changeHandlers.clear();
90
+ cancelHandlers.clear();
91
+ });
92
+ return {
93
+ files,
94
+ open,
95
+ reset,
96
+ onChange: subscribe(changeHandlers),
97
+ onCancel: subscribe(cancelHandlers)
98
+ };
99
+ }
100
+ //#endregion
101
+ export { useFileDialog };
@@ -0,0 +1,184 @@
1
+ import { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/use-file-system-access.d.ts
4
+ /** Value types produced for each {@link FileSystemAccessDataType}. */
5
+ interface FileSystemAccessDataMap {
6
+ /** UTF-8 decoded text. */
7
+ readonly text: string;
8
+ /** Raw bytes. */
9
+ readonly arrayBuffer: ArrayBuffer;
10
+ /** The file itself (a `Blob`). */
11
+ readonly blob: Blob;
12
+ }
13
+ /** How file contents are read into `data`. */
14
+ type FileSystemAccessDataType = keyof FileSystemAccessDataMap;
15
+ /** One accepted file type group for the pickers. */
16
+ interface FilePickerAcceptTypeLike {
17
+ /** Human-readable description. */
18
+ readonly description?: string;
19
+ /** MIME type to extensions map, for example `{ "text/plain": [".txt"] }`. */
20
+ readonly accept: Readonly<Record<string, string | readonly string[]>>;
21
+ }
22
+ /** Writable stream returned by `createWritable`. */
23
+ interface FileSystemWritableLike {
24
+ /** Write data. */
25
+ write(data: string | ArrayBuffer | Blob): Promise<void>;
26
+ /** Commit and close the stream. */
27
+ close(): Promise<void>;
28
+ }
29
+ /** Minimal `FileSystemFileHandle`. */
30
+ interface FileSystemFileHandleLike {
31
+ /** File name. */
32
+ readonly name: string;
33
+ /** Snapshot of the current file contents. */
34
+ getFile(): Promise<File>;
35
+ /** Open a writable stream. */
36
+ createWritable(): Promise<FileSystemWritableLike>;
37
+ }
38
+ /** Options passed to `showOpenFilePicker`. */
39
+ interface OpenFilePickerOptionsLike {
40
+ /** Accepted types. */
41
+ readonly types?: readonly FilePickerAcceptTypeLike[];
42
+ /** Hide the "all files" option. */
43
+ readonly excludeAcceptAllOption?: boolean;
44
+ /** Allow selecting multiple files. */
45
+ readonly multiple?: boolean;
46
+ }
47
+ /** Options passed to `showSaveFilePicker`. */
48
+ interface SaveFilePickerOptionsLike {
49
+ /** Accepted types. */
50
+ readonly types?: readonly FilePickerAcceptTypeLike[];
51
+ /** Hide the "all files" option. */
52
+ readonly excludeAcceptAllOption?: boolean;
53
+ /** Suggested file name. */
54
+ readonly suggestedName?: string;
55
+ }
56
+ /** File System Access pickers (`window.showOpenFilePicker` and friends). */
57
+ interface FileSystemAccessHost {
58
+ /** Show the open-file picker. */
59
+ showOpenFilePicker(options?: OpenFilePickerOptionsLike): Promise<readonly FileSystemFileHandleLike[]>;
60
+ /** Show the save-file picker. */
61
+ showSaveFilePicker(options?: SaveFilePickerOptionsLike): Promise<FileSystemFileHandleLike>;
62
+ }
63
+ /** Options for {@link useFileSystemAccess}. */
64
+ interface UseFileSystemAccessOptions<Kind extends FileSystemAccessDataType = "text"> {
65
+ /**
66
+ * How file contents are exposed through `data`. Required for any
67
+ * representation other than text so the data type is always inferred
68
+ * from a runtime value.
69
+ *
70
+ * @default "text"
71
+ */
72
+ readonly dataType?: Kind;
73
+ /**
74
+ * Accepted file types for both pickers.
75
+ *
76
+ * @default undefined
77
+ */
78
+ readonly types?: MaybeRefOrGetter<readonly FilePickerAcceptTypeLike[] | undefined>;
79
+ /**
80
+ * Hide the "all files" option.
81
+ *
82
+ * @default false
83
+ */
84
+ readonly excludeAcceptAllOption?: MaybeRefOrGetter<boolean>;
85
+ /**
86
+ * Suggested name for the save picker.
87
+ *
88
+ * @default undefined
89
+ */
90
+ readonly suggestedName?: MaybeRefOrGetter<string | undefined>;
91
+ /**
92
+ * File System Access capability for alternate runtimes and tests.
93
+ *
94
+ * @default window when it implements both pickers
95
+ */
96
+ readonly host?: MaybeRefOrGetter<FileSystemAccessHost | null | undefined>;
97
+ }
98
+ /** Discriminated outcome of a file system action. */
99
+ type FileSystemAccessResult = {
100
+ /** The action completed. */readonly status: "success";
101
+ } | {
102
+ /** Picker dismissed, API missing, nothing to save, or another failure. */readonly status: "cancelled" | "unsupported" | "no-data" | "failed"; /** Exact error thrown by the host, when one was thrown. */
103
+ readonly error: unknown;
104
+ };
105
+ /** Reactive state and actions returned by {@link useFileSystemAccess}. */
106
+ interface FileSystemAccessControls<Kind extends FileSystemAccessDataType> {
107
+ /** Whether the File System Access pickers are available. */
108
+ readonly supported: ComputedRef<boolean>;
109
+ /** File contents, typed by `dataType`. Assign to edit, then `save`. */
110
+ readonly data: Ref<FileSystemAccessDataMap[Kind] | undefined>;
111
+ /** Snapshot of the current file. */
112
+ readonly file: Readonly<ShallowRef<File | undefined>>;
113
+ /** Current file handle. */
114
+ readonly handle: Readonly<ShallowRef<FileSystemFileHandleLike | undefined>>;
115
+ /** Name of the current file. */
116
+ readonly fileName: ComputedRef<string>;
117
+ /** MIME type of the current file. */
118
+ readonly fileMIME: ComputedRef<string>;
119
+ /** Size in bytes of the current file. */
120
+ readonly fileSize: ComputedRef<number>;
121
+ /** Last modification time (Unix milliseconds) of the current file. */
122
+ readonly fileLastModified: ComputedRef<number>;
123
+ /**
124
+ * Pick a file and read it.
125
+ *
126
+ * @returns The discriminated outcome; never rejects.
127
+ */
128
+ readonly open: () => Promise<FileSystemAccessResult>;
129
+ /**
130
+ * Pick a new file location and clear `data`.
131
+ *
132
+ * @returns The discriminated outcome; never rejects.
133
+ */
134
+ readonly create: () => Promise<FileSystemAccessResult>;
135
+ /**
136
+ * Write `data` to the current file, or ask for a location first.
137
+ *
138
+ * @returns The discriminated outcome; never rejects.
139
+ */
140
+ readonly save: () => Promise<FileSystemAccessResult>;
141
+ /**
142
+ * Ask for a location and write `data` there.
143
+ *
144
+ * @returns The discriminated outcome; never rejects.
145
+ */
146
+ readonly saveAs: () => Promise<FileSystemAccessResult>;
147
+ /**
148
+ * Re-read the current file into `data`.
149
+ *
150
+ * @returns The discriminated outcome; never rejects.
151
+ */
152
+ readonly updateData: () => Promise<FileSystemAccessResult>;
153
+ }
154
+ /**
155
+ * Open, edit, and save local files with the File System Access API.
156
+ *
157
+ * `data` is typed by `dataType` (`string`, `ArrayBuffer`, or `Blob`) and is
158
+ * writable: edit it and call `save` to write back through the retained
159
+ * file handle. Every action resolves to a discriminated
160
+ * {@link FileSystemAccessResult}; a dismissed picker is `"cancelled"`.
161
+ * No listeners or timers are held, so nothing needs cleanup.
162
+ *
163
+ * Server rendering: `supported` is false, `data` is undefined, and every
164
+ * action resolves to `"unsupported"`.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * const editor = useFileSystemAccess({ types: [{ accept: { "text/markdown": [".md"] } }] });
169
+ * await editor.open();
170
+ * editor.data.value += "\n";
171
+ * await editor.save();
172
+ * ```
173
+ *
174
+ * @typeParam Kind Data representation, inferred from `dataType`.
175
+ * @param options Data type, picker settings, and capability.
176
+ * @default options {}
177
+ * @returns File state and actions.
178
+ */
179
+ declare function useFileSystemAccess(options?: UseFileSystemAccessOptions<"text">): FileSystemAccessControls<"text">;
180
+ declare function useFileSystemAccess<Kind extends FileSystemAccessDataType>(options: UseFileSystemAccessOptions<Kind> & {
181
+ readonly dataType: Kind;
182
+ }): FileSystemAccessControls<Kind>;
183
+ //#endregion
184
+ export { FilePickerAcceptTypeLike, FileSystemAccessControls, FileSystemAccessDataMap, FileSystemAccessDataType, FileSystemAccessHost, FileSystemAccessResult, FileSystemFileHandleLike, FileSystemWritableLike, OpenFilePickerOptionsLike, SaveFilePickerOptionsLike, UseFileSystemAccessOptions, useFileSystemAccess };
@@ -0,0 +1,151 @@
1
+ import { computed, ref, shallowRef, toValue } from "vue";
2
+ //#region src/use-file-system-access.ts
3
+ const readers = {
4
+ text: (file) => file.text(),
5
+ arrayBuffer: (file) => file.arrayBuffer(),
6
+ blob: (file) => Promise.resolve(file)
7
+ };
8
+ function browserFileSystemAccessHost() {
9
+ if (typeof window === "undefined") return void 0;
10
+ const open = Reflect.get(window, "showOpenFilePicker");
11
+ const save = Reflect.get(window, "showSaveFilePicker");
12
+ if (typeof open !== "function" || typeof save !== "function") return void 0;
13
+ return {
14
+ showOpenFilePicker: (options) => Reflect.apply(open, window, [options]),
15
+ showSaveFilePicker: (options) => Reflect.apply(save, window, [options])
16
+ };
17
+ }
18
+ function isAbort(error) {
19
+ return typeof error === "object" && error !== null && "name" in error && error.name === "AbortError";
20
+ }
21
+ function failed(error) {
22
+ return {
23
+ status: isAbort(error) ? "cancelled" : "failed",
24
+ error
25
+ };
26
+ }
27
+ const success = { status: "success" };
28
+ const unsupported = {
29
+ status: "unsupported",
30
+ error: void 0
31
+ };
32
+ function useFileSystemAccess(options = {}) {
33
+ const dataType = options.dataType ?? "text";
34
+ const data = ref(void 0);
35
+ const file = shallowRef(void 0);
36
+ const handle = shallowRef(void 0);
37
+ const resolveHost = () => options.host === void 0 ? browserFileSystemAccessHost() : toValue(options.host) ?? void 0;
38
+ const pickerBase = () => {
39
+ const types = toValue(options.types);
40
+ return {
41
+ ...types === void 0 ? {} : { types },
42
+ excludeAcceptAllOption: toValue(options.excludeAcceptAllOption) ?? false
43
+ };
44
+ };
45
+ const read = async () => {
46
+ const current = handle.value;
47
+ if (!current) return;
48
+ const snapshot = await current.getFile();
49
+ file.value = snapshot;
50
+ data.value = await readers[dataType](snapshot);
51
+ };
52
+ const updateData = async () => {
53
+ if (!handle.value) return {
54
+ status: "no-data",
55
+ error: void 0
56
+ };
57
+ try {
58
+ await read();
59
+ return success;
60
+ } catch (error) {
61
+ return failed(error);
62
+ }
63
+ };
64
+ const open = async () => {
65
+ const host = resolveHost();
66
+ if (!host) return unsupported;
67
+ try {
68
+ const [picked] = await host.showOpenFilePicker({
69
+ ...pickerBase(),
70
+ multiple: false
71
+ });
72
+ if (!picked) return {
73
+ status: "cancelled",
74
+ error: void 0
75
+ };
76
+ handle.value = picked;
77
+ await read();
78
+ return success;
79
+ } catch (error) {
80
+ return failed(error);
81
+ }
82
+ };
83
+ const pickSaveLocation = async (host) => {
84
+ const suggestedName = toValue(options.suggestedName);
85
+ return host.showSaveFilePicker({
86
+ ...pickerBase(),
87
+ ...suggestedName === void 0 ? {} : { suggestedName }
88
+ });
89
+ };
90
+ const create = async () => {
91
+ const host = resolveHost();
92
+ if (!host) return unsupported;
93
+ try {
94
+ handle.value = await pickSaveLocation(host);
95
+ data.value = void 0;
96
+ file.value = await handle.value.getFile();
97
+ return success;
98
+ } catch (error) {
99
+ return failed(error);
100
+ }
101
+ };
102
+ const write = async (target) => {
103
+ const value = data.value;
104
+ if (value === void 0) return {
105
+ status: "no-data",
106
+ error: void 0
107
+ };
108
+ const writable = await target.createWritable();
109
+ await writable.write(value);
110
+ await writable.close();
111
+ handle.value = target;
112
+ file.value = await target.getFile();
113
+ return success;
114
+ };
115
+ const saveAs = async () => {
116
+ const host = resolveHost();
117
+ if (!host) return unsupported;
118
+ try {
119
+ return await write(await pickSaveLocation(host));
120
+ } catch (error) {
121
+ return failed(error);
122
+ }
123
+ };
124
+ const save = async () => {
125
+ if (!resolveHost()) return unsupported;
126
+ const current = handle.value;
127
+ if (!current) return saveAs();
128
+ try {
129
+ return await write(current);
130
+ } catch (error) {
131
+ return failed(error);
132
+ }
133
+ };
134
+ return {
135
+ supported: computed(() => resolveHost() !== void 0),
136
+ data,
137
+ file,
138
+ handle,
139
+ fileName: computed(() => file.value?.name ?? ""),
140
+ fileMIME: computed(() => file.value?.type ?? ""),
141
+ fileSize: computed(() => file.value?.size ?? 0),
142
+ fileLastModified: computed(() => file.value?.lastModified ?? 0),
143
+ open,
144
+ create,
145
+ save,
146
+ saveAs,
147
+ updateData
148
+ };
149
+ }
150
+ //#endregion
151
+ export { useFileSystemAccess };
@@ -0,0 +1,235 @@
1
+ import { FormControls, FormFieldControls, FormPath, FormPathValue } from "./use-form.mjs";
2
+ import { ComputedRef, MaybeRefOrGetter } from "vue";
3
+
4
+ //#region src/use-form-field-props.d.ts
5
+ /**
6
+ * Accessible relations for a form control.
7
+ *
8
+ * Structurally identical to `FieldControlProps` from `@vizejs/ui/field-wiring`,
9
+ * so the object can be bound with `v-bind` onto any `@vizejs/ui` control (or a
10
+ * native element) without this package depending on `@vizejs/ui`.
11
+ */
12
+ interface FormFieldControlProps {
13
+ /** Control id, referenced by the label's `for`. */
14
+ readonly id: string;
15
+ /** Id of the field label. */
16
+ readonly "aria-labelledby": string;
17
+ /** Description id and, while invalid, error id. */
18
+ readonly "aria-describedby": string | undefined;
19
+ /** Error id while invalid. */
20
+ readonly "aria-errormessage": string | undefined;
21
+ /** `"true"` while invalid. */
22
+ readonly "aria-invalid": "true" | undefined;
23
+ }
24
+ /** Props for a `<label>` (or ui `FieldLabel`) element. */
25
+ interface FormFieldLabelProps {
26
+ /** Label id. */
27
+ readonly id: string;
28
+ /** Id of the labelled control. */
29
+ readonly for: string;
30
+ }
31
+ /** Props for description and error-message elements. */
32
+ interface FormFieldTextProps {
33
+ /** Element id referenced by the control. */
34
+ readonly id: string;
35
+ }
36
+ /**
37
+ * `v-model` bindings for any component that follows the `modelValue` /
38
+ * `update:modelValue` convention, plus a blur listener that marks the field
39
+ * touched (and validates on blur when the form is configured to).
40
+ */
41
+ interface FormFieldModelProps<Value> {
42
+ /** Current value at the path. */
43
+ readonly modelValue: Value;
44
+ /** Writes the value at the path. */
45
+ readonly "onUpdate:modelValue": (value: Value) => void;
46
+ /** Marks the field touched. */
47
+ readonly onBlur: () => void;
48
+ }
49
+ /** When a field with errors is reported as invalid. */
50
+ type FormFieldErrorVisibility = "always" | "submitted" | "touched";
51
+ /** Options for {@link useFormFieldProps}. */
52
+ interface UseFormFieldPropsOptions {
53
+ /**
54
+ * Explicit control id. Label, description, and error ids derive from it
55
+ * as `<id>-label`, `<id>-description`, and `<id>-error`.
56
+ *
57
+ * @default `${idPrefix}-${path}` with dots replaced by dashes
58
+ */
59
+ readonly id?: MaybeRefOrGetter<string | null | undefined>;
60
+ /**
61
+ * Prefix of the derived id. Use a unique prefix per form on pages with
62
+ * several forms that share field paths.
63
+ *
64
+ * @default "field"
65
+ */
66
+ readonly idPrefix?: string;
67
+ /**
68
+ * Whether a description element is rendered and joins `aria-describedby`.
69
+ *
70
+ * @default false
71
+ */
72
+ readonly hasDescription?: MaybeRefOrGetter<boolean | undefined>;
73
+ /**
74
+ * Whether an error element is rendered while invalid and is referenced.
75
+ *
76
+ * @default true
77
+ */
78
+ readonly hasErrorMessage?: MaybeRefOrGetter<boolean | undefined>;
79
+ /**
80
+ * When errors make the field invalid: immediately, after the first
81
+ * submit, or once the field is touched (or the form was submitted).
82
+ *
83
+ * @default "touched"
84
+ */
85
+ readonly showErrors?: FormFieldErrorVisibility;
86
+ }
87
+ /** Bindings returned by {@link useFormFieldProps}. */
88
+ interface FormFieldPropsControls<Value, Path extends string> {
89
+ /** Underlying typed field controls. */
90
+ readonly field: FormFieldControls<Value, Path>;
91
+ /** Control id. */
92
+ readonly id: ComputedRef<string>;
93
+ /** Whether errors are currently reported. */
94
+ readonly invalid: ComputedRef<boolean>;
95
+ /** First reported error, or `undefined` while valid or hidden. */
96
+ readonly errorMessage: ComputedRef<string | undefined>;
97
+ /** Accessible relations for the control. */
98
+ readonly fieldProps: ComputedRef<FormFieldControlProps>;
99
+ /** Props for the label element. */
100
+ readonly labelProps: ComputedRef<FormFieldLabelProps>;
101
+ /** Props for the description element. */
102
+ readonly descriptionProps: ComputedRef<FormFieldTextProps>;
103
+ /** Props for the error element. */
104
+ readonly errorMessageProps: ComputedRef<FormFieldTextProps>;
105
+ /** `v-model` and blur bindings for the control. */
106
+ readonly modelProps: ComputedRef<FormFieldModelProps<Value>>;
107
+ /** `fieldProps` and `modelProps` merged, for a single `v-bind`. */
108
+ readonly controlProps: ComputedRef<FormFieldControlProps & FormFieldModelProps<Value>>;
109
+ }
110
+ /**
111
+ * One invalid field, structurally identical to `ErrorSummaryField` from
112
+ * `@vizejs/ui/error-summary`.
113
+ */
114
+ interface FormErrorSummaryItem {
115
+ /** Id of the invalid control (link target). */
116
+ readonly id: string;
117
+ /** First error message. */
118
+ readonly message: string;
119
+ /** Optional field label prefixed to the message. */
120
+ readonly label?: string;
121
+ }
122
+ /**
123
+ * One error, structurally identical to `FormFieldError` from `@vizejs/ui/form`,
124
+ * so ui `Field` components match errors by `name`.
125
+ */
126
+ interface FormFieldErrorEntry {
127
+ /** Dotted field path, used as the ui field `name`. */
128
+ readonly name: string;
129
+ /** Error message. */
130
+ readonly message: string;
131
+ /** Path segments; numeric segments are numbers. */
132
+ readonly path: readonly (string | number)[];
133
+ }
134
+ /** Options for {@link useFormErrorSummaryFields}. */
135
+ interface UseFormErrorSummaryFieldsOptions<Values> {
136
+ /**
137
+ * Prefix used to derive control ids; must match {@link useFormFieldProps}.
138
+ *
139
+ * @default "field"
140
+ */
141
+ readonly idPrefix?: string;
142
+ /**
143
+ * Explicit control ids per path, for fields bound with a custom `id`.
144
+ *
145
+ * @default {}
146
+ */
147
+ readonly ids?: { readonly [Path in FormPath<Values>]?: string };
148
+ /**
149
+ * Human-readable labels per path.
150
+ *
151
+ * @default {}
152
+ */
153
+ readonly labels?: { readonly [Path in FormPath<Values>]?: string };
154
+ /**
155
+ * Paths in document order; unlisted paths follow in error order.
156
+ *
157
+ * @default []
158
+ */
159
+ readonly order?: readonly FormPath<Values>[];
160
+ /**
161
+ * Include form-level errors (the `""` path) with this control id.
162
+ *
163
+ * @default undefined
164
+ */
165
+ readonly rootId?: string;
166
+ /**
167
+ * When errors are listed: immediately, or only after the first submit.
168
+ *
169
+ * @default "submitted"
170
+ */
171
+ readonly showErrors?: "always" | "submitted";
172
+ }
173
+ /** Derive the default control id for a path. */
174
+ declare function formFieldId(path: string, idPrefix?: string): string;
175
+ /**
176
+ * Bind one `useForm` field to accessible field markup and any `v-model` control.
177
+ *
178
+ * Returns ids, ARIA relations (`fieldProps`), label/description/error props,
179
+ * and `modelProps` whose shapes match `@vizejs/ui`'s Field contracts
180
+ * structurally, so the bridge lives here without a runtime dependency on the
181
+ * UI package. Ids are derived from the path, so server and client agree
182
+ * without any instance-local id sequence.
183
+ *
184
+ * Server rendering: pure derived state, no host access. Cleanup: none needed
185
+ * beyond the owning form.
186
+ *
187
+ * @example
188
+ * ```vue
189
+ * <script setup lang="ts">
190
+ * const form = useForm({ initialValues: { address: { city: "" } } });
191
+ * const city = useFormFieldProps(form, "address.city");
192
+ * </script>
193
+ * <template>
194
+ * <label v-bind="city.labelProps.value">City</label>
195
+ * <TextInput v-bind="city.controlProps.value" />
196
+ * <p v-if="city.invalid.value" v-bind="city.errorMessageProps.value">{{ city.errorMessage.value }}</p>
197
+ * </template>
198
+ * ```
199
+ *
200
+ * @param form Controls returned by `useForm`.
201
+ * @param path Typed dotted path.
202
+ * @param options Id, relation, and error-visibility options.
203
+ * @default options {}
204
+ * @returns Typed bindings for the field.
205
+ */
206
+ declare function useFormFieldProps<Values extends object, Output, Path extends FormPath<Values>>(form: FormControls<Values, Output>, path: Path, options?: UseFormFieldPropsOptions): FormFieldPropsControls<FormPathValue<Values, Path>, Path>;
207
+ /**
208
+ * Convert form errors into ui `FormFieldError` entries (`{ name, message, path }`),
209
+ * one per message, so `@vizejs/ui` `Field` components match them by `name`.
210
+ *
211
+ * @param errors `form.errors.value`.
212
+ * @returns Entries in record order; the form-level `""` path has an empty `path`.
213
+ */
214
+ declare function toFormFieldErrors(errors: Readonly<Record<string, readonly string[]>>): readonly FormFieldErrorEntry[];
215
+ /**
216
+ * Derive `@vizejs/ui` `ErrorSummary` fields from a `useForm` instance.
217
+ *
218
+ * Each invalid path becomes `{ id, message, label? }` pointing at the control
219
+ * id that {@link useFormFieldProps} assigns, in `order` then error order.
220
+ *
221
+ * Server rendering: pure derived state. Cleanup: none.
222
+ *
223
+ * @example
224
+ * ```vue
225
+ * <ErrorSummary :fields="summary" heading="Fix these fields" />
226
+ * ```
227
+ *
228
+ * @param form Controls returned by `useForm`.
229
+ * @param options Id, label, ordering, and visibility options.
230
+ * @default options {}
231
+ * @returns Summary fields, empty until errors should be shown.
232
+ */
233
+ declare function useFormErrorSummaryFields<Values extends object, Output>(form: FormControls<Values, Output>, options?: UseFormErrorSummaryFieldsOptions<Values>): ComputedRef<readonly FormErrorSummaryItem[]>;
234
+ //#endregion
235
+ export { FormErrorSummaryItem, FormFieldControlProps, FormFieldErrorEntry, FormFieldErrorVisibility, FormFieldLabelProps, FormFieldModelProps, FormFieldPropsControls, FormFieldTextProps, UseFormErrorSummaryFieldsOptions, UseFormFieldPropsOptions, formFieldId, toFormFieldErrors, useFormErrorSummaryFields, useFormFieldProps };