@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
@@ -0,0 +1,684 @@
1
+ import { f as L, l as N, n as I, t as j, u as D } from "./sanitize-B1V4JswB.js";
2
+ import { n as Q, r as q } from "./core-DnlyjbF2.js";
3
+ import { n as U } from "./config-BW35FKuA.js";
4
+ import { r as W, t as w } from "./untrack-DJVQQ2WM.js";
5
+ import { t as J } from "./env-NeVmr4Gf.js";
6
+ var F = (r, e) => {
7
+ const { type: o } = e;
8
+ if (o === String) return r;
9
+ if (o === Number) return Number(r);
10
+ if (o === Boolean) {
11
+ const t = r.trim().toLowerCase();
12
+ return t === "" || t === "true" || t === "1" ? !0 : t === "false" || t === "0" ? !1 : !!r;
13
+ }
14
+ if (o === Object || o === Array) try {
15
+ return JSON.parse(r);
16
+ } catch {
17
+ return r;
18
+ }
19
+ if (typeof o == "function") {
20
+ const t = o, s = o;
21
+ if (e.construct === !0) return Reflect.construct(s, [r]);
22
+ if (e.construct === !1) return t(r);
23
+ const l = o.prototype !== void 0 && o.prototype !== null, g = (l ? Object.getOwnPropertyNames(o.prototype) : []).length > 1, S = l && o.prototype.constructor !== o, E = /^class\s/.test(Function.prototype.toString.call(o));
24
+ if (g || S || E) try {
25
+ return Reflect.construct(s, [r]);
26
+ } catch {
27
+ return t(r);
28
+ }
29
+ try {
30
+ const f = t(r);
31
+ if (f === void 0 && l) try {
32
+ return Reflect.construct(s, [r]);
33
+ } catch {
34
+ return f;
35
+ }
36
+ return f;
37
+ } catch (f) {
38
+ if (f instanceof TypeError && /cannot be invoked without 'new'|is not a function/i.test(f.message)) return Reflect.construct(s, [r]);
39
+ throw f;
40
+ }
41
+ }
42
+ return r;
43
+ }, y;
44
+ function h(r) {
45
+ const e = y;
46
+ return y = r, e;
47
+ }
48
+ function R() {
49
+ const r = [];
50
+ return {
51
+ addDisposer(e) {
52
+ r.push(e);
53
+ },
54
+ dispose() {
55
+ for (const e of r) try {
56
+ e();
57
+ } catch (o) {
58
+ J() && typeof console < "u" && typeof console.error == "function" && console.error("bQuery component: Error disposing scoped resource", o);
59
+ }
60
+ r.length = 0;
61
+ }
62
+ };
63
+ }
64
+ function ne(r) {
65
+ const e = y;
66
+ if (!e) throw new Error("bQuery component: useSignal() must be called inside a component lifecycle hook. Avoid calling it directly from render()");
67
+ const o = Q(r);
68
+ return e.addDisposer(() => o.dispose()), o;
69
+ }
70
+ function le(r) {
71
+ const e = y;
72
+ if (!e) throw new Error("bQuery component: useComputed() must be called inside a component lifecycle hook. Avoid calling it directly from render()");
73
+ const o = W(r);
74
+ return e.addDisposer(() => o.dispose()), o;
75
+ }
76
+ function ie(r) {
77
+ const e = y;
78
+ if (!e) throw new Error("bQuery component: useEffect() must be called inside a component lifecycle hook. Avoid calling it directly from render()");
79
+ const o = q(r);
80
+ return e.addDisposer(o), o;
81
+ }
82
+ var G = ["slot"], K = [
83
+ "part",
84
+ "disabled",
85
+ "checked",
86
+ "placeholder",
87
+ "value",
88
+ "rows",
89
+ "cols",
90
+ "readonly",
91
+ "required",
92
+ "maxlength",
93
+ "minlength",
94
+ "max",
95
+ "min",
96
+ "step",
97
+ "pattern",
98
+ "autocomplete",
99
+ "autofocus",
100
+ "for",
101
+ "multiple",
102
+ "selected",
103
+ "wrap"
104
+ ], M = (r, e) => {
105
+ const o = [...G, ...e.sanitize?.allowTags ?? []], t = [...K, ...e.sanitize?.allowAttributes ?? []], s = Object.values(e.signals ?? {}), g = ((f) => f === !1 ? !1 : f === "closed" ? "closed" : "open")(e.shadow), S = Array.from(/* @__PURE__ */ new Set([...Object.keys(e.props ?? {}), ...e.observeAttributes ?? []]));
106
+ class E extends HTMLElement {
107
+ constructor() {
108
+ super(), this.state = { ...e.state ?? {} }, this.props = {}, this.missingRequiredProps = /* @__PURE__ */ new Set(), this.hasMounted = !1, g !== !1 ? this.renderRootNode = this.attachShadow({ mode: g }) : this.renderRootNode = this, this.syncProps();
109
+ }
110
+ static get observedAttributes() {
111
+ return S;
112
+ }
113
+ connectedCallback() {
114
+ try {
115
+ if (!this.hasMounted && this.missingRequiredProps.size > 0) return;
116
+ if (this.hasMounted) {
117
+ this.scope = R();
118
+ const a = h(this.scope);
119
+ try {
120
+ e.connected?.call(this);
121
+ } catch (n) {
122
+ this.handleError(n);
123
+ } finally {
124
+ h(a);
125
+ }
126
+ this.setupSignalSubscriptions(!0);
127
+ return;
128
+ }
129
+ this.mount();
130
+ } catch (a) {
131
+ this.handleError(a);
132
+ }
133
+ }
134
+ mount() {
135
+ if (this.hasMounted) return;
136
+ const a = h(this.ensureScope());
137
+ let n = !1;
138
+ try {
139
+ e.beforeMount?.call(this), e.connected?.call(this);
140
+ } catch (i) {
141
+ n = !0, this.handleError(i);
142
+ } finally {
143
+ h(a);
144
+ }
145
+ if (n) {
146
+ this.scope?.dispose(), this.scope = void 0;
147
+ return;
148
+ }
149
+ this.render(), this.setupSignalSubscriptions(), this.hasMounted = !0;
150
+ }
151
+ disconnectedCallback() {
152
+ try {
153
+ this.signalEffectCleanup?.(), this.signalEffectCleanup = void 0, this.scope?.dispose(), this.scope = void 0, e.disconnected?.call(this);
154
+ } catch (a) {
155
+ this.handleError(a);
156
+ }
157
+ }
158
+ attributeChangedCallback(a, n, i) {
159
+ try {
160
+ const d = this.cloneProps();
161
+ if (this.syncProps(), e.onAttributeChanged) {
162
+ const u = h(this.ensureScope());
163
+ try {
164
+ e.onAttributeChanged.call(this, a, n, i);
165
+ } finally {
166
+ h(u);
167
+ }
168
+ }
169
+ this.hasMounted ? this.render(!0, d, {
170
+ name: a,
171
+ oldValue: n,
172
+ newValue: i
173
+ }) : this.isConnected && this.missingRequiredProps.size === 0 && this.mount();
174
+ } catch (d) {
175
+ this.handleError(d);
176
+ }
177
+ }
178
+ adoptedCallback() {
179
+ if (!e.onAdopted) return;
180
+ const a = h(this.ensureScope());
181
+ try {
182
+ e.onAdopted.call(this);
183
+ } catch (n) {
184
+ this.handleError(n);
185
+ } finally {
186
+ h(a);
187
+ }
188
+ }
189
+ handleError(a) {
190
+ e.onError ? e.onError.call(this, a) : console.error(`bQuery component error in <${r}>:`, a);
191
+ }
192
+ ensureScope() {
193
+ return this.scope ?? (this.scope = R());
194
+ }
195
+ setState(a, n) {
196
+ this.state[a] = n, this.render(!0, this.cloneProps(), void 0, !1);
197
+ }
198
+ getState(a) {
199
+ return this.state[a];
200
+ }
201
+ setupSignalSubscriptions(a = !1) {
202
+ if (this.signalEffectCleanup || s.length === 0) return;
203
+ let n = !0;
204
+ this.signalEffectCleanup = q(() => {
205
+ try {
206
+ for (const d of s) d.value;
207
+ if (n) {
208
+ if (n = !1, a && this.hasMounted && this.isConnected) {
209
+ const d = this.cloneProps();
210
+ w(() => {
211
+ this.render(!0, d, void 0, !1);
212
+ });
213
+ }
214
+ return;
215
+ }
216
+ if (!this.hasMounted || !this.isConnected) return;
217
+ const i = this.cloneProps();
218
+ w(() => {
219
+ this.render(!0, i, void 0, !1);
220
+ });
221
+ } catch (i) {
222
+ this.handleError(i);
223
+ }
224
+ });
225
+ }
226
+ syncProps() {
227
+ const a = e.props ?? {};
228
+ for (const [n, i] of Object.entries(a)) {
229
+ const d = this.getAttribute(n);
230
+ let u;
231
+ if (d == null ? i.required && i.default === void 0 ? (this.missingRequiredProps.add(n), u = void 0) : u = i.default ?? void 0 : (this.missingRequiredProps.has(n) && this.missingRequiredProps.delete(n), u = F(d, i)), i.validator && u !== void 0 && !i.validator(u))
232
+ throw new Error(`bQuery component: validation failed for prop "${n}" with value ${JSON.stringify(u)}`);
233
+ this.props[n] = u;
234
+ }
235
+ }
236
+ cloneProps() {
237
+ return { ...this.props };
238
+ }
239
+ render(a = !1, n, i, d = !0) {
240
+ try {
241
+ if (a && d && e.beforeUpdate) {
242
+ if (!n) throw new Error("bQuery component: previous props are required for update renders");
243
+ if (e.beforeUpdate.call(this, this.props, n) === !1) return;
244
+ }
245
+ const u = (p, H) => {
246
+ this.dispatchEvent(new CustomEvent(p, {
247
+ detail: H,
248
+ bubbles: !0,
249
+ composed: !0
250
+ }));
251
+ }, x = this.renderRootNode, B = I(e.render({
252
+ props: this.props,
253
+ state: this.state,
254
+ signals: e.signals ?? {},
255
+ emit: u
256
+ }), {
257
+ allowTags: o,
258
+ allowAttributes: t
259
+ });
260
+ let $ = null;
261
+ if (e.styles && ($ = x.querySelector("style[data-bquery-component-style]")), x.innerHTML = B, e.styles) {
262
+ const p = $ ?? document.createElement("style");
263
+ $ || p.setAttribute("data-bquery-component-style", ""), p.textContent = e.styles, x.prepend(p);
264
+ }
265
+ a && e.updated?.call(this, i);
266
+ } catch (u) {
267
+ this.handleError(u);
268
+ }
269
+ }
270
+ }
271
+ return E;
272
+ };
273
+ function ce(r, e) {
274
+ return M(r, e);
275
+ }
276
+ function b(r, e) {
277
+ const o = M(r, e);
278
+ customElements.get(r) || customElements.define(r, o);
279
+ }
280
+ var z = /* @__PURE__ */ Symbol("bquery.booleanAttribute"), Y = /^[^\0-\x20"'/>=]+$/, _ = (r) => {
281
+ if (typeof r != "object" || r === null) return !1;
282
+ const e = r;
283
+ return e[z] === !0 && typeof e.enabled == "boolean" && typeof e.name == "string";
284
+ }, O = (r) => _(r) ? r.enabled ? r.name : "" : String(r ?? ""), X = {
285
+ "&": "&amp;",
286
+ "<": "&lt;",
287
+ ">": "&gt;",
288
+ '"': "&quot;",
289
+ "'": "&#x27;",
290
+ "`": "&#x60;"
291
+ }, Z = (r) => _(r) ? r.enabled ? r.name : "" : O(r).replace(/[&<>"'`]/g, (e) => X[e]), ue = (r, e) => {
292
+ if (!Y.test(r)) throw new TypeError(`Invalid boolean attribute name: ${r}`);
293
+ return Object.freeze({
294
+ [z]: !0,
295
+ enabled: !!e,
296
+ name: r
297
+ });
298
+ }, m = (r, ...e) => r.reduce((o, t, s) => `${o}${t}${O(e[s])}`, ""), de = (r, ...e) => {
299
+ const o = (t) => N(t) ? L(t) : Z(t);
300
+ return D(r.reduce((t, s, l) => `${t}${s}${l < e.length ? o(e[l]) : ""}`, ""));
301
+ }, v = `
302
+ :host {
303
+ color: inherit;
304
+ font: inherit;
305
+ }
306
+ `, T = `
307
+ ${v}
308
+ .field {
309
+ display: inline-flex;
310
+ flex-direction: column;
311
+ gap: 0.375rem;
312
+ width: 100%;
313
+ }
314
+ .label {
315
+ color: #334155;
316
+ font-size: 0.875rem;
317
+ font-weight: 600;
318
+ }
319
+ .control {
320
+ border: 1px solid #cbd5e1;
321
+ border-radius: 0.75rem;
322
+ box-sizing: border-box;
323
+ font: inherit;
324
+ min-height: 2.75rem;
325
+ outline: none;
326
+ padding: 0.75rem 0.875rem;
327
+ width: 100%;
328
+ background: #fff;
329
+ color: #0f172a;
330
+ transition: border-color 160ms ease, box-shadow 160ms ease;
331
+ }
332
+ .control:focus {
333
+ border-color: #2563eb;
334
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
335
+ }
336
+ .control:disabled {
337
+ background: #f8fafc;
338
+ color: #94a3b8;
339
+ cursor: not-allowed;
340
+ }
341
+ `, c = (r) => j(r), A = /* @__PURE__ */ new WeakMap(), C = (r, e) => A.get(r)?.[e], k = (r, e, o) => {
342
+ const t = A.get(r) ?? {};
343
+ t[e] = o, A.set(r, t);
344
+ }, P = (r, e, o) => {
345
+ if (o.label !== e.label || o.type !== e.type || o.placeholder !== e.placeholder || o.name !== e.name || o.disabled !== e.disabled) return !1;
346
+ const t = r.shadowRoot;
347
+ if (!t || (t.querySelector(".label")?.textContent ?? "") !== e.label) return !1;
348
+ const s = t.querySelector("input.control");
349
+ return !s || s.type !== e.type || s.placeholder !== e.placeholder || s.name !== e.name || s.disabled !== e.disabled ? !1 : (s.value !== e.value && (s.value = e.value), !0);
350
+ }, V = (r, e, o) => {
351
+ if (o.label !== e.label || o.placeholder !== e.placeholder || o.name !== e.name || o.rows !== e.rows || o.disabled !== e.disabled) return !1;
352
+ const t = r.shadowRoot;
353
+ if (!t || (t.querySelector(".label")?.textContent ?? "") !== e.label) return !1;
354
+ const s = t.querySelector("textarea.control");
355
+ return !s || s.placeholder !== e.placeholder || s.name !== e.name || Number(s.rows) !== e.rows || s.disabled !== e.disabled ? !1 : (s.value !== e.value && (s.value = e.value), !0);
356
+ }, ee = (r) => [
357
+ "<textarea",
358
+ ' part="control"',
359
+ ' class="control"',
360
+ ` placeholder="${c(r.placeholder)}"`,
361
+ ` name="${c(r.name)}"`,
362
+ ` rows="${r.rows}"`,
363
+ r.disabled ? " disabled" : "",
364
+ `>${c(r.value)}</textarea>`
365
+ ].join(""), fe = (r = {}) => {
366
+ const e = r.prefix ?? U().components?.prefix ?? "bq", o = {
367
+ button: `${e}-button`,
368
+ card: `${e}-card`,
369
+ input: `${e}-input`,
370
+ textarea: `${e}-textarea`,
371
+ checkbox: `${e}-checkbox`
372
+ };
373
+ return b(o.button, {
374
+ props: {
375
+ label: {
376
+ type: String,
377
+ default: ""
378
+ },
379
+ variant: {
380
+ type: String,
381
+ default: "primary"
382
+ },
383
+ size: {
384
+ type: String,
385
+ default: "md"
386
+ },
387
+ type: {
388
+ type: String,
389
+ default: "button"
390
+ },
391
+ disabled: {
392
+ type: Boolean,
393
+ default: !1
394
+ }
395
+ },
396
+ styles: `
397
+ ${v}
398
+ button {
399
+ appearance: none;
400
+ border: 0;
401
+ border-radius: 999px;
402
+ cursor: pointer;
403
+ display: inline-flex;
404
+ align-items: center;
405
+ justify-content: center;
406
+ font: inherit;
407
+ font-weight: 600;
408
+ gap: 0.5rem;
409
+ min-height: 2.5rem;
410
+ padding: 0.65rem 1rem;
411
+ transition: transform 160ms ease, opacity 160ms ease, background 160ms ease;
412
+ background: #2563eb;
413
+ color: #fff;
414
+ }
415
+ button[data-variant='secondary'] {
416
+ background: #e2e8f0;
417
+ color: #0f172a;
418
+ }
419
+ button[data-size='sm'] {
420
+ min-height: 2.125rem;
421
+ padding: 0.5rem 0.875rem;
422
+ }
423
+ button[data-size='lg'] {
424
+ min-height: 3rem;
425
+ padding: 0.875rem 1.25rem;
426
+ }
427
+ button:hover:not(:disabled) {
428
+ transform: translateY(-1px);
429
+ }
430
+ button:disabled {
431
+ cursor: not-allowed;
432
+ opacity: 0.6;
433
+ }
434
+ `,
435
+ render: ({ props: t }) => m`
436
+ <button
437
+ part="button"
438
+ type="${c(t.type)}"
439
+ data-variant="${c(t.variant)}"
440
+ data-size="${c(t.size)}"
441
+ ${t.disabled ? "disabled" : ""}
442
+ >
443
+ <slot>${c(t.label)}</slot>
444
+ </button>
445
+ `
446
+ }), b(o.card, {
447
+ props: {
448
+ title: {
449
+ type: String,
450
+ default: ""
451
+ },
452
+ footer: {
453
+ type: String,
454
+ default: ""
455
+ },
456
+ elevated: {
457
+ type: Boolean,
458
+ default: !0
459
+ }
460
+ },
461
+ styles: `
462
+ ${v}
463
+ article {
464
+ background: #fff;
465
+ border: 1px solid #e2e8f0;
466
+ border-radius: 1rem;
467
+ box-shadow: 0 10px 25px rgba(15, 23, 42, 0.08);
468
+ color: #0f172a;
469
+ display: block;
470
+ padding: 1rem;
471
+ }
472
+ article[data-elevated='false'] {
473
+ box-shadow: none;
474
+ }
475
+ header, footer {
476
+ color: #475569;
477
+ font-size: 0.95rem;
478
+ font-weight: 600;
479
+ }
480
+ header {
481
+ margin-bottom: 0.75rem;
482
+ }
483
+ footer {
484
+ margin-top: 0.75rem;
485
+ }
486
+ `,
487
+ render: ({ props: t }) => m`
488
+ <article part="card" data-elevated="${String(t.elevated)}">
489
+ ${t.title ? `<header part="header">${c(t.title)}</header>` : ""}
490
+ <section part="body"><slot></slot></section>
491
+ ${t.footer ? `<footer part="footer">${c(t.footer)}</footer>` : ""}
492
+ </article>
493
+ `
494
+ }), b(o.input, {
495
+ props: {
496
+ label: {
497
+ type: String,
498
+ default: ""
499
+ },
500
+ type: {
501
+ type: String,
502
+ default: "text"
503
+ },
504
+ value: {
505
+ type: String,
506
+ default: ""
507
+ },
508
+ placeholder: {
509
+ type: String,
510
+ default: ""
511
+ },
512
+ name: {
513
+ type: String,
514
+ default: ""
515
+ },
516
+ disabled: {
517
+ type: Boolean,
518
+ default: !1
519
+ }
520
+ },
521
+ styles: T,
522
+ beforeUpdate(t, s) {
523
+ return !P(this, t, s);
524
+ },
525
+ connected() {
526
+ const t = (s) => {
527
+ const l = s.target;
528
+ l?.matches("input") && (s.stopPropagation(), this.setAttribute("value", l.value), this.dispatchEvent(new CustomEvent("input", {
529
+ detail: { value: l.value },
530
+ bubbles: !0,
531
+ composed: !0
532
+ })));
533
+ };
534
+ k(this, "__bqueryInputHandler", t), this.shadowRoot?.addEventListener("input", t);
535
+ },
536
+ disconnected() {
537
+ const t = C(this, "__bqueryInputHandler");
538
+ t && this.shadowRoot?.removeEventListener("input", t);
539
+ },
540
+ render: ({ props: t }) => m`
541
+ <label part="field" class="field">
542
+ ${t.label ? `<span part="label" class="label">${c(t.label)}</span>` : ""}
543
+ <input
544
+ part="control"
545
+ class="control"
546
+ type="${c(t.type)}"
547
+ value="${c(t.value)}"
548
+ placeholder="${c(t.placeholder)}"
549
+ name="${c(t.name)}"
550
+ ${t.disabled ? "disabled" : ""}
551
+ />
552
+ </label>
553
+ `
554
+ }), b(o.textarea, {
555
+ props: {
556
+ label: {
557
+ type: String,
558
+ default: ""
559
+ },
560
+ value: {
561
+ type: String,
562
+ default: ""
563
+ },
564
+ placeholder: {
565
+ type: String,
566
+ default: ""
567
+ },
568
+ name: {
569
+ type: String,
570
+ default: ""
571
+ },
572
+ rows: {
573
+ type: Number,
574
+ default: 4
575
+ },
576
+ disabled: {
577
+ type: Boolean,
578
+ default: !1
579
+ }
580
+ },
581
+ styles: `${T}
582
+ textarea.control {
583
+ min-height: 6rem;
584
+ resize: vertical;
585
+ }
586
+ `,
587
+ beforeUpdate(t, s) {
588
+ return !V(this, t, s);
589
+ },
590
+ connected() {
591
+ const t = (s) => {
592
+ const l = s.target;
593
+ l?.matches("textarea") && (s.stopPropagation(), this.setAttribute("value", l.value), this.dispatchEvent(new CustomEvent("input", {
594
+ detail: { value: l.value },
595
+ bubbles: !0,
596
+ composed: !0
597
+ })));
598
+ };
599
+ k(this, "__bqueryTextareaHandler", t), this.shadowRoot?.addEventListener("input", t);
600
+ },
601
+ disconnected() {
602
+ const t = C(this, "__bqueryTextareaHandler");
603
+ t && this.shadowRoot?.removeEventListener("input", t);
604
+ },
605
+ render: ({ props: t }) => m`
606
+ <label part="field" class="field">
607
+ ${t.label ? `<span part="label" class="label">${c(t.label)}</span>` : ""}
608
+ ${ee(t)}
609
+ </label>
610
+ `
611
+ }), b(o.checkbox, {
612
+ props: {
613
+ label: {
614
+ type: String,
615
+ default: ""
616
+ },
617
+ checked: {
618
+ type: Boolean,
619
+ default: !1
620
+ },
621
+ disabled: {
622
+ type: Boolean,
623
+ default: !1
624
+ }
625
+ },
626
+ styles: `
627
+ ${v}
628
+ label {
629
+ align-items: center;
630
+ color: #0f172a;
631
+ cursor: pointer;
632
+ display: inline-flex;
633
+ gap: 0.625rem;
634
+ }
635
+ input {
636
+ accent-color: #2563eb;
637
+ block-size: 1rem;
638
+ inline-size: 1rem;
639
+ }
640
+ input:disabled {
641
+ cursor: not-allowed;
642
+ }
643
+ `,
644
+ connected() {
645
+ const t = (s) => {
646
+ const l = s.target;
647
+ l?.matches('input[type="checkbox"]') && (s.stopPropagation(), l.checked ? this.setAttribute("checked", "true") : this.removeAttribute("checked"), this.dispatchEvent(new CustomEvent("change", {
648
+ detail: { checked: l.checked },
649
+ bubbles: !0,
650
+ composed: !0
651
+ })));
652
+ };
653
+ k(this, "__bqueryCheckboxHandler", t), this.shadowRoot?.addEventListener("change", t);
654
+ },
655
+ disconnected() {
656
+ const t = C(this, "__bqueryCheckboxHandler");
657
+ t && this.shadowRoot?.removeEventListener("change", t);
658
+ },
659
+ render: ({ props: t }) => m`
660
+ <label part="label">
661
+ <input
662
+ part="control"
663
+ type="checkbox"
664
+ ${t.checked ? "checked" : ""}
665
+ ${t.disabled ? "disabled" : ""}
666
+ />
667
+ <span part="text"><slot>${c(t.label)}</slot></span>
668
+ </label>
669
+ `
670
+ }), o;
671
+ };
672
+ export {
673
+ b as a,
674
+ ie as c,
675
+ de as i,
676
+ ne as l,
677
+ ue as n,
678
+ ce as o,
679
+ m as r,
680
+ le as s,
681
+ fe as t
682
+ };
683
+
684
+ //# sourceMappingURL=component-CuuTijA6.js.map