@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,84 @@
1
+ /**
2
+ * Placing a dropdown so the chosen option sits on top of the trigger, the way a
3
+ * native macOS `<select>` does. The list scrolls itself into the right place,
4
+ * so the option you are looking at does not move when the popup opens.
5
+ *
6
+ * The geometry is a pure function of a handful of measurements, kept separate
7
+ * from the DOM so it can be reasoned about — and tested — without a layout
8
+ * engine.
9
+ */
10
+ export interface AlignGeometry {
11
+ /** Usable viewport height. */
12
+ viewportHeight: number;
13
+ /** Trigger's distance from the top of the viewport. */
14
+ triggerTop: number;
15
+ triggerHeight: number;
16
+ /** The popup's height with nothing constraining the list. */
17
+ fullHeight: number;
18
+ /** The scrollable content's full height. */
19
+ contentHeight: number;
20
+ /** Distance from the popup's top edge to the list's top edge. */
21
+ listOffsetTop: number;
22
+ /** Center of the target option, measured from the top of the content. */
23
+ itemCenterFromContentTop: number;
24
+ /** The option's own height. The whole of it has to stay inside the list. */
25
+ itemHeight: number;
26
+ /**
27
+ * The tallest the list may be by the stylesheet's reckoning, or `Infinity`.
28
+ * An aligned popup shrinks to fit this rather than overriding it.
29
+ */
30
+ listMaxHeightLimit: number;
31
+ /** Space kept between the popup and the viewport edges. */
32
+ margin: number;
33
+ /** Below this, a dropdown that covers its trigger is worse than one beside it. */
34
+ minHeight: number;
35
+ /** How close the trigger may be to a viewport edge before this is abandoned. */
36
+ edgeThreshold: number;
37
+ }
38
+ export interface AlignResult {
39
+ /** Where to put the popup's top edge, in viewport coordinates. */
40
+ top: number;
41
+ /** The popup's height. */
42
+ height: number;
43
+ /** What the list may grow to before it scrolls. */
44
+ listMaxHeight: number;
45
+ /** How far to scroll the list so the option lands on the trigger. */
46
+ scrollTop: number;
47
+ /** Vertical origin for an enter animation, as a percentage of the popup. */
48
+ originRatio: number;
49
+ }
50
+ /**
51
+ * Works out where the popup goes, or returns `null` to say it should not be
52
+ * tried at all.
53
+ *
54
+ * Two situations make it worse than an ordinary dropdown, and both bail out
55
+ * rather than producing something cramped: a trigger already hard against the
56
+ * top or bottom of the viewport, which leaves the list nowhere to extend, and
57
+ * too little height to show a useful number of options.
58
+ */
59
+ export declare function computeItemAlignment(geometry: AlignGeometry): AlignResult | null;
60
+ export interface AlignElements {
61
+ trigger: HTMLElement;
62
+ positioner: HTMLElement;
63
+ popup: HTMLElement;
64
+ list: HTMLElement;
65
+ item: HTMLElement;
66
+ /** The part of the trigger showing the current value, for horizontal alignment. */
67
+ value?: HTMLElement | null;
68
+ /** The list's own cap, if it has one. Read instead of the stylesheet's. */
69
+ maxHeight?: string;
70
+ }
71
+ export interface AlignPlacement extends AlignResult {
72
+ left: number;
73
+ }
74
+ export declare const ALIGN_MARGIN = 8;
75
+ export declare const ALIGN_MIN_HEIGHT = 100;
76
+ export declare const ALIGN_EDGE_THRESHOLD = 20;
77
+ /**
78
+ * Measures the live elements and returns where the popup should go.
79
+ *
80
+ * The list's `max-height` is lifted while measuring, because the popup's
81
+ * natural height is the thing being measured and a stylesheet cap would hide
82
+ * it. The caller sets the final value from the result.
83
+ */
84
+ export declare function measureItemAlignment(elements: AlignElements): AlignPlacement | null;
@@ -0,0 +1,109 @@
1
+ //#region src/shared/align-item-with-trigger.ts
2
+ var clamp = (value, min, max) => Math.min(Math.max(value, min), Math.max(min, max));
3
+ /**
4
+ * Works out where the popup goes, or returns `null` to say it should not be
5
+ * tried at all.
6
+ *
7
+ * Two situations make it worse than an ordinary dropdown, and both bail out
8
+ * rather than producing something cramped: a trigger already hard against the
9
+ * top or bottom of the viewport, which leaves the list nowhere to extend, and
10
+ * too little height to show a useful number of options.
11
+ */
12
+ function computeItemAlignment(geometry) {
13
+ const { viewportHeight, triggerTop, triggerHeight, fullHeight, contentHeight, listOffsetTop, itemCenterFromContentTop, itemHeight, listMaxHeightLimit, margin, minHeight, edgeThreshold } = geometry;
14
+ if (triggerTop < edgeThreshold || triggerTop + triggerHeight > viewportHeight - edgeThreshold) return null;
15
+ const topLimit = margin;
16
+ const bottomLimit = viewportHeight - margin;
17
+ const available = bottomLimit - topLimit;
18
+ const chrome = fullHeight - contentHeight;
19
+ const triggerCenter = triggerTop + triggerHeight / 2;
20
+ const natural = listOffsetTop + itemCenterFromContentTop;
21
+ const itemTop = itemCenterFromContentTop - itemHeight / 2;
22
+ const itemBottom = itemCenterFromContentTop + itemHeight / 2;
23
+ /**
24
+ * How far the list may scroll, given a popup of `height`.
25
+ *
26
+ * The lower bound is the part that matters and the part that is easy to miss:
27
+ * the option has to end up **inside** the list's visible window. The last
28
+ * option of a long list can only be shown by scrolling to the end, so the
29
+ * scroll is forced, and the popup has to be placed around that rather than
30
+ * the other way about.
31
+ */
32
+ const scrollFloor = (listMaxHeight) => Math.max(0, itemBottom - listMaxHeight, topLimit - triggerCenter + natural);
33
+ let height = Math.min(fullHeight, listMaxHeightLimit + chrome, available);
34
+ for (let pass = 0; pass < 2; pass += 1) {
35
+ const floor = scrollFloor(Math.max(0, height - chrome));
36
+ height = Math.min(height, fullHeight - floor, bottomLimit - triggerCenter + natural - floor);
37
+ }
38
+ if (height < Math.min(fullHeight, minHeight)) return null;
39
+ const listMaxHeight = Math.max(0, height - chrome);
40
+ const maxScroll = Math.max(0, contentHeight - listMaxHeight);
41
+ const scrollLo = scrollFloor(listMaxHeight);
42
+ const scrollHi = Math.min(maxScroll, itemTop, bottomLimit - height - triggerCenter + natural);
43
+ if (scrollLo > scrollHi) return null;
44
+ const scrollTop = clamp(itemCenterFromContentTop - listMaxHeight / 2, scrollLo, scrollHi);
45
+ const offsetInPopup = natural - scrollTop;
46
+ const top = triggerCenter - offsetInPopup;
47
+ const originRatio = height > 0 ? clamp(offsetInPopup / height * 100, 0, 100) : 50;
48
+ return {
49
+ top,
50
+ height,
51
+ listMaxHeight,
52
+ scrollTop,
53
+ originRatio
54
+ };
55
+ }
56
+ /**
57
+ * Measures the live elements and returns where the popup should go.
58
+ *
59
+ * The list's `max-height` is lifted while measuring, because the popup's
60
+ * natural height is the thing being measured and a stylesheet cap would hide
61
+ * it. The caller sets the final value from the result.
62
+ */
63
+ function measureItemAlignment(elements) {
64
+ const { trigger, positioner, popup, list, item, value, maxHeight } = elements;
65
+ const previousMaxHeight = list.style.maxHeight;
66
+ list.style.removeProperty("max-height");
67
+ if (maxHeight) list.style.maxHeight = maxHeight;
68
+ const authoredMaxHeight = parseFloat(getComputedStyle(list).maxHeight);
69
+ const listMaxHeightLimit = Number.isFinite(authoredMaxHeight) ? authoredMaxHeight : Infinity;
70
+ list.style.maxHeight = "none";
71
+ try {
72
+ const triggerRect = trigger.getBoundingClientRect();
73
+ const popupRect = popup.getBoundingClientRect();
74
+ const listRect = list.getBoundingClientRect();
75
+ const itemRect = item.getBoundingClientRect();
76
+ const result = computeItemAlignment({
77
+ viewportHeight: document.documentElement.clientHeight,
78
+ triggerTop: triggerRect.top,
79
+ triggerHeight: triggerRect.height,
80
+ fullHeight: popupRect.height,
81
+ contentHeight: list.scrollHeight,
82
+ listOffsetTop: listRect.top - popupRect.top,
83
+ itemCenterFromContentTop: itemRect.top - listRect.top + list.scrollTop + itemRect.height / 2,
84
+ itemHeight: itemRect.height,
85
+ listMaxHeightLimit,
86
+ margin: 8,
87
+ minHeight: 100,
88
+ edgeThreshold: 20
89
+ });
90
+ if (!result) return null;
91
+ const positionerRect = positioner.getBoundingClientRect();
92
+ let left = triggerRect.left;
93
+ if (value) {
94
+ const valueRect = value.getBoundingClientRect();
95
+ const itemTextLeft = itemRect.left + (parseFloat(getComputedStyle(item).paddingLeft) || 0);
96
+ left = positionerRect.left + (valueRect.left - itemTextLeft);
97
+ }
98
+ const viewportWidth = document.documentElement.clientWidth;
99
+ left = clamp(left, 8, viewportWidth - 8 - positionerRect.width);
100
+ return {
101
+ ...result,
102
+ left
103
+ };
104
+ } finally {
105
+ list.style.maxHeight = previousMaxHeight;
106
+ }
107
+ }
108
+ //#endregion
109
+ export { computeItemAlignment, measureItemAlignment };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resolves once every CSS animation and transition running on `element` has
3
+ * settled, or immediately if none are.
4
+ */
5
+ export declare function waitForAnimationsToFinish(element: HTMLElement, signal?: AbortSignal): Promise<void>;
6
+ export declare function hasAnimation(element: HTMLElement): boolean;
@@ -0,0 +1,35 @@
1
+ //#region src/shared/animations.ts
2
+ /**
3
+ * Resolves once every CSS animation and transition running on `element` has
4
+ * settled, or immediately if none are.
5
+ */
6
+ function waitForAnimationsToFinish(element, signal) {
7
+ return new Promise((resolve) => {
8
+ if (signal?.aborted) {
9
+ resolve();
10
+ return;
11
+ }
12
+ requestAnimationFrame(() => {
13
+ if (signal?.aborted) {
14
+ resolve();
15
+ return;
16
+ }
17
+ const animations = (element.getAnimations?.({ subtree: true }) ?? []).filter((animation) => animation.playState !== "paused" && animation.effect?.getComputedTiming().iterations !== Infinity);
18
+ if (animations.length === 0) {
19
+ resolve();
20
+ return;
21
+ }
22
+ let settled = false;
23
+ const finish = () => {
24
+ if (!settled) {
25
+ settled = true;
26
+ resolve();
27
+ }
28
+ };
29
+ signal?.addEventListener("abort", finish, { once: true });
30
+ Promise.allSettled(animations.map((animation) => animation.finished)).then(finish);
31
+ });
32
+ });
33
+ }
34
+ //#endregion
35
+ export { waitForAnimationsToFinish };
@@ -0,0 +1,7 @@
1
+ import { type InjectionKey } from 'vue';
2
+ export declare function createContext<T>(name: string): {
3
+ key: InjectionKey<T>;
4
+ provideContext: (value: T) => T;
5
+ useContext: () => T;
6
+ useOptionalContext: () => T | null;
7
+ };
@@ -0,0 +1,25 @@
1
+ import { inject, provide } from "vue";
2
+ //#region src/shared/context.ts
3
+ function createContext(name) {
4
+ const key = Symbol(name);
5
+ function provideContext(value) {
6
+ provide(key, value);
7
+ return value;
8
+ }
9
+ function useContext() {
10
+ const context = inject(key, null);
11
+ if (context === null) throw new Error(`${name} context is missing. It must be used within its Root component.`);
12
+ return context;
13
+ }
14
+ function useOptionalContext() {
15
+ return inject(key, null);
16
+ }
17
+ return {
18
+ key,
19
+ provideContext,
20
+ useContext,
21
+ useOptionalContext
22
+ };
23
+ }
24
+ //#endregion
25
+ export { createContext };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Per-key overrides for how state becomes attributes. Return `null` to omit.
3
+ *
4
+ * @example
5
+ * { checked: (on) => (on ? { 'data-checked': '' } : { 'data-unchecked': '' }) }
6
+ */
7
+ export type DataAttrsMapping<State> = {
8
+ [K in keyof State]?: (value: State[K]) => Record<string, string | undefined> | null;
9
+ };
10
+ /** Turns a state object into the `data-*` attributes used as styling hooks. */
11
+ export declare function dataAttrs<State extends Record<string, any>>(state: State, mapping?: DataAttrsMapping<State>): Record<string, string>;
@@ -0,0 +1,14 @@
1
+ //#region src/shared/data-attrs.ts
2
+ /** Turns a state object into the `data-*` attributes used as styling hooks. */
3
+ function dataAttrs(state, mapping = {}) {
4
+ const attrs = Object.keys(state).flatMap((key) => {
5
+ const value = state[key];
6
+ const custom = Object.hasOwn(mapping, key) ? mapping[key] : void 0;
7
+ if (custom) return Object.entries(custom(value) ?? {});
8
+ if (!value) return [];
9
+ return [[`data-${key.toLowerCase()}`, value === true ? "" : String(value)]];
10
+ });
11
+ return Object.fromEntries(attrs.filter((attr) => attr[1] !== void 0));
12
+ }
13
+ //#endregion
14
+ export { dataAttrs };
@@ -0,0 +1,14 @@
1
+ export type DismissReason = 'escape-key' | 'outside-press' | 'focus-out';
2
+ export interface DismissLayer {
3
+ /** Elements that count as "inside" this layer. */
4
+ elements: () => (HTMLElement | null)[];
5
+ dismiss: (reason: DismissReason) => void;
6
+ escapeKey: () => boolean;
7
+ outsidePress: () => boolean;
8
+ /** Whether this layer covers everything beneath it. */
9
+ modal: () => boolean;
10
+ }
11
+ export declare function pushDismissLayer(layer: DismissLayer): () => void;
12
+ /** Whether an event along `path` landed inside an open layer, its portaled popup included. */
13
+ export declare function isInsideDismissLayer(path: EventTarget[]): boolean;
14
+ export declare function isTopLayer(layer: DismissLayer): boolean;
@@ -0,0 +1,52 @@
1
+ //#region src/shared/dismiss-stack.ts
2
+ /** Open dismissable layers, outermost first. */
3
+ var stack = [];
4
+ var listening = false;
5
+ function contains(layer, target) {
6
+ return layer.elements().some((el) => el?.contains(target));
7
+ }
8
+ function onKeydown(event) {
9
+ if (event.key !== "Escape" || stack.length === 0) return;
10
+ const top = stack[stack.length - 1];
11
+ if (!top.escapeKey()) return;
12
+ event.stopPropagation();
13
+ top.dismiss("escape-key");
14
+ }
15
+ function onPointerDown(event) {
16
+ const target = event.target;
17
+ if (!target || !target.isConnected) return;
18
+ for (let i = stack.length - 1; i >= 0; i -= 1) {
19
+ const layer = stack[i];
20
+ if (contains(layer, target)) break;
21
+ if (!layer.outsidePress()) break;
22
+ layer.dismiss("outside-press");
23
+ if (layer.modal()) break;
24
+ }
25
+ }
26
+ function sync() {
27
+ const shouldListen = stack.length > 0;
28
+ if (shouldListen === listening) return;
29
+ listening = shouldListen;
30
+ if (shouldListen) {
31
+ document.addEventListener("keydown", onKeydown, true);
32
+ document.addEventListener("pointerdown", onPointerDown, true);
33
+ } else {
34
+ document.removeEventListener("keydown", onKeydown, true);
35
+ document.removeEventListener("pointerdown", onPointerDown, true);
36
+ }
37
+ }
38
+ function pushDismissLayer(layer) {
39
+ stack.push(layer);
40
+ sync();
41
+ return () => {
42
+ const index = stack.indexOf(layer);
43
+ if (index !== -1) stack.splice(index, 1);
44
+ sync();
45
+ };
46
+ }
47
+ /** Whether an event along `path` landed inside an open layer, its portaled popup included. */
48
+ function isInsideDismissLayer(path) {
49
+ return stack.some((layer) => layer.elements().some((el) => !!el && path.includes(el)));
50
+ }
51
+ //#endregion
52
+ export { isInsideDismissLayer, pushDismissLayer };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Forwards a click from a custom control to its hidden native input, or turns a
3
+ * key press into the click it stands for, preserving the modifier keys so that
4
+ * behaviors keyed off them (for example a middle/ctrl-click on an enclosing
5
+ * link) stay consistent.
6
+ */
7
+ export declare function dispatchClickWithModifiers(target: HTMLElement, source: MouseEvent | KeyboardEvent, options?: {
8
+ bubbles?: boolean;
9
+ }): void;
@@ -0,0 +1,22 @@
1
+ //#region src/shared/dispatch-click-with-modifiers.ts
2
+ /**
3
+ * Forwards a click from a custom control to its hidden native input, or turns a
4
+ * key press into the click it stands for, preserving the modifier keys so that
5
+ * behaviors keyed off them (for example a middle/ctrl-click on an enclosing
6
+ * link) stay consistent.
7
+ */
8
+ function dispatchClickWithModifiers(target, source, options = {}) {
9
+ const clickEvent = new MouseEvent("click", {
10
+ bubbles: options.bubbles ?? false,
11
+ cancelable: true,
12
+ composed: true,
13
+ altKey: source.altKey,
14
+ ctrlKey: source.ctrlKey,
15
+ metaKey: source.metaKey,
16
+ shiftKey: source.shiftKey,
17
+ button: "button" in source ? source.button : 0
18
+ });
19
+ target.dispatchEvent(clickEvent);
20
+ }
21
+ //#endregion
22
+ export { dispatchClickWithModifiers };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The element a template ref points at. A ref on a part rendered `as="child"`
3
+ * around a component whose root is a fragment (a popover, with its trigger and
4
+ * a portal) is the fragment's opening marker, a text node: the element is the
5
+ * first one after it.
6
+ */
7
+ export declare function elementOf(ref: unknown): HTMLElement | null;
@@ -0,0 +1,14 @@
1
+ //#region src/shared/element-of.ts
2
+ /**
3
+ * The element a template ref points at. A ref on a part rendered `as="child"`
4
+ * around a component whose root is a fragment (a popover, with its trigger and
5
+ * a portal) is the fragment's opening marker, a text node: the element is the
6
+ * first one after it.
7
+ */
8
+ function elementOf(ref) {
9
+ let node = ref && typeof ref === "object" && "$el" in ref ? ref.$el : ref;
10
+ while (node && !(node instanceof Element)) node = node.nextSibling;
11
+ return node ?? null;
12
+ }
13
+ //#endregion
14
+ export { elementOf };
@@ -0,0 +1,6 @@
1
+ /** Elements inside `container` that can currently receive keyboard focus, in tab order. */
2
+ export declare function getTabbableElements(container: HTMLElement): HTMLElement[];
3
+ /** Focus never scrolls the page here. */
4
+ export declare function focusFirst(container: HTMLElement): void;
5
+ /** Scrolls `container` just enough to reveal `item`, and nothing else. */
6
+ export declare function scrollIntoViewWithin(item: HTMLElement, container: HTMLElement | null): void;
@@ -0,0 +1,35 @@
1
+ //#region src/shared/focus.ts
2
+ var FOCUSABLE_SELECTOR = [
3
+ "a[href]",
4
+ "button:not([disabled])",
5
+ "input:not([disabled]):not([type=\"hidden\"])",
6
+ "select:not([disabled])",
7
+ "textarea:not([disabled])",
8
+ "[tabindex]:not([tabindex=\"-1\"])",
9
+ "[contenteditable=\"true\"]"
10
+ ].join(",");
11
+ /** Elements inside `container` that can currently receive keyboard focus, in tab order. */
12
+ function getTabbableElements(container) {
13
+ return Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((el) => el.offsetParent !== null && !el.hasAttribute("hidden") && el.getAttribute("aria-hidden") !== "true");
14
+ }
15
+ /** Focus never scrolls the page here. */
16
+ function focusFirst(container) {
17
+ const tabbable = getTabbableElements(container);
18
+ const first = tabbable.find((el) => el.hasAttribute("autofocus")) ?? tabbable[0];
19
+ if (first) {
20
+ first.focus({ preventScroll: true });
21
+ return;
22
+ }
23
+ if (container.getAttribute("tabindex") === null) container.setAttribute("tabindex", "-1");
24
+ container.focus({ preventScroll: true });
25
+ }
26
+ /** Scrolls `container` just enough to reveal `item`, and nothing else. */
27
+ function scrollIntoViewWithin(item, container) {
28
+ if (!container || container.scrollHeight <= container.clientHeight) return;
29
+ const itemBox = item.getBoundingClientRect();
30
+ const containerBox = container.getBoundingClientRect();
31
+ if (itemBox.top < containerBox.top) container.scrollTop -= containerBox.top - itemBox.top;
32
+ else if (itemBox.bottom > containerBox.bottom) container.scrollTop += itemBox.bottom - containerBox.bottom;
33
+ }
34
+ //#endregion
35
+ export { focusFirst, getTabbableElements, scrollIntoViewWithin };
@@ -0,0 +1,38 @@
1
+ import { type InlineSvg } from '@vunset/utils';
2
+ export type InlineIcons = Record<string, () => Promise<string>>;
3
+ export interface ConfigureIconsOptions {
4
+ /** Where the sprite is served from. @default '/sprite.svg' */
5
+ sprite?: string;
6
+ /** The folder, already globbed. See {@link InlineIcons}. */
7
+ inline?: InlineIcons;
8
+ }
9
+ /**
10
+ * Tells `Icon` where the icons are. Call it once, wherever the app starts.
11
+ *
12
+ * ```ts
13
+ * configureIcons({
14
+ * sprite: '/sprite.svg',
15
+ * inline: import.meta.glob('./assets/icons/*.svg', { query: '?raw', import: 'default' }),
16
+ * });
17
+ * ```
18
+ */
19
+ export declare function configureIcons(options: ConfigureIconsOptions): void;
20
+ export declare function iconSprite(): string;
21
+ /**
22
+ * Icons a library ships, under the app's: a name the app's `inline` folder has
23
+ * wins. Markup, not loaders, so they draw in the render that asks for them.
24
+ *
25
+ * ```ts
26
+ * registerDefaultIcons({ close: '<svg viewBox="0 0 16 16">…</svg>' });
27
+ * ```
28
+ */
29
+ export declare function registerDefaultIcons(icons: Record<string, string>): void;
30
+ /** A default icon, parsed; `undefined` when the defaults have no such name. */
31
+ export declare function defaultIcon(name: string): InlineSvg | null | undefined;
32
+ /** Whether the app's inline icons or the defaults have `name`. A sprite isn't asked: it can't say. */
33
+ export declare function hasIcon(name: string): boolean;
34
+ export declare function findInlineIcon(name: string): (() => Promise<string>) | undefined;
35
+ /** The parsed file, shared by every icon of that name. `undefined` when there is no such file. */
36
+ export declare function loadInlineIcon(name: string): Promise<InlineSvg | null> | undefined;
37
+ /** The parsed file, when an earlier icon has already loaded it. */
38
+ export declare function loadedInlineIcon(name: string): InlineSvg | null | undefined;
@@ -0,0 +1,86 @@
1
+ import { parseInlineSvg } from "@vunset/utils";
2
+ //#region src/shared/icons.ts
3
+ var sprite = "/sprite.svg";
4
+ var inlineIcons = {};
5
+ var found = /* @__PURE__ */ new Map();
6
+ var parsed = /* @__PURE__ */ new Map();
7
+ var loaded = /* @__PURE__ */ new Map();
8
+ var defaults = /* @__PURE__ */ new Map();
9
+ var defaultsParsed = /* @__PURE__ */ new Map();
10
+ /**
11
+ * Tells `Icon` where the icons are. Call it once, wherever the app starts.
12
+ *
13
+ * ```ts
14
+ * configureIcons({
15
+ * sprite: '/sprite.svg',
16
+ * inline: import.meta.glob('./assets/icons/*.svg', { query: '?raw', import: 'default' }),
17
+ * });
18
+ * ```
19
+ */
20
+ function configureIcons(options) {
21
+ if (options.sprite !== void 0) sprite = options.sprite;
22
+ if (options.inline !== void 0) {
23
+ inlineIcons = options.inline;
24
+ found.clear();
25
+ parsed.clear();
26
+ loaded.clear();
27
+ }
28
+ }
29
+ function iconSprite() {
30
+ return sprite;
31
+ }
32
+ /**
33
+ * Icons a library ships, under the app's: a name the app's `inline` folder has
34
+ * wins. Markup, not loaders, so they draw in the render that asks for them.
35
+ *
36
+ * ```ts
37
+ * registerDefaultIcons({ close: '<svg viewBox="0 0 16 16">…</svg>' });
38
+ * ```
39
+ */
40
+ function registerDefaultIcons(icons) {
41
+ for (const [name, markup] of Object.entries(icons)) {
42
+ defaults.set(name, markup);
43
+ defaultsParsed.delete(name);
44
+ }
45
+ }
46
+ /** A default icon, parsed; `undefined` when the defaults have no such name. */
47
+ function defaultIcon(name) {
48
+ const markup = defaults.get(name);
49
+ if (markup === void 0) return void 0;
50
+ if (!defaultsParsed.has(name)) defaultsParsed.set(name, parseInlineSvg(markup));
51
+ return defaultsParsed.get(name);
52
+ }
53
+ /** Whether the app's inline icons or the defaults have `name`. A sprite isn't asked: it can't say. */
54
+ function hasIcon(name) {
55
+ return findInlineIcon(name) !== void 0 || defaults.has(name);
56
+ }
57
+ function findInlineIcon(name) {
58
+ if (!found.has(name)) {
59
+ const target = `${name}.svg`;
60
+ const entry = Object.entries(inlineIcons).find(([path]) => path === target || path.endsWith(`/${target}`));
61
+ found.set(name, entry?.[1]);
62
+ }
63
+ return found.get(name);
64
+ }
65
+ /** The parsed file, shared by every icon of that name. `undefined` when there is no such file. */
66
+ function loadInlineIcon(name) {
67
+ const load = findInlineIcon(name);
68
+ if (!load) return void 0;
69
+ let entry = parsed.get(name);
70
+ if (!entry) {
71
+ entry = load().then((markup) => {
72
+ const svg = parseInlineSvg(markup);
73
+ loaded.set(name, svg);
74
+ return svg;
75
+ });
76
+ entry.catch(() => parsed.delete(name));
77
+ parsed.set(name, entry);
78
+ }
79
+ return entry;
80
+ }
81
+ /** The parsed file, when an earlier icon has already loaded it. */
82
+ function loadedInlineIcon(name) {
83
+ return loaded.get(name);
84
+ }
85
+ //#endregion
86
+ export { configureIcons, defaultIcon, findInlineIcon, hasIcon, iconSprite, loadInlineIcon, loadedInlineIcon, registerDefaultIcons };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * What may be typed into a control.
3
+ *
4
+ * - A **string** is a regular expression source, anchored for you, so
5
+ * `'[0-9]*'` reads like the `pattern` attribute but applies to every
6
+ * intermediate value rather than the finished one.
7
+ * - A **RegExp** is tested against the whole prospective value.
8
+ * - A **function** receives the prospective value and the current one.
9
+ */
10
+ export type FieldFilter = string | RegExp | ((next: string, previous: string) => boolean);
11
+ /**
12
+ * Turns a filter into a predicate over the prospective value.
13
+ *
14
+ * Returns `null` for a source that will not compile, so a typo in a filter
15
+ * leaves the control usable instead of rejecting every keystroke.
16
+ */
17
+ export declare function toFilterPredicate(filter: FieldFilter): ((next: string, previous: string) => boolean) | null;
18
+ /** The text an insertion is about to add, or `null` when it cannot be read. */
19
+ export declare function insertedText(event: InputEvent): string | null;
20
+ /**
21
+ * The value the control would hold if the insertion went ahead.
22
+ *
23
+ * Returns `null` when the element exposes no selection — `number`, `email` and
24
+ * `date` inputs among others — in which case only the inserted text itself can
25
+ * be judged.
26
+ */
27
+ export declare function prospectiveValue(element: HTMLInputElement, inserted: string): string | null;
28
+ /** Digits, an optional leading sign and at most one decimal point. */
29
+ export declare const NUMERIC: RegExp;
30
+ /** The same without the sign, for a control whose `min` rules negatives out. */
31
+ export declare const NON_NEGATIVE_NUMERIC: RegExp;
32
+ /**
33
+ * Whether a typed number breaks `min`, `max` or `step`, as a native number
34
+ * input would judge it. A half-typed `-` or `.` is no number yet, so it passes.
35
+ */
36
+ export declare function outOfRange(value: string, limits: {
37
+ min?: number | string;
38
+ max?: number | string;
39
+ step?: number | string;
40
+ }): boolean;