@bquery/bquery 1.5.0 → 1.7.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 (380) hide show
  1. package/README.md +193 -23
  2. package/dist/a11y/announce.d.ts +43 -0
  3. package/dist/a11y/announce.d.ts.map +1 -0
  4. package/dist/a11y/audit.d.ts +42 -0
  5. package/dist/a11y/audit.d.ts.map +1 -0
  6. package/dist/a11y/index.d.ts +53 -0
  7. package/dist/a11y/index.d.ts.map +1 -0
  8. package/dist/a11y/media-preferences.d.ts +77 -0
  9. package/dist/a11y/media-preferences.d.ts.map +1 -0
  10. package/dist/a11y/roving-tab-index.d.ts +38 -0
  11. package/dist/a11y/roving-tab-index.d.ts.map +1 -0
  12. package/dist/a11y/skip-link.d.ts +37 -0
  13. package/dist/a11y/skip-link.d.ts.map +1 -0
  14. package/dist/a11y/trap-focus.d.ts +49 -0
  15. package/dist/a11y/trap-focus.d.ts.map +1 -0
  16. package/dist/a11y/types.d.ts +152 -0
  17. package/dist/a11y/types.d.ts.map +1 -0
  18. package/dist/a11y-C5QOVvRn.js +421 -0
  19. package/dist/a11y-C5QOVvRn.js.map +1 -0
  20. package/dist/a11y.es.mjs +14 -0
  21. package/dist/component/component.d.ts +13 -5
  22. package/dist/component/component.d.ts.map +1 -1
  23. package/dist/component/html.d.ts +40 -3
  24. package/dist/component/html.d.ts.map +1 -1
  25. package/dist/component/index.d.ts +3 -2
  26. package/dist/component/index.d.ts.map +1 -1
  27. package/dist/component/library.d.ts.map +1 -1
  28. package/dist/component/scope.d.ts +138 -0
  29. package/dist/component/scope.d.ts.map +1 -0
  30. package/dist/component/types.d.ts +184 -17
  31. package/dist/component/types.d.ts.map +1 -1
  32. package/dist/component-CuuTijA6.js +684 -0
  33. package/dist/component-CuuTijA6.js.map +1 -0
  34. package/dist/component.es.mjs +10 -6
  35. package/dist/{config-DRmZZno3.js → config-BW35FKuA.js} +4 -4
  36. package/dist/config-BW35FKuA.js.map +1 -0
  37. package/dist/constraints-3lV9yyBw.js +100 -0
  38. package/dist/constraints-3lV9yyBw.js.map +1 -0
  39. package/dist/core/collection.d.ts +48 -0
  40. package/dist/core/collection.d.ts.map +1 -1
  41. package/dist/core/element.d.ts +92 -0
  42. package/dist/core/element.d.ts.map +1 -1
  43. package/dist/core/env.d.ts +18 -0
  44. package/dist/core/env.d.ts.map +1 -0
  45. package/dist/core/index.d.ts +1 -0
  46. package/dist/core/index.d.ts.map +1 -1
  47. package/dist/core/shared.d.ts +8 -0
  48. package/dist/core/shared.d.ts.map +1 -1
  49. package/dist/core/utils/index.d.ts +52 -41
  50. package/dist/core/utils/index.d.ts.map +1 -1
  51. package/dist/core-Cjl7GUu8.js +717 -0
  52. package/dist/core-Cjl7GUu8.js.map +1 -0
  53. package/dist/{core-DPdbItcq.js → core-DnlyjbF2.js} +1 -1
  54. package/dist/{core-DPdbItcq.js.map → core-DnlyjbF2.js.map} +1 -1
  55. package/dist/core.es.mjs +45 -44
  56. package/dist/custom-directives-7wAShnnd.js +9 -0
  57. package/dist/custom-directives-7wAShnnd.js.map +1 -0
  58. package/dist/devtools/devtools.d.ts +212 -0
  59. package/dist/devtools/devtools.d.ts.map +1 -0
  60. package/dist/devtools/index.d.ts +20 -0
  61. package/dist/devtools/index.d.ts.map +1 -0
  62. package/dist/devtools/types.d.ts +69 -0
  63. package/dist/devtools/types.d.ts.map +1 -0
  64. package/dist/devtools-D2fQLhDN.js +122 -0
  65. package/dist/devtools-D2fQLhDN.js.map +1 -0
  66. package/dist/devtools.es.mjs +19 -0
  67. package/dist/dnd/draggable.d.ts +51 -0
  68. package/dist/dnd/draggable.d.ts.map +1 -0
  69. package/dist/dnd/droppable.d.ts +38 -0
  70. package/dist/dnd/droppable.d.ts.map +1 -0
  71. package/dist/dnd/index.d.ts +47 -0
  72. package/dist/dnd/index.d.ts.map +1 -0
  73. package/dist/dnd/sortable.d.ts +43 -0
  74. package/dist/dnd/sortable.d.ts.map +1 -0
  75. package/dist/dnd/types.d.ts +250 -0
  76. package/dist/dnd/types.d.ts.map +1 -0
  77. package/dist/dnd-B8EgyzaI.js +244 -0
  78. package/dist/dnd-B8EgyzaI.js.map +1 -0
  79. package/dist/dnd.es.mjs +6 -0
  80. package/dist/env-NeVmr4Gf.js +19 -0
  81. package/dist/env-NeVmr4Gf.js.map +1 -0
  82. package/dist/forms/create-form.d.ts +49 -0
  83. package/dist/forms/create-form.d.ts.map +1 -0
  84. package/dist/forms/index.d.ts +39 -0
  85. package/dist/forms/index.d.ts.map +1 -0
  86. package/dist/forms/types.d.ts +139 -0
  87. package/dist/forms/types.d.ts.map +1 -0
  88. package/dist/forms/validators.d.ts +179 -0
  89. package/dist/forms/validators.d.ts.map +1 -0
  90. package/dist/forms-C3yovgH9.js +141 -0
  91. package/dist/forms-C3yovgH9.js.map +1 -0
  92. package/dist/forms.es.mjs +14 -0
  93. package/dist/full.d.ts +37 -9
  94. package/dist/full.d.ts.map +1 -1
  95. package/dist/full.es.mjs +186 -91
  96. package/dist/full.iife.js +47 -31
  97. package/dist/full.iife.js.map +1 -1
  98. package/dist/full.umd.js +47 -31
  99. package/dist/full.umd.js.map +1 -1
  100. package/dist/i18n/formatting.d.ts +40 -0
  101. package/dist/i18n/formatting.d.ts.map +1 -0
  102. package/dist/i18n/i18n.d.ts +48 -0
  103. package/dist/i18n/i18n.d.ts.map +1 -0
  104. package/dist/i18n/index.d.ts +57 -0
  105. package/dist/i18n/index.d.ts.map +1 -0
  106. package/dist/i18n/translate.d.ts +83 -0
  107. package/dist/i18n/translate.d.ts.map +1 -0
  108. package/dist/i18n/types.d.ts +156 -0
  109. package/dist/i18n/types.d.ts.map +1 -0
  110. package/dist/i18n-BnnhTFOS.js +89 -0
  111. package/dist/i18n-BnnhTFOS.js.map +1 -0
  112. package/dist/i18n.es.mjs +6 -0
  113. package/dist/index.d.ts +11 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.es.mjs +233 -138
  116. package/dist/media/battery.d.ts +35 -0
  117. package/dist/media/battery.d.ts.map +1 -0
  118. package/dist/media/breakpoints.d.ts +51 -0
  119. package/dist/media/breakpoints.d.ts.map +1 -0
  120. package/dist/media/clipboard.d.ts +30 -0
  121. package/dist/media/clipboard.d.ts.map +1 -0
  122. package/dist/media/device-sensors.d.ts +54 -0
  123. package/dist/media/device-sensors.d.ts.map +1 -0
  124. package/dist/media/geolocation.d.ts +38 -0
  125. package/dist/media/geolocation.d.ts.map +1 -0
  126. package/dist/media/index.d.ts +42 -0
  127. package/dist/media/index.d.ts.map +1 -0
  128. package/dist/media/media-query.d.ts +36 -0
  129. package/dist/media/media-query.d.ts.map +1 -0
  130. package/dist/media/network.d.ts +35 -0
  131. package/dist/media/network.d.ts.map +1 -0
  132. package/dist/media/types.d.ts +173 -0
  133. package/dist/media/types.d.ts.map +1 -0
  134. package/dist/media/viewport.d.ts +32 -0
  135. package/dist/media/viewport.d.ts.map +1 -0
  136. package/dist/media-Di2Ta22s.js +340 -0
  137. package/dist/media-Di2Ta22s.js.map +1 -0
  138. package/dist/media.es.mjs +12 -0
  139. package/dist/motion/index.d.ts +7 -3
  140. package/dist/motion/index.d.ts.map +1 -1
  141. package/dist/motion/morph.d.ts +27 -0
  142. package/dist/motion/morph.d.ts.map +1 -0
  143. package/dist/motion/parallax.d.ts +30 -0
  144. package/dist/motion/parallax.d.ts.map +1 -0
  145. package/dist/motion/reduced-motion.d.ts +36 -3
  146. package/dist/motion/reduced-motion.d.ts.map +1 -1
  147. package/dist/motion/types.d.ts +58 -0
  148. package/dist/motion/types.d.ts.map +1 -1
  149. package/dist/motion/typewriter.d.ts +31 -0
  150. package/dist/motion/typewriter.d.ts.map +1 -0
  151. package/dist/motion-qPj_TYGv.js +530 -0
  152. package/dist/motion-qPj_TYGv.js.map +1 -0
  153. package/dist/motion.es.mjs +27 -23
  154. package/dist/mount-SM07RUa6.js +403 -0
  155. package/dist/mount-SM07RUa6.js.map +1 -0
  156. package/dist/{object-qGpWr6-J.js → object-BCk-1c8T.js} +5 -4
  157. package/dist/{object-qGpWr6-J.js.map → object-BCk-1c8T.js.map} +1 -1
  158. package/dist/{platform-B7JhGBc7.js → platform-CPbCprb6.js} +3 -3
  159. package/dist/platform-CPbCprb6.js.map +1 -0
  160. package/dist/platform.es.mjs +2 -2
  161. package/dist/plugin/index.d.ts +22 -0
  162. package/dist/plugin/index.d.ts.map +1 -0
  163. package/dist/plugin/registry.d.ts +108 -0
  164. package/dist/plugin/registry.d.ts.map +1 -0
  165. package/dist/plugin/types.d.ts +110 -0
  166. package/dist/plugin/types.d.ts.map +1 -0
  167. package/dist/plugin-cPoOHFLY.js +64 -0
  168. package/dist/plugin-cPoOHFLY.js.map +1 -0
  169. package/dist/plugin.es.mjs +9 -0
  170. package/dist/reactive/computed.d.ts +7 -0
  171. package/dist/reactive/computed.d.ts.map +1 -1
  172. package/dist/reactive-Cfv0RK6x.js +233 -0
  173. package/dist/reactive-Cfv0RK6x.js.map +1 -0
  174. package/dist/reactive.es.mjs +18 -17
  175. package/dist/registry-CWf368tT.js +26 -0
  176. package/dist/registry-CWf368tT.js.map +1 -0
  177. package/dist/router/bq-link.d.ts +112 -0
  178. package/dist/router/bq-link.d.ts.map +1 -0
  179. package/dist/router/constraints.d.ts +9 -0
  180. package/dist/router/constraints.d.ts.map +1 -0
  181. package/dist/router/index.d.ts +14 -6
  182. package/dist/router/index.d.ts.map +1 -1
  183. package/dist/router/match.d.ts +0 -1
  184. package/dist/router/match.d.ts.map +1 -1
  185. package/dist/router/path-pattern.d.ts +14 -0
  186. package/dist/router/path-pattern.d.ts.map +1 -0
  187. package/dist/router/query.d.ts.map +1 -1
  188. package/dist/router/router.d.ts +3 -1
  189. package/dist/router/router.d.ts.map +1 -1
  190. package/dist/router/types.d.ts +48 -4
  191. package/dist/router/types.d.ts.map +1 -1
  192. package/dist/router/use-route.d.ts +50 -0
  193. package/dist/router/use-route.d.ts.map +1 -0
  194. package/dist/router/utils.d.ts +3 -0
  195. package/dist/router/utils.d.ts.map +1 -1
  196. package/dist/router-BrthaP_z.js +473 -0
  197. package/dist/router-BrthaP_z.js.map +1 -0
  198. package/dist/router.es.mjs +13 -10
  199. package/dist/{sanitize-jyJ2ryE2.js → sanitize-B1V4JswB.js} +95 -83
  200. package/dist/sanitize-B1V4JswB.js.map +1 -0
  201. package/dist/security/index.d.ts +2 -0
  202. package/dist/security/index.d.ts.map +1 -1
  203. package/dist/security/sanitize.d.ts +4 -1
  204. package/dist/security/sanitize.d.ts.map +1 -1
  205. package/dist/security/trusted-html.d.ts +53 -0
  206. package/dist/security/trusted-html.d.ts.map +1 -0
  207. package/dist/security.es.mjs +10 -9
  208. package/dist/ssr/hydrate.d.ts +65 -0
  209. package/dist/ssr/hydrate.d.ts.map +1 -0
  210. package/dist/ssr/index.d.ts +59 -0
  211. package/dist/ssr/index.d.ts.map +1 -0
  212. package/dist/ssr/render.d.ts +62 -0
  213. package/dist/ssr/render.d.ts.map +1 -0
  214. package/dist/ssr/serialize.d.ts +118 -0
  215. package/dist/ssr/serialize.d.ts.map +1 -0
  216. package/dist/ssr/types.d.ts +70 -0
  217. package/dist/ssr/types.d.ts.map +1 -0
  218. package/dist/ssr-B2qd_WBB.js +248 -0
  219. package/dist/ssr-B2qd_WBB.js.map +1 -0
  220. package/dist/ssr.es.mjs +9 -0
  221. package/dist/store/create-store.d.ts.map +1 -1
  222. package/dist/store/define-store.d.ts +1 -1
  223. package/dist/store/define-store.d.ts.map +1 -1
  224. package/dist/store/index.d.ts +1 -1
  225. package/dist/store/index.d.ts.map +1 -1
  226. package/dist/store/mapping.d.ts +1 -1
  227. package/dist/store/mapping.d.ts.map +1 -1
  228. package/dist/store/persisted.d.ts +38 -4
  229. package/dist/store/persisted.d.ts.map +1 -1
  230. package/dist/store/types.d.ts +140 -3
  231. package/dist/store/types.d.ts.map +1 -1
  232. package/dist/store/utils.d.ts +2 -2
  233. package/dist/store/utils.d.ts.map +1 -1
  234. package/dist/store/watch.d.ts +1 -1
  235. package/dist/store/watch.d.ts.map +1 -1
  236. package/dist/store-DWpyH6p5.js +338 -0
  237. package/dist/store-DWpyH6p5.js.map +1 -0
  238. package/dist/store.es.mjs +11 -10
  239. package/dist/storybook/index.d.ts +37 -0
  240. package/dist/storybook/index.d.ts.map +1 -0
  241. package/dist/storybook.es.mjs +151 -0
  242. package/dist/storybook.es.mjs.map +1 -0
  243. package/dist/testing/index.d.ts +23 -0
  244. package/dist/testing/index.d.ts.map +1 -0
  245. package/dist/testing/testing.d.ts +156 -0
  246. package/dist/testing/testing.d.ts.map +1 -0
  247. package/dist/testing/types.d.ts +134 -0
  248. package/dist/testing/types.d.ts.map +1 -0
  249. package/dist/testing-CsqjNUyy.js +224 -0
  250. package/dist/testing-CsqjNUyy.js.map +1 -0
  251. package/dist/testing.es.mjs +9 -0
  252. package/dist/type-guards-Do9DWgNp.js +44 -0
  253. package/dist/type-guards-Do9DWgNp.js.map +1 -0
  254. package/dist/untrack-DJVQQ2WM.js +33 -0
  255. package/dist/untrack-DJVQQ2WM.js.map +1 -0
  256. package/dist/view/custom-directives.d.ts +20 -0
  257. package/dist/view/custom-directives.d.ts.map +1 -0
  258. package/dist/view/evaluate.d.ts.map +1 -1
  259. package/dist/view/process.d.ts.map +1 -1
  260. package/dist/view.es.mjs +11 -10
  261. package/package.json +52 -11
  262. package/src/a11y/announce.ts +131 -0
  263. package/src/a11y/audit.ts +314 -0
  264. package/src/a11y/index.ts +68 -0
  265. package/src/a11y/media-preferences.ts +255 -0
  266. package/src/a11y/roving-tab-index.ts +164 -0
  267. package/src/a11y/skip-link.ts +255 -0
  268. package/src/a11y/trap-focus.ts +184 -0
  269. package/src/a11y/types.ts +183 -0
  270. package/src/component/component.ts +345 -65
  271. package/src/component/html.ts +153 -53
  272. package/src/component/index.ts +12 -2
  273. package/src/component/library.ts +66 -28
  274. package/src/component/scope.ts +212 -0
  275. package/src/component/types.ts +238 -19
  276. package/src/core/collection.ts +707 -628
  277. package/src/core/element.ts +981 -774
  278. package/src/core/env.ts +60 -0
  279. package/src/core/index.ts +49 -48
  280. package/src/core/shared.ts +62 -13
  281. package/src/core/utils/index.ts +148 -83
  282. package/src/devtools/devtools.ts +410 -0
  283. package/src/devtools/index.ts +48 -0
  284. package/src/devtools/types.ts +104 -0
  285. package/src/dnd/draggable.ts +296 -0
  286. package/src/dnd/droppable.ts +228 -0
  287. package/src/dnd/index.ts +62 -0
  288. package/src/dnd/sortable.ts +307 -0
  289. package/src/dnd/types.ts +293 -0
  290. package/src/forms/create-form.ts +278 -0
  291. package/src/forms/index.ts +65 -0
  292. package/src/forms/types.ts +154 -0
  293. package/src/forms/validators.ts +265 -0
  294. package/src/full.ts +260 -3
  295. package/src/i18n/formatting.ts +67 -0
  296. package/src/i18n/i18n.ts +200 -0
  297. package/src/i18n/index.ts +67 -0
  298. package/src/i18n/translate.ts +182 -0
  299. package/src/i18n/types.ts +171 -0
  300. package/src/index.ts +108 -36
  301. package/src/media/battery.ts +116 -0
  302. package/src/media/breakpoints.ts +131 -0
  303. package/src/media/clipboard.ts +80 -0
  304. package/src/media/device-sensors.ts +158 -0
  305. package/src/media/geolocation.ts +119 -0
  306. package/src/media/index.ts +76 -0
  307. package/src/media/media-query.ts +92 -0
  308. package/src/media/network.ts +115 -0
  309. package/src/media/types.ts +177 -0
  310. package/src/media/viewport.ts +84 -0
  311. package/src/motion/index.ts +57 -48
  312. package/src/motion/morph.ts +151 -0
  313. package/src/motion/parallax.ts +120 -0
  314. package/src/motion/reduced-motion.ts +66 -17
  315. package/src/motion/transition.ts +97 -97
  316. package/src/motion/types.ts +63 -0
  317. package/src/motion/typewriter.ts +164 -0
  318. package/src/platform/announcer.ts +208 -208
  319. package/src/platform/config.ts +163 -163
  320. package/src/platform/cookies.ts +165 -165
  321. package/src/platform/index.ts +39 -39
  322. package/src/platform/meta.ts +168 -168
  323. package/src/plugin/index.ts +37 -0
  324. package/src/plugin/registry.ts +269 -0
  325. package/src/plugin/types.ts +137 -0
  326. package/src/reactive/async-data.ts +486 -486
  327. package/src/reactive/computed.ts +130 -92
  328. package/src/reactive/index.ts +37 -37
  329. package/src/reactive/signal.ts +29 -29
  330. package/src/router/bq-link.ts +279 -0
  331. package/src/router/constraints.ts +201 -0
  332. package/src/router/index.ts +49 -41
  333. package/src/router/match.ts +312 -106
  334. package/src/router/path-pattern.ts +52 -0
  335. package/src/router/query.ts +38 -35
  336. package/src/router/router.ts +402 -211
  337. package/src/router/types.ts +139 -93
  338. package/src/router/use-route.ts +68 -0
  339. package/src/router/utils.ts +157 -116
  340. package/src/security/constants.ts +211 -211
  341. package/src/security/index.ts +12 -10
  342. package/src/security/sanitize.ts +6 -2
  343. package/src/security/trusted-html.ts +71 -0
  344. package/src/ssr/hydrate.ts +82 -0
  345. package/src/ssr/index.ts +70 -0
  346. package/src/ssr/render.ts +508 -0
  347. package/src/ssr/serialize.ts +296 -0
  348. package/src/ssr/types.ts +81 -0
  349. package/src/store/create-store.ts +467 -329
  350. package/src/store/define-store.ts +2 -1
  351. package/src/store/index.ts +27 -22
  352. package/src/store/mapping.ts +2 -1
  353. package/src/store/persisted.ts +249 -61
  354. package/src/store/types.ts +247 -94
  355. package/src/store/utils.ts +135 -141
  356. package/src/store/watch.ts +2 -1
  357. package/src/storybook/index.ts +480 -0
  358. package/src/testing/index.ts +42 -0
  359. package/src/testing/testing.ts +593 -0
  360. package/src/testing/types.ts +170 -0
  361. package/src/view/custom-directives.ts +30 -0
  362. package/src/view/evaluate.ts +292 -290
  363. package/src/view/process.ts +108 -92
  364. package/dist/component-CY5MVoYN.js +0 -531
  365. package/dist/component-CY5MVoYN.js.map +0 -1
  366. package/dist/config-DRmZZno3.js.map +0 -1
  367. package/dist/core-CK2Mfpf4.js +0 -648
  368. package/dist/core-CK2Mfpf4.js.map +0 -1
  369. package/dist/motion-C5DRdPnO.js +0 -415
  370. package/dist/motion-C5DRdPnO.js.map +0 -1
  371. package/dist/platform-B7JhGBc7.js.map +0 -1
  372. package/dist/reactive-BDya-ia8.js +0 -253
  373. package/dist/reactive-BDya-ia8.js.map +0 -1
  374. package/dist/router-CijiICxt.js +0 -188
  375. package/dist/router-CijiICxt.js.map +0 -1
  376. package/dist/sanitize-jyJ2ryE2.js.map +0 -1
  377. package/dist/store-CPK9E62U.js +0 -262
  378. package/dist/store-CPK9E62U.js.map +0 -1
  379. package/dist/view-Cdi0g-qo.js +0 -396
  380. package/dist/view-Cdi0g-qo.js.map +0 -1
@@ -1,39 +1,39 @@
1
- /**
2
- * Platform module providing unified endpoints for web platform APIs.
3
- * Offers consistent, promise-based interfaces with predictable errors.
4
- *
5
- * @module bquery/platform
6
- */
7
-
8
- export { buckets } from './buckets';
9
- export type { Bucket } from './buckets';
10
-
11
- export { cache } from './cache';
12
- export type { CacheHandle } from './cache';
13
-
14
- export { useCookie } from './cookies';
15
- export type { UseCookieOptions } from './cookies';
16
-
17
- export { defineBqueryConfig, getBqueryConfig } from './config';
18
- export type {
19
- BqueryAnnouncerConfig,
20
- BqueryComponentLibraryConfig,
21
- BqueryConfig,
22
- BqueryCookieConfig,
23
- BqueryFetchConfig,
24
- BqueryFetchParseAs,
25
- BqueryPageMetaConfig,
26
- BqueryTransitionConfig,
27
- } from './config';
28
-
29
- export { notifications } from './notifications';
30
- export type { NotificationOptions } from './notifications';
31
-
32
- export { useAnnouncer } from './announcer';
33
- export type { AnnounceOptions, AnnouncerHandle, UseAnnouncerOptions } from './announcer';
34
-
35
- export { definePageMeta } from './meta';
36
- export type { PageLinkTag, PageMetaCleanup, PageMetaDefinition, PageMetaTag } from './meta';
37
-
38
- export { storage } from './storage';
39
- export type { IndexedDBOptions, StorageAdapter } from './storage';
1
+ /**
2
+ * Platform module providing unified endpoints for web platform APIs.
3
+ * Offers consistent, promise-based interfaces with predictable errors.
4
+ *
5
+ * @module bquery/platform
6
+ */
7
+
8
+ export { buckets } from './buckets';
9
+ export type { Bucket } from './buckets';
10
+
11
+ export { cache } from './cache';
12
+ export type { CacheHandle } from './cache';
13
+
14
+ export { useCookie } from './cookies';
15
+ export type { UseCookieOptions } from './cookies';
16
+
17
+ export { defineBqueryConfig, getBqueryConfig } from './config';
18
+ export type {
19
+ BqueryAnnouncerConfig,
20
+ BqueryComponentLibraryConfig,
21
+ BqueryConfig,
22
+ BqueryCookieConfig,
23
+ BqueryFetchConfig,
24
+ BqueryFetchParseAs,
25
+ BqueryPageMetaConfig,
26
+ BqueryTransitionConfig,
27
+ } from './config';
28
+
29
+ export { notifications } from './notifications';
30
+ export type { NotificationOptions } from './notifications';
31
+
32
+ export { useAnnouncer } from './announcer';
33
+ export type { AnnounceOptions, AnnouncerHandle, UseAnnouncerOptions } from './announcer';
34
+
35
+ export { definePageMeta } from './meta';
36
+ export type { PageLinkTag, PageMetaCleanup, PageMetaDefinition, PageMetaTag } from './meta';
37
+
38
+ export { storage } from './storage';
39
+ export type { IndexedDBOptions, StorageAdapter } from './storage';
@@ -1,168 +1,168 @@
1
- /**
2
- * Document title and meta helpers.
3
- *
4
- * @module bquery/platform
5
- */
6
-
7
- import { getBqueryConfig } from './config';
8
-
9
- /** Meta tag definition. */
10
- export interface PageMetaTag {
11
- /** Standard meta name attribute. */
12
- name?: string;
13
- /** Open Graph / custom property attribute. */
14
- property?: string;
15
- /** http-equiv attribute. */
16
- httpEquiv?: string;
17
- /** Meta tag content. */
18
- content: string;
19
- }
20
-
21
- /** Link tag definition. */
22
- export interface PageLinkTag {
23
- /** Link relation. */
24
- rel: string;
25
- /** Link URL. */
26
- href: string;
27
- /** Optional type attribute. */
28
- type?: string;
29
- /** Optional media query. */
30
- media?: string;
31
- /** Optional crossOrigin attribute. */
32
- crossOrigin?: 'anonymous' | 'use-credentials';
33
- }
34
-
35
- /** Page metadata definition. */
36
- export interface PageMetaDefinition {
37
- /** Document title. */
38
- title?: string;
39
- /** Convenience shortcut for the description meta tag. */
40
- description?: string;
41
- /** Additional meta tags. */
42
- meta?: PageMetaTag[];
43
- /** Additional link tags. */
44
- link?: PageLinkTag[];
45
- /** Attributes applied to the html element. */
46
- htmlAttributes?: Record<string, string>;
47
- /** Attributes applied to the body element. */
48
- bodyAttributes?: Record<string, string>;
49
- }
50
-
51
- /** Cleanup function returned by definePageMeta(). */
52
- export type PageMetaCleanup = () => void;
53
-
54
- const setAttributes = (target: HTMLElement, attributes: Record<string, string>): (() => void) => {
55
- const previousValues = new Map<string, string | null>();
56
-
57
- for (const [name, value] of Object.entries(attributes)) {
58
- previousValues.set(name, target.getAttribute(name));
59
- target.setAttribute(name, value);
60
- }
61
-
62
- return () => {
63
- for (const [name, value] of previousValues.entries()) {
64
- if (value == null) {
65
- target.removeAttribute(name);
66
- } else {
67
- target.setAttribute(name, value);
68
- }
69
- }
70
- };
71
- };
72
-
73
- const createElement = <T extends 'meta' | 'link'>(
74
- tagName: T,
75
- attributes: Record<string, string | undefined>
76
- ): HTMLElementTagNameMap[T] => {
77
- const element = document.createElement(tagName);
78
- element.setAttribute('data-bquery-page-meta', 'true');
79
-
80
- for (const [name, value] of Object.entries(attributes)) {
81
- if (value !== undefined) {
82
- element.setAttribute(name, value);
83
- }
84
- }
85
-
86
- return element;
87
- };
88
-
89
- /**
90
- * Apply document metadata for the current page.
91
- *
92
- * @param definition - Title, meta tags, link tags, and document attributes
93
- * @returns Cleanup function that restores the previous document state
94
- *
95
- * @example
96
- * ```ts
97
- * const cleanup = definePageMeta({
98
- * title: 'Dashboard',
99
- * description: 'Overview of your account',
100
- * });
101
- * ```
102
- */
103
- export const definePageMeta = (definition: PageMetaDefinition): PageMetaCleanup => {
104
- if (typeof document === 'undefined') {
105
- return () => {};
106
- }
107
-
108
- const config = getBqueryConfig().pageMeta;
109
- const title = definition.title
110
- ? config?.titleTemplate
111
- ? config.titleTemplate(definition.title)
112
- : definition.title
113
- : undefined;
114
-
115
- const inserted: HTMLElement[] = [];
116
- const restoreFns: Array<() => void> = [];
117
- const previousTitle = document.title;
118
-
119
- if (title !== undefined) {
120
- document.title = title;
121
- }
122
-
123
- const metaEntries = [...(definition.meta ?? [])];
124
- if (definition.description) {
125
- metaEntries.unshift({ name: 'description', content: definition.description });
126
- }
127
-
128
- for (const entry of metaEntries) {
129
- const meta = createElement('meta', {
130
- name: entry.name,
131
- property: entry.property,
132
- 'http-equiv': entry.httpEquiv,
133
- content: entry.content,
134
- });
135
- document.head.appendChild(meta);
136
- inserted.push(meta);
137
- }
138
-
139
- for (const entry of definition.link ?? []) {
140
- const link = createElement('link', {
141
- rel: entry.rel,
142
- href: entry.href,
143
- type: entry.type,
144
- media: entry.media,
145
- crossorigin: entry.crossOrigin,
146
- });
147
- document.head.appendChild(link);
148
- inserted.push(link);
149
- }
150
-
151
- if (definition.htmlAttributes) {
152
- restoreFns.push(setAttributes(document.documentElement, definition.htmlAttributes));
153
- }
154
-
155
- if (definition.bodyAttributes && document.body) {
156
- restoreFns.push(setAttributes(document.body, definition.bodyAttributes));
157
- }
158
-
159
- return () => {
160
- document.title = previousTitle;
161
- for (const restore of restoreFns.reverse()) {
162
- restore();
163
- }
164
- for (const element of inserted) {
165
- element.remove();
166
- }
167
- };
168
- };
1
+ /**
2
+ * Document title and meta helpers.
3
+ *
4
+ * @module bquery/platform
5
+ */
6
+
7
+ import { getBqueryConfig } from './config';
8
+
9
+ /** Meta tag definition. */
10
+ export interface PageMetaTag {
11
+ /** Standard meta name attribute. */
12
+ name?: string;
13
+ /** Open Graph / custom property attribute. */
14
+ property?: string;
15
+ /** http-equiv attribute. */
16
+ httpEquiv?: string;
17
+ /** Meta tag content. */
18
+ content: string;
19
+ }
20
+
21
+ /** Link tag definition. */
22
+ export interface PageLinkTag {
23
+ /** Link relation. */
24
+ rel: string;
25
+ /** Link URL. */
26
+ href: string;
27
+ /** Optional type attribute. */
28
+ type?: string;
29
+ /** Optional media query. */
30
+ media?: string;
31
+ /** Optional crossOrigin attribute. */
32
+ crossOrigin?: 'anonymous' | 'use-credentials';
33
+ }
34
+
35
+ /** Page metadata definition. */
36
+ export interface PageMetaDefinition {
37
+ /** Document title. */
38
+ title?: string;
39
+ /** Convenience shortcut for the description meta tag. */
40
+ description?: string;
41
+ /** Additional meta tags. */
42
+ meta?: PageMetaTag[];
43
+ /** Additional link tags. */
44
+ link?: PageLinkTag[];
45
+ /** Attributes applied to the html element. */
46
+ htmlAttributes?: Record<string, string>;
47
+ /** Attributes applied to the body element. */
48
+ bodyAttributes?: Record<string, string>;
49
+ }
50
+
51
+ /** Cleanup function returned by definePageMeta(). */
52
+ export type PageMetaCleanup = () => void;
53
+
54
+ const setAttributes = (target: HTMLElement, attributes: Record<string, string>): (() => void) => {
55
+ const previousValues = new Map<string, string | null>();
56
+
57
+ for (const [name, value] of Object.entries(attributes)) {
58
+ previousValues.set(name, target.getAttribute(name));
59
+ target.setAttribute(name, value);
60
+ }
61
+
62
+ return () => {
63
+ for (const [name, value] of previousValues.entries()) {
64
+ if (value == null) {
65
+ target.removeAttribute(name);
66
+ } else {
67
+ target.setAttribute(name, value);
68
+ }
69
+ }
70
+ };
71
+ };
72
+
73
+ const createElement = <T extends 'meta' | 'link'>(
74
+ tagName: T,
75
+ attributes: Record<string, string | undefined>
76
+ ): HTMLElementTagNameMap[T] => {
77
+ const element = document.createElement(tagName);
78
+ element.setAttribute('data-bquery-page-meta', 'true');
79
+
80
+ for (const [name, value] of Object.entries(attributes)) {
81
+ if (value !== undefined) {
82
+ element.setAttribute(name, value);
83
+ }
84
+ }
85
+
86
+ return element;
87
+ };
88
+
89
+ /**
90
+ * Apply document metadata for the current page.
91
+ *
92
+ * @param definition - Title, meta tags, link tags, and document attributes
93
+ * @returns Cleanup function that restores the previous document state
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * const cleanup = definePageMeta({
98
+ * title: 'Dashboard',
99
+ * description: 'Overview of your account',
100
+ * });
101
+ * ```
102
+ */
103
+ export const definePageMeta = (definition: PageMetaDefinition): PageMetaCleanup => {
104
+ if (typeof document === 'undefined') {
105
+ return () => {};
106
+ }
107
+
108
+ const config = getBqueryConfig().pageMeta;
109
+ const title = definition.title
110
+ ? config?.titleTemplate
111
+ ? config.titleTemplate(definition.title)
112
+ : definition.title
113
+ : undefined;
114
+
115
+ const inserted: HTMLElement[] = [];
116
+ const restoreFns: Array<() => void> = [];
117
+ const previousTitle = document.title;
118
+
119
+ if (title !== undefined) {
120
+ document.title = title;
121
+ }
122
+
123
+ const metaEntries = [...(definition.meta ?? [])];
124
+ if (definition.description) {
125
+ metaEntries.unshift({ name: 'description', content: definition.description });
126
+ }
127
+
128
+ for (const entry of metaEntries) {
129
+ const meta = createElement('meta', {
130
+ name: entry.name,
131
+ property: entry.property,
132
+ 'http-equiv': entry.httpEquiv,
133
+ content: entry.content,
134
+ });
135
+ document.head.appendChild(meta);
136
+ inserted.push(meta);
137
+ }
138
+
139
+ for (const entry of definition.link ?? []) {
140
+ const link = createElement('link', {
141
+ rel: entry.rel,
142
+ href: entry.href,
143
+ type: entry.type,
144
+ media: entry.media,
145
+ crossorigin: entry.crossOrigin,
146
+ });
147
+ document.head.appendChild(link);
148
+ inserted.push(link);
149
+ }
150
+
151
+ if (definition.htmlAttributes) {
152
+ restoreFns.push(setAttributes(document.documentElement, definition.htmlAttributes));
153
+ }
154
+
155
+ if (definition.bodyAttributes && document.body) {
156
+ restoreFns.push(setAttributes(document.body, definition.bodyAttributes));
157
+ }
158
+
159
+ return () => {
160
+ document.title = previousTitle;
161
+ for (const restore of restoreFns.reverse()) {
162
+ restore();
163
+ }
164
+ for (const element of inserted) {
165
+ element.remove();
166
+ }
167
+ };
168
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * bQuery Plugin System — register plugins that extend bQuery with custom
3
+ * directives and components.
4
+ *
5
+ * @module bquery/plugin
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { use, isInstalled, getInstalledPlugins } from '@bquery/bquery/plugin';
10
+ *
11
+ * use({
12
+ * name: 'my-plugin',
13
+ * install(ctx, options) {
14
+ * ctx.directive('tooltip', (el, expr) => { ... });
15
+ * ctx.component('my-widget', MyWidgetElement);
16
+ * },
17
+ * });
18
+ * ```
19
+ */
20
+
21
+ // Types
22
+ export type {
23
+ BQueryPlugin,
24
+ CustomDirective,
25
+ CustomDirectiveHandler,
26
+ PluginInstallContext,
27
+ } from './types';
28
+
29
+ // Runtime API
30
+ export {
31
+ use,
32
+ isInstalled,
33
+ getInstalledPlugins,
34
+ getCustomDirective,
35
+ getCustomDirectives,
36
+ resetPlugins,
37
+ } from './registry';