vectis-ui 0.1.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 (676) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +27 -0
  3. package/README.md +354 -0
  4. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  5. package/dist/components/VAccordion/VAccordion.css +2 -0
  6. package/dist/components/VAccordion/VAccordion.d.ts +59 -0
  7. package/dist/components/VAccordion/VAccordion.js +9 -0
  8. package/dist/components/VAccordion/VAccordion.js.map +1 -0
  9. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js +42 -0
  10. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
  11. package/dist/components/VAccordion/VAccordionItem.css +2 -0
  12. package/dist/components/VAccordion/VAccordionItem.d.ts +64 -0
  13. package/dist/components/VAccordion/VAccordionItem.js +9 -0
  14. package/dist/components/VAccordion/VAccordionItem.js.map +1 -0
  15. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js +70 -0
  16. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  17. package/dist/components/VAccordion/context.d.ts +18 -0
  18. package/dist/components/VAccordion/context.js +6 -0
  19. package/dist/components/VAccordion/context.js.map +1 -0
  20. package/dist/components/VAvatar/VAvatar.css +2 -0
  21. package/dist/components/VAvatar/VAvatar.d.ts +68 -0
  22. package/dist/components/VAvatar/VAvatar.js +9 -0
  23. package/dist/components/VAvatar/VAvatar.js.map +1 -0
  24. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js +87 -0
  25. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  26. package/dist/components/VAvatar/VAvatarGroup.css +2 -0
  27. package/dist/components/VAvatar/VAvatarGroup.d.ts +59 -0
  28. package/dist/components/VAvatar/VAvatarGroup.js +9 -0
  29. package/dist/components/VAvatar/VAvatarGroup.js.map +1 -0
  30. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +43 -0
  31. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  32. package/dist/components/VAvatar/context.d.ts +17 -0
  33. package/dist/components/VAvatar/context.js +6 -0
  34. package/dist/components/VAvatar/context.js.map +1 -0
  35. package/dist/components/VBadge/VBadge.css +2 -0
  36. package/dist/components/VBadge/VBadge.d.ts +74 -0
  37. package/dist/components/VBadge/VBadge.js +9 -0
  38. package/dist/components/VBadge/VBadge.js.map +1 -0
  39. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js +40 -0
  40. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
  41. package/dist/components/VBreadcrumb/VBreadcrumb.css +2 -0
  42. package/dist/components/VBreadcrumb/VBreadcrumb.d.ts +68 -0
  43. package/dist/components/VBreadcrumb/VBreadcrumb.js +9 -0
  44. package/dist/components/VBreadcrumb/VBreadcrumb.js.map +1 -0
  45. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js +70 -0
  46. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
  47. package/dist/components/VButton/VButton.css +2 -0
  48. package/dist/components/VButton/VButton.d.ts +88 -0
  49. package/dist/components/VButton/VButton.js +9 -0
  50. package/dist/components/VButton/VButton.js.map +1 -0
  51. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js +86 -0
  52. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  53. package/dist/components/VButton/VButtonGroup.css +2 -0
  54. package/dist/components/VButton/VButtonGroup.d.ts +32 -0
  55. package/dist/components/VButton/VButtonGroup.js +9 -0
  56. package/dist/components/VButton/VButtonGroup.js.map +1 -0
  57. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js +17 -0
  58. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  59. package/dist/components/VCalendar/VCalendar.css +2 -0
  60. package/dist/components/VCalendar/VCalendar.d.ts +129 -0
  61. package/dist/components/VCalendar/VCalendar.js +9 -0
  62. package/dist/components/VCalendar/VCalendar.js.map +1 -0
  63. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js +374 -0
  64. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  65. package/dist/components/VCalendar/VCalendarEvent.css +2 -0
  66. package/dist/components/VCalendar/VCalendarEvent.d.ts +71 -0
  67. package/dist/components/VCalendar/VCalendarEvent.js +9 -0
  68. package/dist/components/VCalendar/VCalendarEvent.js.map +1 -0
  69. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js +106 -0
  70. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  71. package/dist/components/VCalendar/VCalendarMonth.css +2 -0
  72. package/dist/components/VCalendar/VCalendarMonth.d.ts +60 -0
  73. package/dist/components/VCalendar/VCalendarMonth.js +9 -0
  74. package/dist/components/VCalendar/VCalendarMonth.js.map +1 -0
  75. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js +342 -0
  76. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -0
  77. package/dist/components/VCalendar/VCalendarTimeGrid.css +2 -0
  78. package/dist/components/VCalendar/VCalendarTimeGrid.d.ts +85 -0
  79. package/dist/components/VCalendar/VCalendarTimeGrid.js +9 -0
  80. package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -0
  81. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js +621 -0
  82. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
  83. package/dist/components/VCalendar/VCalendarYear.css +2 -0
  84. package/dist/components/VCalendar/VCalendarYear.d.ts +31 -0
  85. package/dist/components/VCalendar/VCalendarYear.js +9 -0
  86. package/dist/components/VCalendar/VCalendarYear.js.map +1 -0
  87. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js +76 -0
  88. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -0
  89. package/dist/components/VCalendar/color.d.ts +9 -0
  90. package/dist/components/VCalendar/color.js +9 -0
  91. package/dist/components/VCalendar/color.js.map +1 -0
  92. package/dist/components/VCalendar/edgeStep.d.ts +38 -0
  93. package/dist/components/VCalendar/edgeStep.js +28 -0
  94. package/dist/components/VCalendar/edgeStep.js.map +1 -0
  95. package/dist/components/VCalendar/keyboard.d.ts +78 -0
  96. package/dist/components/VCalendar/keyboard.js +86 -0
  97. package/dist/components/VCalendar/keyboard.js.map +1 -0
  98. package/dist/components/VCalendar/layout.d.ts +355 -0
  99. package/dist/components/VCalendar/layout.js +292 -0
  100. package/dist/components/VCalendar/layout.js.map +1 -0
  101. package/dist/components/VCalendar/types.d.ts +78 -0
  102. package/dist/components/VCarousel/VCarousel.css +2 -0
  103. package/dist/components/VCarousel/VCarousel.d.ts +241 -0
  104. package/dist/components/VCarousel/VCarousel.js +9 -0
  105. package/dist/components/VCarousel/VCarousel.js.map +1 -0
  106. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js +262 -0
  107. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  108. package/dist/components/VCarousel/VCarouselItem.d.ts +41 -0
  109. package/dist/components/VCarousel/VCarouselItem.js +7 -0
  110. package/dist/components/VCarousel/VCarouselItem.js.map +1 -0
  111. package/dist/components/VCarousel/VCarouselItem.vue_vue_type_script_setup_true_lang.js +25 -0
  112. package/dist/components/VCarousel/VCarouselItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  113. package/dist/components/VCarousel/context.d.ts +23 -0
  114. package/dist/components/VCarousel/context.js +6 -0
  115. package/dist/components/VCarousel/context.js.map +1 -0
  116. package/dist/components/VCheckbox/VCheckbox.css +2 -0
  117. package/dist/components/VCheckbox/VCheckbox.d.ts +63 -0
  118. package/dist/components/VCheckbox/VCheckbox.js +9 -0
  119. package/dist/components/VCheckbox/VCheckbox.js.map +1 -0
  120. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js +83 -0
  121. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  122. package/dist/components/VChip/VChip.css +2 -0
  123. package/dist/components/VChip/VChip.d.ts +120 -0
  124. package/dist/components/VChip/VChip.js +9 -0
  125. package/dist/components/VChip/VChip.js.map +1 -0
  126. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js +118 -0
  127. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  128. package/dist/components/VCombobox/VCombobox.css +2 -0
  129. package/dist/components/VCombobox/VCombobox.d.ts +183 -0
  130. package/dist/components/VCombobox/VCombobox.js +9 -0
  131. package/dist/components/VCombobox/VCombobox.js.map +1 -0
  132. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +428 -0
  133. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  134. package/dist/components/VCombobox/VComboboxGroup.css +2 -0
  135. package/dist/components/VCombobox/VComboboxGroup.d.ts +26 -0
  136. package/dist/components/VCombobox/VComboboxGroup.js +9 -0
  137. package/dist/components/VCombobox/VComboboxGroup.js.map +1 -0
  138. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js +21 -0
  139. package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  140. package/dist/components/VCombobox/VComboboxOption.css +2 -0
  141. package/dist/components/VCombobox/VComboboxOption.d.ts +48 -0
  142. package/dist/components/VCombobox/VComboboxOption.js +9 -0
  143. package/dist/components/VCombobox/VComboboxOption.js.map +1 -0
  144. package/dist/components/VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js +56 -0
  145. package/dist/components/VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -0
  146. package/dist/components/VCombobox/VComboboxSeparator.css +2 -0
  147. package/dist/components/VCombobox/VComboboxSeparator.d.ts +3 -0
  148. package/dist/components/VCombobox/VComboboxSeparator.js +9 -0
  149. package/dist/components/VCombobox/VComboboxSeparator.js.map +1 -0
  150. package/dist/components/VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js +16 -0
  151. package/dist/components/VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  152. package/dist/components/VCombobox/infiniteScroll.d.ts +22 -0
  153. package/dist/components/VCombobox/infiniteScroll.js +28 -0
  154. package/dist/components/VCombobox/infiniteScroll.js.map +1 -0
  155. package/dist/components/VDataTable/VDataTable.css +2 -0
  156. package/dist/components/VDataTable/VDataTable.d.ts +214 -0
  157. package/dist/components/VDataTable/VDataTable.js +9 -0
  158. package/dist/components/VDataTable/VDataTable.js.map +1 -0
  159. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +396 -0
  160. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  161. package/dist/components/VDateInput/VDateInput.css +2 -0
  162. package/dist/components/VDateInput/VDateInput.d.ts +152 -0
  163. package/dist/components/VDateInput/VDateInput.js +9 -0
  164. package/dist/components/VDateInput/VDateInput.js.map +1 -0
  165. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js +324 -0
  166. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  167. package/dist/components/VDatePicker/VDatePicker.css +2 -0
  168. package/dist/components/VDatePicker/VDatePicker.d.ts +143 -0
  169. package/dist/components/VDatePicker/VDatePicker.js +9 -0
  170. package/dist/components/VDatePicker/VDatePicker.js.map +1 -0
  171. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js +454 -0
  172. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  173. package/dist/components/VDatePicker/keyboard.d.ts +56 -0
  174. package/dist/components/VDatePicker/keyboard.js +26 -0
  175. package/dist/components/VDatePicker/keyboard.js.map +1 -0
  176. package/dist/components/VDialog/VDialog.css +2 -0
  177. package/dist/components/VDialog/VDialog.d.ts +96 -0
  178. package/dist/components/VDialog/VDialog.js +9 -0
  179. package/dist/components/VDialog/VDialog.js.map +1 -0
  180. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js +134 -0
  181. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  182. package/dist/components/VDialog/VDialogAlert.d.ts +67 -0
  183. package/dist/components/VDialog/VDialogAlert.js +7 -0
  184. package/dist/components/VDialog/VDialogAlert.js.map +1 -0
  185. package/dist/components/VDialog/VDialogAlert.vue_vue_type_script_setup_true_lang.js +60 -0
  186. package/dist/components/VDialog/VDialogAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  187. package/dist/components/VFileInput/VFileInput.css +2 -0
  188. package/dist/components/VFileInput/VFileInput.d.ts +156 -0
  189. package/dist/components/VFileInput/VFileInput.js +9 -0
  190. package/dist/components/VFileInput/VFileInput.js.map +1 -0
  191. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js +244 -0
  192. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  193. package/dist/components/VFileInput/truncate.d.ts +29 -0
  194. package/dist/components/VFileInput/truncate.js +10 -0
  195. package/dist/components/VFileInput/truncate.js.map +1 -0
  196. package/dist/components/VFilePicker/VFilePicker.css +2 -0
  197. package/dist/components/VFilePicker/VFilePicker.d.ts +203 -0
  198. package/dist/components/VFilePicker/VFilePicker.js +9 -0
  199. package/dist/components/VFilePicker/VFilePicker.js.map +1 -0
  200. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js +266 -0
  201. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  202. package/dist/components/VFilePicker/fileKind.d.ts +29 -0
  203. package/dist/components/VFilePicker/fileKind.js +91 -0
  204. package/dist/components/VFilePicker/fileKind.js.map +1 -0
  205. package/dist/components/VHotkeys/VHotkeys.css +2 -0
  206. package/dist/components/VHotkeys/VHotkeys.d.ts +100 -0
  207. package/dist/components/VHotkeys/VHotkeys.js +9 -0
  208. package/dist/components/VHotkeys/VHotkeys.js.map +1 -0
  209. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js +76 -0
  210. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -0
  211. package/dist/components/VHotkeys/platform.d.ts +82 -0
  212. package/dist/components/VHotkeys/platform.js +115 -0
  213. package/dist/components/VHotkeys/platform.js.map +1 -0
  214. package/dist/components/VIcon/VIcon.css +2 -0
  215. package/dist/components/VIcon/VIcon.d.ts +57 -0
  216. package/dist/components/VIcon/VIcon.js +9 -0
  217. package/dist/components/VIcon/VIcon.js.map +1 -0
  218. package/dist/components/VIcon/VIcon.vue_vue_type_script_setup_true_lang.js +99 -0
  219. package/dist/components/VIcon/VIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  220. package/dist/components/VIcon/iconProps.d.ts +30 -0
  221. package/dist/components/VIcon/iconProps.js +6 -0
  222. package/dist/components/VIcon/iconProps.js.map +1 -0
  223. package/dist/components/VIcon/icons/arrow_downward.d.ts +5 -0
  224. package/dist/components/VIcon/icons/arrow_downward.js +9 -0
  225. package/dist/components/VIcon/icons/arrow_downward.js.map +1 -0
  226. package/dist/components/VIcon/icons/arrow_downward_alt.d.ts +5 -0
  227. package/dist/components/VIcon/icons/arrow_downward_alt.js +9 -0
  228. package/dist/components/VIcon/icons/arrow_downward_alt.js.map +1 -0
  229. package/dist/components/VIcon/icons/arrow_drop_down.d.ts +5 -0
  230. package/dist/components/VIcon/icons/arrow_drop_down.js +9 -0
  231. package/dist/components/VIcon/icons/arrow_drop_down.js.map +1 -0
  232. package/dist/components/VIcon/icons/arrow_drop_up.d.ts +5 -0
  233. package/dist/components/VIcon/icons/arrow_drop_up.js +9 -0
  234. package/dist/components/VIcon/icons/arrow_drop_up.js.map +1 -0
  235. package/dist/components/VIcon/icons/arrow_left_alt.d.ts +5 -0
  236. package/dist/components/VIcon/icons/arrow_left_alt.js +9 -0
  237. package/dist/components/VIcon/icons/arrow_left_alt.js.map +1 -0
  238. package/dist/components/VIcon/icons/arrow_right_alt.d.ts +5 -0
  239. package/dist/components/VIcon/icons/arrow_right_alt.js +9 -0
  240. package/dist/components/VIcon/icons/arrow_right_alt.js.map +1 -0
  241. package/dist/components/VIcon/icons/arrow_upward.d.ts +5 -0
  242. package/dist/components/VIcon/icons/arrow_upward.js +9 -0
  243. package/dist/components/VIcon/icons/arrow_upward.js.map +1 -0
  244. package/dist/components/VIcon/icons/arrow_upward_alt.d.ts +5 -0
  245. package/dist/components/VIcon/icons/arrow_upward_alt.js +9 -0
  246. package/dist/components/VIcon/icons/arrow_upward_alt.js.map +1 -0
  247. package/dist/components/VIcon/icons/attach_file.d.ts +5 -0
  248. package/dist/components/VIcon/icons/attach_file.js +9 -0
  249. package/dist/components/VIcon/icons/attach_file.js.map +1 -0
  250. package/dist/components/VIcon/icons/audio_file.d.ts +5 -0
  251. package/dist/components/VIcon/icons/audio_file.js +9 -0
  252. package/dist/components/VIcon/icons/audio_file.js.map +1 -0
  253. package/dist/components/VIcon/icons/calendar_today.d.ts +5 -0
  254. package/dist/components/VIcon/icons/calendar_today.js +9 -0
  255. package/dist/components/VIcon/icons/calendar_today.js.map +1 -0
  256. package/dist/components/VIcon/icons/check.d.ts +5 -0
  257. package/dist/components/VIcon/icons/check.js +9 -0
  258. package/dist/components/VIcon/icons/check.js.map +1 -0
  259. package/dist/components/VIcon/icons/check_circle.d.ts +5 -0
  260. package/dist/components/VIcon/icons/check_circle.js +9 -0
  261. package/dist/components/VIcon/icons/check_circle.js.map +1 -0
  262. package/dist/components/VIcon/icons/chevron_left.d.ts +5 -0
  263. package/dist/components/VIcon/icons/chevron_left.js +9 -0
  264. package/dist/components/VIcon/icons/chevron_left.js.map +1 -0
  265. package/dist/components/VIcon/icons/chevron_right.d.ts +5 -0
  266. package/dist/components/VIcon/icons/chevron_right.js +9 -0
  267. package/dist/components/VIcon/icons/chevron_right.js.map +1 -0
  268. package/dist/components/VIcon/icons/close.d.ts +5 -0
  269. package/dist/components/VIcon/icons/close.js +9 -0
  270. package/dist/components/VIcon/icons/close.js.map +1 -0
  271. package/dist/components/VIcon/icons/cloud_upload.d.ts +5 -0
  272. package/dist/components/VIcon/icons/cloud_upload.js +9 -0
  273. package/dist/components/VIcon/icons/cloud_upload.js.map +1 -0
  274. package/dist/components/VIcon/icons/code.d.ts +5 -0
  275. package/dist/components/VIcon/icons/code.js +9 -0
  276. package/dist/components/VIcon/icons/code.js.map +1 -0
  277. package/dist/components/VIcon/icons/description.d.ts +5 -0
  278. package/dist/components/VIcon/icons/description.js +9 -0
  279. package/dist/components/VIcon/icons/description.js.map +1 -0
  280. package/dist/components/VIcon/icons/error.d.ts +5 -0
  281. package/dist/components/VIcon/icons/error.js +9 -0
  282. package/dist/components/VIcon/icons/error.js.map +1 -0
  283. package/dist/components/VIcon/icons/expand_less.d.ts +5 -0
  284. package/dist/components/VIcon/icons/expand_less.js +9 -0
  285. package/dist/components/VIcon/icons/expand_less.js.map +1 -0
  286. package/dist/components/VIcon/icons/expand_more.d.ts +5 -0
  287. package/dist/components/VIcon/icons/expand_more.js +9 -0
  288. package/dist/components/VIcon/icons/expand_more.js.map +1 -0
  289. package/dist/components/VIcon/icons/folder_zip.d.ts +5 -0
  290. package/dist/components/VIcon/icons/folder_zip.js +9 -0
  291. package/dist/components/VIcon/icons/folder_zip.js.map +1 -0
  292. package/dist/components/VIcon/icons/image.d.ts +5 -0
  293. package/dist/components/VIcon/icons/image.js +9 -0
  294. package/dist/components/VIcon/icons/image.js.map +1 -0
  295. package/dist/components/VIcon/icons/index.d.ts +183 -0
  296. package/dist/components/VIcon/icons/index.js +77 -0
  297. package/dist/components/VIcon/icons/index.js.map +1 -0
  298. package/dist/components/VIcon/icons/info.d.ts +5 -0
  299. package/dist/components/VIcon/icons/info.js +9 -0
  300. package/dist/components/VIcon/icons/info.js.map +1 -0
  301. package/dist/components/VIcon/icons/more_horiz.d.ts +5 -0
  302. package/dist/components/VIcon/icons/more_horiz.js +9 -0
  303. package/dist/components/VIcon/icons/more_horiz.js.map +1 -0
  304. package/dist/components/VIcon/icons/names.d.ts +11 -0
  305. package/dist/components/VIcon/icons/names.js +5 -0
  306. package/dist/components/VIcon/icons/names.js.map +1 -0
  307. package/dist/components/VIcon/icons/notifications.d.ts +5 -0
  308. package/dist/components/VIcon/icons/notifications.js +9 -0
  309. package/dist/components/VIcon/icons/notifications.js.map +1 -0
  310. package/dist/components/VIcon/icons/picture_as_pdf.d.ts +5 -0
  311. package/dist/components/VIcon/icons/picture_as_pdf.js +9 -0
  312. package/dist/components/VIcon/icons/picture_as_pdf.js.map +1 -0
  313. package/dist/components/VIcon/icons/schedule.d.ts +5 -0
  314. package/dist/components/VIcon/icons/schedule.js +9 -0
  315. package/dist/components/VIcon/icons/schedule.js.map +1 -0
  316. package/dist/components/VIcon/icons/search.d.ts +5 -0
  317. package/dist/components/VIcon/icons/search.js +9 -0
  318. package/dist/components/VIcon/icons/search.js.map +1 -0
  319. package/dist/components/VIcon/icons/swap_vert.d.ts +5 -0
  320. package/dist/components/VIcon/icons/swap_vert.js +9 -0
  321. package/dist/components/VIcon/icons/swap_vert.js.map +1 -0
  322. package/dist/components/VIcon/icons/table_chart.d.ts +5 -0
  323. package/dist/components/VIcon/icons/table_chart.js +9 -0
  324. package/dist/components/VIcon/icons/table_chart.js.map +1 -0
  325. package/dist/components/VIcon/icons/video_file.d.ts +5 -0
  326. package/dist/components/VIcon/icons/video_file.js +9 -0
  327. package/dist/components/VIcon/icons/video_file.js.map +1 -0
  328. package/dist/components/VIcon/icons/viewBox.d.ts +6 -0
  329. package/dist/components/VIcon/icons/viewBox.js +6 -0
  330. package/dist/components/VIcon/icons/viewBox.js.map +1 -0
  331. package/dist/components/VIcon/icons/warning.d.ts +5 -0
  332. package/dist/components/VIcon/icons/warning.js +9 -0
  333. package/dist/components/VIcon/icons/warning.js.map +1 -0
  334. package/dist/components/VIcon/resolver.d.ts +76 -0
  335. package/dist/components/VIcon/resolver.js +35 -0
  336. package/dist/components/VIcon/resolver.js.map +1 -0
  337. package/dist/components/VIcon/types.d.ts +77 -0
  338. package/dist/components/VIconButton/VIconButton.css +2 -0
  339. package/dist/components/VIconButton/VIconButton.d.ts +66 -0
  340. package/dist/components/VIconButton/VIconButton.js +9 -0
  341. package/dist/components/VIconButton/VIconButton.js.map +1 -0
  342. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js +70 -0
  343. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  344. package/dist/components/VInput/VInput.css +2 -0
  345. package/dist/components/VInput/VInput.d.ts +152 -0
  346. package/dist/components/VInput/VInput.js +9 -0
  347. package/dist/components/VInput/VInput.js.map +1 -0
  348. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js +185 -0
  349. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  350. package/dist/components/VInputOTP/VInputOTP.css +2 -0
  351. package/dist/components/VInputOTP/VInputOTP.d.ts +76 -0
  352. package/dist/components/VInputOTP/VInputOTP.js +9 -0
  353. package/dist/components/VInputOTP/VInputOTP.js.map +1 -0
  354. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +149 -0
  355. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -0
  356. package/dist/components/VMenu/VMenu.d.ts +91 -0
  357. package/dist/components/VMenu/VMenu.js +7 -0
  358. package/dist/components/VMenu/VMenu.js.map +1 -0
  359. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js +73 -0
  360. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  361. package/dist/components/VMenu/VMenuGroup.css +2 -0
  362. package/dist/components/VMenu/VMenuGroup.d.ts +22 -0
  363. package/dist/components/VMenu/VMenuGroup.js +9 -0
  364. package/dist/components/VMenu/VMenuGroup.js.map +1 -0
  365. package/dist/components/VMenu/VMenuGroup.vue_vue_type_script_setup_true_lang.js +21 -0
  366. package/dist/components/VMenu/VMenuGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  367. package/dist/components/VMenu/VMenuItem.css +2 -0
  368. package/dist/components/VMenu/VMenuItem.d.ts +85 -0
  369. package/dist/components/VMenu/VMenuItem.js +9 -0
  370. package/dist/components/VMenu/VMenuItem.js.map +1 -0
  371. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js +121 -0
  372. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  373. package/dist/components/VMenu/VMenuPanel.css +2 -0
  374. package/dist/components/VMenu/VMenuPanel.d.ts +91 -0
  375. package/dist/components/VMenu/VMenuPanel.js +9 -0
  376. package/dist/components/VMenu/VMenuPanel.js.map +1 -0
  377. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +103 -0
  378. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  379. package/dist/components/VMenu/VMenuSeparator.css +2 -0
  380. package/dist/components/VMenu/VMenuSeparator.d.ts +3 -0
  381. package/dist/components/VMenu/VMenuSeparator.js +9 -0
  382. package/dist/components/VMenu/VMenuSeparator.js.map +1 -0
  383. package/dist/components/VMenu/VMenuSeparator.vue_vue_type_script_setup_true_lang.js +13 -0
  384. package/dist/components/VMenu/VMenuSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  385. package/dist/components/VMenu/context.d.ts +33 -0
  386. package/dist/components/VMenu/context.js +9 -0
  387. package/dist/components/VMenu/context.js.map +1 -0
  388. package/dist/components/VPagination/VPagination.css +2 -0
  389. package/dist/components/VPagination/VPagination.d.ts +103 -0
  390. package/dist/components/VPagination/VPagination.js +9 -0
  391. package/dist/components/VPagination/VPagination.js.map +1 -0
  392. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js +270 -0
  393. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
  394. package/dist/components/VPopover/VPopover.css +2 -0
  395. package/dist/components/VPopover/VPopover.d.ts +82 -0
  396. package/dist/components/VPopover/VPopover.js +9 -0
  397. package/dist/components/VPopover/VPopover.js.map +1 -0
  398. package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js +65 -0
  399. package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
  400. package/dist/components/VProgressCircular/VProgressCircular.css +2 -0
  401. package/dist/components/VProgressCircular/VProgressCircular.d.ts +60 -0
  402. package/dist/components/VProgressCircular/VProgressCircular.js +9 -0
  403. package/dist/components/VProgressCircular/VProgressCircular.js.map +1 -0
  404. package/dist/components/VProgressCircular/VProgressCircular.vue_vue_type_script_setup_true_lang.js +74 -0
  405. package/dist/components/VProgressCircular/VProgressCircular.vue_vue_type_script_setup_true_lang.js.map +1 -0
  406. package/dist/components/VProgressLinear/VProgressLinear.css +2 -0
  407. package/dist/components/VProgressLinear/VProgressLinear.d.ts +74 -0
  408. package/dist/components/VProgressLinear/VProgressLinear.js +9 -0
  409. package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -0
  410. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js +74 -0
  411. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -0
  412. package/dist/components/VRadio/VRadio.css +2 -0
  413. package/dist/components/VRadio/VRadio.d.ts +58 -0
  414. package/dist/components/VRadio/VRadio.js +9 -0
  415. package/dist/components/VRadio/VRadio.js.map +1 -0
  416. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js +60 -0
  417. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
  418. package/dist/components/VSeparator/VSeparator.css +2 -0
  419. package/dist/components/VSeparator/VSeparator.d.ts +23 -0
  420. package/dist/components/VSeparator/VSeparator.js +9 -0
  421. package/dist/components/VSeparator/VSeparator.js.map +1 -0
  422. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js +17 -0
  423. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  424. package/dist/components/VSideNavigation/VSideNavigation.css +2 -0
  425. package/dist/components/VSideNavigation/VSideNavigation.d.ts +64 -0
  426. package/dist/components/VSideNavigation/VSideNavigation.js +9 -0
  427. package/dist/components/VSideNavigation/VSideNavigation.js.map +1 -0
  428. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js +67 -0
  429. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js.map +1 -0
  430. package/dist/components/VSideNavigation/VSideNavigationGroup.css +2 -0
  431. package/dist/components/VSideNavigation/VSideNavigationGroup.d.ts +33 -0
  432. package/dist/components/VSideNavigation/VSideNavigationGroup.js +9 -0
  433. package/dist/components/VSideNavigation/VSideNavigationGroup.js.map +1 -0
  434. package/dist/components/VSideNavigation/VSideNavigationGroup.vue_vue_type_script_setup_true_lang.js +20 -0
  435. package/dist/components/VSideNavigation/VSideNavigationGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  436. package/dist/components/VSideNavigation/VSideNavigationItem.css +2 -0
  437. package/dist/components/VSideNavigation/VSideNavigationItem.d.ts +103 -0
  438. package/dist/components/VSideNavigation/VSideNavigationItem.js +9 -0
  439. package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -0
  440. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +154 -0
  441. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  442. package/dist/components/VSideNavigation/VSideNavigationSeparator.css +2 -0
  443. package/dist/components/VSideNavigation/VSideNavigationSeparator.d.ts +3 -0
  444. package/dist/components/VSideNavigation/VSideNavigationSeparator.js +17 -0
  445. package/dist/components/VSideNavigation/VSideNavigationSeparator.js.map +1 -0
  446. package/dist/components/VSideNavigation/context.d.ts +37 -0
  447. package/dist/components/VSideNavigation/context.js +6 -0
  448. package/dist/components/VSideNavigation/context.js.map +1 -0
  449. package/dist/components/VSkeletonLoader/VSkeletonLoader.css +2 -0
  450. package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +75 -0
  451. package/dist/components/VSkeletonLoader/VSkeletonLoader.js +9 -0
  452. package/dist/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -0
  453. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js +61 -0
  454. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -0
  455. package/dist/components/VSlider/VSlider.css +2 -0
  456. package/dist/components/VSlider/VSlider.d.ts +82 -0
  457. package/dist/components/VSlider/VSlider.js +9 -0
  458. package/dist/components/VSlider/VSlider.js.map +1 -0
  459. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js +220 -0
  460. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  461. package/dist/components/VSnackbar/VSnackbar.css +2 -0
  462. package/dist/components/VSnackbar/VSnackbar.d.ts +51 -0
  463. package/dist/components/VSnackbar/VSnackbar.js +9 -0
  464. package/dist/components/VSnackbar/VSnackbar.js.map +1 -0
  465. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js +83 -0
  466. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  467. package/dist/components/VSnackbar/state.d.ts +92 -0
  468. package/dist/components/VSnackbar/state.js +18 -0
  469. package/dist/components/VSnackbar/state.js.map +1 -0
  470. package/dist/components/VSpinner/VSpinner.css +2 -0
  471. package/dist/components/VSpinner/VSpinner.d.ts +21 -0
  472. package/dist/components/VSpinner/VSpinner.js +9 -0
  473. package/dist/components/VSpinner/VSpinner.js.map +1 -0
  474. package/dist/components/VSpinner/VSpinner.vue_vue_type_script_setup_true_lang.js +25 -0
  475. package/dist/components/VSpinner/VSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  476. package/dist/components/VSwitch/VSwitch.css +2 -0
  477. package/dist/components/VSwitch/VSwitch.d.ts +46 -0
  478. package/dist/components/VSwitch/VSwitch.js +9 -0
  479. package/dist/components/VSwitch/VSwitch.js.map +1 -0
  480. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js +51 -0
  481. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
  482. package/dist/components/VTabs/VTab.css +2 -0
  483. package/dist/components/VTabs/VTab.d.ts +42 -0
  484. package/dist/components/VTabs/VTab.js +9 -0
  485. package/dist/components/VTabs/VTab.js.map +1 -0
  486. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js +66 -0
  487. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  488. package/dist/components/VTabs/VTabPanel.css +2 -0
  489. package/dist/components/VTabs/VTabPanel.d.ts +34 -0
  490. package/dist/components/VTabs/VTabPanel.js +9 -0
  491. package/dist/components/VTabs/VTabPanel.js.map +1 -0
  492. package/dist/components/VTabs/VTabPanel.vue_vue_type_script_setup_true_lang.js +34 -0
  493. package/dist/components/VTabs/VTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  494. package/dist/components/VTabs/VTabs.css +2 -0
  495. package/dist/components/VTabs/VTabs.d.ts +107 -0
  496. package/dist/components/VTabs/VTabs.js +9 -0
  497. package/dist/components/VTabs/VTabs.js.map +1 -0
  498. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js +199 -0
  499. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
  500. package/dist/components/VTabs/context.d.ts +43 -0
  501. package/dist/components/VTabs/context.js +6 -0
  502. package/dist/components/VTabs/context.js.map +1 -0
  503. package/dist/components/VTextarea/VTextarea.css +2 -0
  504. package/dist/components/VTextarea/VTextarea.d.ts +140 -0
  505. package/dist/components/VTextarea/VTextarea.js +9 -0
  506. package/dist/components/VTextarea/VTextarea.js.map +1 -0
  507. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js +187 -0
  508. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  509. package/dist/components/VTimeInput/VTimeInput.css +2 -0
  510. package/dist/components/VTimeInput/VTimeInput.d.ts +112 -0
  511. package/dist/components/VTimeInput/VTimeInput.js +9 -0
  512. package/dist/components/VTimeInput/VTimeInput.js.map +1 -0
  513. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js +385 -0
  514. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  515. package/dist/components/VTimePicker/VTimePicker.css +2 -0
  516. package/dist/components/VTimePicker/VTimePicker.d.ts +89 -0
  517. package/dist/components/VTimePicker/VTimePicker.js +9 -0
  518. package/dist/components/VTimePicker/VTimePicker.js.map +1 -0
  519. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js +257 -0
  520. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  521. package/dist/components/VToast/VToast.css +2 -0
  522. package/dist/components/VToast/VToast.d.ts +24 -0
  523. package/dist/components/VToast/VToast.js +9 -0
  524. package/dist/components/VToast/VToast.js.map +1 -0
  525. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js +62 -0
  526. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js.map +1 -0
  527. package/dist/components/VToast/VToaster.css +2 -0
  528. package/dist/components/VToast/VToaster.d.ts +42 -0
  529. package/dist/components/VToast/VToaster.js +9 -0
  530. package/dist/components/VToast/VToaster.js.map +1 -0
  531. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js +112 -0
  532. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js.map +1 -0
  533. package/dist/components/VToast/state.d.ts +74 -0
  534. package/dist/components/VToast/state.js +25 -0
  535. package/dist/components/VToast/state.js.map +1 -0
  536. package/dist/components/VToggle/VToggle.css +2 -0
  537. package/dist/components/VToggle/VToggle.d.ts +84 -0
  538. package/dist/components/VToggle/VToggle.js +9 -0
  539. package/dist/components/VToggle/VToggle.js.map +1 -0
  540. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js +103 -0
  541. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js.map +1 -0
  542. package/dist/components/VToggle/VToggleItem.css +2 -0
  543. package/dist/components/VToggle/VToggleItem.d.ts +35 -0
  544. package/dist/components/VToggle/VToggleItem.js +9 -0
  545. package/dist/components/VToggle/VToggleItem.js.map +1 -0
  546. package/dist/components/VToggle/VToggleItem.vue_vue_type_script_setup_true_lang.js +51 -0
  547. package/dist/components/VToggle/VToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  548. package/dist/components/VToggle/context.d.ts +37 -0
  549. package/dist/components/VToggle/context.js +6 -0
  550. package/dist/components/VToggle/context.js.map +1 -0
  551. package/dist/components/VTooltip/VTooltip.css +2 -0
  552. package/dist/components/VTooltip/VTooltip.d.ts +76 -0
  553. package/dist/components/VTooltip/VTooltip.js +9 -0
  554. package/dist/components/VTooltip/VTooltip.js.map +1 -0
  555. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js +50 -0
  556. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  557. package/dist/components/VTypography/VTypography.css +2 -0
  558. package/dist/components/VTypography/VTypography.d.ts +46 -0
  559. package/dist/components/VTypography/VTypography.js +9 -0
  560. package/dist/components/VTypography/VTypography.js.map +1 -0
  561. package/dist/components/VTypography/VTypography.vue_vue_type_script_setup_true_lang.js +49 -0
  562. package/dist/components/VTypography/VTypography.vue_vue_type_script_setup_true_lang.js.map +1 -0
  563. package/dist/composables/useAriaLabel.d.ts +19 -0
  564. package/dist/composables/useAriaLabel.js +10 -0
  565. package/dist/composables/useAriaLabel.js.map +1 -0
  566. package/dist/composables/useFieldIds.d.ts +21 -0
  567. package/dist/composables/useFieldIds.js +14 -0
  568. package/dist/composables/useFieldIds.js.map +1 -0
  569. package/dist/composables/useFieldPanel.d.ts +61 -0
  570. package/dist/composables/useFieldPanel.js +39 -0
  571. package/dist/composables/useFieldPanel.js.map +1 -0
  572. package/dist/composables/useFileDrop.d.ts +30 -0
  573. package/dist/composables/useFileDrop.js +28 -0
  574. package/dist/composables/useFileDrop.js.map +1 -0
  575. package/dist/composables/useFileField.d.ts +36 -0
  576. package/dist/composables/useFileField.js +45 -0
  577. package/dist/composables/useFileField.js.map +1 -0
  578. package/dist/composables/useFocusoutDismiss.d.ts +17 -0
  579. package/dist/composables/useFocusoutDismiss.js +11 -0
  580. package/dist/composables/useFocusoutDismiss.js.map +1 -0
  581. package/dist/composables/useIconClickHandlers.d.ts +27 -0
  582. package/dist/composables/useIconClickHandlers.js +13 -0
  583. package/dist/composables/useIconClickHandlers.js.map +1 -0
  584. package/dist/composables/useMaskedField.d.ts +65 -0
  585. package/dist/composables/useMaskedField.js +54 -0
  586. package/dist/composables/useMaskedField.js.map +1 -0
  587. package/dist/composables/usePopover.d.ts +7 -0
  588. package/dist/composables/usePopover.js +24 -0
  589. package/dist/composables/usePopover.js.map +1 -0
  590. package/dist/composables/useProgressValue.d.ts +13 -0
  591. package/dist/composables/useProgressValue.js +14 -0
  592. package/dist/composables/useProgressValue.js.map +1 -0
  593. package/dist/composables/useRootAttrs.d.ts +34 -0
  594. package/dist/composables/useRootAttrs.js +15 -0
  595. package/dist/composables/useRootAttrs.js.map +1 -0
  596. package/dist/composables/useTextLimit.d.ts +31 -0
  597. package/dist/composables/useTextLimit.js +19 -0
  598. package/dist/composables/useTextLimit.js.map +1 -0
  599. package/dist/composables/useTimer.d.ts +18 -0
  600. package/dist/composables/useTimer.js +19 -0
  601. package/dist/composables/useTimer.js.map +1 -0
  602. package/dist/i18n/en.d.ts +10 -0
  603. package/dist/i18n/en.js +179 -0
  604. package/dist/i18n/en.js.map +1 -0
  605. package/dist/i18n/fr.d.ts +18 -0
  606. package/dist/i18n/fr.js +179 -0
  607. package/dist/i18n/fr.js.map +1 -0
  608. package/dist/i18n/state.d.ts +64 -0
  609. package/dist/i18n/state.js +40 -0
  610. package/dist/i18n/state.js.map +1 -0
  611. package/dist/i18n/types.d.ts +345 -0
  612. package/dist/icons.d.ts +16 -0
  613. package/dist/icons.js +38 -0
  614. package/dist/index.d.ts +90 -0
  615. package/dist/index.js +64 -0
  616. package/dist/styles.css +1 -0
  617. package/dist/tokens/css.d.ts +25 -0
  618. package/dist/tokens/css.js +29 -0
  619. package/dist/tokens/css.js.map +1 -0
  620. package/dist/tokens/index.d.ts +370 -0
  621. package/dist/tokens/index.js +15 -0
  622. package/dist/tokens/index.js.map +1 -0
  623. package/dist/tokens/primitives.d.ts +101 -0
  624. package/dist/tokens/primitives.js +166 -0
  625. package/dist/tokens/primitives.js.map +1 -0
  626. package/dist/tokens/semantic.d.ts +236 -0
  627. package/dist/tokens/semantic.js +219 -0
  628. package/dist/tokens/semantic.js.map +1 -0
  629. package/dist/tokens/themes/dark.d.ts +49 -0
  630. package/dist/tokens/themes/dark.js +53 -0
  631. package/dist/tokens/themes/dark.js.map +1 -0
  632. package/dist/tokens/types.d.ts +38 -0
  633. package/dist/tokens/types.js +16 -0
  634. package/dist/tokens/types.js.map +1 -0
  635. package/dist/tokens.json +1516 -0
  636. package/dist/utils/array.d.ts +10 -0
  637. package/dist/utils/array.js +8 -0
  638. package/dist/utils/array.js.map +1 -0
  639. package/dist/utils/arrowNav.d.ts +27 -0
  640. package/dist/utils/arrowNav.js +26 -0
  641. package/dist/utils/arrowNav.js.map +1 -0
  642. package/dist/utils/chip.d.ts +26 -0
  643. package/dist/utils/chip.js +13 -0
  644. package/dist/utils/chip.js.map +1 -0
  645. package/dist/utils/css.d.ts +19 -0
  646. package/dist/utils/css.js +13 -0
  647. package/dist/utils/css.js.map +1 -0
  648. package/dist/utils/date.d.ts +199 -0
  649. package/dist/utils/date.js +225 -0
  650. package/dist/utils/date.js.map +1 -0
  651. package/dist/utils/direction.d.ts +18 -0
  652. package/dist/utils/direction.js +8 -0
  653. package/dist/utils/direction.js.map +1 -0
  654. package/dist/utils/env.d.ts +10 -0
  655. package/dist/utils/file.d.ts +95 -0
  656. package/dist/utils/file.js +70 -0
  657. package/dist/utils/file.js.map +1 -0
  658. package/dist/utils/focus.d.ts +24 -0
  659. package/dist/utils/focus.js +13 -0
  660. package/dist/utils/focus.js.map +1 -0
  661. package/dist/utils/matcher.d.ts +13 -0
  662. package/dist/utils/matcher.js +11 -0
  663. package/dist/utils/matcher.js.map +1 -0
  664. package/dist/utils/number.d.ts +9 -0
  665. package/dist/utils/number.js +8 -0
  666. package/dist/utils/number.js.map +1 -0
  667. package/dist/utils/text.d.ts +19 -0
  668. package/dist/utils/text.js +12 -0
  669. package/dist/utils/text.js.map +1 -0
  670. package/dist/utils/time.d.ts +138 -0
  671. package/dist/utils/time.js +123 -0
  672. package/dist/utils/time.js.map +1 -0
  673. package/dist/utils/vnode.d.ts +21 -0
  674. package/dist/utils/vnode.js +14 -0
  675. package/dist/utils/vnode.js.map +1 -0
  676. package/package.json +114 -0
@@ -0,0 +1,454 @@
1
+ import { useLocale as e, useMessages as t } from "../../i18n/state.js";
2
+ import n from "../VIcon/VIcon.js";
3
+ import r from "../VButton/VButton.js";
4
+ import i from "../VIconButton/VIconButton.js";
5
+ import { chevron_left as a } from "../VIcon/icons/chevron_left.js";
6
+ import { chevron_right as ee } from "../VIcon/icons/chevron_right.js";
7
+ import { clamp as te } from "../../utils/number.js";
8
+ import { resolveMatcher as ne } from "../../utils/matcher.js";
9
+ import { toggleValue as re } from "../../utils/array.js";
10
+ import { arrow_drop_down as ie } from "../VIcon/icons/arrow_drop_down.js";
11
+ import { arrow_drop_up as ae } from "../VIcon/icons/arrow_drop_up.js";
12
+ import { addDays as oe, addMonths as o, buildMonthGrid as se, clampISO as s, compareISO as c, daysInMonth as l, firstDayOfWeekFor as ce, formatISO as le, isSameISO as u, isValidISO as ue, isWithin as de, isoOf as d, monthName as fe, monthNamesCompact as pe, parseISO as f, weekdayNames as me } from "../../utils/date.js";
13
+ import { dayStep as he, gridDelta as ge } from "./keyboard.js";
14
+ import { Fragment as p, computed as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, mergeModels as x, nextTick as S, normalizeStyle as _e, onMounted as ve, openBlock as C, ref as w, renderList as T, renderSlot as E, toDisplayString as D, unref as O, useId as ye, useModel as be, vShow as xe, watch as Se, withCtx as Ce, withDirectives as we } from "vue";
15
+ //#region src/components/VDatePicker/VDatePicker.vue?vue&type=script&setup=true&lang.ts
16
+ var Te = ["data-view", "data-selection"], Ee = { class: "v-date-picker-header" }, De = { class: "v-date-picker-nav" }, Oe = { class: "v-date-picker-nav" }, ke = ["aria-label", "aria-multiselectable"], Ae = {
17
+ class: "v-date-picker-weekdays",
18
+ role: "row"
19
+ }, je = ["aria-label"], Me = [
20
+ "aria-selected",
21
+ "data-in-range",
22
+ "data-range-start",
23
+ "data-range-end"
24
+ ], Ne = [
25
+ "id",
26
+ "tabindex",
27
+ "data-outside",
28
+ "data-selected",
29
+ "data-today",
30
+ "aria-disabled",
31
+ "aria-current",
32
+ "onClick",
33
+ "onPointerenter",
34
+ "onFocus"
35
+ ], Pe = { class: "v-date-picker-day-num" }, Fe = {
36
+ key: 0,
37
+ class: "v-date-picker-dots",
38
+ "aria-hidden": "true"
39
+ }, Ie = ["data-disabled"], Le = { class: "v-date-picker-day-num" }, Re = ["aria-label"], ze = [
40
+ "id",
41
+ "tabindex",
42
+ "data-selected",
43
+ "aria-selected",
44
+ "disabled",
45
+ "onClick"
46
+ ], Be = ["aria-label"], Ve = [
47
+ "id",
48
+ "tabindex",
49
+ "data-selected",
50
+ "aria-selected",
51
+ "onClick"
52
+ ], He = {
53
+ key: 2,
54
+ class: "v-date-picker-footer"
55
+ }, Ue = /*@__PURE__*/ b({
56
+ __name: "VDatePicker",
57
+ props: /*@__PURE__*/ x({
58
+ selection: { default: "single" },
59
+ locale: { default: void 0 },
60
+ firstDayOfWeek: { default: void 0 },
61
+ min: { default: void 0 },
62
+ max: { default: void 0 },
63
+ disabledDates: {
64
+ type: [Array, Function],
65
+ default: void 0
66
+ },
67
+ showAdjacentDays: {
68
+ type: Boolean,
69
+ default: !1
70
+ },
71
+ selectAdjacentDays: {
72
+ type: Boolean,
73
+ default: !1
74
+ },
75
+ events: { default: void 0 }
76
+ }, {
77
+ modelValue: { default: null },
78
+ modelModifiers: {}
79
+ }),
80
+ emits: /*@__PURE__*/ x(["select"], ["update:modelValue"]),
81
+ setup(b, { expose: x, emit: Ue }) {
82
+ let k = b, A = be(b, "modelValue"), We = Ue, j = ye(), M = t(), Ge = e(), N = m(() => k.locale ?? Ge.value), P = m(() => k.firstDayOfWeek ?? ce(N.value)), Ke = m(() => me(N.value, P.value, "short")), qe = m(() => me(N.value, P.value, "long")), F = m(() => pe(N.value)), I = m(() => k.selection === "single" && typeof A.value == "string" && ue(A.value) ? A.value : null), L = m(() => k.selection === "range" && A.value && typeof A.value == "object" && !Array.isArray(A.value) ? A.value : {
83
+ start: null,
84
+ end: null
85
+ }), R = m(() => k.selection === "multiple" && Array.isArray(A.value) ? A.value : []);
86
+ function Je() {
87
+ return I.value ? I.value : L.value.start ? L.value.start : R.value[0] ? R.value[0] : s(le(/* @__PURE__ */ new Date()), k.min, k.max);
88
+ }
89
+ let z = w(Je()), B = w("days"), V = m(() => f(z.value)?.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear()), H = m(() => f(z.value)?.getMonth() ?? 0), U = m(() => fe(N.value, H.value, "long")), Ye = m(() => `${U.value} ${V.value}`), Xe = w(null);
90
+ ve(() => {
91
+ Xe.value = le(/* @__PURE__ */ new Date());
92
+ });
93
+ let Ze = m(() => ne(k.disabledDates)), Qe = m(() => {
94
+ let e = /* @__PURE__ */ new Map();
95
+ for (let t of k.events ?? []) {
96
+ let n = e.get(t.date) ?? [];
97
+ n.push(t), e.set(t.date, n);
98
+ }
99
+ return e;
100
+ }), W = w(null);
101
+ function G(e, t) {
102
+ return c(e, t) <= 0 ? {
103
+ start: e,
104
+ end: t
105
+ } : {
106
+ start: t,
107
+ end: e
108
+ };
109
+ }
110
+ let K = m(() => {
111
+ if (k.selection !== "range") return {
112
+ start: null,
113
+ end: null
114
+ };
115
+ let e = L.value;
116
+ if (e.start && e.end) return G(e.start, e.end);
117
+ let t = W.value ?? z.value;
118
+ return e.start && t ? G(e.start, t) : {
119
+ start: e.start,
120
+ end: e.end
121
+ };
122
+ });
123
+ function $e(e) {
124
+ return k.selection === "single" ? u(e, I.value) : k.selection === "multiple" ? R.value.includes(e) : u(e, K.value.start) || u(e, K.value.end);
125
+ }
126
+ function et(e) {
127
+ let { start: t, end: n } = K.value;
128
+ return !!t && !!n && c(e, t) >= 0 && c(e, n) <= 0;
129
+ }
130
+ let q = m(() => se(V.value, H.value, P.value).map((e) => {
131
+ let t = e.adjacent === null, n = t || k.showAdjacentDays || k.selectAdjacentDays, r = t || k.selectAdjacentDays, i = !de(e.iso, k.min, k.max) || Ze.value(e.iso), a = n ? r ? "button" : "static" : "empty";
132
+ return {
133
+ iso: e.iso,
134
+ day: f(e.iso)?.getDate() ?? 0,
135
+ kind: a,
136
+ inMonth: t,
137
+ disabled: i,
138
+ selected: a === "button" && !i && $e(e.iso),
139
+ rangeStart: k.selection === "range" && u(e.iso, K.value.start),
140
+ rangeEnd: k.selection === "range" && u(e.iso, K.value.end),
141
+ inRange: k.selection === "range" && et(e.iso),
142
+ today: u(e.iso, Xe.value),
143
+ events: Qe.value.get(e.iso) ?? []
144
+ };
145
+ })), tt = m(() => {
146
+ let e = [];
147
+ for (let t = 0; t < q.value.length; t += 7) e.push(q.value.slice(t, t + 7));
148
+ return e;
149
+ });
150
+ function J(e, t) {
151
+ let n = d(e, t, 1), r = d(e, t, l(e, t));
152
+ return (!k.max || c(n, k.max) <= 0) && (!k.min || c(r, k.min) >= 0);
153
+ }
154
+ let nt = m(() => {
155
+ let e = f(o(z.value, -1));
156
+ return J(e.getFullYear(), e.getMonth());
157
+ }), rt = m(() => {
158
+ let e = f(o(z.value, 1));
159
+ return J(e.getFullYear(), e.getMonth());
160
+ }), it = m(() => !k.min || c(d(V.value - 1, 11, 31), k.min) >= 0), at = m(() => !k.max || c(d(V.value + 1, 0, 1), k.max) <= 0), ot = (e) => `${j}-d-${e}`;
161
+ function Y(e) {
162
+ S(() => document.getElementById(ot(e))?.focus());
163
+ }
164
+ function X(e, t = !1) {
165
+ z.value = s(e, k.min, k.max), t && B.value === "days" && Y(z.value);
166
+ }
167
+ function st(e) {
168
+ X(o(z.value, e));
169
+ }
170
+ function ct(e) {
171
+ X(o(z.value, e * 12));
172
+ }
173
+ function lt(e) {
174
+ let t = B.value === e ? "days" : e;
175
+ B.value = t, t === "months" ? (Z.value = H.value, S(() => Q(H.value)?.focus())) : t === "years" ? ($.value = V.value, S(() => {
176
+ let e = yt(V.value);
177
+ e?.scrollIntoView?.({ block: "center" }), e?.focus();
178
+ })) : B.value === "days" && Y(z.value);
179
+ }
180
+ function ut(e) {
181
+ if (!(e.kind !== "button" || e.disabled)) {
182
+ if (z.value = e.iso, k.selection === "single") A.value = e.iso;
183
+ else if (k.selection === "multiple") A.value = re(R.value, e.iso).sort(c);
184
+ else {
185
+ let t = L.value;
186
+ !t.start || t.start && t.end ? A.value = {
187
+ start: e.iso,
188
+ end: null
189
+ } : A.value = G(t.start, e.iso);
190
+ }
191
+ We("select", A.value);
192
+ }
193
+ }
194
+ function dt(e) {
195
+ if (e.key === "Enter" || e.key === " ") {
196
+ e.preventDefault();
197
+ let t = q.value.find((e) => e.iso === z.value);
198
+ t && ut(t);
199
+ return;
200
+ }
201
+ let t = (f(z.value).getDay() - P.value + 7) % 7, n = he(e.key, e.shiftKey, t);
202
+ n && (e.preventDefault(), X("days" in n ? oe(z.value, n.days) : o(z.value, n.months), !0));
203
+ }
204
+ let Z = w(H.value), Q = (e) => document.getElementById(`${j}-m-${e}`);
205
+ function ft(e) {
206
+ return J(V.value, e);
207
+ }
208
+ function pt(e) {
209
+ if (!ft(e)) return;
210
+ let t = Math.min(f(z.value).getDate(), l(V.value, e));
211
+ X(d(V.value, e, t)), B.value = "days", Y(z.value);
212
+ }
213
+ function mt(e) {
214
+ if (e.key === "Enter" || e.key === " ") {
215
+ e.preventDefault(), pt(Z.value);
216
+ return;
217
+ }
218
+ let t = ge(e.key);
219
+ t !== void 0 && (e.preventDefault(), Z.value = te(Z.value + t, 0, 11), Q(Z.value)?.focus());
220
+ }
221
+ let ht = (e) => Array.from({ length: Math.ceil(e.length / 3) }, (t, n) => e.slice(n * 3, n * 3 + 3)), gt = m(() => ht(F.value.map((e, t) => ({
222
+ name: e,
223
+ i: t
224
+ })))), _t = m(() => {
225
+ let e = f(k.min)?.getFullYear() ?? V.value - 100, t = f(k.max)?.getFullYear() ?? V.value + 100, n = [];
226
+ for (let r = e; r <= t; r++) n.push(r);
227
+ return n;
228
+ }), vt = m(() => ht(_t.value)), $ = w(V.value), yt = (e) => document.getElementById(`${j}-y-${e}`);
229
+ function bt(e) {
230
+ let t = H.value;
231
+ X(d(e, t, Math.min(f(z.value).getDate(), l(e, t)))), B.value = "days", Y(z.value);
232
+ }
233
+ function xt(e) {
234
+ if (e.key === "Enter" || e.key === " ") {
235
+ e.preventDefault(), bt($.value);
236
+ return;
237
+ }
238
+ let t = ge(e.key);
239
+ if (t === void 0) return;
240
+ e.preventDefault();
241
+ let n = _t.value, r = te(n.indexOf($.value) + t, 0, n.length - 1);
242
+ $.value = n[r] ?? $.value, yt($.value)?.focus();
243
+ }
244
+ Se(() => [
245
+ I.value,
246
+ L.value.start,
247
+ R.value[0]
248
+ ], () => {
249
+ let e = I.value ?? L.value.start ?? R.value[0];
250
+ if (e && ue(e)) {
251
+ let t = f(e);
252
+ (t.getFullYear() !== V.value || t.getMonth() !== H.value) && (z.value = e);
253
+ }
254
+ });
255
+ function St() {
256
+ B.value = "days", Y(z.value);
257
+ }
258
+ return x({ focus: St }), (e, t) => (C(), g("div", {
259
+ class: "v-date-picker",
260
+ "data-view": B.value,
261
+ "data-selection": b.selection,
262
+ onPointerleave: t[6] ||= (e) => W.value = null
263
+ }, [
264
+ _("div", Ee, [_("div", De, [
265
+ y(i, {
266
+ icon: O(a),
267
+ label: O(M).datePicker.previousMonth,
268
+ size: "sm",
269
+ disabled: !nt.value,
270
+ onClick: t[0] ||= (e) => st(-1)
271
+ }, null, 8, [
272
+ "icon",
273
+ "label",
274
+ "disabled"
275
+ ]),
276
+ y(r, {
277
+ variant: "ghost",
278
+ tone: "neutral",
279
+ size: "sm",
280
+ class: "v-date-picker-view-toggle",
281
+ "aria-expanded": B.value === "months",
282
+ "aria-label": U.value,
283
+ onClick: t[1] ||= (e) => lt("months")
284
+ }, {
285
+ default: Ce(() => [v(D(F.value[H.value]) + " ", 1), y(n, {
286
+ name: B.value === "months" ? O(ae) : O(ie),
287
+ "aria-hidden": "true"
288
+ }, null, 8, ["name"])]),
289
+ _: 1
290
+ }, 8, ["aria-expanded", "aria-label"]),
291
+ y(i, {
292
+ icon: O(ee),
293
+ label: O(M).datePicker.nextMonth,
294
+ size: "sm",
295
+ disabled: !rt.value,
296
+ onClick: t[2] ||= (e) => st(1)
297
+ }, null, 8, [
298
+ "icon",
299
+ "label",
300
+ "disabled"
301
+ ])
302
+ ]), _("div", Oe, [
303
+ y(i, {
304
+ icon: O(a),
305
+ label: O(M).datePicker.previousYear,
306
+ size: "sm",
307
+ disabled: !it.value,
308
+ onClick: t[3] ||= (e) => ct(-1)
309
+ }, null, 8, [
310
+ "icon",
311
+ "label",
312
+ "disabled"
313
+ ]),
314
+ y(r, {
315
+ variant: "ghost",
316
+ tone: "neutral",
317
+ size: "sm",
318
+ class: "v-date-picker-view-toggle",
319
+ "aria-expanded": B.value === "years",
320
+ onClick: t[4] ||= (e) => lt("years")
321
+ }, {
322
+ default: Ce(() => [v(D(V.value) + " ", 1), y(n, {
323
+ name: B.value === "years" ? O(ae) : O(ie),
324
+ "aria-hidden": "true"
325
+ }, null, 8, ["name"])]),
326
+ _: 1
327
+ }, 8, ["aria-expanded"]),
328
+ y(i, {
329
+ icon: O(ee),
330
+ label: O(M).datePicker.nextYear,
331
+ size: "sm",
332
+ disabled: !at.value,
333
+ onClick: t[5] ||= (e) => ct(1)
334
+ }, null, 8, [
335
+ "icon",
336
+ "label",
337
+ "disabled"
338
+ ])
339
+ ])]),
340
+ we(_("div", {
341
+ class: "v-date-picker-grid",
342
+ role: "grid",
343
+ "aria-label": Ye.value,
344
+ "aria-multiselectable": b.selection === "multiple" ? "true" : void 0,
345
+ onKeydown: dt
346
+ }, [_("div", Ae, [(C(!0), g(p, null, T(Ke.value, (e, t) => (C(), g("span", {
347
+ key: e,
348
+ class: "v-date-picker-weekday",
349
+ role: "columnheader",
350
+ "aria-label": qe.value[t]
351
+ }, D(e), 9, je))), 128))]), (C(!0), g(p, null, T(tt.value, (t, n) => (C(), g("div", {
352
+ key: n,
353
+ class: "v-date-picker-week",
354
+ role: "row"
355
+ }, [(C(!0), g(p, null, T(t, (t) => (C(), g("div", {
356
+ key: t.iso,
357
+ class: "v-date-picker-cell",
358
+ role: "gridcell",
359
+ "aria-selected": t.kind === "button" ? t.selected : void 0,
360
+ "data-in-range": t.inRange ? "" : void 0,
361
+ "data-range-start": t.rangeStart ? "" : void 0,
362
+ "data-range-end": t.rangeEnd ? "" : void 0
363
+ }, [t.kind === "button" ? (C(), g("button", {
364
+ key: 0,
365
+ id: ot(t.iso),
366
+ type: "button",
367
+ class: "v-date-picker-day",
368
+ tabindex: t.iso === z.value ? 0 : -1,
369
+ "data-outside": t.inMonth ? void 0 : "",
370
+ "data-selected": t.selected ? "" : void 0,
371
+ "data-today": t.today ? "" : void 0,
372
+ "aria-disabled": t.disabled ? "true" : void 0,
373
+ "aria-current": t.today ? "date" : void 0,
374
+ onClick: (e) => ut(t),
375
+ onPointerenter: (e) => W.value = t.iso,
376
+ onFocus: (e) => W.value = t.iso
377
+ }, [E(e.$slots, "day", {
378
+ iso: t.iso,
379
+ day: t.day,
380
+ inMonth: t.inMonth,
381
+ disabled: t.disabled,
382
+ selected: t.selected,
383
+ today: t.today,
384
+ inRange: t.inRange,
385
+ events: t.events
386
+ }, () => [_("span", Pe, D(t.day), 1)]), t.events.length ? (C(), g("span", Fe, [(C(!0), g(p, null, T(t.events.slice(0, 3), (e, t) => (C(), g("span", {
387
+ key: t,
388
+ class: "v-date-picker-dot",
389
+ style: _e(e.color ? { "--date-picker-dot-color": e.color } : void 0)
390
+ }, null, 4))), 128))])) : h("", !0)], 40, Ne)) : t.kind === "static" ? (C(), g("span", {
391
+ key: 1,
392
+ class: "v-date-picker-day v-date-picker-day--static",
393
+ "data-disabled": t.disabled ? "" : void 0
394
+ }, [E(e.$slots, "day", {
395
+ iso: t.iso,
396
+ day: t.day,
397
+ inMonth: t.inMonth,
398
+ disabled: t.disabled,
399
+ selected: t.selected,
400
+ today: t.today,
401
+ inRange: t.inRange,
402
+ events: t.events
403
+ }, () => [_("span", Le, D(t.day), 1)])], 8, Ie)) : h("", !0)], 8, Me))), 128))]))), 128))], 40, ke), [[xe, B.value === "days"]]),
404
+ B.value === "months" ? (C(), g("div", {
405
+ key: 0,
406
+ class: "v-date-picker-view",
407
+ role: "grid",
408
+ "aria-label": O(M).datePicker.monthPicker,
409
+ onKeydown: mt
410
+ }, [(C(!0), g(p, null, T(gt.value, (e, t) => (C(), g("div", {
411
+ key: t,
412
+ class: "v-date-picker-view-row",
413
+ role: "row"
414
+ }, [(C(!0), g(p, null, T(e, ({ name: e, i: t }) => (C(), g("button", {
415
+ id: `${O(j)}-m-${t}`,
416
+ key: e,
417
+ type: "button",
418
+ class: "v-date-picker-view-cell",
419
+ role: "gridcell",
420
+ tabindex: t === Z.value ? 0 : -1,
421
+ "data-selected": t === H.value ? "" : void 0,
422
+ "aria-selected": t === H.value ? "true" : void 0,
423
+ disabled: !ft(t),
424
+ onClick: (e) => pt(t)
425
+ }, D(e), 9, ze))), 128))]))), 128))], 40, Re)) : h("", !0),
426
+ B.value === "years" ? (C(), g("div", {
427
+ key: 1,
428
+ class: "v-date-picker-view v-date-picker-view--years",
429
+ role: "grid",
430
+ "aria-label": O(M).datePicker.yearPicker,
431
+ onKeydown: xt
432
+ }, [(C(!0), g(p, null, T(vt.value, (e, t) => (C(), g("div", {
433
+ key: t,
434
+ class: "v-date-picker-view-row",
435
+ role: "row"
436
+ }, [(C(!0), g(p, null, T(e, (e) => (C(), g("button", {
437
+ id: `${O(j)}-y-${e}`,
438
+ key: e,
439
+ type: "button",
440
+ class: "v-date-picker-view-cell",
441
+ role: "gridcell",
442
+ tabindex: e === $.value ? 0 : -1,
443
+ "data-selected": e === V.value ? "" : void 0,
444
+ "aria-selected": e === V.value ? "true" : void 0,
445
+ onClick: (t) => bt(e)
446
+ }, D(e), 9, Ve))), 128))]))), 128))], 40, Be)) : h("", !0),
447
+ e.$slots.footer ? (C(), g("div", He, [E(e.$slots, "footer")])) : h("", !0)
448
+ ], 40, Te));
449
+ }
450
+ });
451
+ //#endregion
452
+ export { Ue as default };
453
+
454
+ //# sourceMappingURL=VDatePicker.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VDatePicker.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../src/components/VDatePicker/VDatePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, useId, watch } from 'vue'\n\nimport VButton from '../VButton/VButton.vue'\nimport VIcon from '../VIcon/VIcon.vue'\nimport { arrow_drop_down as arrowDropDownIcon } from '../VIcon/icons/arrow_drop_down'\nimport { arrow_drop_up as arrowDropUpIcon } from '../VIcon/icons/arrow_drop_up'\nimport { chevron_left as chevronLeftIcon } from '../VIcon/icons/chevron_left'\nimport { chevron_right as chevronRightIcon } from '../VIcon/icons/chevron_right'\nimport VIconButton from '../VIconButton/VIconButton.vue'\nimport {\n addDays,\n addMonths,\n buildMonthGrid,\n clampISO,\n compareISO,\n daysInMonth,\n firstDayOfWeekFor,\n formatISO,\n isoOf,\n isSameISO,\n isValidISO,\n isWithin,\n monthName,\n monthNamesCompact,\n parseISO,\n weekdayNames,\n} from '../../utils/date'\n\nimport { PICKER_COLUMNS, dayStep, gridDelta } from './keyboard'\n\nimport { toggleValue } from '../../utils/array'\nimport { resolveMatcher } from '../../utils/matcher'\nimport { clamp } from '../../utils/number'\nimport { useLocale, useMessages } from '../../i18n/state'\n\n// @a11y @keyboard @core\n/**\n * A calendar shown directly in the page, as a grid of days, with a month view and a\n * year view behind it. It holds ALL the date, view and keyboard logic of the design\n * system; VDateInput does no more than dress it in a text field and a popover.\n *\n * The platform offers no accessible date grid to build on — `<input type=\"date\">`\n * can be neither styled nor composed — so the JavaScript here implements the ARIA\n * \"grid\" pattern by hand: a single cell in the tab order at a time, arrow and\n * page keys to move between dates, and selection of one date, a range or a list.\n * None of that can be expressed in HTML and CSS alone.\n *\n * Every date is handled in local time as an ISO `YYYY-MM-DD` string (see\n * `utils/date`), which is what keeps the server and the browser in agreement.\n */\nexport type DatePickerSelection = 'single' | 'range' | 'multiple'\n\n/**\n * A period between two dates, the value of a `range` selection. Either bound may be\n * null: between the first and the second click, a range has a start and no end yet.\n */\nexport interface DateRange {\n /** The first day of the period, as an ISO `YYYY-MM-DD` string. */\n start: string | null\n /** The last day of the period, as an ISO `YYYY-MM-DD` string. */\n end: string | null\n}\n\n/** Something happening on a given day, shown as a coloured dot under its number. */\nexport interface DatePickerEvent {\n /** The day it falls on, as an ISO `YYYY-MM-DD` string. */\n date: string\n /** The colour of the dot, as any CSS colour. It is the accent colour by default. */\n color?: string\n /** A description of the event for assistive technology. */\n label?: string\n}\n\n/**\n * Which dates cannot be selected, given either as a list of ISO strings or as a\n * function answering that question for a date.\n */\nexport type DateMatcher = string[] | ((iso: string) => boolean)\n\n/** The shape of the v-model, which follows whichever `selection` is in use. */\nexport type DatePickerValue = string | null | DateRange | string[]\n\ninterface DatePickerProps {\n /**\n * What the reader is picking: a single date, a period between two dates, or any\n * number of separate dates. It determines the shape of the v-model.\n */\n selection?: DatePickerSelection\n /**\n * A BCP 47 locale, which decides the month and day names and the first day of the\n * week. It TAKES PRECEDENCE over the design system's global locale (`setLocale`)\n * and falls back to it — which is why it has no literal default here: `undefined`\n * has to stay recognizable for the global locale to have its chance.\n */\n locale?: string\n /**\n * Forces the day the weeks start on (0 for Sunday through 6 for Saturday). Left\n * out, the locale decides.\n */\n firstDayOfWeek?: number\n /**\n * The earliest selectable date, as an ISO string. Neither navigation nor selection\n * goes back beyond it.\n */\n min?: string\n /**\n * The latest selectable date, as an ISO string. Neither navigation nor selection\n * goes past it.\n */\n max?: string\n /**\n * Dates that cannot be chosen, given as a list of ISO strings or as a function.\n * They stay visible, struck through, and can still be reached with the keyboard.\n */\n disabledDates?: DateMatcher\n /**\n * Also fills the empty corners of the grid with the greyed days of the neighbouring\n * months. It is off by default.\n */\n showAdjacentDays?: boolean\n /**\n * Lets those neighbouring days be clicked, which moves the calendar to their month.\n * A clickable day has to be visible, so this implies showing them.\n */\n selectAdjacentDays?: boolean\n /** The events to mark, as up to three coloured dots under the day they fall on. */\n events?: DatePickerEvent[]\n}\n\nconst props = withDefaults(defineProps<DatePickerProps>(), {\n selection: 'single',\n locale: undefined,\n firstDayOfWeek: undefined,\n min: undefined,\n max: undefined,\n disabledDates: undefined,\n showAdjacentDays: false,\n selectAdjacentDays: false,\n events: undefined,\n})\n\nconst model = defineModel<DatePickerValue>({ default: null })\n\nconst emit = defineEmits<{\n /**\n * Emitted every time a date is chosen, carrying the complete value as it now\n * stands. VDateInput listens to it to close its panel on a single selection.\n */\n select: [value: DatePickerValue]\n}>()\n\ndefineSlots<{\n /**\n * Replaces the content of a day cell — to show a price or an availability under the\n * number, for instance. It receives everything known about that day, including\n * whether it belongs to the displayed month.\n */\n day?(props: {\n iso: string\n day: number\n inMonth: boolean\n disabled: boolean\n selected: boolean\n today: boolean\n inRange: boolean\n events: DatePickerEvent[]\n }): unknown\n /** The strip under the grid, for actions such as Close or Save, or for preset dates. */\n footer?(): unknown\n}>()\n\nconst gridLabelId = useId()\n\n// The navigation labels have no prop of their own: the dictionary is the single\n// place to change them, globally or per language — see `src/i18n/`.\nconst m = useMessages()\nconst vectisLocale = useLocale()\n/*\n * The prop 'locale' wins, and the design system's global locale is what it falls back to.\n * Every read below goes through this one derivation, so the two sources can never be consulted\n * in a different order somewhere else.\n */\nconst resolvedLocale = computed(() => props.locale ?? vectisLocale.value)\n\nconst resolvedFirstDay = computed(\n () => props.firstDayOfWeek ?? firstDayOfWeekFor(resolvedLocale.value),\n)\nconst weekdays = computed(() => weekdayNames(resolvedLocale.value, resolvedFirstDay.value, 'short'))\nconst weekdaysLong = computed(() =>\n weekdayNames(resolvedLocale.value, resolvedFirstDay.value, 'long'),\n)\nconst monthLabels = computed(() => monthNamesCompact(resolvedLocale.value))\n\nconst singleValue = computed(() =>\n props.selection === 'single' && typeof model.value === 'string' && isValidISO(model.value)\n ? model.value\n : null,\n)\nconst rangeValue = computed<DateRange>(() => {\n if (\n props.selection === 'range' &&\n model.value &&\n typeof model.value === 'object' &&\n !Array.isArray(model.value)\n ) {\n return model.value as DateRange\n }\n return { start: null, end: null }\n})\nconst multipleValues = computed<string[]>(() =>\n props.selection === 'multiple' && Array.isArray(model.value) ? model.value : [],\n)\n\n// `focusedISO` is the single source of truth for the view: the month on display is\n// derived from it, never stored separately, so the two cannot drift apart.\nfunction initialFocus(): string {\n if (singleValue.value) return singleValue.value\n if (rangeValue.value.start) return rangeValue.value.start\n if (multipleValues.value[0]) return multipleValues.value[0]\n // With nothing selected, the calendar opens on today, brought back inside the\n // allowed bounds.\n return clampISO(formatISO(new Date()), props.min, props.max)\n}\nconst focusedISO = ref(initialFocus())\nconst view = ref<'days' | 'months' | 'years'>('days')\n\nconst viewYear = computed(\n () => parseISO(focusedISO.value)?.getFullYear() ?? new Date().getFullYear(),\n)\nconst viewMonth0 = computed(() => parseISO(focusedISO.value)?.getMonth() ?? 0)\nconst monthLabel = computed(() => monthName(resolvedLocale.value, viewMonth0.value, 'long'))\nconst gridLabel = computed(() => `${monthLabel.value} ${viewYear.value}`)\n\n// @ssr\n// Today's date is only read once the component is mounted, hence on the client: the\n// server has no way to know it, and rendering it during setup would make the two\n// markups differ and break hydration.\nconst today = ref<string | null>(null)\nonMounted(() => {\n today.value = formatISO(new Date())\n})\n\nconst isDisabledDate = computed(() => resolveMatcher(props.disabledDates))\n\nconst eventsByDate = computed(() => {\n const map = new Map<string, DatePickerEvent[]>()\n for (const ev of props.events ?? []) {\n const list = map.get(ev.date) ?? []\n list.push(ev)\n map.set(ev.date, list)\n }\n return map\n})\n\nconst hoverISO = ref<string | null>(null)\nfunction orderRange(a: string, b: string): DateRange {\n return compareISO(a, b) <= 0 ? { start: a, end: b } : { start: b, end: a }\n}\nconst effectiveRange = computed<DateRange>(() => {\n if (props.selection !== 'range') return { start: null, end: null }\n const r = rangeValue.value\n if (r.start && r.end) return orderRange(r.start, r.end)\n // A start is set but the end is still pending: the range is previewed up to\n // whichever day the pointer or the focus is currently on.\n const preview = hoverISO.value ?? focusedISO.value\n if (r.start && preview) return orderRange(r.start, preview)\n return { start: r.start, end: r.end }\n})\n\nfunction isSelected(iso: string): boolean {\n if (props.selection === 'single') return isSameISO(iso, singleValue.value)\n if (props.selection === 'multiple') return multipleValues.value.includes(iso)\n // In range selection, the two ends of the period count as selected — including the\n // provisional end shown during the preview.\n return isSameISO(iso, effectiveRange.value.start) || isSameISO(iso, effectiveRange.value.end)\n}\nfunction isInRange(iso: string): boolean {\n const { start, end } = effectiveRange.value\n return !!start && !!end && compareISO(iso, start) >= 0 && compareISO(iso, end) <= 0\n}\n\ntype DayCell = {\n iso: string\n day: number\n kind: 'empty' | 'static' | 'button'\n inMonth: boolean\n disabled: boolean\n selected: boolean\n rangeStart: boolean\n rangeEnd: boolean\n inRange: boolean\n today: boolean\n events: DatePickerEvent[]\n}\n\nconst days = computed<DayCell[]>(() =>\n buildMonthGrid(viewYear.value, viewMonth0.value, resolvedFirstDay.value).map((cell) => {\n const inMonth = cell.adjacent === null\n // Making the neighbouring days clickable implies showing them: a day nobody can\n // see cannot be clicked.\n const show = inMonth || props.showAdjacentDays || props.selectAdjacentDays\n const selectable = inMonth || props.selectAdjacentDays\n const disabled = !isWithin(cell.iso, props.min, props.max) || isDisabledDate.value(cell.iso)\n const kind: DayCell['kind'] = !show ? 'empty' : selectable ? 'button' : 'static'\n return {\n iso: cell.iso,\n day: parseISO(cell.iso)?.getDate() ?? 0,\n kind,\n inMonth,\n disabled,\n selected: kind === 'button' && !disabled && isSelected(cell.iso),\n rangeStart: props.selection === 'range' && isSameISO(cell.iso, effectiveRange.value.start),\n rangeEnd: props.selection === 'range' && isSameISO(cell.iso, effectiveRange.value.end),\n inRange: props.selection === 'range' && isInRange(cell.iso),\n today: isSameISO(cell.iso, today.value),\n events: eventsByDate.value.get(cell.iso) ?? [],\n }\n }),\n)\nconst weeks = computed(() => {\n const rows: DayCell[][] = []\n for (let i = 0; i < days.value.length; i += 7) rows.push(days.value.slice(i, i + 7))\n return rows\n})\n\nfunction monthHasSelectable(year: number, month0: number): boolean {\n const first = isoOf(year, month0, 1)\n const last = isoOf(year, month0, daysInMonth(year, month0))\n return (\n (!props.max || compareISO(first, props.max) <= 0) &&\n (!props.min || compareISO(last, props.min) >= 0)\n )\n}\nconst canPrevMonth = computed(() => {\n const prev = addMonths(focusedISO.value, -1)\n const d = parseISO(prev)!\n return monthHasSelectable(d.getFullYear(), d.getMonth())\n})\nconst canNextMonth = computed(() => {\n const next = addMonths(focusedISO.value, 1)\n const d = parseISO(next)!\n return monthHasSelectable(d.getFullYear(), d.getMonth())\n})\nconst canPrevYear = computed(\n () => !props.min || compareISO(isoOf(viewYear.value - 1, 11, 31), props.min) >= 0,\n)\nconst canNextYear = computed(\n () => !props.max || compareISO(isoOf(viewYear.value + 1, 0, 1), props.max) <= 0,\n)\n\n// @a11y\n// Moves the real DOM focus onto a day cell. The grid keeps exactly one cell in the\n// tab order, so navigating means focusing another one.\nconst dayId = (iso: string) => `${gridLabelId}-d-${iso}`\nfunction focusDay(iso: string) {\n nextTick(() => document.getElementById(dayId(iso))?.focus())\n}\n\nfunction goTo(iso: string, moveFocus = false) {\n focusedISO.value = clampISO(iso, props.min, props.max)\n if (moveFocus && view.value === 'days') focusDay(focusedISO.value)\n}\nfunction stepMonth(delta: number) {\n goTo(addMonths(focusedISO.value, delta))\n}\nfunction stepYear(delta: number) {\n goTo(addMonths(focusedISO.value, delta * 12))\n}\n\n// @a11y @core — changing view has to carry the focus onto the cell the new view\n// opens on. Without that move the focus would stay on a button the view has just\n// removed from the document, and the keyboard would have nowhere to go.\nfunction toggleView(target: 'months' | 'years') {\n const next = view.value === target ? 'days' : target\n view.value = next\n if (next === 'months') {\n focusedMonth.value = viewMonth0.value\n nextTick(() => monthCellEl(viewMonth0.value)?.focus())\n } else if (next === 'years') {\n focusedYear.value = viewYear.value\n nextTick(() => {\n const cell = yearCellEl(viewYear.value)\n // Called optionally because jsdom does not implement scrollIntoView (the same\n // guard as VTimeInput's list). Centring the year is a nicety; the focus call\n // below is not, so it must not be taken down with it.\n cell?.scrollIntoView?.({ block: 'center' })\n cell?.focus()\n })\n } else if (view.value === 'days') {\n focusDay(focusedISO.value)\n }\n}\n\nfunction selectDay(cell: DayCell) {\n if (cell.kind !== 'button' || cell.disabled) return\n focusedISO.value = cell.iso\n if (props.selection === 'single') {\n model.value = cell.iso\n } else if (props.selection === 'multiple') {\n model.value = toggleValue(multipleValues.value, cell.iso).sort(compareISO)\n } else {\n // Range selection reads three clicks: the first sets the start, the second the\n // end (reordered if it comes before the start), and the third starts a new\n // period.\n const r = rangeValue.value\n if (!r.start || (r.start && r.end)) {\n model.value = { start: cell.iso, end: null }\n } else {\n model.value = orderRange(r.start, cell.iso)\n }\n }\n emit('select', model.value)\n}\n\n// @keyboard @a11y\n// The keyboard of the days view. The table turning a key into a step is pure and\n// lives in `./keyboard`; what stays here is the date that step is applied to, and\n// the focus move that follows.\nfunction onDaysKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n const cell = days.value.find((c) => c.iso === focusedISO.value)\n if (cell) selectDay(cell)\n return\n }\n const d = parseISO(focusedISO.value)!\n // How far the focused day sits from the start of its week, which is exactly what\n // Home and End have to step back and forward by.\n const offset = (d.getDay() - resolvedFirstDay.value + 7) % 7\n const step = dayStep(event.key, event.shiftKey, offset)\n if (!step) return\n event.preventDefault()\n goTo(\n 'days' in step\n ? addDays(focusedISO.value, step.days)\n : addMonths(focusedISO.value, step.months),\n true,\n )\n}\n\n// The months view, opened from the month button in the header.\nconst focusedMonth = ref(viewMonth0.value)\nconst monthCellEl = (i: number) =>\n document.getElementById(`${gridLabelId}-m-${i}`) as HTMLElement | null\nfunction monthSelectable(i: number) {\n return monthHasSelectable(viewYear.value, i)\n}\nfunction chooseMonth(i: number) {\n if (!monthSelectable(i)) return\n const day = Math.min(parseISO(focusedISO.value)!.getDate(), daysInMonth(viewYear.value, i))\n goTo(isoOf(viewYear.value, i, day))\n view.value = 'days'\n focusDay(focusedISO.value)\n}\n// @keyboard @a11y\nfunction onMonthsKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n chooseMonth(focusedMonth.value)\n return\n }\n const delta = gridDelta(event.key)\n if (delta === undefined) return\n event.preventDefault()\n focusedMonth.value = clamp(focusedMonth.value + delta, 0, 11)\n monthCellEl(focusedMonth.value)?.focus()\n}\n\n// @a11y\n/*\n * Both pickers are a `role=\"grid\"`, and a grid owns ROWS, not cells: a gridcell\n * placed straight under the grid fails aria-required-children and\n * aria-required-parent at the same time. The cells are therefore cut into rows of\n * PICKER_COLUMNS, matching the `grid-template-columns` of the stylesheet — the row\n * element itself is `display: contents`, so the CSS grid never sees it.\n *\n * Keyboard navigation is unaffected by this extra level: it moves by index and\n * refocuses cells through their ids, never by walking the DOM.\n */\nconst chunk = <T,>(list: T[]) =>\n Array.from({ length: Math.ceil(list.length / PICKER_COLUMNS) }, (_, r) =>\n list.slice(r * PICKER_COLUMNS, r * PICKER_COLUMNS + PICKER_COLUMNS),\n )\n\nconst monthRows = computed(() => chunk(monthLabels.value.map((name, i) => ({ name, i }))))\n\n// The years view, opened from the year button in the header.\nconst yearRange = computed(() => {\n /*\n * `min` and `max` come straight from the consumer, and this is the ONLY place\n * where they are turned into a Date instead of being compared as ISO text —\n * `compareISO`, `isWithin` and `clampISO` all tolerate a malformed bound. A value\n * that is not a valid ISO date therefore has to fall back to the open range here:\n * asserting the parse would throw and take the whole render down the moment the\n * years view is opened.\n */\n const minY = parseISO(props.min)?.getFullYear() ?? viewYear.value - 100\n const maxY = parseISO(props.max)?.getFullYear() ?? viewYear.value + 100\n const list: number[] = []\n for (let y = minY; y <= maxY; y++) list.push(y)\n return list\n})\nconst yearRows = computed(() => chunk(yearRange.value))\nconst focusedYear = ref(viewYear.value)\nconst yearCellEl = (y: number) =>\n document.getElementById(`${gridLabelId}-y-${y}`) as HTMLElement | null\nfunction chooseYear(y: number) {\n const month = viewMonth0.value\n const day = Math.min(parseISO(focusedISO.value)!.getDate(), daysInMonth(y, month))\n goTo(isoOf(y, month, day))\n view.value = 'days'\n focusDay(focusedISO.value)\n}\n// @keyboard @a11y\nfunction onYearsKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n chooseYear(focusedYear.value)\n return\n }\n const delta = gridDelta(event.key)\n if (delta === undefined) return\n event.preventDefault()\n const list = yearRange.value\n const idx = list.indexOf(focusedYear.value)\n const nextIdx = clamp(idx + delta, 0, list.length - 1)\n focusedYear.value = list[nextIdx] ?? focusedYear.value\n yearCellEl(focusedYear.value)?.focus()\n}\n\n// Follows a selection changed from the outside: when the leading value lands in\n// another month, the calendar moves to it rather than leaving the reader in front of\n// a grid where nothing is selected.\nwatch(\n () => [singleValue.value, rangeValue.value.start, multipleValues.value[0]],\n () => {\n const primary = singleValue.value ?? rangeValue.value.start ?? multipleValues.value[0]\n if (primary && isValidISO(primary)) {\n const d = parseISO(primary)!\n if (d.getFullYear() !== viewYear.value || d.getMonth() !== viewMonth0.value) {\n focusedISO.value = primary\n }\n }\n },\n)\n\n// @a11y\n/**\n * Brings the focus into the grid, on the day the calendar is currently showing. This\n * is what VDateInput calls when it opens its panel.\n */\nfunction focus() {\n view.value = 'days'\n focusDay(focusedISO.value)\n}\ndefineExpose({ focus })\n</script>\n\n<template>\n <div\n class=\"v-date-picker\"\n :data-view=\"view\"\n :data-selection=\"selection\"\n @pointerleave=\"hoverISO = null\"\n >\n <!-- The header: the month and the year, each between two chevrons that step it,\n and each opening its own picker view when clicked -->\n <div class=\"v-date-picker-header\">\n <div class=\"v-date-picker-nav\">\n <VIconButton\n :icon=\"chevronLeftIcon\"\n :label=\"m.datePicker.previousMonth\"\n size=\"sm\"\n :disabled=\"!canPrevMonth\"\n @click=\"stepMonth(-1)\"\n />\n <VButton\n variant=\"ghost\"\n tone=\"neutral\"\n size=\"sm\"\n class=\"v-date-picker-view-toggle\"\n :aria-expanded=\"view === 'months'\"\n :aria-label=\"monthLabel\"\n @click=\"toggleView('months')\"\n >\n {{ monthLabels[viewMonth0] }}\n <VIcon\n :name=\"view === 'months' ? arrowDropUpIcon : arrowDropDownIcon\"\n aria-hidden=\"true\"\n />\n </VButton>\n <VIconButton\n :icon=\"chevronRightIcon\"\n :label=\"m.datePicker.nextMonth\"\n size=\"sm\"\n :disabled=\"!canNextMonth\"\n @click=\"stepMonth(1)\"\n />\n </div>\n\n <div class=\"v-date-picker-nav\">\n <VIconButton\n :icon=\"chevronLeftIcon\"\n :label=\"m.datePicker.previousYear\"\n size=\"sm\"\n :disabled=\"!canPrevYear\"\n @click=\"stepYear(-1)\"\n />\n <VButton\n variant=\"ghost\"\n tone=\"neutral\"\n size=\"sm\"\n class=\"v-date-picker-view-toggle\"\n :aria-expanded=\"view === 'years'\"\n @click=\"toggleView('years')\"\n >\n {{ viewYear }}\n <VIcon\n :name=\"view === 'years' ? arrowDropUpIcon : arrowDropDownIcon\"\n aria-hidden=\"true\"\n />\n </VButton>\n <VIconButton\n :icon=\"chevronRightIcon\"\n :label=\"m.datePicker.nextYear\"\n size=\"sm\"\n :disabled=\"!canNextYear\"\n @click=\"stepYear(1)\"\n />\n </div>\n </div>\n\n <!-- Days view -->\n <div\n v-show=\"view === 'days'\"\n class=\"v-date-picker-grid\"\n role=\"grid\"\n :aria-label=\"gridLabel\"\n :aria-multiselectable=\"selection === 'multiple' ? 'true' : undefined\"\n @keydown=\"onDaysKeydown\"\n >\n <div class=\"v-date-picker-weekdays\" role=\"row\">\n <span\n v-for=\"(w, i) in weekdays\"\n :key=\"w\"\n class=\"v-date-picker-weekday\"\n role=\"columnheader\"\n :aria-label=\"weekdaysLong[i]\"\n >{{ w }}</span\n >\n </div>\n <div v-for=\"(week, wi) in weeks\" :key=\"wi\" class=\"v-date-picker-week\" role=\"row\">\n <div\n v-for=\"cell in week\"\n :key=\"cell.iso\"\n class=\"v-date-picker-cell\"\n role=\"gridcell\"\n :aria-selected=\"cell.kind === 'button' ? cell.selected : undefined\"\n :data-in-range=\"cell.inRange ? '' : undefined\"\n :data-range-start=\"cell.rangeStart ? '' : undefined\"\n :data-range-end=\"cell.rangeEnd ? '' : undefined\"\n >\n <button\n v-if=\"cell.kind === 'button'\"\n :id=\"dayId(cell.iso)\"\n type=\"button\"\n class=\"v-date-picker-day\"\n :tabindex=\"cell.iso === focusedISO ? 0 : -1\"\n :data-outside=\"!cell.inMonth ? '' : undefined\"\n :data-selected=\"cell.selected ? '' : undefined\"\n :data-today=\"cell.today ? '' : undefined\"\n :aria-disabled=\"cell.disabled ? 'true' : undefined\"\n :aria-current=\"cell.today ? 'date' : undefined\"\n @click=\"selectDay(cell)\"\n @pointerenter=\"hoverISO = cell.iso\"\n @focus=\"hoverISO = cell.iso\"\n >\n <slot\n name=\"day\"\n :iso=\"cell.iso\"\n :day=\"cell.day\"\n :in-month=\"cell.inMonth\"\n :disabled=\"cell.disabled\"\n :selected=\"cell.selected\"\n :today=\"cell.today\"\n :in-range=\"cell.inRange\"\n :events=\"cell.events\"\n >\n <span class=\"v-date-picker-day-num\">{{ cell.day }}</span>\n </slot>\n <span v-if=\"cell.events.length\" class=\"v-date-picker-dots\" aria-hidden=\"true\">\n <span\n v-for=\"(ev, ei) in cell.events.slice(0, 3)\"\n :key=\"ei\"\n class=\"v-date-picker-dot\"\n :style=\"ev.color ? { '--date-picker-dot-color': ev.color } : undefined\"\n />\n </span>\n </button>\n <!-- A day of a neighbouring month that cannot be selected. It renders the\n very same slot as the clickable days: were it left with the bare\n number, custom content taking several lines would apply to this month's\n days only, and the numbers would stop lining up from one cell to the\n next. The slot receives `inMonth`, which is how it can still tell the\n two apart. -->\n <span\n v-else-if=\"cell.kind === 'static'\"\n class=\"v-date-picker-day v-date-picker-day--static\"\n :data-disabled=\"cell.disabled ? '' : undefined\"\n >\n <slot\n name=\"day\"\n :iso=\"cell.iso\"\n :day=\"cell.day\"\n :in-month=\"cell.inMonth\"\n :disabled=\"cell.disabled\"\n :selected=\"cell.selected\"\n :today=\"cell.today\"\n :in-range=\"cell.inRange\"\n :events=\"cell.events\"\n >\n <span class=\"v-date-picker-day-num\">{{ cell.day }}</span>\n </slot>\n </span>\n </div>\n </div>\n </div>\n\n <!-- Months view -->\n <div\n v-if=\"view === 'months'\"\n class=\"v-date-picker-view\"\n role=\"grid\"\n :aria-label=\"m.datePicker.monthPicker\"\n @keydown=\"onMonthsKeydown\"\n >\n <div v-for=\"(row, r) in monthRows\" :key=\"r\" class=\"v-date-picker-view-row\" role=\"row\">\n <button\n v-for=\"{ name, i } in row\"\n :id=\"`${gridLabelId}-m-${i}`\"\n :key=\"name\"\n type=\"button\"\n class=\"v-date-picker-view-cell\"\n role=\"gridcell\"\n :tabindex=\"i === focusedMonth ? 0 : -1\"\n :data-selected=\"i === viewMonth0 ? '' : undefined\"\n :aria-selected=\"i === viewMonth0 ? 'true' : undefined\"\n :disabled=\"!monthSelectable(i)\"\n @click=\"chooseMonth(i)\"\n >\n {{ name }}\n </button>\n </div>\n </div>\n\n <!-- Years view -->\n <div\n v-if=\"view === 'years'\"\n class=\"v-date-picker-view v-date-picker-view--years\"\n role=\"grid\"\n :aria-label=\"m.datePicker.yearPicker\"\n @keydown=\"onYearsKeydown\"\n >\n <div v-for=\"(row, r) in yearRows\" :key=\"r\" class=\"v-date-picker-view-row\" role=\"row\">\n <button\n v-for=\"y in row\"\n :id=\"`${gridLabelId}-y-${y}`\"\n :key=\"y\"\n type=\"button\"\n class=\"v-date-picker-view-cell\"\n role=\"gridcell\"\n :tabindex=\"y === focusedYear ? 0 : -1\"\n :data-selected=\"y === viewYear ? '' : undefined\"\n :aria-selected=\"y === viewYear ? 'true' : undefined\"\n @click=\"chooseYear(y)\"\n >\n {{ y }}\n </button>\n </div>\n </div>\n\n <div v-if=\"$slots.footer\" class=\"v-date-picker-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n\n<style>\n@layer vectis.components {\n .v-date-picker {\n /* The consumer sets the size of the day disc; the cell around it — the hover area\n and the width of the column — grows to follow, and never falls below the size\n the token sets. */\n --date-picker-day-size: var(--vectis-date-picker-day-size, var(--vectis-control-height-md));\n --date-picker-cell: max(\n var(--vectis-control-size-date-picker-cell),\n calc(var(--date-picker-day-size) + var(--vectis-space-1))\n );\n display: inline-flex;\n flex-direction: column;\n gap: var(--vectis-space-2);\n padding: var(--vectis-space-3);\n font-family: var(--vectis-text-family);\n color: var(--vectis-color-text);\n }\n\n /* The calendar is a flex column, so every block stretches to its full width by\n default. The days grid then fills that width through its 1fr columns, and never\n goes below the seven cells its own floor guarantees. */\n .v-date-picker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--vectis-space-2);\n }\n\n .v-date-picker-nav {\n display: flex;\n align-items: center;\n }\n\n /* A minimum width holds this button steady, so the chevrons on either side do not\n shift as the month or year label changes length. */\n .v-date-picker-view-toggle {\n min-inline-size: var(--vectis-control-size-date-picker-nav-min);\n /* The semibold is state emphasis on the grid's main landmark, not a type role. */\n font-weight: var(--vectis-font-weight-semibold);\n text-transform: capitalize;\n }\n\n /* The days grid can never be narrower than seven cells. Above that floor it takes\n whatever width the calendar has — set by the header — and the 1fr columns share\n it out equally. */\n .v-date-picker-grid {\n min-inline-size: calc(7 * var(--date-picker-cell));\n }\n\n .v-date-picker-weekdays,\n .v-date-picker-week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n }\n\n .v-date-picker-weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: var(--vectis-control-height-sm);\n /* A column micro-header, which takes the overline type role. The casing stays\n `capitalize`, the calendar convention, rather than the full capitals the\n VTypography overline variant would apply. */\n font-size: var(--vectis-text-overline-size);\n font-weight: var(--vectis-text-overline-weight);\n letter-spacing: var(--vectis-text-overline-tracking);\n color: var(--vectis-color-text-muted);\n text-transform: capitalize;\n }\n\n .v-date-picker-cell {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: var(--date-picker-cell);\n }\n\n /* The band joining the days of a selected range: a tinted background laid behind\n the day, at the HEIGHT of the disc rather than of the whole cell. Its vertical\n inset is half the gap between cell and disc, expressed in `%` so it follows the\n real width of a 1fr column whatever the calendar measures.\n\n At either end the band stops exactly at the edge of the disc — hence the inset on\n the outer side — and that corner is rounded with the pill radius, which a box\n this height caps at half its height, i.e. precisely the disc's own radius, so it\n cannot overshoot. */\n .v-date-picker-cell[data-in-range]::before {\n content: '';\n position: absolute;\n inset-block: calc((100% - var(--date-picker-day-size)) / 2);\n inset-inline: 0;\n background: var(--vectis-color-accent-surface);\n z-index: 0;\n }\n .v-date-picker-cell[data-range-start]::before {\n inset-inline-start: calc((100% - var(--date-picker-day-size)) / 2);\n border-start-start-radius: var(--vectis-radius-pill);\n border-end-start-radius: var(--vectis-radius-pill);\n }\n .v-date-picker-cell[data-range-end]::before {\n inset-inline-end: calc((100% - var(--date-picker-day-size)) / 2);\n border-start-end-radius: var(--vectis-radius-pill);\n border-end-end-radius: var(--vectis-radius-pill);\n }\n .v-date-picker-cell[data-range-start][data-range-end]::before {\n content: none;\n }\n\n .v-date-picker-day {\n position: relative;\n z-index: 1;\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n inline-size: var(--date-picker-day-size);\n block-size: var(--date-picker-day-size);\n padding: 0;\n border: none;\n border-radius: var(--vectis-radius-pill);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--vectis-text-body-md-size);\n cursor: pointer;\n transition:\n background-color var(--vectis-duration-fast) var(--vectis-ease-default),\n color var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n\n /* Hover belongs to the days one can actually click: not the disabled ones, not the\n already selected ones, and not the neighbouring days rendered as plain spans. */\n .v-date-picker-day:hover:not([aria-disabled='true']):not([data-selected]):not(\n .v-date-picker-day--static\n ) {\n background: var(--vectis-color-surface-muted);\n }\n\n .v-date-picker-day[data-outside] {\n color: var(--vectis-color-text-subtle);\n }\n\n /* The semibold in the two rules below marks a state — today, and the selection —\n and is not a typographic role, which is why it reads a font token directly. */\n .v-date-picker-day[data-today]:not([data-selected]) {\n box-shadow: inset 0 0 0 1px var(--vectis-color-accent-border);\n color: var(--vectis-color-accent-text);\n font-weight: var(--vectis-font-weight-semibold);\n }\n\n .v-date-picker-day[data-selected] {\n background: var(--vectis-color-accent);\n color: var(--vectis-color-text-on-accent);\n font-weight: var(--vectis-font-weight-semibold);\n }\n\n .v-date-picker-day[aria-disabled='true'] {\n color: var(--vectis-color-text-subtle);\n text-decoration: line-through;\n cursor: not-allowed;\n }\n\n .v-date-picker-day--static {\n color: var(--vectis-color-text-subtle);\n cursor: default;\n }\n\n /* A neighbouring day that falls outside the bounds, or is disabled, is struck\n through like any other unavailable date. */\n .v-date-picker-day--static[data-disabled] {\n text-decoration: line-through;\n cursor: not-allowed;\n }\n\n .v-date-picker-day: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-date-picker-day-num {\n line-height: var(--vectis-text-control-leading);\n }\n\n .v-date-picker-dots {\n position: absolute;\n inset-block-end: calc(var(--vectis-space-1) * 0.5);\n display: flex;\n gap: 2px;\n }\n .v-date-picker-dot {\n inline-size: var(--vectis-control-size-date-picker-dot);\n block-size: var(--vectis-control-size-date-picker-dot);\n border-radius: var(--vectis-radius-pill);\n background: var(--date-picker-dot-color, var(--vectis-color-accent));\n }\n .v-date-picker-day[data-selected] .v-date-picker-dot {\n background: var(--vectis-color-text-on-accent);\n }\n\n /* The months and years views. They fill the calendar's width exactly like the days\n grid does: stretched by the flex column, then shared out by 1fr columns. */\n .v-date-picker-view {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: var(--vectis-space-1);\n min-inline-size: calc(7 * var(--date-picker-cell));\n }\n /* The rows ARIA requires inside a grid, made invisible to the layout: with\n `display: contents` the cells remain direct grid items of `.v-date-picker-view`,\n so the columns line up as if the rows were not there. */\n .v-date-picker-view-row {\n display: contents;\n }\n\n .v-date-picker-view--years {\n max-block-size: calc(6 * var(--date-picker-cell));\n overflow-y: auto;\n }\n\n .v-date-picker-view-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--vectis-control-height-lg);\n border: none;\n border-radius: var(--vectis-radius-pill);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--vectis-text-body-md-size);\n text-transform: capitalize;\n cursor: pointer;\n transition: background-color var(--vectis-duration-fast) var(--vectis-ease-default);\n }\n .v-date-picker-view-cell:hover:not(:disabled):not([data-selected]) {\n background: var(--vectis-color-surface-muted);\n }\n .v-date-picker-view-cell[data-selected] {\n background: var(--vectis-color-accent);\n color: var(--vectis-color-text-on-accent);\n /* Again state emphasis, not a type role. */\n font-weight: var(--vectis-font-weight-semibold);\n }\n .v-date-picker-view-cell:disabled {\n color: var(--vectis-color-text-subtle);\n cursor: not-allowed;\n }\n .v-date-picker-view-cell:focus-visible {\n outline: var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);\n outline-offset: calc(-1 * var(--vectis-focus-ring-width));\n }\n\n .v-date-picker-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--vectis-space-2);\n padding-block-start: var(--vectis-space-2);\n border-block-start: 1px solid var(--vectis-color-border);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .v-date-picker-day,\n .v-date-picker-view-cell {\n transition: none;\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The pure half of VDatePicker's keyboard: it answers the single question "how far
3
+ * does this key move?", and does nothing else. Actually moving the focus, calling
4
+ * `preventDefault` and keeping the result inside the `min`/`max` bounds all stay in
5
+ * the component, where the reactive state lives.
6
+ *
7
+ * It sits in VDatePicker's own folder rather than in `utils/` because it has exactly
8
+ * one consumer, which fails the admission rule for shared code, and because
9
+ * VDatePicker owns the contract (the same reasoning as `VHotkeys/platform.ts` and
10
+ * `VCombobox/infiniteScroll.ts`). Being pure is also what makes this logic testable
11
+ * without mounting anything: the handlers in the component only ever move DOM focus,
12
+ * and jsdom lays nothing out to observe.
13
+ *
14
+ * One number has to be shared rather than repeated: `PICKER_COLUMNS` both cuts the
15
+ * months and years grid into rows and defines what a vertical arrow steps over. Were
16
+ * those two written as separate literals, widening the picker to four columns would
17
+ * leave the arrows moving three cells, with no error anywhere to point at it.
18
+ */
19
+ /**
20
+ * How many columns the months and years pickers are laid out in. It drives BOTH the
21
+ * cutting of those grids into rows and the distance a vertical arrow travels: these
22
+ * are the same number, and have to stay so.
23
+ */
24
+ export declare const PICKER_COLUMNS = 3;
25
+ /**
26
+ * How far a key moves in the days view. It comes in two units because a month is not
27
+ * a fixed number of days: `utils/date` provides one helper for each, and the caller
28
+ * picks by looking at which shape it was handed.
29
+ */
30
+ export type DayStep = {
31
+ days: number;
32
+ } | {
33
+ months: number;
34
+ };
35
+ /**
36
+ * The step a key produces in the days view, given the key itself, whether Shift is
37
+ * held, and how far the focused date sits from the start of its week — the last
38
+ * being what Home and End need in order to land on the right day. Returning
39
+ * `undefined` means the key is none of this table's business, and the event must be
40
+ * left alone.
41
+ *
42
+ * `weekdayOffset` is passed in rather than worked out here, because it depends on
43
+ * which day the week starts on in the current locale, and resolving that belongs to
44
+ * `utils/date`, not to a keyboard table.
45
+ */
46
+ export declare function dayStep(key: string, shiftKey: boolean, weekdayOffset: number): DayStep | undefined;
47
+ /**
48
+ * The step a key produces in the months and years views, expressed as a movement of
49
+ * a flat index over a grid `PICKER_COLUMNS` wide. `undefined` again means the key is
50
+ * not this table's business.
51
+ *
52
+ * Home and End are deliberately absent: both views are bounded — twelve months, a
53
+ * year range fixed by `min` and `max` — and the component clamps whatever comes out,
54
+ * so there is no wrapping behaviour left to define.
55
+ */
56
+ export declare function gridDelta(key: string): number | undefined;
@@ -0,0 +1,26 @@
1
+ function e(e, t, n) {
2
+ switch (e) {
3
+ case "ArrowRight": return { days: 1 };
4
+ case "ArrowLeft": return { days: -1 };
5
+ case "ArrowDown": return { days: 7 };
6
+ case "ArrowUp": return { days: -7 };
7
+ case "Home": return { days: -n || 0 };
8
+ case "End": return { days: 6 - n };
9
+ case "PageUp": return { months: t ? -12 : -1 };
10
+ case "PageDown": return { months: t ? 12 : 1 };
11
+ default: return;
12
+ }
13
+ }
14
+ function t(e) {
15
+ switch (e) {
16
+ case "ArrowRight": return 1;
17
+ case "ArrowLeft": return -1;
18
+ case "ArrowDown": return 3;
19
+ case "ArrowUp": return -3;
20
+ default: return;
21
+ }
22
+ }
23
+ //#endregion
24
+ export { e as dayStep, t as gridDelta };
25
+
26
+ //# sourceMappingURL=keyboard.js.map