@vunset/vue 0.0.0-stage → 1.0.0-rc.2

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 (669) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -2
  3. package/dist/chart.d.ts +11 -0
  4. package/dist/chart.js +11 -0
  5. package/dist/components/accordion/AccordionHeader.js +5 -0
  6. package/dist/components/accordion/AccordionHeader.vue.d.ts +23 -0
  7. package/dist/components/accordion/AccordionHeader.vue_vue_type_script_setup_true_lang.js +27 -0
  8. package/dist/components/accordion/AccordionItem.js +5 -0
  9. package/dist/components/accordion/AccordionItem.vue.d.ts +28 -0
  10. package/dist/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +33 -0
  11. package/dist/components/accordion/AccordionRoot.js +5 -0
  12. package/dist/components/accordion/AccordionRoot.vue.d.ts +48 -0
  13. package/dist/components/accordion/AccordionRoot.vue_vue_type_script_setup_true_lang.js +57 -0
  14. package/dist/components/accordion/use-accordion.d.ts +43 -0
  15. package/dist/components/accordion/use-accordion.js +126 -0
  16. package/dist/components/alert/AlertDescription.js +5 -0
  17. package/dist/components/alert/AlertDescription.vue.d.ts +19 -0
  18. package/dist/components/alert/AlertDescription.vue_vue_type_script_setup_true_lang.js +29 -0
  19. package/dist/components/alert/AlertRoot.js +5 -0
  20. package/dist/components/alert/AlertRoot.vue.d.ts +24 -0
  21. package/dist/components/alert/AlertRoot.vue_vue_type_script_setup_true_lang.js +36 -0
  22. package/dist/components/alert/AlertTitle.js +5 -0
  23. package/dist/components/alert/AlertTitle.vue.d.ts +19 -0
  24. package/dist/components/alert/AlertTitle.vue_vue_type_script_setup_true_lang.js +29 -0
  25. package/dist/components/appear/Appear.js +5 -0
  26. package/dist/components/appear/Appear.vue.d.ts +46 -0
  27. package/dist/components/appear/Appear.vue_vue_type_script_setup_true_lang.js +63 -0
  28. package/dist/components/async-state/AsyncState.js +5 -0
  29. package/dist/components/async-state/AsyncState.vue.d.ts +60 -0
  30. package/dist/components/async-state/AsyncState.vue_vue_type_script_setup_true_lang.js +88 -0
  31. package/dist/components/badge/Badge.js +5 -0
  32. package/dist/components/badge/Badge.vue.d.ts +19 -0
  33. package/dist/components/badge/Badge.vue_vue_type_script_setup_true_lang.js +23 -0
  34. package/dist/components/button/Button.js +5 -0
  35. package/dist/components/button/Button.vue.d.ts +28 -0
  36. package/dist/components/button/Button.vue_vue_type_script_setup_true_lang.js +50 -0
  37. package/dist/components/button/use-button.d.ts +20 -0
  38. package/dist/components/button/use-button.js +47 -0
  39. package/dist/components/calendar/CalendarDay.js +5 -0
  40. package/dist/components/calendar/CalendarDay.vue.d.ts +33 -0
  41. package/dist/components/calendar/CalendarDay.vue_vue_type_script_setup_true_lang.js +36 -0
  42. package/dist/components/calendar/CalendarGrid.js +5 -0
  43. package/dist/components/calendar/CalendarGrid.vue.d.ts +33 -0
  44. package/dist/components/calendar/CalendarGrid.vue_vue_type_script_setup_true_lang.js +31 -0
  45. package/dist/components/calendar/CalendarMonth.js +5 -0
  46. package/dist/components/calendar/CalendarMonth.vue.d.ts +28 -0
  47. package/dist/components/calendar/CalendarMonth.vue_vue_type_script_setup_true_lang.js +38 -0
  48. package/dist/components/calendar/CalendarNext.js +5 -0
  49. package/dist/components/calendar/CalendarNext.vue.d.ts +23 -0
  50. package/dist/components/calendar/CalendarNext.vue_vue_type_script_setup_true_lang.js +24 -0
  51. package/dist/components/calendar/CalendarPreset.js +5 -0
  52. package/dist/components/calendar/CalendarPreset.vue.d.ts +39 -0
  53. package/dist/components/calendar/CalendarPreset.vue_vue_type_script_setup_true_lang.js +33 -0
  54. package/dist/components/calendar/CalendarPresets.js +5 -0
  55. package/dist/components/calendar/CalendarPresets.vue.d.ts +26 -0
  56. package/dist/components/calendar/CalendarPresets.vue_vue_type_script_setup_true_lang.js +28 -0
  57. package/dist/components/calendar/CalendarPrev.js +5 -0
  58. package/dist/components/calendar/CalendarPrev.vue.d.ts +23 -0
  59. package/dist/components/calendar/CalendarPrev.vue_vue_type_script_setup_true_lang.js +24 -0
  60. package/dist/components/calendar/CalendarRoot.js +5 -0
  61. package/dist/components/calendar/CalendarRoot.vue.d.ts +94 -0
  62. package/dist/components/calendar/CalendarRoot.vue_vue_type_script_setup_true_lang.js +115 -0
  63. package/dist/components/calendar/CalendarRow.js +5 -0
  64. package/dist/components/calendar/CalendarRow.vue.d.ts +25 -0
  65. package/dist/components/calendar/CalendarRow.vue_vue_type_script_setup_true_lang.js +30 -0
  66. package/dist/components/calendar/CalendarViewTrigger.js +5 -0
  67. package/dist/components/calendar/CalendarViewTrigger.vue.d.ts +25 -0
  68. package/dist/components/calendar/CalendarViewTrigger.vue_vue_type_script_setup_true_lang.js +28 -0
  69. package/dist/components/calendar/CalendarWeek.js +5 -0
  70. package/dist/components/calendar/CalendarWeek.vue.d.ts +29 -0
  71. package/dist/components/calendar/CalendarWeek.vue_vue_type_script_setup_true_lang.js +48 -0
  72. package/dist/components/calendar/CalendarWeekDay.js +5 -0
  73. package/dist/components/calendar/CalendarWeekDay.vue.d.ts +44 -0
  74. package/dist/components/calendar/CalendarWeekDay.vue_vue_type_script_setup_true_lang.js +36 -0
  75. package/dist/components/calendar/CalendarYear.js +5 -0
  76. package/dist/components/calendar/CalendarYear.vue.d.ts +27 -0
  77. package/dist/components/calendar/CalendarYear.vue_vue_type_script_setup_true_lang.js +36 -0
  78. package/dist/components/calendar/use-calendar.d.ts +267 -0
  79. package/dist/components/calendar/use-calendar.js +657 -0
  80. package/dist/components/chart/ChartArea.js +5 -0
  81. package/dist/components/chart/ChartArea.vue.d.ts +23 -0
  82. package/dist/components/chart/ChartArea.vue_vue_type_script_setup_true_lang.js +28 -0
  83. package/dist/components/chart/ChartAxis.js +5 -0
  84. package/dist/components/chart/ChartAxis.vue.d.ts +18 -0
  85. package/dist/components/chart/ChartAxis.vue_vue_type_script_setup_true_lang.js +24 -0
  86. package/dist/components/chart/ChartBar.js +5 -0
  87. package/dist/components/chart/ChartBar.vue.d.ts +25 -0
  88. package/dist/components/chart/ChartBar.vue_vue_type_script_setup_true_lang.js +29 -0
  89. package/dist/components/chart/ChartCrosshair.js +5 -0
  90. package/dist/components/chart/ChartCrosshair.vue.d.ts +3 -0
  91. package/dist/components/chart/ChartCrosshair.vue_vue_type_script_setup_true_lang.js +15 -0
  92. package/dist/components/chart/ChartDonut.js +5 -0
  93. package/dist/components/chart/ChartDonut.vue.d.ts +66 -0
  94. package/dist/components/chart/ChartDonut.vue_vue_type_script_setup_true_lang.js +156 -0
  95. package/dist/components/chart/ChartFrame.js +5 -0
  96. package/dist/components/chart/ChartFrame.vue.d.ts +66 -0
  97. package/dist/components/chart/ChartFrame.vue_vue_type_script_setup_true_lang.js +96 -0
  98. package/dist/components/chart/ChartGrid.js +5 -0
  99. package/dist/components/chart/ChartGrid.vue.d.ts +11 -0
  100. package/dist/components/chart/ChartGrid.vue_vue_type_script_setup_true_lang.js +20 -0
  101. package/dist/components/chart/ChartLegend.js +5 -0
  102. package/dist/components/chart/ChartLegend.vue.d.ts +46 -0
  103. package/dist/components/chart/ChartLegend.vue_vue_type_script_setup_true_lang.js +81 -0
  104. package/dist/components/chart/ChartLine.js +5 -0
  105. package/dist/components/chart/ChartLine.vue.d.ts +23 -0
  106. package/dist/components/chart/ChartLine.vue_vue_type_script_setup_true_lang.js +28 -0
  107. package/dist/components/chart/ChartRoot.js +5 -0
  108. package/dist/components/chart/ChartRoot.vue.d.ts +115 -0
  109. package/dist/components/chart/ChartRoot.vue_vue_type_script_setup_true_lang.js +394 -0
  110. package/dist/components/chart/ChartTooltip.js +5 -0
  111. package/dist/components/chart/ChartTooltip.vue.d.ts +14 -0
  112. package/dist/components/chart/ChartTooltip.vue_vue_type_script_setup_true_lang.js +21 -0
  113. package/dist/components/chart/chart-curve.d.ts +9 -0
  114. package/dist/components/chart/chart-curve.js +57 -0
  115. package/dist/components/chart/chart-scales.d.ts +34 -0
  116. package/dist/components/chart/chart-scales.js +41 -0
  117. package/dist/components/chart/use-chart-series.d.ts +49 -0
  118. package/dist/components/chart/use-chart-series.js +53 -0
  119. package/dist/components/checkbox/CheckboxGroup.js +5 -0
  120. package/dist/components/checkbox/CheckboxGroup.vue.d.ts +128 -0
  121. package/dist/components/checkbox/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +141 -0
  122. package/dist/components/checkbox/CheckboxIndicator.js +5 -0
  123. package/dist/components/checkbox/CheckboxIndicator.vue.d.ts +29 -0
  124. package/dist/components/checkbox/CheckboxIndicator.vue_vue_type_script_setup_true_lang.js +30 -0
  125. package/dist/components/checkbox/CheckboxRoot.js +5 -0
  126. package/dist/components/checkbox/CheckboxRoot.vue.d.ts +93 -0
  127. package/dist/components/checkbox/CheckboxRoot.vue_vue_type_script_setup_true_lang.js +158 -0
  128. package/dist/components/collapsible/CollapsiblePanel.js +5 -0
  129. package/dist/components/collapsible/CollapsiblePanel.vue.d.ts +26 -0
  130. package/dist/components/collapsible/CollapsiblePanel.vue_vue_type_script_setup_true_lang.js +33 -0
  131. package/dist/components/collapsible/CollapsibleRoot.js +5 -0
  132. package/dist/components/collapsible/CollapsibleRoot.vue.d.ts +41 -0
  133. package/dist/components/collapsible/CollapsibleRoot.vue_vue_type_script_setup_true_lang.js +55 -0
  134. package/dist/components/collapsible/CollapsibleTrigger.js +5 -0
  135. package/dist/components/collapsible/CollapsibleTrigger.vue.d.ts +23 -0
  136. package/dist/components/collapsible/CollapsibleTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  137. package/dist/components/combobox/ComboboxChip.js +5 -0
  138. package/dist/components/combobox/ComboboxChip.vue.d.ts +29 -0
  139. package/dist/components/combobox/ComboboxChip.vue_vue_type_script_setup_true_lang.js +31 -0
  140. package/dist/components/combobox/ComboboxChipRemove.js +5 -0
  141. package/dist/components/combobox/ComboboxChipRemove.vue.d.ts +23 -0
  142. package/dist/components/combobox/ComboboxChipRemove.vue_vue_type_script_setup_true_lang.js +29 -0
  143. package/dist/components/combobox/ComboboxChips.js +5 -0
  144. package/dist/components/combobox/ComboboxChips.vue.d.ts +35 -0
  145. package/dist/components/combobox/ComboboxChips.vue_vue_type_script_setup_true_lang.js +39 -0
  146. package/dist/components/combobox/ComboboxInput.js +5 -0
  147. package/dist/components/combobox/ComboboxInput.vue.d.ts +9 -0
  148. package/dist/components/combobox/ComboboxInput.vue_vue_type_script_setup_true_lang.js +21 -0
  149. package/dist/components/combobox/ComboboxRoot.js +5 -0
  150. package/dist/components/combobox/ComboboxRoot.vue.d.ts +115 -0
  151. package/dist/components/combobox/ComboboxRoot.vue_vue_type_script_setup_true_lang.js +133 -0
  152. package/dist/components/combobox/ComboboxTrigger.js +5 -0
  153. package/dist/components/combobox/ComboboxTrigger.vue.d.ts +35 -0
  154. package/dist/components/combobox/ComboboxTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  155. package/dist/components/context-menu/ContextMenuRoot.js +5 -0
  156. package/dist/components/context-menu/ContextMenuRoot.vue.d.ts +57 -0
  157. package/dist/components/context-menu/ContextMenuRoot.vue_vue_type_script_setup_true_lang.js +67 -0
  158. package/dist/components/context-menu/ContextMenuTrigger.js +5 -0
  159. package/dist/components/context-menu/ContextMenuTrigger.vue.d.ts +26 -0
  160. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js +68 -0
  161. package/dist/components/copy/Copy.js +5 -0
  162. package/dist/components/copy/Copy.vue.d.ts +57 -0
  163. package/dist/components/copy/Copy.vue_vue_type_script_setup_true_lang.js +120 -0
  164. package/dist/components/data-table/DataTable.js +5 -0
  165. package/dist/components/data-table/DataTable.vue.d.ts +194 -0
  166. package/dist/components/data-table/DataTable.vue_vue_type_script_setup_true_lang.js +683 -0
  167. package/dist/components/datepicker/DatepickerClear.js +5 -0
  168. package/dist/components/datepicker/DatepickerClear.vue.d.ts +34 -0
  169. package/dist/components/datepicker/DatepickerClear.vue_vue_type_script_setup_true_lang.js +28 -0
  170. package/dist/components/datepicker/DatepickerRoot.js +5 -0
  171. package/dist/components/datepicker/DatepickerRoot.vue.d.ts +191 -0
  172. package/dist/components/datepicker/DatepickerRoot.vue_vue_type_script_setup_true_lang.js +258 -0
  173. package/dist/components/datepicker/DatepickerTrigger.js +5 -0
  174. package/dist/components/datepicker/DatepickerTrigger.vue.d.ts +34 -0
  175. package/dist/components/datepicker/DatepickerTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  176. package/dist/components/datepicker/DatepickerValue.js +5 -0
  177. package/dist/components/datepicker/DatepickerValue.vue.d.ts +29 -0
  178. package/dist/components/datepicker/DatepickerValue.vue_vue_type_script_setup_true_lang.js +35 -0
  179. package/dist/components/deferred/Deferred.js +5 -0
  180. package/dist/components/deferred/Deferred.vue.d.ts +23 -0
  181. package/dist/components/deferred/Deferred.vue_vue_type_script_setup_true_lang.js +42 -0
  182. package/dist/components/dialog/DialogBackdrop.js +5 -0
  183. package/dist/components/dialog/DialogBackdrop.vue.d.ts +25 -0
  184. package/dist/components/dialog/DialogBackdrop.vue_vue_type_script_setup_true_lang.js +24 -0
  185. package/dist/components/dialog/DialogClose.js +5 -0
  186. package/dist/components/dialog/DialogClose.vue.d.ts +26 -0
  187. package/dist/components/dialog/DialogClose.vue_vue_type_script_setup_true_lang.js +33 -0
  188. package/dist/components/dialog/DialogDescription.js +5 -0
  189. package/dist/components/dialog/DialogDescription.vue.d.ts +23 -0
  190. package/dist/components/dialog/DialogDescription.vue_vue_type_script_setup_true_lang.js +29 -0
  191. package/dist/components/dialog/DialogRoot.js +5 -0
  192. package/dist/components/dialog/DialogRoot.vue.d.ts +46 -0
  193. package/dist/components/dialog/DialogRoot.vue_vue_type_script_setup_true_lang.js +61 -0
  194. package/dist/components/dialog/DialogTitle.js +5 -0
  195. package/dist/components/dialog/DialogTitle.vue.d.ts +23 -0
  196. package/dist/components/dialog/DialogTitle.vue_vue_type_script_setup_true_lang.js +29 -0
  197. package/dist/components/dialog/DialogTrigger.js +5 -0
  198. package/dist/components/dialog/DialogTrigger.vue.d.ts +25 -0
  199. package/dist/components/dialog/DialogTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  200. package/dist/components/drag/DragHandle.js +5 -0
  201. package/dist/components/drag/DragHandle.vue.d.ts +19 -0
  202. package/dist/components/drag/DragHandle.vue_vue_type_script_setup_true_lang.js +26 -0
  203. package/dist/components/drag/DragItem.js +5 -0
  204. package/dist/components/drag/DragItem.vue.d.ts +23 -0
  205. package/dist/components/drag/DragItem.vue_vue_type_script_setup_true_lang.js +33 -0
  206. package/dist/components/drag/DragRoot.js +5 -0
  207. package/dist/components/drag/DragRoot.vue.d.ts +90 -0
  208. package/dist/components/drag/DragRoot.vue_vue_type_script_setup_true_lang.js +329 -0
  209. package/dist/components/drawer/DrawerHandle.js +5 -0
  210. package/dist/components/drawer/DrawerHandle.vue.d.ts +23 -0
  211. package/dist/components/drawer/DrawerHandle.vue_vue_type_script_setup_true_lang.js +24 -0
  212. package/dist/components/drawer/DrawerRoot.js +5 -0
  213. package/dist/components/drawer/DrawerRoot.vue.d.ts +55 -0
  214. package/dist/components/drawer/DrawerRoot.vue_vue_type_script_setup_true_lang.js +72 -0
  215. package/dist/components/drawer/use-drawer.d.ts +50 -0
  216. package/dist/components/drawer/use-drawer.js +170 -0
  217. package/dist/components/field/FieldDescription.js +5 -0
  218. package/dist/components/field/FieldDescription.vue.d.ts +28 -0
  219. package/dist/components/field/FieldDescription.vue_vue_type_script_setup_true_lang.js +24 -0
  220. package/dist/components/field/FieldError.js +5 -0
  221. package/dist/components/field/FieldError.vue.d.ts +30 -0
  222. package/dist/components/field/FieldError.vue_vue_type_script_setup_true_lang.js +37 -0
  223. package/dist/components/field/FieldGroup.js +5 -0
  224. package/dist/components/field/FieldGroup.vue.d.ts +28 -0
  225. package/dist/components/field/FieldGroup.vue_vue_type_script_setup_true_lang.js +24 -0
  226. package/dist/components/field/FieldLabel.js +5 -0
  227. package/dist/components/field/FieldLabel.vue.d.ts +28 -0
  228. package/dist/components/field/FieldLabel.vue_vue_type_script_setup_true_lang.js +29 -0
  229. package/dist/components/field/FieldRoot.js +5 -0
  230. package/dist/components/field/FieldRoot.vue.d.ts +47 -0
  231. package/dist/components/field/FieldRoot.vue_vue_type_script_setup_true_lang.js +67 -0
  232. package/dist/components/floating/FloatingClose.js +5 -0
  233. package/dist/components/floating/FloatingClose.vue.d.ts +23 -0
  234. package/dist/components/floating/FloatingClose.vue_vue_type_script_setup_true_lang.js +24 -0
  235. package/dist/components/floating/FloatingHeader.js +5 -0
  236. package/dist/components/floating/FloatingHeader.vue.d.ts +23 -0
  237. package/dist/components/floating/FloatingHeader.vue_vue_type_script_setup_true_lang.js +24 -0
  238. package/dist/components/floating/FloatingResizer.js +5 -0
  239. package/dist/components/floating/FloatingResizer.vue.d.ts +25 -0
  240. package/dist/components/floating/FloatingResizer.vue_vue_type_script_setup_true_lang.js +27 -0
  241. package/dist/components/floating/FloatingRoot.js +5 -0
  242. package/dist/components/floating/FloatingRoot.vue.d.ts +152 -0
  243. package/dist/components/floating/FloatingRoot.vue_vue_type_script_setup_true_lang.js +440 -0
  244. package/dist/components/floating/FloatingTitle.js +5 -0
  245. package/dist/components/floating/FloatingTitle.vue.d.ts +23 -0
  246. package/dist/components/floating/FloatingTitle.vue_vue_type_script_setup_true_lang.js +29 -0
  247. package/dist/components/group/Group.js +5 -0
  248. package/dist/components/group/Group.vue.d.ts +60 -0
  249. package/dist/components/group/Group.vue_vue_type_script_setup_true_lang.js +186 -0
  250. package/dist/components/icon/Icon.js +5 -0
  251. package/dist/components/icon/Icon.vue.d.ts +11 -0
  252. package/dist/components/icon/Icon.vue_vue_type_script_setup_true_lang.js +64 -0
  253. package/dist/components/input/Input.js +5 -0
  254. package/dist/components/input/Input.vue.d.ts +53 -0
  255. package/dist/components/input/Input.vue_vue_type_script_setup_true_lang.js +68 -0
  256. package/dist/components/listbox/ListboxClear.js +5 -0
  257. package/dist/components/listbox/ListboxClear.vue.d.ts +35 -0
  258. package/dist/components/listbox/ListboxClear.vue_vue_type_script_setup_true_lang.js +27 -0
  259. package/dist/components/listbox/ListboxEmpty.js +5 -0
  260. package/dist/components/listbox/ListboxEmpty.vue.d.ts +35 -0
  261. package/dist/components/listbox/ListboxEmpty.vue_vue_type_script_setup_true_lang.js +27 -0
  262. package/dist/components/listbox/ListboxIndicator.js +5 -0
  263. package/dist/components/listbox/ListboxIndicator.vue.d.ts +35 -0
  264. package/dist/components/listbox/ListboxIndicator.vue_vue_type_script_setup_true_lang.js +24 -0
  265. package/dist/components/listbox/ListboxItem.js +5 -0
  266. package/dist/components/listbox/ListboxItem.vue.d.ts +22 -0
  267. package/dist/components/listbox/ListboxItem.vue_vue_type_script_setup_true_lang.js +27 -0
  268. package/dist/components/listbox/ListboxList.js +5 -0
  269. package/dist/components/listbox/ListboxList.vue.d.ts +37 -0
  270. package/dist/components/listbox/ListboxList.vue_vue_type_script_setup_true_lang.js +51 -0
  271. package/dist/components/listbox/ListboxPresets.js +5 -0
  272. package/dist/components/listbox/ListboxPresets.vue.d.ts +59 -0
  273. package/dist/components/listbox/ListboxPresets.vue_vue_type_script_setup_true_lang.js +43 -0
  274. package/dist/components/listbox/ListboxScrollIndicator.js +5 -0
  275. package/dist/components/listbox/ListboxScrollIndicator.vue.d.ts +38 -0
  276. package/dist/components/listbox/ListboxScrollIndicator.vue_vue_type_script_setup_true_lang.js +30 -0
  277. package/dist/components/menu/MenuArrow.js +5 -0
  278. package/dist/components/menu/MenuArrow.vue.d.ts +23 -0
  279. package/dist/components/menu/MenuArrow.vue_vue_type_script_setup_true_lang.js +24 -0
  280. package/dist/components/menu/MenuCheckboxItem.js +5 -0
  281. package/dist/components/menu/MenuCheckboxItem.vue.d.ts +49 -0
  282. package/dist/components/menu/MenuCheckboxItem.vue_vue_type_script_setup_true_lang.js +72 -0
  283. package/dist/components/menu/MenuGroup.js +5 -0
  284. package/dist/components/menu/MenuGroup.vue.d.ts +19 -0
  285. package/dist/components/menu/MenuGroup.vue_vue_type_script_setup_true_lang.js +40 -0
  286. package/dist/components/menu/MenuGroupLabel.js +5 -0
  287. package/dist/components/menu/MenuGroupLabel.vue.d.ts +19 -0
  288. package/dist/components/menu/MenuGroupLabel.vue_vue_type_script_setup_true_lang.js +28 -0
  289. package/dist/components/menu/MenuItem.js +5 -0
  290. package/dist/components/menu/MenuItem.vue.d.ts +29 -0
  291. package/dist/components/menu/MenuItem.vue_vue_type_script_setup_true_lang.js +41 -0
  292. package/dist/components/menu/MenuItemIndicator.js +5 -0
  293. package/dist/components/menu/MenuItemIndicator.vue.d.ts +28 -0
  294. package/dist/components/menu/MenuItemIndicator.vue_vue_type_script_setup_true_lang.js +40 -0
  295. package/dist/components/menu/MenuRadioGroup.js +5 -0
  296. package/dist/components/menu/MenuRadioGroup.vue.d.ts +42 -0
  297. package/dist/components/menu/MenuRadioGroup.vue_vue_type_script_setup_true_lang.js +72 -0
  298. package/dist/components/menu/MenuRadioItem.js +5 -0
  299. package/dist/components/menu/MenuRadioItem.vue.d.ts +35 -0
  300. package/dist/components/menu/MenuRadioItem.vue_vue_type_script_setup_true_lang.js +52 -0
  301. package/dist/components/menu/MenuRoot.js +5 -0
  302. package/dist/components/menu/MenuRoot.vue.d.ts +69 -0
  303. package/dist/components/menu/MenuRoot.vue_vue_type_script_setup_true_lang.js +79 -0
  304. package/dist/components/menu/MenuTrigger.js +5 -0
  305. package/dist/components/menu/MenuTrigger.vue.d.ts +25 -0
  306. package/dist/components/menu/MenuTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  307. package/dist/components/menu/MenubarLink.js +5 -0
  308. package/dist/components/menu/MenubarLink.vue.d.ts +22 -0
  309. package/dist/components/menu/MenubarLink.vue_vue_type_script_setup_true_lang.js +32 -0
  310. package/dist/components/menu/MenubarRoot.js +5 -0
  311. package/dist/components/menu/MenubarRoot.vue.d.ts +28 -0
  312. package/dist/components/menu/MenubarRoot.vue_vue_type_script_setup_true_lang.js +42 -0
  313. package/dist/components/meter/MeterIndicator.js +5 -0
  314. package/dist/components/meter/MeterIndicator.vue.d.ts +22 -0
  315. package/dist/components/meter/MeterIndicator.vue_vue_type_script_setup_true_lang.js +24 -0
  316. package/dist/components/meter/MeterLabel.js +5 -0
  317. package/dist/components/meter/MeterLabel.vue.d.ts +22 -0
  318. package/dist/components/meter/MeterLabel.vue_vue_type_script_setup_true_lang.js +34 -0
  319. package/dist/components/meter/MeterRoot.js +5 -0
  320. package/dist/components/meter/MeterRoot.vue.d.ts +33 -0
  321. package/dist/components/meter/MeterRoot.vue_vue_type_script_setup_true_lang.js +43 -0
  322. package/dist/components/meter/MeterTrack.js +5 -0
  323. package/dist/components/meter/MeterTrack.vue.d.ts +22 -0
  324. package/dist/components/meter/MeterTrack.vue_vue_type_script_setup_true_lang.js +24 -0
  325. package/dist/components/meter/MeterValue.js +5 -0
  326. package/dist/components/meter/MeterValue.vue.d.ts +23 -0
  327. package/dist/components/meter/MeterValue.vue_vue_type_script_setup_true_lang.js +24 -0
  328. package/dist/components/pagination/PaginationEllipsis.js +5 -0
  329. package/dist/components/pagination/PaginationEllipsis.vue.d.ts +23 -0
  330. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js +24 -0
  331. package/dist/components/pagination/PaginationItem.js +5 -0
  332. package/dist/components/pagination/PaginationItem.vue.d.ts +48 -0
  333. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +32 -0
  334. package/dist/components/pagination/PaginationNext.js +5 -0
  335. package/dist/components/pagination/PaginationNext.vue.d.ts +21 -0
  336. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js +24 -0
  337. package/dist/components/pagination/PaginationPrev.js +5 -0
  338. package/dist/components/pagination/PaginationPrev.vue.d.ts +21 -0
  339. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js +24 -0
  340. package/dist/components/pagination/PaginationRoot.js +5 -0
  341. package/dist/components/pagination/PaginationRoot.vue.d.ts +146 -0
  342. package/dist/components/pagination/PaginationRoot.vue_vue_type_script_setup_true_lang.js +253 -0
  343. package/dist/components/popover/PopoverArrow.js +5 -0
  344. package/dist/components/popover/PopoverArrow.vue.d.ts +23 -0
  345. package/dist/components/popover/PopoverArrow.vue_vue_type_script_setup_true_lang.js +24 -0
  346. package/dist/components/popover/PopoverClose.js +5 -0
  347. package/dist/components/popover/PopoverClose.vue.d.ts +23 -0
  348. package/dist/components/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js +24 -0
  349. package/dist/components/popover/PopoverDescription.js +5 -0
  350. package/dist/components/popover/PopoverDescription.vue.d.ts +23 -0
  351. package/dist/components/popover/PopoverDescription.vue_vue_type_script_setup_true_lang.js +29 -0
  352. package/dist/components/popover/PopoverRoot.js +5 -0
  353. package/dist/components/popover/PopoverRoot.vue.d.ts +75 -0
  354. package/dist/components/popover/PopoverRoot.vue_vue_type_script_setup_true_lang.js +85 -0
  355. package/dist/components/popover/PopoverTitle.js +5 -0
  356. package/dist/components/popover/PopoverTitle.vue.d.ts +23 -0
  357. package/dist/components/popover/PopoverTitle.vue_vue_type_script_setup_true_lang.js +29 -0
  358. package/dist/components/popover/PopoverTrigger.js +5 -0
  359. package/dist/components/popover/PopoverTrigger.vue.d.ts +24 -0
  360. package/dist/components/popover/PopoverTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  361. package/dist/components/popover/use-popover.d.ts +60 -0
  362. package/dist/components/popover/use-popover.js +160 -0
  363. package/dist/components/progress/ProgressIndicator.js +5 -0
  364. package/dist/components/progress/ProgressIndicator.vue.d.ts +22 -0
  365. package/dist/components/progress/ProgressIndicator.vue_vue_type_script_setup_true_lang.js +24 -0
  366. package/dist/components/progress/ProgressLabel.js +5 -0
  367. package/dist/components/progress/ProgressLabel.vue.d.ts +22 -0
  368. package/dist/components/progress/ProgressLabel.vue_vue_type_script_setup_true_lang.js +34 -0
  369. package/dist/components/progress/ProgressRoot.js +5 -0
  370. package/dist/components/progress/ProgressRoot.vue.d.ts +33 -0
  371. package/dist/components/progress/ProgressRoot.vue_vue_type_script_setup_true_lang.js +43 -0
  372. package/dist/components/progress/ProgressTrack.js +5 -0
  373. package/dist/components/progress/ProgressTrack.vue.d.ts +22 -0
  374. package/dist/components/progress/ProgressTrack.vue_vue_type_script_setup_true_lang.js +24 -0
  375. package/dist/components/progress/ProgressValue.js +5 -0
  376. package/dist/components/progress/ProgressValue.vue.d.ts +23 -0
  377. package/dist/components/progress/ProgressValue.vue_vue_type_script_setup_true_lang.js +24 -0
  378. package/dist/components/radio/RadioGroup.js +5 -0
  379. package/dist/components/radio/RadioGroup.vue.d.ts +53 -0
  380. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +55 -0
  381. package/dist/components/radio/RadioIndicator.js +5 -0
  382. package/dist/components/radio/RadioIndicator.vue.d.ts +28 -0
  383. package/dist/components/radio/RadioIndicator.vue_vue_type_script_setup_true_lang.js +30 -0
  384. package/dist/components/radio/RadioRoot.js +5 -0
  385. package/dist/components/radio/RadioRoot.vue.d.ts +33 -0
  386. package/dist/components/radio/RadioRoot.vue_vue_type_script_setup_true_lang.js +48 -0
  387. package/dist/components/radio/use-radio-group.d.ts +87 -0
  388. package/dist/components/radio/use-radio-group.js +175 -0
  389. package/dist/components/range/RangeControl.js +5 -0
  390. package/dist/components/range/RangeControl.vue.d.ts +30 -0
  391. package/dist/components/range/RangeControl.vue_vue_type_script_setup_true_lang.js +24 -0
  392. package/dist/components/range/RangeIndicator.js +5 -0
  393. package/dist/components/range/RangeIndicator.vue.d.ts +30 -0
  394. package/dist/components/range/RangeIndicator.vue_vue_type_script_setup_true_lang.js +24 -0
  395. package/dist/components/range/RangeLabel.js +5 -0
  396. package/dist/components/range/RangeLabel.vue.d.ts +30 -0
  397. package/dist/components/range/RangeLabel.vue_vue_type_script_setup_true_lang.js +25 -0
  398. package/dist/components/range/RangeRoot.js +5 -0
  399. package/dist/components/range/RangeRoot.vue.d.ts +85 -0
  400. package/dist/components/range/RangeRoot.vue_vue_type_script_setup_true_lang.js +80 -0
  401. package/dist/components/range/RangeThumb.js +5 -0
  402. package/dist/components/range/RangeThumb.vue.d.ts +42 -0
  403. package/dist/components/range/RangeThumb.vue_vue_type_script_setup_true_lang.js +43 -0
  404. package/dist/components/range/RangeTrack.js +5 -0
  405. package/dist/components/range/RangeTrack.vue.d.ts +30 -0
  406. package/dist/components/range/RangeTrack.vue_vue_type_script_setup_true_lang.js +24 -0
  407. package/dist/components/range/RangeValue.js +5 -0
  408. package/dist/components/range/RangeValue.vue.d.ts +25 -0
  409. package/dist/components/range/RangeValue.vue_vue_type_script_setup_true_lang.js +25 -0
  410. package/dist/components/range/range-math.d.ts +31 -0
  411. package/dist/components/range/range-math.js +82 -0
  412. package/dist/components/range/use-range.d.ts +189 -0
  413. package/dist/components/range/use-range.js +542 -0
  414. package/dist/components/scroll-area/ScrollArea.js +5 -0
  415. package/dist/components/scroll-area/ScrollArea.vue.d.ts +94 -0
  416. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js +178 -0
  417. package/dist/components/select/SelectRoot.js +5 -0
  418. package/dist/components/select/SelectRoot.vue.d.ts +116 -0
  419. package/dist/components/select/SelectRoot.vue_vue_type_script_setup_true_lang.js +133 -0
  420. package/dist/components/select/SelectSearch.js +5 -0
  421. package/dist/components/select/SelectSearch.vue.d.ts +9 -0
  422. package/dist/components/select/SelectSearch.vue_vue_type_script_setup_true_lang.js +21 -0
  423. package/dist/components/select/SelectTrigger.js +5 -0
  424. package/dist/components/select/SelectTrigger.vue.d.ts +35 -0
  425. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  426. package/dist/components/select/SelectValue.js +5 -0
  427. package/dist/components/select/SelectValue.vue.d.ts +52 -0
  428. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js +42 -0
  429. package/dist/components/surface/Addon.js +5 -0
  430. package/dist/components/surface/Addon.vue.d.ts +21 -0
  431. package/dist/components/surface/Addon.vue_vue_type_script_setup_true_lang.js +27 -0
  432. package/dist/components/surface/Popup.js +5 -0
  433. package/dist/components/surface/Popup.vue.d.ts +19 -0
  434. package/dist/components/surface/Popup.vue_vue_type_script_setup_true_lang.js +27 -0
  435. package/dist/components/surface/Portal.js +5 -0
  436. package/dist/components/surface/Portal.vue.d.ts +22 -0
  437. package/dist/components/surface/Portal.vue_vue_type_script_setup_true_lang.js +32 -0
  438. package/dist/components/surface/Positioner.js +5 -0
  439. package/dist/components/surface/Positioner.vue.d.ts +19 -0
  440. package/dist/components/surface/Positioner.vue_vue_type_script_setup_true_lang.js +28 -0
  441. package/dist/components/surface/Separator.js +5 -0
  442. package/dist/components/surface/Separator.vue.d.ts +11 -0
  443. package/dist/components/surface/Separator.vue_vue_type_script_setup_true_lang.js +33 -0
  444. package/dist/components/switch/SwitchRoot.js +5 -0
  445. package/dist/components/switch/SwitchRoot.vue.d.ts +93 -0
  446. package/dist/components/switch/SwitchRoot.vue_vue_type_script_setup_true_lang.js +131 -0
  447. package/dist/components/switch/SwitchThumb.js +5 -0
  448. package/dist/components/switch/SwitchThumb.vue.d.ts +25 -0
  449. package/dist/components/switch/SwitchThumb.vue_vue_type_script_setup_true_lang.js +27 -0
  450. package/dist/components/table/TableBody.js +5 -0
  451. package/dist/components/table/TableBody.vue.d.ts +13 -0
  452. package/dist/components/table/TableBody.vue_vue_type_script_setup_true_lang.js +16 -0
  453. package/dist/components/table/TableCaption.js +5 -0
  454. package/dist/components/table/TableCaption.vue.d.ts +13 -0
  455. package/dist/components/table/TableCaption.vue_vue_type_script_setup_true_lang.js +16 -0
  456. package/dist/components/table/TableCell.js +5 -0
  457. package/dist/components/table/TableCell.vue.d.ts +21 -0
  458. package/dist/components/table/TableCell.vue_vue_type_script_setup_true_lang.js +31 -0
  459. package/dist/components/table/TableFooter.js +5 -0
  460. package/dist/components/table/TableFooter.vue.d.ts +13 -0
  461. package/dist/components/table/TableFooter.vue_vue_type_script_setup_true_lang.js +29 -0
  462. package/dist/components/table/TableHeadCell.js +5 -0
  463. package/dist/components/table/TableHeadCell.vue.d.ts +25 -0
  464. package/dist/components/table/TableHeadCell.vue_vue_type_script_setup_true_lang.js +46 -0
  465. package/dist/components/table/TableHeader.js +5 -0
  466. package/dist/components/table/TableHeader.vue.d.ts +13 -0
  467. package/dist/components/table/TableHeader.vue_vue_type_script_setup_true_lang.js +29 -0
  468. package/dist/components/table/TableRoot.js +5 -0
  469. package/dist/components/table/TableRoot.vue.d.ts +48 -0
  470. package/dist/components/table/TableRoot.vue_vue_type_script_setup_true_lang.js +67 -0
  471. package/dist/components/table/TableRow.js +5 -0
  472. package/dist/components/table/TableRow.vue.d.ts +21 -0
  473. package/dist/components/table/TableRow.vue_vue_type_script_setup_true_lang.js +30 -0
  474. package/dist/components/tabs/TabsIndicator.js +5 -0
  475. package/dist/components/tabs/TabsIndicator.vue.d.ts +23 -0
  476. package/dist/components/tabs/TabsIndicator.vue_vue_type_script_setup_true_lang.js +24 -0
  477. package/dist/components/tabs/TabsList.js +5 -0
  478. package/dist/components/tabs/TabsList.vue.d.ts +22 -0
  479. package/dist/components/tabs/TabsList.vue_vue_type_script_setup_true_lang.js +24 -0
  480. package/dist/components/tabs/TabsPanel.js +5 -0
  481. package/dist/components/tabs/TabsPanel.vue.d.ts +30 -0
  482. package/dist/components/tabs/TabsPanel.vue_vue_type_script_setup_true_lang.js +37 -0
  483. package/dist/components/tabs/TabsRoot.js +5 -0
  484. package/dist/components/tabs/TabsRoot.vue.d.ts +44 -0
  485. package/dist/components/tabs/TabsRoot.vue_vue_type_script_setup_true_lang.js +52 -0
  486. package/dist/components/tabs/TabsTab.js +5 -0
  487. package/dist/components/tabs/TabsTab.vue.d.ts +31 -0
  488. package/dist/components/tabs/TabsTab.vue_vue_type_script_setup_true_lang.js +33 -0
  489. package/dist/components/tabs/use-tabs.d.ts +107 -0
  490. package/dist/components/tabs/use-tabs.js +305 -0
  491. package/dist/components/textarea/Textarea.js +5 -0
  492. package/dist/components/textarea/Textarea.vue.d.ts +48 -0
  493. package/dist/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +102 -0
  494. package/dist/components/timepicker/TimepickerClear.js +5 -0
  495. package/dist/components/timepicker/TimepickerClear.vue.d.ts +27 -0
  496. package/dist/components/timepicker/TimepickerClear.vue_vue_type_script_setup_true_lang.js +28 -0
  497. package/dist/components/timepicker/TimepickerColumn.js +5 -0
  498. package/dist/components/timepicker/TimepickerColumn.vue.d.ts +35 -0
  499. package/dist/components/timepicker/TimepickerColumn.vue_vue_type_script_setup_true_lang.js +44 -0
  500. package/dist/components/timepicker/TimepickerInput.js +5 -0
  501. package/dist/components/timepicker/TimepickerInput.vue.d.ts +20 -0
  502. package/dist/components/timepicker/TimepickerInput.vue_vue_type_script_setup_true_lang.js +32 -0
  503. package/dist/components/timepicker/TimepickerRoot.js +5 -0
  504. package/dist/components/timepicker/TimepickerRoot.vue.d.ts +82 -0
  505. package/dist/components/timepicker/TimepickerRoot.vue_vue_type_script_setup_true_lang.js +109 -0
  506. package/dist/components/timepicker/TimepickerSegment.js +5 -0
  507. package/dist/components/timepicker/TimepickerSegment.vue.d.ts +33 -0
  508. package/dist/components/timepicker/TimepickerSegment.vue_vue_type_script_setup_true_lang.js +37 -0
  509. package/dist/components/timepicker/TimepickerTrigger.js +5 -0
  510. package/dist/components/timepicker/TimepickerTrigger.vue.d.ts +27 -0
  511. package/dist/components/timepicker/TimepickerTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  512. package/dist/components/timepicker/use-timepicker.d.ts +111 -0
  513. package/dist/components/timepicker/use-timepicker.js +545 -0
  514. package/dist/components/toast/ToastAction.js +5 -0
  515. package/dist/components/toast/ToastAction.vue.d.ts +20 -0
  516. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js +27 -0
  517. package/dist/components/toast/ToastClose.js +5 -0
  518. package/dist/components/toast/ToastClose.vue.d.ts +20 -0
  519. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js +27 -0
  520. package/dist/components/toast/ToastDescription.js +5 -0
  521. package/dist/components/toast/ToastDescription.vue.d.ts +20 -0
  522. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js +32 -0
  523. package/dist/components/toast/ToastProgress.js +5 -0
  524. package/dist/components/toast/ToastProgress.vue.d.ts +30 -0
  525. package/dist/components/toast/ToastProgress.vue_vue_type_script_setup_true_lang.js +32 -0
  526. package/dist/components/toast/ToastRoot.js +5 -0
  527. package/dist/components/toast/ToastRoot.vue.d.ts +21 -0
  528. package/dist/components/toast/ToastRoot.vue_vue_type_script_setup_true_lang.js +32 -0
  529. package/dist/components/toast/ToastTitle.js +5 -0
  530. package/dist/components/toast/ToastTitle.vue.d.ts +20 -0
  531. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js +32 -0
  532. package/dist/components/toast/ToastViewport.js +5 -0
  533. package/dist/components/toast/ToastViewport.vue.d.ts +47 -0
  534. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js +75 -0
  535. package/dist/components/toggle/Toggle.js +5 -0
  536. package/dist/components/toggle/Toggle.vue.d.ts +41 -0
  537. package/dist/components/toggle/Toggle.vue_vue_type_script_setup_true_lang.js +52 -0
  538. package/dist/components/toggle/ToggleGroup.js +5 -0
  539. package/dist/components/toggle/ToggleGroup.vue.d.ts +64 -0
  540. package/dist/components/toggle/ToggleGroup.vue_vue_type_script_setup_true_lang.js +86 -0
  541. package/dist/components/toggle/use-toggle.d.ts +122 -0
  542. package/dist/components/toggle/use-toggle.js +218 -0
  543. package/dist/components/tooltip/TooltipArrow.js +5 -0
  544. package/dist/components/tooltip/TooltipArrow.vue.d.ts +23 -0
  545. package/dist/components/tooltip/TooltipArrow.vue_vue_type_script_setup_true_lang.js +24 -0
  546. package/dist/components/tooltip/TooltipGroup.js +5 -0
  547. package/dist/components/tooltip/TooltipGroup.vue.d.ts +21 -0
  548. package/dist/components/tooltip/TooltipGroup.vue_vue_type_script_setup_true_lang.js +25 -0
  549. package/dist/components/tooltip/TooltipRoot.js +5 -0
  550. package/dist/components/tooltip/TooltipRoot.vue.d.ts +60 -0
  551. package/dist/components/tooltip/TooltipRoot.vue_vue_type_script_setup_true_lang.js +64 -0
  552. package/dist/components/tooltip/TooltipTrigger.js +5 -0
  553. package/dist/components/tooltip/TooltipTrigger.vue.d.ts +24 -0
  554. package/dist/components/tooltip/TooltipTrigger.vue_vue_type_script_setup_true_lang.js +24 -0
  555. package/dist/components/tooltip/tooltip-group.d.ts +41 -0
  556. package/dist/components/tooltip/tooltip-group.js +51 -0
  557. package/dist/components/tooltip/use-tooltip.d.ts +60 -0
  558. package/dist/components/tooltip/use-tooltip.js +169 -0
  559. package/dist/composables/use-click-outside.d.ts +16 -0
  560. package/dist/composables/use-click-outside.js +34 -0
  561. package/dist/composables/use-clipboard.d.ts +17 -0
  562. package/dist/composables/use-clipboard.js +45 -0
  563. package/dist/composables/use-download.d.ts +7 -0
  564. package/dist/composables/use-download.js +27 -0
  565. package/dist/composables/use-local-storage.d.ts +11 -0
  566. package/dist/composables/use-local-storage.js +34 -0
  567. package/dist/composables/use-theme.d.ts +44 -0
  568. package/dist/composables/use-theme.js +95 -0
  569. package/dist/composables/use-toast.d.ts +127 -0
  570. package/dist/composables/use-toast.js +330 -0
  571. package/dist/composables/use-validate.d.ts +21 -0
  572. package/dist/composables/use-validate.js +31 -0
  573. package/dist/composables/use-virtual-list.d.ts +34 -0
  574. package/dist/composables/use-virtual-list.js +144 -0
  575. package/dist/data-table.d.ts +1 -0
  576. package/dist/data-table.js +3 -0
  577. package/dist/index.d.ts +234 -0
  578. package/dist/index.js +191 -0
  579. package/dist/shared/align-item-with-trigger.d.ts +84 -0
  580. package/dist/shared/align-item-with-trigger.js +109 -0
  581. package/dist/shared/animations.d.ts +6 -0
  582. package/dist/shared/animations.js +35 -0
  583. package/dist/shared/context.d.ts +7 -0
  584. package/dist/shared/context.js +25 -0
  585. package/dist/shared/data-attrs.d.ts +11 -0
  586. package/dist/shared/data-attrs.js +14 -0
  587. package/dist/shared/dismiss-stack.d.ts +14 -0
  588. package/dist/shared/dismiss-stack.js +52 -0
  589. package/dist/shared/dispatch-click-with-modifiers.d.ts +9 -0
  590. package/dist/shared/dispatch-click-with-modifiers.js +22 -0
  591. package/dist/shared/element-of.d.ts +7 -0
  592. package/dist/shared/element-of.js +14 -0
  593. package/dist/shared/focus.d.ts +6 -0
  594. package/dist/shared/focus.js +35 -0
  595. package/dist/shared/icons.d.ts +38 -0
  596. package/dist/shared/icons.js +86 -0
  597. package/dist/shared/input-filter.d.ts +40 -0
  598. package/dist/shared/input-filter.js +66 -0
  599. package/dist/shared/input-modality.d.ts +3 -0
  600. package/dist/shared/input-modality.js +26 -0
  601. package/dist/shared/labeling.d.ts +12 -0
  602. package/dist/shared/labeling.js +29 -0
  603. package/dist/shared/link.d.ts +12 -0
  604. package/dist/shared/link.js +19 -0
  605. package/dist/shared/merge-props.d.ts +18 -0
  606. package/dist/shared/merge-props.js +67 -0
  607. package/dist/shared/model-modifiers.d.ts +11 -0
  608. package/dist/shared/model-modifiers.js +9 -0
  609. package/dist/shared/part.d.ts +16 -0
  610. package/dist/shared/part.js +42 -0
  611. package/dist/shared/popup-state-attrs.d.ts +46 -0
  612. package/dist/shared/popup-state-attrs.js +23 -0
  613. package/dist/shared/recycle.d.ts +4 -0
  614. package/dist/shared/recycle.js +14 -0
  615. package/dist/shared/route-query.d.ts +23 -0
  616. package/dist/shared/route-query.js +20 -0
  617. package/dist/shared/surface.d.ts +27 -0
  618. package/dist/shared/surface.js +5 -0
  619. package/dist/shared/swipe-dismiss.d.ts +25 -0
  620. package/dist/shared/swipe-dismiss.js +37 -0
  621. package/dist/shared/toast-store.d.ts +98 -0
  622. package/dist/shared/toast-store.js +220 -0
  623. package/dist/shared/use-collapsible.d.ts +42 -0
  624. package/dist/shared/use-collapsible.js +104 -0
  625. package/dist/shared/use-controlled.d.ts +24 -0
  626. package/dist/shared/use-controlled.js +39 -0
  627. package/dist/shared/use-dialog.d.ts +58 -0
  628. package/dist/shared/use-dialog.js +175 -0
  629. package/dist/shared/use-dismiss.d.ts +17 -0
  630. package/dist/shared/use-dismiss.js +24 -0
  631. package/dist/shared/use-exit-animation.d.ts +12 -0
  632. package/dist/shared/use-exit-animation.js +15 -0
  633. package/dist/shared/use-field.d.ts +119 -0
  634. package/dist/shared/use-field.js +218 -0
  635. package/dist/shared/use-focus-trap.d.ts +19 -0
  636. package/dist/shared/use-focus-trap.js +62 -0
  637. package/dist/shared/use-gauge.d.ts +69 -0
  638. package/dist/shared/use-gauge.js +99 -0
  639. package/dist/shared/use-inert-background.d.ts +3 -0
  640. package/dist/shared/use-inert-background.js +37 -0
  641. package/dist/shared/use-input.d.ts +64 -0
  642. package/dist/shared/use-input.js +143 -0
  643. package/dist/shared/use-listbox.d.ts +276 -0
  644. package/dist/shared/use-listbox.js +1076 -0
  645. package/dist/shared/use-menu.d.ts +106 -0
  646. package/dist/shared/use-menu.js +329 -0
  647. package/dist/shared/use-menubar.d.ts +39 -0
  648. package/dist/shared/use-menubar.js +94 -0
  649. package/dist/shared/use-part-props.d.ts +8 -0
  650. package/dist/shared/use-part-props.js +15 -0
  651. package/dist/shared/use-positioning.d.ts +48 -0
  652. package/dist/shared/use-positioning.js +106 -0
  653. package/dist/shared/use-roving-focus.d.ts +43 -0
  654. package/dist/shared/use-roving-focus.js +106 -0
  655. package/dist/shared/use-roving-items.d.ts +47 -0
  656. package/dist/shared/use-roving-items.js +64 -0
  657. package/dist/shared/use-scroll-lock.d.ts +3 -0
  658. package/dist/shared/use-scroll-lock.js +71 -0
  659. package/dist/shared/use-toggle-indicator.d.ts +25 -0
  660. package/dist/shared/use-toggle-indicator.js +37 -0
  661. package/dist/shared/use-toggle-input.d.ts +68 -0
  662. package/dist/shared/use-toggle-input.js +106 -0
  663. package/dist/shared/use-transition-status.d.ts +27 -0
  664. package/dist/shared/use-transition-status.js +70 -0
  665. package/dist/shared/use-typeahead.d.ts +19 -0
  666. package/dist/shared/use-typeahead.js +45 -0
  667. package/dist/shared/visually-hidden.d.ts +6 -0
  668. package/dist/shared/visually-hidden.js +18 -0
  669. package/package.json +66 -4
@@ -0,0 +1,106 @@
1
+ import { computed, ref, shallowRef, toValue } from "vue";
2
+ import { arrow, autoUpdate, flip, hide, limitShift, offset, shift, size, useFloating } from "@floating-ui/vue";
3
+ //#region src/shared/use-positioning.ts
4
+ function usePositioning(options = {}) {
5
+ const anchorRef = ref(null);
6
+ const virtualAnchor = shallowRef(null);
7
+ const reference = computed(() => virtualAnchor.value ?? anchorRef.value);
8
+ const popupRef = ref(null);
9
+ const arrowRef = ref(null);
10
+ const side = () => toValue(options.side) ?? "bottom";
11
+ const align = () => toValue(options.align) ?? "center";
12
+ const padding = () => toValue(options.collisionPadding) ?? 8;
13
+ const placement = computed(() => {
14
+ const a = align();
15
+ return a === "center" ? side() : `${side()}-${a}`;
16
+ });
17
+ const middleware = computed(() => {
18
+ const list = [offset({
19
+ mainAxis: toValue(options.sideOffset) ?? 0,
20
+ crossAxis: toValue(options.alignOffset) ?? 0
21
+ })];
22
+ if (!toValue(options.sticky)) {
23
+ const fallbackSides = toValue(options.fallbackSides);
24
+ const a = align();
25
+ list.push(flip({
26
+ padding: padding(),
27
+ ...fallbackSides ? { fallbackPlacements: fallbackSides.map((side) => a === "center" ? side : `${side}-${a}`) } : { fallbackAxisSideDirection: toValue(options.fallbackAxis) ?? true ? "end" : "none" }
28
+ }));
29
+ }
30
+ list.push(shift({
31
+ padding: padding(),
32
+ limiter: limitShift()
33
+ }));
34
+ list.push(size({
35
+ padding: padding(),
36
+ apply({ availableWidth, availableHeight, elements, rects }) {
37
+ elements.floating.style.setProperty("--available-width", `${Math.round(availableWidth)}px`);
38
+ elements.floating.style.setProperty("--available-height", `${Math.round(availableHeight)}px`);
39
+ elements.floating.style.setProperty("--anchor-width", `${Math.round(rects.reference.width)}px`);
40
+ elements.floating.style.setProperty("--anchor-height", `${Math.round(rects.reference.height)}px`);
41
+ }
42
+ }));
43
+ if (arrowRef.value) list.push(arrow({
44
+ element: arrowRef.value,
45
+ padding: toValue(options.arrowPadding) ?? 4
46
+ }));
47
+ list.push(hide());
48
+ return list;
49
+ });
50
+ const { floatingStyles, middlewareData, placement: finalPlacement, isPositioned } = useFloating(reference, popupRef, {
51
+ placement,
52
+ middleware,
53
+ strategy: computed(() => toValue(options.positionMethod) ?? "absolute"),
54
+ whileElementsMounted: autoUpdate,
55
+ open: computed(() => toValue(options.enabled) ?? true)
56
+ });
57
+ const renderedSide = computed(() => finalPlacement.value.split("-")[0]);
58
+ const renderedAlign = computed(() => finalPlacement.value.split("-")[1] ?? "center");
59
+ const hidden = computed(() => middlewareData.value.hide?.referenceHidden ?? false);
60
+ return {
61
+ anchorRef,
62
+ setVirtualAnchor(anchor) {
63
+ virtualAnchor.value = anchor;
64
+ },
65
+ popupRef,
66
+ arrowRef,
67
+ positionerProps: computed(() => ({
68
+ "data-part": "positioner",
69
+ style: {
70
+ ...floatingStyles.value,
71
+ zIndex: "var(--positioner-z-index, 50)",
72
+ visibility: !isPositioned.value || hidden.value ? "hidden" : void 0
73
+ },
74
+ "data-side": renderedSide.value,
75
+ "data-align": renderedAlign.value,
76
+ ref: (el) => {
77
+ popupRef.value = el ?? null;
78
+ }
79
+ })),
80
+ arrowProps: computed(() => {
81
+ const data = middlewareData.value.arrow;
82
+ const side = renderedSide.value;
83
+ return {
84
+ "data-part": "arrow",
85
+ "data-side": side,
86
+ style: {
87
+ position: "absolute",
88
+ left: data?.x != null ? `${data.x}px` : "",
89
+ top: data?.y != null ? `${data.y}px` : "",
90
+ right: "",
91
+ bottom: "",
92
+ [side]: "100%"
93
+ },
94
+ ref: (el) => {
95
+ arrowRef.value = el ?? null;
96
+ }
97
+ };
98
+ }),
99
+ renderedSide,
100
+ renderedAlign,
101
+ hidden,
102
+ isPositioned
103
+ };
104
+ }
105
+ //#endregion
106
+ export { usePositioning };
@@ -0,0 +1,43 @@
1
+ import { type MaybeRefOrGetter, type Ref } from 'vue';
2
+ export type Orientation = 'horizontal' | 'vertical';
3
+ export interface UseRovingFocusOptions {
4
+ /** The element containing the items. */
5
+ container: Ref<HTMLElement | null>;
6
+ /** Selector matching the navigable items. */
7
+ itemSelector?: MaybeRefOrGetter<string>;
8
+ /** Which arrow keys move between items. */
9
+ orientation?: MaybeRefOrGetter<Orientation>;
10
+ /** Wrap around at the ends. */
11
+ loop?: MaybeRefOrGetter<boolean>;
12
+ /** Called when navigation runs past the start or end without looping. */
13
+ onEscapeBoundary?: (direction: 'start' | 'end') => void;
14
+ /**
15
+ * Track the active item without moving DOM focus, for
16
+ * `aria-activedescendant`.
17
+ *
18
+ * A listbox with a search box needs this: focus has to stay in the text input
19
+ * so typing keeps working, while the highlight travels down the options.
20
+ */
21
+ virtual?: MaybeRefOrGetter<boolean>;
22
+ /** Called with the element that became active, in virtual mode. */
23
+ onActiveChange?: (item: HTMLElement | null) => void;
24
+ }
25
+ /**
26
+ * Arrow-key navigation over a set of items.
27
+ *
28
+ * Items are discovered by querying the DOM at interaction time rather than by
29
+ * registering themselves. That keeps them in document order for free, which
30
+ * registration-based approaches get wrong as soon as items are reordered,
31
+ * conditionally rendered or wrapped in a `v-for` that changes.
32
+ *
33
+ * Disabled items are skipped, matching how a native menu behaves.
34
+ */
35
+ export declare function useRovingFocus(options: UseRovingFocusOptions): {
36
+ items: () => HTMLElement[];
37
+ focusAt: (index: number) => void;
38
+ move: (delta: number) => void;
39
+ onKeydown: (event: KeyboardEvent) => boolean;
40
+ currentIndex: () => number;
41
+ setActive: (item: HTMLElement | null, scroll?: boolean) => void;
42
+ activeItem: Ref<HTMLElement | null, HTMLElement | null>;
43
+ };
@@ -0,0 +1,106 @@
1
+ import { scrollIntoViewWithin } from "./focus.js";
2
+ import { ref, toValue } from "vue";
3
+ //#region src/shared/use-roving-focus.ts
4
+ /**
5
+ * Arrow-key navigation over a set of items.
6
+ *
7
+ * Items are discovered by querying the DOM at interaction time rather than by
8
+ * registering themselves. That keeps them in document order for free, which
9
+ * registration-based approaches get wrong as soon as items are reordered,
10
+ * conditionally rendered or wrapped in a `v-for` that changes.
11
+ *
12
+ * Disabled items are skipped, matching how a native menu behaves.
13
+ */
14
+ function useRovingFocus(options) {
15
+ const selector = () => toValue(options.itemSelector) ?? "[role=\"menuitem\"]";
16
+ const orientation = () => toValue(options.orientation) ?? "vertical";
17
+ const loop = () => toValue(options.loop) ?? true;
18
+ const virtual = () => toValue(options.virtual) ?? false;
19
+ /** The active item in virtual mode. Unused when real focus does the job. */
20
+ const activeItem = ref(null);
21
+ function items() {
22
+ const container = options.container.value;
23
+ if (!container) return [];
24
+ return Array.from(container.querySelectorAll(selector())).filter((el) => el.getAttribute("aria-disabled") !== "true" && !el.hasAttribute("disabled"));
25
+ }
26
+ function focusAt(index) {
27
+ const list = items();
28
+ if (list.length === 0) return;
29
+ let next = index;
30
+ if (next < 0) {
31
+ if (!loop()) {
32
+ options.onEscapeBoundary?.("start");
33
+ return;
34
+ }
35
+ next = list.length - 1;
36
+ } else if (next >= list.length) {
37
+ if (!loop()) {
38
+ options.onEscapeBoundary?.("end");
39
+ return;
40
+ }
41
+ next = 0;
42
+ }
43
+ setActive(list[next] ?? null);
44
+ }
45
+ /**
46
+ * Makes `item` the active one, by focus or by reference depending on the mode.
47
+ *
48
+ * The virtual branch scrolls it into view itself: focusing an element does
49
+ * that for free, so nothing else in the library has had to.
50
+ *
51
+ * `scroll` exists for the pointer. Revealing an item the user is already
52
+ * pointing at is at best redundant and at worst a loop: the scroll moves the
53
+ * list under a stationary cursor, which puts a different half-clipped item
54
+ * under it, which scrolls again. Only the keyboard, which can move the
55
+ * highlight somewhere off screen, actually needs the reveal.
56
+ */
57
+ function setActive(item, scroll = true) {
58
+ if (virtual()) {
59
+ activeItem.value = item;
60
+ options.onActiveChange?.(item);
61
+ } else item?.focus({ preventScroll: true });
62
+ if (item && scroll) scrollIntoViewWithin(item, options.container.value);
63
+ }
64
+ function currentIndex() {
65
+ const current = virtual() ? activeItem.value : document.activeElement;
66
+ return current ? items().indexOf(current) : -1;
67
+ }
68
+ function move(delta) {
69
+ focusAt(currentIndex() + delta);
70
+ }
71
+ function onKeydown(event) {
72
+ const vertical = orientation() === "vertical";
73
+ const nextKey = vertical ? "ArrowDown" : "ArrowRight";
74
+ const prevKey = vertical ? "ArrowUp" : "ArrowLeft";
75
+ switch (event.key) {
76
+ case nextKey:
77
+ event.preventDefault();
78
+ move(1);
79
+ return true;
80
+ case prevKey:
81
+ event.preventDefault();
82
+ move(-1);
83
+ return true;
84
+ case "Home":
85
+ event.preventDefault();
86
+ focusAt(0);
87
+ return true;
88
+ case "End":
89
+ event.preventDefault();
90
+ focusAt(items().length - 1);
91
+ return true;
92
+ default: return false;
93
+ }
94
+ }
95
+ return {
96
+ items,
97
+ focusAt,
98
+ move,
99
+ onKeydown,
100
+ currentIndex,
101
+ setActive,
102
+ activeItem
103
+ };
104
+ }
105
+ //#endregion
106
+ export { useRovingFocus };
@@ -0,0 +1,47 @@
1
+ import { type ComputedRef, type Ref } from 'vue';
2
+ /** One navigable item's entry in the set its container keeps. */
3
+ export interface RovingItem<Value> {
4
+ value: Value;
5
+ /** Stable for the item's lifetime; what a re-registration is matched on. */
6
+ id: string;
7
+ disabled: boolean;
8
+ element: HTMLElement | null;
9
+ }
10
+ export interface UseRovingItemsOptions<Value> {
11
+ /**
12
+ * Which item should hold the tab stop before focus has moved into the set —
13
+ * usually the selected one. A set with no selection leaves it undefined and
14
+ * the first enabled item takes it.
15
+ */
16
+ preferred?: () => Value | undefined;
17
+ }
18
+ export interface UseRovingItemsReturn<Value> {
19
+ /** Registration order. Shallow, so elements come back unproxied. */
20
+ items: Ref<RovingItem<Value>[]>;
21
+ /** The same items in document order. */
22
+ ordered: ComputedRef<RovingItem<Value>[]>;
23
+ register: (item: RovingItem<Value>) => void;
24
+ unregister: (id: string) => void;
25
+ find: (value: Value) => RovingItem<Value> | undefined;
26
+ /** The item focus last landed on, which is not always the preferred one. */
27
+ highlighted: Ref<Value | undefined>;
28
+ highlight: (value: Value | undefined) => void;
29
+ /** The single item the Tab key reaches. */
30
+ tabbableValue: ComputedRef<Value | undefined>;
31
+ }
32
+ /**
33
+ * The set of items behind a roving tab stop: who is in it, in what order, and
34
+ * which one the Tab key reaches.
35
+ *
36
+ * The companion to {@link useRovingFocus}, which moves focus *between* items by
37
+ * querying the DOM at interaction time. That covers the keys, but not the
38
+ * `tabindex` each item has to render with — a value known before any key is
39
+ * pressed, and reactive — so anything with a roving tab stop keeps this
40
+ * alongside it.
41
+ *
42
+ * The tab stop follows focus rather than selection, so leaving a set and
43
+ * returning to it lands on the item last looked at. It falls back to the first
44
+ * enabled item when the preferred one is disabled or absent, because otherwise
45
+ * every item renders `-1` and the whole set drops out of the tab order.
46
+ */
47
+ export declare function useRovingItems<Value>(options?: UseRovingItemsOptions<Value>): UseRovingItemsReturn<Value>;
@@ -0,0 +1,64 @@
1
+ import { computed, ref, shallowRef } from "vue";
2
+ //#region src/shared/use-roving-items.ts
3
+ /**
4
+ * The set of items behind a roving tab stop: who is in it, in what order, and
5
+ * which one the Tab key reaches.
6
+ *
7
+ * The companion to {@link useRovingFocus}, which moves focus *between* items by
8
+ * querying the DOM at interaction time. That covers the keys, but not the
9
+ * `tabindex` each item has to render with — a value known before any key is
10
+ * pressed, and reactive — so anything with a roving tab stop keeps this
11
+ * alongside it.
12
+ *
13
+ * The tab stop follows focus rather than selection, so leaving a set and
14
+ * returning to it lands on the item last looked at. It falls back to the first
15
+ * enabled item when the preferred one is disabled or absent, because otherwise
16
+ * every item renders `-1` and the whole set drops out of the tab order.
17
+ */
18
+ function useRovingItems(options = {}) {
19
+ /**
20
+ * Shallow on purpose: a deep ref would hand back proxied DOM elements, and an
21
+ * element compared against `document.activeElement` — or measured — has to be
22
+ * the element itself. Every change replaces the array instead.
23
+ */
24
+ const items = shallowRef([]);
25
+ /** Registration order is mount order; items are read in document order. */
26
+ const ordered = computed(() => [...items.value].sort((a, b) => {
27
+ if (!a.element || !b.element || a.element === b.element) return 0;
28
+ return a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
29
+ }));
30
+ function register(item) {
31
+ const index = items.value.findIndex((entry) => entry.id === item.id);
32
+ const next = [...items.value];
33
+ if (index === -1) next.push(item);
34
+ else next[index] = item;
35
+ items.value = next;
36
+ }
37
+ function unregister(id) {
38
+ items.value = items.value.filter((entry) => entry.id !== id);
39
+ }
40
+ function find(value) {
41
+ return ordered.value.find((entry) => entry.value === value);
42
+ }
43
+ const highlighted = ref(void 0);
44
+ function highlight(value) {
45
+ highlighted.value = value;
46
+ }
47
+ return {
48
+ items,
49
+ ordered,
50
+ register,
51
+ unregister,
52
+ find,
53
+ highlighted,
54
+ highlight,
55
+ tabbableValue: computed(() => {
56
+ const list = ordered.value;
57
+ const preferred = highlighted.value ?? options.preferred?.();
58
+ if (preferred !== void 0 && list.some((item) => item.value === preferred && !item.disabled)) return preferred;
59
+ return list.find((item) => !item.disabled)?.value;
60
+ })
61
+ };
62
+ }
63
+ //#endregion
64
+ export { useRovingItems };
@@ -0,0 +1,3 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ /** Prevents the page behind a modal surface from scrolling. */
3
+ export declare function useScrollLock(enabled: MaybeRefOrGetter<boolean>): void;
@@ -0,0 +1,71 @@
1
+ import { onScopeDispose, toValue, watch } from "vue";
2
+ //#region src/shared/use-scroll-lock.ts
3
+ /**
4
+ * Locks are counted rather than boolean. A dialog opening a second dialog must
5
+ * not have the inner one's close restore scrolling while the outer is still up.
6
+ */
7
+ var lockCount = 0;
8
+ var restore = null;
9
+ function isIos() {
10
+ if (typeof navigator === "undefined") return false;
11
+ return /iP(hone|ad|od)/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
12
+ }
13
+ function applyLock() {
14
+ const { body, documentElement } = document;
15
+ const previousOverflow = body.style.overflow;
16
+ const previousRootOverflow = documentElement.style.overflow;
17
+ const previousPaddingRight = body.style.paddingRight;
18
+ const previousPosition = body.style.position;
19
+ const previousTop = body.style.top;
20
+ const previousWidth = body.style.width;
21
+ const scrollbarWidth = window.innerWidth - documentElement.clientWidth;
22
+ if (scrollbarWidth > 0) {
23
+ const currentPadding = Number.parseFloat(getComputedStyle(body).paddingRight) || 0;
24
+ body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
25
+ }
26
+ body.style.overflow = "clip";
27
+ documentElement.style.overflow = "clip";
28
+ const scrollY = window.scrollY;
29
+ if (isIos()) {
30
+ body.style.position = "fixed";
31
+ body.style.top = `${-scrollY}px`;
32
+ body.style.width = "100%";
33
+ }
34
+ return () => {
35
+ body.style.overflow = previousOverflow;
36
+ documentElement.style.overflow = previousRootOverflow;
37
+ body.style.paddingRight = previousPaddingRight;
38
+ if (isIos()) {
39
+ body.style.position = previousPosition;
40
+ body.style.top = previousTop;
41
+ body.style.width = previousWidth;
42
+ window.scrollTo(0, scrollY);
43
+ }
44
+ };
45
+ }
46
+ /** Prevents the page behind a modal surface from scrolling. */
47
+ function useScrollLock(enabled) {
48
+ let held = false;
49
+ function release() {
50
+ if (!held) return;
51
+ held = false;
52
+ lockCount -= 1;
53
+ if (lockCount === 0) {
54
+ restore?.();
55
+ restore = null;
56
+ }
57
+ }
58
+ function acquire() {
59
+ if (held || typeof document === "undefined") return;
60
+ held = true;
61
+ lockCount += 1;
62
+ if (lockCount === 1) restore = applyLock();
63
+ }
64
+ watch(() => toValue(enabled), (on) => on ? acquire() : release(), {
65
+ immediate: true,
66
+ flush: "post"
67
+ });
68
+ onScopeDispose(release);
69
+ }
70
+ //#endregion
71
+ export { useScrollLock };
@@ -0,0 +1,25 @@
1
+ import { type ComputedRef, type Ref } from 'vue';
2
+ import { type TransitionStatus } from './use-transition-status';
3
+ /** What a checkbox or radio root hands its indicator. */
4
+ export interface ToggleIndicatorContext<State extends object = object> {
5
+ state: ComputedRef<State>;
6
+ /** The root's own `data-*` hooks, repeated on the indicator. */
7
+ hooks: ComputedRef<Record<string, string>>;
8
+ /** Whether the indicator should be showing. */
9
+ present: () => boolean;
10
+ }
11
+ export declare const provideToggleIndicator: (value: ToggleIndicatorContext<object>) => ToggleIndicatorContext<object>, useToggleIndicatorContext: () => ToggleIndicatorContext<object>;
12
+ export interface UseToggleIndicatorReturn<State extends object> {
13
+ /** Whether the indicator is in the DOM. Outlives `present` for an exit animation. */
14
+ mounted: Ref<boolean>;
15
+ state: ComputedRef<State & {
16
+ /**
17
+ * Where the indicator is in its enter or exit animation.
18
+ * @attribute `data-enter-from` as it enters, `data-leave-to` as it leaves
19
+ */
20
+ transitionStatus: TransitionStatus;
21
+ }>;
22
+ indicatorProps: ComputedRef<Record<string, unknown>>;
23
+ }
24
+ /** Mounts the indicator while its root is checked, and holds it through the exit animation. */
25
+ export declare function useToggleIndicator<State extends object>(): UseToggleIndicatorReturn<State>;
@@ -0,0 +1,37 @@
1
+ import { dataAttrs } from "./data-attrs.js";
2
+ import { createContext } from "./context.js";
3
+ import { popupStateAttrs } from "./popup-state-attrs.js";
4
+ import { useTransitionStatus } from "./use-transition-status.js";
5
+ import { useExitAnimation } from "./use-exit-animation.js";
6
+ import { computed, ref } from "vue";
7
+ //#region src/shared/use-toggle-indicator.ts
8
+ var { provideContext: provideToggleIndicator, useContext: useToggleIndicatorContext } = createContext("ToggleIndicator");
9
+ /** Mounts the indicator while its root is checked, and holds it through the exit animation. */
10
+ function useToggleIndicator() {
11
+ const context = useToggleIndicatorContext();
12
+ const element = ref(null);
13
+ const { mounted, transitionStatus, setMounted } = useTransitionStatus(context.present);
14
+ useExitAnimation({
15
+ open: context.present,
16
+ mounted,
17
+ setMounted,
18
+ element
19
+ });
20
+ return {
21
+ mounted,
22
+ state: computed(() => ({
23
+ ...context.state.value,
24
+ transitionStatus: transitionStatus.value
25
+ })),
26
+ indicatorProps: computed(() => ({
27
+ "data-part": "indicator",
28
+ ...context.hooks.value,
29
+ ...dataAttrs({ transitionStatus: transitionStatus.value }, popupStateAttrs),
30
+ ref: (el) => {
31
+ element.value = el ?? null;
32
+ }
33
+ }))
34
+ };
35
+ }
36
+ //#endregion
37
+ export { provideToggleIndicator, useToggleIndicator, useToggleIndicatorContext };
@@ -0,0 +1,68 @@
1
+ import { type ComputedRef, type Ref } from 'vue';
2
+ /** What the visible element announces itself as. */
3
+ export type ToggleRole = 'switch' | 'checkbox' | 'radio';
4
+ export interface UseToggleInputOptions {
5
+ role: ToggleRole;
6
+ /**
7
+ * The hidden input's own type. A `radio` groups natively by `name`, which is
8
+ * what makes arrow keys and form submission behave without any help.
9
+ */
10
+ inputType?: 'checkbox' | 'radio';
11
+ /** Whether the control is on. Read, never written — the caller owns it. */
12
+ checked: () => boolean;
13
+ /**
14
+ * Neither on nor off. Checkboxes only: it is a presentation state, so a press
15
+ * resolves it to checked rather than cycling back through it.
16
+ */
17
+ indeterminate?: () => boolean;
18
+ disabled?: () => boolean;
19
+ readOnly?: () => boolean;
20
+ required?: () => boolean;
21
+ id?: () => string | undefined;
22
+ name?: () => string | undefined;
23
+ /** Submitted when checked. */
24
+ value?: () => string | undefined;
25
+ form?: () => string | undefined;
26
+ /** The ids of the text describing the control, a field's description and error. */
27
+ describedBy?: () => string | undefined;
28
+ /** Whether the visible element is a real `<button>`, which keys itself. */
29
+ native?: () => boolean;
30
+ /** Tab position. A roving group hands out `0` to one member and `-1` to the rest. */
31
+ tabindex?: () => number | undefined;
32
+ /** The `data-*` hooks to put on every part. */
33
+ hooks: () => Record<string, string>;
34
+ /** Called when the control is activated, with the state it is moving to. */
35
+ onToggle: (next: boolean, event: Event) => void;
36
+ onFocus?: (event: FocusEvent) => void;
37
+ onBlur?: (event: FocusEvent) => void;
38
+ }
39
+ export interface UseToggleInputReturn {
40
+ /** The visible element. */
41
+ rootEl: Ref<HTMLElement | null>;
42
+ /** The hidden input behind it. */
43
+ inputEl: Ref<HTMLInputElement | null>;
44
+ rootProps: ComputedRef<Record<string, unknown>>;
45
+ inputProps: ComputedRef<Record<string, unknown>>;
46
+ /** Whether to render the input: only a `name` or a wrapping `<label>` has a use for it. */
47
+ rendersInput: ComputedRef<boolean>;
48
+ /** Activates the control as a press would, respecting disabled and readOnly. */
49
+ activate: (event?: Event) => void;
50
+ }
51
+ /**
52
+ * The wiring shared by every control that is a hidden native input with
53
+ * something styled in front of it — switch, checkbox, radio.
54
+ *
55
+ * The input is what makes the control submit with a form, respond to a
56
+ * wrapping `<label>` and — for radios — group by `name` so the browser enforces
57
+ * exclusivity. Presses on the visible element are forwarded to it, so a change
58
+ * originates natively. Without a name or a label it has no use, and a root may
59
+ * leave it out (`rendersInput`): a page of unnamed row checkboxes then carries
60
+ * no inputs at all, and the press toggles directly.
61
+ *
62
+ * Deliberately owns no state of its own: `checked` is read through a getter and
63
+ * changes are reported through `onToggle`. A switch and a checkbox own their
64
+ * boolean; a radio owns nothing, because the group it belongs to holds the one
65
+ * value shared between its members. One engine serves all three only because it
66
+ * stays out of that question.
67
+ */
68
+ export declare function useToggleInput(options: UseToggleInputOptions): UseToggleInputReturn;
@@ -0,0 +1,106 @@
1
+ import { visuallyHidden } from "./visually-hidden.js";
2
+ import { computed, onMounted, ref } from "vue";
3
+ //#region src/shared/use-toggle-input.ts
4
+ /**
5
+ * The wiring shared by every control that is a hidden native input with
6
+ * something styled in front of it — switch, checkbox, radio.
7
+ *
8
+ * The input is what makes the control submit with a form, respond to a
9
+ * wrapping `<label>` and — for radios — group by `name` so the browser enforces
10
+ * exclusivity. Presses on the visible element are forwarded to it, so a change
11
+ * originates natively. Without a name or a label it has no use, and a root may
12
+ * leave it out (`rendersInput`): a page of unnamed row checkboxes then carries
13
+ * no inputs at all, and the press toggles directly.
14
+ *
15
+ * Deliberately owns no state of its own: `checked` is read through a getter and
16
+ * changes are reported through `onToggle`. A switch and a checkbox own their
17
+ * boolean; a radio owns nothing, because the group it belongs to holds the one
18
+ * value shared between its members. One engine serves all three only because it
19
+ * stays out of that question.
20
+ */
21
+ function useToggleInput(options) {
22
+ const rootEl = ref(null);
23
+ const inputEl = ref(null);
24
+ const disabled = () => options.disabled?.() ?? false;
25
+ const readOnly = () => options.readOnly?.() ?? false;
26
+ const required = () => options.required?.() ?? false;
27
+ const native = () => options.native?.() ?? false;
28
+ const indeterminate = () => options.indeterminate?.() ?? false;
29
+ const name = () => options.name?.();
30
+ const inLabel = ref(false);
31
+ onMounted(() => {
32
+ inLabel.value = rootEl.value?.closest("label") != null;
33
+ });
34
+ const rendersInput = computed(() => Boolean(name()) || inLabel.value);
35
+ /** Every press ends here: the input, when there is one, toggles itself, so the change is a native one. */
36
+ function activate(event) {
37
+ if (disabled() || readOnly()) return;
38
+ if (inputEl.value) inputEl.value.click();
39
+ else options.onToggle(!options.checked(), event ?? new Event("change"));
40
+ }
41
+ return {
42
+ rootEl,
43
+ inputEl,
44
+ rootProps: computed(() => ({
45
+ ...options.hooks(),
46
+ id: options.id?.(),
47
+ role: options.role,
48
+ "aria-checked": indeterminate() ? "mixed" : options.checked(),
49
+ "aria-readonly": readOnly() || void 0,
50
+ "aria-required": required() || void 0,
51
+ "aria-disabled": disabled() || void 0,
52
+ "aria-describedby": options.describedBy?.(),
53
+ type: native() ? "button" : void 0,
54
+ disabled: native() && disabled() || void 0,
55
+ tabindex: options.tabindex ? options.tabindex() : native() || disabled() ? void 0 : 0,
56
+ ref: (el) => {
57
+ rootEl.value = el ?? null;
58
+ },
59
+ onFocus: options.onFocus,
60
+ onBlur: options.onBlur,
61
+ onClick(event) {
62
+ event.preventDefault();
63
+ activate(event);
64
+ },
65
+ onKeydown(event) {
66
+ if (native() || disabled() || event.target !== event.currentTarget) return;
67
+ if (event.key === " ") event.preventDefault();
68
+ else if (event.key === "Enter" && !event.defaultPrevented) {
69
+ event.preventDefault();
70
+ event.currentTarget.click();
71
+ }
72
+ },
73
+ onKeyup(event) {
74
+ if (native() || disabled() || event.defaultPrevented) return;
75
+ if (event.key === " " && event.target === event.currentTarget) event.currentTarget.click();
76
+ }
77
+ })),
78
+ inputProps: computed(() => ({
79
+ type: options.inputType ?? "checkbox",
80
+ name: name(),
81
+ value: options.value?.(),
82
+ form: options.form?.(),
83
+ disabled: disabled(),
84
+ checked: options.checked(),
85
+ indeterminate: indeterminate(),
86
+ style: visuallyHidden,
87
+ tabindex: -1,
88
+ "aria-hidden": true,
89
+ ref: (el) => {
90
+ inputEl.value = el ?? null;
91
+ },
92
+ onClick(event) {
93
+ event.stopPropagation();
94
+ if (readOnly()) event.preventDefault();
95
+ },
96
+ onChange(event) {
97
+ options.onToggle(event.target.checked, event);
98
+ },
99
+ onFocus: () => rootEl.value?.focus()
100
+ })),
101
+ rendersInput,
102
+ activate
103
+ };
104
+ }
105
+ //#endregion
106
+ export { useToggleInput };