vectis-ui 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/components/VAccordion/VAccordion.css +1 -1
  2. package/dist/components/VAccordion/VAccordion.d.ts +6 -5
  3. package/dist/components/VAccordion/VAccordion.js.map +1 -1
  4. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/components/VAccordion/VAccordionItem.css +1 -1
  6. package/dist/components/VAccordion/VAccordionItem.d.ts +1 -1
  7. package/dist/components/VAccordion/VAccordionItem.js.map +1 -1
  8. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  9. package/dist/components/VAlert/VAlert.css +2 -0
  10. package/dist/components/VAlert/VAlert.d.ts +73 -0
  11. package/dist/components/VAlert/VAlert.js +9 -0
  12. package/dist/components/VAlert/VAlert.js.map +1 -0
  13. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js +96 -0
  14. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  15. package/dist/components/VAvatar/VAvatar.d.ts +2 -2
  16. package/dist/components/VAvatar/VAvatarGroup.d.ts +1 -1
  17. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +8 -8
  18. package/dist/components/VBadge/VBadge.d.ts +3 -3
  19. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js +9 -9
  20. package/dist/components/VButton/VButton.d.ts +4 -4
  21. package/dist/components/VButton/VButtonGroup.css +1 -1
  22. package/dist/components/VButton/VButtonGroup.d.ts +2 -2
  23. package/dist/components/VButton/VButtonGroup.js.map +1 -1
  24. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  25. package/dist/components/VCalendar/VCalendar.css +1 -1
  26. package/dist/components/VCalendar/VCalendar.d.ts +7 -1
  27. package/dist/components/VCalendar/VCalendar.js.map +1 -1
  28. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js +20 -18
  29. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/VCalendar/VCalendarEvent.js.map +1 -1
  31. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/components/VCalendar/VCalendarMonth.css +1 -1
  33. package/dist/components/VCalendar/VCalendarMonth.d.ts +2 -2
  34. package/dist/components/VCalendar/VCalendarMonth.js.map +1 -1
  35. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -1
  36. package/dist/components/VCalendar/VCalendarTimeGrid.css +1 -1
  37. package/dist/components/VCalendar/VCalendarTimeGrid.d.ts +3 -3
  38. package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -1
  39. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/VCalendar/VCalendarYear.css +1 -1
  41. package/dist/components/VCalendar/VCalendarYear.js.map +1 -1
  42. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/components/VCalendar/gesture.d.ts +1 -16
  44. package/dist/components/VCalendar/gesture.js +1 -1
  45. package/dist/components/VCalendar/gesture.js.map +1 -1
  46. package/dist/components/VCalendar/types.d.ts +2 -0
  47. package/dist/components/VCard/VCard.css +2 -0
  48. package/dist/components/VCard/VCard.d.ts +87 -0
  49. package/dist/components/VCard/VCard.js +9 -0
  50. package/dist/components/VCard/VCard.js.map +1 -0
  51. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js +103 -0
  52. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  53. package/dist/components/VCarousel/VCarousel.d.ts +1 -1
  54. package/dist/components/VCarousel/VCarousel.js.map +1 -1
  55. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js +18 -18
  56. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/components/VCheckbox/VCheckMark.css +2 -0
  58. package/dist/components/VCheckbox/VCheckMark.js +9 -0
  59. package/dist/components/VCheckbox/VCheckMark.js.map +1 -0
  60. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js +33 -0
  61. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js.map +1 -0
  62. package/dist/components/VCheckbox/VCheckbox.css +1 -1
  63. package/dist/components/VCheckbox/VCheckbox.d.ts +8 -3
  64. package/dist/components/VCheckbox/VCheckbox.js.map +1 -1
  65. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js +54 -69
  66. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/components/VChip/VChip.d.ts +6 -6
  68. package/dist/components/VChip/VChip.js.map +1 -1
  69. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js +26 -26
  70. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  71. package/dist/components/VColorInput/VColorInput.css +2 -0
  72. package/dist/components/VColorInput/VColorInput.d.ts +113 -0
  73. package/dist/components/VColorInput/VColorInput.js +9 -0
  74. package/dist/components/VColorInput/VColorInput.js.map +1 -0
  75. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js +230 -0
  76. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  77. package/dist/components/VColorPicker/VColorPicker.css +2 -0
  78. package/dist/components/VColorPicker/VColorPicker.d.ts +67 -0
  79. package/dist/components/VColorPicker/VColorPicker.js +9 -0
  80. package/dist/components/VColorPicker/VColorPicker.js.map +1 -0
  81. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js +390 -0
  82. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  83. package/dist/components/VColorPicker/color.d.ts +42 -0
  84. package/dist/components/VColorPicker/color.js +158 -0
  85. package/dist/components/VColorPicker/color.js.map +1 -0
  86. package/dist/components/VCombobox/VCombobox.css +1 -1
  87. package/dist/components/VCombobox/VCombobox.d.ts +46 -60
  88. package/dist/components/VCombobox/VCombobox.js.map +1 -1
  89. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +271 -372
  90. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/components/VCommandPalette/VCommandPalette.css +2 -0
  92. package/dist/components/VCommandPalette/VCommandPalette.d.ts +163 -0
  93. package/dist/components/VCommandPalette/VCommandPalette.js +9 -0
  94. package/dist/components/VCommandPalette/VCommandPalette.js.map +1 -0
  95. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js +321 -0
  96. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js.map +1 -0
  97. package/dist/components/VCommandPalette/VCommandPaletteItem.css +2 -0
  98. package/dist/components/VCommandPalette/VCommandPaletteItem.d.ts +38 -0
  99. package/dist/components/VCommandPalette/VCommandPaletteItem.js +9 -0
  100. package/dist/components/VCommandPalette/VCommandPaletteItem.js.map +1 -0
  101. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js +69 -0
  102. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  103. package/dist/components/VContextMenu/VContextMenu.css +2 -0
  104. package/dist/components/VContextMenu/VContextMenu.d.ts +66 -0
  105. package/dist/components/VContextMenu/VContextMenu.js +9 -0
  106. package/dist/components/VContextMenu/VContextMenu.js.map +1 -0
  107. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js +148 -0
  108. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  109. package/dist/components/VDataTable/VDataTable.css +1 -1
  110. package/dist/components/VDataTable/VDataTable.d.ts +41 -16
  111. package/dist/components/VDataTable/VDataTable.js.map +1 -1
  112. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +307 -194
  113. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/VDateInput/VDateInput.d.ts +27 -7
  115. package/dist/components/VDateInput/VDateInput.js.map +1 -1
  116. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js +170 -162
  117. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  118. package/dist/components/VDatePicker/VDatePicker.d.ts +3 -3
  119. package/dist/components/VDatePicker/VDatePicker.js.map +1 -1
  120. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js +228 -227
  121. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  122. package/dist/components/VDatePicker/keyboard.d.ts +7 -7
  123. package/dist/components/VDatePicker/keyboard.js +8 -6
  124. package/dist/components/VDatePicker/keyboard.js.map +1 -1
  125. package/dist/components/VDatePicker/names.js +16 -20
  126. package/dist/components/VDatePicker/names.js.map +1 -1
  127. package/dist/components/VDialog/VDialog.d.ts +2 -4
  128. package/dist/components/VDialog/VDialog.js.map +1 -1
  129. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js +46 -77
  130. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  131. package/dist/components/VDrawer/VDrawer.css +2 -0
  132. package/dist/components/VDrawer/VDrawer.d.ts +102 -0
  133. package/dist/components/VDrawer/VDrawer.js +9 -0
  134. package/dist/components/VDrawer/VDrawer.js.map +1 -0
  135. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js +128 -0
  136. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  137. package/dist/components/VEmptyState/VEmptyState.css +2 -0
  138. package/dist/components/VEmptyState/VEmptyState.d.ts +43 -0
  139. package/dist/components/VEmptyState/VEmptyState.js +9 -0
  140. package/dist/components/VEmptyState/VEmptyState.js.map +1 -0
  141. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js +48 -0
  142. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  143. package/dist/components/VField/VField.css +2 -0
  144. package/dist/components/VField/VField.d.ts +84 -0
  145. package/dist/components/VField/VField.js +9 -0
  146. package/dist/components/VField/VField.js.map +1 -0
  147. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js +99 -0
  148. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  149. package/dist/components/VField/VFieldAnnouncer.d.ts +7 -0
  150. package/dist/components/VField/VFieldAnnouncer.js +7 -0
  151. package/dist/components/VField/VFieldAnnouncer.js.map +1 -0
  152. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js +19 -0
  153. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  154. package/dist/components/VField/VFieldMessage.d.ts +11 -0
  155. package/dist/components/VField/VFieldMessage.js +7 -0
  156. package/dist/components/VField/VFieldMessage.js.map +1 -0
  157. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js +32 -0
  158. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js.map +1 -0
  159. package/dist/components/VFieldset/VFieldset.css +2 -0
  160. package/dist/components/VFieldset/VFieldset.d.ts +52 -0
  161. package/dist/components/VFieldset/VFieldset.js +9 -0
  162. package/dist/components/VFieldset/VFieldset.js.map +1 -0
  163. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js +63 -0
  164. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -0
  165. package/dist/components/VFileInput/VFileInput.css +1 -1
  166. package/dist/components/VFileInput/VFileInput.d.ts +31 -7
  167. package/dist/components/VFileInput/VFileInput.js.map +1 -1
  168. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js +168 -161
  169. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/components/VFilePicker/VFilePicker.d.ts +4 -4
  171. package/dist/components/VHotkeys/VHotkeys.css +1 -1
  172. package/dist/components/VHotkeys/VHotkeys.js.map +1 -1
  173. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js +27 -30
  174. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
  175. package/dist/components/VHotkeys/platform.d.ts +2 -0
  176. package/dist/components/VHotkeys/platform.js +24 -5
  177. package/dist/components/VHotkeys/platform.js.map +1 -1
  178. package/dist/components/VHoverCard/VHoverCard.css +2 -0
  179. package/dist/components/VHoverCard/VHoverCard.d.ts +62 -0
  180. package/dist/components/VHoverCard/VHoverCard.js +9 -0
  181. package/dist/components/VHoverCard/VHoverCard.js.map +1 -0
  182. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js +97 -0
  183. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  184. package/dist/components/VIcon/icons/add.d.ts +5 -0
  185. package/dist/components/VIcon/icons/add.js +9 -0
  186. package/dist/components/VIcon/icons/add.js.map +1 -0
  187. package/dist/components/VIcon/icons/colorize.d.ts +5 -0
  188. package/dist/components/VIcon/icons/colorize.js +9 -0
  189. package/dist/components/VIcon/icons/colorize.js.map +1 -0
  190. package/dist/components/VIcon/icons/inbox.d.ts +5 -0
  191. package/dist/components/VIcon/icons/inbox.js +9 -0
  192. package/dist/components/VIcon/icons/inbox.js.map +1 -0
  193. package/dist/components/VIcon/icons/index.d.ts +42 -2
  194. package/dist/components/VIcon/icons/index.js +88 -72
  195. package/dist/components/VIcon/icons/index.js.map +1 -1
  196. package/dist/components/VIcon/icons/names.d.ts +2 -2
  197. package/dist/components/VIcon/icons/names.js +1 -1
  198. package/dist/components/VIcon/icons/names.js.map +1 -1
  199. package/dist/components/VIcon/icons/open_in_new.d.ts +5 -0
  200. package/dist/components/VIcon/icons/open_in_new.js +9 -0
  201. package/dist/components/VIcon/icons/open_in_new.js.map +1 -0
  202. package/dist/components/VIcon/icons/priority_high.d.ts +5 -0
  203. package/dist/components/VIcon/icons/priority_high.js +9 -0
  204. package/dist/components/VIcon/icons/priority_high.js.map +1 -0
  205. package/dist/components/VIcon/icons/remove.d.ts +5 -0
  206. package/dist/components/VIcon/icons/remove.js +9 -0
  207. package/dist/components/VIcon/icons/remove.js.map +1 -0
  208. package/dist/components/VIcon/icons/search_off.d.ts +5 -0
  209. package/dist/components/VIcon/icons/search_off.js +9 -0
  210. package/dist/components/VIcon/icons/search_off.js.map +1 -0
  211. package/dist/components/VIcon/icons/star.d.ts +5 -0
  212. package/dist/components/VIcon/icons/star.js +9 -0
  213. package/dist/components/VIcon/icons/star.js.map +1 -0
  214. package/dist/components/VIconButton/VIconButton.d.ts +4 -4
  215. package/dist/components/VInput/VInput.css +1 -1
  216. package/dist/components/VInput/VInput.d.ts +51 -2
  217. package/dist/components/VInput/VInput.js.map +1 -1
  218. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js +129 -106
  219. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/components/VInput/VInputGroup.css +1 -1
  221. package/dist/components/VInput/VInputGroup.d.ts +20 -0
  222. package/dist/components/VInput/VInputGroup.js.map +1 -1
  223. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js +50 -51
  224. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/components/VInputOTP/VInputOTP.css +1 -1
  226. package/dist/components/VInputOTP/VInputOTP.d.ts +27 -4
  227. package/dist/components/VInputOTP/VInputOTP.js.map +1 -1
  228. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +131 -113
  229. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/VLink/VLink.css +2 -0
  231. package/dist/components/VLink/VLink.d.ts +53 -0
  232. package/dist/components/VLink/VLink.js +9 -0
  233. package/dist/components/VLink/VLink.js.map +1 -0
  234. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js +58 -0
  235. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  236. package/dist/components/VListbox/VListboxChevron.css +2 -0
  237. package/dist/components/VListbox/VListboxChevron.d.ts +12 -0
  238. package/dist/components/VListbox/VListboxChevron.js +9 -0
  239. package/dist/components/VListbox/VListboxChevron.js.map +1 -0
  240. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js +25 -0
  241. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js.map +1 -0
  242. package/dist/components/VListbox/VListboxGroup.css +2 -0
  243. package/dist/components/VListbox/VListboxGroup.d.ts +27 -0
  244. package/dist/components/VListbox/VListboxGroup.js +9 -0
  245. package/dist/components/VListbox/VListboxGroup.js.map +1 -0
  246. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js +21 -0
  247. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  248. package/dist/components/VListbox/VListboxOption.css +2 -0
  249. package/dist/components/{VCombobox/VComboboxOption.d.ts → VListbox/VListboxOption.d.ts} +4 -4
  250. package/dist/components/VListbox/VListboxOption.js +9 -0
  251. package/dist/components/VListbox/VListboxOption.js.map +1 -0
  252. package/dist/components/{VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js → VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js} +6 -6
  253. package/dist/components/VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -0
  254. package/dist/components/VListbox/VListboxPanel.css +2 -0
  255. package/dist/components/VListbox/VListboxPanel.d.ts +59 -0
  256. package/dist/components/VListbox/VListboxPanel.js +9 -0
  257. package/dist/components/VListbox/VListboxPanel.js.map +1 -0
  258. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js +123 -0
  259. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  260. package/dist/components/VListbox/VListboxSeparator.css +2 -0
  261. package/dist/components/VListbox/VListboxSeparator.d.ts +3 -0
  262. package/dist/components/VListbox/VListboxSeparator.js +9 -0
  263. package/dist/components/VListbox/VListboxSeparator.js.map +1 -0
  264. package/dist/components/{VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js → VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js} +4 -4
  265. package/dist/components/VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  266. package/dist/components/VListbox/VListboxValues.css +2 -0
  267. package/dist/components/VListbox/VListboxValues.d.ts +52 -0
  268. package/dist/components/VListbox/VListboxValues.js +9 -0
  269. package/dist/components/VListbox/VListboxValues.js.map +1 -0
  270. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js +103 -0
  271. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js.map +1 -0
  272. package/dist/components/VMenu/VMenu.d.ts +1 -1
  273. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js +9 -9
  274. package/dist/components/VMenu/VMenuItem.d.ts +1 -1
  275. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js +16 -16
  276. package/dist/components/VMenu/VMenuPanel.d.ts +2 -2
  277. package/dist/components/VMenu/VMenuPanel.js.map +1 -1
  278. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  279. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/components/VMeter/VMeter.css +2 -0
  281. package/dist/components/VMeter/VMeter.d.ts +77 -0
  282. package/dist/components/VMeter/VMeter.js +9 -0
  283. package/dist/components/VMeter/VMeter.js.map +1 -0
  284. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js +113 -0
  285. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js.map +1 -0
  286. package/dist/components/VNumberInput/VNumberInput.css +2 -0
  287. package/dist/components/VNumberInput/VNumberInput.d.ts +114 -0
  288. package/dist/components/VNumberInput/VNumberInput.js +9 -0
  289. package/dist/components/VNumberInput/VNumberInput.js.map +1 -0
  290. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js +251 -0
  291. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  292. package/dist/components/VNumberInput/number.d.ts +30 -0
  293. package/dist/components/VNumberInput/number.js +38 -0
  294. package/dist/components/VNumberInput/number.js.map +1 -0
  295. package/dist/components/VPagination/VPagination.d.ts +1 -1
  296. package/dist/components/VPagination/VPagination.js.map +1 -1
  297. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js +77 -77
  298. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  299. package/dist/components/VProgressCircular/VProgressCircular.d.ts +2 -2
  300. package/dist/components/VProgressLinear/VProgressLinear.css +1 -1
  301. package/dist/components/VProgressLinear/VProgressLinear.d.ts +10 -7
  302. package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -1
  303. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js +52 -34
  304. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  305. package/dist/components/VRadio/VRadio.d.ts +8 -3
  306. package/dist/components/VRadio/VRadio.js.map +1 -1
  307. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js +52 -46
  308. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  309. package/dist/components/VRating/VRating.css +2 -0
  310. package/dist/components/VRating/VRating.d.ts +92 -0
  311. package/dist/components/VRating/VRating.js +9 -0
  312. package/dist/components/VRating/VRating.js.map +1 -0
  313. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js +158 -0
  314. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js.map +1 -0
  315. package/dist/components/VResizable/VResizable.css +2 -0
  316. package/dist/components/VResizable/VResizable.d.ts +50 -0
  317. package/dist/components/VResizable/VResizable.js +9 -0
  318. package/dist/components/VResizable/VResizable.js.map +1 -0
  319. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js +225 -0
  320. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  321. package/dist/components/VResizable/VResizablePanel.css +2 -0
  322. package/dist/components/VResizable/VResizablePanel.d.ts +60 -0
  323. package/dist/components/VResizable/VResizablePanel.js +9 -0
  324. package/dist/components/VResizable/VResizablePanel.js.map +1 -0
  325. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js +83 -0
  326. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  327. package/dist/components/VResizable/context.d.ts +24 -0
  328. package/dist/components/VResizable/context.js +6 -0
  329. package/dist/components/VResizable/context.js.map +1 -0
  330. package/dist/components/VResizable/layout.d.ts +28 -0
  331. package/dist/components/VResizable/layout.js +41 -0
  332. package/dist/components/VResizable/layout.js.map +1 -0
  333. package/dist/components/VSelect/VSelect.css +2 -0
  334. package/dist/components/VSelect/VSelect.d.ts +193 -0
  335. package/dist/components/VSelect/VSelect.js +9 -0
  336. package/dist/components/VSelect/VSelect.js.map +1 -0
  337. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js +418 -0
  338. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  339. package/dist/components/VSeparator/VSeparator.js.map +1 -1
  340. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  341. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js +8 -8
  342. package/dist/components/VSideNavigation/VSideNavigationItem.d.ts +2 -2
  343. package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -1
  344. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +3 -3
  345. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +3 -3
  347. package/dist/components/VSlider/VSlider.css +1 -1
  348. package/dist/components/VSlider/VSlider.d.ts +34 -8
  349. package/dist/components/VSlider/VSlider.js.map +1 -1
  350. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js +236 -215
  351. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  352. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js +4 -4
  353. package/dist/components/VSnackbar/state.js.map +1 -1
  354. package/dist/components/VSplitButton/VSplitButton.css +2 -0
  355. package/dist/components/VSplitButton/VSplitButton.d.ts +114 -0
  356. package/dist/components/VSplitButton/VSplitButton.js +9 -0
  357. package/dist/components/VSplitButton/VSplitButton.js.map +1 -0
  358. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js +148 -0
  359. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  360. package/dist/components/VStepper/VStepper.css +2 -0
  361. package/dist/components/VStepper/VStepper.d.ts +73 -0
  362. package/dist/components/VStepper/VStepper.js +9 -0
  363. package/dist/components/VStepper/VStepper.js.map +1 -0
  364. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js +96 -0
  365. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
  366. package/dist/components/VSwitch/VSwitch.d.ts +8 -3
  367. package/dist/components/VSwitch/VSwitch.js.map +1 -1
  368. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js +53 -47
  369. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  370. package/dist/components/VTabs/VTab.css +1 -1
  371. package/dist/components/VTabs/VTab.d.ts +1 -1
  372. package/dist/components/VTabs/VTab.js.map +1 -1
  373. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  374. package/dist/components/VTabs/VTabs.css +1 -1
  375. package/dist/components/VTabs/VTabs.d.ts +13 -5
  376. package/dist/components/VTabs/VTabs.js.map +1 -1
  377. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js +20 -20
  378. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  379. package/dist/components/VTextarea/VTextarea.css +1 -1
  380. package/dist/components/VTextarea/VTextarea.d.ts +22 -2
  381. package/dist/components/VTextarea/VTextarea.js.map +1 -1
  382. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js +108 -100
  383. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  384. package/dist/components/VTimeInput/VTimeInput.d.ts +27 -7
  385. package/dist/components/VTimeInput/VTimeInput.js.map +1 -1
  386. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js +187 -171
  387. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  388. package/dist/components/VTimePicker/VTimePicker.d.ts +2 -2
  389. package/dist/components/VTimePicker/VTimePicker.js.map +1 -1
  390. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js +16 -16
  391. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  392. package/dist/components/VTimeline/VTimeline.css +2 -0
  393. package/dist/components/VTimeline/VTimeline.d.ts +59 -0
  394. package/dist/components/VTimeline/VTimeline.js +9 -0
  395. package/dist/components/VTimeline/VTimeline.js.map +1 -0
  396. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js +53 -0
  397. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  398. package/dist/components/VTimeline/VTimelineItem.css +2 -0
  399. package/dist/components/VTimeline/VTimelineItem.d.ts +48 -0
  400. package/dist/components/VTimeline/VTimelineItem.js +9 -0
  401. package/dist/components/VTimeline/VTimelineItem.js.map +1 -0
  402. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js +70 -0
  403. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  404. package/dist/components/VTimeline/context.d.ts +11 -0
  405. package/dist/components/VTimeline/context.js +6 -0
  406. package/dist/components/VTimeline/context.js.map +1 -0
  407. package/dist/components/VTimeline/datetime.d.ts +8 -0
  408. package/dist/components/VTimeline/datetime.js +36 -0
  409. package/dist/components/VTimeline/datetime.js.map +1 -0
  410. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js +8 -8
  411. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js +12 -12
  412. package/dist/components/VToggle/VToggle.d.ts +4 -4
  413. package/dist/components/VToggle/VToggle.js.map +1 -1
  414. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js +1 -1
  415. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  416. package/dist/components/VToggle/VToggleItem.d.ts +1 -1
  417. package/dist/components/VTooltip/VTooltip.d.ts +8 -2
  418. package/dist/components/VTooltip/VTooltip.js.map +1 -1
  419. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js +45 -43
  420. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  421. package/dist/components/VTreeView/VTreeView.css +2 -0
  422. package/dist/components/VTreeView/VTreeView.d.ts +112 -0
  423. package/dist/components/VTreeView/VTreeView.js +9 -0
  424. package/dist/components/VTreeView/VTreeView.js.map +1 -0
  425. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js +317 -0
  426. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
  427. package/dist/components/VTypography/VTypography.d.ts +1 -1
  428. package/dist/components/VVirtualList/VVirtualList.css +2 -0
  429. package/dist/components/VVirtualList/VVirtualList.d.ts +78 -0
  430. package/dist/components/VVirtualList/VVirtualList.js +9 -0
  431. package/dist/components/VVirtualList/VVirtualList.js.map +1 -0
  432. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js +114 -0
  433. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  434. package/dist/composables/useChoice.d.ts +28 -0
  435. package/dist/composables/useChoice.js +28 -0
  436. package/dist/composables/useChoice.js.map +1 -0
  437. package/dist/composables/useDebouncedSearch.d.ts +17 -0
  438. package/dist/composables/useDebouncedSearch.js +18 -0
  439. package/dist/composables/useDebouncedSearch.js.map +1 -0
  440. package/dist/composables/useEscapeDismiss.d.ts +8 -0
  441. package/dist/composables/useEscapeDismiss.js +16 -0
  442. package/dist/composables/useEscapeDismiss.js.map +1 -0
  443. package/dist/composables/useFieldIds.d.ts +2 -1
  444. package/dist/composables/useFieldIds.js +7 -6
  445. package/dist/composables/useFieldIds.js.map +1 -1
  446. package/dist/composables/useFieldPanel.d.ts +1 -0
  447. package/dist/composables/useFieldPanel.js +52 -42
  448. package/dist/composables/useFieldPanel.js.map +1 -1
  449. package/dist/composables/useFileField.d.ts +1 -3
  450. package/dist/composables/useFileField.js +48 -50
  451. package/dist/composables/useFileField.js.map +1 -1
  452. package/dist/composables/useHotkeyListener.d.ts +17 -0
  453. package/dist/composables/useHotkeyListener.js +29 -0
  454. package/dist/composables/useHotkeyListener.js.map +1 -0
  455. package/dist/composables/useIconClickHandlers.d.ts +2 -10
  456. package/dist/composables/useIconClickHandlers.js +1 -1
  457. package/dist/composables/useIconClickHandlers.js.map +1 -1
  458. package/dist/{components/VCombobox/infiniteScroll.d.ts → composables/useInfiniteScroll.d.ts} +6 -0
  459. package/dist/{components/VCombobox/infiniteScroll.js → composables/useInfiniteScroll.js} +9 -9
  460. package/dist/composables/useInfiniteScroll.js.map +1 -0
  461. package/dist/composables/useListbox.d.ts +132 -0
  462. package/dist/composables/useListbox.js +227 -0
  463. package/dist/composables/useListbox.js.map +1 -0
  464. package/dist/composables/useModalDialog.d.ts +28 -0
  465. package/dist/composables/useModalDialog.js +60 -0
  466. package/dist/composables/useModalDialog.js.map +1 -0
  467. package/dist/composables/useRootAttrs.d.ts +2 -3
  468. package/dist/composables/useRootAttrs.js.map +1 -1
  469. package/dist/composables/useTypeahead.d.ts +13 -0
  470. package/dist/composables/useTypeahead.js +23 -0
  471. package/dist/composables/useTypeahead.js.map +1 -0
  472. package/dist/composables/useVirtualList.d.ts +46 -0
  473. package/dist/composables/useVirtualList.js +145 -0
  474. package/dist/composables/useVirtualList.js.map +1 -0
  475. package/dist/i18n/en.js +50 -0
  476. package/dist/i18n/en.js.map +1 -1
  477. package/dist/i18n/fr.js +50 -0
  478. package/dist/i18n/fr.js.map +1 -1
  479. package/dist/i18n/state.d.ts +1 -1
  480. package/dist/i18n/state.js +17 -6
  481. package/dist/i18n/state.js.map +1 -1
  482. package/dist/i18n/types.d.ts +103 -2
  483. package/dist/icons.js +45 -37
  484. package/dist/index.d.ts +49 -3
  485. package/dist/index.js +80 -56
  486. package/dist/styles.css +1 -1
  487. package/dist/tokens/index.d.ts +43 -0
  488. package/dist/tokens/semantic.d.ts +42 -0
  489. package/dist/tokens/semantic.js +43 -1
  490. package/dist/tokens/semantic.js.map +1 -1
  491. package/dist/tokens/themes/dark.d.ts +1 -0
  492. package/dist/tokens/themes/dark.js +1 -0
  493. package/dist/tokens/themes/dark.js.map +1 -1
  494. package/dist/tokens.json +215 -1
  495. package/dist/types.d.ts +57 -4
  496. package/dist/utils/arrowNav.js.map +1 -1
  497. package/dist/utils/attrs.d.ts +9 -0
  498. package/dist/utils/attrs.js +14 -0
  499. package/dist/utils/attrs.js.map +1 -0
  500. package/dist/utils/date.d.ts +1 -0
  501. package/dist/utils/date.js +5 -4
  502. package/dist/utils/date.js.map +1 -1
  503. package/package.json +1 -1
  504. package/dist/components/VCombobox/VComboboxGroup.css +0 -2
  505. package/dist/components/VCombobox/VComboboxGroup.d.ts +0 -17
  506. package/dist/components/VCombobox/VComboboxGroup.js +0 -9
  507. package/dist/components/VCombobox/VComboboxGroup.js.map +0 -1
  508. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js +0 -21
  509. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
  510. package/dist/components/VCombobox/VComboboxOption.css +0 -2
  511. package/dist/components/VCombobox/VComboboxOption.js +0 -9
  512. package/dist/components/VCombobox/VComboboxOption.js.map +0 -1
  513. package/dist/components/VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
  514. package/dist/components/VCombobox/VComboboxSeparator.css +0 -2
  515. package/dist/components/VCombobox/VComboboxSeparator.js +0 -9
  516. package/dist/components/VCombobox/VComboboxSeparator.js.map +0 -1
  517. package/dist/components/VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
  518. package/dist/components/VCombobox/infiniteScroll.js.map +0 -1
  519. /package/dist/components/{VCombobox/VComboboxSeparator.d.ts → VCheckbox/VCheckMark.d.ts} +0 -0
@@ -0,0 +1,53 @@
1
+ import { IconSource } from '../VIcon/types.js';
2
+ /**
3
+ * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of
4
+ * the parent and turns to the accent on hover.
5
+ */
6
+ export type LinkTone = 'accent' | 'neutral' | 'danger' | 'success' | 'warning' | 'inherit';
7
+ /** When the link is underlined: always, on hover and focus only, or never. */
8
+ export type LinkUnderline = 'always' | 'hover' | 'none';
9
+ interface LinkProps {
10
+ /** Where the link goes. */
11
+ href: string;
12
+ /**
13
+ * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of
14
+ * the parent, muted text for instance, and turns to the accent on hover.
15
+ */
16
+ tone?: LinkTone;
17
+ /**
18
+ * When the link is underlined. Keep `always` inside running text, where colour alone does not
19
+ * tell a link apart; `hover` and `none` suit menus and lists of links.
20
+ */
21
+ underline?: LinkUnderline;
22
+ /**
23
+ * Opens the link in a new tab, with `rel="noopener noreferrer"`, and says so: an icon, and
24
+ * words for screen readers. A `target="_blank"` passed as an attribute says so too.
25
+ */
26
+ external?: boolean;
27
+ /** The icon marking an external link: an icon name, or an explicit render. */
28
+ externalIcon?: IconSource;
29
+ /** Removes the icon of an external link. Screen readers still hear that it opens a new tab. */
30
+ hideExternalIcon?: boolean;
31
+ /** Makes the link unusable: its address is removed and it is marked `aria-disabled`. */
32
+ disabled?: boolean;
33
+ }
34
+ type __VLS_Slots = {
35
+ /** The text of the link. */
36
+ default(): unknown;
37
+ };
38
+ declare const __VLS_base: import('vue').DefineComponent<LinkProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<LinkProps> & Readonly<{}>, {
39
+ tone: LinkTone;
40
+ disabled: boolean;
41
+ underline: LinkUnderline;
42
+ external: boolean;
43
+ externalIcon: IconSource;
44
+ hideExternalIcon: boolean;
45
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
46
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
47
+ declare const _default: typeof __VLS_export;
48
+ export default _default;
49
+ type __VLS_WithSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
@@ -0,0 +1,9 @@
1
+ import './VLink.css';
2
+ import e from "./VLink.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/VLink/VLink.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
8
+
9
+ //# sourceMappingURL=VLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VLink.js","names":[],"sources":["../../../src/components/VLink/VLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y @core\n/**\n * A native link painted in a tone. It takes its size from the text around it. An external link\n * opens in a new tab and says so, with an icon and words for assistive technology.\n */\nimport { computed, useAttrs } from 'vue'\n\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport { open_in_new as openInNewIcon } from '../VIcon/icons/open_in_new'\nimport type { IconSource } from '../VIcon/types'\nimport { useInertLink } from '../../composables/useInertLink'\nimport { useMessages } from '../../i18n/state'\n\n/**\n * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of\n * the parent and turns to the accent on hover.\n */\nexport type LinkTone = 'accent' | 'neutral' | 'danger' | 'success' | 'warning' | 'inherit'\n\n/** When the link is underlined: always, on hover and focus only, or never. */\nexport type LinkUnderline = 'always' | 'hover' | 'none'\n\ninterface LinkProps {\n /** Where the link goes. */\n href: string\n /**\n * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of\n * the parent, muted text for instance, and turns to the accent on hover.\n */\n tone?: LinkTone\n /**\n * When the link is underlined. Keep `always` inside running text, where colour alone does not\n * tell a link apart; `hover` and `none` suit menus and lists of links.\n */\n underline?: LinkUnderline\n /**\n * Opens the link in a new tab, with `rel=\"noopener noreferrer\"`, and says so: an icon, and\n * words for screen readers. A `target=\"_blank\"` passed as an attribute says so too.\n */\n external?: boolean\n /** The icon marking an external link: an icon name, or an explicit render. */\n externalIcon?: IconSource\n /** Removes the icon of an external link. Screen readers still hear that it opens a new tab. */\n hideExternalIcon?: boolean\n /** Makes the link unusable: its address is removed and it is marked `aria-disabled`. */\n disabled?: boolean\n}\n\n// The attributes are bound by hand: on a disabled link, useInertLink drops the click listeners.\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<LinkProps>(), {\n tone: 'accent',\n underline: 'always',\n external: false,\n externalIcon: () => openInNewIcon,\n hideExternalIcon: false,\n disabled: false,\n})\n\ndefineSlots<{\n /** The text of the link. */\n default(): unknown\n}>()\n\nconst attrs = useAttrs()\nconst m = useMessages()\n\nconst link = useInertLink({\n href: () => props.href,\n inert: () => props.disabled,\n attrs: () => attrs,\n})\n\nconst newTab = computed(() => props.external || attrs.target === '_blank')\n</script>\n\n<template>\n <!-- `target` and `rel` come before the forwarded attributes, which may replace them. -->\n <a\n class=\"v-link v-tone\"\n :data-tone=\"tone\"\n :data-underline=\"underline\"\n :target=\"external ? '_blank' : undefined\"\n :rel=\"external ? 'noopener noreferrer' : undefined\"\n :aria-disabled=\"link.isInertLink.value ? 'true' : undefined\"\n v-bind=\"link.attrs.value\"\n :href=\"link.linkHref.value\"\n ><slot /><template v-if=\"newTab\"\n ><VIcon\n v-if=\"!hideExternalIcon\"\n class=\"v-link-external\"\n v-bind=\"iconProps(externalIcon)\"\n mirrored\n /><span class=\"v-visually-hidden\">{{ m.link.newTab }}</span></template\n ></a\n >\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The size, weight and line height are the surrounding text's. The icon follows that size too,\n * whatever icon size an ancestor sets.\n */\n .v-link {\n --vectis-icon-size: 1em;\n\n border-radius: var(--vectis-radius-xs);\n color: var(--tone-text-tinted);\n text-decoration-line: none;\n text-decoration-color: color-mix(in oklab, currentcolor 50%, transparent);\n cursor: pointer;\n transition: text-decoration-color var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-link[data-underline='always'],\n .v-link[data-underline='hover']:is(:hover, :focus-visible) {\n text-decoration-line: underline;\n }\n\n .v-link:hover {\n text-decoration-color: currentcolor;\n }\n\n /* No tone table: the link blends into its sentence, and only the hover singles it out. */\n .v-link[data-tone='inherit'] {\n color: inherit;\n }\n\n /* A disabled link keeps its subtle colour: the rule further down would lose to this one. */\n .v-link[data-tone='inherit']:hover:not([aria-disabled='true']) {\n color: var(--vectis-color-accent-text);\n }\n\n .v-link:focus-visible {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: var(--vectis-focus-ring-offset);\n }\n\n .v-link-external {\n margin-inline-start: var(--vectis-space-1);\n vertical-align: middle;\n }\n\n .v-link[aria-disabled='true'] {\n color: var(--vectis-color-text-subtle);\n text-decoration-color: currentcolor;\n cursor: not-allowed;\n }\n\n @media (forced-colors: active) {\n .v-link[aria-disabled='true'] {\n color: GrayText;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-link {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { useMessages as e } from "../../i18n/state.js";
2
+ import { iconProps as t } from "../VIcon/iconProps.js";
3
+ import n from "../VIcon/VIcon.js";
4
+ import { useInertLink as r } from "../../composables/useInertLink.js";
5
+ import { open_in_new as i } from "../VIcon/icons/open_in_new.js";
6
+ import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, defineComponent as d, mergeProps as f, openBlock as p, renderSlot as m, toDisplayString as h, unref as g, useAttrs as _ } from "vue";
7
+ //#region src/components/VLink/VLink.vue?vue&type=script&setup=true&lang.ts
8
+ var v = [
9
+ "data-tone",
10
+ "data-underline",
11
+ "target",
12
+ "rel",
13
+ "aria-disabled",
14
+ "href"
15
+ ], y = { class: "v-visually-hidden" }, b = /*@__PURE__*/ d({
16
+ inheritAttrs: !1,
17
+ __name: "VLink",
18
+ props: {
19
+ href: {},
20
+ tone: { default: "accent" },
21
+ underline: { default: "always" },
22
+ external: {
23
+ type: Boolean,
24
+ default: !1
25
+ },
26
+ externalIcon: { default: () => i },
27
+ hideExternalIcon: {
28
+ type: Boolean,
29
+ default: !1
30
+ },
31
+ disabled: {
32
+ type: Boolean,
33
+ default: !1
34
+ }
35
+ },
36
+ setup(i) {
37
+ let d = i, b = _(), x = e(), S = r({
38
+ href: () => d.href,
39
+ inert: () => d.disabled,
40
+ attrs: () => b
41
+ }), C = o(() => d.external || b.target === "_blank");
42
+ return (e, r) => (p(), l("a", f({
43
+ class: "v-link v-tone",
44
+ "data-tone": i.tone,
45
+ "data-underline": i.underline,
46
+ target: i.external ? "_blank" : void 0,
47
+ rel: i.external ? "noopener noreferrer" : void 0,
48
+ "aria-disabled": g(S).isInertLink.value ? "true" : void 0
49
+ }, g(S).attrs.value, { href: g(S).linkHref.value }), [m(e.$slots, "default"), C.value ? (p(), l(a, { key: 0 }, [i.hideExternalIcon ? c("", !0) : (p(), s(n, f({
50
+ key: 0,
51
+ class: "v-link-external"
52
+ }, g(t)(i.externalIcon), { mirrored: "" }), null, 16)), u("span", y, h(g(x).link.newTab), 1)], 64)) : c("", !0)], 16, v));
53
+ }
54
+ });
55
+ //#endregion
56
+ export { b as default };
57
+
58
+ //# sourceMappingURL=VLink.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VLink.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VLink/VLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y @core\n/**\n * A native link painted in a tone. It takes its size from the text around it. An external link\n * opens in a new tab and says so, with an icon and words for assistive technology.\n */\nimport { computed, useAttrs } from 'vue'\n\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport { open_in_new as openInNewIcon } from '../VIcon/icons/open_in_new'\nimport type { IconSource } from '../VIcon/types'\nimport { useInertLink } from '../../composables/useInertLink'\nimport { useMessages } from '../../i18n/state'\n\n/**\n * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of\n * the parent and turns to the accent on hover.\n */\nexport type LinkTone = 'accent' | 'neutral' | 'danger' | 'success' | 'warning' | 'inherit'\n\n/** When the link is underlined: always, on hover and focus only, or never. */\nexport type LinkUnderline = 'always' | 'hover' | 'none'\n\ninterface LinkProps {\n /** Where the link goes. */\n href: string\n /**\n * The colour of the link. `neutral` takes the colour of the text; `inherit` takes the colour of\n * the parent, muted text for instance, and turns to the accent on hover.\n */\n tone?: LinkTone\n /**\n * When the link is underlined. Keep `always` inside running text, where colour alone does not\n * tell a link apart; `hover` and `none` suit menus and lists of links.\n */\n underline?: LinkUnderline\n /**\n * Opens the link in a new tab, with `rel=\"noopener noreferrer\"`, and says so: an icon, and\n * words for screen readers. A `target=\"_blank\"` passed as an attribute says so too.\n */\n external?: boolean\n /** The icon marking an external link: an icon name, or an explicit render. */\n externalIcon?: IconSource\n /** Removes the icon of an external link. Screen readers still hear that it opens a new tab. */\n hideExternalIcon?: boolean\n /** Makes the link unusable: its address is removed and it is marked `aria-disabled`. */\n disabled?: boolean\n}\n\n// The attributes are bound by hand: on a disabled link, useInertLink drops the click listeners.\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<LinkProps>(), {\n tone: 'accent',\n underline: 'always',\n external: false,\n externalIcon: () => openInNewIcon,\n hideExternalIcon: false,\n disabled: false,\n})\n\ndefineSlots<{\n /** The text of the link. */\n default(): unknown\n}>()\n\nconst attrs = useAttrs()\nconst m = useMessages()\n\nconst link = useInertLink({\n href: () => props.href,\n inert: () => props.disabled,\n attrs: () => attrs,\n})\n\nconst newTab = computed(() => props.external || attrs.target === '_blank')\n</script>\n\n<template>\n <!-- `target` and `rel` come before the forwarded attributes, which may replace them. -->\n <a\n class=\"v-link v-tone\"\n :data-tone=\"tone\"\n :data-underline=\"underline\"\n :target=\"external ? '_blank' : undefined\"\n :rel=\"external ? 'noopener noreferrer' : undefined\"\n :aria-disabled=\"link.isInertLink.value ? 'true' : undefined\"\n v-bind=\"link.attrs.value\"\n :href=\"link.linkHref.value\"\n ><slot /><template v-if=\"newTab\"\n ><VIcon\n v-if=\"!hideExternalIcon\"\n class=\"v-link-external\"\n v-bind=\"iconProps(externalIcon)\"\n mirrored\n /><span class=\"v-visually-hidden\">{{ m.link.newTab }}</span></template\n ></a\n >\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The size, weight and line height are the surrounding text's. The icon follows that size too,\n * whatever icon size an ancestor sets.\n */\n .v-link {\n --vectis-icon-size: 1em;\n\n border-radius: var(--vectis-radius-xs);\n color: var(--tone-text-tinted);\n text-decoration-line: none;\n text-decoration-color: color-mix(in oklab, currentcolor 50%, transparent);\n cursor: pointer;\n transition: text-decoration-color var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-link[data-underline='always'],\n .v-link[data-underline='hover']:is(:hover, :focus-visible) {\n text-decoration-line: underline;\n }\n\n .v-link:hover {\n text-decoration-color: currentcolor;\n }\n\n /* No tone table: the link blends into its sentence, and only the hover singles it out. */\n .v-link[data-tone='inherit'] {\n color: inherit;\n }\n\n /* A disabled link keeps its subtle colour: the rule further down would lose to this one. */\n .v-link[data-tone='inherit']:hover:not([aria-disabled='true']) {\n color: var(--vectis-color-accent-text);\n }\n\n .v-link:focus-visible {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: var(--vectis-focus-ring-offset);\n }\n\n .v-link-external {\n margin-inline-start: var(--vectis-space-1);\n vertical-align: middle;\n }\n\n .v-link[aria-disabled='true'] {\n color: var(--vectis-color-text-subtle);\n text-decoration-color: currentcolor;\n cursor: not-allowed;\n }\n\n @media (forced-colors: active) {\n .v-link[aria-disabled='true'] {\n color: GrayText;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-link {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDA,IAAM,IAAQ,GAcR,IAAQ,EAAS,GACjB,IAAI,EAAY,GAEhB,IAAO,EAAa;GACxB,YAAY,EAAM;GAClB,aAAa,EAAM;GACnB,aAAa;EACf,CAAC,GAEK,IAAS,QAAe,EAAM,YAAY,EAAM,WAAW,QAAQ;yBAKvE,EAiBC,KAjBD,EAiBC;GAhBC,OAAM;GACL,aAAW,EAAA;GACX,kBAAgB,EAAA;GAChB,QAAQ,EAAA,WAAQ,WAAc,KAAA;GAC9B,KAAK,EAAA,WAAQ,wBAA2B,KAAA;GACxC,iBAAe,EAAA,CAAA,CAAI,CAAC,YAAY,QAAK,SAAY,KAAA;KAC1C,EAAA,CAAA,CAAI,CAAC,MAAM,OAAK,EACvB,MAAM,EAAA,CAAA,CAAI,CAAC,SAAS,MAAA,CAAA,GAAA,CACpB,EAAQ,EAAA,QAAA,SAAA,GAAgB,EAAA,SAAA,EAAA,GAAhB,EAOR,GAAA,EAAA,KAAA,EAAA,GAAA,CALU,EAAA,mBAGC,EAAA,IAAA,EAAA,KAHD,EAAA,GADR,EAKC,GALD,EAKC;;GAHA,OAAM;KACE,EAAA,CAAA,CAAS,CAAC,EAAA,YAAY,GAAA,EAC9B,UAAA,GAAQ,CAAA,GAAA,MAAA,EAAA,IACR,EAA0D,QAA1D,GAA0D,EAAvB,EAAA,CAAA,CAAC,CAAC,KAAK,MAAM,GAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,CAAA,GAAA,IAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ @layer vectis.reset, vectis.tokens, vectis.components, vectis.utilities;
2
+ @layer vectis.components{.v-listbox-chevron{color:var(--vectis-color-text-muted);transition:rotate var(--vectis-duration-fast) var(--vectis-ease-default)}.v-listbox-chevron[data-open]{rotate:180deg}@media (prefers-reduced-motion:reduce){.v-listbox-chevron{transition:none}}}
@@ -0,0 +1,12 @@
1
+ import { IconSource } from '../VIcon/types.js';
2
+ interface ListboxChevronProps {
3
+ /** The icon to draw. */
4
+ icon: IconSource;
5
+ /** Whether the list is open. */
6
+ open?: boolean;
7
+ }
8
+ declare const __VLS_export: import('vue').DefineComponent<ListboxChevronProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ListboxChevronProps> & Readonly<{}>, {
9
+ open: boolean;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import './VListboxChevron.css';
2
+ import e from "./VListboxChevron.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/VListbox/VListboxChevron.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
8
+
9
+ //# sourceMappingURL=VListboxChevron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxChevron.js","names":[],"sources":["../../../src/components/VListbox/VListboxChevron.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Draw the chevron at the end of a field owning a listbox, turned while the list is open. It is\n * decorative: the field itself says whether the list is expanded.\n */\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\ninterface ListboxChevronProps {\n /** The icon to draw. */\n icon: IconSource\n /** Whether the list is open. */\n open?: boolean\n}\n\nwithDefaults(defineProps<ListboxChevronProps>(), { open: false })\n</script>\n\n<template>\n <!-- `.v-input-icon-end` lets VInput pin it to the end of the field and reserve its room. -->\n <VIcon\n v-bind=\"iconProps(icon)\"\n class=\"v-listbox-chevron v-input-icon-end\"\n :data-open=\"open ? '' : undefined\"\n aria-hidden=\"true\"\n />\n</template>\n\n<style>\n@layer vectis.components {\n .v-listbox-chevron {\n color: var(--vectis-color-text-muted);\n transition: rotate var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-listbox-chevron[data-open] {\n rotate: 180deg;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-listbox-chevron {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { iconProps as e } from "../VIcon/iconProps.js";
2
+ import t from "../VIcon/VIcon.js";
3
+ import { createBlock as n, defineComponent as r, mergeProps as i, openBlock as a, unref as o } from "vue";
4
+ //#region src/components/VListbox/VListboxChevron.vue?vue&type=script&setup=true&lang.ts
5
+ var s = /*@__PURE__*/ r({
6
+ __name: "VListboxChevron",
7
+ props: {
8
+ icon: {},
9
+ open: {
10
+ type: Boolean,
11
+ default: !1
12
+ }
13
+ },
14
+ setup(r) {
15
+ return (s, c) => (a(), n(t, i(o(e)(r.icon), {
16
+ class: "v-listbox-chevron v-input-icon-end",
17
+ "data-open": r.open ? "" : void 0,
18
+ "aria-hidden": "true"
19
+ }), null, 16, ["data-open"]));
20
+ }
21
+ });
22
+ //#endregion
23
+ export { s as default };
24
+
25
+ //# sourceMappingURL=VListboxChevron.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxChevron.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VListbox/VListboxChevron.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Draw the chevron at the end of a field owning a listbox, turned while the list is open. It is\n * decorative: the field itself says whether the list is expanded.\n */\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\ninterface ListboxChevronProps {\n /** The icon to draw. */\n icon: IconSource\n /** Whether the list is open. */\n open?: boolean\n}\n\nwithDefaults(defineProps<ListboxChevronProps>(), { open: false })\n</script>\n\n<template>\n <!-- `.v-input-icon-end` lets VInput pin it to the end of the field and reserve its room. -->\n <VIcon\n v-bind=\"iconProps(icon)\"\n class=\"v-listbox-chevron v-input-icon-end\"\n :data-open=\"open ? '' : undefined\"\n aria-hidden=\"true\"\n />\n</template>\n\n<style>\n@layer vectis.components {\n .v-listbox-chevron {\n color: var(--vectis-color-text-muted);\n transition: rotate var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-listbox-chevron[data-open] {\n rotate: 180deg;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-listbox-chevron {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;yBAqBE,EAKE,GALF,EACU,EAIR,CAAA,CAJiB,CAAC,EAAA,IAAI,GAAA;GACtB,OAAM;GACL,aAAW,EAAA,OAAI,KAAQ,KAAA;GACxB,eAAY"}
@@ -0,0 +1,2 @@
1
+ @layer vectis.reset, vectis.tokens, vectis.components, vectis.utilities;
2
+ @layer vectis.components{.v-listbox-group{gap:var(--vectis-space-1);flex-direction:column;flex:none;display:flex}.v-listbox-group-label{min-block-size:var(--control-height);padding-block:var(--vectis-space-1);padding-inline:var(--control-padding-inline);font-size:var(--vectis-text-overline-size);font-weight:var(--vectis-text-overline-weight);letter-spacing:var(--vectis-text-overline-tracking);color:var(--vectis-color-text-muted);flex:none;align-items:center;display:flex}}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Group generated options under their accessible label; groups and options are the listbox's
3
+ * permitted children. The panel renders the heading among the group's rows, so the virtual mode
4
+ * can measure it and leave it out like any other row.
5
+ */
6
+ interface ListboxGroupProps {
7
+ /** The name of the block. */
8
+ label: string;
9
+ /**
10
+ * The id of the heading rendered inside the group, which then names it. Without one, the
11
+ * heading is out of the rendered window and the name is given as `aria-label`.
12
+ */
13
+ labelId?: string;
14
+ }
15
+ type __VLS_Slots = {
16
+ /** The heading and the options belonging to this block. */
17
+ default(): unknown;
18
+ };
19
+ declare const __VLS_base: import('vue').DefineComponent<ListboxGroupProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ListboxGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,9 @@
1
+ import './VListboxGroup.css';
2
+ import e from "./VListboxGroup.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/VListbox/VListboxGroup.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
8
+
9
+ //# sourceMappingURL=VListboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxGroup.js","names":[],"sources":["../../../src/components/VListbox/VListboxGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Group generated options under their accessible label; groups and options are the listbox's\n * permitted children. The panel renders the heading among the group's rows, so the virtual mode\n * can measure it and leave it out like any other row.\n */\n\ninterface ListboxGroupProps {\n /** The name of the block. */\n label: string\n /**\n * The id of the heading rendered inside the group, which then names it. Without one, the\n * heading is out of the rendered window and the name is given as `aria-label`.\n */\n labelId?: string\n}\n\ndefineProps<ListboxGroupProps>()\n\ndefineSlots<{\n /** The heading and the options belonging to this block. */\n default(): unknown\n}>()\n</script>\n\n<template>\n <div\n role=\"group\"\n class=\"v-listbox-group\"\n :aria-labelledby=\"labelId\"\n :aria-label=\"labelId ? undefined : label\"\n >\n <slot />\n </div>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * It refuses to shrink, where a menu group has no need to: this panel is a column of bounded\n * height that scrolls, and a block left free to shrink would be squashed to make its content\n * fit; the same reason the state rows and the foot of the list refuse it too. Its gap matches\n * the panel's, which the virtual mode relies on to size the space standing for hidden rows.\n */\n .v-listbox-group {\n display: flex;\n flex: none;\n flex-direction: column;\n gap: var(--vectis-space-1);\n }\n\n /* The heading is a row of the panel: it is not something that can be chosen. */\n .v-listbox-group-label {\n display: flex;\n flex: none;\n align-items: center;\n min-block-size: var(--control-height);\n padding-block: var(--vectis-space-1);\n padding-inline: var(--control-padding-inline);\n font-size: var(--vectis-text-overline-size);\n font-weight: var(--vectis-text-overline-weight);\n letter-spacing: var(--vectis-text-overline-tracking);\n color: var(--vectis-color-text-muted);\n }\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { createElementBlock as e, defineComponent as t, openBlock as n, renderSlot as r } from "vue";
2
+ //#region src/components/VListbox/VListboxGroup.vue?vue&type=script&setup=true&lang.ts
3
+ var i = ["aria-labelledby", "aria-label"], a = /*@__PURE__*/ t({
4
+ __name: "VListboxGroup",
5
+ props: {
6
+ label: {},
7
+ labelId: {}
8
+ },
9
+ setup(t) {
10
+ return (a, o) => (n(), e("div", {
11
+ role: "group",
12
+ class: "v-listbox-group",
13
+ "aria-labelledby": t.labelId,
14
+ "aria-label": t.labelId ? void 0 : t.label
15
+ }, [r(a.$slots, "default")], 8, i));
16
+ }
17
+ });
18
+ //#endregion
19
+ export { a as default };
20
+
21
+ //# sourceMappingURL=VListboxGroup.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VListbox/VListboxGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Group generated options under their accessible label; groups and options are the listbox's\n * permitted children. The panel renders the heading among the group's rows, so the virtual mode\n * can measure it and leave it out like any other row.\n */\n\ninterface ListboxGroupProps {\n /** The name of the block. */\n label: string\n /**\n * The id of the heading rendered inside the group, which then names it. Without one, the\n * heading is out of the rendered window and the name is given as `aria-label`.\n */\n labelId?: string\n}\n\ndefineProps<ListboxGroupProps>()\n\ndefineSlots<{\n /** The heading and the options belonging to this block. */\n default(): unknown\n}>()\n</script>\n\n<template>\n <div\n role=\"group\"\n class=\"v-listbox-group\"\n :aria-labelledby=\"labelId\"\n :aria-label=\"labelId ? undefined : label\"\n >\n <slot />\n </div>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * It refuses to shrink, where a menu group has no need to: this panel is a column of bounded\n * height that scrolls, and a block left free to shrink would be squashed to make its content\n * fit; the same reason the state rows and the foot of the list refuse it too. Its gap matches\n * the panel's, which the virtual mode relies on to size the space standing for hidden rows.\n */\n .v-listbox-group {\n display: flex;\n flex: none;\n flex-direction: column;\n gap: var(--vectis-space-1);\n }\n\n /* The heading is a row of the panel: it is not something that can be chosen. */\n .v-listbox-group-label {\n display: flex;\n flex: none;\n align-items: center;\n min-block-size: var(--control-height);\n padding-block: var(--vectis-space-1);\n padding-inline: var(--control-padding-inline);\n font-size: var(--vectis-text-overline-size);\n font-weight: var(--vectis-text-overline-weight);\n letter-spacing: var(--vectis-text-overline-tracking);\n color: var(--vectis-color-text-muted);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;yBA0BE,EAOM,OAAA;GANJ,MAAK;GACL,OAAM;GACL,mBAAiB,EAAA;GACjB,cAAY,EAAA,UAAU,KAAA,IAAY,EAAA;MAEnC,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,GAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ @layer vectis.reset, vectis.tokens, vectis.components, vectis.utilities;
2
+ @layer vectis.components{.v-listbox-option{align-items:center;gap:var(--control-gap);width:100%;min-height:var(--control-height);padding:var(--vectis-space-1) var(--control-padding-inline);color:var(--vectis-color-text);border-radius:min(var(--vectis-radius-interactive), calc(var(--control-height) / 2));font-family:inherit;font-size:var(--control-font-size);line-height:var(--vectis-text-body-md-leading);text-align:start;cursor:pointer;background:0 0;border:none;display:flex}.v-listbox-option-label{flex:1;min-inline-size:0}.v-listbox-option:hover:not([aria-disabled=true]),.v-listbox-option[data-active]{background:var(--vectis-color-surface-muted);outline:none}.v-listbox-option[aria-selected=true]{color:var(--vectis-color-accent-text)}.v-listbox-option[aria-disabled=true]{color:var(--vectis-color-text-subtle);cursor:not-allowed;background:0 0}}
@@ -1,5 +1,5 @@
1
1
  import { IconSource } from '../VIcon/types.js';
2
- interface ComboboxOptionProps {
2
+ interface ListboxOptionProps {
3
3
  /** An icon before the label: an icon name, or an explicit render. */
4
4
  icon?: IconSource;
5
5
  /** Marks the option as one of the chosen ones, which also draws the tick. */
@@ -13,14 +13,14 @@ type __VLS_Slots = {
13
13
  /** What the row shows. */
14
14
  default?(): unknown;
15
15
  };
16
- declare const __VLS_base: import('vue').DefineComponent<ComboboxOptionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ declare const __VLS_base: import('vue').DefineComponent<ListboxOptionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
17
  select: () => any;
18
- }, string, import('vue').PublicProps, Readonly<ComboboxOptionProps> & Readonly<{
18
+ }, string, import('vue').PublicProps, Readonly<ListboxOptionProps> & Readonly<{
19
19
  onSelect?: (() => any) | undefined;
20
20
  }>, {
21
21
  disabled: boolean;
22
- icon: IconSource;
23
22
  selected: boolean;
23
+ icon: IconSource;
24
24
  active: boolean;
25
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
26
26
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -0,0 +1,9 @@
1
+ import './VListboxOption.css';
2
+ import e from "./VListboxOption.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/VListbox/VListboxOption.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
8
+
9
+ //# sourceMappingURL=VListboxOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxOption.js","names":[],"sources":["../../../src/components/VListbox/VListboxOption.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Options use aria-disabled while field focus stays on aria-activedescendant; do not apply\n * native disabling to the active-descendant target.\n */\n\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport { check as checkIcon } from '../VIcon/icons/check'\nimport type { IconSource } from '../VIcon/types'\n\ninterface ListboxOptionProps {\n /** An icon before the label: an icon name, or an explicit render. */\n icon?: IconSource\n /** Marks the option as one of the chosen ones, which also draws the tick. */\n selected?: boolean\n /** Marks the option as the one currently highlighted. The field decides this. */\n active?: boolean\n /** Shows the option without allowing it to be chosen. */\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<ListboxOptionProps>(), {\n icon: undefined,\n selected: false,\n active: false,\n disabled: false,\n})\n\nconst emit = defineEmits<{\n /** The option was clicked. What that does to the selection is the field's business. */\n select: []\n}>()\n\ndefineSlots<{\n /** What the row shows. */\n default?(): unknown\n}>()\n\nfunction onClick() {\n if (props.disabled) return\n emit('select')\n}\n</script>\n\n<template>\n <button\n type=\"button\"\n role=\"option\"\n tabindex=\"-1\"\n class=\"v-listbox-option\"\n :aria-selected=\"selected\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :data-active=\"active ? '' : undefined\"\n @click=\"onClick\"\n >\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" />\n <span class=\"v-listbox-option-label\"><slot /></span>\n <VIcon v-if=\"selected\" :name=\"checkIcon\" class=\"v-listbox-option-check\" />\n </button>\n</template>\n\n<style>\n@layer vectis.components {\n .v-listbox-option {\n /*\n * Every dimension is inherited from the panel, which carries the shared size class, and the\n * icons follow through the same inheritance. The type is composite, exactly as in a menu\n * row: the SIZE comes from the scale, the line height stays that of body text; a unitless\n * ratio, so it follows the size; and the weight stays regular, since a row may wrap.\n */\n display: flex;\n align-items: center;\n gap: var(--control-gap);\n width: 100%;\n min-height: var(--control-height);\n padding: var(--vectis-space-1) var(--control-padding-inline);\n border: none;\n background: transparent;\n color: var(--vectis-color-text);\n border-radius: min(var(--vectis-radius-interactive), calc(var(--control-height) / 2));\n font-family: inherit;\n font-size: var(--control-font-size);\n line-height: var(--vectis-text-body-md-leading);\n text-align: start;\n cursor: pointer;\n }\n\n /* The zero minimum is what allows a long label to be compressed at all: a flex item\n otherwise refuses to shrink below its own content. */\n .v-listbox-option-label {\n flex: 1;\n min-inline-size: 0;\n }\n\n /* A row is highlighted by the pointer resting on it, or by being the current one. There\n is deliberately no focus rule: the focus never arrives here, it stays in the field. */\n .v-listbox-option:hover:not([aria-disabled='true']),\n .v-listbox-option[data-active] {\n background: var(--vectis-color-surface-muted);\n outline: none;\n }\n\n .v-listbox-option[aria-selected='true'] {\n color: var(--vectis-color-accent-text);\n }\n\n /*\n * Matched on the ARIA state and not on the native one, which this component deliberately\n * never sets; see the introduction.\n */\n .v-listbox-option[aria-disabled='true'] {\n background: transparent;\n color: var(--vectis-color-text-subtle);\n cursor: not-allowed;\n }\n}\n</style>\n"],"mappings":""}
@@ -2,13 +2,13 @@ import { iconProps as e } from "../VIcon/iconProps.js";
2
2
  import t from "../VIcon/VIcon.js";
3
3
  import { check as n } from "../VIcon/icons/check.js";
4
4
  import { createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, defineComponent as s, mergeProps as c, normalizeProps as l, openBlock as u, renderSlot as d, unref as f } from "vue";
5
- //#region src/components/VCombobox/VComboboxOption.vue?vue&type=script&setup=true&lang.ts
5
+ //#region src/components/VListbox/VListboxOption.vue?vue&type=script&setup=true&lang.ts
6
6
  var p = [
7
7
  "aria-selected",
8
8
  "aria-disabled",
9
9
  "data-active"
10
- ], m = { class: "v-combobox-option-label" }, h = /*@__PURE__*/ s({
11
- __name: "VComboboxOption",
10
+ ], m = { class: "v-listbox-option-label" }, h = /*@__PURE__*/ s({
11
+ __name: "VListboxOption",
12
12
  props: {
13
13
  icon: { default: void 0 },
14
14
  selected: {
@@ -34,7 +34,7 @@ var p = [
34
34
  type: "button",
35
35
  role: "option",
36
36
  tabindex: "-1",
37
- class: "v-combobox-option",
37
+ class: "v-listbox-option",
38
38
  "aria-selected": s.selected,
39
39
  "aria-disabled": s.disabled ? "true" : void 0,
40
40
  "data-active": s.active ? "" : void 0,
@@ -45,7 +45,7 @@ var p = [
45
45
  s.selected ? (u(), r(t, {
46
46
  key: 1,
47
47
  name: f(n),
48
- class: "v-combobox-option-check"
48
+ class: "v-listbox-option-check"
49
49
  }, null, 8, ["name"])) : i("", !0)
50
50
  ], 8, p));
51
51
  }
@@ -53,4 +53,4 @@ var p = [
53
53
  //#endregion
54
54
  export { h as default };
55
55
 
56
- //# sourceMappingURL=VComboboxOption.vue_vue_type_script_setup_true_lang.js.map
56
+ //# sourceMappingURL=VListboxOption.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxOption.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VListbox/VListboxOption.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Options use aria-disabled while field focus stays on aria-activedescendant; do not apply\n * native disabling to the active-descendant target.\n */\n\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport { check as checkIcon } from '../VIcon/icons/check'\nimport type { IconSource } from '../VIcon/types'\n\ninterface ListboxOptionProps {\n /** An icon before the label: an icon name, or an explicit render. */\n icon?: IconSource\n /** Marks the option as one of the chosen ones, which also draws the tick. */\n selected?: boolean\n /** Marks the option as the one currently highlighted. The field decides this. */\n active?: boolean\n /** Shows the option without allowing it to be chosen. */\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<ListboxOptionProps>(), {\n icon: undefined,\n selected: false,\n active: false,\n disabled: false,\n})\n\nconst emit = defineEmits<{\n /** The option was clicked. What that does to the selection is the field's business. */\n select: []\n}>()\n\ndefineSlots<{\n /** What the row shows. */\n default?(): unknown\n}>()\n\nfunction onClick() {\n if (props.disabled) return\n emit('select')\n}\n</script>\n\n<template>\n <button\n type=\"button\"\n role=\"option\"\n tabindex=\"-1\"\n class=\"v-listbox-option\"\n :aria-selected=\"selected\"\n :aria-disabled=\"disabled ? 'true' : undefined\"\n :data-active=\"active ? '' : undefined\"\n @click=\"onClick\"\n >\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" />\n <span class=\"v-listbox-option-label\"><slot /></span>\n <VIcon v-if=\"selected\" :name=\"checkIcon\" class=\"v-listbox-option-check\" />\n </button>\n</template>\n\n<style>\n@layer vectis.components {\n .v-listbox-option {\n /*\n * Every dimension is inherited from the panel, which carries the shared size class, and the\n * icons follow through the same inheritance. The type is composite, exactly as in a menu\n * row: the SIZE comes from the scale, the line height stays that of body text; a unitless\n * ratio, so it follows the size; and the weight stays regular, since a row may wrap.\n */\n display: flex;\n align-items: center;\n gap: var(--control-gap);\n width: 100%;\n min-height: var(--control-height);\n padding: var(--vectis-space-1) var(--control-padding-inline);\n border: none;\n background: transparent;\n color: var(--vectis-color-text);\n border-radius: min(var(--vectis-radius-interactive), calc(var(--control-height) / 2));\n font-family: inherit;\n font-size: var(--control-font-size);\n line-height: var(--vectis-text-body-md-leading);\n text-align: start;\n cursor: pointer;\n }\n\n /* The zero minimum is what allows a long label to be compressed at all: a flex item\n otherwise refuses to shrink below its own content. */\n .v-listbox-option-label {\n flex: 1;\n min-inline-size: 0;\n }\n\n /* A row is highlighted by the pointer resting on it, or by being the current one. There\n is deliberately no focus rule: the focus never arrives here, it stays in the field. */\n .v-listbox-option:hover:not([aria-disabled='true']),\n .v-listbox-option[data-active] {\n background: var(--vectis-color-surface-muted);\n outline: none;\n }\n\n .v-listbox-option[aria-selected='true'] {\n color: var(--vectis-color-accent-text);\n }\n\n /*\n * Matched on the ARIA state and not on the native one, which this component deliberately\n * never sets; see the introduction.\n */\n .v-listbox-option[aria-disabled='true'] {\n background: transparent;\n color: var(--vectis-color-text-subtle);\n cursor: not-allowed;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBA,IAAM,IAAQ,GAOR,IAAO;EAUb,SAAS,IAAU;GACb,EAAM,YACV,EAAK,QAAQ;EACf;yBAIE,EAaS,UAAA;GAZP,MAAK;GACL,MAAK;GACL,UAAS;GACT,OAAM;GACL,iBAAe,EAAA;GACf,iBAAe,EAAA,WAAQ,SAAY,KAAA;GACnC,eAAa,EAAA,SAAM,KAAQ,KAAA;GACpB;;GAEK,EAAA,QAAA,EAAA,GAAb,EAA8C,GAAA,EAAA,EAAA,EAAA,KAAA,EAAA,GAAnB,EAAA,CAAA,CAAS,CAAC,EAAA,IAAI,CAAA,CAAA,GAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA;GACzC,EAAoD,QAApD,GAAoD,CAAf,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;GAChC,EAAA,YAAA,EAAA,GAAb,EAA0E,GAAA;;IAAlD,MAAM,EAAA,CAAA;IAAW,OAAM"}
@@ -0,0 +1,2 @@
1
+ @layer vectis.reset, vectis.tokens, vectis.components, vectis.utilities;
2
+ @layer vectis.components{.v-listbox-panel{overflow:auto}.v-listbox-panel[data-virtual]{overflow-anchor:none}.v-listbox-spacer{flex:none}}
@@ -0,0 +1,59 @@
1
+ import { Listbox, ListboxBlock, ListboxRenderedOption } from '../../composables/useListbox.js';
2
+ import { ListboxOption, ListboxOptionSlotProps } from '../../types.js';
3
+ import { PopoverPlacement } from '../VPopover/VPopover.js';
4
+ interface ListboxPanelProps {
5
+ /** The panel's id, which the field points at through `aria-controls`. */
6
+ id: string;
7
+ /** The CSS anchor name the owner sets on its field, which the panel opens against. */
8
+ anchor: string;
9
+ /** Where the panel opens relative to the field. */
10
+ placement: PopoverPlacement;
11
+ /** The size the options take, the field's own. */
12
+ size: 'sm' | 'md' | 'lg';
13
+ /** The field's reduced density. */
14
+ compact?: boolean;
15
+ /** Several options can be chosen. */
16
+ multiple?: boolean;
17
+ /** Only the rows near the visible part of the panel are rendered. */
18
+ virtual?: boolean;
19
+ /** The rows to render. */
20
+ blocks: ListboxBlock[];
21
+ /** Measures a rendered row, in the virtual mode. */
22
+ measure: Listbox['measureRow'];
23
+ }
24
+ type __VLS_Props = ListboxPanelProps;
25
+ type __VLS_Slots = {
26
+ /** What a row shows, in place of the plain label. */
27
+ option?(props: ListboxOptionSlotProps): unknown;
28
+ /** Rows of the owner's own after the options: an empty state, a loading foot. */
29
+ default?(): unknown;
30
+ };
31
+ type __VLS_ModelProps = {
32
+ /** Whether the panel is showing. */
33
+ 'open'?: boolean;
34
+ };
35
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
36
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {
37
+ /** The panel element, which scrolls. */
38
+ el: import('vue').ComputedRef<HTMLElement | null>;
39
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
40
+ select: (option: ListboxOption) => any;
41
+ "update:open": (value: boolean) => any;
42
+ highlight: (row: ListboxRenderedOption) => any;
43
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
44
+ onSelect?: ((option: ListboxOption) => any) | undefined;
45
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
46
+ onHighlight?: ((row: ListboxRenderedOption) => any) | undefined;
47
+ }>, {
48
+ compact: boolean;
49
+ multiple: boolean;
50
+ virtual: boolean;
51
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
52
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
53
+ declare const _default: typeof __VLS_export;
54
+ export default _default;
55
+ type __VLS_WithSlots<T, S> = T & {
56
+ new (): {
57
+ $slots: S;
58
+ };
59
+ };
@@ -0,0 +1,9 @@
1
+ import './VListboxPanel.css';
2
+ import e from "./VListboxPanel.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/VListbox/VListboxPanel.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
8
+
9
+ //# sourceMappingURL=VListboxPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VListboxPanel.js","names":[],"sources":["../../../src/components/VListbox/VListboxPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y\n/**\n * Render the floating listbox of VCombobox and VSelect from the rows `useListbox` works out. The\n * panel carries both the listbox role and the scrolling: the virtual window, the scrolling of the\n * highlighted option and the observer watching for the end of the list all rely on it, so no\n * wrapper may come between them.\n */\nimport { computed, ref } from 'vue'\n\nimport type { Listbox, ListboxBlock, ListboxRenderedOption } from '../../composables/useListbox'\nimport type { ListboxOption, ListboxOptionSlotProps } from '../../types'\nimport VPopover, { type PopoverPlacement } from '../VPopover/VPopover.vue'\nimport VListboxGroup from './VListboxGroup.vue'\nimport VListboxOption from './VListboxOption.vue'\nimport VListboxSeparator from './VListboxSeparator.vue'\n\ninterface ListboxPanelProps {\n /** The panel's id, which the field points at through `aria-controls`. */\n id: string\n /** The CSS anchor name the owner sets on its field, which the panel opens against. */\n anchor: string\n /** Where the panel opens relative to the field. */\n placement: PopoverPlacement\n /** The size the options take, the field's own. */\n size: 'sm' | 'md' | 'lg'\n /** The field's reduced density. */\n compact?: boolean\n /** Several options can be chosen. */\n multiple?: boolean\n /** Only the rows near the visible part of the panel are rendered. */\n virtual?: boolean\n /** The rows to render. */\n blocks: ListboxBlock[]\n /** Measures a rendered row, in the virtual mode. */\n measure: Listbox['measureRow']\n}\n\nwithDefaults(defineProps<ListboxPanelProps>(), {\n compact: false,\n multiple: false,\n virtual: false,\n})\n\n/** Whether the panel is showing. */\nconst open = defineModel<boolean>('open', { default: false })\n\nconst emit = defineEmits<{\n /** An option was clicked. What that does to the selection is the field's business. */\n select: [option: ListboxOption]\n /** The pointer moved over an option, which should become the highlighted one. */\n highlight: [row: ListboxRenderedOption]\n}>()\n\ndefineSlots<{\n /** What a row shows, in place of the plain label. */\n option?(props: ListboxOptionSlotProps): unknown\n /** Rows of the owner's own after the options: an empty state, a loading foot. */\n default?(): unknown\n}>()\n\nconst popoverRef = ref<InstanceType<typeof VPopover> | null>(null)\n\n// @a11y\n/*\n * The focus must never leave the field. Without cancelling the press, clicking an option takes\n * the focus off the field, the field's focusout closes the panel before the click is turned into\n * a selection, and choosing with the mouse stops working entirely.\n */\nfunction onMousedown(event: MouseEvent) {\n event.preventDefault()\n}\n\ndefineExpose({\n /** The panel element, which scrolls. */\n el: computed(() => popoverRef.value?.el ?? null),\n})\n</script>\n\n<template>\n <VPopover\n :id=\"id\"\n ref=\"popoverRef\"\n v-model:open=\"open\"\n mode=\"manual\"\n :anchor=\"anchor\"\n match-trigger\n :placement=\"placement\"\n role=\"listbox\"\n class=\"v-listbox-panel v-control\"\n :data-size=\"size\"\n :data-compact=\"compact ? '' : undefined\"\n :aria-multiselectable=\"multiple ? 'true' : undefined\"\n :data-virtual=\"virtual ? '' : undefined\"\n @mousedown=\"onMousedown\"\n >\n <template v-for=\"block in blocks\" :key=\"block.key\">\n <div\n v-if=\"block.kind === 'spacer'\"\n class=\"v-listbox-spacer\"\n aria-hidden=\"true\"\n :style=\"{ blockSize: `${block.size}px` }\"\n />\n\n <VListboxSeparator\n v-else-if=\"block.kind === 'separator'\"\n :ref=\"virtual ? (el) => measure(el, block.at) : undefined\"\n />\n\n <VListboxGroup\n v-else-if=\"block.kind === 'group'\"\n :label=\"block.label\"\n :label-id=\"block.labelId\"\n >\n <template v-for=\"child in block.children\" :key=\"child.key\">\n <div\n v-if=\"child.kind === 'spacer'\"\n class=\"v-listbox-spacer\"\n aria-hidden=\"true\"\n :style=\"{ blockSize: `${child.size}px` }\"\n />\n <span\n v-else-if=\"child.kind === 'heading'\"\n :id=\"child.id\"\n :ref=\"virtual ? (el) => measure(el, child.at) : undefined\"\n class=\"v-listbox-group-label\"\n >{{ child.label }}</span\n >\n <VListboxOption\n v-else-if=\"child.kind === 'option'\"\n :ref=\"virtual ? (el) => measure(el, child.at) : undefined\"\n v-bind=\"child.row\"\n @select=\"emit('select', child.option)\"\n @pointermove=\"emit('highlight', child)\"\n >\n <slot name=\"option\" v-bind=\"child.slot\">{{ child.option.label }}</slot>\n </VListboxOption>\n </template>\n </VListboxGroup>\n\n <VListboxOption\n v-else-if=\"block.kind === 'option'\"\n :ref=\"virtual ? (el) => measure(el, block.at) : undefined\"\n v-bind=\"block.row\"\n @select=\"emit('select', block.option)\"\n @pointermove=\"emit('highlight', block)\"\n >\n <slot name=\"option\" v-bind=\"block.slot\">{{ block.option.label }}</slot>\n </VListboxOption>\n </template>\n\n <slot />\n </VPopover>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * VPopover brings the floating element, its open state, its anchoring, its placement and its\n * surface. The shared size class lets the options and the owner's state rows read their\n * dimensions from the panel with no size table here; the owner sets the maximum height.\n */\n .v-listbox-panel {\n overflow: auto;\n }\n\n /* The virtual mode corrects the scroll itself when a row above the view changes height. */\n .v-listbox-panel[data-virtual] {\n overflow-anchor: none;\n }\n\n .v-listbox-spacer {\n flex: none;\n }\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,123 @@
1
+ import e from "../VPopover/VPopover.js";
2
+ import t from "./VListboxGroup.js";
3
+ import n from "./VListboxOption.js";
4
+ import r from "./VListboxSeparator.js";
5
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createTextVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, normalizeStyle as p, openBlock as m, ref as h, renderList as g, renderSlot as _, toDisplayString as v, useModel as y, withCtx as b } from "vue";
6
+ //#region src/components/VListbox/VListboxPanel.vue?vue&type=script&setup=true&lang.ts
7
+ var x = ["id"], S = /*@__PURE__*/ u({
8
+ __name: "VListboxPanel",
9
+ props: /*@__PURE__*/ d({
10
+ id: {},
11
+ anchor: {},
12
+ placement: {},
13
+ size: {},
14
+ compact: {
15
+ type: Boolean,
16
+ default: !1
17
+ },
18
+ multiple: {
19
+ type: Boolean,
20
+ default: !1
21
+ },
22
+ virtual: {
23
+ type: Boolean,
24
+ default: !1
25
+ },
26
+ blocks: {},
27
+ measure: {}
28
+ }, {
29
+ open: {
30
+ type: Boolean,
31
+ default: !1
32
+ },
33
+ openModifiers: {}
34
+ }),
35
+ emits: /*@__PURE__*/ d(["select", "highlight"], ["update:open"]),
36
+ setup(u, { expose: d, emit: S }) {
37
+ let C = y(u, "open"), w = S, T = h(null);
38
+ function E(e) {
39
+ e.preventDefault();
40
+ }
41
+ return d({ el: a(() => T.value?.el ?? null) }), (a, d) => (m(), o(e, {
42
+ id: u.id,
43
+ ref_key: "popoverRef",
44
+ ref: T,
45
+ open: C.value,
46
+ "onUpdate:open": d[0] ||= (e) => C.value = e,
47
+ mode: "manual",
48
+ anchor: u.anchor,
49
+ "match-trigger": "",
50
+ placement: u.placement,
51
+ role: "listbox",
52
+ class: "v-listbox-panel v-control",
53
+ "data-size": u.size,
54
+ "data-compact": u.compact ? "" : void 0,
55
+ "aria-multiselectable": u.multiple ? "true" : void 0,
56
+ "data-virtual": u.virtual ? "" : void 0,
57
+ onMousedown: E
58
+ }, {
59
+ default: b(() => [(m(!0), c(i, null, g(u.blocks, (e) => (m(), c(i, { key: e.key }, [e.kind === "spacer" ? (m(), c("div", {
60
+ key: 0,
61
+ class: "v-listbox-spacer",
62
+ "aria-hidden": "true",
63
+ style: p({ blockSize: `${e.size}px` })
64
+ }, null, 4)) : e.kind === "separator" ? (m(), o(r, {
65
+ key: 1,
66
+ ref_for: !0,
67
+ ref: u.virtual ? (t) => u.measure(t, e.at) : void 0
68
+ }, null, 512)) : e.kind === "group" ? (m(), o(t, {
69
+ key: 2,
70
+ label: e.label,
71
+ "label-id": e.labelId
72
+ }, {
73
+ default: b(() => [(m(!0), c(i, null, g(e.children, (e) => (m(), c(i, { key: e.key }, [e.kind === "spacer" ? (m(), c("div", {
74
+ key: 0,
75
+ class: "v-listbox-spacer",
76
+ "aria-hidden": "true",
77
+ style: p({ blockSize: `${e.size}px` })
78
+ }, null, 4)) : e.kind === "heading" ? (m(), c("span", {
79
+ key: 1,
80
+ id: e.id,
81
+ ref_for: !0,
82
+ ref: u.virtual ? (t) => u.measure(t, e.at) : void 0,
83
+ class: "v-listbox-group-label"
84
+ }, v(e.label), 9, x)) : e.kind === "option" ? (m(), o(n, f({
85
+ key: 2,
86
+ ref_for: !0,
87
+ ref: u.virtual ? (t) => u.measure(t, e.at) : void 0
88
+ }, { ref_for: !0 }, e.row, {
89
+ onSelect: (t) => w("select", e.option),
90
+ onPointermove: (t) => w("highlight", e)
91
+ }), {
92
+ default: b(() => [_(a.$slots, "option", f({ ref_for: !0 }, e.slot), () => [l(v(e.option.label), 1)])]),
93
+ _: 2
94
+ }, 1040, ["onSelect", "onPointermove"])) : s("", !0)], 64))), 128))]),
95
+ _: 2
96
+ }, 1032, ["label", "label-id"])) : e.kind === "option" ? (m(), o(n, f({
97
+ key: 3,
98
+ ref_for: !0,
99
+ ref: u.virtual ? (t) => u.measure(t, e.at) : void 0
100
+ }, { ref_for: !0 }, e.row, {
101
+ onSelect: (t) => w("select", e.option),
102
+ onPointermove: (t) => w("highlight", e)
103
+ }), {
104
+ default: b(() => [_(a.$slots, "option", f({ ref_for: !0 }, e.slot), () => [l(v(e.option.label), 1)])]),
105
+ _: 2
106
+ }, 1040, ["onSelect", "onPointermove"])) : s("", !0)], 64))), 128)), _(a.$slots, "default")]),
107
+ _: 3
108
+ }, 8, [
109
+ "id",
110
+ "open",
111
+ "anchor",
112
+ "placement",
113
+ "data-size",
114
+ "data-compact",
115
+ "aria-multiselectable",
116
+ "data-virtual"
117
+ ]));
118
+ }
119
+ });
120
+ //#endregion
121
+ export { S as default };
122
+
123
+ //# sourceMappingURL=VListboxPanel.vue_vue_type_script_setup_true_lang.js.map