vuetify 3.3.2 → 3.3.4

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 (356) hide show
  1. package/dist/_component-variables-labs.sass +2 -0
  2. package/dist/json/attributes.json +460 -20
  3. package/dist/json/importMap-labs.json +32 -0
  4. package/dist/json/importMap.json +24 -24
  5. package/dist/json/tags.json +150 -0
  6. package/dist/json/web-types.json +1639 -40
  7. package/dist/vuetify-labs.css +499 -230
  8. package/dist/vuetify-labs.d.ts +5421 -326
  9. package/dist/vuetify-labs.esm.js +2124 -1098
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +2123 -1097
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +219 -210
  14. package/dist/vuetify.d.ts +314 -165
  15. package/dist/vuetify.esm.js +330 -179
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +329 -178
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +792 -784
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +34 -27
  23. package/lib/blueprints/md1.d.mts +34 -27
  24. package/lib/blueprints/md2.d.mts +34 -27
  25. package/lib/blueprints/md3.d.mts +34 -27
  26. package/lib/components/VAppBar/VAppBar.mjs +3 -10
  27. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  28. package/lib/components/VAppBar/index.d.mts +24 -8
  29. package/lib/components/VAutocomplete/VAutocomplete.css +4 -22
  30. package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -12
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  32. package/lib/components/VAutocomplete/VAutocomplete.sass +6 -17
  33. package/lib/components/VBreadcrumbs/index.d.mts +7 -7
  34. package/lib/components/VBtn/VBtn.css +11 -11
  35. package/lib/components/VBtn/VBtn.mjs +1 -1
  36. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  37. package/lib/components/VBtn/VBtn.sass +1 -1
  38. package/lib/components/VBtn/_mixins.scss +1 -1
  39. package/lib/components/VBtn/index.d.mts +24 -8
  40. package/lib/components/VCard/VCard.mjs +1 -1
  41. package/lib/components/VCard/VCard.mjs.map +1 -1
  42. package/lib/components/VCard/index.d.mts +44 -28
  43. package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
  44. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  45. package/lib/components/VCheckbox/index.d.mts +7 -1
  46. package/lib/components/VChip/VChip.css +67 -67
  47. package/lib/components/VChip/VChip.mjs +2 -2
  48. package/lib/components/VChip/VChip.mjs.map +1 -1
  49. package/lib/components/VChip/_variables.scss +1 -1
  50. package/lib/components/VChip/index.d.mts +48 -32
  51. package/lib/components/VCombobox/VCombobox.css +4 -22
  52. package/lib/components/VCombobox/VCombobox.mjs +16 -8
  53. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  54. package/lib/components/VCombobox/VCombobox.sass +6 -17
  55. package/lib/components/VCombobox/_variables.scss +3 -3
  56. package/lib/components/VCounter/index.d.mts +8 -8
  57. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  58. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  59. package/lib/components/VExpansionPanel/index.d.mts +56 -24
  60. package/lib/components/VField/VField.css +72 -8
  61. package/lib/components/VField/VField.sass +10 -5
  62. package/lib/components/VField/_mixins.sass +7 -0
  63. package/lib/components/VFileInput/VFileInput.css +2 -17
  64. package/lib/components/VFileInput/VFileInput.mjs +0 -2
  65. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  66. package/lib/components/VFileInput/VFileInput.sass +2 -11
  67. package/lib/components/VFileInput/_variables.scss +3 -3
  68. package/lib/components/VIcon/VIcon.mjs +2 -2
  69. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  70. package/lib/components/VInput/VInput.css +14 -1
  71. package/lib/components/VInput/VInput.sass +6 -0
  72. package/lib/components/VInput/_variables.scss +5 -1
  73. package/lib/components/VList/VListItem.mjs +2 -2
  74. package/lib/components/VList/VListItem.mjs.map +1 -1
  75. package/lib/components/VList/index.d.mts +24 -8
  76. package/lib/components/VMenu/VMenu.mjs +29 -3
  77. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  78. package/lib/components/VOverlay/VOverlay.mjs +7 -4
  79. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  80. package/lib/components/VOverlay/useActivator.mjs +29 -35
  81. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  82. package/lib/components/VSelect/VSelect.css +2 -20
  83. package/lib/components/VSelect/VSelect.mjs +16 -11
  84. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  85. package/lib/components/VSelect/VSelect.sass +2 -12
  86. package/lib/components/VSelect/_variables.scss +3 -3
  87. package/lib/components/VSlider/VSliderThumb.mjs +2 -2
  88. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  89. package/lib/components/VTabs/VTab.mjs +2 -2
  90. package/lib/components/VTabs/VTab.mjs.map +1 -1
  91. package/lib/components/VTabs/VTabs.css +1 -0
  92. package/lib/components/VTabs/VTabs.sass +1 -0
  93. package/lib/components/VTabs/index.d.mts +24 -8
  94. package/lib/components/VTextarea/VTextarea.css +7 -7
  95. package/lib/components/VTextarea/VTextarea.sass +9 -9
  96. package/lib/components/VTimePicker/VTimePickerTitle.mjs +1 -1
  97. package/lib/components/index.d.mts +266 -132
  98. package/lib/components/index.mjs +1 -2
  99. package/lib/components/index.mjs.map +1 -1
  100. package/lib/composables/icons.mjs.map +1 -1
  101. package/lib/composables/list-items.mjs +5 -2
  102. package/lib/composables/list-items.mjs.map +1 -1
  103. package/lib/composables/nested/nested.mjs +1 -1
  104. package/lib/composables/nested/nested.mjs.map +1 -1
  105. package/lib/composables/theme.mjs +1 -1
  106. package/lib/composables/theme.mjs.map +1 -1
  107. package/lib/entry-bundler.mjs +1 -1
  108. package/lib/framework.mjs +1 -1
  109. package/lib/iconsets/fa-svg.d.mts +1 -0
  110. package/lib/iconsets/fa.d.mts +1 -0
  111. package/lib/iconsets/fa.mjs +2 -1
  112. package/lib/iconsets/fa.mjs.map +1 -1
  113. package/lib/iconsets/fa4.d.mts +1 -0
  114. package/lib/iconsets/fa4.mjs +2 -1
  115. package/lib/iconsets/fa4.mjs.map +1 -1
  116. package/lib/iconsets/md.d.mts +1 -0
  117. package/lib/iconsets/md.mjs +2 -1
  118. package/lib/iconsets/md.mjs.map +1 -1
  119. package/lib/iconsets/mdi-svg.d.mts +1 -0
  120. package/lib/iconsets/mdi-svg.mjs +36 -35
  121. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  122. package/lib/iconsets/mdi.d.mts +1 -0
  123. package/lib/iconsets/mdi.mjs +2 -1
  124. package/lib/iconsets/mdi.mjs.map +1 -1
  125. package/lib/index.d.mts +48 -33
  126. package/lib/labs/VDataTable/VDataTable.css +4 -14
  127. package/lib/labs/VDataTable/VDataTable.sass +6 -15
  128. package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
  129. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  130. package/lib/labs/VDataTable/VDataTableVirtual.mjs +16 -12
  131. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  132. package/lib/labs/VDataTable/composables/headers.mjs +2 -5
  133. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  134. package/lib/labs/VDataTable/composables/select.mjs +3 -2
  135. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  136. package/lib/labs/VDateInput/VDateInput.mjs +127 -0
  137. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -0
  138. package/lib/labs/VDateInput/VDateInput.sass +11 -0
  139. package/lib/labs/VDateInput/VDateRangeInput.mjs +223 -0
  140. package/lib/labs/VDateInput/VDateRangeInput.mjs.map +1 -0
  141. package/lib/labs/VDateInput/VDateRangeInput.sass +10 -0
  142. package/lib/labs/VDateInput/composables.mjs +59 -0
  143. package/lib/labs/VDateInput/composables.mjs.map +1 -0
  144. package/lib/labs/VDateInput/index.d.mts +1352 -0
  145. package/lib/labs/VDateInput/index.mjs +3 -0
  146. package/lib/labs/VDateInput/index.mjs.map +1 -0
  147. package/lib/labs/VDatePicker/VDateCard.css +33 -0
  148. package/lib/labs/VDatePicker/VDateCard.mjs +112 -0
  149. package/lib/labs/VDatePicker/VDateCard.mjs.map +1 -0
  150. package/lib/labs/VDatePicker/VDateCard.sass +32 -0
  151. package/lib/labs/VDatePicker/VDatePicker.css +23 -0
  152. package/lib/labs/VDatePicker/VDatePicker.mjs +172 -0
  153. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -0
  154. package/lib/labs/VDatePicker/VDatePicker.sass +23 -0
  155. package/lib/labs/VDatePicker/VDatePickerControls.css +15 -0
  156. package/lib/labs/VDatePicker/VDatePickerControls.mjs +80 -0
  157. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -0
  158. package/lib/labs/VDatePicker/VDatePickerControls.sass +15 -0
  159. package/lib/labs/VDatePicker/VDatePickerHeader.css +54 -0
  160. package/lib/labs/VDatePicker/VDatePickerHeader.mjs +75 -0
  161. package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -0
  162. package/lib/labs/VDatePicker/VDatePickerHeader.sass +51 -0
  163. package/lib/labs/VDatePicker/VDatePickerInput.sass +17 -0
  164. package/lib/labs/VDatePicker/VDatePickerMonth.css +77 -0
  165. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +286 -0
  166. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -0
  167. package/lib/labs/VDatePicker/VDatePickerMonth.sass +69 -0
  168. package/lib/{components → labs}/VDatePicker/VDatePickerTitle.mjs +1 -1
  169. package/lib/labs/VDatePicker/VDatePickerTitle.mjs.map +1 -0
  170. package/lib/labs/VDatePicker/VDatePickerYears.css +18 -0
  171. package/lib/labs/VDatePicker/VDatePickerYears.mjs +64 -0
  172. package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -0
  173. package/lib/labs/VDatePicker/VDatePickerYears.sass +16 -0
  174. package/lib/labs/VDatePicker/composables.mjs +33 -0
  175. package/lib/labs/VDatePicker/composables.mjs.map +1 -0
  176. package/lib/labs/VDatePicker/index.d.mts +4430 -0
  177. package/lib/labs/VDatePicker/index.mjs +7 -0
  178. package/lib/labs/VDatePicker/index.mjs.map +1 -0
  179. package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +1 -0
  180. package/lib/labs/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -0
  181. package/lib/labs/VDatePicker/util/eventHelpers.mjs.map +1 -0
  182. package/lib/labs/VDatePicker/util/index.mjs.map +1 -0
  183. package/lib/labs/VDatePicker/util/isDateAllowed.mjs.map +1 -0
  184. package/lib/labs/VDatePicker/util/monthChange.mjs.map +1 -0
  185. package/lib/labs/VDatePicker/util/pad.mjs.map +1 -0
  186. package/lib/labs/VDatePicker/util/sanitizeDateString.mjs.map +1 -0
  187. package/lib/labs/VDatePicker/utils.mjs +69 -0
  188. package/lib/labs/VDatePicker/utils.mjs.map +1 -0
  189. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs +87 -0
  190. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs.map +1 -0
  191. package/lib/labs/VDateRangePicker/VDateRangeCard.sass +33 -0
  192. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +131 -0
  193. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -0
  194. package/lib/labs/VDateRangePicker/VDateRangePicker.sass +21 -0
  195. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +103 -0
  196. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -0
  197. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.sass +39 -0
  198. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs +61 -0
  199. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs.map +1 -0
  200. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.sass +12 -0
  201. package/lib/labs/VDateRangePicker/index.d.mts +1065 -0
  202. package/lib/labs/VDateRangePicker/index.mjs +3 -0
  203. package/lib/labs/VDateRangePicker/index.mjs.map +1 -0
  204. package/lib/labs/VPicker/VPicker.css +57 -0
  205. package/lib/labs/VPicker/VPicker.mjs +47 -0
  206. package/lib/labs/VPicker/VPicker.mjs.map +1 -0
  207. package/lib/labs/VPicker/VPicker.sass +53 -0
  208. package/lib/labs/VPicker/VPickerTitle.mjs +4 -0
  209. package/lib/labs/VPicker/VPickerTitle.mjs.map +1 -0
  210. package/lib/labs/VPicker/index.d.mts +541 -0
  211. package/lib/labs/VPicker/index.mjs +3 -0
  212. package/lib/labs/VPicker/index.mjs.map +1 -0
  213. package/lib/labs/components.d.mts +5136 -198
  214. package/lib/labs/components.mjs +2 -0
  215. package/lib/labs/components.mjs.map +1 -1
  216. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  217. package/lib/labs/date/adapters/vuetify.d.mts +28 -25
  218. package/lib/labs/date/adapters/vuetify.mjs +65 -75
  219. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  220. package/lib/labs/date/date.mjs +82 -11
  221. package/lib/labs/date/date.mjs.map +1 -1
  222. package/lib/labs/date/index.d.mts +31 -30
  223. package/lib/locale/af.mjs +14 -5
  224. package/lib/locale/af.mjs.map +1 -1
  225. package/lib/locale/ar.mjs +14 -5
  226. package/lib/locale/ar.mjs.map +1 -1
  227. package/lib/locale/az.mjs +14 -5
  228. package/lib/locale/az.mjs.map +1 -1
  229. package/lib/locale/bg.mjs +14 -5
  230. package/lib/locale/bg.mjs.map +1 -1
  231. package/lib/locale/ca.mjs +14 -5
  232. package/lib/locale/ca.mjs.map +1 -1
  233. package/lib/locale/ckb.mjs +14 -5
  234. package/lib/locale/ckb.mjs.map +1 -1
  235. package/lib/locale/cs.mjs +14 -5
  236. package/lib/locale/cs.mjs.map +1 -1
  237. package/lib/locale/da.mjs +14 -5
  238. package/lib/locale/da.mjs.map +1 -1
  239. package/lib/locale/de.mjs +14 -5
  240. package/lib/locale/de.mjs.map +1 -1
  241. package/lib/locale/el.mjs +14 -5
  242. package/lib/locale/el.mjs.map +1 -1
  243. package/lib/locale/en.mjs +14 -5
  244. package/lib/locale/en.mjs.map +1 -1
  245. package/lib/locale/es.mjs +14 -5
  246. package/lib/locale/es.mjs.map +1 -1
  247. package/lib/locale/et.mjs +14 -5
  248. package/lib/locale/et.mjs.map +1 -1
  249. package/lib/locale/fa.mjs +14 -5
  250. package/lib/locale/fa.mjs.map +1 -1
  251. package/lib/locale/fi.mjs +14 -5
  252. package/lib/locale/fi.mjs.map +1 -1
  253. package/lib/locale/fr.mjs +14 -5
  254. package/lib/locale/fr.mjs.map +1 -1
  255. package/lib/locale/he.mjs +14 -5
  256. package/lib/locale/he.mjs.map +1 -1
  257. package/lib/locale/hr.mjs +14 -5
  258. package/lib/locale/hr.mjs.map +1 -1
  259. package/lib/locale/hu.mjs +14 -5
  260. package/lib/locale/hu.mjs.map +1 -1
  261. package/lib/locale/id.mjs +14 -5
  262. package/lib/locale/id.mjs.map +1 -1
  263. package/lib/locale/index.d.mts +588 -210
  264. package/lib/locale/it.mjs +14 -5
  265. package/lib/locale/it.mjs.map +1 -1
  266. package/lib/locale/ja.mjs +14 -5
  267. package/lib/locale/ja.mjs.map +1 -1
  268. package/lib/locale/ko.mjs +14 -5
  269. package/lib/locale/ko.mjs.map +1 -1
  270. package/lib/locale/lt.mjs +14 -5
  271. package/lib/locale/lt.mjs.map +1 -1
  272. package/lib/locale/lv.mjs +14 -5
  273. package/lib/locale/lv.mjs.map +1 -1
  274. package/lib/locale/nl.mjs +14 -5
  275. package/lib/locale/nl.mjs.map +1 -1
  276. package/lib/locale/no.mjs +14 -5
  277. package/lib/locale/no.mjs.map +1 -1
  278. package/lib/locale/pl.mjs +14 -5
  279. package/lib/locale/pl.mjs.map +1 -1
  280. package/lib/locale/pt.mjs +14 -5
  281. package/lib/locale/pt.mjs.map +1 -1
  282. package/lib/locale/ro.mjs +14 -5
  283. package/lib/locale/ro.mjs.map +1 -1
  284. package/lib/locale/ru.mjs +14 -5
  285. package/lib/locale/ru.mjs.map +1 -1
  286. package/lib/locale/sk.mjs +14 -5
  287. package/lib/locale/sk.mjs.map +1 -1
  288. package/lib/locale/sl.mjs +14 -5
  289. package/lib/locale/sl.mjs.map +1 -1
  290. package/lib/locale/sr-Cyrl.mjs +14 -5
  291. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  292. package/lib/locale/sr-Latn.mjs +14 -5
  293. package/lib/locale/sr-Latn.mjs.map +1 -1
  294. package/lib/locale/sv.mjs +14 -5
  295. package/lib/locale/sv.mjs.map +1 -1
  296. package/lib/locale/th.mjs +14 -5
  297. package/lib/locale/th.mjs.map +1 -1
  298. package/lib/locale/tr.mjs +14 -5
  299. package/lib/locale/tr.mjs.map +1 -1
  300. package/lib/locale/uk.mjs +14 -5
  301. package/lib/locale/uk.mjs.map +1 -1
  302. package/lib/locale/vi.mjs +14 -5
  303. package/lib/locale/vi.mjs.map +1 -1
  304. package/lib/locale/zh-Hans.mjs +14 -5
  305. package/lib/locale/zh-Hans.mjs.map +1 -1
  306. package/lib/locale/zh-Hant.mjs +14 -5
  307. package/lib/locale/zh-Hant.mjs.map +1 -1
  308. package/lib/util/bindProps.mjs +49 -0
  309. package/lib/util/bindProps.mjs.map +1 -0
  310. package/lib/util/dateTimeUtils.mjs +68 -0
  311. package/lib/util/dateTimeUtils.mjs.map +1 -1
  312. package/lib/util/helpers.mjs +3 -0
  313. package/lib/util/helpers.mjs.map +1 -1
  314. package/lib/util/index.mjs +1 -0
  315. package/lib/util/index.mjs.map +1 -1
  316. package/package.json +5 -2
  317. package/lib/components/VDatePicker/VDatePicker.mjs +0 -475
  318. package/lib/components/VDatePicker/VDatePicker.mjs.map +0 -1
  319. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +0 -120
  320. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +0 -1
  321. package/lib/components/VDatePicker/VDatePickerHeader.mjs +0 -136
  322. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +0 -1
  323. package/lib/components/VDatePicker/VDatePickerHeader.sass +0 -46
  324. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +0 -48
  325. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +0 -1
  326. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  327. package/lib/components/VDatePicker/VDatePickerYears.mjs +0 -84
  328. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +0 -1
  329. package/lib/components/VDatePicker/VDatePickerYears.sass +0 -30
  330. package/lib/components/VDatePicker/index.mjs +0 -18
  331. package/lib/components/VDatePicker/index.mjs.map +0 -1
  332. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
  333. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
  334. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
  335. package/lib/components/VDatePicker/util/index.mjs.map +0 -1
  336. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
  337. package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
  338. package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
  339. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
  340. package/lib/components/VPicker/VPicker.mjs +0 -86
  341. package/lib/components/VPicker/VPicker.mjs.map +0 -1
  342. package/lib/components/VPicker/VPicker.sass +0 -94
  343. package/lib/components/VPicker/index.mjs +0 -4
  344. package/lib/components/VPicker/index.mjs.map +0 -1
  345. /package/lib/{components → labs}/VDatePicker/VDatePickerTable.sass +0 -0
  346. /package/lib/{components → labs}/VDatePicker/VDatePickerTitle.sass +0 -0
  347. /package/lib/{components → labs}/VDatePicker/_variables.scss +0 -0
  348. /package/lib/{components → labs}/VDatePicker/mixins/date-picker-table.mjs +0 -0
  349. /package/lib/{components → labs}/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -0
  350. /package/lib/{components → labs}/VDatePicker/util/eventHelpers.mjs +0 -0
  351. /package/lib/{components → labs}/VDatePicker/util/index.mjs +0 -0
  352. /package/lib/{components → labs}/VDatePicker/util/isDateAllowed.mjs +0 -0
  353. /package/lib/{components → labs}/VDatePicker/util/monthChange.mjs +0 -0
  354. /package/lib/{components → labs}/VDatePicker/util/pad.mjs +0 -0
  355. /package/lib/{components → labs}/VDatePicker/util/sanitizeDateString.mjs +0 -0
  356. /package/lib/{components → labs}/VPicker/_variables.scss +0 -0
@@ -0,0 +1,75 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ // Styles
3
+ import "./VDatePickerHeader.css";
4
+
5
+ // Components
6
+ import { VBtn } from "../../components/VBtn/index.mjs";
7
+ import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs"; // Composables
8
+ import { useBackgroundColor } from "../../composables/color.mjs";
9
+ import { MaybeTransition } from "../../composables/transition.mjs"; // Utilities
10
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
11
+ export const makeVDatePickerHeaderProps = propsFactory({
12
+ appendIcon: String,
13
+ color: String,
14
+ header: String,
15
+ transition: String
16
+ }, 'VDatePickerHeader');
17
+ export const VDatePickerHeader = genericComponent()({
18
+ name: 'VDatePickerHeader',
19
+ props: makeVDatePickerHeaderProps(),
20
+ emits: {
21
+ 'click:append': () => true
22
+ },
23
+ setup(props, _ref) {
24
+ let {
25
+ emit,
26
+ slots
27
+ } = _ref;
28
+ const {
29
+ backgroundColorClasses,
30
+ backgroundColorStyles
31
+ } = useBackgroundColor(props, 'color');
32
+ function onClickAppend() {
33
+ emit('click:append');
34
+ }
35
+ useRender(() => {
36
+ const hasContent = !!(slots.default || props.header);
37
+ const hasAppend = !!(slots.append || props.appendIcon);
38
+ return _createVNode("div", {
39
+ "class": ['v-date-picker-header', backgroundColorClasses.value],
40
+ "style": backgroundColorStyles.value
41
+ }, [slots.prepend && _createVNode("div", {
42
+ "key": "prepend",
43
+ "class": "v-date-picker-header__prepend"
44
+ }, [slots.prepend()]), hasContent && _createVNode(MaybeTransition, {
45
+ "key": "content",
46
+ "name": props.transition
47
+ }, {
48
+ default: () => [_createVNode("div", {
49
+ "key": props.header,
50
+ "class": "v-date-picker-header__content"
51
+ }, [slots.default?.() ?? props.header])]
52
+ }), hasAppend && _createVNode("div", {
53
+ "class": "v-date-picker-header__append"
54
+ }, [!slots.append ? _createVNode(VBtn, {
55
+ "key": "append-btn",
56
+ "icon": props.appendIcon,
57
+ "variant": "text",
58
+ "onClick": onClickAppend
59
+ }, null) : _createVNode(VDefaultsProvider, {
60
+ "key": "append-defaults",
61
+ "disabled": !props.appendIcon,
62
+ "defaults": {
63
+ VBtn: {
64
+ icon: props.appendIcon,
65
+ variant: 'text'
66
+ }
67
+ }
68
+ }, {
69
+ default: () => [slots.append?.()]
70
+ })])]);
71
+ });
72
+ return {};
73
+ }
74
+ });
75
+ //# sourceMappingURL=VDatePickerHeader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VDefaultsProvider","useBackgroundColor","MaybeTransition","genericComponent","propsFactory","useRender","makeVDatePickerHeaderProps","appendIcon","String","color","header","transition","VDatePickerHeader","name","props","emits","click:append","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","onClickAppend","hasContent","default","hasAppend","append","_createVNode","value","prepend","icon","variant"],"sources":["../../../src/labs/VDatePicker/VDatePickerHeader.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent<VDatePickerHeaderSlots>()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n <div\n class={[\n 'v-date-picker-header',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { slots.prepend && (\n <div key=\"prepend\" class=\"v-date-picker-header__prepend\">\n { slots.prepend() }\n </div>\n )}\n\n { hasContent && (\n <MaybeTransition key=\"content\" name={ props.transition }>\n <div key={ props.header } class=\"v-date-picker-header__content\">\n { slots.default?.() ?? props.header }\n </div>\n </MaybeTransition>\n )}\n\n { hasAppend && (\n <div class=\"v-date-picker-header__append\">\n { !slots.append ? (\n <VBtn\n key=\"append-btn\"\n icon={ props.appendIcon }\n variant=\"text\"\n onClick={ onClickAppend }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VBtn: {\n icon: props.appendIcon,\n variant: 'text',\n },\n }}\n >\n { slots.append?.() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,wDAE1B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe,4CAExB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAOA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,UAAU,EAAEC,MAAM;EAClBC,KAAK,EAAED,MAAM;EACbE,MAAM,EAAEF,MAAM;EACdG,UAAU,EAAEH;AACd,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMI,iBAAiB,GAAGT,gBAAgB,EAA0B,CAAC;EAC1EU,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAER,0BAA0B,EAAE;EAEnCS,KAAK,EAAE;IACL,cAAc,EAAEC,CAAA,KAAM;EACxB,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,sBAAsB;MAAEC;IAAsB,CAAC,GAAGrB,kBAAkB,CAACa,KAAK,EAAE,OAAO,CAAC;IAE5F,SAASS,aAAaA,CAAA,EAAI;MACxBJ,IAAI,CAAC,cAAc,CAAC;IACtB;IAEAd,SAAS,CAAC,MAAM;MACd,MAAMmB,UAAU,GAAG,CAAC,EAAEJ,KAAK,CAACK,OAAO,IAAIX,KAAK,CAACJ,MAAM,CAAC;MACpD,MAAMgB,SAAS,GAAG,CAAC,EAAEN,KAAK,CAACO,MAAM,IAAIb,KAAK,CAACP,UAAU,CAAC;MAEtD,OAAAqB,YAAA;QAAA,SAEW,CACL,sBAAsB,EACtBP,sBAAsB,CAACQ,KAAK,CAC7B;QAAA,SACOP,qBAAqB,CAACO;MAAK,IAEjCT,KAAK,CAACU,OAAO,IAAAF,YAAA;QAAA,OACJ,SAAS;QAAA,SAAO;MAA+B,IACpDR,KAAK,CAACU,OAAO,EAAE,EAEpB,EAECN,UAAU,IAAAI,YAAA,CAAA1B,eAAA;QAAA,OACW,SAAS;QAAA,QAAQY,KAAK,CAACH;MAAU;QAAAc,OAAA,EAAAA,CAAA,MAAAG,YAAA;UAAA,OACzCd,KAAK,CAACJ,MAAM;UAAA,SAAS;QAA+B,IAC3DU,KAAK,CAACK,OAAO,IAAI,IAAIX,KAAK,CAACJ,MAAM;MAAA,EAGxC,EAECgB,SAAS,IAAAE,YAAA;QAAA,SACE;MAA8B,IACrC,CAACR,KAAK,CAACO,MAAM,GAAAC,YAAA,CAAA7B,IAAA;QAAA,OAEP,YAAY;QAAA,QACTe,KAAK,CAACP,UAAU;QAAA,WACf,MAAM;QAAA,WACJgB;MAAa,WAAAK,YAAA,CAAA5B,iBAAA;QAAA,OAInB,iBAAiB;QAAA,YACV,CAACc,KAAK,CAACP,UAAU;QAAA,YAClB;UACRR,IAAI,EAAE;YACJgC,IAAI,EAAEjB,KAAK,CAACP,UAAU;YACtByB,OAAO,EAAE;UACX;QACF;MAAC;QAAAP,OAAA,EAAAA,CAAA,MAECL,KAAK,CAACO,MAAM,IAAI;MAAA,EAErB,EAEJ;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ @use '../../styles/settings'
2
+
3
+ .v-date-picker-header
4
+ display: grid
5
+ grid-template-areas: "prepend content append"
6
+ grid-template-columns: min-content minmax(0, 1fr) min-content
7
+ overflow: hidden
8
+ padding-inline-start: 24px
9
+ padding-inline-end: 12px
10
+ padding-bottom: 12px
11
+
12
+ .v-date-picker-header__append
13
+ grid-area: append
14
+
15
+ .v-date-picker-header__prepend
16
+ grid-area: prepend
17
+ padding-inline-start: 8px
18
+
19
+ .v-date-picker-header__content
20
+ align-items: center
21
+ display: flex
22
+ font-size: 32px
23
+ line-height: 40px
24
+ grid-area: content
25
+ justify-content: space-between
26
+
27
+ .date-picker-header-transition,
28
+ .date-picker-header-reverse-transition
29
+ &-enter-active
30
+ transition-duration: 0.3s
31
+ transition-timing-function: settings.$standard-easing
32
+
33
+ &-leave-active
34
+ transition-duration: 0.3s
35
+ transition-timing-function: settings.$standard-easing
36
+
37
+ .date-picker-header-transition
38
+ &-enter-from
39
+ transform: translate(0, 100%)
40
+
41
+ &-leave-to
42
+ opacity: 0
43
+ transform: translate(0, -100%)
44
+
45
+ .date-picker-header-reverse-transition
46
+ &-enter-from
47
+ transform: translate(0, -100%)
48
+
49
+ &-leave-to
50
+ opacity: 0
51
+ transform: translate(0, 100%)
@@ -0,0 +1,17 @@
1
+ .v-date-picker-input
2
+ width: 300px
3
+ height: 350px
4
+ overflow: hidden
5
+
6
+ table
7
+ width: 100%
8
+
9
+ .v-date-picker-input__header
10
+ display: flex
11
+ justify-content: space-between
12
+ align-items: center
13
+
14
+ .v-date-picker-input__year
15
+ display: grid
16
+ grid-template-columns: 1fr 1fr 1fr 1fr
17
+ grid-gap: 4px
@@ -0,0 +1,77 @@
1
+ .v-date-picker-month {
2
+ display: flex;
3
+ justify-content: center;
4
+ height: 268px;
5
+ min-width: 328px;
6
+ --v-date-picker-month-day-diff: 4px;
7
+ }
8
+
9
+ .v-date-picker-month__weeks {
10
+ display: grid;
11
+ grid-template-rows: min-content min-content min-content min-content min-content min-content min-content;
12
+ grid-row-gap: 4px;
13
+ }
14
+
15
+ .v-date-picker-month__weekday {
16
+ font-size: 0.875rem;
17
+ }
18
+
19
+ .v-date-picker-month__days {
20
+ display: grid;
21
+ grid-template-columns: min-content min-content min-content min-content min-content min-content min-content;
22
+ grid-row-gap: 4px;
23
+ flex: 1 1;
24
+ justify-content: space-around;
25
+ }
26
+
27
+ .v-date-picker-month__day {
28
+ position: relative;
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ }
33
+
34
+ .v-date-picker-month__day--adjacent {
35
+ opacity: 0.5;
36
+ }
37
+
38
+ .v-date-picker-month__day--hide-adjacent {
39
+ opacity: 0;
40
+ }
41
+
42
+ .v-date-picker-month__day--range {
43
+ position: absolute;
44
+ width: 100%;
45
+ height: calc(100% - var(--v-date-picker-month-day-diff) * 2);
46
+ opacity: 0.5;
47
+ }
48
+
49
+ .v-date-picker-month__day--hover {
50
+ position: absolute;
51
+ width: 100%;
52
+ height: calc(100% - var(--v-date-picker-month-day-diff) * 2);
53
+ border-style: dashed;
54
+ border-top-width: 1px;
55
+ border-bottom-width: 1px;
56
+ border-left: none;
57
+ border-right: none;
58
+ }
59
+
60
+ .v-date-picker-month__day--start .v-date-picker-month__day--range, .v-date-picker-month__day--week-start .v-date-picker-month__day--range {
61
+ border-bottom-left-radius: 50%;
62
+ border-top-left-radius: 50%;
63
+ left: var(--v-date-picker-month-day-diff);
64
+ width: calc(100% - var(--v-date-picker-month-day-diff));
65
+ }
66
+
67
+ .v-date-picker-month__day--end .v-date-picker-month__day--range, .v-date-picker-month__day--week-end .v-date-picker-month__day--range {
68
+ border-bottom-right-radius: 50%;
69
+ border-top-right-radius: 50%;
70
+ right: var(--v-date-picker-month-day-diff);
71
+ width: calc(100% - var(--v-date-picker-month-day-diff));
72
+ }
73
+
74
+ .v-date-picker-month__day--selected.v-date-picker-month__day--end.v-date-picker-month__day--week-start .v-date-picker-month__day--range,
75
+ .v-date-picker-month__day--selected.v-date-picker-month__day--start.v-date-picker-month__day--week-end .v-date-picker-month__day--range {
76
+ display: none;
77
+ }
@@ -0,0 +1,286 @@
1
+ import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
2
+ // Styles
3
+ import "./VDatePickerMonth.css";
4
+
5
+ // Components
6
+ import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
7
+ import { useDatePicker } from "./composables.mjs";
8
+ import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
9
+ import { computed, ref } from 'vue';
10
+ import { genericComponent, omit, propsFactory } from "../../util/index.mjs"; // Types
11
+ import { getWeek, toIso } from "../date/date.mjs";
12
+ import { dateEmits, makeDateProps } from "../VDateInput/composables.mjs";
13
+ import { useDate } from "../date/index.mjs";
14
+ export const makeVDatePickerMonthProps = propsFactory({
15
+ color: String,
16
+ showAdjacentMonths: Boolean,
17
+ hideWeekdays: Boolean,
18
+ showWeek: Boolean,
19
+ range: {
20
+ default: false,
21
+ type: [String, Boolean],
22
+ validator: v => typeof v === 'boolean' || ['start', 'end'].includes(v)
23
+ },
24
+ hoverDate: null,
25
+ multiple: Boolean,
26
+ side: {
27
+ type: String
28
+ },
29
+ ...omit(makeDateProps(), ['inputMode', 'viewMode'])
30
+ }, 'VDatePickerMonth');
31
+ export const VDatePickerMonth = genericComponent()({
32
+ name: 'VDatePickerMonth',
33
+ props: makeVDatePickerMonthProps({
34
+ color: 'surface-variant'
35
+ }),
36
+ emits: {
37
+ ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),
38
+ 'update:hoverDate': date => true
39
+ },
40
+ setup(props, _ref) {
41
+ let {
42
+ emit,
43
+ slots
44
+ } = _ref;
45
+ const adapter = useDate();
46
+ const {
47
+ isDragging,
48
+ dragHandle,
49
+ hasScrolled
50
+ } = useDatePicker();
51
+ const month = computed(() => props.displayDate);
52
+ const findClosestDate = (date, dates) => {
53
+ const {
54
+ isSameDay,
55
+ getDiff
56
+ } = adapter;
57
+ const [startDate, endDate] = dates;
58
+ if (isSameDay(startDate, endDate)) {
59
+ return getDiff(date, startDate, 'days') > 0 ? endDate : startDate;
60
+ }
61
+ const distStart = Math.abs(getDiff(date, startDate));
62
+ const distEnd = Math.abs(getDiff(date, endDate));
63
+ return distStart < distEnd ? startDate : endDate;
64
+ };
65
+
66
+ // const hoverRange = computed<[any, any] | null>(() => {
67
+ // if (!props.hoverDate) return null
68
+
69
+ // const closestDate = findClosestDate(props.hoverDate, props.modelValue)
70
+
71
+ // if (!closestDate) return null
72
+
73
+ // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]
74
+ // })
75
+
76
+ const weeksInMonth = computed(() => {
77
+ const weeks = adapter.getWeekArray(month.value);
78
+ const days = weeks.flat();
79
+
80
+ // Make sure there's always 6 weeks in month (6 * 7 days)
81
+ // But only do it if we're not hiding adjacent months?
82
+ const daysInMonth = 6 * 7;
83
+ if (days.length < daysInMonth && props.showAdjacentMonths) {
84
+ const lastDay = days[days.length - 1];
85
+ let week = [];
86
+ for (let day = 1; day <= daysInMonth - days.length; day++) {
87
+ week.push(adapter.addDays(lastDay, day));
88
+ if (day % 7 === 0) {
89
+ weeks.push(week);
90
+ week = [];
91
+ }
92
+ }
93
+ }
94
+ return weeks;
95
+ });
96
+ const daysInMonth = computed(() => {
97
+ const validDates = props.modelValue.filter(v => !!v);
98
+ const isRange = validDates.length > 1;
99
+ const days = weeksInMonth.value.flat();
100
+ const today = adapter.date();
101
+ const startDate = validDates[0];
102
+ const endDate = validDates[1];
103
+ return days.map((date, index) => {
104
+ const isStart = startDate && adapter.isSameDay(date, startDate);
105
+ const isEnd = endDate && adapter.isSameDay(date, endDate);
106
+ const isAdjacent = !adapter.isSameMonth(date, month.value);
107
+ const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate);
108
+ return {
109
+ date,
110
+ isoDate: toIso(adapter, date),
111
+ formatted: adapter.format(date, 'keyboardDate'),
112
+ year: adapter.getYear(date),
113
+ month: adapter.getMonth(date),
114
+ isWeekStart: index % 7 === 0,
115
+ isWeekEnd: index % 7 === 6,
116
+ isSelected: isStart || isEnd,
117
+ isStart,
118
+ isEnd,
119
+ isToday: adapter.isSameDay(date, today),
120
+ isAdjacent,
121
+ isHidden: isAdjacent && !props.showAdjacentMonths,
122
+ inRange: isRange && !isSame && (isStart || isEnd || validDates.length === 2 && adapter.isWithinRange(date, validDates)),
123
+ // isHovered: props.hoverDate === date,
124
+ // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),
125
+ isHovered: false,
126
+ inHover: false,
127
+ localized: adapter.format(date, 'dayOfMonth')
128
+ };
129
+ });
130
+ });
131
+ const weeks = computed(() => {
132
+ return weeksInMonth.value.map(week => {
133
+ return getWeek(adapter, week[0]);
134
+ });
135
+ });
136
+ const {
137
+ backgroundColorClasses,
138
+ backgroundColorStyles
139
+ } = useBackgroundColor(props, 'color');
140
+ function selectDate(date) {
141
+ let newModel = props.modelValue.slice();
142
+ if (props.multiple) {
143
+ if (isDragging.value && dragHandle.value != null) {
144
+ const otherIndex = (dragHandle.value + 1) % 2;
145
+ const fn = otherIndex === 0 ? 'isBefore' : 'isAfter';
146
+ if (adapter[fn](date, newModel[otherIndex])) {
147
+ newModel[dragHandle.value] = newModel[otherIndex];
148
+ newModel[otherIndex] = date;
149
+ dragHandle.value = otherIndex;
150
+ } else {
151
+ newModel[dragHandle.value] = date;
152
+ }
153
+ } else {
154
+ if (newModel.find(d => adapter.isSameDay(d, date))) {
155
+ newModel = newModel.filter(v => !adapter.isSameDay(v, date));
156
+ } else if (newModel.length === 2) {
157
+ let index;
158
+ if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {
159
+ const closest = findClosestDate(date, newModel);
160
+ index = newModel.indexOf(closest);
161
+ } else {
162
+ index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined;
163
+ }
164
+ newModel = newModel.map((v, i) => i === index ? date : v);
165
+ } else {
166
+ if (newModel[0] && adapter.isBefore(newModel[0], date)) {
167
+ newModel = [newModel[0], date];
168
+ } else {
169
+ newModel = [date, newModel[0]];
170
+ }
171
+ }
172
+ }
173
+ } else {
174
+ newModel = [date];
175
+ }
176
+ emit('update:modelValue', newModel.filter(v => !!v));
177
+ }
178
+ const daysRef = ref();
179
+ function findElement(el) {
180
+ if (!el || el === daysRef.value) return null;
181
+ if ('vDate' in el.dataset) {
182
+ return adapter.date(el.dataset.vDate);
183
+ }
184
+ return findElement(el.parentElement);
185
+ }
186
+ function findDate(e) {
187
+ const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX;
188
+ const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY;
189
+ const el = document.elementFromPoint(x, y);
190
+ return findElement(el);
191
+ }
192
+ let canDrag = false;
193
+ function handleMousedown(e) {
194
+ hasScrolled.value = false;
195
+ const selected = findDate(e);
196
+ if (!selected) return;
197
+ const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected));
198
+ if (modelIndex >= 0) {
199
+ canDrag = true;
200
+ dragHandle.value = modelIndex;
201
+ window.addEventListener('touchmove', handleTouchmove, {
202
+ passive: false
203
+ });
204
+ window.addEventListener('mousemove', handleTouchmove, {
205
+ passive: false
206
+ });
207
+ e.preventDefault();
208
+ }
209
+ window.addEventListener('touchend', handleTouchend, {
210
+ passive: false
211
+ });
212
+ window.addEventListener('mouseup', handleTouchend, {
213
+ passive: false
214
+ });
215
+ }
216
+ function handleTouchmove(e) {
217
+ if (!canDrag) return;
218
+ e.preventDefault();
219
+ isDragging.value = true;
220
+ const over = findDate(e);
221
+ if (!over) return;
222
+ selectDate(over);
223
+ }
224
+ function handleTouchend(e) {
225
+ if (e.cancelable) e.preventDefault();
226
+ window.removeEventListener('touchmove', handleTouchmove);
227
+ window.removeEventListener('mousemove', handleTouchmove);
228
+ window.removeEventListener('touchend', handleTouchend);
229
+ window.removeEventListener('mouseup', handleTouchend);
230
+ const end = findDate(e);
231
+ if (!end) return;
232
+ if (!hasScrolled.value) {
233
+ selectDate(end);
234
+ }
235
+ isDragging.value = false;
236
+ dragHandle.value = null;
237
+ canDrag = false;
238
+ }
239
+ return () => _createVNode("div", {
240
+ "class": "v-date-picker-month"
241
+ }, [props.showWeek && _createVNode("div", {
242
+ "key": "weeks",
243
+ "class": "v-date-picker-month__weeks"
244
+ }, [!props.hideWeekdays && _createVNode("div", {
245
+ "key": "hide-week-days",
246
+ "class": "v-date-picker-month__day"
247
+ }, [_createTextVNode("\xA0")]), weeks.value.map(week => _createVNode("div", {
248
+ "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
249
+ }, [week]))]), _createVNode("div", {
250
+ "ref": daysRef,
251
+ "class": "v-date-picker-month__days",
252
+ "onMousedown": handleMousedown,
253
+ "onTouchstart": handleMousedown
254
+ }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => _createVNode("div", {
255
+ "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
256
+ }, [weekDay.charAt(0)])), daysInMonth.value.map((item, index) => _createVNode("div", {
257
+ "class": ['v-date-picker-month__day', {
258
+ 'v-date-picker-month__day--selected': item.isSelected,
259
+ 'v-date-picker-month__day--start': item.isStart,
260
+ 'v-date-picker-month__day--end': item.isEnd,
261
+ 'v-date-picker-month__day--adjacent': item.isAdjacent,
262
+ 'v-date-picker-month__day--hide-adjacent': item.isHidden,
263
+ 'v-date-picker-month__day--week-start': item.isWeekStart,
264
+ 'v-date-picker-month__day--week-end': item.isWeekEnd,
265
+ 'v-date-picker-month__day--hovered': item.isHovered
266
+ }],
267
+ "data-v-date": !item.isHidden ? item.isoDate : undefined
268
+ }, [item.inRange && _createVNode("div", {
269
+ "key": "in-range",
270
+ "class": ['v-date-picker-month__day--range', backgroundColorClasses.value],
271
+ "style": backgroundColorStyles.value
272
+ }, null), item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && _createVNode("div", {
273
+ "key": "in-hover",
274
+ "class": "v-date-picker-month__day--hover"
275
+ }, null), (props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VBtn, {
276
+ "icon": true,
277
+ "ripple": false,
278
+ "variant": (item.isToday || item.isHovered) && !item.isSelected ? 'outlined' : 'flat',
279
+ "active": item.isSelected,
280
+ "color": item.isSelected || item.isToday ? props.color : item.isHovered ? undefined : 'transparent'
281
+ }, {
282
+ default: () => [item.localized]
283
+ })]))])]);
284
+ }
285
+ });
286
+ //# sourceMappingURL=VDatePickerMonth.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","range","default","type","validator","v","includes","hoverDate","multiple","side","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","isRange","today","map","index","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","charAt","item"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n range: {\n default: false,\n type: [String, Boolean] as PropType<'start' | 'end' | boolean>,\n validator: (v: any) => typeof v === 'boolean' || ['start', 'end'].includes(v),\n },\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weeks.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay.charAt(0) }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ (item.isToday || item.isHovered) && !item.isSelected ? 'outlined' : 'flat' }\n active={ item.isSelected }\n color={ item.isSelected || item.isToday ? props.color : item.isHovered ? undefined : 'transparent' }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n ))}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ .v-date-picker-month
2
+ display: flex
3
+ justify-content: center
4
+ height: 268px
5
+ min-width: 328px
6
+
7
+ --v-date-picker-month-day-diff: 4px
8
+
9
+ .v-date-picker-month__weeks
10
+ display: grid
11
+ grid-template-rows: min-content min-content min-content min-content min-content min-content min-content
12
+ grid-row-gap: 4px
13
+
14
+ .v-date-picker-month__weekday
15
+ font-size: .875rem
16
+
17
+ .v-date-picker-month__days
18
+ display: grid
19
+ grid-template-columns: min-content min-content min-content min-content min-content min-content min-content
20
+ grid-row-gap: 4px
21
+ flex: 1 1
22
+ justify-content: space-around
23
+
24
+ .v-date-picker-month__day
25
+ position: relative
26
+ display: flex
27
+ align-items: center
28
+ justify-content: center
29
+
30
+ .v-date-picker-month__day--adjacent
31
+ opacity: 0.5
32
+
33
+ .v-date-picker-month__day--hide-adjacent
34
+ opacity: 0
35
+
36
+ .v-date-picker-month__day--range
37
+ position: absolute
38
+ width: 100%
39
+ height: calc(100% - var(--v-date-picker-month-day-diff) * 2)
40
+ opacity: 0.5
41
+
42
+ .v-date-picker-month__day--hover
43
+ position: absolute
44
+ width: 100%
45
+ height: calc(100% - var(--v-date-picker-month-day-diff) * 2)
46
+ border-style: dashed
47
+ border-top-width: 1px
48
+ border-bottom-width: 1px
49
+ border-left: none
50
+ border-right: none
51
+
52
+ .v-date-picker-month__day--start, .v-date-picker-month__day--week-start
53
+ .v-date-picker-month__day--range
54
+ border-bottom-left-radius: 50%
55
+ border-top-left-radius: 50%
56
+ left: var(--v-date-picker-month-day-diff)
57
+ width: calc(100% - var(--v-date-picker-month-day-diff))
58
+
59
+ .v-date-picker-month__day--end, .v-date-picker-month__day--week-end
60
+ .v-date-picker-month__day--range
61
+ border-bottom-right-radius: 50%
62
+ border-top-right-radius: 50%
63
+ right: var(--v-date-picker-month-day-diff)
64
+ width: calc(100% - var(--v-date-picker-month-day-diff))
65
+
66
+ .v-date-picker-month__day--selected.v-date-picker-month__day--end.v-date-picker-month__day--week-start,
67
+ .v-date-picker-month__day--selected.v-date-picker-month__day--start.v-date-picker-month__day--week-end
68
+ .v-date-picker-month__day--range
69
+ display: none
@@ -4,7 +4,7 @@
4
4
  import "./VDatePickerTitle.css";
5
5
 
6
6
  // Components
7
- import VIcon from "../VIcon/index.mjs"; // Mixins
7
+ import VIcon from "../../components/VIcon/index.mjs"; // Mixins
8
8
  import PickerButton from "../../mixins/picker-button.mjs"; // Utils
9
9
  import mixins from "../../util/mixins.mjs"; // Types
10
10
  export default mixins(PickerButton