@webflare/ui 0.0.0-stage → 0.1.1

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 (447) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -2
  3. package/dist/AccordionRoot-CNPxdTtA.cjs +182 -0
  4. package/dist/AccordionRoot-CmK-jaZz.js +178 -0
  5. package/dist/AlertRoot-B-M0xDFC.js +274 -0
  6. package/dist/AlertRoot-DRRwRAhA.cjs +278 -0
  7. package/dist/BadgeRoot-CzUSTR0W.cjs +136 -0
  8. package/dist/BadgeRoot-ffbcCd5B.js +132 -0
  9. package/dist/Button-A9BiKfSl.js +240 -0
  10. package/dist/Button-CwVAoJjO.cjs +244 -0
  11. package/dist/CardBody-BEbTLrA2.cjs +21 -0
  12. package/dist/CardBody-DbSW-Ssx.js +16 -0
  13. package/dist/CardHeader-Cx1pE9No.cjs +36 -0
  14. package/dist/CardHeader-DDRGpYth.js +31 -0
  15. package/dist/CardRoot-CZpgncJQ.cjs +49 -0
  16. package/dist/CardRoot-ia9NDth1.js +44 -0
  17. package/dist/CarouselItem-CJ9Kj2lU.cjs +21 -0
  18. package/dist/CarouselItem-Crs28MA9.js +16 -0
  19. package/dist/CarouselNavigation-BUZyy5GA.cjs +53 -0
  20. package/dist/CarouselNavigation-aM0v6IoI.js +48 -0
  21. package/dist/CarouselRoot-Co9IuVve.cjs +45 -0
  22. package/dist/CarouselRoot-DlGJZCox.js +40 -0
  23. package/dist/ControlSwitch-C-pzHgWm.cjs +188 -0
  24. package/dist/ControlSwitch-C0Rj6fSW.js +184 -0
  25. package/dist/DialogRoot-BiH9G8Jm.js +170 -0
  26. package/dist/DialogRoot-C6icP9Fb.cjs +174 -0
  27. package/dist/FieldBase-BwD6Dput.js +42 -0
  28. package/dist/FieldBase-X1FWOqPU.cjs +47 -0
  29. package/dist/FieldCheckbox-CYuyWgbl.cjs +139 -0
  30. package/dist/FieldCheckbox-DsQsNeX7.js +134 -0
  31. package/dist/FieldError-BPjk-uZc.js +36 -0
  32. package/dist/FieldError-XRz98TFe.cjs +41 -0
  33. package/dist/FieldFooter-05GxwrFg.cjs +29 -0
  34. package/dist/FieldFooter-CE598o7n.js +24 -0
  35. package/dist/FieldInput-bnC_fTws.cjs +155 -0
  36. package/dist/FieldInput-h3MgGC6J.js +150 -0
  37. package/dist/FieldLabel-BYlOJvXY.js +37 -0
  38. package/dist/FieldLabel-DBKhMbql.cjs +42 -0
  39. package/dist/FieldMessage-C83iNsEp.cjs +40 -0
  40. package/dist/FieldMessage-GyO_RQdK.js +35 -0
  41. package/dist/FieldRadioGroup-CLWFr3aL.cjs +158 -0
  42. package/dist/FieldRadioGroup-CmQ5JOjv.js +153 -0
  43. package/dist/FieldRequired-7fJtYCdt.js +16 -0
  44. package/dist/FieldRequired-CJtyr3cL.cjs +21 -0
  45. package/dist/FieldSelect-D6X_BwTS.js +239 -0
  46. package/dist/FieldSelect-DVcgCsHL.cjs +243 -0
  47. package/dist/FieldSwitch-C7VMSMoE.cjs +71 -0
  48. package/dist/FieldSwitch-DqagDsKK.js +66 -0
  49. package/dist/FieldTextarea-DBufxMQf.cjs +148 -0
  50. package/dist/FieldTextarea-_BtGkI0v.js +143 -0
  51. package/dist/FieldUrl-CcIOyPSl.js +387 -0
  52. package/dist/FieldUrl-DNnXDfBR.cjs +391 -0
  53. package/dist/FlyoutDropdown-Bw3pD8Tk.cjs +90 -0
  54. package/dist/FlyoutDropdown-ByXW9lqH.js +74 -0
  55. package/dist/FlyoutRoot-CuXnqpf8.js +110 -0
  56. package/dist/FlyoutRoot-DUoOHEoX.cjs +115 -0
  57. package/dist/FormPrompt-BDAVKk5i.cjs +63 -0
  58. package/dist/FormPrompt-BuS1lg-K.js +58 -0
  59. package/dist/FormPromptFooter-BhwWsaib.cjs +21 -0
  60. package/dist/FormPromptFooter-BrUOs40t.js +16 -0
  61. package/dist/HeroLead-BU-74-fX.js +151 -0
  62. package/dist/HeroLead-D52JBlM2.cjs +155 -0
  63. package/dist/ListItem-1sYxrNuv.cjs +164 -0
  64. package/dist/ListItem-rD49tsLw.js +148 -0
  65. package/dist/ListRoot-BRrC79y6.cjs +42 -0
  66. package/dist/ListRoot-CP7smMl_.js +37 -0
  67. package/dist/Loader-CMEggjED.cjs +121 -0
  68. package/dist/Loader-DSLPdX6P.js +116 -0
  69. package/dist/PricingCardBadge-DoHnRqTM.cjs +25 -0
  70. package/dist/PricingCardBadge-lh3Oq5fB.js +20 -0
  71. package/dist/PricingCardBody--EB7FzUU.cjs +60 -0
  72. package/dist/PricingCardBody-Dai1zKDL.js +49 -0
  73. package/dist/PricingCardHeader-DCEG6BUA.js +39 -0
  74. package/dist/PricingCardHeader-yebSjw8M.cjs +44 -0
  75. package/dist/PricingCardPricing-DvdbyMEh.cjs +30 -0
  76. package/dist/PricingCardPricing-Vbs2D8Fm.js +25 -0
  77. package/dist/PricingCardRoot-B9ztC1u9.cjs +46 -0
  78. package/dist/PricingCardRoot-Dagig8jr.js +41 -0
  79. package/dist/ProgressRoot-BV_wQKYv.js +251 -0
  80. package/dist/ProgressRoot-CWWNmB99.cjs +255 -0
  81. package/dist/SwitchRoot-CcipiBzA.cjs +61 -0
  82. package/dist/SwitchRoot-DGFu9ZWR.js +56 -0
  83. package/dist/TabItem--4wiBton.cjs +114 -0
  84. package/dist/TabItem-BTIrtLtp.js +104 -0
  85. package/dist/TabRoot-BNp4_dI_.cjs +77 -0
  86. package/dist/TabRoot-DDDJe5FC.js +72 -0
  87. package/dist/carousel-BrCOR927.cjs +144 -0
  88. package/dist/carousel-CBw9xA_6.js +139 -0
  89. package/dist/choiceStyles-DIVBtoZF.cjs +175 -0
  90. package/dist/choiceStyles-DRjL1Y2d.js +164 -0
  91. package/dist/components/Accordion/AccordionRoot.vue.d.ts +31 -0
  92. package/dist/components/Accordion/index.d.ts +59 -0
  93. package/dist/components/Accordion/styles.d.ts +67 -0
  94. package/dist/components/Accordion/types.d.ts +15 -0
  95. package/dist/components/Alert/AlertRoot.vue.d.ts +38 -0
  96. package/dist/components/Alert/index.d.ts +54 -0
  97. package/dist/components/Alert/styles.d.ts +132 -0
  98. package/dist/components/Alert/types.d.ts +6 -0
  99. package/dist/components/Badge/BadgeRoot.vue.d.ts +26 -0
  100. package/dist/components/Badge/index.d.ts +49 -0
  101. package/dist/components/Badge/styles.d.ts +94 -0
  102. package/dist/components/Button/Button.vue.d.ts +26 -0
  103. package/dist/components/Button/index.d.ts +4 -0
  104. package/dist/components/Button/styles.d.ts +140 -0
  105. package/dist/components/Card/CardBody.vue.d.ts +17 -0
  106. package/dist/components/Card/CardHeader.vue.d.ts +25 -0
  107. package/dist/components/Card/CardRoot.vue.d.ts +39 -0
  108. package/dist/components/Card/index.d.ts +98 -0
  109. package/dist/components/Card/styles.d.ts +169 -0
  110. package/dist/components/Card/types.d.ts +8 -0
  111. package/dist/components/Carousel/CarouselItem.vue.d.ts +17 -0
  112. package/dist/components/Carousel/CarouselNavigation.vue.d.ts +30 -0
  113. package/dist/components/Carousel/CarouselRoot.vue.d.ts +30 -0
  114. package/dist/components/Carousel/index.d.ts +117 -0
  115. package/dist/components/Carousel/styles.d.ts +1 -0
  116. package/dist/components/Carousel/types.d.ts +11 -0
  117. package/dist/components/Dialog/DialogRoot.vue.d.ts +39 -0
  118. package/dist/components/Dialog/index.d.ts +68 -0
  119. package/dist/components/Dialog/styles.d.ts +1 -0
  120. package/dist/components/Field/FieldBase.vue.d.ts +22 -0
  121. package/dist/components/Field/FieldCheckbox.vue.d.ts +15 -0
  122. package/dist/components/Field/FieldError.vue.d.ts +10 -0
  123. package/dist/components/Field/FieldFooter.vue.d.ts +3 -0
  124. package/dist/components/Field/FieldInput.vue.d.ts +21 -0
  125. package/dist/components/Field/FieldLabel.vue.d.ts +13 -0
  126. package/dist/components/Field/FieldMessage.vue.d.ts +10 -0
  127. package/dist/components/Field/FieldRadioGroup.vue.d.ts +19 -0
  128. package/dist/components/Field/FieldRequired.vue.d.ts +3 -0
  129. package/dist/components/Field/FieldSelect.vue.d.ts +20 -0
  130. package/dist/components/Field/FieldSwitch.vue.d.ts +18 -0
  131. package/dist/components/Field/FieldTextarea.vue.d.ts +19 -0
  132. package/dist/components/Field/FieldUrl.vue.d.ts +24 -0
  133. package/dist/components/Field/index.d.ts +220 -0
  134. package/dist/components/Field/styles.d.ts +20 -0
  135. package/dist/components/Field/types.d.ts +17 -0
  136. package/dist/components/Flyout/FlyoutDropdown.vue.d.ts +19 -0
  137. package/dist/components/Flyout/FlyoutRoot.vue.d.ts +43 -0
  138. package/dist/components/Flyout/index.d.ts +74 -0
  139. package/dist/components/Flyout/styles.d.ts +1 -0
  140. package/dist/components/Flyout/types.d.ts +10 -0
  141. package/dist/components/Form/FormPrompt.vue.d.ts +43 -0
  142. package/dist/components/Form/FormPromptFooter.vue.d.ts +20 -0
  143. package/dist/components/Form/index.d.ts +72 -0
  144. package/dist/components/Form/styles.d.ts +1 -0
  145. package/dist/components/Hero/HeroLead.vue.d.ts +39 -0
  146. package/dist/components/Hero/index.d.ts +49 -0
  147. package/dist/components/Hero/styles.d.ts +111 -0
  148. package/dist/components/List/ListItem.vue.d.ts +24 -0
  149. package/dist/components/List/ListRoot.vue.d.ts +26 -0
  150. package/dist/components/List/index.d.ts +74 -0
  151. package/dist/components/List/styles.d.ts +90 -0
  152. package/dist/components/List/types.d.ts +12 -0
  153. package/dist/components/Loader/Loader.vue.d.ts +14 -0
  154. package/dist/components/Loader/index.d.ts +4 -0
  155. package/dist/components/Loader/styles.d.ts +62 -0
  156. package/dist/components/PricingCard/PricingCardBadge.vue.d.ts +20 -0
  157. package/dist/components/PricingCard/PricingCardBody.vue.d.ts +20 -0
  158. package/dist/components/PricingCard/PricingCardHeader.vue.d.ts +28 -0
  159. package/dist/components/PricingCard/PricingCardPricing.vue.d.ts +22 -0
  160. package/dist/components/PricingCard/PricingCardRoot.vue.d.ts +27 -0
  161. package/dist/components/PricingCard/index.d.ts +138 -0
  162. package/dist/components/PricingCard/styles.d.ts +10 -0
  163. package/dist/components/PricingCard/types.d.ts +21 -0
  164. package/dist/components/Progress/ProgressRoot.vue.d.ts +41 -0
  165. package/dist/components/Progress/index.d.ts +81 -0
  166. package/dist/components/Progress/styles.d.ts +560 -0
  167. package/dist/components/Progress/types.d.ts +4 -0
  168. package/dist/components/Switch/SwitchRoot.vue.d.ts +25 -0
  169. package/dist/components/Switch/index.d.ts +35 -0
  170. package/dist/components/Switch/types.d.ts +2 -0
  171. package/dist/components/Tab/TabItem.vue.d.ts +19 -0
  172. package/dist/components/Tab/TabRoot.vue.d.ts +32 -0
  173. package/dist/components/Tab/index.d.ts +97 -0
  174. package/dist/components/Tab/styles.d.ts +1 -0
  175. package/dist/components/Tab/types.d.ts +14 -0
  176. package/dist/composables/carousel.d.ts +29 -0
  177. package/dist/composables/flyout.d.ts +30 -0
  178. package/dist/composables/form.d.ts +18 -0
  179. package/dist/composables/injection-key.d.ts +2 -0
  180. package/dist/context-Bk4uIMQS.js +4 -0
  181. package/dist/context-cK3z69qT.cjs +8 -0
  182. package/dist/controlStyles-Bf6fx2rL.js +92 -0
  183. package/dist/controlStyles-CClWH9EG.cjs +96 -0
  184. package/dist/css-BRRSQx3P.cjs +21 -0
  185. package/dist/css-DWYlz0rn.js +16 -0
  186. package/dist/flyout-BaVoXePQ.cjs +67 -0
  187. package/dist/flyout-QHh1jKmV.js +62 -0
  188. package/dist/form-BtxAsfYs.cjs +34 -0
  189. package/dist/form-CB12X8xv.js +29 -0
  190. package/dist/index.cjs +233 -0
  191. package/dist/index.d.ts +41 -0
  192. package/dist/index.js +168 -0
  193. package/dist/injection-key-BQYV9vIr.js +5 -0
  194. package/dist/injection-key-DPb_AXnh.cjs +10 -0
  195. package/dist/internal/controls/ControlCheckbox.vue.d.ts +23 -0
  196. package/dist/internal/controls/ControlInput.vue.d.ts +28 -0
  197. package/dist/internal/controls/ControlRadioGroup.vue.d.ts +24 -0
  198. package/dist/internal/controls/ControlSelect.vue.d.ts +27 -0
  199. package/dist/internal/controls/ControlSwitch.vue.d.ts +25 -0
  200. package/dist/internal/controls/ControlTextarea.vue.d.ts +27 -0
  201. package/dist/internal/controls/ControlUrl.vue.d.ts +31 -0
  202. package/dist/internal/controls/choiceStyles.d.ts +64 -0
  203. package/dist/internal/controls/context.d.ts +10 -0
  204. package/dist/internal/controls/controlStyles.d.ts +54 -0
  205. package/dist/internal/controls/index.d.ts +14 -0
  206. package/dist/internal/controls/selectStyles.d.ts +2 -0
  207. package/dist/internal/controls/switchStyles.d.ts +46 -0
  208. package/dist/internal/controls/types.d.ts +10 -0
  209. package/dist/internal/controls/urlStyles.d.ts +84 -0
  210. package/dist/internal/controls/urlUtils.d.ts +14 -0
  211. package/dist/internal/controls/useFieldControl.d.ts +17 -0
  212. package/dist/internal/css.d.ts +24 -0
  213. package/dist/nuxt/module.d.mts +21 -0
  214. package/dist/nuxt/module.json +9 -0
  215. package/dist/nuxt/module.mjs +126 -0
  216. package/dist/nuxt/types.d.mts +3 -0
  217. package/dist/nuxt-entries.json +49 -0
  218. package/dist/panda/buildinfo.json +5432 -0
  219. package/dist/panda/lib.json +18 -0
  220. package/dist/panda/preset.mjs +4092 -0
  221. package/dist/plugin.d.ts +3 -0
  222. package/dist/preset/index.cjs +692 -0
  223. package/dist/preset/index.d.cts +18 -0
  224. package/dist/preset/index.d.ts +18 -0
  225. package/dist/preset/index.js +656 -0
  226. package/dist/style.css +153 -0
  227. package/dist/styled-system/css/conditions.d.ts +7 -0
  228. package/dist/styled-system/css/conditions.js +32 -0
  229. package/dist/styled-system/css/css.d.ts +22 -0
  230. package/dist/styled-system/css/css.js +63 -0
  231. package/dist/styled-system/css/cva.d.ts +5 -0
  232. package/dist/styled-system/css/cva.js +51 -0
  233. package/dist/styled-system/css/cx.d.ts +6 -0
  234. package/dist/styled-system/css/cx.js +16 -0
  235. package/dist/styled-system/css/first-that-works.d.ts +22 -0
  236. package/dist/styled-system/css/first-that-works.js +1 -0
  237. package/dist/styled-system/css/index.d.ts +8 -0
  238. package/dist/styled-system/css/index.js +8 -0
  239. package/dist/styled-system/css/keyframes.d.ts +5 -0
  240. package/dist/styled-system/css/keyframes.js +8 -0
  241. package/dist/styled-system/css/position-try.d.ts +5 -0
  242. package/dist/styled-system/css/position-try.js +11 -0
  243. package/dist/styled-system/css/sva.d.ts +3 -0
  244. package/dist/styled-system/css/sva.js +49 -0
  245. package/dist/styled-system/css/view-transition.d.ts +7 -0
  246. package/dist/styled-system/css/view-transition.js +18 -0
  247. package/dist/styled-system/helpers.d.ts +67 -0
  248. package/dist/styled-system/helpers.js +624 -0
  249. package/dist/styled-system/patterns/aspect-ratio.d.ts +19 -0
  250. package/dist/styled-system/patterns/aspect-ratio.js +37 -0
  251. package/dist/styled-system/patterns/bleed.d.ts +20 -0
  252. package/dist/styled-system/patterns/bleed.js +30 -0
  253. package/dist/styled-system/patterns/box.d.ts +17 -0
  254. package/dist/styled-system/patterns/box.js +16 -0
  255. package/dist/styled-system/patterns/center.d.ts +19 -0
  256. package/dist/styled-system/patterns/center.js +22 -0
  257. package/dist/styled-system/patterns/circle.d.ts +19 -0
  258. package/dist/styled-system/patterns/circle.js +26 -0
  259. package/dist/styled-system/patterns/container.d.ts +17 -0
  260. package/dist/styled-system/patterns/container.js +37 -0
  261. package/dist/styled-system/patterns/cq.d.ts +21 -0
  262. package/dist/styled-system/patterns/cq.js +24 -0
  263. package/dist/styled-system/patterns/divider.d.ts +22 -0
  264. package/dist/styled-system/patterns/divider.js +31 -0
  265. package/dist/styled-system/patterns/flex.d.ts +25 -0
  266. package/dist/styled-system/patterns/flex.js +27 -0
  267. package/dist/styled-system/patterns/float.d.ts +23 -0
  268. package/dist/styled-system/patterns/float.js +78 -0
  269. package/dist/styled-system/patterns/grid-item.d.ts +24 -0
  270. package/dist/styled-system/patterns/grid-item.js +26 -0
  271. package/dist/styled-system/patterns/grid.d.ts +24 -0
  272. package/dist/styled-system/patterns/grid.js +30 -0
  273. package/dist/styled-system/patterns/hstack.d.ts +20 -0
  274. package/dist/styled-system/patterns/hstack.js +27 -0
  275. package/dist/styled-system/patterns/index.d.ts +20 -0
  276. package/dist/styled-system/patterns/index.js +20 -0
  277. package/dist/styled-system/patterns/link-overlay.d.ts +17 -0
  278. package/dist/styled-system/patterns/link-overlay.js +25 -0
  279. package/dist/styled-system/patterns/runtime.js +25 -0
  280. package/dist/styled-system/patterns/spacer.d.ts +20 -0
  281. package/dist/styled-system/patterns/spacer.js +25 -0
  282. package/dist/styled-system/patterns/square.d.ts +19 -0
  283. package/dist/styled-system/patterns/square.js +25 -0
  284. package/dist/styled-system/patterns/stack.d.ts +22 -0
  285. package/dist/styled-system/patterns/stack.js +30 -0
  286. package/dist/styled-system/patterns/visually-hidden.d.ts +17 -0
  287. package/dist/styled-system/patterns/visually-hidden.js +19 -0
  288. package/dist/styled-system/patterns/vstack.d.ts +20 -0
  289. package/dist/styled-system/patterns/vstack.js +27 -0
  290. package/dist/styled-system/patterns/wrap.d.ts +23 -0
  291. package/dist/styled-system/patterns/wrap.js +26 -0
  292. package/dist/styled-system/recipes/runtime.js +133 -0
  293. package/dist/styled-system/tokens/index.d.ts +8 -0
  294. package/dist/styled-system/tokens/index.js +18 -0
  295. package/dist/styled-system/types/index.d.ts +5 -0
  296. package/dist/styled-system/types/pattern.d.ts +26 -0
  297. package/dist/styled-system/types/recipe.d.ts +89 -0
  298. package/dist/styled-system/types/register.d.ts +36 -0
  299. package/dist/styled-system/types/system.d.ts +1880 -0
  300. package/dist/styled-system/types/tokens.d.ts +60 -0
  301. package/dist/styles-8a0pzMRc.js +88 -0
  302. package/dist/styles-BU90HeKh.js +72 -0
  303. package/dist/styles-BvLgeNpb.cjs +42 -0
  304. package/dist/styles-CK7DJVwO.js +72 -0
  305. package/dist/styles-Cjlvkx8i.cjs +92 -0
  306. package/dist/styles-CuN4CHU4.cjs +76 -0
  307. package/dist/styles-WOyB8APA.js +38 -0
  308. package/dist/styles-_I-I4HYc.cjs +76 -0
  309. package/dist/types-B1vOzUjg.js +5 -0
  310. package/dist/types-Boy3jvmf.js +4 -0
  311. package/dist/types-CBApDh_h.js +149 -0
  312. package/dist/types-D2v625uE.cjs +8 -0
  313. package/dist/types-DzEK6W6x.cjs +16 -0
  314. package/dist/types-cLDeFros.cjs +166 -0
  315. package/dist/useFieldControl-BkQi1zak.js +29 -0
  316. package/dist/useFieldControl-CEI7IRAa.cjs +34 -0
  317. package/dist/vue/AccordionRoot.cjs +6 -0
  318. package/dist/vue/AccordionRoot.d.ts +1 -0
  319. package/dist/vue/AccordionRoot.js +1 -0
  320. package/dist/vue/AlertRoot.cjs +6 -0
  321. package/dist/vue/AlertRoot.d.ts +1 -0
  322. package/dist/vue/AlertRoot.js +1 -0
  323. package/dist/vue/BadgeRoot.cjs +6 -0
  324. package/dist/vue/BadgeRoot.d.ts +1 -0
  325. package/dist/vue/BadgeRoot.js +1 -0
  326. package/dist/vue/Button.cjs +6 -0
  327. package/dist/vue/Button.d.ts +1 -0
  328. package/dist/vue/Button.js +1 -0
  329. package/dist/vue/CardBody.cjs +6 -0
  330. package/dist/vue/CardBody.d.ts +1 -0
  331. package/dist/vue/CardBody.js +1 -0
  332. package/dist/vue/CardHeader.cjs +6 -0
  333. package/dist/vue/CardHeader.d.ts +1 -0
  334. package/dist/vue/CardHeader.js +1 -0
  335. package/dist/vue/CardRoot.cjs +6 -0
  336. package/dist/vue/CardRoot.d.ts +1 -0
  337. package/dist/vue/CardRoot.js +1 -0
  338. package/dist/vue/CarouselItem.cjs +6 -0
  339. package/dist/vue/CarouselItem.d.ts +1 -0
  340. package/dist/vue/CarouselItem.js +1 -0
  341. package/dist/vue/CarouselNavigation.cjs +6 -0
  342. package/dist/vue/CarouselNavigation.d.ts +1 -0
  343. package/dist/vue/CarouselNavigation.js +1 -0
  344. package/dist/vue/CarouselRoot.cjs +6 -0
  345. package/dist/vue/CarouselRoot.d.ts +1 -0
  346. package/dist/vue/CarouselRoot.js +1 -0
  347. package/dist/vue/DialogRoot.cjs +6 -0
  348. package/dist/vue/DialogRoot.d.ts +1 -0
  349. package/dist/vue/DialogRoot.js +1 -0
  350. package/dist/vue/FieldBase.cjs +6 -0
  351. package/dist/vue/FieldBase.d.ts +1 -0
  352. package/dist/vue/FieldBase.js +1 -0
  353. package/dist/vue/FieldCheckbox.cjs +6 -0
  354. package/dist/vue/FieldCheckbox.d.ts +1 -0
  355. package/dist/vue/FieldCheckbox.js +1 -0
  356. package/dist/vue/FieldError.cjs +6 -0
  357. package/dist/vue/FieldError.d.ts +1 -0
  358. package/dist/vue/FieldError.js +1 -0
  359. package/dist/vue/FieldInput.cjs +6 -0
  360. package/dist/vue/FieldInput.d.ts +1 -0
  361. package/dist/vue/FieldInput.js +1 -0
  362. package/dist/vue/FieldLabel.cjs +6 -0
  363. package/dist/vue/FieldLabel.d.ts +1 -0
  364. package/dist/vue/FieldLabel.js +1 -0
  365. package/dist/vue/FieldMessage.cjs +6 -0
  366. package/dist/vue/FieldMessage.d.ts +1 -0
  367. package/dist/vue/FieldMessage.js +1 -0
  368. package/dist/vue/FieldRadioGroup.cjs +6 -0
  369. package/dist/vue/FieldRadioGroup.d.ts +1 -0
  370. package/dist/vue/FieldRadioGroup.js +1 -0
  371. package/dist/vue/FieldRequired.cjs +6 -0
  372. package/dist/vue/FieldRequired.d.ts +1 -0
  373. package/dist/vue/FieldRequired.js +1 -0
  374. package/dist/vue/FieldSelect.cjs +6 -0
  375. package/dist/vue/FieldSelect.d.ts +1 -0
  376. package/dist/vue/FieldSelect.js +1 -0
  377. package/dist/vue/FieldSwitch.cjs +6 -0
  378. package/dist/vue/FieldSwitch.d.ts +1 -0
  379. package/dist/vue/FieldSwitch.js +1 -0
  380. package/dist/vue/FieldTextarea.cjs +6 -0
  381. package/dist/vue/FieldTextarea.d.ts +1 -0
  382. package/dist/vue/FieldTextarea.js +1 -0
  383. package/dist/vue/FieldUrl.cjs +6 -0
  384. package/dist/vue/FieldUrl.d.ts +1 -0
  385. package/dist/vue/FieldUrl.js +1 -0
  386. package/dist/vue/FlyoutDropdown.cjs +6 -0
  387. package/dist/vue/FlyoutDropdown.d.ts +1 -0
  388. package/dist/vue/FlyoutDropdown.js +1 -0
  389. package/dist/vue/FlyoutRoot.cjs +6 -0
  390. package/dist/vue/FlyoutRoot.d.ts +1 -0
  391. package/dist/vue/FlyoutRoot.js +1 -0
  392. package/dist/vue/FormPrompt.cjs +6 -0
  393. package/dist/vue/FormPrompt.d.ts +1 -0
  394. package/dist/vue/FormPrompt.js +1 -0
  395. package/dist/vue/FormPromptFooter.cjs +6 -0
  396. package/dist/vue/FormPromptFooter.d.ts +1 -0
  397. package/dist/vue/FormPromptFooter.js +1 -0
  398. package/dist/vue/HeroLead.cjs +6 -0
  399. package/dist/vue/HeroLead.d.ts +1 -0
  400. package/dist/vue/HeroLead.js +1 -0
  401. package/dist/vue/ListItem.cjs +6 -0
  402. package/dist/vue/ListItem.d.ts +1 -0
  403. package/dist/vue/ListItem.js +1 -0
  404. package/dist/vue/ListRoot.cjs +6 -0
  405. package/dist/vue/ListRoot.d.ts +1 -0
  406. package/dist/vue/ListRoot.js +1 -0
  407. package/dist/vue/Loader.cjs +6 -0
  408. package/dist/vue/Loader.d.ts +1 -0
  409. package/dist/vue/Loader.js +1 -0
  410. package/dist/vue/PricingCardBadge.cjs +6 -0
  411. package/dist/vue/PricingCardBadge.d.ts +1 -0
  412. package/dist/vue/PricingCardBadge.js +1 -0
  413. package/dist/vue/PricingCardBody.cjs +6 -0
  414. package/dist/vue/PricingCardBody.d.ts +1 -0
  415. package/dist/vue/PricingCardBody.js +1 -0
  416. package/dist/vue/PricingCardHeader.cjs +6 -0
  417. package/dist/vue/PricingCardHeader.d.ts +1 -0
  418. package/dist/vue/PricingCardHeader.js +1 -0
  419. package/dist/vue/PricingCardPricing.cjs +6 -0
  420. package/dist/vue/PricingCardPricing.d.ts +1 -0
  421. package/dist/vue/PricingCardPricing.js +1 -0
  422. package/dist/vue/PricingCardRoot.cjs +6 -0
  423. package/dist/vue/PricingCardRoot.d.ts +1 -0
  424. package/dist/vue/PricingCardRoot.js +1 -0
  425. package/dist/vue/ProgressRoot.cjs +6 -0
  426. package/dist/vue/ProgressRoot.d.ts +1 -0
  427. package/dist/vue/ProgressRoot.js +1 -0
  428. package/dist/vue/SwitchRoot.cjs +6 -0
  429. package/dist/vue/SwitchRoot.d.ts +1 -0
  430. package/dist/vue/SwitchRoot.js +1 -0
  431. package/dist/vue/TabItem.cjs +6 -0
  432. package/dist/vue/TabItem.d.ts +1 -0
  433. package/dist/vue/TabItem.js +1 -0
  434. package/dist/vue/TabRoot.cjs +6 -0
  435. package/dist/vue/TabRoot.d.ts +1 -0
  436. package/dist/vue/TabRoot.js +1 -0
  437. package/dist/vue/useCarousel.cjs +3 -0
  438. package/dist/vue/useCarousel.d.ts +1 -0
  439. package/dist/vue/useCarousel.js +1 -0
  440. package/dist/vue/useFlyout.cjs +3 -0
  441. package/dist/vue/useFlyout.d.ts +1 -0
  442. package/dist/vue/useFlyout.js +1 -0
  443. package/dist/vue/useFormData.cjs +3 -0
  444. package/dist/vue/useFormData.d.ts +1 -0
  445. package/dist/vue/useFormData.js +1 -0
  446. package/dist/vue-components.d.ts +17 -0
  447. package/package.json +172 -4
@@ -0,0 +1,97 @@
1
+ import TabRoot from './TabRoot.vue';
2
+ import TabItem from './TabItem.vue';
3
+ export { TabRoot, TabItem };
4
+ export type { TabItemData, TabChangePayload, TabRootCss, TabItemCss } from './types';
5
+ declare const _default: {
6
+ Root: {
7
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
8
+ modelValue?: string;
9
+ defaultValue?: string;
10
+ orientation?: "horizontal" | "vertical";
11
+ loop?: boolean;
12
+ items?: import("./types").TabItemData[];
13
+ css?: import("./types").TabRootCss;
14
+ }> & Readonly<{
15
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
16
+ onChange?: ((payload: import("./types").TabChangePayload) => any) | undefined;
17
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ "update:modelValue": (value: string) => any;
19
+ change: (payload: import("./types").TabChangePayload) => any;
20
+ }, import("vue").PublicProps, {
21
+ orientation: "horizontal" | "vertical";
22
+ items: import("./types").TabItemData[];
23
+ loop: boolean;
24
+ }, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
25
+ P: {};
26
+ B: {};
27
+ D: {};
28
+ C: {};
29
+ M: {};
30
+ Defaults: {};
31
+ }, Readonly<{
32
+ modelValue?: string;
33
+ defaultValue?: string;
34
+ orientation?: "horizontal" | "vertical";
35
+ loop?: boolean;
36
+ items?: import("./types").TabItemData[];
37
+ css?: import("./types").TabRootCss;
38
+ }> & Readonly<{
39
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
40
+ onChange?: ((payload: import("./types").TabChangePayload) => any) | undefined;
41
+ }>, {}, {}, {}, {}, {
42
+ orientation: "horizontal" | "vertical";
43
+ items: import("./types").TabItemData[];
44
+ loop: boolean;
45
+ }>;
46
+ __isFragment?: never;
47
+ __isTeleport?: never;
48
+ __isSuspense?: never;
49
+ } & import("vue").ComponentOptionsBase<Readonly<{
50
+ modelValue?: string;
51
+ defaultValue?: string;
52
+ orientation?: "horizontal" | "vertical";
53
+ loop?: boolean;
54
+ items?: import("./types").TabItemData[];
55
+ css?: import("./types").TabRootCss;
56
+ }> & Readonly<{
57
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
58
+ onChange?: ((payload: import("./types").TabChangePayload) => any) | undefined;
59
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
60
+ "update:modelValue": (value: string) => any;
61
+ change: (payload: import("./types").TabChangePayload) => any;
62
+ }, string, {
63
+ orientation: "horizontal" | "vertical";
64
+ items: import("./types").TabItemData[];
65
+ loop: boolean;
66
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
67
+ $slots: {
68
+ default?: (props: {}) => any;
69
+ };
70
+ });
71
+ Item: {
72
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("./types").TabItemData & {
73
+ css?: import("./types").TabItemCss;
74
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
75
+ P: {};
76
+ B: {};
77
+ D: {};
78
+ C: {};
79
+ M: {};
80
+ Defaults: {};
81
+ }, Readonly<import("./types").TabItemData & {
82
+ css?: import("./types").TabItemCss;
83
+ }> & Readonly<{}>, {}, {}, {}, {}, {}>;
84
+ __isFragment?: never;
85
+ __isTeleport?: never;
86
+ __isSuspense?: never;
87
+ } & import("vue").ComponentOptionsBase<Readonly<import("./types").TabItemData & {
88
+ css?: import("./types").TabItemCss;
89
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
90
+ $slots: {
91
+ icon?: (props: {}) => any;
92
+ } & {
93
+ default?: (props: {}) => any;
94
+ };
95
+ });
96
+ };
97
+ export default _default;
@@ -0,0 +1 @@
1
+ export declare const tabStyles: import("../../../styled-system/types").SvaRuntimeFn<"root" | "item" | "icon", import("../../../styled-system/types").SlotRecipeVariantRecord<"root" | "item" | "icon">>;
@@ -0,0 +1,14 @@
1
+ import type { CssMap } from '../../internal/css';
2
+ export interface TabItemData {
3
+ value: string;
4
+ /** Tab label, rendered as HTML. */
5
+ label: string;
6
+ disabled?: boolean;
7
+ icon?: string;
8
+ }
9
+ export interface TabChangePayload {
10
+ value: string;
11
+ direction: 'prev' | 'next';
12
+ }
13
+ export type TabRootCss = CssMap<'root'>;
14
+ export type TabItemCss = CssMap<'root' | 'icon'>;
@@ -0,0 +1,29 @@
1
+ import { type MaybeRefOrGetter, type Ref } from 'vue';
2
+ export type CarouselScrollMode = 'item' | 'viewport';
3
+ export interface CarouselOptions {
4
+ scrollMode: MaybeRefOrGetter<CarouselScrollMode>;
5
+ }
6
+ /**
7
+ * Carousel scrolling for `item` and `viewport` modes.
8
+ *
9
+ * Navigation uses the scroller's overflow geometry (`scrollTo` + item offsets),
10
+ * not IntersectionObserver visibility. Observer callbacks only toggle the
11
+ * `visible` class — a `threshold` of `1` never marked items visible when the
12
+ * viewport was smaller than an item (issue #11).
13
+ *
14
+ * @param options Carousel options.
15
+ * @param options.scrollMode `item` moves one item; `viewport` moves past the visible ones.
16
+ * @param carousel The scroll container. Its direct children are the items.
17
+ */
18
+ export declare function useCarousel(options: CarouselOptions, carousel: Ref<HTMLElement | null>): {
19
+ handleNext: () => void;
20
+ handlePrev: () => void;
21
+ handleWheel: (event: WheelEvent) => void;
22
+ carouselItems: import("vue").ShallowRef<HTMLElement[], HTMLElement[]>;
23
+ carouselItem: import("vue").ComputedRef<HTMLElement | null>;
24
+ currentCarouselItemIndex: Ref<number, number>;
25
+ visibleCarouselItems: import("vue").ShallowRef<HTMLElement[], HTMLElement[]>;
26
+ scrollDirection: Ref<"prev" | "next" | null, "prev" | "next" | null>;
27
+ allItemsVisible: import("vue").ComputedRef<boolean>;
28
+ pages: import("vue").ComputedRef<number>;
29
+ };
@@ -0,0 +1,30 @@
1
+ import { type MaybeRefOrGetter, type Ref } from 'vue';
2
+ export type FlyoutOpenReason = 'hover' | 'click';
3
+ export interface FlyoutOptions {
4
+ /** Open while a mouse hovers the flyout. @default true */
5
+ openOnHover?: MaybeRefOrGetter<boolean>;
6
+ /** Delay before a hover-opened flyout closes after the pointer leaves, in ms. @default 150 */
7
+ closeDelay?: number;
8
+ /**
9
+ * Element to bind the hover listeners to. `FlyoutRoot` binds them itself;
10
+ * pass `el` only when you build your own flyout markup.
11
+ */
12
+ el?: Ref<HTMLElement | null | undefined>;
13
+ }
14
+ /**
15
+ * Open state for a hover-and-click flyout.
16
+ *
17
+ * - A mouse hover opens it; leaving closes it after `closeDelay`.
18
+ * - A click while it is hover-open pins it open instead of closing it.
19
+ * - A click while it is closed or pinned toggles it.
20
+ * Touch and pen input ignore hover and only use clicks.
21
+ */
22
+ export declare function useFlyout(options?: FlyoutOptions): {
23
+ open: Readonly<Ref<boolean, boolean>>;
24
+ openedBy: Readonly<Ref<FlyoutOpenReason | null, FlyoutOpenReason | null>>;
25
+ setOpen: (value: boolean, reason?: FlyoutOpenReason) => void;
26
+ toggle: () => void;
27
+ pin: () => void;
28
+ onPointerEnter: (event: PointerEvent | MouseEvent) => void;
29
+ onPointerLeave: (event: PointerEvent | MouseEvent) => void;
30
+ };
@@ -0,0 +1,18 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ export type FormJson = Record<string, FormDataEntryValue>;
3
+ /**
4
+ * Read a form's current values on demand.
5
+ *
6
+ * Accepts the element, a template ref, or a getter, so it can be called in
7
+ * `setup` before the form mounts. Each call reads the DOM at that moment;
8
+ * nothing is cached.
9
+ *
10
+ * @example
11
+ * const form = useTemplateRef<HTMLFormElement>('form')
12
+ * const { getJson } = useFormData(form)
13
+ * const onSubmit = () => send(getJson())
14
+ */
15
+ export declare function useFormData(form: MaybeRefOrGetter<HTMLFormElement | null | undefined>): {
16
+ getFormData: () => FormData | null;
17
+ getJson: () => FormJson | null;
18
+ };
@@ -0,0 +1,2 @@
1
+ import type { InjectionKey } from 'vue';
2
+ export declare function createInjectionKey<T>(name: string): InjectionKey<T>;
@@ -0,0 +1,4 @@
1
+ import { t as createInjectionKey } from "./injection-key-BQYV9vIr.js";
2
+ // src/internal/controls/context.ts
3
+ var fieldContextKey = createInjectionKey("fieldContext");
4
+ export { fieldContextKey as t };
@@ -0,0 +1,8 @@
1
+ // src/internal/controls/context.ts
2
+ var fieldContextKey = require("./injection-key-DPb_AXnh.cjs").createInjectionKey("fieldContext");
3
+ Object.defineProperty(exports, "fieldContextKey", {
4
+ enumerable: true,
5
+ get: function() {
6
+ return fieldContextKey;
7
+ }
8
+ });
@@ -0,0 +1,92 @@
1
+ import { cva } from "@webflare/ui/css";
2
+ // src/internal/controls/controlStyles.ts
3
+ /** Text-like field controls: input, textarea, and the select trigger. */
4
+ var controlStyles = cva({
5
+ base: {
6
+ display: "flex",
7
+ alignItems: "center",
8
+ width: "100%",
9
+ minWidth: "200px",
10
+ backgroundColor: "surface",
11
+ borderWidth: "1px",
12
+ borderStyle: "solid",
13
+ borderColor: "border",
14
+ borderRadius: "lg",
15
+ outlineWidth: "3px",
16
+ outlineColor: "transparent",
17
+ outlineOffset: "0px",
18
+ outlineStyle: "solid",
19
+ fontWeight: "450",
20
+ fontFamily: "inherit",
21
+ lineHeight: "1.5",
22
+ color: "neutral",
23
+ transition: "all 300ms",
24
+ _placeholder: { color: "text.placeholder" },
25
+ _hover: { borderColor: "border.hover" },
26
+ _focus: {
27
+ outlineColor: "primary/50",
28
+ borderColor: "primary"
29
+ },
30
+ _disabled: {
31
+ opacity: "0.5",
32
+ cursor: "not-allowed"
33
+ }
34
+ },
35
+ variants: {
36
+ element: {
37
+ input: {},
38
+ textarea: {
39
+ alignItems: "flex-start",
40
+ resize: "vertical",
41
+ minHeight: "6rem"
42
+ },
43
+ select: {
44
+ justifyContent: "space-between",
45
+ gap: "md",
46
+ cursor: "pointer",
47
+ textAlign: "left",
48
+ _disabled: { cursor: "not-allowed" }
49
+ }
50
+ },
51
+ size: {
52
+ sm: {
53
+ paddingX: "md",
54
+ paddingY: "xs",
55
+ fontSize: "sm"
56
+ },
57
+ md: {
58
+ paddingX: "lg",
59
+ paddingY: "sm",
60
+ fontSize: "md"
61
+ },
62
+ lg: {
63
+ paddingX: "xl",
64
+ paddingY: "md",
65
+ fontSize: "lg"
66
+ }
67
+ },
68
+ valid: {
69
+ true: {
70
+ borderColor: "success.subtle !important",
71
+ _focus: {
72
+ borderColor: "success.subtle !important",
73
+ outlineColor: "success.subtle/50 !important"
74
+ }
75
+ },
76
+ false: {
77
+ borderColor: "danger.subtle !important",
78
+ _focus: {
79
+ borderColor: "danger.subtle !important",
80
+ outlineColor: "danger.subtle/50 !important"
81
+ }
82
+ },
83
+ none: {}
84
+ }
85
+ },
86
+ defaultVariants: {
87
+ element: "input",
88
+ size: "md",
89
+ valid: "none"
90
+ }
91
+ });
92
+ export { controlStyles as t };
@@ -0,0 +1,96 @@
1
+ // src/internal/controls/controlStyles.ts
2
+ /** Text-like field controls: input, textarea, and the select trigger. */
3
+ var controlStyles = (0, require("@webflare/ui/css").cva)({
4
+ base: {
5
+ display: "flex",
6
+ alignItems: "center",
7
+ width: "100%",
8
+ minWidth: "200px",
9
+ backgroundColor: "surface",
10
+ borderWidth: "1px",
11
+ borderStyle: "solid",
12
+ borderColor: "border",
13
+ borderRadius: "lg",
14
+ outlineWidth: "3px",
15
+ outlineColor: "transparent",
16
+ outlineOffset: "0px",
17
+ outlineStyle: "solid",
18
+ fontWeight: "450",
19
+ fontFamily: "inherit",
20
+ lineHeight: "1.5",
21
+ color: "neutral",
22
+ transition: "all 300ms",
23
+ _placeholder: { color: "text.placeholder" },
24
+ _hover: { borderColor: "border.hover" },
25
+ _focus: {
26
+ outlineColor: "primary/50",
27
+ borderColor: "primary"
28
+ },
29
+ _disabled: {
30
+ opacity: "0.5",
31
+ cursor: "not-allowed"
32
+ }
33
+ },
34
+ variants: {
35
+ element: {
36
+ input: {},
37
+ textarea: {
38
+ alignItems: "flex-start",
39
+ resize: "vertical",
40
+ minHeight: "6rem"
41
+ },
42
+ select: {
43
+ justifyContent: "space-between",
44
+ gap: "md",
45
+ cursor: "pointer",
46
+ textAlign: "left",
47
+ _disabled: { cursor: "not-allowed" }
48
+ }
49
+ },
50
+ size: {
51
+ sm: {
52
+ paddingX: "md",
53
+ paddingY: "xs",
54
+ fontSize: "sm"
55
+ },
56
+ md: {
57
+ paddingX: "lg",
58
+ paddingY: "sm",
59
+ fontSize: "md"
60
+ },
61
+ lg: {
62
+ paddingX: "xl",
63
+ paddingY: "md",
64
+ fontSize: "lg"
65
+ }
66
+ },
67
+ valid: {
68
+ true: {
69
+ borderColor: "success.subtle !important",
70
+ _focus: {
71
+ borderColor: "success.subtle !important",
72
+ outlineColor: "success.subtle/50 !important"
73
+ }
74
+ },
75
+ false: {
76
+ borderColor: "danger.subtle !important",
77
+ _focus: {
78
+ borderColor: "danger.subtle !important",
79
+ outlineColor: "danger.subtle/50 !important"
80
+ }
81
+ },
82
+ none: {}
83
+ }
84
+ },
85
+ defaultVariants: {
86
+ element: "input",
87
+ size: "md",
88
+ valid: "none"
89
+ }
90
+ });
91
+ Object.defineProperty(exports, "controlStyles", {
92
+ enumerable: true,
93
+ get: function() {
94
+ return controlStyles;
95
+ }
96
+ });
@@ -0,0 +1,21 @@
1
+ let styled_system_css = require("@webflare/ui/css");
2
+ // src/internal/css.ts
3
+ /**
4
+ * Class for one slot: the component's style object merged with the consumer's
5
+ * override.
6
+ *
7
+ * Component styles are atomic classes, so appending an override class would
8
+ * leave both `bg_x` and `bg_y` on the element and let stylesheet order decide.
9
+ * Merging the objects first gives one class per property, and the override wins.
10
+ *
11
+ * Pass `styles.raw(…)` (or a slot of it), not the class string from `styles(…)`.
12
+ */
13
+ function withCss(style, override) {
14
+ return (0, styled_system_css.css)(style, override ?? void 0);
15
+ }
16
+ Object.defineProperty(exports, "withCss", {
17
+ enumerable: true,
18
+ get: function() {
19
+ return withCss;
20
+ }
21
+ });
@@ -0,0 +1,16 @@
1
+ import { css } from "@webflare/ui/css";
2
+ // src/internal/css.ts
3
+ /**
4
+ * Class for one slot: the component's style object merged with the consumer's
5
+ * override.
6
+ *
7
+ * Component styles are atomic classes, so appending an override class would
8
+ * leave both `bg_x` and `bg_y` on the element and let stylesheet order decide.
9
+ * Merging the objects first gives one class per property, and the override wins.
10
+ *
11
+ * Pass `styles.raw(…)` (or a slot of it), not the class string from `styles(…)`.
12
+ */
13
+ function withCss(style, override) {
14
+ return css(style, override ?? void 0);
15
+ }
16
+ export { withCss as t };
@@ -0,0 +1,67 @@
1
+ let vue = require("vue");
2
+ // src/composables/flyout.ts
3
+ /**
4
+ * Open state for a hover-and-click flyout.
5
+ *
6
+ * - A mouse hover opens it; leaving closes it after `closeDelay`.
7
+ * - A click while it is hover-open pins it open instead of closing it.
8
+ * - A click while it is closed or pinned toggles it.
9
+ * Touch and pen input ignore hover and only use clicks.
10
+ */
11
+ function useFlyout(options = {}) {
12
+ const open = (0, vue.ref)(false);
13
+ const openedBy = (0, vue.ref)(null);
14
+ const closeDelay = options.closeDelay ?? 150;
15
+ let closeTimer;
16
+ const clearCloseTimer = () => {
17
+ if (closeTimer !== void 0) {
18
+ clearTimeout(closeTimer);
19
+ closeTimer = void 0;
20
+ }
21
+ };
22
+ const setOpen = (value, reason = "click") => {
23
+ clearCloseTimer();
24
+ open.value = value;
25
+ openedBy.value = value ? reason : null;
26
+ };
27
+ const toggle = () => setOpen(!open.value, "click");
28
+ /** Keep a hover-opened flyout open after the pointer leaves. */
29
+ const pin = () => {
30
+ if (open.value && openedBy.value === "hover") openedBy.value = "click";
31
+ };
32
+ const hoverEnabled = (event) => ((0, vue.toValue)(options.openOnHover) ?? true) && (!("pointerType" in event) || event.pointerType === "mouse");
33
+ const onPointerEnter = (event) => {
34
+ if (!hoverEnabled(event)) return;
35
+ clearCloseTimer();
36
+ if (!open.value) setOpen(true, "hover");
37
+ };
38
+ const onPointerLeave = (event) => {
39
+ if (!hoverEnabled(event) || openedBy.value !== "hover") return;
40
+ clearCloseTimer();
41
+ closeTimer = setTimeout(() => setOpen(false), closeDelay);
42
+ };
43
+ (0, vue.onMounted)(() => {
44
+ options.el?.value?.addEventListener("pointerenter", onPointerEnter);
45
+ options.el?.value?.addEventListener("pointerleave", onPointerLeave);
46
+ });
47
+ (0, vue.onUnmounted)(() => {
48
+ clearCloseTimer();
49
+ options.el?.value?.removeEventListener("pointerenter", onPointerEnter);
50
+ options.el?.value?.removeEventListener("pointerleave", onPointerLeave);
51
+ });
52
+ return {
53
+ open: (0, vue.readonly)(open),
54
+ openedBy: (0, vue.readonly)(openedBy),
55
+ setOpen,
56
+ toggle,
57
+ pin,
58
+ onPointerEnter,
59
+ onPointerLeave
60
+ };
61
+ }
62
+ Object.defineProperty(exports, "useFlyout", {
63
+ enumerable: true,
64
+ get: function() {
65
+ return useFlyout;
66
+ }
67
+ });
@@ -0,0 +1,62 @@
1
+ import { onMounted, onUnmounted, readonly, ref, toValue } from "vue";
2
+ // src/composables/flyout.ts
3
+ /**
4
+ * Open state for a hover-and-click flyout.
5
+ *
6
+ * - A mouse hover opens it; leaving closes it after `closeDelay`.
7
+ * - A click while it is hover-open pins it open instead of closing it.
8
+ * - A click while it is closed or pinned toggles it.
9
+ * Touch and pen input ignore hover and only use clicks.
10
+ */
11
+ function useFlyout(options = {}) {
12
+ const open = ref(false);
13
+ const openedBy = ref(null);
14
+ const closeDelay = options.closeDelay ?? 150;
15
+ let closeTimer;
16
+ const clearCloseTimer = () => {
17
+ if (closeTimer !== void 0) {
18
+ clearTimeout(closeTimer);
19
+ closeTimer = void 0;
20
+ }
21
+ };
22
+ const setOpen = (value, reason = "click") => {
23
+ clearCloseTimer();
24
+ open.value = value;
25
+ openedBy.value = value ? reason : null;
26
+ };
27
+ const toggle = () => setOpen(!open.value, "click");
28
+ /** Keep a hover-opened flyout open after the pointer leaves. */
29
+ const pin = () => {
30
+ if (open.value && openedBy.value === "hover") openedBy.value = "click";
31
+ };
32
+ const hoverEnabled = (event) => (toValue(options.openOnHover) ?? true) && (!("pointerType" in event) || event.pointerType === "mouse");
33
+ const onPointerEnter = (event) => {
34
+ if (!hoverEnabled(event)) return;
35
+ clearCloseTimer();
36
+ if (!open.value) setOpen(true, "hover");
37
+ };
38
+ const onPointerLeave = (event) => {
39
+ if (!hoverEnabled(event) || openedBy.value !== "hover") return;
40
+ clearCloseTimer();
41
+ closeTimer = setTimeout(() => setOpen(false), closeDelay);
42
+ };
43
+ onMounted(() => {
44
+ options.el?.value?.addEventListener("pointerenter", onPointerEnter);
45
+ options.el?.value?.addEventListener("pointerleave", onPointerLeave);
46
+ });
47
+ onUnmounted(() => {
48
+ clearCloseTimer();
49
+ options.el?.value?.removeEventListener("pointerenter", onPointerEnter);
50
+ options.el?.value?.removeEventListener("pointerleave", onPointerLeave);
51
+ });
52
+ return {
53
+ open: readonly(open),
54
+ openedBy: readonly(openedBy),
55
+ setOpen,
56
+ toggle,
57
+ pin,
58
+ onPointerEnter,
59
+ onPointerLeave
60
+ };
61
+ }
62
+ export { useFlyout as t };
@@ -0,0 +1,34 @@
1
+ let vue = require("vue");
2
+ // src/composables/form.ts
3
+ /**
4
+ * Read a form's current values on demand.
5
+ *
6
+ * Accepts the element, a template ref, or a getter, so it can be called in
7
+ * `setup` before the form mounts. Each call reads the DOM at that moment;
8
+ * nothing is cached.
9
+ *
10
+ * @example
11
+ * const form = useTemplateRef<HTMLFormElement>('form')
12
+ * const { getJson } = useFormData(form)
13
+ * const onSubmit = () => send(getJson())
14
+ */
15
+ function useFormData(form) {
16
+ const getFormData = () => {
17
+ const element = (0, vue.toValue)(form);
18
+ return element ? new FormData(element) : null;
19
+ };
20
+ const getJson = () => {
21
+ const data = getFormData();
22
+ return data ? Object.fromEntries(data.entries()) : null;
23
+ };
24
+ return {
25
+ getFormData,
26
+ getJson
27
+ };
28
+ }
29
+ Object.defineProperty(exports, "useFormData", {
30
+ enumerable: true,
31
+ get: function() {
32
+ return useFormData;
33
+ }
34
+ });
@@ -0,0 +1,29 @@
1
+ import { toValue } from "vue";
2
+ // src/composables/form.ts
3
+ /**
4
+ * Read a form's current values on demand.
5
+ *
6
+ * Accepts the element, a template ref, or a getter, so it can be called in
7
+ * `setup` before the form mounts. Each call reads the DOM at that moment;
8
+ * nothing is cached.
9
+ *
10
+ * @example
11
+ * const form = useTemplateRef<HTMLFormElement>('form')
12
+ * const { getJson } = useFormData(form)
13
+ * const onSubmit = () => send(getJson())
14
+ */
15
+ function useFormData(form) {
16
+ const getFormData = () => {
17
+ const element = toValue(form);
18
+ return element ? new FormData(element) : null;
19
+ };
20
+ const getJson = () => {
21
+ const data = getFormData();
22
+ return data ? Object.fromEntries(data.entries()) : null;
23
+ };
24
+ return {
25
+ getFormData,
26
+ getJson
27
+ };
28
+ }
29
+ export { useFormData as t };