vectis-ui 0.12.0 → 0.13.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 (508) hide show
  1. package/dist/components/VAccordion/VAccordion.css +1 -1
  2. package/dist/components/VAccordion/VAccordion.d.ts +6 -5
  3. package/dist/components/VAccordion/VAccordion.js.map +1 -1
  4. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/components/VAccordion/VAccordionItem.css +1 -1
  6. package/dist/components/VAccordion/VAccordionItem.d.ts +1 -1
  7. package/dist/components/VAccordion/VAccordionItem.js.map +1 -1
  8. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  9. package/dist/components/VAlert/VAlert.css +2 -0
  10. package/dist/components/VAlert/VAlert.d.ts +73 -0
  11. package/dist/components/VAlert/VAlert.js +9 -0
  12. package/dist/components/VAlert/VAlert.js.map +1 -0
  13. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js +96 -0
  14. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  15. package/dist/components/VAvatar/VAvatar.d.ts +2 -2
  16. package/dist/components/VAvatar/VAvatarGroup.d.ts +1 -1
  17. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +8 -8
  18. package/dist/components/VBadge/VBadge.d.ts +3 -3
  19. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js +9 -9
  20. package/dist/components/VButton/VButton.d.ts +4 -4
  21. package/dist/components/VButton/VButtonGroup.css +1 -1
  22. package/dist/components/VButton/VButtonGroup.d.ts +2 -2
  23. package/dist/components/VButton/VButtonGroup.js.map +1 -1
  24. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  25. package/dist/components/VCalendar/VCalendar.css +1 -1
  26. package/dist/components/VCalendar/VCalendar.d.ts +7 -1
  27. package/dist/components/VCalendar/VCalendar.js.map +1 -1
  28. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js +20 -18
  29. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/VCalendar/VCalendarEvent.js.map +1 -1
  31. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/components/VCalendar/VCalendarMonth.css +1 -1
  33. package/dist/components/VCalendar/VCalendarMonth.d.ts +2 -2
  34. package/dist/components/VCalendar/VCalendarMonth.js.map +1 -1
  35. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -1
  36. package/dist/components/VCalendar/VCalendarTimeGrid.css +1 -1
  37. package/dist/components/VCalendar/VCalendarTimeGrid.d.ts +3 -3
  38. package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -1
  39. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/VCalendar/VCalendarYear.css +1 -1
  41. package/dist/components/VCalendar/VCalendarYear.js.map +1 -1
  42. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/components/VCalendar/gesture.d.ts +1 -16
  44. package/dist/components/VCalendar/gesture.js +1 -1
  45. package/dist/components/VCalendar/gesture.js.map +1 -1
  46. package/dist/components/VCalendar/types.d.ts +2 -0
  47. package/dist/components/VCard/VCard.css +2 -0
  48. package/dist/components/VCard/VCard.d.ts +87 -0
  49. package/dist/components/VCard/VCard.js +9 -0
  50. package/dist/components/VCard/VCard.js.map +1 -0
  51. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js +103 -0
  52. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  53. package/dist/components/VCarousel/VCarousel.d.ts +1 -1
  54. package/dist/components/VCarousel/VCarousel.js.map +1 -1
  55. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js +18 -18
  56. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/components/VCheckbox/VCheckMark.css +2 -0
  58. package/dist/components/VCheckbox/VCheckMark.js +9 -0
  59. package/dist/components/VCheckbox/VCheckMark.js.map +1 -0
  60. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js +33 -0
  61. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js.map +1 -0
  62. package/dist/components/VCheckbox/VCheckbox.css +1 -1
  63. package/dist/components/VCheckbox/VCheckbox.d.ts +8 -3
  64. package/dist/components/VCheckbox/VCheckbox.js.map +1 -1
  65. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js +54 -69
  66. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/components/VChip/VChip.d.ts +6 -6
  68. package/dist/components/VChip/VChip.js.map +1 -1
  69. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js +26 -26
  70. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  71. package/dist/components/VColorInput/VColorInput.css +2 -0
  72. package/dist/components/VColorInput/VColorInput.d.ts +113 -0
  73. package/dist/components/VColorInput/VColorInput.js +9 -0
  74. package/dist/components/VColorInput/VColorInput.js.map +1 -0
  75. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js +230 -0
  76. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  77. package/dist/components/VColorPicker/VColorPicker.css +2 -0
  78. package/dist/components/VColorPicker/VColorPicker.d.ts +67 -0
  79. package/dist/components/VColorPicker/VColorPicker.js +9 -0
  80. package/dist/components/VColorPicker/VColorPicker.js.map +1 -0
  81. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js +390 -0
  82. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  83. package/dist/components/VColorPicker/color.d.ts +42 -0
  84. package/dist/components/VColorPicker/color.js +158 -0
  85. package/dist/components/VColorPicker/color.js.map +1 -0
  86. package/dist/components/VCombobox/VCombobox.css +1 -1
  87. package/dist/components/VCombobox/VCombobox.d.ts +46 -60
  88. package/dist/components/VCombobox/VCombobox.js.map +1 -1
  89. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +271 -372
  90. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/components/VCommandPalette/VCommandPalette.css +2 -0
  92. package/dist/components/VCommandPalette/VCommandPalette.d.ts +163 -0
  93. package/dist/components/VCommandPalette/VCommandPalette.js +9 -0
  94. package/dist/components/VCommandPalette/VCommandPalette.js.map +1 -0
  95. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js +321 -0
  96. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js.map +1 -0
  97. package/dist/components/VCommandPalette/VCommandPaletteItem.css +2 -0
  98. package/dist/components/VCommandPalette/VCommandPaletteItem.d.ts +38 -0
  99. package/dist/components/VCommandPalette/VCommandPaletteItem.js +9 -0
  100. package/dist/components/VCommandPalette/VCommandPaletteItem.js.map +1 -0
  101. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js +69 -0
  102. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  103. package/dist/components/VContextMenu/VContextMenu.css +2 -0
  104. package/dist/components/VContextMenu/VContextMenu.d.ts +66 -0
  105. package/dist/components/VContextMenu/VContextMenu.js +9 -0
  106. package/dist/components/VContextMenu/VContextMenu.js.map +1 -0
  107. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js +148 -0
  108. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  109. package/dist/components/VDataTable/VDataTable.css +1 -1
  110. package/dist/components/VDataTable/VDataTable.d.ts +41 -16
  111. package/dist/components/VDataTable/VDataTable.js.map +1 -1
  112. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +307 -195
  113. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/VDateInput/VDateInput.d.ts +27 -7
  115. package/dist/components/VDateInput/VDateInput.js.map +1 -1
  116. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js +170 -162
  117. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  118. package/dist/components/VDatePicker/VDatePicker.d.ts +3 -3
  119. package/dist/components/VDatePicker/VDatePicker.js.map +1 -1
  120. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js +228 -227
  121. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  122. package/dist/components/VDatePicker/keyboard.d.ts +7 -7
  123. package/dist/components/VDatePicker/keyboard.js +8 -6
  124. package/dist/components/VDatePicker/keyboard.js.map +1 -1
  125. package/dist/components/VDatePicker/names.js +16 -20
  126. package/dist/components/VDatePicker/names.js.map +1 -1
  127. package/dist/components/VDialog/VDialog.d.ts +2 -4
  128. package/dist/components/VDialog/VDialog.js.map +1 -1
  129. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js +46 -77
  130. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  131. package/dist/components/VDrawer/VDrawer.css +2 -0
  132. package/dist/components/VDrawer/VDrawer.d.ts +102 -0
  133. package/dist/components/VDrawer/VDrawer.js +9 -0
  134. package/dist/components/VDrawer/VDrawer.js.map +1 -0
  135. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js +128 -0
  136. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  137. package/dist/components/VEmptyState/VEmptyState.css +2 -0
  138. package/dist/components/VEmptyState/VEmptyState.d.ts +43 -0
  139. package/dist/components/VEmptyState/VEmptyState.js +9 -0
  140. package/dist/components/VEmptyState/VEmptyState.js.map +1 -0
  141. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js +48 -0
  142. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  143. package/dist/components/VField/VField.css +2 -0
  144. package/dist/components/VField/VField.d.ts +84 -0
  145. package/dist/components/VField/VField.js +9 -0
  146. package/dist/components/VField/VField.js.map +1 -0
  147. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js +99 -0
  148. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  149. package/dist/components/VField/VFieldAnnouncer.d.ts +7 -0
  150. package/dist/components/VField/VFieldAnnouncer.js +7 -0
  151. package/dist/components/VField/VFieldAnnouncer.js.map +1 -0
  152. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js +19 -0
  153. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  154. package/dist/components/VField/VFieldMessage.d.ts +11 -0
  155. package/dist/components/VField/VFieldMessage.js +7 -0
  156. package/dist/components/VField/VFieldMessage.js.map +1 -0
  157. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js +32 -0
  158. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js.map +1 -0
  159. package/dist/components/VFieldset/VFieldset.css +2 -0
  160. package/dist/components/VFieldset/VFieldset.d.ts +52 -0
  161. package/dist/components/VFieldset/VFieldset.js +9 -0
  162. package/dist/components/VFieldset/VFieldset.js.map +1 -0
  163. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js +63 -0
  164. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -0
  165. package/dist/components/VFileInput/VFileInput.css +1 -1
  166. package/dist/components/VFileInput/VFileInput.d.ts +31 -7
  167. package/dist/components/VFileInput/VFileInput.js.map +1 -1
  168. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js +168 -161
  169. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/components/VFilePicker/VFilePicker.d.ts +4 -4
  171. package/dist/components/VHotkeys/VHotkeys.css +1 -1
  172. package/dist/components/VHotkeys/VHotkeys.js.map +1 -1
  173. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js +27 -30
  174. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
  175. package/dist/components/VHotkeys/platform.d.ts +2 -0
  176. package/dist/components/VHotkeys/platform.js +24 -5
  177. package/dist/components/VHotkeys/platform.js.map +1 -1
  178. package/dist/components/VHoverCard/VHoverCard.css +2 -0
  179. package/dist/components/VHoverCard/VHoverCard.d.ts +62 -0
  180. package/dist/components/VHoverCard/VHoverCard.js +9 -0
  181. package/dist/components/VHoverCard/VHoverCard.js.map +1 -0
  182. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js +97 -0
  183. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  184. package/dist/components/VIcon/icons/add.d.ts +5 -0
  185. package/dist/components/VIcon/icons/add.js +9 -0
  186. package/dist/components/VIcon/icons/add.js.map +1 -0
  187. package/dist/components/VIcon/icons/colorize.d.ts +5 -0
  188. package/dist/components/VIcon/icons/colorize.js +9 -0
  189. package/dist/components/VIcon/icons/colorize.js.map +1 -0
  190. package/dist/components/VIcon/icons/inbox.d.ts +5 -0
  191. package/dist/components/VIcon/icons/inbox.js +9 -0
  192. package/dist/components/VIcon/icons/inbox.js.map +1 -0
  193. package/dist/components/VIcon/icons/index.d.ts +42 -2
  194. package/dist/components/VIcon/icons/index.js +88 -72
  195. package/dist/components/VIcon/icons/index.js.map +1 -1
  196. package/dist/components/VIcon/icons/names.d.ts +2 -2
  197. package/dist/components/VIcon/icons/names.js +1 -1
  198. package/dist/components/VIcon/icons/names.js.map +1 -1
  199. package/dist/components/VIcon/icons/open_in_new.d.ts +5 -0
  200. package/dist/components/VIcon/icons/open_in_new.js +9 -0
  201. package/dist/components/VIcon/icons/open_in_new.js.map +1 -0
  202. package/dist/components/VIcon/icons/priority_high.d.ts +5 -0
  203. package/dist/components/VIcon/icons/priority_high.js +9 -0
  204. package/dist/components/VIcon/icons/priority_high.js.map +1 -0
  205. package/dist/components/VIcon/icons/remove.d.ts +5 -0
  206. package/dist/components/VIcon/icons/remove.js +9 -0
  207. package/dist/components/VIcon/icons/remove.js.map +1 -0
  208. package/dist/components/VIcon/icons/search_off.d.ts +5 -0
  209. package/dist/components/VIcon/icons/search_off.js +9 -0
  210. package/dist/components/VIcon/icons/search_off.js.map +1 -0
  211. package/dist/components/VIcon/icons/star.d.ts +5 -0
  212. package/dist/components/VIcon/icons/star.js +9 -0
  213. package/dist/components/VIcon/icons/star.js.map +1 -0
  214. package/dist/components/VIconButton/VIconButton.d.ts +4 -4
  215. package/dist/components/VInput/VInput.css +1 -1
  216. package/dist/components/VInput/VInput.d.ts +51 -2
  217. package/dist/components/VInput/VInput.js.map +1 -1
  218. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js +129 -106
  219. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/components/VInput/VInputGroup.css +1 -1
  221. package/dist/components/VInput/VInputGroup.d.ts +20 -0
  222. package/dist/components/VInput/VInputGroup.js.map +1 -1
  223. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js +50 -51
  224. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/components/VInputOTP/VInputOTP.css +1 -1
  226. package/dist/components/VInputOTP/VInputOTP.d.ts +27 -4
  227. package/dist/components/VInputOTP/VInputOTP.js.map +1 -1
  228. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +131 -113
  229. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/VLink/VLink.css +2 -0
  231. package/dist/components/VLink/VLink.d.ts +53 -0
  232. package/dist/components/VLink/VLink.js +9 -0
  233. package/dist/components/VLink/VLink.js.map +1 -0
  234. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js +58 -0
  235. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  236. package/dist/components/VListbox/VListboxChevron.css +2 -0
  237. package/dist/components/VListbox/VListboxChevron.d.ts +12 -0
  238. package/dist/components/VListbox/VListboxChevron.js +9 -0
  239. package/dist/components/VListbox/VListboxChevron.js.map +1 -0
  240. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js +25 -0
  241. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js.map +1 -0
  242. package/dist/components/VListbox/VListboxGroup.css +2 -0
  243. package/dist/components/VListbox/VListboxGroup.d.ts +27 -0
  244. package/dist/components/VListbox/VListboxGroup.js +9 -0
  245. package/dist/components/VListbox/VListboxGroup.js.map +1 -0
  246. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js +21 -0
  247. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  248. package/dist/components/VListbox/VListboxOption.css +2 -0
  249. package/dist/components/{VCombobox/VComboboxOption.d.ts → VListbox/VListboxOption.d.ts} +4 -4
  250. package/dist/components/VListbox/VListboxOption.js +9 -0
  251. package/dist/components/VListbox/VListboxOption.js.map +1 -0
  252. package/dist/components/{VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js → VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js} +6 -6
  253. package/dist/components/VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -0
  254. package/dist/components/VListbox/VListboxPanel.css +2 -0
  255. package/dist/components/VListbox/VListboxPanel.d.ts +59 -0
  256. package/dist/components/VListbox/VListboxPanel.js +9 -0
  257. package/dist/components/VListbox/VListboxPanel.js.map +1 -0
  258. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js +123 -0
  259. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  260. package/dist/components/VListbox/VListboxSeparator.css +2 -0
  261. package/dist/components/VListbox/VListboxSeparator.d.ts +3 -0
  262. package/dist/components/VListbox/VListboxSeparator.js +9 -0
  263. package/dist/components/VListbox/VListboxSeparator.js.map +1 -0
  264. package/dist/components/{VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js → VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js} +4 -4
  265. package/dist/components/VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  266. package/dist/components/VListbox/VListboxValues.css +2 -0
  267. package/dist/components/VListbox/VListboxValues.d.ts +52 -0
  268. package/dist/components/VListbox/VListboxValues.js +9 -0
  269. package/dist/components/VListbox/VListboxValues.js.map +1 -0
  270. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js +103 -0
  271. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js.map +1 -0
  272. package/dist/components/VMenu/VMenu.d.ts +1 -1
  273. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js +9 -9
  274. package/dist/components/VMenu/VMenuItem.d.ts +1 -1
  275. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js +16 -16
  276. package/dist/components/VMenu/VMenuPanel.d.ts +2 -2
  277. package/dist/components/VMenu/VMenuPanel.js.map +1 -1
  278. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  279. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/components/VMeter/VMeter.css +2 -0
  281. package/dist/components/VMeter/VMeter.d.ts +77 -0
  282. package/dist/components/VMeter/VMeter.js +9 -0
  283. package/dist/components/VMeter/VMeter.js.map +1 -0
  284. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js +113 -0
  285. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js.map +1 -0
  286. package/dist/components/VNumberInput/VNumberInput.css +2 -0
  287. package/dist/components/VNumberInput/VNumberInput.d.ts +114 -0
  288. package/dist/components/VNumberInput/VNumberInput.js +9 -0
  289. package/dist/components/VNumberInput/VNumberInput.js.map +1 -0
  290. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js +251 -0
  291. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  292. package/dist/components/VNumberInput/number.d.ts +30 -0
  293. package/dist/components/VNumberInput/number.js +38 -0
  294. package/dist/components/VNumberInput/number.js.map +1 -0
  295. package/dist/components/VPagination/VPagination.d.ts +1 -1
  296. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js +76 -76
  297. package/dist/components/VProgressCircular/VProgressCircular.d.ts +2 -2
  298. package/dist/components/VProgressLinear/VProgressLinear.css +1 -1
  299. package/dist/components/VProgressLinear/VProgressLinear.d.ts +10 -7
  300. package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -1
  301. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js +52 -34
  302. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  303. package/dist/components/VRadio/VRadio.d.ts +8 -3
  304. package/dist/components/VRadio/VRadio.js.map +1 -1
  305. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js +52 -46
  306. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  307. package/dist/components/VRating/VRating.css +2 -0
  308. package/dist/components/VRating/VRating.d.ts +92 -0
  309. package/dist/components/VRating/VRating.js +9 -0
  310. package/dist/components/VRating/VRating.js.map +1 -0
  311. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js +158 -0
  312. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js.map +1 -0
  313. package/dist/components/VResizable/VResizable.css +2 -0
  314. package/dist/components/VResizable/VResizable.d.ts +50 -0
  315. package/dist/components/VResizable/VResizable.js +9 -0
  316. package/dist/components/VResizable/VResizable.js.map +1 -0
  317. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js +225 -0
  318. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  319. package/dist/components/VResizable/VResizablePanel.css +2 -0
  320. package/dist/components/VResizable/VResizablePanel.d.ts +60 -0
  321. package/dist/components/VResizable/VResizablePanel.js +9 -0
  322. package/dist/components/VResizable/VResizablePanel.js.map +1 -0
  323. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js +83 -0
  324. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  325. package/dist/components/VResizable/context.d.ts +24 -0
  326. package/dist/components/VResizable/context.js +6 -0
  327. package/dist/components/VResizable/context.js.map +1 -0
  328. package/dist/components/VResizable/layout.d.ts +28 -0
  329. package/dist/components/VResizable/layout.js +41 -0
  330. package/dist/components/VResizable/layout.js.map +1 -0
  331. package/dist/components/VSelect/VSelect.css +2 -0
  332. package/dist/components/VSelect/VSelect.d.ts +193 -0
  333. package/dist/components/VSelect/VSelect.js +9 -0
  334. package/dist/components/VSelect/VSelect.js.map +1 -0
  335. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js +424 -0
  336. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  337. package/dist/components/VSeparator/VSeparator.js.map +1 -1
  338. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  339. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js +8 -8
  340. package/dist/components/VSideNavigation/VSideNavigationItem.d.ts +2 -2
  341. package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -1
  342. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +3 -3
  343. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +3 -3
  345. package/dist/components/VSlider/VSlider.css +1 -1
  346. package/dist/components/VSlider/VSlider.d.ts +34 -8
  347. package/dist/components/VSlider/VSlider.js.map +1 -1
  348. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js +236 -215
  349. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  350. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js +4 -4
  351. package/dist/components/VSnackbar/state.js.map +1 -1
  352. package/dist/components/VSplitButton/VSplitButton.css +2 -0
  353. package/dist/components/VSplitButton/VSplitButton.d.ts +114 -0
  354. package/dist/components/VSplitButton/VSplitButton.js +9 -0
  355. package/dist/components/VSplitButton/VSplitButton.js.map +1 -0
  356. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js +148 -0
  357. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  358. package/dist/components/VStepper/VStepper.css +2 -0
  359. package/dist/components/VStepper/VStepper.d.ts +73 -0
  360. package/dist/components/VStepper/VStepper.js +9 -0
  361. package/dist/components/VStepper/VStepper.js.map +1 -0
  362. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js +96 -0
  363. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
  364. package/dist/components/VSwitch/VSwitch.d.ts +8 -3
  365. package/dist/components/VSwitch/VSwitch.js.map +1 -1
  366. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js +53 -47
  367. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  368. package/dist/components/VTabs/VTab.css +1 -1
  369. package/dist/components/VTabs/VTab.d.ts +1 -1
  370. package/dist/components/VTabs/VTab.js.map +1 -1
  371. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  372. package/dist/components/VTabs/VTabs.css +1 -1
  373. package/dist/components/VTabs/VTabs.d.ts +13 -5
  374. package/dist/components/VTabs/VTabs.js.map +1 -1
  375. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js +20 -20
  376. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  377. package/dist/components/VTextarea/VTextarea.css +1 -1
  378. package/dist/components/VTextarea/VTextarea.d.ts +22 -2
  379. package/dist/components/VTextarea/VTextarea.js.map +1 -1
  380. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js +108 -100
  381. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  382. package/dist/components/VTimeInput/VTimeInput.d.ts +27 -7
  383. package/dist/components/VTimeInput/VTimeInput.js.map +1 -1
  384. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js +187 -171
  385. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  386. package/dist/components/VTimePicker/VTimePicker.d.ts +2 -2
  387. package/dist/components/VTimePicker/VTimePicker.js.map +1 -1
  388. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js +15 -15
  389. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  390. package/dist/components/VTimeline/VTimeline.css +2 -0
  391. package/dist/components/VTimeline/VTimeline.d.ts +59 -0
  392. package/dist/components/VTimeline/VTimeline.js +9 -0
  393. package/dist/components/VTimeline/VTimeline.js.map +1 -0
  394. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js +53 -0
  395. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  396. package/dist/components/VTimeline/VTimelineItem.css +2 -0
  397. package/dist/components/VTimeline/VTimelineItem.d.ts +48 -0
  398. package/dist/components/VTimeline/VTimelineItem.js +9 -0
  399. package/dist/components/VTimeline/VTimelineItem.js.map +1 -0
  400. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js +70 -0
  401. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  402. package/dist/components/VTimeline/context.d.ts +11 -0
  403. package/dist/components/VTimeline/context.js +6 -0
  404. package/dist/components/VTimeline/context.js.map +1 -0
  405. package/dist/components/VTimeline/datetime.d.ts +8 -0
  406. package/dist/components/VTimeline/datetime.js +36 -0
  407. package/dist/components/VTimeline/datetime.js.map +1 -0
  408. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js +8 -8
  409. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js +12 -12
  410. package/dist/components/VToggle/VToggle.d.ts +4 -4
  411. package/dist/components/VToggle/VToggleItem.d.ts +1 -1
  412. package/dist/components/VTooltip/VTooltip.d.ts +8 -2
  413. package/dist/components/VTooltip/VTooltip.js.map +1 -1
  414. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js +45 -43
  415. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  416. package/dist/components/VTreeView/VTreeView.css +2 -0
  417. package/dist/components/VTreeView/VTreeView.d.ts +112 -0
  418. package/dist/components/VTreeView/VTreeView.js +9 -0
  419. package/dist/components/VTreeView/VTreeView.js.map +1 -0
  420. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js +321 -0
  421. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
  422. package/dist/components/VTypography/VTypography.d.ts +1 -1
  423. package/dist/components/VVirtualList/VVirtualList.css +2 -0
  424. package/dist/components/VVirtualList/VVirtualList.d.ts +78 -0
  425. package/dist/components/VVirtualList/VVirtualList.js +9 -0
  426. package/dist/components/VVirtualList/VVirtualList.js.map +1 -0
  427. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js +114 -0
  428. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  429. package/dist/composables/useChoice.d.ts +28 -0
  430. package/dist/composables/useChoice.js +28 -0
  431. package/dist/composables/useChoice.js.map +1 -0
  432. package/dist/composables/useDebouncedSearch.d.ts +17 -0
  433. package/dist/composables/useDebouncedSearch.js +18 -0
  434. package/dist/composables/useDebouncedSearch.js.map +1 -0
  435. package/dist/composables/useEscapeDismiss.d.ts +8 -0
  436. package/dist/composables/useEscapeDismiss.js +16 -0
  437. package/dist/composables/useEscapeDismiss.js.map +1 -0
  438. package/dist/composables/useFieldIds.d.ts +2 -1
  439. package/dist/composables/useFieldIds.js +7 -6
  440. package/dist/composables/useFieldIds.js.map +1 -1
  441. package/dist/composables/useFieldPanel.d.ts +1 -0
  442. package/dist/composables/useFieldPanel.js +52 -42
  443. package/dist/composables/useFieldPanel.js.map +1 -1
  444. package/dist/composables/useFileField.d.ts +1 -3
  445. package/dist/composables/useFileField.js +48 -50
  446. package/dist/composables/useFileField.js.map +1 -1
  447. package/dist/composables/useHotkeyListener.d.ts +17 -0
  448. package/dist/composables/useHotkeyListener.js +26 -0
  449. package/dist/composables/useHotkeyListener.js.map +1 -0
  450. package/dist/composables/useIconClickHandlers.d.ts +2 -10
  451. package/dist/composables/useIconClickHandlers.js +1 -1
  452. package/dist/composables/useIconClickHandlers.js.map +1 -1
  453. package/dist/{components/VCombobox/infiniteScroll.d.ts → composables/useInfiniteScroll.d.ts} +6 -0
  454. package/dist/{components/VCombobox/infiniteScroll.js → composables/useInfiniteScroll.js} +7 -7
  455. package/dist/composables/useInfiniteScroll.js.map +1 -0
  456. package/dist/composables/useListbox.d.ts +132 -0
  457. package/dist/composables/useListbox.js +227 -0
  458. package/dist/composables/useListbox.js.map +1 -0
  459. package/dist/composables/useModalDialog.d.ts +28 -0
  460. package/dist/composables/useModalDialog.js +60 -0
  461. package/dist/composables/useModalDialog.js.map +1 -0
  462. package/dist/composables/useRootAttrs.d.ts +2 -3
  463. package/dist/composables/useRootAttrs.js.map +1 -1
  464. package/dist/composables/useVirtualList.d.ts +46 -0
  465. package/dist/composables/useVirtualList.js +145 -0
  466. package/dist/composables/useVirtualList.js.map +1 -0
  467. package/dist/i18n/en.js +50 -0
  468. package/dist/i18n/en.js.map +1 -1
  469. package/dist/i18n/fr.js +50 -0
  470. package/dist/i18n/fr.js.map +1 -1
  471. package/dist/i18n/types.d.ts +103 -2
  472. package/dist/icons.js +45 -37
  473. package/dist/index.d.ts +49 -3
  474. package/dist/index.js +80 -56
  475. package/dist/styles.css +1 -1
  476. package/dist/tokens/index.d.ts +43 -0
  477. package/dist/tokens/semantic.d.ts +42 -0
  478. package/dist/tokens/semantic.js +43 -1
  479. package/dist/tokens/semantic.js.map +1 -1
  480. package/dist/tokens/themes/dark.d.ts +1 -0
  481. package/dist/tokens/themes/dark.js +1 -0
  482. package/dist/tokens/themes/dark.js.map +1 -1
  483. package/dist/tokens.json +215 -1
  484. package/dist/types.d.ts +57 -4
  485. package/dist/utils/arrowNav.js.map +1 -1
  486. package/dist/utils/attrs.d.ts +9 -0
  487. package/dist/utils/attrs.js +14 -0
  488. package/dist/utils/attrs.js.map +1 -0
  489. package/dist/utils/date.d.ts +1 -0
  490. package/dist/utils/date.js +2 -2
  491. package/dist/utils/date.js.map +1 -1
  492. package/package.json +1 -1
  493. package/dist/components/VCombobox/VComboboxGroup.css +0 -2
  494. package/dist/components/VCombobox/VComboboxGroup.d.ts +0 -17
  495. package/dist/components/VCombobox/VComboboxGroup.js +0 -9
  496. package/dist/components/VCombobox/VComboboxGroup.js.map +0 -1
  497. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js +0 -21
  498. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
  499. package/dist/components/VCombobox/VComboboxOption.css +0 -2
  500. package/dist/components/VCombobox/VComboboxOption.js +0 -9
  501. package/dist/components/VCombobox/VComboboxOption.js.map +0 -1
  502. package/dist/components/VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
  503. package/dist/components/VCombobox/VComboboxSeparator.css +0 -2
  504. package/dist/components/VCombobox/VComboboxSeparator.js +0 -9
  505. package/dist/components/VCombobox/VComboboxSeparator.js.map +0 -1
  506. package/dist/components/VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
  507. package/dist/components/VCombobox/infiniteScroll.js.map +0 -1
  508. /package/dist/components/{VCombobox/VComboboxSeparator.d.ts → VCheckbox/VCheckMark.d.ts} +0 -0
@@ -0,0 +1,390 @@
1
+ import { useLocale as e, useMessages as t } from "../../i18n/state.js";
2
+ import { clamp as n } from "../../utils/number.js";
3
+ import r from "../VIconButton/VIconButton.js";
4
+ import { useAriaLabel as i } from "../../composables/useAriaLabel.js";
5
+ import a from "../VInput/VInput.js";
6
+ import o from "../VSelect/VSelect.js";
7
+ import { colorize as ee } from "../VIcon/icons/colorize.js";
8
+ import { COLOR_FORMATS as te, formatColor as s, hsvToRgb as c, parseColor as l, rgbToHsv as u, sameColor as ne } from "./color.js";
9
+ import { Fragment as d, computed as f, createBlock as re, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createVNode as g, defineComponent as _, mergeModels as v, normalizeStyle as y, onMounted as ie, openBlock as b, ref as x, renderList as ae, toDisplayString as oe, unref as S, useId as se, useModel as ce, watch as C } from "vue";
10
+ //#region src/components/VColorPicker/VColorPicker.vue?vue&type=script&setup=true&lang.ts
11
+ var le = [
12
+ "aria-label",
13
+ "data-disabled",
14
+ "data-readonly"
15
+ ], w = [
16
+ "value",
17
+ "aria-label",
18
+ "aria-valuetext",
19
+ "aria-readonly",
20
+ "disabled"
21
+ ], ue = [
22
+ "value",
23
+ "aria-label",
24
+ "aria-valuetext",
25
+ "aria-readonly",
26
+ "disabled"
27
+ ], de = { class: "v-color-picker-controls" }, T = { class: "v-color-picker-tracks" }, E = [
28
+ "value",
29
+ "aria-label",
30
+ "aria-valuetext",
31
+ "aria-readonly",
32
+ "disabled"
33
+ ], D = [
34
+ "value",
35
+ "aria-label",
36
+ "aria-valuetext",
37
+ "aria-readonly",
38
+ "disabled"
39
+ ], fe = {
40
+ key: 0,
41
+ class: "v-color-picker-fields"
42
+ }, pe = ["aria-label", "disabled"], me = [
43
+ "name",
44
+ "form",
45
+ "value",
46
+ "checked",
47
+ "aria-disabled",
48
+ "onChange"
49
+ ], he = { class: "v-visually-hidden" }, ge = ["name", "value"], O = /*@__PURE__*/ _({
50
+ __name: "VColorPicker",
51
+ props: /*@__PURE__*/ v({
52
+ format: { default: "hex" },
53
+ alpha: {
54
+ type: Boolean,
55
+ default: !1
56
+ },
57
+ swatches: { default: void 0 },
58
+ hideInput: {
59
+ type: Boolean,
60
+ default: !1
61
+ },
62
+ hideEyeDropper: {
63
+ type: Boolean,
64
+ default: !1
65
+ },
66
+ disabled: {
67
+ type: Boolean,
68
+ default: !1
69
+ },
70
+ readonly: {
71
+ type: Boolean,
72
+ default: !1
73
+ },
74
+ label: { default: void 0 },
75
+ name: { default: void 0 }
76
+ }, {
77
+ modelValue: { default: null },
78
+ modelModifiers: {}
79
+ }),
80
+ emits: ["update:modelValue"],
81
+ setup(_, { expose: v }) {
82
+ let O = _, k = ce(_, "modelValue"), A = t(), j = e(), M = i(() => O.label ?? A.value.colorPicker.label), N = x({
83
+ h: 0,
84
+ s: 0,
85
+ v: 0,
86
+ a: 1
87
+ }), P = f(() => c(N.value)), F = null;
88
+ C(k, (e) => {
89
+ if (e === F) return;
90
+ let t = l(e);
91
+ t && (N.value = u(O.alpha ? t : {
92
+ ...t,
93
+ a: 1
94
+ }, N.value.h));
95
+ }, { immediate: !0 });
96
+ function I(e) {
97
+ N.value = e, F = s(c(e), O.format, O.alpha), k.value = F;
98
+ }
99
+ function L(e) {
100
+ I(u(O.alpha ? e : {
101
+ ...e,
102
+ a: 1
103
+ }, N.value.h));
104
+ }
105
+ let R = f(() => new Intl.NumberFormat(j.value, { style: "percent" })), _e = f(() => new Intl.NumberFormat(j.value, {
106
+ style: "unit",
107
+ unit: "degree",
108
+ unitDisplay: "narrow"
109
+ })), z = f(() => A.value.colorPicker.areaValue(R.value.format(Math.round(N.value.s * 100) / 100), R.value.format(Math.round(N.value.v * 100) / 100))), B = x(null), V = x(null);
110
+ function H(e) {
111
+ let t = B.value.getBoundingClientRect();
112
+ I({
113
+ ...N.value,
114
+ s: n((e.clientX - t.left) / t.width, 0, 1),
115
+ v: n(1 - (e.clientY - t.top) / t.height, 0, 1)
116
+ });
117
+ }
118
+ let U = null;
119
+ function ve(e) {
120
+ if (!(O.disabled || e.button !== 0) && (e.preventDefault(), V.value?.focus({ preventScroll: !0 }), !O.readonly)) {
121
+ U = e.pointerId;
122
+ try {
123
+ B.value.setPointerCapture(e.pointerId);
124
+ } catch {}
125
+ H(e);
126
+ }
127
+ }
128
+ function ye(e) {
129
+ e.pointerId === U && H(e);
130
+ }
131
+ function W(e) {
132
+ e.pointerId === U && (U = null);
133
+ }
134
+ function G(e) {
135
+ if (O.readonly) return;
136
+ let t = e.shiftKey ? 10 : 1, r = {
137
+ ArrowLeft: ["s", -t],
138
+ ArrowRight: ["s", t],
139
+ ArrowDown: ["v", -t],
140
+ ArrowUp: ["v", t],
141
+ PageDown: ["v", -10],
142
+ PageUp: ["v", 10],
143
+ Home: ["s", -100],
144
+ End: ["s", 100]
145
+ }[e.key];
146
+ if (!r) return;
147
+ e.preventDefault();
148
+ let [i, a] = r;
149
+ I({
150
+ ...N.value,
151
+ [i]: n((Math.round(N.value[i] * 100) + a) / 100, 0, 1)
152
+ });
153
+ }
154
+ function K(e, t, n) {
155
+ let r = n.target;
156
+ if (O.readonly) {
157
+ r.value = String(Math.round(N.value[e] * t));
158
+ return;
159
+ }
160
+ I({
161
+ ...N.value,
162
+ [e]: Number(r.value) / t
163
+ });
164
+ }
165
+ function be(e) {
166
+ O.readonly && e.preventDefault();
167
+ }
168
+ let q = x(O.format);
169
+ C(() => O.format, (e) => q.value = e);
170
+ let xe = te.map((e) => ({
171
+ value: e,
172
+ label: e.toUpperCase()
173
+ })), J = x("");
174
+ C([
175
+ P,
176
+ q,
177
+ () => O.alpha,
178
+ () => k.value === null
179
+ ], () => {
180
+ J.value = k.value === null ? "" : s(P.value, q.value, O.alpha);
181
+ }, { immediate: !0 });
182
+ function Y() {
183
+ let e = J.value.trim();
184
+ if (!e) {
185
+ F = null, k.value = null;
186
+ return;
187
+ }
188
+ let t = l(e);
189
+ t ? L(t) : J.value = s(P.value, q.value, O.alpha);
190
+ }
191
+ function Se(e) {
192
+ e.key === "Enter" && (e.preventDefault(), Y());
193
+ }
194
+ let X = f(() => (O.swatches ?? []).map((e) => {
195
+ let t = typeof e == "string" ? e : e.color;
196
+ return {
197
+ color: t,
198
+ label: typeof e == "string" ? e : e.label,
199
+ rgba: l(t)
200
+ };
201
+ })), Z = se(), Q = x(null);
202
+ ie(() => {
203
+ Q.value = window.EyeDropper ?? null;
204
+ });
205
+ async function Ce() {
206
+ if (Q.value) try {
207
+ let { sRGBHex: e } = await new Q.value().open(), t = l(e);
208
+ t && L({
209
+ ...t,
210
+ a: N.value.a
211
+ });
212
+ } catch {}
213
+ }
214
+ let we = f(() => s({
215
+ ...P.value,
216
+ a: 1
217
+ }, "rgb")), Te = f(() => ({
218
+ "--color-picker-hue": String(N.value.h),
219
+ "--color-picker-opaque": we.value,
220
+ "--color-picker-color": s(P.value, "rgb", O.alpha),
221
+ "--color-picker-s": String(N.value.s),
222
+ "--color-picker-v": String(N.value.v)
223
+ })), $ = x(null);
224
+ return v({
225
+ focus: (e) => V.value?.focus(e),
226
+ el: $
227
+ }), (e, t) => (b(), m("div", {
228
+ ref_key: "rootEl",
229
+ ref: $,
230
+ class: "v-color-picker",
231
+ role: "group",
232
+ "aria-label": S(M),
233
+ "data-disabled": _.disabled ? "" : void 0,
234
+ "data-readonly": _.readonly ? "" : void 0,
235
+ style: y(Te.value)
236
+ }, [
237
+ h("div", {
238
+ ref_key: "areaEl",
239
+ ref: B,
240
+ class: "v-color-picker-area",
241
+ onPointerdown: ve,
242
+ onPointermove: ye,
243
+ onPointerup: W,
244
+ onPointercancel: W
245
+ }, [
246
+ h("input", {
247
+ ref_key: "saturationEl",
248
+ ref: V,
249
+ type: "range",
250
+ class: "v-hidden-input",
251
+ min: "0",
252
+ max: "100",
253
+ value: Math.round(N.value.s * 100),
254
+ "aria-label": S(A).colorPicker.saturation,
255
+ "aria-valuetext": z.value,
256
+ "aria-readonly": _.readonly || void 0,
257
+ disabled: _.disabled,
258
+ onInput: t[0] ||= (e) => K("s", 100, e),
259
+ onKeydown: G
260
+ }, null, 40, w),
261
+ h("input", {
262
+ type: "range",
263
+ class: "v-hidden-input",
264
+ tabindex: "-1",
265
+ min: "0",
266
+ max: "100",
267
+ value: Math.round(N.value.v * 100),
268
+ "aria-label": S(A).colorPicker.brightness,
269
+ "aria-valuetext": z.value,
270
+ "aria-readonly": _.readonly || void 0,
271
+ disabled: _.disabled,
272
+ onInput: t[1] ||= (e) => K("v", 100, e),
273
+ onKeydown: G
274
+ }, null, 40, ue),
275
+ t[6] ||= h("span", {
276
+ class: "v-color-picker-thumb",
277
+ "aria-hidden": "true"
278
+ }, null, -1)
279
+ ], 544),
280
+ h("div", de, [
281
+ Q.value && !_.hideEyeDropper ? (b(), re(r, {
282
+ key: 0,
283
+ class: "v-color-picker-eye-dropper",
284
+ icon: S(ee),
285
+ label: S(A).colorPicker.eyeDropper,
286
+ size: "sm",
287
+ disabled: _.disabled || _.readonly,
288
+ onClick: Ce
289
+ }, null, 8, [
290
+ "icon",
291
+ "label",
292
+ "disabled"
293
+ ])) : p("", !0),
294
+ t[7] ||= h("span", {
295
+ class: "v-color-picker-preview",
296
+ "aria-hidden": "true"
297
+ }, null, -1),
298
+ h("div", T, [h("input", {
299
+ type: "range",
300
+ class: "v-color-picker-track v-color-picker-hue",
301
+ min: "0",
302
+ max: "360",
303
+ value: Math.round(N.value.h),
304
+ "aria-label": S(A).colorPicker.hue,
305
+ "aria-valuetext": _e.value.format(Math.round(N.value.h)),
306
+ "aria-readonly": _.readonly || void 0,
307
+ disabled: _.disabled,
308
+ onInput: t[2] ||= (e) => K("h", 1, e)
309
+ }, null, 40, E), _.alpha ? (b(), m("input", {
310
+ key: 0,
311
+ type: "range",
312
+ class: "v-color-picker-track v-color-picker-alpha",
313
+ min: "0",
314
+ max: "100",
315
+ value: Math.round(N.value.a * 100),
316
+ "aria-label": S(A).colorPicker.alpha,
317
+ "aria-valuetext": R.value.format(Math.round(N.value.a * 100) / 100),
318
+ "aria-readonly": _.readonly || void 0,
319
+ disabled: _.disabled,
320
+ onInput: t[3] ||= (e) => K("a", 100, e)
321
+ }, null, 40, D)) : p("", !0)])
322
+ ]),
323
+ _.hideInput ? p("", !0) : (b(), m("div", fe, [g(o, {
324
+ "model-value": q.value,
325
+ class: "v-color-picker-format",
326
+ options: S(xe),
327
+ size: "sm",
328
+ "aria-label": S(A).colorPicker.format,
329
+ disabled: _.disabled,
330
+ "onUpdate:modelValue": t[4] ||= (e) => q.value = e
331
+ }, null, 8, [
332
+ "model-value",
333
+ "options",
334
+ "aria-label",
335
+ "disabled"
336
+ ]), g(a, {
337
+ modelValue: J.value,
338
+ "onUpdate:modelValue": t[5] ||= (e) => J.value = e,
339
+ class: "v-color-picker-value",
340
+ size: "sm",
341
+ "aria-label": S(A).colorPicker.value,
342
+ autocomplete: "off",
343
+ spellcheck: "false",
344
+ disabled: _.disabled,
345
+ readonly: _.readonly,
346
+ onChange: Y,
347
+ onKeydown: Se
348
+ }, null, 8, [
349
+ "modelValue",
350
+ "aria-label",
351
+ "disabled",
352
+ "readonly"
353
+ ])])),
354
+ X.value.length ? (b(), m("fieldset", {
355
+ key: 1,
356
+ class: "v-color-picker-swatches",
357
+ "aria-label": S(A).colorPicker.swatches,
358
+ disabled: _.disabled
359
+ }, [(b(!0), m(d, null, ae(X.value, (e) => (b(), m("label", {
360
+ key: e.color,
361
+ class: "v-color-picker-swatch",
362
+ style: y({ "--color-picker-swatch": e.color })
363
+ }, [
364
+ h("input", {
365
+ type: "radio",
366
+ class: "v-hidden-input",
367
+ name: S(Z),
368
+ form: `${S(Z)}-none`,
369
+ value: e.color,
370
+ checked: k.value !== null && S(ne)(e.rgba, P.value, _.alpha),
371
+ "aria-disabled": _.readonly || void 0,
372
+ onClick: be,
373
+ onChange: (t) => e.rgba && L(e.rgba)
374
+ }, null, 40, me),
375
+ t[8] ||= h("span", { class: "v-color-picker-chip" }, null, -1),
376
+ h("span", he, oe(e.label), 1)
377
+ ], 4))), 128))], 8, pe)) : p("", !0),
378
+ _.name && k.value ? (b(), m("input", {
379
+ key: 2,
380
+ type: "hidden",
381
+ name: _.name,
382
+ value: k.value
383
+ }, null, 8, ge)) : p("", !0)
384
+ ], 12, le));
385
+ }
386
+ });
387
+ //#endregion
388
+ export { O as default };
389
+
390
+ //# sourceMappingURL=VColorPicker.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VColorPicker.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/VColorPicker/VColorPicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// @keyboard @a11y @core\n/**\n * A colour picker built from native ranges: the hue and alpha tracks are `<input type=\"range\">`,\n * and the saturation-brightness area holds two hidden ones, one per axis, which assistive\n * technology adjusts on its own. JavaScript adds the pointer on the area and its two-axis arrow\n * keys, which no native control offers.\n */\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport VIconButton from '../VIconButton/VIconButton.vue'\nimport VInput from '../VInput/VInput.vue'\nimport VSelect from '../VSelect/VSelect.vue'\nimport { colorize as colorizeIcon } from '../VIcon/icons/colorize'\nimport { useAriaLabel } from '../../composables/useAriaLabel'\nimport { useLocale, useMessages } from '../../i18n/state'\nimport { clamp } from '../../utils/number'\nimport { COLOR_FORMATS, formatColor, hsvToRgb, parseColor, rgbToHsv, sameColor } from './color'\nimport type { ColorFormat, Hsva, Rgba } from './color'\n\nexport type { ColorFormat } from './color'\n\n/** A preset colour: the colour alone, or the colour and the words that name it. */\nexport type ColorSwatch = string | { color: string; label: string }\n\ninterface ColorPickerProps {\n /**\n * How the value is written: `#rrggbb`, `rgb()`, `hsl()` or `oklch()`. The text field accepts\n * all four whatever this says.\n */\n format?: ColorFormat\n /** Offers an opacity track, and writes the alpha into the value when it is below 1. */\n alpha?: boolean\n /** Preset colours, offered as a row of swatches under the picker. */\n swatches?: ColorSwatch[]\n /**\n * Hides the text field and its format menu. VColorInput does, its own field playing that\n * part.\n */\n hideInput?: boolean\n /**\n * Hides the eyedropper button, shown otherwise wherever the browser offers the `EyeDropper`\n * API.\n */\n hideEyeDropper?: boolean\n /** Makes the picker unusable. */\n disabled?: boolean\n /**\n * Shows the colour without letting it be changed. The controls stay focusable and announce\n * their values, which separates it from `disabled`, and the value is still submitted.\n */\n readonly?: boolean\n /** What the picker is called. It falls back to the design system dictionary. */\n label?: string\n /** The name the value is sent under in a form. */\n name?: string\n}\n\nconst props = withDefaults(defineProps<ColorPickerProps>(), {\n format: 'hex',\n alpha: false,\n swatches: undefined,\n hideInput: false,\n hideEyeDropper: false,\n disabled: false,\n readonly: false,\n label: undefined,\n name: undefined,\n})\n\n/** The colour, written in `format`, or `null` when none has been chosen. */\nconst model = defineModel<string | null>({ default: null })\n\nconst m = useMessages()\nconst locale = useLocale()\nconst ariaLabel = useAriaLabel(() => props.label ?? m.value.colorPicker.label)\n\n/** What the picker shows. With no colour yet, it rests on black, which writes nothing. */\nconst hsva = ref<Hsva>({ h: 0, s: 0, v: 0, a: 1 })\nconst rgba = computed(() => hsvToRgb(hsva.value))\n\n// @core\n// The value last written, so that its echo through the model is not parsed back: hex rounds the\n// channels, and a grey has no hue, so reading it back would move the thumbs under the pointer.\nlet written: string | null = null\n\nwatch(\n model,\n (value) => {\n if (value === written) return\n const parsed = parseColor(value)\n if (parsed) hsva.value = rgbToHsv(props.alpha ? parsed : { ...parsed, a: 1 }, hsva.value.h)\n },\n { immediate: true },\n)\n\nfunction write(next: Hsva) {\n hsva.value = next\n written = formatColor(hsvToRgb(next), props.format, props.alpha)\n model.value = written\n}\n\nfunction writeRgba(next: Rgba) {\n write(rgbToHsv(props.alpha ? next : { ...next, a: 1 }, hsva.value.h))\n}\n\nconst percent = computed(() => new Intl.NumberFormat(locale.value, { style: 'percent' }))\nconst degrees = computed(\n () =>\n new Intl.NumberFormat(locale.value, { style: 'unit', unit: 'degree', unitDisplay: 'narrow' }),\n)\n\n/** Both axes in words: read on either of the area's inputs, whichever one has the focus. */\nconst areaValueText = computed(() =>\n m.value.colorPicker.areaValue(\n percent.value.format(Math.round(hsva.value.s * 100) / 100),\n percent.value.format(Math.round(hsva.value.v * 100) / 100),\n ),\n)\n\nconst areaEl = ref<HTMLElement | null>(null)\nconst saturationEl = ref<HTMLInputElement | null>(null)\n\nfunction moveTo(event: PointerEvent) {\n const rect = areaEl.value!.getBoundingClientRect()\n write({\n ...hsva.value,\n s: clamp((event.clientX - rect.left) / rect.width, 0, 1),\n v: clamp(1 - (event.clientY - rect.top) / rect.height, 0, 1),\n })\n}\n\n/** The pointer dragging the area's thumb, if one is. */\nlet dragging: number | null = null\n\nfunction onAreaPointerdown(event: PointerEvent) {\n if (props.disabled || event.button !== 0) return\n // The focus is moved by hand, without the scroll a default focus on mousedown could cause.\n event.preventDefault()\n saturationEl.value?.focus({ preventScroll: true })\n if (props.readonly) return\n dragging = event.pointerId\n // @fallback\n // Capture keeps the drag going outside the area; synthetic events may not reference a\n // capturable pointer.\n try {\n areaEl.value!.setPointerCapture(event.pointerId)\n } catch {\n /* Synthetic pointers cannot be captured. */\n }\n moveTo(event)\n}\n\nfunction onAreaPointermove(event: PointerEvent) {\n if (event.pointerId === dragging) moveTo(event)\n}\n\nfunction onAreaPointerup(event: PointerEvent) {\n if (event.pointerId === dragging) dragging = null\n}\n\n// @keyboard\n/**\n * Both inputs of the area answer the same keys: the horizontal arrows and Home/End move the\n * saturation, the vertical arrows and PageUp/PageDown the brightness. Natively each input would\n * move its own axis on every arrow.\n */\nfunction onAreaKeydown(event: KeyboardEvent) {\n if (props.readonly) return\n const step = event.shiftKey ? 10 : 1\n const moves: Record<string, [axis: 's' | 'v', delta: number]> = {\n ArrowLeft: ['s', -step],\n ArrowRight: ['s', step],\n ArrowDown: ['v', -step],\n ArrowUp: ['v', step],\n PageDown: ['v', -10],\n PageUp: ['v', 10],\n Home: ['s', -100],\n End: ['s', 100],\n }\n const move = moves[event.key]\n if (!move) return\n event.preventDefault()\n const [axis, delta] = move\n write({ ...hsva.value, [axis]: clamp((Math.round(hsva.value[axis] * 100) + delta) / 100, 0, 1) })\n}\n\n/** What a native range reports on its own: a drag on a track, or assistive technology. */\nfunction onRangeInput(channel: keyof Hsva, scale: number, event: Event) {\n const el = event.target as HTMLInputElement\n // @core\n // A range has no native `readonly`: the move it has already made is put back.\n if (props.readonly) {\n el.value = String(Math.round(hsva.value[channel] * scale))\n return\n }\n write({ ...hsva.value, [channel]: Number(el.value) / scale })\n}\n\n/** A read-only swatch refuses the click, which is what checks a radio, arrows included. */\nfunction onSwatchClick(event: MouseEvent) {\n if (props.readonly) event.preventDefault()\n}\n\nconst shownFormat = ref<ColorFormat>(props.format)\nwatch(\n () => props.format,\n (format) => (shownFormat.value = format),\n)\n\nconst formatOptions = COLOR_FORMATS.map((format) => ({\n value: format,\n label: format.toUpperCase(),\n}))\n\n/** The text field's own copy, rewritten whenever the colour changes from elsewhere. */\nconst fieldText = ref('')\nwatch(\n [rgba, shownFormat, () => props.alpha, () => model.value === null],\n () => {\n fieldText.value =\n model.value === null ? '' : formatColor(rgba.value, shownFormat.value, props.alpha)\n },\n { immediate: true },\n)\n\n/** Takes what was typed, in any of the four formats, or puts the field back as it was. */\nfunction commitField() {\n const text = fieldText.value.trim()\n if (!text) {\n written = null\n model.value = null\n return\n }\n const parsed = parseColor(text)\n if (parsed) writeRgba(parsed)\n else fieldText.value = formatColor(rgba.value, shownFormat.value, props.alpha)\n}\n\nfunction onFieldKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n event.preventDefault()\n commitField()\n}\n\nconst items = computed(() =>\n (props.swatches ?? []).map((swatch) => {\n const color = typeof swatch === 'string' ? swatch : swatch.color\n return {\n color,\n label: typeof swatch === 'string' ? swatch : swatch.label,\n rgba: parseColor(color),\n }\n }),\n)\n\n// @core\n// The swatches are native radios, so the arrow keys move between them. Their name only groups\n// them: they are tied to a form that does not exist so that no enclosing form sends them, the\n// picker's value going through its own hidden input.\nconst swatchGroup = useId()\n\ninterface EyeDropperResult {\n sRGBHex: string\n}\n\n/** The EyeDropper API, which TypeScript's DOM library does not describe yet. */\ntype EyeDropperConstructor = new () => { open: () => Promise<EyeDropperResult> }\n\n// @fallback\n// Detected once mounted, never on the server: the button simply does not exist elsewhere.\nconst eyeDropper = ref<EyeDropperConstructor | null>(null)\nonMounted(() => {\n eyeDropper.value =\n (window as unknown as { EyeDropper?: EyeDropperConstructor }).EyeDropper ?? null\n})\n\nasync function pickFromScreen() {\n if (!eyeDropper.value) return\n try {\n const { sRGBHex } = await new eyeDropper.value().open()\n const picked = parseColor(sRGBHex)\n // The screen has no transparency: the opacity already chosen is kept.\n if (picked) writeRgba({ ...picked, a: hsva.value.a })\n } catch {\n // Escape cancels the eyedropper by rejecting the promise: nothing to report.\n }\n}\n\nconst opaque = computed(() => formatColor({ ...rgba.value, a: 1 }, 'rgb'))\n\nconst rootStyle = computed(() => ({\n '--color-picker-hue': String(hsva.value.h),\n '--color-picker-opaque': opaque.value,\n '--color-picker-color': formatColor(rgba.value, 'rgb', props.alpha),\n '--color-picker-s': String(hsva.value.s),\n '--color-picker-v': String(hsva.value.v),\n}))\n\nconst rootEl = ref<HTMLElement | null>(null)\n\ndefineExpose({\n /** Moves the focus to the saturation-brightness area. */\n focus: (options?: FocusOptions) => saturationEl.value?.focus(options),\n /** The root element. */\n el: rootEl,\n})\n</script>\n\n<template>\n <div\n ref=\"rootEl\"\n class=\"v-color-picker\"\n role=\"group\"\n :aria-label=\"ariaLabel\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n :style=\"rootStyle\"\n >\n <div\n ref=\"areaEl\"\n class=\"v-color-picker-area\"\n @pointerdown=\"onAreaPointerdown\"\n @pointermove=\"onAreaPointermove\"\n @pointerup=\"onAreaPointerup\"\n @pointercancel=\"onAreaPointerup\"\n >\n <input\n ref=\"saturationEl\"\n type=\"range\"\n class=\"v-hidden-input\"\n min=\"0\"\n max=\"100\"\n :value=\"Math.round(hsva.s * 100)\"\n :aria-label=\"m.colorPicker.saturation\"\n :aria-valuetext=\"areaValueText\"\n :aria-readonly=\"readonly || undefined\"\n :disabled=\"disabled\"\n @input=\"onRangeInput('s', 100, $event)\"\n @keydown=\"onAreaKeydown\"\n />\n <!-- Out of the tab order: one stop for the area, whose arrows move both axes. -->\n <input\n type=\"range\"\n class=\"v-hidden-input\"\n tabindex=\"-1\"\n min=\"0\"\n max=\"100\"\n :value=\"Math.round(hsva.v * 100)\"\n :aria-label=\"m.colorPicker.brightness\"\n :aria-valuetext=\"areaValueText\"\n :aria-readonly=\"readonly || undefined\"\n :disabled=\"disabled\"\n @input=\"onRangeInput('v', 100, $event)\"\n @keydown=\"onAreaKeydown\"\n />\n <span class=\"v-color-picker-thumb\" aria-hidden=\"true\" />\n </div>\n\n <div class=\"v-color-picker-controls\">\n <VIconButton\n v-if=\"eyeDropper && !hideEyeDropper\"\n class=\"v-color-picker-eye-dropper\"\n :icon=\"colorizeIcon\"\n :label=\"m.colorPicker.eyeDropper\"\n size=\"sm\"\n :disabled=\"disabled || readonly\"\n @click=\"pickFromScreen\"\n />\n <span class=\"v-color-picker-preview\" aria-hidden=\"true\" />\n <div class=\"v-color-picker-tracks\">\n <input\n type=\"range\"\n class=\"v-color-picker-track v-color-picker-hue\"\n min=\"0\"\n max=\"360\"\n :value=\"Math.round(hsva.h)\"\n :aria-label=\"m.colorPicker.hue\"\n :aria-valuetext=\"degrees.format(Math.round(hsva.h))\"\n :aria-readonly=\"readonly || undefined\"\n :disabled=\"disabled\"\n @input=\"onRangeInput('h', 1, $event)\"\n />\n <input\n v-if=\"alpha\"\n type=\"range\"\n class=\"v-color-picker-track v-color-picker-alpha\"\n min=\"0\"\n max=\"100\"\n :value=\"Math.round(hsva.a * 100)\"\n :aria-label=\"m.colorPicker.alpha\"\n :aria-valuetext=\"percent.format(Math.round(hsva.a * 100) / 100)\"\n :aria-readonly=\"readonly || undefined\"\n :disabled=\"disabled\"\n @input=\"onRangeInput('a', 100, $event)\"\n />\n </div>\n </div>\n\n <div v-if=\"!hideInput\" class=\"v-color-picker-fields\">\n <VSelect\n :model-value=\"shownFormat\"\n class=\"v-color-picker-format\"\n :options=\"formatOptions\"\n size=\"sm\"\n :aria-label=\"m.colorPicker.format\"\n :disabled=\"disabled\"\n @update:model-value=\"shownFormat = $event as ColorFormat\"\n />\n <VInput\n v-model=\"fieldText\"\n class=\"v-color-picker-value\"\n size=\"sm\"\n :aria-label=\"m.colorPicker.value\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n @change=\"commitField\"\n @keydown=\"onFieldKeydown\"\n />\n </div>\n\n <fieldset\n v-if=\"items.length\"\n class=\"v-color-picker-swatches\"\n :aria-label=\"m.colorPicker.swatches\"\n :disabled=\"disabled\"\n >\n <label\n v-for=\"item in items\"\n :key=\"item.color\"\n class=\"v-color-picker-swatch\"\n :style=\"{ '--color-picker-swatch': item.color }\"\n >\n <input\n type=\"radio\"\n class=\"v-hidden-input\"\n :name=\"swatchGroup\"\n :form=\"`${swatchGroup}-none`\"\n :value=\"item.color\"\n :checked=\"model !== null && sameColor(item.rgba, rgba, alpha)\"\n :aria-disabled=\"readonly || undefined\"\n @click=\"onSwatchClick\"\n @change=\"item.rgba && writeRgba(item.rgba)\"\n />\n <span class=\"v-color-picker-chip\" />\n <span class=\"v-visually-hidden\">{{ item.label }}</span>\n </label>\n </fieldset>\n\n <input v-if=\"name && model\" type=\"hidden\" :name=\"name\" :value=\"model\" />\n </div>\n</template>\n\n<style>\n@layer vectis.components {\n .v-color-picker {\n /*\n * The checkerboard that shows through a translucent colour. It is drawn in the theme's own\n * surface and border colours, so it reads as \"transparent\" in both themes.\n */\n --color-picker-checker: repeating-conic-gradient(\n var(--vectis-color-border) 0 25%,\n var(--vectis-color-surface) 0 50%\n )\n 0 0 / var(--vectis-control-size-color-picker-checker)\n var(--vectis-control-size-color-picker-checker);\n --color-picker-thumb: var(--vectis-control-size-color-picker-thumb);\n\n display: inline-flex;\n flex-direction: column;\n gap: var(--vectis-space-3);\n inline-size: var(--vectis-control-size-color-picker-width);\n max-inline-size: 100%;\n padding: var(--vectis-space-3);\n color: var(--vectis-color-text);\n font-family: var(--vectis-text-family);\n }\n\n /*\n * The colour content (area, tracks, preview, swatches) is the value itself, not the theme's\n * paint: it is never mirrored in right-to-left text, and forced colours leave it untouched.\n * Its gradients run between literal black and white, the ends of the colour model.\n */\n\n /*\n * The edge of the preview and the swatches is a translucent border over the colour, which it\n * shades rather than covers: an opaque grey ring left a pale fringe on the antialiased pixels.\n * The colour runs under the border and the checkerboard stops inside it, so no square of the\n * checkerboard shows through those pixels either.\n */\n .v-color-picker-area,\n .v-color-picker-track,\n .v-color-picker-preview,\n .v-color-picker-chip {\n direction: ltr;\n forced-color-adjust: none;\n }\n\n .v-color-picker-area {\n position: relative;\n block-size: var(--vectis-control-size-color-picker-area);\n border-radius: var(--vectis-radius-interactive);\n background:\n linear-gradient(to top, black, transparent), linear-gradient(to right, white, transparent),\n hsl(var(--color-picker-hue) 100% 50%);\n cursor: crosshair;\n touch-action: none;\n }\n\n /*\n * Every thumb carries a light ring and a dark one, whatever the theme: it sits on colours of\n * any lightness, against which a single themed ring would vanish.\n */\n .v-color-picker-thumb {\n position: absolute;\n inset-inline-start: calc(var(--color-picker-s) * 100%);\n inset-block-start: calc((1 - var(--color-picker-v)) * 100%);\n inline-size: var(--color-picker-thumb);\n block-size: var(--color-picker-thumb);\n border: 2px solid white;\n border-radius: var(--vectis-radius-pill);\n background: var(--color-picker-opaque);\n box-shadow:\n 0 0 0 1px rgb(0 0 0 / 0.4),\n inset 0 0 0 1px rgb(0 0 0 / 0.4);\n translate: -50% -50%;\n pointer-events: none;\n }\n\n .v-color-picker-area:has(.v-hidden-input:focus-visible) .v-color-picker-thumb {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: var(--vectis-focus-ring-offset);\n }\n\n .v-color-picker-controls {\n display: flex;\n align-items: center;\n gap: var(--vectis-space-2);\n }\n\n .v-color-picker-preview {\n flex: none;\n inline-size: var(--vectis-control-size-color-picker-preview);\n block-size: var(--vectis-control-size-color-picker-preview);\n border-radius: var(--vectis-radius-pill);\n border: 1px solid var(--vectis-color-border-on-fill);\n background:\n linear-gradient(var(--color-picker-color), var(--color-picker-color)) border-box,\n var(--color-picker-checker) padding-box;\n }\n\n .v-color-picker-tracks {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--vectis-space-3);\n min-inline-size: 0;\n }\n\n .v-color-picker-track {\n display: block;\n inline-size: 100%;\n block-size: var(--vectis-control-size-color-picker-track);\n margin: 0;\n border-radius: var(--vectis-radius-pill);\n appearance: none;\n cursor: pointer;\n }\n\n .v-color-picker-hue {\n --color-picker-track-thumb: hsl(var(--color-picker-hue) 100% 50%);\n background: linear-gradient(\n to right,\n hsl(0 100% 50%),\n hsl(60 100% 50%),\n hsl(120 100% 50%),\n hsl(180 100% 50%),\n hsl(240 100% 50%),\n hsl(300 100% 50%),\n hsl(360 100% 50%)\n );\n }\n\n .v-color-picker-alpha {\n --color-picker-track-thumb: var(--color-picker-color);\n background:\n linear-gradient(to right, transparent, var(--color-picker-opaque)),\n var(--color-picker-checker);\n }\n\n /*\n * The two vendor pseudo-elements stay in two separate rules: a selector list holding one a\n * browser does not know is dropped whole.\n */\n .v-color-picker-track::-webkit-slider-thumb {\n appearance: none;\n inline-size: var(--color-picker-thumb);\n block-size: var(--color-picker-thumb);\n border: 2px solid white;\n border-radius: var(--vectis-radius-pill);\n background:\n linear-gradient(var(--color-picker-track-thumb), var(--color-picker-track-thumb)),\n var(--color-picker-checker);\n box-shadow:\n 0 0 0 1px rgb(0 0 0 / 0.4),\n inset 0 0 0 1px rgb(0 0 0 / 0.4);\n }\n\n .v-color-picker-track::-moz-range-thumb {\n box-sizing: border-box;\n inline-size: var(--color-picker-thumb);\n block-size: var(--color-picker-thumb);\n border: 2px solid white;\n border-radius: var(--vectis-radius-pill);\n background:\n linear-gradient(var(--color-picker-track-thumb), var(--color-picker-track-thumb)),\n var(--color-picker-checker);\n box-shadow:\n 0 0 0 1px rgb(0 0 0 / 0.4),\n inset 0 0 0 1px rgb(0 0 0 / 0.4);\n }\n\n .v-color-picker-track:focus-visible {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: var(--vectis-focus-ring-offset);\n }\n\n .v-color-picker-fields {\n display: flex;\n gap: var(--vectis-space-2);\n }\n\n /* Qualified to outweigh the full width VSelect takes by default. */\n .v-color-picker-fields .v-color-picker-format {\n flex: none;\n inline-size: var(--vectis-control-size-color-picker-format);\n }\n\n .v-color-picker-value {\n flex: 1;\n min-inline-size: 0;\n }\n\n /*\n * A colour is written left to right in every language: in right-to-left text the bidi\n * algorithm would move the `#` of `#f59e0b` to the end. The field keeps its right alignment.\n */\n .v-color-picker-value .v-input-control {\n direction: ltr;\n font-variant-numeric: tabular-nums;\n }\n\n .v-color-picker-value .v-input-control:dir(rtl) {\n text-align: right;\n }\n\n .v-color-picker-swatches {\n display: flex;\n flex-wrap: wrap;\n gap: var(--vectis-space-2);\n min-inline-size: 0;\n margin: 0;\n padding: 0;\n border: 0;\n }\n\n .v-color-picker-swatch {\n position: relative;\n display: inline-flex;\n cursor: pointer;\n }\n\n .v-color-picker-chip {\n inline-size: var(--vectis-control-size-color-picker-swatch);\n block-size: var(--vectis-control-size-color-picker-swatch);\n border-radius: var(--vectis-radius-interactive);\n border: 1px solid var(--vectis-color-border-on-fill);\n background:\n linear-gradient(var(--color-picker-swatch), var(--color-picker-swatch)) border-box,\n var(--color-picker-checker) padding-box;\n }\n\n /* An outline rather than a shadow marks the chosen swatch: forced colours keep outlines. */\n .v-color-picker-swatch .v-hidden-input:checked + .v-color-picker-chip {\n outline: 2px solid var(--vectis-color-text);\n outline-offset: 1px;\n }\n\n .v-color-picker-swatch .v-hidden-input:focus-visible + .v-color-picker-chip {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: var(--vectis-focus-ring-offset);\n }\n\n /* Colour content is media, which may fade; the text controls take the disabled tokens. */\n .v-color-picker[data-disabled]\n :is(\n .v-color-picker-area,\n .v-color-picker-preview,\n .v-color-picker-track,\n .v-color-picker-chip\n ) {\n opacity: 0.5;\n }\n\n .v-color-picker[data-disabled]\n :is(.v-color-picker-area, .v-color-picker-track, .v-color-picker-swatch) {\n cursor: not-allowed;\n }\n\n /* A read-only picker is still read, so it keeps the ordinary cursor, as VTimePicker does. */\n .v-color-picker[data-readonly]\n :is(.v-color-picker-area, .v-color-picker-track, .v-color-picker-swatch) {\n cursor: default;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Colour parsing, conversion and formatting for VColorPicker and VColorInput, without a
3
+ * dependency. Everything works in sRGB: an `oklch()` colour outside it is clipped to the nearest
4
+ * displayable one, which is what the picker could show anyway.
5
+ */
6
+ /** How a colour is written: `#rrggbb`, `rgb()`, `hsl()` or `oklch()`. */
7
+ export type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'oklch';
8
+ /** The formats in the order the picker offers them. */
9
+ export declare const COLOR_FORMATS: readonly ColorFormat[];
10
+ /** A colour in sRGB, each channel from 0 to 1, alpha included. */
11
+ export interface Rgba {
12
+ r: number;
13
+ g: number;
14
+ b: number;
15
+ a: number;
16
+ }
17
+ /**
18
+ * A colour as the picker holds it: hue in degrees, saturation and value (brightness) from 0 to
19
+ * 1. The hue survives where RGB would lose it, on greys, black and white.
20
+ */
21
+ export interface Hsva {
22
+ h: number;
23
+ s: number;
24
+ v: number;
25
+ a: number;
26
+ }
27
+ export declare function hsvToRgb({ h, s, v, a }: Hsva): Rgba;
28
+ /** `hue` is kept when the colour has none of its own: a grey, black or white. */
29
+ export declare function rgbToHsv({ r, g, b, a }: Rgba, hue?: number): Hsva;
30
+ /**
31
+ * Reads a colour written in hex (`#` optional, 3, 4, 6 or 8 digits), `rgb()`, `hsl()` or
32
+ * `oklch()`, in the comma or the space syntax, with an optional alpha. Returns `null` for
33
+ * anything else, CSS colour names included.
34
+ */
35
+ export declare function parseColor(input: string | null | undefined): Rgba | null;
36
+ /**
37
+ * Writes a colour in `format`. The alpha appears only when `alpha` is true and the colour is not
38
+ * opaque, so an opaque colour always reads the same whether alpha is offered or not.
39
+ */
40
+ export declare function formatColor(rgba: Rgba, format: ColorFormat, alpha?: boolean): string;
41
+ /** Whether two colours are the same once written in hex, which is how swatches are matched. */
42
+ export declare function sameColor(a: Rgba | null, b: Rgba | null, alpha: boolean): boolean;
@@ -0,0 +1,158 @@
1
+ //#region src/components/VColorPicker/color.ts
2
+ var e = [
3
+ "hex",
4
+ "rgb",
5
+ "hsl",
6
+ "oklch"
7
+ ], t = (e) => Math.min(Math.max(e, 0), 1), n = (e) => (e % 360 + 360) % 360;
8
+ function r({ h: e, s: t, v: n, a: r }) {
9
+ let i = (r) => {
10
+ let i = (r + e / 60) % 6;
11
+ return n - n * t * Math.max(0, Math.min(i, 4 - i, 1));
12
+ };
13
+ return {
14
+ r: i(5),
15
+ g: i(3),
16
+ b: i(1),
17
+ a: r
18
+ };
19
+ }
20
+ function i({ r: e, g: t, b: r, a: i }, a = 0) {
21
+ let o = Math.max(e, t, r), s = o - Math.min(e, t, r), c = a;
22
+ return s > 0 && (c = o === e ? 60 * (((t - r) / s + 6) % 6) : o === t ? 60 * ((r - e) / s + 2) : 60 * ((e - t) / s + 4)), {
23
+ h: n(c),
24
+ s: o === 0 ? 0 : s / o,
25
+ v: o,
26
+ a: i
27
+ };
28
+ }
29
+ function a(e, t, n, i) {
30
+ let a = n + t * Math.min(n, 1 - n);
31
+ return r({
32
+ h: e,
33
+ s: a === 0 ? 0 : 2 * (1 - n / a),
34
+ v: a,
35
+ a: i
36
+ });
37
+ }
38
+ function o(e) {
39
+ let { h: t, s: n, v: r } = i(e), a = r * (1 - n / 2);
40
+ return {
41
+ h: t,
42
+ s: a === 0 || a === 1 ? 0 : (r - a) / Math.min(a, 1 - a),
43
+ l: a
44
+ };
45
+ }
46
+ var s = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, c = (e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055;
47
+ function l({ r: e, g: t, b: r }) {
48
+ let [i, a, o] = [
49
+ s(e),
50
+ s(t),
51
+ s(r)
52
+ ], c = Math.cbrt(.4122214708 * i + .5363325363 * a + .0514459929 * o), l = Math.cbrt(.2119034982 * i + .6806995451 * a + .1073969566 * o), u = Math.cbrt(.0883024619 * i + .2817188376 * a + .6299787005 * o), d = .2104542553 * c + .793617785 * l - .0040720468 * u, f = 1.9779984951 * c - 2.428592205 * l + .4505937099 * u, p = .0259040371 * c + .7827717662 * l - .808675766 * u;
53
+ return {
54
+ l: d,
55
+ c: Math.hypot(f, p),
56
+ h: n(Math.atan2(p, f) * 180 / Math.PI)
57
+ };
58
+ }
59
+ function u(e, n, r, i) {
60
+ let a = n * Math.cos(r * Math.PI / 180), o = n * Math.sin(r * Math.PI / 180), s = (e + .3963377774 * a + .2158037573 * o) ** 3, l = (e - .1055613458 * a - .0638541728 * o) ** 3, u = (e - .0894841775 * a - 1.291485548 * o) ** 3, d = (e) => t(c(e));
61
+ return {
62
+ r: d(4.0767416621 * s - 3.3077115913 * l + .2309699292 * u),
63
+ g: d(-1.2684380046 * s + 2.6097574011 * l - .3413193965 * u),
64
+ b: d(-.0041960863 * s - .7034186147 * l + 1.707614701 * u),
65
+ a: i
66
+ };
67
+ }
68
+ function d(e, t) {
69
+ if (e === void 0) return null;
70
+ if (e === "none") return 0;
71
+ let n = /^([+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?)(%|deg|grad|rad|turn)?$/.exec(e);
72
+ if (!n) return null;
73
+ let r = Number(n[1]);
74
+ switch (n[2]) {
75
+ case "%": return r / 100 * t;
76
+ case "grad": return r * .9;
77
+ case "rad": return r * 180 / Math.PI;
78
+ case "turn": return r * 360;
79
+ default: return r;
80
+ }
81
+ }
82
+ function f(e) {
83
+ if (!/^[0-9a-f]+$/.test(e) || ![
84
+ 3,
85
+ 4,
86
+ 6,
87
+ 8
88
+ ].includes(e.length)) return null;
89
+ let [t = 0, n = 0, r = 0, i = 1] = (e.length <= 4 ? [...e].map((e) => e + e) : e.match(/../g)).map((e) => parseInt(e, 16) / 255);
90
+ return {
91
+ r: t,
92
+ g: n,
93
+ b: r,
94
+ a: i
95
+ };
96
+ }
97
+ function p(e) {
98
+ let r = (e ?? "").trim().toLowerCase();
99
+ if (!r) return null;
100
+ let i = /^(rgba?|hsla?|oklch)\(\s*([^)]*)\)$/.exec(r);
101
+ if (!i) return f(r.replace(/^#/, ""));
102
+ let [o = "", s, c] = i[2].split("/");
103
+ if (c !== void 0) return null;
104
+ let l = o.trim().split(/\s*,\s*|\s+/), p = s === void 0 && l.length === 4 ? l.pop() : void 0;
105
+ if (l.length !== 3) return null;
106
+ let m = (s ?? p)?.trim(), h = m === void 0 ? 1 : d(m, 1);
107
+ if (h === null) return null;
108
+ let g = i[1];
109
+ if (g.startsWith("rgb")) {
110
+ let [e, n, r] = l.map((e) => d(e, 255));
111
+ return e == null || n == null || r == null ? null : {
112
+ r: t(e / 255),
113
+ g: t(n / 255),
114
+ b: t(r / 255),
115
+ a: t(h)
116
+ };
117
+ }
118
+ if (g.startsWith("hsl")) {
119
+ let [e, r, i] = [
120
+ d(l[0], 360),
121
+ d(l[1], 100),
122
+ d(l[2], 100)
123
+ ];
124
+ return e == null || r == null || i == null ? null : a(n(e), t(r / 100), t(i / 100), t(h));
125
+ }
126
+ let [_, v, y] = [
127
+ d(l[0], 1),
128
+ d(l[1], .4),
129
+ d(l[2], 360)
130
+ ];
131
+ return _ == null || v == null || y == null ? null : u(t(_), Math.max(v, 0), n(y), t(h));
132
+ }
133
+ var m = (e, t = 0) => String(Number(e.toFixed(t)));
134
+ function h(e, n, r = !1) {
135
+ let i = r ? t(e.a) : 1, a = i < 1 ? ` / ${m(i, 2)}` : "";
136
+ switch (n) {
137
+ case "rgb": return `rgb(${m(e.r * 255)} ${m(e.g * 255)} ${m(e.b * 255)}${a})`;
138
+ case "hsl": {
139
+ let { h: t, s: n, l: r } = o(e);
140
+ return `hsl(${m(t)} ${m(n * 100)}% ${m(r * 100)}%${a})`;
141
+ }
142
+ case "oklch": {
143
+ let { l: t, c: n, h: r } = l(e), i = n < 5e-4 ? 0 : r;
144
+ return `oklch(${m(t * 100, 1)}% ${m(n, 3)} ${m(i, 1)}${a})`;
145
+ }
146
+ default: {
147
+ let n = (e) => Math.round(t(e) * 255).toString(16).padStart(2, "0");
148
+ return `#${n(e.r)}${n(e.g)}${n(e.b)}${i < 1 ? n(i) : ""}`;
149
+ }
150
+ }
151
+ }
152
+ function g(e, t, n) {
153
+ return !!e && !!t && h(e, "hex", n) === h(t, "hex", n);
154
+ }
155
+ //#endregion
156
+ export { e as COLOR_FORMATS, h as formatColor, r as hsvToRgb, p as parseColor, i as rgbToHsv, g as sameColor };
157
+
158
+ //# sourceMappingURL=color.js.map