vectis-ui 0.14.0 → 0.16.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 (442) hide show
  1. package/dist/components/VAccordion/VAccordion.css +1 -1
  2. package/dist/components/VAccordion/VAccordion.d.ts +0 -6
  3. package/dist/components/VAccordion/VAccordion.js.map +1 -1
  4. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js +3 -8
  5. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  6. package/dist/components/VAccordion/VAccordionItem.js.map +1 -1
  7. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  8. package/dist/components/VAccordion/context.js.map +1 -1
  9. package/dist/components/VAlert/VAlert.js.map +1 -1
  10. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  11. package/dist/components/VAvatar/VAvatar.d.ts +0 -3
  12. package/dist/components/VAvatar/VAvatar.js.map +1 -1
  13. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js +21 -27
  14. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/VAvatar/VAvatarGroup.d.ts +0 -6
  16. package/dist/components/VAvatar/VAvatarGroup.js.map +1 -1
  17. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +5 -19
  18. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/VAvatar/context.d.ts +0 -1
  20. package/dist/components/VAvatar/context.js.map +1 -1
  21. package/dist/components/VBadge/VBadge.js.map +1 -1
  22. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/components/VBreadcrumb/VBreadcrumb.js.map +1 -1
  25. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/components/VButton/VButton.d.ts +0 -6
  27. package/dist/components/VButton/VButton.js.map +1 -1
  28. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js +11 -17
  29. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/VButton/VButtonGroup.d.ts +0 -6
  31. package/dist/components/VButton/VButtonGroup.js.map +1 -1
  32. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js +0 -7
  33. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  34. package/dist/components/VButton/context.d.ts +0 -2
  35. package/dist/components/VButton/context.js.map +1 -1
  36. package/dist/components/VCalendar/VCalendar.js.map +1 -1
  37. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  38. package/dist/components/VCalendar/VCalendarEvent.js.map +1 -1
  39. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/VCalendar/VCalendarMonth.js.map +1 -1
  41. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js +5 -17
  42. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -1
  44. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js +19 -31
  45. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  46. package/dist/components/VCalendar/VCalendarYear.js.map +1 -1
  47. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/components/VCalendar/color.js.map +1 -1
  49. package/dist/components/VCalendar/edgeStep.js +1 -5
  50. package/dist/components/VCalendar/edgeStep.js.map +1 -1
  51. package/dist/components/VCalendar/gesture.js +4 -12
  52. package/dist/components/VCalendar/gesture.js.map +1 -1
  53. package/dist/components/VCalendar/keyboard.js.map +1 -1
  54. package/dist/components/VCalendar/layout.js +8 -12
  55. package/dist/components/VCalendar/layout.js.map +1 -1
  56. package/dist/components/VCalendar/timeGrid.js +5 -5
  57. package/dist/components/VCalendar/timeGrid.js.map +1 -1
  58. package/dist/components/VCard/VCard.js.map +1 -1
  59. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/components/VCarousel/VCarousel.js.map +1 -1
  61. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  62. package/dist/components/VCarousel/VCarouselItem.js.map +1 -1
  63. package/dist/components/VCarousel/VCarouselItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/VCarousel/context.js.map +1 -1
  65. package/dist/components/VCheckbox/VCheckMark.js.map +1 -1
  66. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/components/VCheckbox/VCheckbox.js.map +1 -1
  68. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/VChip/VChip.d.ts +0 -3
  70. package/dist/components/VChip/VChip.js.map +1 -1
  71. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js +0 -6
  72. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/VColorInput/VColorInput.d.ts +0 -3
  74. package/dist/components/VColorInput/VColorInput.js.map +1 -1
  75. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js +3 -9
  76. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/VColorPicker/VColorPicker.js.map +1 -1
  78. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js +1 -5
  79. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  80. package/dist/components/VColorPicker/color.js.map +1 -1
  81. package/dist/components/VCombobox/VCombobox.d.ts +0 -3
  82. package/dist/components/VCombobox/VCombobox.js.map +1 -1
  83. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +100 -119
  84. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/components/VCommandPalette/VCommandPalette.js.map +1 -1
  86. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js +0 -1
  87. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/VCommandPalette/VCommandPaletteItem.js.map +1 -1
  89. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js +1 -5
  90. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/components/VContextMenu/VContextMenu.d.ts +0 -3
  92. package/dist/components/VContextMenu/VContextMenu.js.map +1 -1
  93. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js +3 -11
  94. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  95. package/dist/components/VDataTable/VDataTable.css +1 -1
  96. package/dist/components/VDataTable/VDataTable.d.ts +0 -2
  97. package/dist/components/VDataTable/VDataTable.js.map +1 -1
  98. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +69 -88
  99. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  100. package/dist/components/VDateInput/VDateInput.d.ts +0 -3
  101. package/dist/components/VDateInput/VDateInput.js.map +1 -1
  102. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js +5 -10
  103. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  104. package/dist/components/VDateInput/mask.js.map +1 -1
  105. package/dist/components/VDatePicker/VDatePicker.js.map +1 -1
  106. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js +2 -1
  107. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/components/VDatePicker/keyboard.js.map +1 -1
  109. package/dist/components/VDatePicker/names.js.map +1 -1
  110. package/dist/components/VDialog/VDialog.js.map +1 -1
  111. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/components/VDialog/VDialogAlert.js.map +1 -1
  113. package/dist/components/VDialog/VDialogAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/VDrawer/VDrawer.js.map +1 -1
  115. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  116. package/dist/components/VEmptyState/VEmptyState.js.map +1 -1
  117. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  118. package/dist/components/VField/VField.js.map +1 -1
  119. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/VField/VFieldAnnouncer.js.map +1 -1
  121. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  122. package/dist/components/VField/VFieldMessage.js.map +1 -1
  123. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/VFieldset/VFieldset.js.map +1 -1
  125. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/VFileInput/VFileInput.d.ts +0 -5
  127. package/dist/components/VFileInput/VFileInput.js.map +1 -1
  128. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js +54 -65
  129. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/VFileInput/truncate.js.map +1 -1
  131. package/dist/components/VFilePicker/VFilePicker.js.map +1 -1
  132. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js +1 -1
  133. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  134. package/dist/components/VFilePicker/fileKind.js.map +1 -1
  135. package/dist/components/VHotkeys/VHotkeys.d.ts +0 -3
  136. package/dist/components/VHotkeys/VHotkeys.js.map +1 -1
  137. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js +0 -6
  138. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
  139. package/dist/components/VHotkeys/platform.js +1 -1
  140. package/dist/components/VHotkeys/platform.js.map +1 -1
  141. package/dist/components/VHoverCard/VHoverCard.js.map +1 -1
  142. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js +2 -12
  143. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/VIcon/VIcon.js.map +1 -1
  145. package/dist/components/VIcon/VIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/VIcon/iconProps.js.map +1 -1
  147. package/dist/components/VIcon/icons/add.js.map +1 -1
  148. package/dist/components/VIcon/icons/arrow_downward.js.map +1 -1
  149. package/dist/components/VIcon/icons/arrow_downward_alt.js.map +1 -1
  150. package/dist/components/VIcon/icons/arrow_drop_down.js.map +1 -1
  151. package/dist/components/VIcon/icons/arrow_drop_up.js.map +1 -1
  152. package/dist/components/VIcon/icons/arrow_left_alt.js.map +1 -1
  153. package/dist/components/VIcon/icons/arrow_right_alt.js.map +1 -1
  154. package/dist/components/VIcon/icons/arrow_upward.js.map +1 -1
  155. package/dist/components/VIcon/icons/arrow_upward_alt.js.map +1 -1
  156. package/dist/components/VIcon/icons/attach_file.js.map +1 -1
  157. package/dist/components/VIcon/icons/audio_file.js.map +1 -1
  158. package/dist/components/VIcon/icons/calendar_today.js.map +1 -1
  159. package/dist/components/VIcon/icons/check.js.map +1 -1
  160. package/dist/components/VIcon/icons/check_circle.js.map +1 -1
  161. package/dist/components/VIcon/icons/chevron_left.js.map +1 -1
  162. package/dist/components/VIcon/icons/chevron_right.js.map +1 -1
  163. package/dist/components/VIcon/icons/close.js.map +1 -1
  164. package/dist/components/VIcon/icons/cloud_upload.js.map +1 -1
  165. package/dist/components/VIcon/icons/code.js.map +1 -1
  166. package/dist/components/VIcon/icons/colorize.js.map +1 -1
  167. package/dist/components/VIcon/icons/description.js.map +1 -1
  168. package/dist/components/VIcon/icons/error.js.map +1 -1
  169. package/dist/components/VIcon/icons/expand_less.js.map +1 -1
  170. package/dist/components/VIcon/icons/expand_more.js.map +1 -1
  171. package/dist/components/VIcon/icons/first_page.js.map +1 -1
  172. package/dist/components/VIcon/icons/folder_zip.js.map +1 -1
  173. package/dist/components/VIcon/icons/image.js.map +1 -1
  174. package/dist/components/VIcon/icons/inbox.js.map +1 -1
  175. package/dist/components/VIcon/icons/index.js.map +1 -1
  176. package/dist/components/VIcon/icons/info.js.map +1 -1
  177. package/dist/components/VIcon/icons/last_page.js.map +1 -1
  178. package/dist/components/VIcon/icons/more_horiz.js.map +1 -1
  179. package/dist/components/VIcon/icons/names.js.map +1 -1
  180. package/dist/components/VIcon/icons/notifications.js.map +1 -1
  181. package/dist/components/VIcon/icons/open_in_new.js.map +1 -1
  182. package/dist/components/VIcon/icons/picture_as_pdf.js.map +1 -1
  183. package/dist/components/VIcon/icons/priority_high.js.map +1 -1
  184. package/dist/components/VIcon/icons/remove.js.map +1 -1
  185. package/dist/components/VIcon/icons/schedule.js.map +1 -1
  186. package/dist/components/VIcon/icons/search.js.map +1 -1
  187. package/dist/components/VIcon/icons/search_off.js.map +1 -1
  188. package/dist/components/VIcon/icons/star.js.map +1 -1
  189. package/dist/components/VIcon/icons/swap_vert.js.map +1 -1
  190. package/dist/components/VIcon/icons/table_chart.js.map +1 -1
  191. package/dist/components/VIcon/icons/video_file.js.map +1 -1
  192. package/dist/components/VIcon/icons/viewBox.js.map +1 -1
  193. package/dist/components/VIcon/icons/warning.js.map +1 -1
  194. package/dist/components/VIcon/resolver.js.map +1 -1
  195. package/dist/components/VIconButton/VIconButton.d.ts +0 -3
  196. package/dist/components/VIconButton/VIconButton.js.map +1 -1
  197. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js +0 -6
  198. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/components/VInput/VInput.css +1 -1
  200. package/dist/components/VInput/VInput.d.ts +0 -3
  201. package/dist/components/VInput/VInput.js.map +1 -1
  202. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js +2 -8
  203. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/VInput/VInputGroup.d.ts +0 -3
  205. package/dist/components/VInput/VInputGroup.js.map +1 -1
  206. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js +0 -7
  207. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  208. package/dist/components/VInput/context.d.ts +0 -2
  209. package/dist/components/VInput/context.js.map +1 -1
  210. package/dist/components/VInputOTP/VInputOTP.d.ts +0 -3
  211. package/dist/components/VInputOTP/VInputOTP.js.map +1 -1
  212. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +2 -14
  213. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  214. package/dist/components/VLink/VLink.js.map +1 -1
  215. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  216. package/dist/components/VListbox/VListboxChevron.js.map +1 -1
  217. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js.map +1 -1
  218. package/dist/components/VListbox/VListboxGroup.js.map +1 -1
  219. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/components/VListbox/VListboxOption.js.map +1 -1
  221. package/dist/components/VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/VListbox/VListboxPanel.d.ts +0 -3
  223. package/dist/components/VListbox/VListboxPanel.js.map +1 -1
  224. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js +0 -6
  225. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  226. package/dist/components/VListbox/VListboxSeparator.js.map +1 -1
  227. package/dist/components/VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/components/VListbox/VListboxValues.js.map +1 -1
  229. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js +4 -14
  230. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js.map +1 -1
  231. package/dist/components/VMenu/VMenu.d.ts +0 -3
  232. package/dist/components/VMenu/VMenu.js.map +1 -1
  233. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js +0 -6
  234. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/components/VMenu/VMenuGroup.js.map +1 -1
  236. package/dist/components/VMenu/VMenuGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  237. package/dist/components/VMenu/VMenuItem.js.map +1 -1
  238. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js +6 -12
  239. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  240. package/dist/components/VMenu/VMenuPanel.d.ts +0 -3
  241. package/dist/components/VMenu/VMenuPanel.js.map +1 -1
  242. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +9 -16
  243. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/VMenu/VMenuSeparator.js.map +1 -1
  245. package/dist/components/VMenu/VMenuSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  246. package/dist/components/VMenu/context.js.map +1 -1
  247. package/dist/components/VMeter/VMeter.js.map +1 -1
  248. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  249. package/dist/components/VNumberInput/VNumberInput.d.ts +0 -3
  250. package/dist/components/VNumberInput/VNumberInput.js.map +1 -1
  251. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js +85 -90
  252. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  253. package/dist/components/VNumberInput/number.js.map +1 -1
  254. package/dist/components/VPagination/VPagination.d.ts +0 -3
  255. package/dist/components/VPagination/VPagination.js.map +1 -1
  256. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js +0 -6
  257. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  258. package/dist/components/VPopover/VPopover.js.map +1 -1
  259. package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/components/VProgressCircular/VProgressCircular.js.map +1 -1
  261. package/dist/components/VProgressCircular/VProgressCircular.vue_vue_type_script_setup_true_lang.js.map +1 -1
  262. package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -1
  263. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  264. package/dist/components/VRadio/VRadio.js.map +1 -1
  265. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/components/VRating/VRating.js.map +1 -1
  267. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/components/VResizable/VResizable.js.map +1 -1
  269. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js +8 -6
  270. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  271. package/dist/components/VResizable/VResizablePanel.js.map +1 -1
  272. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  273. package/dist/components/VResizable/context.js.map +1 -1
  274. package/dist/components/VResizable/layout.js.map +1 -1
  275. package/dist/components/VSelect/VSelect.d.ts +0 -3
  276. package/dist/components/VSelect/VSelect.js.map +1 -1
  277. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js +80 -90
  278. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  279. package/dist/components/VSeparator/VSeparator.js.map +1 -1
  280. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  281. package/dist/components/VSideNavigation/VSideNavigation.d.ts +0 -6
  282. package/dist/components/VSideNavigation/VSideNavigation.js.map +1 -1
  283. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js +2 -11
  284. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js.map +1 -1
  285. package/dist/components/VSideNavigation/VSideNavigationGroup.js.map +1 -1
  286. package/dist/components/VSideNavigation/VSideNavigationGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  287. package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -1
  288. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +1 -5
  289. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/components/VSideNavigation/VSideNavigationSeparator.js.map +1 -1
  291. package/dist/components/VSideNavigation/context.js.map +1 -1
  292. package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +0 -3
  293. package/dist/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  294. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js +0 -6
  295. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/components/VSlider/VSlider.js.map +1 -1
  297. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js +107 -112
  298. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  299. package/dist/components/VSnackbar/VSnackbar.js.map +1 -1
  300. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/components/VSnackbar/state.js.map +1 -1
  302. package/dist/components/VSpinner/VSpinner.js.map +1 -1
  303. package/dist/components/VSpinner/VSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  304. package/dist/components/VSplitButton/VSplitButton.d.ts +0 -3
  305. package/dist/components/VSplitButton/VSplitButton.js.map +1 -1
  306. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js +0 -6
  307. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  308. package/dist/components/VStepper/VStepper.js.map +1 -1
  309. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  310. package/dist/components/VSwitch/VSwitch.js.map +1 -1
  311. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  312. package/dist/components/VTabs/VTab.js.map +1 -1
  313. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js +0 -2
  314. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  315. package/dist/components/VTabs/VTabPanel.js.map +1 -1
  316. package/dist/components/VTabs/VTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  317. package/dist/components/VTabs/VTabs.css +1 -1
  318. package/dist/components/VTabs/VTabs.d.ts +0 -3
  319. package/dist/components/VTabs/VTabs.js.map +1 -1
  320. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js +2 -15
  321. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  322. package/dist/components/VTabs/context.d.ts +0 -2
  323. package/dist/components/VTabs/context.js.map +1 -1
  324. package/dist/components/VTextarea/VTextarea.d.ts +0 -6
  325. package/dist/components/VTextarea/VTextarea.js.map +1 -1
  326. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js +0 -6
  327. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  328. package/dist/components/VTimeInput/VTimeInput.d.ts +0 -3
  329. package/dist/components/VTimeInput/VTimeInput.js.map +1 -1
  330. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js +197 -204
  331. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  332. package/dist/components/VTimeInput/search.js.map +1 -1
  333. package/dist/components/VTimePicker/VTimePicker.js.map +1 -1
  334. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js +9 -9
  335. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/dist/components/VTimePicker/limits.js.map +1 -1
  337. package/dist/components/VTimeline/VTimeline.js.map +1 -1
  338. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -1
  339. package/dist/components/VTimeline/VTimelineItem.js.map +1 -1
  340. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  341. package/dist/components/VTimeline/context.js.map +1 -1
  342. package/dist/components/VTimeline/datetime.js.map +1 -1
  343. package/dist/components/VToast/VToast.js.map +1 -1
  344. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  345. package/dist/components/VToast/VToaster.js.map +1 -1
  346. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js +1 -1
  347. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
  348. package/dist/components/VToast/state.js.map +1 -1
  349. package/dist/components/VToggle/VToggle.d.ts +0 -3
  350. package/dist/components/VToggle/VToggle.js.map +1 -1
  351. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js +1 -13
  352. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  353. package/dist/components/VToggle/VToggleItem.js.map +1 -1
  354. package/dist/components/VToggle/VToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/components/VToggle/context.js.map +1 -1
  356. package/dist/components/VTooltip/VTooltip.js.map +1 -1
  357. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  358. package/dist/components/VTreeView/VTreeView.js.map +1 -1
  359. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js +1 -5
  360. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  361. package/dist/components/VTypography/VTypography.js.map +1 -1
  362. package/dist/components/VTypography/VTypography.vue_vue_type_script_setup_true_lang.js.map +1 -1
  363. package/dist/components/VVirtualList/VVirtualList.js.map +1 -1
  364. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  365. package/dist/composables/useAriaLabel.js.map +1 -1
  366. package/dist/composables/useChoice.js.map +1 -1
  367. package/dist/composables/useClearable.js.map +1 -1
  368. package/dist/composables/useControlShape.d.ts +1 -5
  369. package/dist/composables/useControlShape.js +0 -1
  370. package/dist/composables/useControlShape.js.map +1 -1
  371. package/dist/composables/useDebouncedSearch.js.map +1 -1
  372. package/dist/composables/useDetailsOpen.js.map +1 -1
  373. package/dist/composables/useEscapeDismiss.js.map +1 -1
  374. package/dist/composables/useFieldIds.js.map +1 -1
  375. package/dist/composables/useFieldPanel.js +3 -7
  376. package/dist/composables/useFieldPanel.js.map +1 -1
  377. package/dist/composables/useFileDrop.js.map +1 -1
  378. package/dist/composables/useFileField.js +2 -2
  379. package/dist/composables/useFileField.js.map +1 -1
  380. package/dist/composables/useFocusoutDismiss.js.map +1 -1
  381. package/dist/composables/useHotkeyListener.js.map +1 -1
  382. package/dist/composables/useIconClickHandlers.js.map +1 -1
  383. package/dist/composables/useInertLink.js.map +1 -1
  384. package/dist/composables/useInfiniteScroll.js +2 -2
  385. package/dist/composables/useInfiniteScroll.js.map +1 -1
  386. package/dist/composables/useListbox.d.ts +0 -1
  387. package/dist/composables/useListbox.js +4 -10
  388. package/dist/composables/useListbox.js.map +1 -1
  389. package/dist/composables/useLiveAnnouncer.js.map +1 -1
  390. package/dist/composables/useMaskedField.js +28 -48
  391. package/dist/composables/useMaskedField.js.map +1 -1
  392. package/dist/composables/useModalDialog.js +1 -1
  393. package/dist/composables/useModalDialog.js.map +1 -1
  394. package/dist/composables/usePopover.js +1 -1
  395. package/dist/composables/usePopover.js.map +1 -1
  396. package/dist/composables/useProgressValue.js.map +1 -1
  397. package/dist/composables/useRootAttrs.js.map +1 -1
  398. package/dist/composables/useSlotNodes.js.map +1 -1
  399. package/dist/composables/useTextLimit.js.map +1 -1
  400. package/dist/composables/useTimer.js.map +1 -1
  401. package/dist/composables/useTypeahead.js.map +1 -1
  402. package/dist/composables/useVirtualList.js.map +1 -1
  403. package/dist/i18n/en.js.map +1 -1
  404. package/dist/i18n/fr.js.map +1 -1
  405. package/dist/i18n/state.js.map +1 -1
  406. package/dist/styles.css +1 -1
  407. package/dist/tokens/css.js.map +1 -1
  408. package/dist/tokens/index.d.ts +3 -0
  409. package/dist/tokens/index.js.map +1 -1
  410. package/dist/tokens/primitives.js.map +1 -1
  411. package/dist/tokens/semantic.d.ts +3 -0
  412. package/dist/tokens/semantic.js +6 -5
  413. package/dist/tokens/semantic.js.map +1 -1
  414. package/dist/tokens/themes/dark.js.map +1 -1
  415. package/dist/tokens/types.js.map +1 -1
  416. package/dist/tokens.json +12 -5
  417. package/dist/types.d.ts +0 -2
  418. package/dist/utils/array.js.map +1 -1
  419. package/dist/utils/arrowNav.js.map +1 -1
  420. package/dist/utils/attrs.js.map +1 -1
  421. package/dist/utils/chip.d.ts +4 -6
  422. package/dist/utils/chip.js +8 -5
  423. package/dist/utils/chip.js.map +1 -1
  424. package/dist/utils/clock.js +3 -1
  425. package/dist/utils/clock.js.map +1 -1
  426. package/dist/utils/css.js +1 -1
  427. package/dist/utils/css.js.map +1 -1
  428. package/dist/utils/date.js.map +1 -1
  429. package/dist/utils/direction.js.map +1 -1
  430. package/dist/utils/env.js.map +1 -1
  431. package/dist/utils/file.js +13 -31
  432. package/dist/utils/file.js.map +1 -1
  433. package/dist/utils/focus.js.map +1 -1
  434. package/dist/utils/hostWarns.js.map +1 -1
  435. package/dist/utils/ids.js.map +1 -1
  436. package/dist/utils/matcher.js.map +1 -1
  437. package/dist/utils/memo.js.map +1 -1
  438. package/dist/utils/number.js.map +1 -1
  439. package/dist/utils/text.js.map +1 -1
  440. package/dist/utils/time.js.map +1 -1
  441. package/dist/utils/vnode.js.map +1 -1
  442. package/package.json +19 -19
@@ -1 +1 @@
1
- {"version":3,"file":"first_page.js","names":[],"sources":["../../../../src/components/VIcon/icons/first_page.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `first_page`. */\nexport const first_page = {\n name: 'first_page',\n paths: [\n 'M280-240q-17 0-28.5-11.5T240-280v-400q0-17 11.5-28.5T280-720q17 0 28.5 11.5T320-680v400q0 17-11.5 28.5T280-240Zm272-240 156 156q11 11 11 28t-11 28q-11 11-28 11t-28-11L468-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q11 11 11 28t-11 28L552-480Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAa;CACxB,MAAM;CACN,OAAO,CACL,4QACF;AACF"}
1
+ {"version":3,"file":"first_page.js","names":["first_page"],"sources":["../../../../src/components/VIcon/icons/first_page.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `first_page`. */\nexport const first_page = {\n name: 'first_page',\n paths: [\n 'M280-240q-17 0-28.5-11.5T240-280v-400q0-17 11.5-28.5T280-720q17 0 28.5 11.5T320-680v400q0 17-11.5 28.5T280-240Zm272-240 156 156q11 11 11 28t-11 28q-11 11-28 11t-28-11L468-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q11 11 11 28t-11 28L552-480Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAa;CACxB,MAAM;CACN,OAAO,CACL,4QACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"folder_zip.js","names":[],"sources":["../../../../src/components/VIcon/icons/folder_zip.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `folder_zip`, outline then filled. */\nexport const folder_zip = {\n name: 'folder_zip',\n paths: [\n 'M640-480v-80h80v80h-80Zm0 80h-80v-80h80v80Zm0 80v-80h80v80h-80ZM447-640l-80-80H160v480h400v-80h80v80h160v-400H640v80h-80v-80H447ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm0-80v-480 480Z',\n 'M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm400-80h80v-80h80v-80h-80v-80h80v-80h-80v-80h-80v80h80v80h-80v80h80v80h-80v80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAa;CACxB,MAAM;CACN,OAAO,CACL,wSACA,oOACF;AACF"}
1
+ {"version":3,"file":"folder_zip.js","names":["folder_zip"],"sources":["../../../../src/components/VIcon/icons/folder_zip.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `folder_zip`, outline then filled. */\nexport const folder_zip = {\n name: 'folder_zip',\n paths: [\n 'M640-480v-80h80v80h-80Zm0 80h-80v-80h80v80Zm0 80v-80h80v80h-80ZM447-640l-80-80H160v480h400v-80h80v80h160v-400H640v80h-80v-80H447ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm0-80v-480 480Z',\n 'M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm400-80h80v-80h80v-80h-80v-80h80v-80h-80v-80h-80v80h80v80h-80v80h80v80h-80v80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAa;CACxB,MAAM;CACN,OAAO,CACL,wSACA,oOACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","names":[],"sources":["../../../../src/components/VIcon/icons/image.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `image`, outline then filled. */\nexport const image = {\n name: 'image',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0 0v-560 560Zm80-80h400q12 0 18-11t-2-21L586-459q-6-8-16-8t-16 8L450-320l-74-99q-6-8-16-8t-16 8l-80 107q-8 10-2 21t18 11Z',\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm80-160h400q12 0 18-11t-2-21L586-459q-6-8-16-8t-16 8L450-320l-74-99q-6-8-16-8t-16 8l-80 107q-8 10-2 21t18 11Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAQ;CACnB,MAAM;CACN,OAAO,CACL,4QACA,sOACF;AACF"}
1
+ {"version":3,"file":"image.js","names":["image"],"sources":["../../../../src/components/VIcon/icons/image.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `image`, outline then filled. */\nexport const image = {\n name: 'image',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0 0v-560 560Zm80-80h400q12 0 18-11t-2-21L586-459q-6-8-16-8t-16 8L450-320l-74-99q-6-8-16-8t-16 8l-80 107q-8 10-2 21t18 11Z',\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm80-160h400q12 0 18-11t-2-21L586-459q-6-8-16-8t-16 8L450-320l-74-99q-6-8-16-8t-16 8l-80 107q-8 10-2 21t18 11Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAQ;CACnB,MAAM;CACN,OAAO,CACL,4QACA,sOACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","names":[],"sources":["../../../../src/components/VIcon/icons/inbox.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `inbox`, outline then filled. */\nexport const inbox = {\n name: 'inbox',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-120H640q-30 38-71.5 59T480-240q-47 0-88.5-21T320-320H200v120Zm280-120q32 0 59-16.5t44-43.5q6-9 15-14.5t20-5.5h142v-360H200v360h142q11 0 20 5.5t15 14.5q17 27 44 43.5t59 16.5ZM200-200h560-560Z',\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm280-200q32 0 59-16.5t44-43.5q6-9 15-14.5t20-5.5h142v-360H200v360h142q11 0 20 5.5t15 14.5q17 27 44 43.5t59 16.5Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAQ;CACnB,MAAM;CACN,OAAO,CACL,oUACA,yOACF;AACF"}
1
+ {"version":3,"file":"inbox.js","names":["inbox"],"sources":["../../../../src/components/VIcon/icons/inbox.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `inbox`, outline then filled. */\nexport const inbox = {\n name: 'inbox',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-120H640q-30 38-71.5 59T480-240q-47 0-88.5-21T320-320H200v120Zm280-120q32 0 59-16.5t44-43.5q6-9 15-14.5t20-5.5h142v-360H200v360h142q11 0 20 5.5t15 14.5q17 27 44 43.5t59 16.5ZM200-200h560-560Z',\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm280-200q32 0 59-16.5t44-43.5q6-9 15-14.5t20-5.5h142v-360H200v360h142q11 0 20 5.5t15 14.5q17 27 44 43.5t59 16.5Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAQ;CACnB,MAAM;CACN,OAAO,CACL,oUACA,yOACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/VIcon/icons/index.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport { add } from './add'\nimport { arrow_downward } from './arrow_downward'\nimport { arrow_downward_alt } from './arrow_downward_alt'\nimport { arrow_drop_down } from './arrow_drop_down'\nimport { arrow_drop_up } from './arrow_drop_up'\nimport { arrow_left_alt } from './arrow_left_alt'\nimport { arrow_right_alt } from './arrow_right_alt'\nimport { arrow_upward } from './arrow_upward'\nimport { arrow_upward_alt } from './arrow_upward_alt'\nimport { attach_file } from './attach_file'\nimport { audio_file } from './audio_file'\nimport { calendar_today } from './calendar_today'\nimport { check } from './check'\nimport { check_circle } from './check_circle'\nimport { chevron_left } from './chevron_left'\nimport { chevron_right } from './chevron_right'\nimport { close } from './close'\nimport { cloud_upload } from './cloud_upload'\nimport { code } from './code'\nimport { colorize } from './colorize'\nimport { description } from './description'\nimport { error } from './error'\nimport { expand_less } from './expand_less'\nimport { expand_more } from './expand_more'\nimport { first_page } from './first_page'\nimport { folder_zip } from './folder_zip'\nimport { image } from './image'\nimport { inbox } from './inbox'\nimport { info } from './info'\nimport { last_page } from './last_page'\nimport { more_horiz } from './more_horiz'\nimport { notifications } from './notifications'\nimport { open_in_new } from './open_in_new'\nimport { picture_as_pdf } from './picture_as_pdf'\nimport { priority_high } from './priority_high'\nimport { remove } from './remove'\nimport { schedule } from './schedule'\nimport { search } from './search'\nimport { search_off } from './search_off'\nimport { star } from './star'\nimport { swap_vert } from './swap_vert'\nimport { table_chart } from './table_chart'\nimport { video_file } from './video_file'\nimport { warning } from './warning'\n\nexport { ICON_VIEW_BOX } from './viewBox'\nexport { builtinIconNames, type IconName } from './names'\nexport {\n add,\n arrow_downward,\n arrow_downward_alt,\n arrow_drop_down,\n arrow_drop_up,\n arrow_left_alt,\n arrow_right_alt,\n arrow_upward,\n arrow_upward_alt,\n attach_file,\n audio_file,\n calendar_today,\n check,\n check_circle,\n chevron_left,\n chevron_right,\n close,\n cloud_upload,\n code,\n colorize,\n description,\n error,\n expand_less,\n expand_more,\n first_page,\n folder_zip,\n image,\n inbox,\n info,\n last_page,\n more_horiz,\n notifications,\n open_in_new,\n picture_as_pdf,\n priority_high,\n remove,\n schedule,\n search,\n search_off,\n star,\n swap_vert,\n table_chart,\n video_file,\n warning,\n}\n\n/**\n * Every icon at once, for the places that legitimately want the whole set: the\n * gallery in the stories, the documentation site, the tests.\n *\n * NOTHING the library ships imports this barrel: a component imports the two or\n * three icon modules it draws, by name. Importing it from a component would pull all\n * 44 drawings back into every consumer's bundle and undo the split.\n */\nexport const builtinIcons = {\n add,\n arrow_downward,\n arrow_downward_alt,\n arrow_drop_down,\n arrow_drop_up,\n arrow_left_alt,\n arrow_right_alt,\n arrow_upward,\n arrow_upward_alt,\n attach_file,\n audio_file,\n calendar_today,\n check,\n check_circle,\n chevron_left,\n chevron_right,\n close,\n cloud_upload,\n code,\n colorize,\n description,\n error,\n expand_less,\n expand_more,\n first_page,\n folder_zip,\n image,\n inbox,\n info,\n last_page,\n more_horiz,\n notifications,\n open_in_new,\n picture_as_pdf,\n priority_high,\n remove,\n schedule,\n search,\n search_off,\n star,\n swap_vert,\n table_chart,\n video_file,\n warning,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,IAAa,IAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"index.js","names":["builtinIcons","ICON_VIEW_BOX","add","arrow_downward","arrow_downward_alt","arrow_drop_down","arrow_drop_up","arrow_left_alt","arrow_right_alt","arrow_upward","arrow_upward_alt","attach_file","audio_file","builtinIconNames","calendar_today","check","check_circle","chevron_left","chevron_right","close","cloud_upload","code","colorize","description","error","expand_less","expand_more","first_page","folder_zip","image","inbox","info","last_page","more_horiz","notifications","open_in_new","picture_as_pdf","priority_high","remove","schedule","search","search_off","star","swap_vert","table_chart","video_file","warning"],"sources":["../../../../src/components/VIcon/icons/index.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport { add } from './add'\nimport { arrow_downward } from './arrow_downward'\nimport { arrow_downward_alt } from './arrow_downward_alt'\nimport { arrow_drop_down } from './arrow_drop_down'\nimport { arrow_drop_up } from './arrow_drop_up'\nimport { arrow_left_alt } from './arrow_left_alt'\nimport { arrow_right_alt } from './arrow_right_alt'\nimport { arrow_upward } from './arrow_upward'\nimport { arrow_upward_alt } from './arrow_upward_alt'\nimport { attach_file } from './attach_file'\nimport { audio_file } from './audio_file'\nimport { calendar_today } from './calendar_today'\nimport { check } from './check'\nimport { check_circle } from './check_circle'\nimport { chevron_left } from './chevron_left'\nimport { chevron_right } from './chevron_right'\nimport { close } from './close'\nimport { cloud_upload } from './cloud_upload'\nimport { code } from './code'\nimport { colorize } from './colorize'\nimport { description } from './description'\nimport { error } from './error'\nimport { expand_less } from './expand_less'\nimport { expand_more } from './expand_more'\nimport { first_page } from './first_page'\nimport { folder_zip } from './folder_zip'\nimport { image } from './image'\nimport { inbox } from './inbox'\nimport { info } from './info'\nimport { last_page } from './last_page'\nimport { more_horiz } from './more_horiz'\nimport { notifications } from './notifications'\nimport { open_in_new } from './open_in_new'\nimport { picture_as_pdf } from './picture_as_pdf'\nimport { priority_high } from './priority_high'\nimport { remove } from './remove'\nimport { schedule } from './schedule'\nimport { search } from './search'\nimport { search_off } from './search_off'\nimport { star } from './star'\nimport { swap_vert } from './swap_vert'\nimport { table_chart } from './table_chart'\nimport { video_file } from './video_file'\nimport { warning } from './warning'\n\nexport { ICON_VIEW_BOX } from './viewBox'\nexport { builtinIconNames, type IconName } from './names'\nexport {\n add,\n arrow_downward,\n arrow_downward_alt,\n arrow_drop_down,\n arrow_drop_up,\n arrow_left_alt,\n arrow_right_alt,\n arrow_upward,\n arrow_upward_alt,\n attach_file,\n audio_file,\n calendar_today,\n check,\n check_circle,\n chevron_left,\n chevron_right,\n close,\n cloud_upload,\n code,\n colorize,\n description,\n error,\n expand_less,\n expand_more,\n first_page,\n folder_zip,\n image,\n inbox,\n info,\n last_page,\n more_horiz,\n notifications,\n open_in_new,\n picture_as_pdf,\n priority_high,\n remove,\n schedule,\n search,\n search_off,\n star,\n swap_vert,\n table_chart,\n video_file,\n warning,\n}\n\n/**\n * Every icon at once, for the places that legitimately want the whole set: the\n * gallery in the stories, the documentation site, the tests.\n *\n * NOTHING the library ships imports this barrel: a component imports the two or\n * three icon modules it draws, by name. Importing it from a component would pull all\n * 44 drawings back into every consumer's bundle and undo the split.\n */\nexport const builtinIcons = {\n add,\n arrow_downward,\n arrow_downward_alt,\n arrow_drop_down,\n arrow_drop_up,\n arrow_left_alt,\n arrow_right_alt,\n arrow_upward,\n arrow_upward_alt,\n attach_file,\n audio_file,\n calendar_today,\n check,\n check_circle,\n chevron_left,\n chevron_right,\n close,\n cloud_upload,\n code,\n colorize,\n description,\n error,\n expand_less,\n expand_more,\n first_page,\n folder_zip,\n image,\n inbox,\n info,\n last_page,\n more_horiz,\n notifications,\n open_in_new,\n picture_as_pdf,\n priority_high,\n remove,\n schedule,\n search,\n search_off,\n star,\n swap_vert,\n table_chart,\n video_file,\n warning,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,IAAaA,IAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","names":[],"sources":["../../../../src/components/VIcon/icons/info.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `info`, outline then filled. */\nexport const info = {\n name: 'info',\n paths: [\n 'M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z',\n 'M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAO;CAClB,MAAM;CACN,OAAO,CACL,mfACA,iZACF;AACF"}
1
+ {"version":3,"file":"info.js","names":["info"],"sources":["../../../../src/components/VIcon/icons/info.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `info`, outline then filled. */\nexport const info = {\n name: 'info',\n paths: [\n 'M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z',\n 'M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAO;CAClB,MAAM;CACN,OAAO,CACL,mfACA,iZACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"last_page.js","names":[],"sources":["../../../../src/components/VIcon/icons/last_page.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `last_page`. */\nexport const last_page = {\n name: 'last_page',\n paths: [\n 'M408-480 252-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L308-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Zm272-240q17 0 28.5 11.5T720-680v400q0 17-11.5 28.5T680-240q-17 0-28.5-11.5T640-280v-400q0-17 11.5-28.5T680-720Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAY;CACvB,MAAM;CACN,OAAO,CACL,2QACF;AACF"}
1
+ {"version":3,"file":"last_page.js","names":["last_page"],"sources":["../../../../src/components/VIcon/icons/last_page.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `last_page`. */\nexport const last_page = {\n name: 'last_page',\n paths: [\n 'M408-480 252-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L308-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Zm272-240q17 0 28.5 11.5T720-680v400q0 17-11.5 28.5T680-240q-17 0-28.5-11.5T640-280v-400q0-17 11.5-28.5T680-720Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAY;CACvB,MAAM;CACN,OAAO,CACL,2QACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"more_horiz.js","names":[],"sources":["../../../../src/components/VIcon/icons/more_horiz.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `more_horiz`. */\nexport const more_horiz = {\n name: 'more_horiz',\n paths: [\n 'M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAa;CACxB,MAAM;CACN,OAAO,CACL,gTACF;AACF"}
1
+ {"version":3,"file":"more_horiz.js","names":["more_horiz"],"sources":["../../../../src/components/VIcon/icons/more_horiz.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `more_horiz`. */\nexport const more_horiz = {\n name: 'more_horiz',\n paths: [\n 'M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAa;CACxB,MAAM;CACN,OAAO,CACL,gTACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","names":[],"sources":["../../../../src/components/VIcon/icons/names.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\n\nconst NAMES = [\n 'add',\n 'arrow_downward',\n 'arrow_downward_alt',\n 'arrow_drop_down',\n 'arrow_drop_up',\n 'arrow_left_alt',\n 'arrow_right_alt',\n 'arrow_upward',\n 'arrow_upward_alt',\n 'attach_file',\n 'audio_file',\n 'calendar_today',\n 'check',\n 'check_circle',\n 'chevron_left',\n 'chevron_right',\n 'close',\n 'cloud_upload',\n 'code',\n 'colorize',\n 'description',\n 'error',\n 'expand_less',\n 'expand_more',\n 'first_page',\n 'folder_zip',\n 'image',\n 'inbox',\n 'info',\n 'last_page',\n 'more_horiz',\n 'notifications',\n 'open_in_new',\n 'picture_as_pdf',\n 'priority_high',\n 'remove',\n 'schedule',\n 'search',\n 'search_off',\n 'star',\n 'swap_vert',\n 'table_chart',\n 'video_file',\n 'warning',\n] as const\n\n/** The icon names the DS renders itself: the contract of a consumer resolver. */\nexport type IconName = (typeof NAMES)[number]\n\n/**\n * The names alone, carrying no drawing at all. `classIconResolver` in `strict` mode\n * asks nothing more than \"does the design system ship this name?\", and a module of\n * its own is what stops a consumer who wired in their OWN icon library from\n * downloading 44 Material paths to answer that one question.\n */\nexport const builtinIconNames: ReadonlySet<string> = /* @__PURE__ */ new Set(NAMES)\n"],"mappings":"AAiEA,IAAa,oBAAwD,IAAI,IAAI,gBAxD/D,8eAwD+D,CAAK"}
1
+ {"version":3,"file":"names.js","names":["builtinIconNames"],"sources":["../../../../src/components/VIcon/icons/names.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\n\nconst NAMES = [\n 'add',\n 'arrow_downward',\n 'arrow_downward_alt',\n 'arrow_drop_down',\n 'arrow_drop_up',\n 'arrow_left_alt',\n 'arrow_right_alt',\n 'arrow_upward',\n 'arrow_upward_alt',\n 'attach_file',\n 'audio_file',\n 'calendar_today',\n 'check',\n 'check_circle',\n 'chevron_left',\n 'chevron_right',\n 'close',\n 'cloud_upload',\n 'code',\n 'colorize',\n 'description',\n 'error',\n 'expand_less',\n 'expand_more',\n 'first_page',\n 'folder_zip',\n 'image',\n 'inbox',\n 'info',\n 'last_page',\n 'more_horiz',\n 'notifications',\n 'open_in_new',\n 'picture_as_pdf',\n 'priority_high',\n 'remove',\n 'schedule',\n 'search',\n 'search_off',\n 'star',\n 'swap_vert',\n 'table_chart',\n 'video_file',\n 'warning',\n] as const\n\n/** The icon names the DS renders itself: the contract of a consumer resolver. */\nexport type IconName = (typeof NAMES)[number]\n\n/**\n * The names alone, carrying no drawing at all. `classIconResolver` in `strict` mode\n * asks nothing more than \"does the design system ship this name?\", and a module of\n * its own is what stops a consumer who wired in their OWN icon library from\n * downloading 44 Material paths to answer that one question.\n */\nexport const builtinIconNames: ReadonlySet<string> = /* @__PURE__ */ new Set(NAMES)\n"],"mappings":"AAiEA,IAAaA,oBAAwD,IAAI,IAAI,gBAxD/D,8eAwD+D,CAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","names":[],"sources":["../../../../src/components/VIcon/icons/notifications.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `notifications`, outline then filled. */\nexport const notifications = {\n name: 'notifications',\n paths: [\n 'M200-200q-17 0-28.5-11.5T160-240q0-17 11.5-28.5T200-280h40v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h40q17 0 28.5 11.5T800-240q0 17-11.5 28.5T760-200H200Zm280-300Zm0 420q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80ZM320-280h320v-280q0-66-47-113t-113-47q-66 0-113 47t-47 113v280Z',\n 'M200-200q-17 0-28.5-11.5T160-240q0-17 11.5-28.5T200-280h40v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h40q17 0 28.5 11.5T800-240q0 17-11.5 28.5T760-200H200ZM480-80q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAgB;CAC3B,MAAM;CACN,OAAO,CACL,gWACA,uRACF;AACF"}
1
+ {"version":3,"file":"notifications.js","names":["notifications"],"sources":["../../../../src/components/VIcon/icons/notifications.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `notifications`, outline then filled. */\nexport const notifications = {\n name: 'notifications',\n paths: [\n 'M200-200q-17 0-28.5-11.5T160-240q0-17 11.5-28.5T200-280h40v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h40q17 0 28.5 11.5T800-240q0 17-11.5 28.5T760-200H200Zm280-300Zm0 420q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80ZM320-280h320v-280q0-66-47-113t-113-47q-66 0-113 47t-47 113v280Z',\n 'M200-200q-17 0-28.5-11.5T160-240q0-17 11.5-28.5T200-280h40v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h40q17 0 28.5 11.5T800-240q0 17-11.5 28.5T760-200H200ZM480-80q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAgB;CAC3B,MAAM;CACN,OAAO,CACL,gWACA,uRACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"open_in_new.js","names":[],"sources":["../../../../src/components/VIcon/icons/open_in_new.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `open_in_new`. */\nexport const open_in_new = {\n name: 'open_in_new',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAc;CACzB,MAAM;CACN,OAAO,CACL,qZACF;AACF"}
1
+ {"version":3,"file":"open_in_new.js","names":["open_in_new"],"sources":["../../../../src/components/VIcon/icons/open_in_new.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `open_in_new`. */\nexport const open_in_new = {\n name: 'open_in_new',\n paths: [\n 'M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAc;CACzB,MAAM;CACN,OAAO,CACL,qZACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"picture_as_pdf.js","names":[],"sources":["../../../../src/components/VIcon/icons/picture_as_pdf.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `picture_as_pdf`, outline then filled. */\nexport const picture_as_pdf = {\n name: 'picture_as_pdf',\n paths: [\n 'M400-540h40q17 0 28.5-11.5T480-580v-40q0-17-11.5-28.5T440-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60Zm0-40v-40h40v40h-40Zm200 120q17 0 28.5-11.5T640-500v-120q0-17-11.5-28.5T600-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6h60Zm-40-40v-120h40v120h-40Zm160-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-20v-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-40q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60ZM320-240q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320Zm0-80h480v-480H320v480ZM160-80q-33 0-56.5-23.5T80-160v-520q0-17 11.5-28.5T120-720q17 0 28.5 11.5T160-680v520h520q17 0 28.5 11.5T720-120q0 17-11.5 28.5T680-80H160Zm160-720v480-480Z',\n 'M400-540h40q17 0 28.5-11.5T480-580v-40q0-17-11.5-28.5T440-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60Zm0-40v-40h40v40h-40Zm200 120q17 0 28.5-11.5T640-500v-120q0-17-11.5-28.5T600-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6h60Zm-40-40v-120h40v120h-40Zm160-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-20v-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-40q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60ZM320-240q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320ZM160-80q-33 0-56.5-23.5T80-160v-520q0-17 11.5-28.5T120-720q17 0 28.5 11.5T160-680v520h520q17 0 28.5 11.5T720-120q0 17-11.5 28.5T680-80H160Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAiB;CAC5B,MAAM;CACN,OAAO,CACL,6rBACA,mpBACF;AACF"}
1
+ {"version":3,"file":"picture_as_pdf.js","names":["picture_as_pdf"],"sources":["../../../../src/components/VIcon/icons/picture_as_pdf.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `picture_as_pdf`, outline then filled. */\nexport const picture_as_pdf = {\n name: 'picture_as_pdf',\n paths: [\n 'M400-540h40q17 0 28.5-11.5T480-580v-40q0-17-11.5-28.5T440-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60Zm0-40v-40h40v40h-40Zm200 120q17 0 28.5-11.5T640-500v-120q0-17-11.5-28.5T600-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6h60Zm-40-40v-120h40v120h-40Zm160-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-20v-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-40q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60ZM320-240q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320Zm0-80h480v-480H320v480ZM160-80q-33 0-56.5-23.5T80-160v-520q0-17 11.5-28.5T120-720q17 0 28.5 11.5T160-680v520h520q17 0 28.5 11.5T720-120q0 17-11.5 28.5T680-80H160Zm160-720v480-480Z',\n 'M400-540h40q17 0 28.5-11.5T480-580v-40q0-17-11.5-28.5T440-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60Zm0-40v-40h40v40h-40Zm200 120q17 0 28.5-11.5T640-500v-120q0-17-11.5-28.5T600-660h-60q-8 0-14 6t-6 14v160q0 8 6 14t14 6h60Zm-40-40v-120h40v120h-40Zm160-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-20v-40h20q8 0 14-6t6-14q0-8-6-14t-14-6h-40q-8 0-14 6t-6 14v160q0 8 6 14t14 6q8 0 14-6t6-14v-60ZM320-240q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320ZM160-80q-33 0-56.5-23.5T80-160v-520q0-17 11.5-28.5T120-720q17 0 28.5 11.5T160-680v520h520q17 0 28.5 11.5T720-120q0 17-11.5 28.5T680-80H160Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAiB;CAC5B,MAAM;CACN,OAAO,CACL,6rBACA,mpBACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"priority_high.js","names":[],"sources":["../../../../src/components/VIcon/icons/priority_high.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `priority_high`. */\nexport const priority_high = {\n name: 'priority_high',\n paths: [\n 'M480-120q-33 0-56.5-23.5T400-200q0-33 23.5-56.5T480-280q33 0 56.5 23.5T560-200q0 33-23.5 56.5T480-120Zm0-240q-33 0-56.5-23.5T400-440v-320q0-33 23.5-56.5T480-840q33 0 56.5 23.5T560-760v320q0 33-23.5 56.5T480-360Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAgB;CAC3B,MAAM;CACN,OAAO,CACL,qNACF;AACF"}
1
+ {"version":3,"file":"priority_high.js","names":["priority_high"],"sources":["../../../../src/components/VIcon/icons/priority_high.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `priority_high`. */\nexport const priority_high = {\n name: 'priority_high',\n paths: [\n 'M480-120q-33 0-56.5-23.5T400-200q0-33 23.5-56.5T480-280q33 0 56.5 23.5T560-200q0 33-23.5 56.5T480-120Zm0-240q-33 0-56.5-23.5T400-440v-320q0-33 23.5-56.5T480-840q33 0 56.5 23.5T560-760v320q0 33-23.5 56.5T480-360Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAgB;CAC3B,MAAM;CACN,OAAO,CACL,qNACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","names":[],"sources":["../../../../src/components/VIcon/icons/remove.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `remove`. */\nexport const remove = {\n name: 'remove',\n paths: [\n 'M240-440q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h480q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H240Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAS;CACpB,MAAM;CACN,OAAO,CACL,gHACF;AACF"}
1
+ {"version":3,"file":"remove.js","names":["remove"],"sources":["../../../../src/components/VIcon/icons/remove.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `remove`. */\nexport const remove = {\n name: 'remove',\n paths: [\n 'M240-440q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h480q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H240Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAS;CACpB,MAAM;CACN,OAAO,CACL,gHACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","names":[],"sources":["../../../../src/components/VIcon/icons/schedule.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `schedule`, outline then filled. */\nexport const schedule = {\n name: 'schedule',\n paths: [\n 'M520-496v-144q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v159q0 8 3 15.5t9 13.5l132 132q11 11 28 11t28-11q11-11 11-28t-11-28L520-496ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z',\n 'M520-496v-144q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v159q0 8 3 15.5t9 13.5l132 132q11 11 28 11t28-11q11-11 11-28t-11-28L520-496ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAW;CACtB,MAAM;CACN,OAAO,CACL,4bACA,uUACF;AACF"}
1
+ {"version":3,"file":"schedule.js","names":["schedule"],"sources":["../../../../src/components/VIcon/icons/schedule.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `schedule`, outline then filled. */\nexport const schedule = {\n name: 'schedule',\n paths: [\n 'M520-496v-144q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v159q0 8 3 15.5t9 13.5l132 132q11 11 28 11t28-11q11-11 11-28t-11-28L520-496ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z',\n 'M520-496v-144q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v159q0 8 3 15.5t9 13.5l132 132q11 11 28 11t28-11q11-11 11-28t-11-28L520-496ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAW;CACtB,MAAM;CACN,OAAO,CACL,4bACA,uUACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","names":[],"sources":["../../../../src/components/VIcon/icons/search.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `search`. */\nexport const search = {\n name: 'search',\n paths: [\n 'M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAS;CACpB,MAAM;CACN,OAAO,CACL,2RACF;AACF"}
1
+ {"version":3,"file":"search.js","names":["search"],"sources":["../../../../src/components/VIcon/icons/search.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `search`. */\nexport const search = {\n name: 'search',\n paths: [\n 'M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAS;CACpB,MAAM;CACN,OAAO,CACL,2RACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"search_off.js","names":[],"sources":["../../../../src/components/VIcon/icons/search_off.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `search_off`. */\nexport const search_off = {\n name: 'search_off',\n paths: [\n 'm280-252 56 57q6 6 14 6t14-6q6-6 6-14.5t-6-14.5l-56-56 57-57q6-6 6-14t-6-14q-6-6-14-6t-14 6l-57 57-57-57q-6-6-14-6t-14 6q-6 6-6 14t6 14l57 57-57 57q-6 6-6 14t6 14q6 6 14 6t14-6l57-57Zm0 172q-83 0-141.5-58.5T80-280q0-83 58.5-141.5T280-480q83 0 141.5 58.5T480-280q0 83-58.5 141.5T280-80Zm288-296q-12-13-25.5-26.5T516-428q38-24 61-64t23-88q0-75-52.5-127.5T420-760q-75 0-127.5 52.5T240-580q0 6 .5 11.5T242-557q-18 2-39.5 8T164-535q-2-11-3-22t-1-23q0-109 75.5-184.5T420-840q109 0 184.5 75.5T680-580q0 43-13.5 81.5T629-428l223 224q11 11 11.5 27.5T852-148q-11 11-28 11t-28-11L568-376Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAa;CACxB,MAAM;CACN,OAAO,CACL,mkBACF;AACF"}
1
+ {"version":3,"file":"search_off.js","names":["search_off"],"sources":["../../../../src/components/VIcon/icons/search_off.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `search_off`. */\nexport const search_off = {\n name: 'search_off',\n paths: [\n 'm280-252 56 57q6 6 14 6t14-6q6-6 6-14.5t-6-14.5l-56-56 57-57q6-6 6-14t-6-14q-6-6-14-6t-14 6l-57 57-57-57q-6-6-14-6t-14 6q-6 6-6 14t6 14l57 57-57 57q-6 6-6 14t6 14q6 6 14 6t14-6l57-57Zm0 172q-83 0-141.5-58.5T80-280q0-83 58.5-141.5T280-480q83 0 141.5 58.5T480-280q0 83-58.5 141.5T280-80Zm288-296q-12-13-25.5-26.5T516-428q38-24 61-64t23-88q0-75-52.5-127.5T420-760q-75 0-127.5 52.5T240-580q0 6 .5 11.5T242-557q-18 2-39.5 8T164-535q-2-11-3-22t-1-23q0-109 75.5-184.5T420-840q109 0 184.5 75.5T680-580q0 43-13.5 81.5T629-428l223 224q11 11 11.5 27.5T852-148q-11 11-28 11t-28-11L568-376Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAa;CACxB,MAAM;CACN,OAAO,CACL,mkBACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"star.js","names":[],"sources":["../../../../src/components/VIcon/icons/star.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `star`, outline then filled. */\nexport const star = {\n name: 'star',\n paths: [\n 'm354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm126 18L314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Zm0-201Z',\n 'M480-269 314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAO;CAClB,MAAM;CACN,OAAO,CACL,4WACA,qRACF;AACF"}
1
+ {"version":3,"file":"star.js","names":["star"],"sources":["../../../../src/components/VIcon/icons/star.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `star`, outline then filled. */\nexport const star = {\n name: 'star',\n paths: [\n 'm354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm126 18L314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Zm0-201Z',\n 'M480-269 314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAO;CAClB,MAAM;CACN,OAAO,CACL,4WACA,qRACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"swap_vert.js","names":[],"sources":["../../../../src/components/VIcon/icons/swap_vert.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `swap_vert`. */\nexport const swap_vert = {\n name: 'swap_vert',\n paths: [\n 'M360-440q-17 0-28.5-11.5T320-480v-247l-75 75q-11 11-27.5 11T189-652q-12-12-12-28.5t12-28.5l143-143q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l144 144q12 12 11.5 28T531-652q-12 11-28 11.5T475-652l-75-75v247q0 17-11.5 28.5T360-440ZM600-97q-8 0-15-2.5t-13-8.5L428-252q-12-12-11.5-28t12.5-28q12-11 28-11.5t28 11.5l75 75v-247q0-17 11.5-28.5T600-520q17 0 28.5 11.5T640-480v247l75-75q11-11 27.5-11t28.5 11q12 12 12 28.5T771-251L628-108q-6 6-13 8.5T600-97Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAY;CACvB,MAAM;CACN,OAAO,CACL,2bACF;AACF"}
1
+ {"version":3,"file":"swap_vert.js","names":["swap_vert"],"sources":["../../../../src/components/VIcon/icons/swap_vert.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `swap_vert`. */\nexport const swap_vert = {\n name: 'swap_vert',\n paths: [\n 'M360-440q-17 0-28.5-11.5T320-480v-247l-75 75q-11 11-27.5 11T189-652q-12-12-12-28.5t12-28.5l143-143q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l144 144q12 12 11.5 28T531-652q-12 11-28 11.5T475-652l-75-75v247q0 17-11.5 28.5T360-440ZM600-97q-8 0-15-2.5t-13-8.5L428-252q-12-12-11.5-28t12.5-28q12-11 28-11.5t28 11.5l75 75v-247q0-17 11.5-28.5T600-520q17 0 28.5 11.5T640-480v247l75-75q11-11 27.5-11t28.5 11q12 12 12 28.5T771-251L628-108q-6 6-13 8.5T600-97Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAY;CACvB,MAAM;CACN,OAAO,CACL,2bACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"table_chart.js","names":[],"sources":["../../../../src/components/VIcon/icons/table_chart.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `table_chart`, outline then filled. */\nexport const table_chart = {\n name: 'table_chart',\n paths: [\n 'M760-120H200q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120ZM200-640h560v-120H200v120Zm100 80H200v360h100v-360Zm360 0v360h100v-360H660Zm-80 0H380v360h200v-360Z',\n 'M120-640v-120q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v120H120Zm80 520q-33 0-56.5-23.5T120-200v-360h180v440H200Zm460 0v-440h180v360q0 33-23.5 56.5T760-120H660Zm-280 0v-440h200v440H380Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAc;CACzB,MAAM;CACN,OAAO,CACL,8NACA,mMACF;AACF"}
1
+ {"version":3,"file":"table_chart.js","names":["table_chart"],"sources":["../../../../src/components/VIcon/icons/table_chart.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `table_chart`, outline then filled. */\nexport const table_chart = {\n name: 'table_chart',\n paths: [\n 'M760-120H200q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120ZM200-640h560v-120H200v120Zm100 80H200v360h100v-360Zm360 0v360h100v-360H660Zm-80 0H380v360h200v-360Z',\n 'M120-640v-120q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v120H120Zm80 520q-33 0-56.5-23.5T120-200v-360h180v440H200Zm460 0v-440h180v360q0 33-23.5 56.5T760-120H660Zm-280 0v-440h200v440H380Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAc;CACzB,MAAM;CACN,OAAO,CACL,8NACA,mMACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"video_file.js","names":[],"sources":["../../../../src/components/VIcon/icons/video_file.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `video_file`, outline then filled. */\nexport const video_file = {\n name: 'video_file',\n paths: [\n 'M360-240h160q17 0 28.5-11.5T560-280v-40l51 27q10 5 19.5-1t9.5-17v-98q0-11-9.5-17t-19.5-1l-51 27v-40q0-17-11.5-28.5T520-480H360q-17 0-28.5 11.5T320-440v160q0 17 11.5 28.5T360-240ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h287q16 0 30.5 6t25.5 17l194 194q11 11 17 25.5t6 30.5v447q0 33-23.5 56.5T720-80H240Zm280-560v-160H240v640h480v-440H560q-17 0-28.5-11.5T520-640ZM240-800v200-200 640-640Z',\n 'M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h287q16 0 30.5 6t25.5 17l194 194q11 11 17 25.5t6 30.5v447q0 33-23.5 56.5T720-80H240Zm280-560q0 17 11.5 28.5T560-600h160L520-800v160ZM360-240h160q17 0 28.5-11.5T560-280v-40l51 27q10 5 19.5-1t9.5-17v-98q0-11-9.5-17t-19.5-1l-51 27v-40q0-17-11.5-28.5T520-480H360q-17 0-28.5 11.5T320-440v160q0 17 11.5 28.5T360-240Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAa;CACxB,MAAM;CACN,OAAO,CACL,yZACA,mXACF;AACF"}
1
+ {"version":3,"file":"video_file.js","names":["video_file"],"sources":["../../../../src/components/VIcon/icons/video_file.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `video_file`, outline then filled. */\nexport const video_file = {\n name: 'video_file',\n paths: [\n 'M360-240h160q17 0 28.5-11.5T560-280v-40l51 27q10 5 19.5-1t9.5-17v-98q0-11-9.5-17t-19.5-1l-51 27v-40q0-17-11.5-28.5T520-480H360q-17 0-28.5 11.5T320-440v160q0 17 11.5 28.5T360-240ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h287q16 0 30.5 6t25.5 17l194 194q11 11 17 25.5t6 30.5v447q0 33-23.5 56.5T720-80H240Zm280-560v-160H240v640h480v-440H560q-17 0-28.5-11.5T520-640ZM240-800v200-200 640-640Z',\n 'M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h287q16 0 30.5 6t25.5 17l194 194q11 11 17 25.5t6 30.5v447q0 33-23.5 56.5T720-80H240Zm280-560q0 17 11.5 28.5T560-600h160L520-800v160ZM360-240h160q17 0 28.5-11.5T560-280v-40l51 27q10 5 19.5-1t9.5-17v-98q0-11-9.5-17t-19.5-1l-51 27v-40q0-17-11.5-28.5T520-480H360q-17 0-28.5 11.5T320-440v160q0 17 11.5 28.5T360-240Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAa;CACxB,MAAM;CACN,OAAO,CACL,yZACA,mXACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"viewBox.js","names":[],"sources":["../../../../src/components/VIcon/icons/viewBox.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\n\n/**\n * Google's export grid, shared by every icon in the registry rather than repeated on\n * each of them. It is VIcon that puts it on the `<svg>`, so an icon module carries\n * its paths and nothing else.\n */\nexport const ICON_VIEW_BOX = '0 -960 960 960'\n"],"mappings":";AAcA,IAAa,IAAgB"}
1
+ {"version":3,"file":"viewBox.js","names":["ICON_VIEW_BOX"],"sources":["../../../../src/components/VIcon/icons/viewBox.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\n\n/**\n * Google's export grid, shared by every icon in the registry rather than repeated on\n * each of them. It is VIcon that puts it on the `<svg>`, so an icon module carries\n * its paths and nothing else.\n */\nexport const ICON_VIEW_BOX = '0 -960 960 960'\n"],"mappings":";AAcA,IAAaA,IAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"warning.js","names":[],"sources":["../../../../src/components/VIcon/icons/warning.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `warning`, outline then filled. */\nexport const warning = {\n name: 'warning',\n paths: [\n 'M109-120q-11 0-20-5.5T75-140q-5-9-5.5-19.5T75-180l370-640q6-10 15.5-15t19.5-5q10 0 19.5 5t15.5 15l370 640q6 10 5.5 20.5T885-140q-5 9-14 14.5t-20 5.5H109Zm69-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm0-120q17 0 28.5-11.5T520-400v-120q0-17-11.5-28.5T480-560q-17 0-28.5 11.5T440-520v120q0 17 11.5 28.5T480-360Zm0-100Z',\n 'M109-120q-11 0-20-5.5T75-140q-5-9-5.5-19.5T75-180l370-640q6-10 15.5-15t19.5-5q10 0 19.5 5t15.5 15l370 640q6 10 5.5 20.5T885-140q-5 9-14 14.5t-20 5.5H109Zm371-120q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm0-120q17 0 28.5-11.5T520-400v-120q0-17-11.5-28.5T480-560q-17 0-28.5 11.5T440-520v120q0 17 11.5 28.5T480-360Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAa,IAAU;CACrB,MAAM;CACN,OAAO,CACL,iZACA,8WACF;AACF"}
1
+ {"version":3,"file":"warning.js","names":["warning"],"sources":["../../../../src/components/VIcon/icons/warning.ts"],"sourcesContent":["/*\n * GENERATED FILE — do not edit by hand.\n * Regenerate: pnpm icons · Source: scripts/build-icons.ts\n *\n * Material Symbols Rounded (wght 400 · GRAD 0 · opsz 24)\n * google/material-design-icons @ 528cb964c01fb2b09bc3b9208f82b6d8f8c1c1e2\n * Apache-2.0 licence © Google.\n */\nimport type { BuiltinIcon } from '../types'\n\n/** Material Symbols Rounded `warning`, outline then filled. */\nexport const warning = {\n name: 'warning',\n paths: [\n 'M109-120q-11 0-20-5.5T75-140q-5-9-5.5-19.5T75-180l370-640q6-10 15.5-15t19.5-5q10 0 19.5 5t15.5 15l370 640q6 10 5.5 20.5T885-140q-5 9-14 14.5t-20 5.5H109Zm69-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm0-120q17 0 28.5-11.5T520-400v-120q0-17-11.5-28.5T480-560q-17 0-28.5 11.5T440-520v120q0 17 11.5 28.5T480-360Zm0-100Z',\n 'M109-120q-11 0-20-5.5T75-140q-5-9-5.5-19.5T75-180l370-640q6-10 15.5-15t19.5-5q10 0 19.5 5t15.5 15l370 640q6 10 5.5 20.5T885-140q-5 9-14 14.5t-20 5.5H109Zm371-120q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm0-120q17 0 28.5-11.5T520-400v-120q0-17-11.5-28.5T480-560q-17 0-28.5 11.5T440-520v120q0 17 11.5 28.5T480-360Z',\n ],\n} as const satisfies BuiltinIcon\n"],"mappings":";AAWA,IAAaA,IAAU;CACrB,MAAM;CACN,OAAO,CACL,iZACA,8WACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","names":[],"sources":["../../../src/components/VIcon/resolver.ts"],"sourcesContent":["// @ssr @core\n// Install the icon resolver before SSR and hydration so server and client resolve the same\n// drawings.\n/** The way to plug a third-party icon library into the design system. */\n\nimport { shallowRef, type Component } from 'vue'\n\nimport { builtinIconNames, type IconName } from './icons/names'\nimport type { IconContext, IconRender } from './types'\n\n/*\n * A lookup by name that answers only for the table's own keys: `aliases['constructor']` would\n * otherwise hand back a function from Object.prototype, and the \"I do not know this name\"\n * contract (`undefined`) would break for any name that happens to be one of its members.\n */\nfunction own<T>(table: Record<string, T> | undefined, name: string): T | undefined {\n return table !== undefined && Object.hasOwn(table, name) ? table[name] : undefined\n}\n\n/**\n * Turns an icon name into a description of what to draw. Answering `undefined` means \"I do not\n * know this name\", and not \"draw nothing\": VIcon then falls back to the built-in icons, and\n * after that to the ligature font.\n */\nexport type IconResolver = (name: string, ctx: IconContext) => IconRender | undefined\n\n/** A table mapping the design system's icon names to your own. */\nexport type IconAliases = Partial<Record<IconName, string>> & Record<string, string>\n\nconst resolver = shallowRef<IconResolver | undefined>(undefined)\n\n/** Installs the resolver every VIcon will consult, or removes it when passed `undefined`. */\nexport function setIconResolver(next: IconResolver | undefined): void {\n resolver.value = next\n}\n\n/** Asks the installed resolver, if there is one. Internal to VIcon, not public API. */\nexport function resolveIcon(name: string, ctx: IconContext): IconRender | undefined {\n return resolver.value?.(name, ctx)\n}\n\n/**\n * A resolver for a LIGATURE font: Material Symbols in any of its variants, or an IcoMoon build\n * made that way. Installing it is also how to have the design system's own icons drawn by the\n * font instead of by the SVGs shipped with the library, and therefore how to get the optical\n * size axis back: those SVGs are drawn at one optical size and cannot follow\n * `--vectis-icon-opsz`.\n */\nexport function ligatureIconResolver(options: { aliases?: IconAliases } = {}): IconResolver {\n const { aliases } = options\n return (name) => ({ text: own(aliases, name) ?? name })\n}\n\n/**\n * A resolver for a font driven by a CLASS and a pseudo-element: Font Awesome, Phosphor,\n * Bootstrap Icons and their kind. `strict`, which is the default, protects the design system's\n * own icons.\n */\nexport function classIconResolver(options: {\n aliases?: IconAliases\n /**\n * Builds the class list for one icon. `mapped` is the alias when the table has\n * one, and the original name otherwise.\n */\n className: (mapped: string, filled: boolean) => string\n strict?: boolean\n}): IconResolver {\n const { aliases, className, strict = true } = options\n return (name, ctx) => {\n const mapped = own(aliases, name)\n // The SET of names, never the icons themselves: this asks whether the design system ships\n // the name, and reaching for the drawings to answer it would make a consumer who wired in\n // their own icon library download all 34 Material paths.\n if (mapped === undefined && strict && builtinIconNames.has(name)) return undefined\n return { class: className(mapped ?? name, ctx.filled) }\n }\n}\n\n/**\n * A resolver for an icon set shipped as Vue COMPONENTS: Lucide, Untitled UI and their kind. It\n * is strict by construction, since a name absent from the table has no component to return: it\n * falls back to the built-in icons, and then to the ligature.\n */\nexport function componentIconResolver(options: {\n components: Partial<Record<IconName, Component>> & Record<string, Component>\n props?: (name: string, filled: boolean) => Record<string, unknown>\n}): IconResolver {\n const { components, props } = options\n return (name, ctx) => {\n const component = own<Component>(components, name)\n return component ? { component, props: props?.(name, ctx.filled) } : undefined\n }\n}\n"],"mappings":";;;AAeA,SAAS,EAAO,GAAsC,GAA6B;CACjF,OAAO,MAAU,KAAA,KAAa,OAAO,OAAO,GAAO,CAAI,IAAI,EAAM,KAAQ,KAAA;AAC3E;AAYA,IAAM,IAAW,EAAqC,KAAA,CAAS;AAG/D,SAAgB,EAAgB,GAAsC;CACpE,EAAS,QAAQ;AACnB;AAGA,SAAgB,EAAY,GAAc,GAA0C;CAClF,OAAO,EAAS,QAAQ,GAAM,CAAG;AACnC;AASA,SAAgB,EAAqB,IAAqC,CAAC,GAAiB;CAC1F,IAAM,EAAE,eAAY;CACpB,QAAQ,OAAU,EAAE,MAAM,EAAI,GAAS,CAAI,KAAK,EAAK;AACvD;AAOA,SAAgB,EAAkB,GAQjB;CACf,IAAM,EAAE,YAAS,cAAW,YAAS,OAAS;CAC9C,QAAQ,GAAM,MAAQ;EACpB,IAAM,IAAS,EAAI,GAAS,CAAI;EAI5B,YAAW,KAAA,KAAa,KAAU,EAAiB,IAAI,CAAI,IAC/D,OAAO,EAAE,OAAO,EAAU,KAAU,GAAM,EAAI,MAAM,EAAE;CACxD;AACF;AAOA,SAAgB,EAAsB,GAGrB;CACf,IAAM,EAAE,eAAY,aAAU;CAC9B,QAAQ,GAAM,MAAQ;EACpB,IAAM,IAAY,EAAe,GAAY,CAAI;EACjD,OAAO,IAAY;GAAE;GAAW,OAAO,IAAQ,GAAM,EAAI,MAAM;EAAE,IAAI,KAAA;CACvE;AACF"}
1
+ {"version":3,"file":"resolver.js","names":["own","table","name","resolver","shallowRef","setIconResolver","next","resolveIcon","ctx","ligatureIconResolver","options","aliases","classIconResolver","mapped","strict","builtinIconNames","className","componentIconResolver","component","components","props"],"sources":["../../../src/components/VIcon/resolver.ts"],"sourcesContent":["// @ssr @core\n// Install the icon resolver before SSR and hydration so server and client resolve the same\n// drawings.\n/** The way to plug a third-party icon library into the design system. */\n\nimport { shallowRef, type Component } from 'vue'\n\nimport { builtinIconNames, type IconName } from './icons/names'\nimport type { IconContext, IconRender } from './types'\n\n/*\n * A lookup by name that answers only for the table's own keys: `aliases['constructor']` would\n * otherwise hand back a function from Object.prototype, and the \"I do not know this name\"\n * contract (`undefined`) would break for any name that happens to be one of its members.\n */\nfunction own<T>(table: Record<string, T> | undefined, name: string): T | undefined {\n return table !== undefined && Object.hasOwn(table, name) ? table[name] : undefined\n}\n\n/**\n * Turns an icon name into a description of what to draw. Answering `undefined` means \"I do not\n * know this name\", and not \"draw nothing\": VIcon then falls back to the built-in icons, and\n * after that to the ligature font.\n */\nexport type IconResolver = (name: string, ctx: IconContext) => IconRender | undefined\n\n/** A table mapping the design system's icon names to your own. */\nexport type IconAliases = Partial<Record<IconName, string>> & Record<string, string>\n\nconst resolver = shallowRef<IconResolver | undefined>(undefined)\n\n/** Installs the resolver every VIcon will consult, or removes it when passed `undefined`. */\nexport function setIconResolver(next: IconResolver | undefined): void {\n resolver.value = next\n}\n\n/** Asks the installed resolver, if there is one. Internal to VIcon, not public API. */\nexport function resolveIcon(name: string, ctx: IconContext): IconRender | undefined {\n return resolver.value?.(name, ctx)\n}\n\n/**\n * A resolver for a LIGATURE font: Material Symbols in any of its variants, or an IcoMoon build\n * made that way. Installing it is also how to have the design system's own icons drawn by the\n * font instead of by the SVGs shipped with the library, and therefore how to get the optical\n * size axis back: those SVGs are drawn at one optical size and cannot follow\n * `--vectis-icon-opsz`.\n */\nexport function ligatureIconResolver(options: { aliases?: IconAliases } = {}): IconResolver {\n const { aliases } = options\n return (name) => ({ text: own(aliases, name) ?? name })\n}\n\n/**\n * A resolver for a font driven by a CLASS and a pseudo-element: Font Awesome, Phosphor,\n * Bootstrap Icons and their kind. `strict`, which is the default, protects the design system's\n * own icons.\n */\nexport function classIconResolver(options: {\n aliases?: IconAliases\n /**\n * Builds the class list for one icon. `mapped` is the alias when the table has\n * one, and the original name otherwise.\n */\n className: (mapped: string, filled: boolean) => string\n strict?: boolean\n}): IconResolver {\n const { aliases, className, strict = true } = options\n return (name, ctx) => {\n const mapped = own(aliases, name)\n // The SET of names, never the icons themselves: this asks whether the design system ships\n // the name, and reaching for the drawings to answer it would make a consumer who wired in\n // their own icon library download all 34 Material paths.\n if (mapped === undefined && strict && builtinIconNames.has(name)) return undefined\n return { class: className(mapped ?? name, ctx.filled) }\n }\n}\n\n/**\n * A resolver for an icon set shipped as Vue COMPONENTS: Lucide, Untitled UI and their kind. It\n * is strict by construction, since a name absent from the table has no component to return: it\n * falls back to the built-in icons, and then to the ligature.\n */\nexport function componentIconResolver(options: {\n components: Partial<Record<IconName, Component>> & Record<string, Component>\n props?: (name: string, filled: boolean) => Record<string, unknown>\n}): IconResolver {\n const { components, props } = options\n return (name, ctx) => {\n const component = own<Component>(components, name)\n return component ? { component, props: props?.(name, ctx.filled) } : undefined\n }\n}\n"],"mappings":";;;AAeA,SAASA,EAAO,GAAsC,GAA6B;CACjF,OAAOC,MAAU,KAAA,KAAa,OAAO,OAAOA,GAAOC,CAAI,IAAID,EAAMC,KAAQ,KAAA;AAC3E;AAYA,IAAMC,IAAWC,EAAqC,KAAA,CAAS;AAG/D,SAAgBC,EAAgB,GAAsC;CACpE,EAAS,QAAQC;AACnB;AAGA,SAAgBC,EAAY,GAAc,GAA0C;CAClF,OAAOJ,EAAS,QAAQD,GAAMM,CAAG;AACnC;AASA,SAAgBC,EAAqB,IAAqC,CAAC,GAAiB;CAC1F,IAAM,EAAE,eAAYC;CACpB,QAAQ,OAAU,EAAE,MAAMV,EAAIW,GAAST,CAAI,KAAKA,EAAK;AACvD;AAOA,SAAgBU,EAAkB,GAQjB;CACf,IAAM,EAAE,YAAS,cAAW,YAAS,OAASF;CAC9C,QAAQ,GAAM,MAAQ;EACpB,IAAMG,IAASb,EAAIW,GAAST,CAAI;EAIhC,IAAI,QAAW,KAAA,KAAaY,KAAUC,EAAiB,IAAIb,CAAI,IAC/D,OAAO,EAAE,OAAOc,EAAUH,KAAUX,GAAMM,EAAI,MAAM,EAAE;CACxD;AACF;AAOA,SAAgBS,EAAsB,GAGrB;CACf,IAAM,EAAE,eAAY,aAAUP;CAC9B,QAAQ,GAAM,MAAQ;EACpB,IAAMQ,IAAYlB,EAAemB,GAAYjB,CAAI;EACjD,OAAOgB,IAAY;GAAE;GAAW,OAAOE,IAAQlB,GAAMM,EAAI,MAAM;EAAE,IAAI,KAAA;CACvE;AACF"}
@@ -24,8 +24,6 @@ interface IconButtonProps {
24
24
  elevated?: boolean;
25
25
  /** The size of the square, taken from the scale shared by every control. */
26
26
  size?: ButtonSize;
27
- /** Takes 4px off both sides of the square, which stays square. */
28
- compact?: boolean;
29
27
  /**
30
28
  * The silhouette: a square carrying the corner radius every control shares, or a
31
29
  * circle. The box itself is square either way: only the corners change.
@@ -65,7 +63,6 @@ declare const __VLS_base: import('vue').DefineComponent<IconButtonProps, {}, {},
65
63
  variant: ButtonVariant;
66
64
  tone: ButtonTone;
67
65
  shape: IconButtonShape;
68
- compact: boolean;
69
66
  href: string;
70
67
  iconFilled: boolean;
71
68
  disabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"VIconButton.js","names":[],"sources":["../../../src/components/VIconButton/VIconButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y\n/**\n * Reuse VButton appearance and behaviour while requiring an accessible name for the icon-only\n * action.\n */\nimport { computed, inject } from 'vue'\nimport type { ButtonHTMLAttributes } from 'vue'\n\nimport VButton from '../VButton/VButton.vue'\nimport type { ButtonSize, ButtonTone, ButtonVariant } from '../VButton/VButton.vue'\nimport { buttonGroupKey } from '../VButton/context'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\n/** The silhouette. The box is square either way; only the corners change. */\nexport type IconButtonShape = 'square' | 'circular'\n\ninterface IconButtonProps {\n /**\n * What the button does, in words. It becomes the `aria-label` and is the only\n * thing a screen reader has to go on, so it names the action (\"Close\", \"Next\n * month\") rather than the picture.\n */\n label: string\n /**\n * How much visual weight the button carries, from the VButton variants. `ghost` by default,\n * and inside a VButtonGroup the group's own variant wins over it.\n */\n variant?: ButtonVariant\n /**\n * What the action means, in colour, from the VButton tones. Left out inside a VButtonGroup it\n * takes the group's tone; on its own it is `neutral`.\n */\n tone?: ButtonTone\n /** Raises the button with a shadow, and a raised surface on ghost and outline. */\n elevated?: boolean\n /** The size of the square, taken from the scale shared by every control. */\n size?: ButtonSize\n /** Takes 4px off both sides of the square, which stays square. */\n compact?: boolean\n /**\n * The silhouette: a square carrying the corner radius every control shares, or a\n * circle. The box itself is square either way: only the corners change.\n */\n shape?: IconButtonShape\n /**\n * Turns the button into an `<a>` pointing at this address, on VButton's terms: a disabled\n * or loading link becomes inert, the address dropped so it can be neither focused nor\n * followed.\n */\n href?: string\n /** The native type of the button, `button` by default. Ignored once `href` makes it a link. */\n type?: ButtonHTMLAttributes['type']\n /** Makes the button unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /** Replaces the icon with a spinner and disables the button while it turns. */\n loading?: boolean\n /**\n * The icon to show: an icon name, or an explicit render. The default slot is the\n * way to supply one this prop cannot express.\n */\n icon?: IconSource\n /** Renders the icon in its filled form (the font's `FILL` axis). */\n iconFilled?: boolean\n}\n\nconst props = withDefaults(defineProps<IconButtonProps>(), {\n variant: 'ghost',\n // No default, so that an absent tone stays distinguishable from an explicit one (see\n // the resolution below and VButton's own `tone`).\n tone: undefined,\n elevated: false,\n size: 'md',\n compact: false,\n shape: 'square',\n href: undefined,\n type: 'button',\n disabled: false,\n loading: false,\n icon: undefined,\n iconFilled: false,\n})\n\ndefineSlots<{\n /**\n * The icon, when the `icon` prop cannot express it: a VIcon, or an inline SVG\n * marked `aria-hidden=\"true\"`, the button being already named by its `label`.\n */\n default(): unknown\n}>()\n\n/*\n * The ONE prop a VButtonGroup cannot arbitrate on its own. The four others are handed to\n * VButton as they are and the group wins there over whatever arrives, so nothing has to be\n * resolved here; the tone goes the other way, the button's own answer first, and VButton would\n * take `accent` as its last resort where an icon-only button takes `neutral`.\n */\nconst group = inject(buttonGroupKey, null)\nconst resolvedTone = computed<ButtonTone>(() => props.tone ?? group?.tone ?? 'neutral')\n</script>\n\n<template>\n <!--\n Everything else is a real VButton prop and has to be forwarded by hand, an unforwarded one\n never reaching its data attribute.\n -->\n <VButton\n class=\"v-icon-button\"\n :data-shape=\"shape\"\n data-icon-only\n :variant=\"variant\"\n :tone=\"resolvedTone\"\n :elevated=\"elevated\"\n :size=\"size\"\n :compact=\"compact\"\n :href=\"href\"\n :type=\"type\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :aria-label=\"label\"\n >\n <!--\n The icon goes in VButton's `start` slot and not in its default one. The spinner replaces\n the start slot alone, the default slot being the label, which a loading button keeps.\n -->\n <template #start>\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" :filled=\"iconFilled\" />\n <slot v-else />\n </template>\n </VButton>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The square itself is VButton's `[data-icon-only]` rule, which this component opts into;\n * what is left here is the silhouette. [data-shape] takes the selector to (0,2,0), which\n * beats the border-radius VButton sets on that very element at (0,1,0) whatever the\n * consumer's bundler decides about the order of the two sheets. The `square` value writes\n * nothing; it IS the radius VButton already applies, so a consumer overriding\n * --vectis-radius-interactive keeps a single place to change.\n */\n .v-icon-button[data-shape='circular'] {\n border-radius: var(--vectis-radius-pill);\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"VIconButton.js","names":["_sfc_main","VIconButton_vue_vue_type_script_setup_true_lang_default","VIconButton_default"],"sources":["../../../src/components/VIconButton/VIconButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y\n/**\n * Reuse VButton appearance and behaviour while requiring an accessible name for the icon-only\n * action.\n */\nimport { computed, inject } from 'vue'\nimport type { ButtonHTMLAttributes } from 'vue'\n\nimport VButton from '../VButton/VButton.vue'\nimport type { ButtonSize, ButtonTone, ButtonVariant } from '../VButton/VButton.vue'\nimport { buttonGroupKey } from '../VButton/context'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\n/** The silhouette. The box is square either way; only the corners change. */\nexport type IconButtonShape = 'square' | 'circular'\n\ninterface IconButtonProps {\n /**\n * What the button does, in words. It becomes the `aria-label` and is the only\n * thing a screen reader has to go on, so it names the action (\"Close\", \"Next\n * month\") rather than the picture.\n */\n label: string\n /**\n * How much visual weight the button carries, from the VButton variants. `ghost` by default,\n * and inside a VButtonGroup the group's own variant wins over it.\n */\n variant?: ButtonVariant\n /**\n * What the action means, in colour, from the VButton tones. Left out inside a VButtonGroup it\n * takes the group's tone; on its own it is `neutral`.\n */\n tone?: ButtonTone\n /** Raises the button with a shadow, and a raised surface on ghost and outline. */\n elevated?: boolean\n /** The size of the square, taken from the scale shared by every control. */\n size?: ButtonSize\n /**\n * The silhouette: a square carrying the corner radius every control shares, or a\n * circle. The box itself is square either way: only the corners change.\n */\n shape?: IconButtonShape\n /**\n * Turns the button into an `<a>` pointing at this address, on VButton's terms: a disabled\n * or loading link becomes inert, the address dropped so it can be neither focused nor\n * followed.\n */\n href?: string\n /** The native type of the button, `button` by default. Ignored once `href` makes it a link. */\n type?: ButtonHTMLAttributes['type']\n /** Makes the button unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /** Replaces the icon with a spinner and disables the button while it turns. */\n loading?: boolean\n /**\n * The icon to show: an icon name, or an explicit render. The default slot is the\n * way to supply one this prop cannot express.\n */\n icon?: IconSource\n /** Renders the icon in its filled form (the font's `FILL` axis). */\n iconFilled?: boolean\n}\n\nconst props = withDefaults(defineProps<IconButtonProps>(), {\n variant: 'ghost',\n // No default, so that an absent tone stays distinguishable from an explicit one (see\n // the resolution below and VButton's own `tone`).\n tone: undefined,\n elevated: false,\n size: 'md',\n shape: 'square',\n href: undefined,\n type: 'button',\n disabled: false,\n loading: false,\n icon: undefined,\n iconFilled: false,\n})\n\ndefineSlots<{\n /**\n * The icon, when the `icon` prop cannot express it: a VIcon, or an inline SVG\n * marked `aria-hidden=\"true\"`, the button being already named by its `label`.\n */\n default(): unknown\n}>()\n\n/*\n * The ONE prop a VButtonGroup cannot arbitrate on its own. The four others are handed to\n * VButton as they are and the group wins there over whatever arrives, so nothing has to be\n * resolved here; the tone goes the other way, the button's own answer first, and VButton would\n * take `accent` as its last resort where an icon-only button takes `neutral`.\n */\nconst group = inject(buttonGroupKey, null)\nconst resolvedTone = computed<ButtonTone>(() => props.tone ?? group?.tone ?? 'neutral')\n</script>\n\n<template>\n <!--\n Everything else is a real VButton prop and has to be forwarded by hand, an unforwarded one\n never reaching its data attribute.\n -->\n <VButton\n class=\"v-icon-button\"\n :data-shape=\"shape\"\n data-icon-only\n :variant=\"variant\"\n :tone=\"resolvedTone\"\n :elevated=\"elevated\"\n :size=\"size\"\n :href=\"href\"\n :type=\"type\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :aria-label=\"label\"\n >\n <!--\n The icon goes in VButton's `start` slot and not in its default one. The spinner replaces\n the start slot alone, the default slot being the label, which a loading button keeps.\n -->\n <template #start>\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" :filled=\"iconFilled\" />\n <slot v-else />\n </template>\n </VButton>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The square itself is VButton's `[data-icon-only]` rule, which this component opts into;\n * what is left here is the silhouette. [data-shape] takes the selector to (0,2,0), which\n * beats the border-radius VButton sets on that very element at (0,1,0) whatever the\n * consumer's bundler decides about the order of the two sheets. The `square` value writes\n * nothing; it IS the radius VButton already applies, so a consumer overriding\n * --vectis-radius-interactive keeps a single place to change.\n */\n .v-icon-button[data-shape='circular'] {\n border-radius: var(--vectis-radius-pill);\n }\n}\n</style>\n"],"mappings":""}
@@ -15,10 +15,6 @@ var p = /*@__PURE__*/ o({
15
15
  default: !1
16
16
  },
17
17
  size: { default: "md" },
18
- compact: {
19
- type: Boolean,
20
- default: !1
21
- },
22
18
  shape: { default: "square" },
23
19
  href: { default: void 0 },
24
20
  type: { default: "button" },
@@ -46,7 +42,6 @@ var p = /*@__PURE__*/ o({
46
42
  tone: h.value,
47
43
  elevated: o.elevated,
48
44
  size: o.size,
49
- compact: o.compact,
50
45
  href: o.href,
51
46
  type: o.type,
52
47
  disabled: o.disabled,
@@ -61,7 +56,6 @@ var p = /*@__PURE__*/ o({
61
56
  "tone",
62
57
  "elevated",
63
58
  "size",
64
- "compact",
65
59
  "href",
66
60
  "type",
67
61
  "disabled",
@@ -1 +1 @@
1
- {"version":3,"file":"VIconButton.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VIconButton/VIconButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y\n/**\n * Reuse VButton appearance and behaviour while requiring an accessible name for the icon-only\n * action.\n */\nimport { computed, inject } from 'vue'\nimport type { ButtonHTMLAttributes } from 'vue'\n\nimport VButton from '../VButton/VButton.vue'\nimport type { ButtonSize, ButtonTone, ButtonVariant } from '../VButton/VButton.vue'\nimport { buttonGroupKey } from '../VButton/context'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\n/** The silhouette. The box is square either way; only the corners change. */\nexport type IconButtonShape = 'square' | 'circular'\n\ninterface IconButtonProps {\n /**\n * What the button does, in words. It becomes the `aria-label` and is the only\n * thing a screen reader has to go on, so it names the action (\"Close\", \"Next\n * month\") rather than the picture.\n */\n label: string\n /**\n * How much visual weight the button carries, from the VButton variants. `ghost` by default,\n * and inside a VButtonGroup the group's own variant wins over it.\n */\n variant?: ButtonVariant\n /**\n * What the action means, in colour, from the VButton tones. Left out inside a VButtonGroup it\n * takes the group's tone; on its own it is `neutral`.\n */\n tone?: ButtonTone\n /** Raises the button with a shadow, and a raised surface on ghost and outline. */\n elevated?: boolean\n /** The size of the square, taken from the scale shared by every control. */\n size?: ButtonSize\n /** Takes 4px off both sides of the square, which stays square. */\n compact?: boolean\n /**\n * The silhouette: a square carrying the corner radius every control shares, or a\n * circle. The box itself is square either way: only the corners change.\n */\n shape?: IconButtonShape\n /**\n * Turns the button into an `<a>` pointing at this address, on VButton's terms: a disabled\n * or loading link becomes inert, the address dropped so it can be neither focused nor\n * followed.\n */\n href?: string\n /** The native type of the button, `button` by default. Ignored once `href` makes it a link. */\n type?: ButtonHTMLAttributes['type']\n /** Makes the button unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /** Replaces the icon with a spinner and disables the button while it turns. */\n loading?: boolean\n /**\n * The icon to show: an icon name, or an explicit render. The default slot is the\n * way to supply one this prop cannot express.\n */\n icon?: IconSource\n /** Renders the icon in its filled form (the font's `FILL` axis). */\n iconFilled?: boolean\n}\n\nconst props = withDefaults(defineProps<IconButtonProps>(), {\n variant: 'ghost',\n // No default, so that an absent tone stays distinguishable from an explicit one (see\n // the resolution below and VButton's own `tone`).\n tone: undefined,\n elevated: false,\n size: 'md',\n compact: false,\n shape: 'square',\n href: undefined,\n type: 'button',\n disabled: false,\n loading: false,\n icon: undefined,\n iconFilled: false,\n})\n\ndefineSlots<{\n /**\n * The icon, when the `icon` prop cannot express it: a VIcon, or an inline SVG\n * marked `aria-hidden=\"true\"`, the button being already named by its `label`.\n */\n default(): unknown\n}>()\n\n/*\n * The ONE prop a VButtonGroup cannot arbitrate on its own. The four others are handed to\n * VButton as they are and the group wins there over whatever arrives, so nothing has to be\n * resolved here; the tone goes the other way, the button's own answer first, and VButton would\n * take `accent` as its last resort where an icon-only button takes `neutral`.\n */\nconst group = inject(buttonGroupKey, null)\nconst resolvedTone = computed<ButtonTone>(() => props.tone ?? group?.tone ?? 'neutral')\n</script>\n\n<template>\n <!--\n Everything else is a real VButton prop and has to be forwarded by hand, an unforwarded one\n never reaching its data attribute.\n -->\n <VButton\n class=\"v-icon-button\"\n :data-shape=\"shape\"\n data-icon-only\n :variant=\"variant\"\n :tone=\"resolvedTone\"\n :elevated=\"elevated\"\n :size=\"size\"\n :compact=\"compact\"\n :href=\"href\"\n :type=\"type\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :aria-label=\"label\"\n >\n <!--\n The icon goes in VButton's `start` slot and not in its default one. The spinner replaces\n the start slot alone, the default slot being the label, which a loading button keeps.\n -->\n <template #start>\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" :filled=\"iconFilled\" />\n <slot v-else />\n </template>\n </VButton>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The square itself is VButton's `[data-icon-only]` rule, which this component opts into;\n * what is left here is the silhouette. [data-shape] takes the selector to (0,2,0), which\n * beats the border-radius VButton sets on that very element at (0,1,0) whatever the\n * consumer's bundler decides about the order of the two sheets. The `square` value writes\n * nothing; it IS the radius VButton already applies, so a consumer overriding\n * --vectis-radius-interactive keeps a single place to change.\n */\n .v-icon-button[data-shape='circular'] {\n border-radius: var(--vectis-radius-pill);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEA,IAAM,IAAQ,GA+BR,IAAQ,EAAO,GAAgB,IAAI,GACnC,IAAe,QAA2B,EAAM,QAAQ,GAAO,QAAQ,SAAS;yBAQpF,EAuBU,GAAA;GAtBR,OAAM;GACL,cAAY,EAAA;GACb,kBAAA;GACC,SAAS,EAAA;GACT,MAAM,EAAA;GACN,UAAU,EAAA;GACV,MAAM,EAAA;GACN,SAAS,EAAA;GACT,MAAM,EAAA;GACN,MAAM,EAAA;GACN,UAAU,EAAA;GACV,SAAS,EAAA;GACT,cAAY,EAAA;;GAMF,OAAK,QADR,CAEO,EAAA,QAAA,EAAA,GAAb,EAAmE,GAAnE,EAAmE,EAAA,KAAA,EAAA,GAAxC,EAAA,CAAA,CAAS,CAAC,EAAA,IAAI,GAAA,EAAI,QAAQ,EAAA,WAAU,CAAA,GAAA,MAAA,IAAA,CAAA,QAAA,CAAA,KAC/D,EAAe,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"VIconButton.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","VButton","_withCtx","VIcon","_mergeProps","_unref","_renderSlot","VIcon_default","VButton_default","VIconButton_vue_vue_type_script_setup_true_lang_default","props","__props","group","inject","buttonGroupKey","resolvedTone","computed","openBlock","createBlock","withCtx","mergeProps","unref","iconProps","renderSlot","_ctx"],"sources":["../../../src/components/VIconButton/VIconButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @a11y\n/**\n * Reuse VButton appearance and behaviour while requiring an accessible name for the icon-only\n * action.\n */\nimport { computed, inject } from 'vue'\nimport type { ButtonHTMLAttributes } from 'vue'\n\nimport VButton from '../VButton/VButton.vue'\nimport type { ButtonSize, ButtonTone, ButtonVariant } from '../VButton/VButton.vue'\nimport { buttonGroupKey } from '../VButton/context'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconProps } from '../VIcon/iconProps'\nimport type { IconSource } from '../VIcon/types'\n\n/** The silhouette. The box is square either way; only the corners change. */\nexport type IconButtonShape = 'square' | 'circular'\n\ninterface IconButtonProps {\n /**\n * What the button does, in words. It becomes the `aria-label` and is the only\n * thing a screen reader has to go on, so it names the action (\"Close\", \"Next\n * month\") rather than the picture.\n */\n label: string\n /**\n * How much visual weight the button carries, from the VButton variants. `ghost` by default,\n * and inside a VButtonGroup the group's own variant wins over it.\n */\n variant?: ButtonVariant\n /**\n * What the action means, in colour, from the VButton tones. Left out inside a VButtonGroup it\n * takes the group's tone; on its own it is `neutral`.\n */\n tone?: ButtonTone\n /** Raises the button with a shadow, and a raised surface on ghost and outline. */\n elevated?: boolean\n /** The size of the square, taken from the scale shared by every control. */\n size?: ButtonSize\n /**\n * The silhouette: a square carrying the corner radius every control shares, or a\n * circle. The box itself is square either way: only the corners change.\n */\n shape?: IconButtonShape\n /**\n * Turns the button into an `<a>` pointing at this address, on VButton's terms: a disabled\n * or loading link becomes inert, the address dropped so it can be neither focused nor\n * followed.\n */\n href?: string\n /** The native type of the button, `button` by default. Ignored once `href` makes it a link. */\n type?: ButtonHTMLAttributes['type']\n /** Makes the button unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /** Replaces the icon with a spinner and disables the button while it turns. */\n loading?: boolean\n /**\n * The icon to show: an icon name, or an explicit render. The default slot is the\n * way to supply one this prop cannot express.\n */\n icon?: IconSource\n /** Renders the icon in its filled form (the font's `FILL` axis). */\n iconFilled?: boolean\n}\n\nconst props = withDefaults(defineProps<IconButtonProps>(), {\n variant: 'ghost',\n // No default, so that an absent tone stays distinguishable from an explicit one (see\n // the resolution below and VButton's own `tone`).\n tone: undefined,\n elevated: false,\n size: 'md',\n shape: 'square',\n href: undefined,\n type: 'button',\n disabled: false,\n loading: false,\n icon: undefined,\n iconFilled: false,\n})\n\ndefineSlots<{\n /**\n * The icon, when the `icon` prop cannot express it: a VIcon, or an inline SVG\n * marked `aria-hidden=\"true\"`, the button being already named by its `label`.\n */\n default(): unknown\n}>()\n\n/*\n * The ONE prop a VButtonGroup cannot arbitrate on its own. The four others are handed to\n * VButton as they are and the group wins there over whatever arrives, so nothing has to be\n * resolved here; the tone goes the other way, the button's own answer first, and VButton would\n * take `accent` as its last resort where an icon-only button takes `neutral`.\n */\nconst group = inject(buttonGroupKey, null)\nconst resolvedTone = computed<ButtonTone>(() => props.tone ?? group?.tone ?? 'neutral')\n</script>\n\n<template>\n <!--\n Everything else is a real VButton prop and has to be forwarded by hand, an unforwarded one\n never reaching its data attribute.\n -->\n <VButton\n class=\"v-icon-button\"\n :data-shape=\"shape\"\n data-icon-only\n :variant=\"variant\"\n :tone=\"resolvedTone\"\n :elevated=\"elevated\"\n :size=\"size\"\n :href=\"href\"\n :type=\"type\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :aria-label=\"label\"\n >\n <!--\n The icon goes in VButton's `start` slot and not in its default one. The spinner replaces\n the start slot alone, the default slot being the label, which a loading button keeps.\n -->\n <template #start>\n <VIcon v-if=\"icon\" v-bind=\"iconProps(icon)\" :filled=\"iconFilled\" />\n <slot v-else />\n </template>\n </VButton>\n</template>\n\n<style>\n@layer vectis.components {\n /*\n * The square itself is VButton's `[data-icon-only]` rule, which this component opts into;\n * what is left here is the silhouette. [data-shape] takes the selector to (0,2,0), which\n * beats the border-radius VButton sets on that very element at (0,1,0) whatever the\n * consumer's bundler decides about the order of the two sheets. The `square` value writes\n * nothing; it IS the radius VButton already applies, so a consumer overriding\n * --vectis-radius-interactive keeps a single place to change.\n */\n .v-icon-button[data-shape='circular'] {\n border-radius: var(--vectis-radius-pill);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEA,IAAMW,IAAQC,GA8BRC,IAAQC,EAAOC,GAAgB,IAAI,GACnCC,IAAeC,QAA2BN,EAAM,QAAQE,GAAO,QAAQ,SAAS;oBAQpFb,EAAA,GAAAC,EAsBUC,GAAA;GArBR,OAAM;GACL,cAAYU,EAAA;GACb,kBAAA;GACC,SAASA,EAAA;GACT,MAAMI,EAAA;GACN,UAAUJ,EAAA;GACV,MAAMA,EAAA;GACN,MAAMA,EAAA;GACN,MAAMA,EAAA;GACN,UAAUA,EAAA;GACV,SAASA,EAAA;GACT,cAAYA,EAAA;;GAMF,OAAKT,QAFlB,CAGiBS,EAAA,QAAbZ,EAAA,GAAAC,EAAmEG,GAAnEC,EAAmE,EAAA,KAAA,EAAA,GAAxCC,EAAAiB,CAAA,CAAS,CAACX,EAAA,IAAI,GAAA,EAAI,QAAQA,EAAA,WAAU,CAAA,GAAA,MAAA,IAAA,CAAA,QAAA,CAAA,KAC/DL,EAAekB,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
1
  @layer vectis.reset, vectis.tokens, vectis.components, vectis.utilities;
2
- @layer vectis.components{.v-input{width:100%}.v-input-field{--field-border-color:var(--vectis-color-border-strong);align-items:center;gap:var(--control-gap);height:var(--control-height);padding-inline:var(--control-padding-inline-field);background:var(--vectis-color-surface);color:var(--vectis-color-text);border:1px solid var(--field-border-color);border-radius:var(--vectis-radius-interactive);font-size:var(--control-font-size);transition:border-color var(--vectis-duration-fast) var(--vectis-ease-default), background-color var(--vectis-duration-fast) var(--vectis-ease-default), box-shadow var(--vectis-duration-fast) var(--vectis-ease-default);display:flex}.v-input-control{min-width:0;height:100%;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0}.v-input-control::placeholder{color:var(--vectis-color-text-subtle)}.v-input-control::-webkit-search-cancel-button{appearance:none}.v-input-control::-webkit-search-decoration{appearance:none}.v-input-control::-webkit-search-results-button{appearance:none}.v-input-control::-webkit-search-results-decoration{appearance:none}.v-input-control::-webkit-inner-spin-button{appearance:none}.v-input-control::-webkit-outer-spin-button{appearance:none}.v-input-control[type=number]{appearance:textfield}.v-input-control::-ms-reveal{display:none}.v-input-control:-webkit-autofill{border-radius:var(--vectis-radius-interactive)}.v-input .v-input-field[data-readonly]{--field-border-color:var(--vectis-color-border);background:var(--vectis-color-surface-sunken)}.v-input-field:hover:not(:has(.v-input-control:focus)):not(:has(.v-input-control:disabled,.v-input-control:user-invalid,.v-input-control[aria-invalid=true])){--field-border-color:color-mix(in oklab, var(--vectis-color-border-strong), var(--vectis-color-text) 15%)}.v-input-field:has(.v-input-control:focus){--field-border-color:var(--vectis-color-accent);box-shadow:0 0 0 1px var(--field-border-color);outline:var(--vectis-focus-ring-width) solid transparent}:is(.v-input-field:has(.v-input-control:user-invalid),.v-input-field:has(.v-input-control[aria-invalid=true])){--field-border-color:var(--vectis-color-danger)}.v-input-counter{flex:none}.v-input-field>.v-icon{color:var(--vectis-color-text-muted)}.v-input-field>.v-spinner{font-size:var(--vectis-icon-size)}.v-input .v-input-field[data-disabled]{--field-border-color:var(--vectis-color-border);background:var(--vectis-color-surface-muted);color:var(--vectis-color-text-muted);cursor:not-allowed}.v-input-field[data-disabled] .v-input-counter{color:var(--vectis-color-text-subtle)}.v-input-field[data-disabled] .v-input-action,.v-input-field[data-disabled]>.v-icon{color:inherit;cursor:not-allowed}.v-input-control:disabled{cursor:not-allowed}.v-input-end-pinned .v-input-field{position:relative}.v-input-end-pinned .v-input-field:has(>:is(.v-input-clear,.v-input-icon-end,.v-spinner)){padding-inline-end:calc(var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap))}.v-input-end-pinned .v-input-field:has(>.v-input-clear):has(>:is(.v-input-icon-end,.v-spinner)){padding-inline-end:calc(var(--control-padding-inline-field) + 2 * var(--vectis-icon-size) + 2 * var(--control-gap))}.v-input-end-pinned :is(.v-input-clear,.v-input-icon-end){inset-inline-end:var(--control-padding-inline-field);position:absolute;top:50%;translate:0 -50%}.v-input-end-pinned .v-input-clear:has(~:is(.v-input-icon-end,.v-spinner)){inset-inline-end:calc(var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap))}.v-input-chips .v-input-field{height:auto;min-height:var(--control-height);padding-block:var(--vectis-space-1);flex-wrap:wrap}.v-input-chips .v-input-control{height:var(--chip-height)}@media (prefers-reduced-motion:reduce){.v-input-field{transition:none}}}
2
+ @layer vectis.components{.v-input{width:100%}.v-input-field{--field-border-color:var(--vectis-color-border-strong);align-items:center;gap:var(--control-gap);height:var(--control-height);padding-inline:var(--control-padding-inline-field);background:var(--vectis-color-surface);color:var(--vectis-color-text);border:1px solid var(--field-border-color);border-radius:var(--vectis-radius-interactive);font-size:var(--control-font-size);transition:border-color var(--vectis-duration-fast) var(--vectis-ease-default), background-color var(--vectis-duration-fast) var(--vectis-ease-default), box-shadow var(--vectis-duration-fast) var(--vectis-ease-default);display:flex}.v-input-control{min-width:0;height:100%;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0}.v-input-control::placeholder{color:var(--vectis-color-text-subtle)}.v-input-control::-webkit-search-cancel-button{appearance:none}.v-input-control::-webkit-search-decoration{appearance:none}.v-input-control::-webkit-search-results-button{appearance:none}.v-input-control::-webkit-search-results-decoration{appearance:none}.v-input-control::-webkit-inner-spin-button{appearance:none}.v-input-control::-webkit-outer-spin-button{appearance:none}.v-input-control[type=number]{appearance:textfield}.v-input-control::-ms-reveal{display:none}.v-input-control:-webkit-autofill{border-radius:var(--vectis-radius-interactive)}.v-input .v-input-field[data-readonly]{--field-border-color:var(--vectis-color-border);background:var(--vectis-color-surface-sunken)}.v-input-field:hover:not(:has(.v-input-control:focus)):not(:has(.v-input-control:disabled,.v-input-control:user-invalid,.v-input-control[aria-invalid=true])){--field-border-color:color-mix(in oklab, var(--vectis-color-border-strong), var(--vectis-color-text) 15%)}.v-input-field:has(.v-input-control:focus){--field-border-color:var(--vectis-color-accent);box-shadow:0 0 0 1px var(--field-border-color);outline:var(--vectis-focus-ring-width) solid transparent}:is(.v-input-field:has(.v-input-control:user-invalid),.v-input-field:has(.v-input-control[aria-invalid=true])){--field-border-color:var(--vectis-color-danger)}.v-input-counter{flex:none}.v-input-field>.v-icon{color:var(--vectis-color-text-muted)}.v-input-field>.v-spinner{font-size:var(--vectis-icon-size)}.v-input .v-input-field[data-disabled]{--field-border-color:var(--vectis-color-border);background:var(--vectis-color-surface-muted);color:var(--vectis-color-text-muted);cursor:not-allowed}.v-input-field[data-disabled] .v-input-counter{color:var(--vectis-color-text-subtle)}.v-input-field[data-disabled] .v-input-action,.v-input-field[data-disabled]>.v-icon{color:inherit;cursor:not-allowed}.v-input-control:disabled{cursor:not-allowed}.v-input-end-pinned .v-input-field{position:relative}.v-input-end-pinned .v-input-field:has(>:is(.v-input-clear,.v-input-icon-end,.v-spinner)){padding-inline-end:calc(var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap))}.v-input-end-pinned .v-input-field:has(>.v-input-clear):has(>:is(.v-input-icon-end,.v-spinner)){padding-inline-end:calc(var(--control-padding-inline-field) + 2 * var(--vectis-icon-size) + 2 * var(--control-gap))}.v-input-end-pinned :is(.v-input-clear,.v-input-icon-end){inset-inline-end:var(--control-padding-inline-field);position:absolute;top:50%;translate:0 -50%}.v-input-end-pinned .v-input-clear:has(~:is(.v-input-icon-end,.v-spinner)){inset-inline-end:calc(var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap))}.v-input-chips .v-input-field{height:auto;min-height:var(--control-height);padding-block:var(--vectis-space-1);flex-wrap:wrap}.v-input-chips .v-input-control{height:var(--chip-height)}.v-input-chips .v-chip{block-size:var(--chip-height)}@media (prefers-reduced-motion:reduce){.v-input-field{transition:none}}}
@@ -20,8 +20,6 @@ export type InputControlProps = {
20
20
  interface InputProps {
21
21
  /** The height of the field: 32, 40 or 48 pixels. */
22
22
  size?: InputSize;
23
- /** Takes 4px off the height, leaving the padding, the text and the icons as they are. */
24
- compact?: boolean;
25
23
  /**
26
24
  * The native type of the input, which is also what tells a phone which keyboard to
27
25
  * offer: a numeric pad for `number`, an @ key for `email`.
@@ -182,7 +180,6 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {
182
180
  error: string;
183
181
  size: InputSize;
184
182
  type: InputType;
185
- compact: boolean;
186
183
  iconStart: IconSource;
187
184
  iconEnd: IconSource;
188
185
  disabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.js","names":[],"sources":["../../../src/components/VInput/VInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @core\n/**\n * Native input owns typing and validity. JavaScript bridges the model and restores focus after\n * the clear button disappears.\n */\nimport { computed, inject, ref, useId } from 'vue'\n\nimport VField from '../VField/VField.vue'\nimport type { FieldControlProps, FieldLabelPosition } from '../VField/VField.vue'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconName, iconProps } from '../VIcon/iconProps'\nimport { close as closeIcon } from '../VIcon/icons/close'\nimport type { IconSource } from '../VIcon/types'\nimport VSpinner from '../VSpinner/VSpinner.vue'\n\nimport { useIconClickHandlers } from '../../composables/useIconClickHandlers'\nimport { useClearable } from '../../composables/useClearable'\nimport { useControlShape } from '../../composables/useControlShape'\nimport { useRootAttrs } from '../../composables/useRootAttrs'\nimport { useTextLimit } from '../../composables/useTextLimit'\nimport { useMessages } from '../../i18n/state'\nimport { joinIds } from '../../utils/ids'\n\nimport { inputGroupKey } from './context'\n\n/** The height of the field: 32, 40 or 48 pixels. */\nexport type InputSize = 'sm' | 'md' | 'lg'\n\n/** The native type of the input, which also decides the keyboard a phone offers. */\nexport type InputType = 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url'\n\n/**\n * What the `#control` slot hands over, to bind on the element replacing the input: its id, which\n * the label points at, the class the field's states are drawn from, the references to the hint\n * and the error, and the attributes set on the field other than `class` and `style`. `required`\n * is left out: the replacing element states it in its own way.\n */\nexport type InputControlProps = {\n id: string\n class: string\n disabled: boolean\n 'aria-invalid'?: 'true'\n 'aria-describedby'?: string\n} & Record<string, unknown>\n\ninterface InputProps {\n /** The height of the field: 32, 40 or 48 pixels. */\n size?: InputSize\n /** Takes 4px off the height, leaving the padding, the text and the icons as they are. */\n compact?: boolean\n /**\n * The native type of the input, which is also what tells a phone which keyboard to\n * offer: a numeric pad for `number`, an @ key for `email`.\n */\n type?: InputType\n /** Marks the field as invalid whatever the browser thinks. */\n invalid?: boolean\n /** Makes the field unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /**\n * Shows the value without allowing it to be changed. The field can still be\n * focused and copied from, and it hides the clear button, unless `clearVisible`\n * answers that question explicitly.\n */\n readonly?: boolean\n /**\n * Refuses the keyboard without drawing the field as read-only: the native attribute is set,\n * but the field keeps its ordinary look and its clear cross.\n */\n noTyping?: boolean\n /** The label, tied to the field so that clicking it focuses the field. */\n label?: string\n /**\n * A line of help under the field. It is tied to the input for assistive\n * technology, so it is read out along with the label.\n */\n hint?: string\n /**\n * A message saying what is wrong with the value, shown in place of the hint so that the field\n * does not grow. It marks the field invalid, is read along with it, and is announced when it\n * appears or changes.\n */\n error?: string\n /** Marks the field as required: an asterisk follows the label, and the input is `required`. */\n required?: boolean\n /** Hides the label visually. It still names the field for assistive technology. */\n hideLabel?: boolean\n /**\n * Where the label sits: above the field (`top`, the default), or at its start, in a column of\n * its own, moving back above when there is not room for both.\n */\n labelPosition?: FieldLabelPosition\n /**\n * An icon inside the field, at the start. It is decorative by default and becomes a real\n * button as soon as a `@click:icon-start` listener is attached, in which case it needs\n * `iconStartLabel`.\n */\n iconStart?: IconSource\n /**\n * The same at the end of the field. The `#end` slot replaces it, and the loading\n * spinner takes its place while it turns.\n */\n iconEnd?: IconSource\n /** What the start icon does, in words, once it is clickable. */\n iconStartLabel?: string\n /** What the end icon does, in words, once it is clickable. */\n iconEndLabel?: string\n /** Shows a spinner at the end of the field, in place of the end icon or slot. */\n loading?: boolean\n /**\n * What screen readers announce while the spinner turns. It falls back to the\n * design system dictionary.\n */\n loadingText?: string\n /**\n * Offers a cross that empties the field. It appears when there is something to\n * clear and the field can be edited.\n */\n clearable?: boolean\n /**\n * Decides whether the cross is shown, instead of letting the field work it out\n * from its own content (a read-only field included).\n *\n * It exists for the components built on top of this one, where what there is to\n * clear is not the text: VCombobox holds its selection as chips beside the field,\n * and a read-only date or time picker changes its value through a panel rather\n * than by typing.\n */\n clearVisible?: boolean\n /** What the clear button does, in words. It falls back to the design system dictionary. */\n clearLabel?: string\n /**\n * The maximum number of characters. By default this is the browser's own limit,\n * which simply refuses anything beyond it.\n */\n maxlength?: number\n /**\n * Turns that limit into a soft one: the reader may type past it, and the field goes into\n * error instead of silently refusing the keystrokes.\n */\n softLimit?: boolean\n /**\n * Shows how much has been typed, at the end of the field: \"12/80\" against a limit,\n * or just \"12\" without one.\n */\n counter?: boolean\n}\n\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<InputProps>(), {\n size: 'md',\n compact: false,\n type: 'text',\n invalid: false,\n disabled: false,\n readonly: false,\n label: undefined,\n hint: undefined,\n error: undefined,\n required: false,\n hideLabel: false,\n labelPosition: 'top',\n iconStart: undefined,\n iconEnd: undefined,\n iconStartLabel: undefined,\n iconEndLabel: undefined,\n loading: false,\n loadingText: undefined,\n clearable: false,\n clearVisible: undefined,\n clearLabel: undefined,\n maxlength: undefined,\n softLimit: false,\n noTyping: false,\n counter: false,\n})\n\nconst emit = defineEmits<{\n /** The start icon was clicked. Attaching this listener is what makes it a button. */\n 'click:icon-start': [event: MouseEvent]\n /** The end icon was clicked. Attaching this listener is what makes it a button. */\n 'click:icon-end': [event: MouseEvent]\n /** The clear button was pressed. The field has already been emptied. */\n clear: []\n}>()\n\ndefineSlots<{\n /**\n * Content at the start of the field, rendered after `iconStart` rather than in its place,\n * which lets a field composed on top of this one put the chips standing for its values here\n * beside an icon it still wants drawn.\n */\n start?(): unknown\n /**\n * Controls of your own inside the field, placed before the field's own: the clear cross and\n * the end icon.\n */\n 'value-end'?(): unknown\n /**\n * Replaces the input with another control, for a field composed on top of this one: VSelect\n * puts its button here. Bind `controlProps` on it; the field then draws its focus, invalid and\n * disabled states from that control. The model, the limit and the counter apply to the input\n * alone.\n */\n control?(props: { controlProps: InputControlProps }): unknown\n /**\n * Content at the end of the field, which replaces `iconEnd`. It is hidden while\n * the field is loading, the spinner taking that place.\n */\n end?(): unknown\n /**\n * Content at the end of the hint's line, under the field. Bind `id` on it: it joins the\n * field's description, after the error and the hint.\n */\n meta?(props: { id: string }): unknown\n}>()\n\n/** The value, typed as text or a number rather than text alone. */\nconst model = defineModel<string | number>({ default: '' })\n\n/**\n * The value seen as text. Every measurement of its length; the counter, the soft limit, whether\n * the clear cross has anything to clear; goes through this, since a number has no length of its\n * own.\n */\nconst modelText = computed(() => String(model.value ?? ''))\n\nconst { rootClass, rootStyle, forwardedAttrs: restAttrs } = useRootAttrs()\n\n// `disabled` is the one read as an or, the two answers being cumulative (VInput/context.ts).\nconst group = inject(inputGroupKey, null)\nconst {\n size: resolvedSize,\n compact: resolvedCompact,\n disabled: resolvedDisabled,\n} = useControlShape(props, group)\n\n// The prop keeps priority; what it falls back to is the dictionary, so the default\n// wording follows the language the design system is set to.\nconst m = useMessages()\nconst resolvedClearLabel = computed(() => props.clearLabel ?? m.value.common.clear)\n\nconst counterId = useId()\n\nconst { hasIconStartHandler, hasIconEndHandler } = useIconClickHandlers({\n name: 'VInput',\n iconStartLabel: props.iconStartLabel,\n iconEndLabel: props.iconEndLabel,\n})\n\nconst controlEl = ref<HTMLInputElement | null>(null)\n\nconst { showClear, onClear } = useClearable({\n clearable: () => props.clearable,\n clearVisible: () => props.clearVisible,\n disabled: () => resolvedDisabled.value,\n readonly: () => props.readonly,\n text: () => modelText.value,\n controlEl,\n onCleared: () => {\n model.value = ''\n emit('clear')\n },\n})\n\n// The counter and the soft limit both measure `modelText` rather than the model\n// itself, a number having no length.\nconst { counterText, over } = useTextLimit({\n el: controlEl,\n text: () => modelText.value,\n maxlength: () => props.maxlength,\n softLimit: () => props.softLimit,\n})\n\n/**\n * The attributes of the input, built on VField's: the consumer's attributes win over the\n * `invalid` prop, and the counter inside the field joins the description last.\n */\nfunction inputAttrs(fieldProps: FieldControlProps): FieldControlProps {\n return {\n 'aria-invalid': props.invalid ? 'true' : undefined,\n ...fieldProps,\n 'aria-describedby': joinIds(fieldProps['aria-describedby'], props.counter && counterId),\n }\n}\n\nfunction controlProps(fieldProps: FieldControlProps): InputControlProps {\n const bound = inputAttrs(fieldProps)\n delete bound.required\n return { ...bound, class: 'v-input-control', disabled: resolvedDisabled.value }\n}\n\n// The real input sits inside the wrapper, out of reach of whoever renders this component. These\n// three are how the components built on it get there; VCombobox refocuses the field and selects\n// its text this way.\ndefineExpose({\n /** Moves the focus to the real input. */\n focus: (options?: FocusOptions) => controlEl.value?.focus(options),\n /** Selects everything in the field, as VCombobox does when it reopens its panel. */\n select: () => controlEl.value?.select(),\n /** The real `<input>`, for what neither of the two above covers. */\n el: controlEl,\n})\n</script>\n\n<template>\n <VField\n v-bind=\"restAttrs\"\n class=\"v-input\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :required=\"required\"\n :disabled=\"resolvedDisabled\"\n :hide-label=\"hideLabel\"\n :label-position=\"labelPosition\"\n >\n <template #default=\"{ fieldProps }\">\n <div\n class=\"v-input-field v-control\"\n :data-size=\"resolvedSize\"\n :data-compact=\"resolvedCompact ? '' : undefined\"\n :data-disabled=\"resolvedDisabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n >\n <!--\n The start icon is rendered before the slot, where the end icon is the slot's own\n fallback. That asymmetry is what the composed fields need: VCombobox and VFileInput fill\n `#start` with the chips standing for their values, which is OTHER content in the same\n zone rather than another way of drawing the icon.\n -->\n <button\n v-if=\"iconStart && hasIconStartHandler\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-icon-start\"\n :aria-label=\"iconStartLabel ?? iconName(iconStart)\"\n :disabled=\"resolvedDisabled\"\n @click=\"emit('click:icon-start', $event)\"\n >\n <VIcon v-bind=\"iconProps(iconStart)\" />\n </button>\n <VIcon v-else-if=\"iconStart\" v-bind=\"iconProps(iconStart)\" class=\"v-input-icon-start\" />\n <slot name=\"start\" />\n\n <slot name=\"control\" :control-props=\"controlProps(fieldProps)\">\n <!-- The label's `for` matches the id inside fieldProps, which the rule cannot follow. -->\n <!-- eslint-disable-next-line vuejs-accessibility/form-control-has-label -->\n <input\n ref=\"controlEl\"\n v-model=\"model\"\n v-bind=\"inputAttrs(fieldProps)\"\n class=\"v-input-control\"\n :type=\"type\"\n :maxlength=\"softLimit ? undefined : maxlength\"\n :disabled=\"resolvedDisabled\"\n :readonly=\"readonly || noTyping || undefined\"\n />\n </slot>\n\n <span\n v-if=\"counter\"\n :id=\"counterId\"\n class=\"v-input-counter v-field-counter\"\n :data-over=\"over ? '' : undefined\"\n >\n {{ counterText }}\n </span>\n\n <!-- Before the clear cross rather than after it, so that a consumer's control reads\n and tabs in the same order: what acts on the value sits next to the value, and\n the field's own controls stay together at the end. -->\n <slot name=\"value-end\" />\n\n <button\n v-if=\"showClear\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-clear\"\n :aria-label=\"resolvedClearLabel\"\n @click=\"onClear\"\n >\n <VIcon :name=\"closeIcon\" />\n </button>\n\n <VSpinner v-if=\"loading\" :label=\"loadingText\" />\n <slot v-else name=\"end\">\n <button\n v-if=\"iconEnd && hasIconEndHandler\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-icon-end\"\n :aria-label=\"iconEndLabel ?? iconName(iconEnd)\"\n :disabled=\"resolvedDisabled\"\n @click=\"emit('click:icon-end', $event)\"\n >\n <VIcon v-bind=\"iconProps(iconEnd)\" />\n </button>\n <VIcon v-else-if=\"iconEnd\" v-bind=\"iconProps(iconEnd)\" class=\"v-input-icon-end\" />\n </slot>\n </div>\n </template>\n <template v-if=\"$slots.meta\" #meta=\"{ id }\"><slot :id=\"id\" name=\"meta\" /></template>\n </VField>\n</template>\n\n<style>\n@layer vectis.components {\n /* The root is a VField, which lays out the label, the hint and the error. */\n .v-input {\n width: 100%;\n }\n\n /*\n * This is the box that carries the border, the background and the focus ring, and the size and\n * state attributes. `--field-border-color` is the single source of truth for its colour, and the hover, error\n * and disabled states do nothing but redefine it.\n */\n .v-input-field {\n --field-border-color: var(--vectis-color-border-strong);\n\n display: flex;\n align-items: center;\n gap: var(--control-gap);\n height: var(--control-height);\n padding-inline: var(--control-padding-inline-field);\n background: var(--vectis-color-surface);\n color: var(--vectis-color-text);\n border: 1px solid var(--field-border-color);\n border-radius: var(--vectis-radius-interactive);\n font-size: var(--control-font-size);\n transition:\n border-color var(--vectis-duration-fast) var(--vectis-ease-default),\n background-color var(--vectis-duration-fast) var(--vectis-ease-default),\n box-shadow var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-input-control {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n outline: none; /* The focus ring is drawn by the field around it, not here */\n }\n\n .v-input-control::placeholder {\n color: var(--vectis-color-text-subtle);\n }\n\n /* The browsers' own in-field controls are removed, because the design system draws\n its own: WebKit's search cross would sit beside the `clearable` one, the number\n spinners and Edge's password-reveal eye would clash with the icons. */\n .v-input-control::-webkit-search-cancel-button,\n .v-input-control::-webkit-search-decoration,\n .v-input-control::-webkit-search-results-button,\n .v-input-control::-webkit-search-results-decoration,\n .v-input-control::-webkit-inner-spin-button,\n .v-input-control::-webkit-outer-spin-button {\n -webkit-appearance: none;\n appearance: none;\n }\n\n .v-input-control[type='number'] {\n appearance: textfield;\n }\n\n .v-input-control::-ms-reveal {\n display: none;\n }\n\n /*\n * Its colour cannot be changed, but matching the field's radius at least stops it from\n * showing square corners inside a rounded box.\n */\n .v-input-control:-webkit-autofill {\n border-radius: var(--vectis-radius-interactive);\n }\n\n /*\n * This block must stay first in the sequence of states: read-only, then hover, focus, invalid\n * and disabled. The read-only, focus, invalid and disabled selectors all weigh (0,3,0),\n * `:has()` taking the specificity of what it contains, so nothing but the source order\n * arbitrates between them.\n */\n .v-input .v-input-field[data-readonly] {\n --field-border-color: var(--vectis-color-border);\n\n background: var(--vectis-color-surface-sunken);\n }\n\n .v-input-field:hover:not(:has(.v-input-control:focus)):not(\n :has(\n .v-input-control:disabled,\n .v-input-control:user-invalid,\n .v-input-control[aria-invalid='true']\n )\n ) {\n --field-border-color: color-mix(\n in oklab,\n var(--vectis-color-border-strong),\n var(--vectis-color-text) 15%\n );\n }\n\n /*\n * The selector watches the control's focus and not `:focus-within`, so that when one of the\n * field's own buttons; the cross, a clickable icon; takes keyboard focus, only that button's\n * outline lights up: two indicators at once would be unreadable. And it is `:focus` rather\n * than `:focus-visible`, because a text field shows its focus even when it was reached with\n * the mouse.\n */\n .v-input-field:has(.v-input-control:focus) {\n --field-border-color: var(--vectis-color-accent);\n\n box-shadow: 0 0 0 1px var(--field-border-color);\n outline: var(--vectis-focus-ring-width) solid transparent;\n }\n\n /*\n * Only the colour variable is changed, which is why the border and the focus ring both turn\n * red without either being restated.\n */\n .v-input-field:has(.v-input-control:user-invalid),\n .v-input-field:has(.v-input-control[aria-invalid='true']) {\n --field-border-color: var(--vectis-color-danger);\n }\n\n /* Inside the box it must not shrink, or a long value would squeeze its figures. */\n .v-input-counter {\n flex: none;\n }\n\n /* A decorative icon is drawn in a muted grey, so it stays quieter than the text\n being typed beside it. */\n .v-input-field > .v-icon {\n color: var(--vectis-color-text-muted);\n }\n\n .v-input-field > .v-spinner {\n font-size: var(--vectis-icon-size);\n }\n\n /*\n * A disabled field greys out through the colour tokens, the same ones VCheckbox and VRadio\n * use, and never through opacity. It comes last in the sequence of states, which at equal\n * specificity is what makes it win over all of them, the error included: a disabled field is\n * not submitted, so it has nothing to report.\n */\n .v-input .v-input-field[data-disabled] {\n --field-border-color: var(--vectis-color-border);\n\n background: var(--vectis-color-surface-muted);\n color: var(--vectis-color-text-muted);\n cursor: not-allowed;\n }\n\n .v-input-field[data-disabled] .v-input-counter {\n color: var(--vectis-color-text-subtle);\n }\n\n .v-input-field[data-disabled] .v-input-action,\n .v-input-field[data-disabled] > .v-icon {\n color: inherit;\n cursor: not-allowed;\n }\n\n .v-input-control:disabled {\n cursor: not-allowed;\n }\n\n /*\n * They live in this sheet because it is the one both are guaranteed to load, being built on\n * VInput; the core sheet would charge every consumer for them. `.v-input-end-pinned` lifts\n * the clear cross and whatever carries `.v-input-icon-end`; the end icon, or a composed\n * field's own chevron and spinner; out of the flow, so they stay pinned to the end of the\n * field and vertically centred whatever the chips do.\n */\n .v-input-end-pinned .v-input-field {\n position: relative;\n }\n\n .v-input-end-pinned .v-input-field:has(> :is(.v-input-clear, .v-input-icon-end, .v-spinner)) {\n padding-inline-end: calc(\n var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap)\n );\n }\n\n .v-input-end-pinned\n .v-input-field:has(> .v-input-clear):has(> :is(.v-input-icon-end, .v-spinner)) {\n padding-inline-end: calc(\n var(--control-padding-inline-field) + 2 * var(--vectis-icon-size) + 2 * var(--control-gap)\n );\n }\n\n .v-input-end-pinned :is(.v-input-clear, .v-input-icon-end) {\n position: absolute;\n inset-inline-end: var(--control-padding-inline-field);\n top: 50%;\n translate: 0 -50%;\n }\n\n /*\n * This inset reads in glyphs and not in buttons. The cross is one of the field's buttons,\n * whose negative margin; half the difference between icon and button; already cancels its own\n * overhang, so an inset lands on the glyph's edge.\n */\n .v-input-end-pinned .v-input-clear:has(~ :is(.v-input-icon-end, .v-spinner)) {\n inset-inline-end: calc(\n var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap)\n );\n }\n\n /*\n * The control rule must stay at (0,2,0). VCombobox folds its search input away with a (0,3,0)\n * rule that zeroes this height, and at equal weight the winner would be whichever of the two\n * sheets a bundler put last.\n */\n .v-input-chips .v-input-field {\n flex-wrap: wrap;\n height: auto;\n min-height: var(--control-height);\n padding-block: var(--vectis-space-1);\n }\n\n .v-input-chips .v-input-control {\n height: var(--chip-height);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-input-field {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"VInput.js","names":["_sfc_main","VInput_vue_vue_type_script_setup_true_lang_default","VInput_default"],"sources":["../../../src/components/VInput/VInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @core\n/**\n * Native input owns typing and validity. JavaScript bridges the model and restores focus after\n * the clear button disappears.\n */\nimport { computed, inject, ref, useId } from 'vue'\n\nimport VField from '../VField/VField.vue'\nimport type { FieldControlProps, FieldLabelPosition } from '../VField/VField.vue'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { iconName, iconProps } from '../VIcon/iconProps'\nimport { close as closeIcon } from '../VIcon/icons/close'\nimport type { IconSource } from '../VIcon/types'\nimport VSpinner from '../VSpinner/VSpinner.vue'\n\nimport { useIconClickHandlers } from '../../composables/useIconClickHandlers'\nimport { useClearable } from '../../composables/useClearable'\nimport { useControlShape } from '../../composables/useControlShape'\nimport { useRootAttrs } from '../../composables/useRootAttrs'\nimport { useTextLimit } from '../../composables/useTextLimit'\nimport { useMessages } from '../../i18n/state'\nimport { joinIds } from '../../utils/ids'\n\nimport { inputGroupKey } from './context'\n\n/** The height of the field: 32, 40 or 48 pixels. */\nexport type InputSize = 'sm' | 'md' | 'lg'\n\n/** The native type of the input, which also decides the keyboard a phone offers. */\nexport type InputType = 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url'\n\n/**\n * What the `#control` slot hands over, to bind on the element replacing the input: its id, which\n * the label points at, the class the field's states are drawn from, the references to the hint\n * and the error, and the attributes set on the field other than `class` and `style`. `required`\n * is left out: the replacing element states it in its own way.\n */\nexport type InputControlProps = {\n id: string\n class: string\n disabled: boolean\n 'aria-invalid'?: 'true'\n 'aria-describedby'?: string\n} & Record<string, unknown>\n\ninterface InputProps {\n /** The height of the field: 32, 40 or 48 pixels. */\n size?: InputSize\n /**\n * The native type of the input, which is also what tells a phone which keyboard to\n * offer: a numeric pad for `number`, an @ key for `email`.\n */\n type?: InputType\n /** Marks the field as invalid whatever the browser thinks. */\n invalid?: boolean\n /** Makes the field unusable, greyed out through the colour tokens. */\n disabled?: boolean\n /**\n * Shows the value without allowing it to be changed. The field can still be\n * focused and copied from, and it hides the clear button, unless `clearVisible`\n * answers that question explicitly.\n */\n readonly?: boolean\n /**\n * Refuses the keyboard without drawing the field as read-only: the native attribute is set,\n * but the field keeps its ordinary look and its clear cross.\n */\n noTyping?: boolean\n /** The label, tied to the field so that clicking it focuses the field. */\n label?: string\n /**\n * A line of help under the field. It is tied to the input for assistive\n * technology, so it is read out along with the label.\n */\n hint?: string\n /**\n * A message saying what is wrong with the value, shown in place of the hint so that the field\n * does not grow. It marks the field invalid, is read along with it, and is announced when it\n * appears or changes.\n */\n error?: string\n /** Marks the field as required: an asterisk follows the label, and the input is `required`. */\n required?: boolean\n /** Hides the label visually. It still names the field for assistive technology. */\n hideLabel?: boolean\n /**\n * Where the label sits: above the field (`top`, the default), or at its start, in a column of\n * its own, moving back above when there is not room for both.\n */\n labelPosition?: FieldLabelPosition\n /**\n * An icon inside the field, at the start. It is decorative by default and becomes a real\n * button as soon as a `@click:icon-start` listener is attached, in which case it needs\n * `iconStartLabel`.\n */\n iconStart?: IconSource\n /**\n * The same at the end of the field. The `#end` slot replaces it, and the loading\n * spinner takes its place while it turns.\n */\n iconEnd?: IconSource\n /** What the start icon does, in words, once it is clickable. */\n iconStartLabel?: string\n /** What the end icon does, in words, once it is clickable. */\n iconEndLabel?: string\n /** Shows a spinner at the end of the field, in place of the end icon or slot. */\n loading?: boolean\n /**\n * What screen readers announce while the spinner turns. It falls back to the\n * design system dictionary.\n */\n loadingText?: string\n /**\n * Offers a cross that empties the field. It appears when there is something to\n * clear and the field can be edited.\n */\n clearable?: boolean\n /**\n * Decides whether the cross is shown, instead of letting the field work it out\n * from its own content (a read-only field included).\n *\n * It exists for the components built on top of this one, where what there is to\n * clear is not the text: VCombobox holds its selection as chips beside the field,\n * and a read-only date or time picker changes its value through a panel rather\n * than by typing.\n */\n clearVisible?: boolean\n /** What the clear button does, in words. It falls back to the design system dictionary. */\n clearLabel?: string\n /**\n * The maximum number of characters. By default this is the browser's own limit,\n * which simply refuses anything beyond it.\n */\n maxlength?: number\n /**\n * Turns that limit into a soft one: the reader may type past it, and the field goes into\n * error instead of silently refusing the keystrokes.\n */\n softLimit?: boolean\n /**\n * Shows how much has been typed, at the end of the field: \"12/80\" against a limit,\n * or just \"12\" without one.\n */\n counter?: boolean\n}\n\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<InputProps>(), {\n size: 'md',\n type: 'text',\n invalid: false,\n disabled: false,\n readonly: false,\n label: undefined,\n hint: undefined,\n error: undefined,\n required: false,\n hideLabel: false,\n labelPosition: 'top',\n iconStart: undefined,\n iconEnd: undefined,\n iconStartLabel: undefined,\n iconEndLabel: undefined,\n loading: false,\n loadingText: undefined,\n clearable: false,\n clearVisible: undefined,\n clearLabel: undefined,\n maxlength: undefined,\n softLimit: false,\n noTyping: false,\n counter: false,\n})\n\nconst emit = defineEmits<{\n /** The start icon was clicked. Attaching this listener is what makes it a button. */\n 'click:icon-start': [event: MouseEvent]\n /** The end icon was clicked. Attaching this listener is what makes it a button. */\n 'click:icon-end': [event: MouseEvent]\n /** The clear button was pressed. The field has already been emptied. */\n clear: []\n}>()\n\ndefineSlots<{\n /**\n * Content at the start of the field, rendered after `iconStart` rather than in its place,\n * which lets a field composed on top of this one put the chips standing for its values here\n * beside an icon it still wants drawn.\n */\n start?(): unknown\n /**\n * Controls of your own inside the field, placed before the field's own: the clear cross and\n * the end icon.\n */\n 'value-end'?(): unknown\n /**\n * Replaces the input with another control, for a field composed on top of this one: VSelect\n * puts its button here. Bind `controlProps` on it; the field then draws its focus, invalid and\n * disabled states from that control. The model, the limit and the counter apply to the input\n * alone.\n */\n control?(props: { controlProps: InputControlProps }): unknown\n /**\n * Content at the end of the field, which replaces `iconEnd`. It is hidden while\n * the field is loading, the spinner taking that place.\n */\n end?(): unknown\n /**\n * Content at the end of the hint's line, under the field. Bind `id` on it: it joins the\n * field's description, after the error and the hint.\n */\n meta?(props: { id: string }): unknown\n}>()\n\n/** The value, typed as text or a number rather than text alone. */\nconst model = defineModel<string | number>({ default: '' })\n\n/**\n * The value seen as text. Every measurement of its length; the counter, the soft limit, whether\n * the clear cross has anything to clear; goes through this, since a number has no length of its\n * own.\n */\nconst modelText = computed(() => String(model.value ?? ''))\n\nconst { rootClass, rootStyle, forwardedAttrs: restAttrs } = useRootAttrs()\n\n// `disabled` is the one read as an or, the two answers being cumulative (VInput/context.ts).\nconst group = inject(inputGroupKey, null)\nconst { size: resolvedSize, disabled: resolvedDisabled } = useControlShape(props, group)\n\n// The prop keeps priority; what it falls back to is the dictionary, so the default\n// wording follows the language the design system is set to.\nconst m = useMessages()\nconst resolvedClearLabel = computed(() => props.clearLabel ?? m.value.common.clear)\n\nconst counterId = useId()\n\nconst { hasIconStartHandler, hasIconEndHandler } = useIconClickHandlers({\n name: 'VInput',\n iconStartLabel: props.iconStartLabel,\n iconEndLabel: props.iconEndLabel,\n})\n\nconst controlEl = ref<HTMLInputElement | null>(null)\n\nconst { showClear, onClear } = useClearable({\n clearable: () => props.clearable,\n clearVisible: () => props.clearVisible,\n disabled: () => resolvedDisabled.value,\n readonly: () => props.readonly,\n text: () => modelText.value,\n controlEl,\n onCleared: () => {\n model.value = ''\n emit('clear')\n },\n})\n\n// The counter and the soft limit both measure `modelText` rather than the model\n// itself, a number having no length.\nconst { counterText, over } = useTextLimit({\n el: controlEl,\n text: () => modelText.value,\n maxlength: () => props.maxlength,\n softLimit: () => props.softLimit,\n})\n\n/**\n * The attributes of the input, built on VField's: the consumer's attributes win over the\n * `invalid` prop, and the counter inside the field joins the description last.\n */\nfunction inputAttrs(fieldProps: FieldControlProps): FieldControlProps {\n return {\n 'aria-invalid': props.invalid ? 'true' : undefined,\n ...fieldProps,\n 'aria-describedby': joinIds(fieldProps['aria-describedby'], props.counter && counterId),\n }\n}\n\nfunction controlProps(fieldProps: FieldControlProps): InputControlProps {\n const bound = inputAttrs(fieldProps)\n delete bound.required\n return { ...bound, class: 'v-input-control', disabled: resolvedDisabled.value }\n}\n\n// The real input sits inside the wrapper, out of reach of whoever renders this component. These\n// three are how the components built on it get there; VCombobox refocuses the field and selects\n// its text this way.\ndefineExpose({\n /** Moves the focus to the real input. */\n focus: (options?: FocusOptions) => controlEl.value?.focus(options),\n /** Selects everything in the field, as VCombobox does when it reopens its panel. */\n select: () => controlEl.value?.select(),\n /** The real `<input>`, for what neither of the two above covers. */\n el: controlEl,\n})\n</script>\n\n<template>\n <VField\n v-bind=\"restAttrs\"\n class=\"v-input\"\n :class=\"rootClass\"\n :style=\"rootStyle\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :required=\"required\"\n :disabled=\"resolvedDisabled\"\n :hide-label=\"hideLabel\"\n :label-position=\"labelPosition\"\n >\n <template #default=\"{ fieldProps }\">\n <div\n class=\"v-input-field v-control\"\n :data-size=\"resolvedSize\"\n :data-disabled=\"resolvedDisabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n >\n <!--\n The start icon is rendered before the slot, where the end icon is the slot's own\n fallback. That asymmetry is what the composed fields need: VCombobox and VFileInput fill\n `#start` with the chips standing for their values, which is OTHER content in the same\n zone rather than another way of drawing the icon.\n -->\n <button\n v-if=\"iconStart && hasIconStartHandler\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-icon-start\"\n :aria-label=\"iconStartLabel ?? iconName(iconStart)\"\n :disabled=\"resolvedDisabled\"\n @click=\"emit('click:icon-start', $event)\"\n >\n <VIcon v-bind=\"iconProps(iconStart)\" />\n </button>\n <VIcon v-else-if=\"iconStart\" v-bind=\"iconProps(iconStart)\" class=\"v-input-icon-start\" />\n <slot name=\"start\" />\n\n <slot name=\"control\" :control-props=\"controlProps(fieldProps)\">\n <!-- The label's `for` matches the id inside fieldProps, which the rule cannot follow. -->\n <!-- eslint-disable-next-line vuejs-accessibility/form-control-has-label -->\n <input\n ref=\"controlEl\"\n v-model=\"model\"\n v-bind=\"inputAttrs(fieldProps)\"\n class=\"v-input-control\"\n :type=\"type\"\n :maxlength=\"softLimit ? undefined : maxlength\"\n :disabled=\"resolvedDisabled\"\n :readonly=\"readonly || noTyping || undefined\"\n />\n </slot>\n\n <span\n v-if=\"counter\"\n :id=\"counterId\"\n class=\"v-input-counter v-field-counter\"\n :data-over=\"over ? '' : undefined\"\n >\n {{ counterText }}\n </span>\n\n <!-- Before the clear cross rather than after it, so that a consumer's control reads\n and tabs in the same order: what acts on the value sits next to the value, and\n the field's own controls stay together at the end. -->\n <slot name=\"value-end\" />\n\n <button\n v-if=\"showClear\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-clear\"\n :aria-label=\"resolvedClearLabel\"\n @click=\"onClear\"\n >\n <VIcon :name=\"closeIcon\" />\n </button>\n\n <VSpinner v-if=\"loading\" :label=\"loadingText\" />\n <slot v-else name=\"end\">\n <button\n v-if=\"iconEnd && hasIconEndHandler\"\n type=\"button\"\n class=\"v-input-action v-field-action v-input-icon-end\"\n :aria-label=\"iconEndLabel ?? iconName(iconEnd)\"\n :disabled=\"resolvedDisabled\"\n @click=\"emit('click:icon-end', $event)\"\n >\n <VIcon v-bind=\"iconProps(iconEnd)\" />\n </button>\n <VIcon v-else-if=\"iconEnd\" v-bind=\"iconProps(iconEnd)\" class=\"v-input-icon-end\" />\n </slot>\n </div>\n </template>\n <template v-if=\"$slots.meta\" #meta=\"{ id }\"><slot :id=\"id\" name=\"meta\" /></template>\n </VField>\n</template>\n\n<style>\n@layer vectis.components {\n /* The root is a VField, which lays out the label, the hint and the error. */\n .v-input {\n width: 100%;\n }\n\n /*\n * This is the box that carries the border, the background and the focus ring, and the size and\n * state attributes. `--field-border-color` is the single source of truth for its colour, and the hover, error\n * and disabled states do nothing but redefine it.\n */\n .v-input-field {\n --field-border-color: var(--vectis-color-border-strong);\n\n display: flex;\n align-items: center;\n gap: var(--control-gap);\n height: var(--control-height);\n padding-inline: var(--control-padding-inline-field);\n background: var(--vectis-color-surface);\n color: var(--vectis-color-text);\n border: 1px solid var(--field-border-color);\n border-radius: var(--vectis-radius-interactive);\n font-size: var(--control-font-size);\n transition:\n border-color var(--vectis-duration-fast) var(--vectis-ease-default),\n background-color var(--vectis-duration-fast) var(--vectis-ease-default),\n box-shadow var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n .v-input-control {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n outline: none; /* The focus ring is drawn by the field around it, not here */\n }\n\n .v-input-control::placeholder {\n color: var(--vectis-color-text-subtle);\n }\n\n /* The browsers' own in-field controls are removed, because the design system draws\n its own: WebKit's search cross would sit beside the `clearable` one, the number\n spinners and Edge's password-reveal eye would clash with the icons. */\n .v-input-control::-webkit-search-cancel-button,\n .v-input-control::-webkit-search-decoration,\n .v-input-control::-webkit-search-results-button,\n .v-input-control::-webkit-search-results-decoration,\n .v-input-control::-webkit-inner-spin-button,\n .v-input-control::-webkit-outer-spin-button {\n -webkit-appearance: none;\n appearance: none;\n }\n\n .v-input-control[type='number'] {\n appearance: textfield;\n }\n\n .v-input-control::-ms-reveal {\n display: none;\n }\n\n /*\n * Its colour cannot be changed, but matching the field's radius at least stops it from\n * showing square corners inside a rounded box.\n */\n .v-input-control:-webkit-autofill {\n border-radius: var(--vectis-radius-interactive);\n }\n\n /*\n * This block must stay first in the sequence of states: read-only, then hover, focus, invalid\n * and disabled. The read-only, focus, invalid and disabled selectors all weigh (0,3,0),\n * `:has()` taking the specificity of what it contains, so nothing but the source order\n * arbitrates between them.\n */\n .v-input .v-input-field[data-readonly] {\n --field-border-color: var(--vectis-color-border);\n\n background: var(--vectis-color-surface-sunken);\n }\n\n .v-input-field:hover:not(:has(.v-input-control:focus)):not(\n :has(\n .v-input-control:disabled,\n .v-input-control:user-invalid,\n .v-input-control[aria-invalid='true']\n )\n ) {\n --field-border-color: color-mix(\n in oklab,\n var(--vectis-color-border-strong),\n var(--vectis-color-text) 15%\n );\n }\n\n /*\n * The selector watches the control's focus and not `:focus-within`, so that when one of the\n * field's own buttons; the cross, a clickable icon; takes keyboard focus, only that button's\n * outline lights up: two indicators at once would be unreadable. And it is `:focus` rather\n * than `:focus-visible`, because a text field shows its focus even when it was reached with\n * the mouse.\n */\n .v-input-field:has(.v-input-control:focus) {\n --field-border-color: var(--vectis-color-accent);\n\n box-shadow: 0 0 0 1px var(--field-border-color);\n outline: var(--vectis-focus-ring-width) solid transparent;\n }\n\n /*\n * Only the colour variable is changed, which is why the border and the focus ring both turn\n * red without either being restated.\n */\n .v-input-field:has(.v-input-control:user-invalid),\n .v-input-field:has(.v-input-control[aria-invalid='true']) {\n --field-border-color: var(--vectis-color-danger);\n }\n\n /* Inside the box it must not shrink, or a long value would squeeze its figures. */\n .v-input-counter {\n flex: none;\n }\n\n /* A decorative icon is drawn in a muted grey, so it stays quieter than the text\n being typed beside it. */\n .v-input-field > .v-icon {\n color: var(--vectis-color-text-muted);\n }\n\n .v-input-field > .v-spinner {\n font-size: var(--vectis-icon-size);\n }\n\n /*\n * A disabled field greys out through the colour tokens, the same ones VCheckbox and VRadio\n * use, and never through opacity. It comes last in the sequence of states, which at equal\n * specificity is what makes it win over all of them, the error included: a disabled field is\n * not submitted, so it has nothing to report.\n */\n .v-input .v-input-field[data-disabled] {\n --field-border-color: var(--vectis-color-border);\n\n background: var(--vectis-color-surface-muted);\n color: var(--vectis-color-text-muted);\n cursor: not-allowed;\n }\n\n .v-input-field[data-disabled] .v-input-counter {\n color: var(--vectis-color-text-subtle);\n }\n\n .v-input-field[data-disabled] .v-input-action,\n .v-input-field[data-disabled] > .v-icon {\n color: inherit;\n cursor: not-allowed;\n }\n\n .v-input-control:disabled {\n cursor: not-allowed;\n }\n\n /*\n * They live in this sheet because it is the one both are guaranteed to load, being built on\n * VInput; the core sheet would charge every consumer for them. `.v-input-end-pinned` lifts\n * the clear cross and whatever carries `.v-input-icon-end`; the end icon, or a composed\n * field's own chevron and spinner; out of the flow, so they stay pinned to the end of the\n * field and vertically centred whatever the chips do.\n */\n .v-input-end-pinned .v-input-field {\n position: relative;\n }\n\n .v-input-end-pinned .v-input-field:has(> :is(.v-input-clear, .v-input-icon-end, .v-spinner)) {\n padding-inline-end: calc(\n var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap)\n );\n }\n\n .v-input-end-pinned\n .v-input-field:has(> .v-input-clear):has(> :is(.v-input-icon-end, .v-spinner)) {\n padding-inline-end: calc(\n var(--control-padding-inline-field) + 2 * var(--vectis-icon-size) + 2 * var(--control-gap)\n );\n }\n\n .v-input-end-pinned :is(.v-input-clear, .v-input-icon-end) {\n position: absolute;\n inset-inline-end: var(--control-padding-inline-field);\n top: 50%;\n translate: 0 -50%;\n }\n\n /*\n * This inset reads in glyphs and not in buttons. The cross is one of the field's buttons,\n * whose negative margin; half the difference between icon and button; already cancels its own\n * overhang, so an inset lands on the glyph's edge.\n */\n .v-input-end-pinned .v-input-clear:has(~ :is(.v-input-icon-end, .v-spinner)) {\n inset-inline-end: calc(\n var(--control-padding-inline-field) + var(--vectis-icon-size) + var(--control-gap)\n );\n }\n\n /*\n * The control rule must stay at (0,2,0). VCombobox folds its search input away with a (0,3,0)\n * rule that zeroes this height, and at equal weight the winner would be whichever of the two\n * sheets a bundler put last.\n */\n .v-input-chips .v-input-field {\n flex-wrap: wrap;\n height: auto;\n min-height: var(--control-height);\n padding-block: var(--vectis-space-1);\n }\n\n .v-input-chips .v-input-control {\n height: var(--chip-height);\n }\n\n /* (0,2,0) over the chip's own height, so a chip from the #chip slot fits as well. */\n .v-input-chips .v-chip {\n block-size: var(--chip-height);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-input-field {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":""}