@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,391 @@
1
+ const require_FieldBase = require("./FieldBase-X1FWOqPU.cjs");
2
+ const require_FieldLabel = require("./FieldLabel-DBKhMbql.cjs");
3
+ const require_FieldFooter = require("./FieldFooter-05GxwrFg.cjs");
4
+ const require_css = require("./css-BRRSQx3P.cjs");
5
+ const require_useFieldControl = require("./useFieldControl-CEI7IRAa.cjs");
6
+ let vue = require("vue");
7
+ // src/internal/controls/urlStyles.ts
8
+ /** URL field: clickable protocol prefix plus host/path input. */
9
+ var urlStyles = (0, require("@webflare/ui/css").sva)({
10
+ slots: [
11
+ "root",
12
+ "protocol",
13
+ "input"
14
+ ],
15
+ base: {
16
+ root: {
17
+ display: "flex",
18
+ alignItems: "center",
19
+ width: "100%",
20
+ minWidth: "200px",
21
+ paddingX: "0",
22
+ paddingY: "0",
23
+ gap: "0",
24
+ overflow: "hidden",
25
+ backgroundColor: "surface",
26
+ borderWidth: "1px",
27
+ borderStyle: "solid",
28
+ borderColor: "border",
29
+ borderRadius: "lg",
30
+ outlineWidth: "3px",
31
+ outlineColor: "transparent",
32
+ outlineOffset: "0px",
33
+ outlineStyle: "solid",
34
+ fontWeight: "450",
35
+ lineHeight: "1.5",
36
+ color: "neutral",
37
+ transition: "all 300ms",
38
+ _hover: { borderColor: "border.hover" },
39
+ _focus: { outlineColor: "transparent" },
40
+ _focusWithin: {
41
+ outlineColor: "primary/50",
42
+ borderColor: "primary"
43
+ },
44
+ _disabled: {
45
+ opacity: "0.5",
46
+ cursor: "not-allowed"
47
+ }
48
+ },
49
+ protocol: {
50
+ "display": "inline-flex",
51
+ "alignItems": "center",
52
+ "gap": "2xs",
53
+ "flexShrink": 0,
54
+ "margin": "0",
55
+ "border": "none",
56
+ "borderRadius": "0",
57
+ "backgroundColor": "neutral.subtle",
58
+ "color": "inherit",
59
+ "font": "inherit",
60
+ "fontWeight": "450",
61
+ "lineHeight": "1.5",
62
+ "whiteSpace": "nowrap",
63
+ "cursor": "pointer",
64
+ "_hover": { opacity: "0.9" },
65
+ "_focusVisible": {
66
+ outlineWidth: "2px",
67
+ outlineStyle: "solid",
68
+ outlineColor: "primary",
69
+ outlineOffset: "-2px",
70
+ borderRadius: "md"
71
+ },
72
+ "_disabled": {
73
+ cursor: "not-allowed",
74
+ opacity: "1"
75
+ },
76
+ "& .icon": { fontSize: "0.9em" }
77
+ },
78
+ input: {
79
+ flex: "1",
80
+ minWidth: "0",
81
+ width: "100%",
82
+ margin: "0",
83
+ border: "none",
84
+ outline: "none",
85
+ backgroundColor: "transparent",
86
+ color: "inherit",
87
+ font: "inherit",
88
+ fontWeight: "450",
89
+ lineHeight: "1.5",
90
+ _placeholder: { color: "text.placeholder" },
91
+ _disabled: { cursor: "not-allowed" }
92
+ }
93
+ },
94
+ variants: {
95
+ size: {
96
+ sm: {
97
+ root: { fontSize: "sm" },
98
+ protocol: {
99
+ paddingInline: "sm",
100
+ paddingBlock: "xs"
101
+ },
102
+ input: {
103
+ paddingInlineStart: "sm",
104
+ paddingInlineEnd: "md",
105
+ paddingBlock: "xs"
106
+ }
107
+ },
108
+ md: {
109
+ root: { fontSize: "md" },
110
+ protocol: {
111
+ paddingInline: "sm",
112
+ paddingBlock: "sm"
113
+ },
114
+ input: {
115
+ paddingInlineStart: "sm",
116
+ paddingInlineEnd: "lg",
117
+ paddingBlock: "sm"
118
+ }
119
+ },
120
+ lg: {
121
+ root: { fontSize: "lg" },
122
+ protocol: {
123
+ paddingInline: "md",
124
+ paddingBlock: "md"
125
+ },
126
+ input: {
127
+ paddingInlineStart: "md",
128
+ paddingInlineEnd: "xl",
129
+ paddingBlock: "md"
130
+ }
131
+ }
132
+ },
133
+ valid: {
134
+ true: { root: {
135
+ borderColor: "success.subtle !important",
136
+ _focusWithin: {
137
+ borderColor: "success.subtle !important",
138
+ outlineColor: "success.subtle/50 !important"
139
+ }
140
+ } },
141
+ false: { root: {
142
+ borderColor: "danger.subtle !important",
143
+ _focusWithin: {
144
+ borderColor: "danger.subtle !important",
145
+ outlineColor: "danger.subtle/50 !important"
146
+ }
147
+ } },
148
+ none: {}
149
+ },
150
+ secure: {
151
+ true: { protocol: { "& .icon": { color: "success.subtle" } } },
152
+ false: { protocol: { "& .icon": { color: "text.placeholder" } } }
153
+ }
154
+ },
155
+ defaultVariants: {
156
+ size: "md",
157
+ valid: "none",
158
+ secure: true
159
+ }
160
+ });
161
+ // src/internal/controls/urlUtils.ts
162
+ var SCHEME = /^(https?):\/\/(.*)$/i;
163
+ /**
164
+ * Split a leading `http://`, `https://`, or `//` off `value`.
165
+ * `protocol` is only set when the value named one.
166
+ */
167
+ function splitScheme(value) {
168
+ const match = SCHEME.exec(value);
169
+ if (match) return {
170
+ protocol: match[1].toLowerCase(),
171
+ hostPath: match[2] ?? ""
172
+ };
173
+ if (value.startsWith("//")) return { hostPath: value.slice(2) };
174
+ return null;
175
+ }
176
+ function parseUrlValue(value, defaultProtocol = "https") {
177
+ const raw = (value ?? "").trim();
178
+ const split = splitScheme(raw);
179
+ return {
180
+ protocol: split?.protocol ?? defaultProtocol,
181
+ hostPath: split ? split.hostPath : raw
182
+ };
183
+ }
184
+ /**
185
+ * Strip a leading http(s):// (or //) from user input/paste and capture the protocol.
186
+ * Input without a scheme is returned unchanged, so typing is not disturbed.
187
+ */
188
+ function sanitizeHostPathInput(input) {
189
+ return splitScheme(input.trimStart()) ?? { hostPath: input };
190
+ }
191
+ function joinUrl(protocol, hostPath) {
192
+ const path = hostPath.trim();
193
+ if (!path) return "";
194
+ return `${protocol}://${path}`;
195
+ }
196
+ // src/internal/controls/ControlUrl.vue?vue&type=script&setup=true&lang.ts
197
+ var _hoisted_1 = ["name", "value"];
198
+ var _hoisted_2 = ["disabled", "aria-label"];
199
+ var _hoisted_3 = [
200
+ "id",
201
+ "placeholder",
202
+ "value",
203
+ "disabled",
204
+ "required",
205
+ "autocomplete",
206
+ "aria-invalid",
207
+ "aria-describedby"
208
+ ];
209
+ // src/internal/controls/ControlUrl.vue
210
+ var ControlUrl_default = /* @__PURE__ */ (0, vue.defineComponent)({
211
+ __name: "ControlUrl",
212
+ props: /*@__PURE__*/ (0, vue.mergeModels)({
213
+ id: {},
214
+ name: {},
215
+ placeholder: {},
216
+ disabled: { type: Boolean },
217
+ required: { type: Boolean },
218
+ autocomplete: { default: "url" },
219
+ size: { default: "md" },
220
+ valid: {
221
+ type: [Boolean, String],
222
+ default: "none"
223
+ },
224
+ defaultProtocol: { default: "https" },
225
+ css: {},
226
+ class: {}
227
+ }, {
228
+ "modelValue": {},
229
+ "modelModifiers": {}
230
+ }),
231
+ emits: ["update:modelValue"],
232
+ setup(__props) {
233
+ /**
234
+ * @component ControlUrl
235
+ * @description URL input group with a clickable http(s) prefix and paste sanitization.
236
+ */
237
+ const props = __props;
238
+ const model = (0, vue.useModel)(__props, "modelValue");
239
+ const { id, describedBy, valid, invalid } = require_useFieldControl.useFieldControl(props);
240
+ const protocol = (0, vue.ref)(props.defaultProtocol);
241
+ const hostPath = (0, vue.ref)("");
242
+ (0, vue.watch)(model, (value) => {
243
+ if (!(value ?? "").trim()) {
244
+ hostPath.value = "";
245
+ return;
246
+ }
247
+ const parsed = parseUrlValue(value, props.defaultProtocol);
248
+ protocol.value = parsed.protocol;
249
+ hostPath.value = parsed.hostPath;
250
+ }, { immediate: true });
251
+ const fullUrl = (0, vue.computed)(() => joinUrl(protocol.value, hostPath.value));
252
+ const protocolLabel = (0, vue.computed)(() => `${protocol.value}://`);
253
+ const isSecure = (0, vue.computed)(() => protocol.value === "https");
254
+ const styles = (0, vue.computed)(() => urlStyles.raw({
255
+ size: props.size,
256
+ valid: valid.value,
257
+ secure: isSecure.value
258
+ }));
259
+ const emitJoined = () => {
260
+ model.value = fullUrl.value;
261
+ };
262
+ const toggleProtocol = () => {
263
+ if (props.disabled) return;
264
+ protocol.value = protocol.value === "https" ? "http" : "https";
265
+ emitJoined();
266
+ };
267
+ const handleInput = (event) => {
268
+ const sanitized = sanitizeHostPathInput(event.target.value);
269
+ if (sanitized.protocol) protocol.value = sanitized.protocol;
270
+ hostPath.value = sanitized.hostPath;
271
+ emitJoined();
272
+ };
273
+ return (_ctx, _cache) => {
274
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(require_css.withCss)(styles.value.root, props.css?.root), props.class]) }, [
275
+ __props.name ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("input", {
276
+ key: 0,
277
+ type: "hidden",
278
+ name: __props.name,
279
+ value: fullUrl.value
280
+ }, null, 8, _hoisted_1)) : (0, vue.createCommentVNode)("", true),
281
+ (0, vue.createElementVNode)("button", {
282
+ type: "button",
283
+ class: (0, vue.normalizeClass)((0, vue.unref)(require_css.withCss)(styles.value.protocol, props.css?.protocol)),
284
+ disabled: __props.disabled,
285
+ "aria-label": `Toggle protocol, currently ${protocolLabel.value}`,
286
+ onClick: toggleProtocol
287
+ }, [(0, vue.createElementVNode)("span", {
288
+ class: (0, vue.normalizeClass)(["icon", isSecure.value ? "icon-lock-simple-bold" : "icon-lock-simple-open-bold"]),
289
+ "aria-hidden": "true"
290
+ }, null, 2), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(protocolLabel.value), 1)], 10, _hoisted_2),
291
+ (0, vue.createElementVNode)("input", {
292
+ id: (0, vue.unref)(id),
293
+ type: "text",
294
+ inputmode: "url",
295
+ class: (0, vue.normalizeClass)((0, vue.unref)(require_css.withCss)(styles.value.input, props.css?.input)),
296
+ placeholder: __props.placeholder || void 0,
297
+ value: hostPath.value,
298
+ disabled: __props.disabled,
299
+ required: __props.required,
300
+ autocomplete: __props.autocomplete || void 0,
301
+ "aria-invalid": (0, vue.unref)(invalid),
302
+ "aria-describedby": (0, vue.unref)(describedBy),
303
+ onInput: handleInput
304
+ }, null, 42, _hoisted_3)
305
+ ], 2);
306
+ };
307
+ }
308
+ });
309
+ // src/components/Field/FieldUrl.vue
310
+ var FieldUrl_default = /* @__PURE__ */ (0, vue.defineComponent)({
311
+ __name: "FieldUrl",
312
+ props: /*@__PURE__*/ (0, vue.mergeModels)({
313
+ id: {},
314
+ name: {},
315
+ label: {},
316
+ disabled: { type: Boolean },
317
+ required: { type: Boolean },
318
+ size: { default: "md" },
319
+ message: {},
320
+ error: {},
321
+ class: {},
322
+ placeholder: {},
323
+ autocomplete: { default: "url" },
324
+ defaultProtocol: { default: "https" },
325
+ css: {}
326
+ }, {
327
+ "modelValue": {},
328
+ "modelModifiers": {}
329
+ }),
330
+ emits: ["update:modelValue"],
331
+ setup(__props) {
332
+ /**
333
+ * @component FieldUrl
334
+ * @description URL field with a clickable protocol prefix, label, helper text, and error.
335
+ */
336
+ const props = __props;
337
+ const model = (0, vue.useModel)(__props, "modelValue");
338
+ return (_ctx, _cache) => {
339
+ return (0, vue.openBlock)(), (0, vue.createBlock)(require_FieldBase.FieldBase_default, {
340
+ id: __props.id || void 0,
341
+ error: __props.error,
342
+ message: __props.message
343
+ }, {
344
+ default: (0, vue.withCtx)(() => [
345
+ __props.label ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_FieldLabel.FieldLabel_default, {
346
+ key: 0,
347
+ label: __props.label,
348
+ required: __props.required,
349
+ size: "sm"
350
+ }, null, 8, ["label", "required"])) : (0, vue.createCommentVNode)("", true),
351
+ (0, vue.createVNode)(ControlUrl_default, {
352
+ modelValue: model.value,
353
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
354
+ placeholder: __props.placeholder,
355
+ autocomplete: __props.autocomplete,
356
+ "default-protocol": __props.defaultProtocol,
357
+ css: props.css,
358
+ name: __props.name,
359
+ disabled: __props.disabled,
360
+ required: __props.required,
361
+ size: __props.size,
362
+ class: (0, vue.normalizeClass)(props.class)
363
+ }, null, 8, [
364
+ "modelValue",
365
+ "placeholder",
366
+ "autocomplete",
367
+ "default-protocol",
368
+ "css",
369
+ "name",
370
+ "disabled",
371
+ "required",
372
+ "size",
373
+ "class"
374
+ ]),
375
+ (0, vue.createVNode)(require_FieldFooter.FieldFooter_default)
376
+ ]),
377
+ _: 1
378
+ }, 8, [
379
+ "id",
380
+ "error",
381
+ "message"
382
+ ]);
383
+ };
384
+ }
385
+ });
386
+ Object.defineProperty(exports, "FieldUrl_default", {
387
+ enumerable: true,
388
+ get: function() {
389
+ return FieldUrl_default;
390
+ }
391
+ });
@@ -0,0 +1,90 @@
1
+ const require_css = require("./css-BRRSQx3P.cjs");
2
+ const require_injection_key = require("./injection-key-DPb_AXnh.cjs");
3
+ let vue = require("vue");
4
+ let reka_ui = require("reka-ui");
5
+ // src/components/Flyout/styles.ts
6
+ var flyoutStyles = (0, require("@webflare/ui/css").sva)({
7
+ slots: [
8
+ "root",
9
+ "trigger",
10
+ "content"
11
+ ],
12
+ base: {
13
+ root: {
14
+ position: "relative",
15
+ zIndex: 20
16
+ },
17
+ trigger: {
18
+ cursor: "pointer",
19
+ fontFamily: "inherit"
20
+ },
21
+ content: {
22
+ "zIndex": 50,
23
+ "paddingTop": "sm",
24
+ "outline": "none",
25
+ "&[data-state=\"open\"]": {
26
+ animationName: "flyoutIn",
27
+ animationDuration: "200ms"
28
+ },
29
+ "&[data-state=\"closed\"]": {
30
+ animationName: "flyoutOut",
31
+ animationDuration: "200ms"
32
+ }
33
+ }
34
+ }
35
+ });
36
+ // src/components/Flyout/types.ts
37
+ var FlyoutContextKey = require_injection_key.createInjectionKey("Flyout");
38
+ // src/components/Flyout/FlyoutDropdown.vue
39
+ var FlyoutDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
40
+ __name: "FlyoutDropdown",
41
+ props: {
42
+ direction: {},
43
+ css: {}
44
+ },
45
+ setup(__props) {
46
+ /**
47
+ * @component FlyoutDropdown
48
+ * @description The flyout panel (reka-ui PopoverContent). Use it inside `Flyout.Root`,
49
+ * usually through the root's `dropdown` slot.
50
+ */
51
+ const props = __props;
52
+ const flyout = (0, vue.inject)(FlyoutContextKey, null);
53
+ const align = (0, vue.computed)(() => (props.direction ?? flyout?.direction.value ?? "left") === "left" ? "start" : "end");
54
+ const onOpenAutoFocus = (event) => {
55
+ if (flyout?.openedBy.value === "hover") event.preventDefault();
56
+ };
57
+ const styles = flyoutStyles.raw();
58
+ return (_ctx, _cache) => {
59
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverContent), {
60
+ side: "bottom",
61
+ align: align.value,
62
+ "side-offset": 0,
63
+ "avoid-collisions": false,
64
+ class: (0, vue.normalizeClass)((0, vue.unref)(require_css.withCss)((0, vue.unref)(styles).content, props.css?.root)),
65
+ onOpenAutoFocus
66
+ }, {
67
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
68
+ _: 3
69
+ }, 8, ["align", "class"]);
70
+ };
71
+ }
72
+ });
73
+ Object.defineProperty(exports, "FlyoutContextKey", {
74
+ enumerable: true,
75
+ get: function() {
76
+ return FlyoutContextKey;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, "FlyoutDropdown_default", {
80
+ enumerable: true,
81
+ get: function() {
82
+ return FlyoutDropdown_default;
83
+ }
84
+ });
85
+ Object.defineProperty(exports, "flyoutStyles", {
86
+ enumerable: true,
87
+ get: function() {
88
+ return flyoutStyles;
89
+ }
90
+ });
@@ -0,0 +1,74 @@
1
+ import { t as withCss } from "./css-DWYlz0rn.js";
2
+ import { t as createInjectionKey } from "./injection-key-BQYV9vIr.js";
3
+ import { computed, createBlock, defineComponent, inject, normalizeClass, openBlock, renderSlot, unref, withCtx } from "vue";
4
+ import { PopoverContent } from "reka-ui";
5
+ import { sva } from "@webflare/ui/css";
6
+ // src/components/Flyout/styles.ts
7
+ var flyoutStyles = sva({
8
+ slots: [
9
+ "root",
10
+ "trigger",
11
+ "content"
12
+ ],
13
+ base: {
14
+ root: {
15
+ position: "relative",
16
+ zIndex: 20
17
+ },
18
+ trigger: {
19
+ cursor: "pointer",
20
+ fontFamily: "inherit"
21
+ },
22
+ content: {
23
+ "zIndex": 50,
24
+ "paddingTop": "sm",
25
+ "outline": "none",
26
+ "&[data-state=\"open\"]": {
27
+ animationName: "flyoutIn",
28
+ animationDuration: "200ms"
29
+ },
30
+ "&[data-state=\"closed\"]": {
31
+ animationName: "flyoutOut",
32
+ animationDuration: "200ms"
33
+ }
34
+ }
35
+ }
36
+ });
37
+ // src/components/Flyout/types.ts
38
+ var FlyoutContextKey = createInjectionKey("Flyout");
39
+ // src/components/Flyout/FlyoutDropdown.vue
40
+ var FlyoutDropdown_default = /* @__PURE__ */ defineComponent({
41
+ __name: "FlyoutDropdown",
42
+ props: {
43
+ direction: {},
44
+ css: {}
45
+ },
46
+ setup(__props) {
47
+ /**
48
+ * @component FlyoutDropdown
49
+ * @description The flyout panel (reka-ui PopoverContent). Use it inside `Flyout.Root`,
50
+ * usually through the root's `dropdown` slot.
51
+ */
52
+ const props = __props;
53
+ const flyout = inject(FlyoutContextKey, null);
54
+ const align = computed(() => (props.direction ?? flyout?.direction.value ?? "left") === "left" ? "start" : "end");
55
+ const onOpenAutoFocus = (event) => {
56
+ if (flyout?.openedBy.value === "hover") event.preventDefault();
57
+ };
58
+ const styles = flyoutStyles.raw();
59
+ return (_ctx, _cache) => {
60
+ return openBlock(), createBlock(unref(PopoverContent), {
61
+ side: "bottom",
62
+ align: align.value,
63
+ "side-offset": 0,
64
+ "avoid-collisions": false,
65
+ class: normalizeClass(unref(withCss)(unref(styles).content, props.css?.root)),
66
+ onOpenAutoFocus
67
+ }, {
68
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
69
+ _: 3
70
+ }, 8, ["align", "class"]);
71
+ };
72
+ }
73
+ });
74
+ export { FlyoutContextKey as n, flyoutStyles as r, FlyoutDropdown_default as t };
@@ -0,0 +1,110 @@
1
+ import { n as FlyoutContextKey, r as flyoutStyles, t as FlyoutDropdown_default } from "./FlyoutDropdown-ByXW9lqH.js";
2
+ import { t as useFlyout } from "./flyout-QHh1jKmV.js";
3
+ import { t as withCss } from "./css-DWYlz0rn.js";
4
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, provide, renderSlot, toRef, unref, useId, useSlots, withCtx } from "vue";
5
+ import { PopoverRoot, PopoverTrigger } from "reka-ui";
6
+ // src/components/Flyout/FlyoutRoot.vue?vue&type=script&setup=true&lang.ts
7
+ var _hoisted_1 = ["innerHTML"];
8
+ // src/components/Flyout/FlyoutRoot.vue
9
+ var FlyoutRoot_default = /* @__PURE__ */ defineComponent({
10
+ __name: "FlyoutRoot",
11
+ props: {
12
+ icon: {},
13
+ label: {},
14
+ ariaLabel: {},
15
+ direction: { default: "left" },
16
+ openOnHover: {
17
+ type: Boolean,
18
+ default: true
19
+ },
20
+ css: {}
21
+ },
22
+ setup(__props) {
23
+ /**
24
+ * @component FlyoutRoot
25
+ * @description Dropdown panel built on reka-ui Popover. Opens on mouse hover and on click;
26
+ * Escape and an outside click close it. A click while it is hover-open pins it open.
27
+ *
28
+ * @slot trigger - Replaces the trigger button. Render exactly one element; it becomes
29
+ * the Popover trigger. Slot props: `{ open, toggle }`.
30
+ * @slot trigger-label - Replaces the label inside the default trigger.
31
+ * @slot trigger-icon - Appended inside the default trigger. Slot props: `{ open }`.
32
+ * @slot dropdown - Replaces the default `Flyout.Dropdown`. Keep the panel inside a
33
+ * `Flyout.Dropdown` so Escape, outside clicks, and positioning still work.
34
+ * @slot default - Panel content.
35
+ */
36
+ const props = __props;
37
+ const slots = useSlots();
38
+ const { open, openedBy, setOpen, toggle, pin, onPointerEnter, onPointerLeave } = useFlyout({ openOnHover: () => props.openOnHover });
39
+ provide(FlyoutContextKey, {
40
+ openedBy,
41
+ direction: toRef(props, "direction")
42
+ });
43
+ const triggerId = useId();
44
+ let clickOnTrigger = false;
45
+ /** Runs before PopoverTrigger's own click handler toggles the popover. */
46
+ const onClickCapture = (event) => {
47
+ const target = event.target;
48
+ clickOnTrigger = Boolean(target?.closest?.(`[data-flyout-trigger="${triggerId}"]`));
49
+ };
50
+ const onOpenChange = (value) => {
51
+ const fromTrigger = clickOnTrigger;
52
+ clickOnTrigger = false;
53
+ if (!value && fromTrigger && openedBy.value === "hover") {
54
+ pin();
55
+ return;
56
+ }
57
+ setOpen(value, "click");
58
+ };
59
+ const styles = computed(() => flyoutStyles.raw());
60
+ const hasCustomTrigger = computed(() => Boolean(slots.trigger));
61
+ return (_ctx, _cache) => {
62
+ return openBlock(), createBlock(unref(PopoverRoot), {
63
+ open: unref(open),
64
+ "onUpdate:open": onOpenChange
65
+ }, {
66
+ default: withCtx(() => [createElementVNode("div", {
67
+ class: normalizeClass(unref(withCss)(styles.value.root, props.css?.root)),
68
+ onPointerenter: _cache[0] || (_cache[0] = (...args) => unref(onPointerEnter) && unref(onPointerEnter)(...args)),
69
+ onPointerleave: _cache[1] || (_cache[1] = (...args) => unref(onPointerLeave) && unref(onPointerLeave)(...args)),
70
+ onClickCapture
71
+ }, [hasCustomTrigger.value ? (openBlock(), createBlock(unref(PopoverTrigger), {
72
+ key: 0,
73
+ "as-child": "",
74
+ "data-flyout-trigger": unref(triggerId)
75
+ }, {
76
+ default: withCtx(() => [renderSlot(_ctx.$slots, "trigger", {
77
+ open: unref(open),
78
+ toggle: unref(toggle)
79
+ })]),
80
+ _: 3
81
+ }, 8, ["data-flyout-trigger"])) : (openBlock(), createBlock(unref(PopoverTrigger), {
82
+ key: 1,
83
+ "data-flyout-trigger": unref(triggerId),
84
+ class: normalizeClass([unref(withCss)(styles.value.trigger, props.css?.trigger), unref(open) ? "active" : null]),
85
+ "aria-label": __props.ariaLabel || __props.label
86
+ }, {
87
+ default: withCtx(() => [
88
+ props.icon ? (openBlock(), createElementBlock("span", {
89
+ key: 0,
90
+ class: normalizeClass(props.icon),
91
+ "aria-hidden": "true"
92
+ }, null, 2)) : createCommentVNode("", true),
93
+ renderSlot(_ctx.$slots, "trigger-label", {}, () => [createElementVNode("span", { innerHTML: __props.label }, null, 8, _hoisted_1)]),
94
+ renderSlot(_ctx.$slots, "trigger-icon", { open: unref(open) })
95
+ ]),
96
+ _: 3
97
+ }, 8, [
98
+ "data-flyout-trigger",
99
+ "class",
100
+ "aria-label"
101
+ ])), renderSlot(_ctx.$slots, "dropdown", { open: unref(open) }, () => [createVNode(FlyoutDropdown_default, { css: { root: props.css?.content } }, {
102
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
103
+ _: 3
104
+ }, 8, ["css"])])], 34)]),
105
+ _: 3
106
+ }, 8, ["open"]);
107
+ };
108
+ }
109
+ });
110
+ export { FlyoutRoot_default as t };