vuetify 3.3.3 → 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 (308) hide show
  1. package/dist/_component-variables-labs.sass +2 -0
  2. package/dist/json/attributes.json +452 -12
  3. package/dist/json/importMap-labs.json +32 -0
  4. package/dist/json/importMap.json +20 -20
  5. package/dist/json/tags.json +150 -0
  6. package/dist/json/web-types.json +1609 -21
  7. package/dist/vuetify-labs.css +469 -192
  8. package/dist/vuetify-labs.d.ts +5178 -217
  9. package/dist/vuetify-labs.esm.js +1902 -990
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1902 -990
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +210 -203
  14. package/dist/vuetify.d.ts +60 -45
  15. package/dist/vuetify.esm.js +142 -104
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +142 -104
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +159 -160
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +32 -25
  23. package/lib/blueprints/md1.d.mts +32 -25
  24. package/lib/blueprints/md2.d.mts +32 -25
  25. package/lib/blueprints/md3.d.mts +32 -25
  26. package/lib/components/VAppBar/VAppBar.mjs +3 -10
  27. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.css +4 -22
  29. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  30. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  31. package/lib/components/VAutocomplete/VAutocomplete.sass +6 -17
  32. package/lib/components/VBreadcrumbs/index.d.mts +7 -7
  33. package/lib/components/VBtn/VBtn.css +11 -11
  34. package/lib/components/VBtn/VBtn.sass +1 -1
  35. package/lib/components/VBtn/_mixins.scss +1 -1
  36. package/lib/components/VChip/VChip.css +67 -67
  37. package/lib/components/VChip/_variables.scss +1 -1
  38. package/lib/components/VCombobox/VCombobox.css +4 -22
  39. package/lib/components/VCombobox/VCombobox.sass +6 -17
  40. package/lib/components/VCombobox/_variables.scss +3 -3
  41. package/lib/components/VCounter/index.d.mts +8 -8
  42. package/lib/components/VField/VField.css +71 -8
  43. package/lib/components/VField/VField.sass +9 -5
  44. package/lib/components/VField/_mixins.sass +7 -0
  45. package/lib/components/VFileInput/VFileInput.css +2 -17
  46. package/lib/components/VFileInput/VFileInput.mjs +0 -2
  47. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  48. package/lib/components/VFileInput/VFileInput.sass +2 -11
  49. package/lib/components/VFileInput/_variables.scss +3 -3
  50. package/lib/components/VInput/VInput.css +14 -1
  51. package/lib/components/VInput/VInput.sass +6 -0
  52. package/lib/components/VInput/_variables.scss +5 -1
  53. package/lib/components/VList/VListItem.mjs +1 -1
  54. package/lib/components/VList/VListItem.mjs.map +1 -1
  55. package/lib/components/VSelect/VSelect.css +2 -20
  56. package/lib/components/VSelect/VSelect.mjs +1 -1
  57. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  58. package/lib/components/VSelect/VSelect.sass +2 -12
  59. package/lib/components/VSelect/_variables.scss +3 -3
  60. package/lib/components/VTabs/VTab.mjs +2 -2
  61. package/lib/components/VTabs/VTab.mjs.map +1 -1
  62. package/lib/components/VTimePicker/VTimePickerTitle.mjs +1 -1
  63. package/lib/components/index.d.mts +15 -15
  64. package/lib/components/index.mjs +1 -2
  65. package/lib/components/index.mjs.map +1 -1
  66. package/lib/composables/icons.mjs.map +1 -1
  67. package/lib/composables/list-items.mjs +5 -2
  68. package/lib/composables/list-items.mjs.map +1 -1
  69. package/lib/composables/nested/nested.mjs +1 -1
  70. package/lib/composables/nested/nested.mjs.map +1 -1
  71. package/lib/entry-bundler.mjs +1 -1
  72. package/lib/framework.mjs +1 -1
  73. package/lib/iconsets/fa-svg.d.mts +1 -0
  74. package/lib/iconsets/fa.d.mts +1 -0
  75. package/lib/iconsets/fa.mjs +2 -1
  76. package/lib/iconsets/fa.mjs.map +1 -1
  77. package/lib/iconsets/fa4.d.mts +1 -0
  78. package/lib/iconsets/fa4.mjs +2 -1
  79. package/lib/iconsets/fa4.mjs.map +1 -1
  80. package/lib/iconsets/md.d.mts +1 -0
  81. package/lib/iconsets/md.mjs +2 -1
  82. package/lib/iconsets/md.mjs.map +1 -1
  83. package/lib/iconsets/mdi-svg.d.mts +1 -0
  84. package/lib/iconsets/mdi-svg.mjs +2 -1
  85. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  86. package/lib/iconsets/mdi.d.mts +1 -0
  87. package/lib/iconsets/mdi.mjs +2 -1
  88. package/lib/iconsets/mdi.mjs.map +1 -1
  89. package/lib/index.d.mts +45 -30
  90. package/lib/labs/VDataTable/VDataTableVirtual.mjs +16 -12
  91. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  92. package/lib/labs/VDataTable/composables/headers.mjs +2 -5
  93. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  94. package/lib/labs/VDateInput/VDateInput.mjs +127 -0
  95. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -0
  96. package/lib/labs/VDateInput/VDateInput.sass +11 -0
  97. package/lib/labs/VDateInput/VDateRangeInput.mjs +223 -0
  98. package/lib/labs/VDateInput/VDateRangeInput.mjs.map +1 -0
  99. package/lib/labs/VDateInput/VDateRangeInput.sass +10 -0
  100. package/lib/labs/VDateInput/composables.mjs +59 -0
  101. package/lib/labs/VDateInput/composables.mjs.map +1 -0
  102. package/lib/labs/VDateInput/index.d.mts +1352 -0
  103. package/lib/labs/VDateInput/index.mjs +3 -0
  104. package/lib/labs/VDateInput/index.mjs.map +1 -0
  105. package/lib/labs/VDatePicker/VDateCard.css +33 -0
  106. package/lib/labs/VDatePicker/VDateCard.mjs +112 -0
  107. package/lib/labs/VDatePicker/VDateCard.mjs.map +1 -0
  108. package/lib/labs/VDatePicker/VDateCard.sass +32 -0
  109. package/lib/labs/VDatePicker/VDatePicker.css +23 -0
  110. package/lib/labs/VDatePicker/VDatePicker.mjs +172 -0
  111. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -0
  112. package/lib/labs/VDatePicker/VDatePicker.sass +23 -0
  113. package/lib/labs/VDatePicker/VDatePickerControls.css +15 -0
  114. package/lib/labs/VDatePicker/VDatePickerControls.mjs +80 -0
  115. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -0
  116. package/lib/labs/VDatePicker/VDatePickerControls.sass +15 -0
  117. package/lib/labs/VDatePicker/VDatePickerHeader.css +54 -0
  118. package/lib/labs/VDatePicker/VDatePickerHeader.mjs +75 -0
  119. package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -0
  120. package/lib/labs/VDatePicker/VDatePickerHeader.sass +51 -0
  121. package/lib/labs/VDatePicker/VDatePickerInput.sass +17 -0
  122. package/lib/labs/VDatePicker/VDatePickerMonth.css +77 -0
  123. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +286 -0
  124. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -0
  125. package/lib/labs/VDatePicker/VDatePickerMonth.sass +69 -0
  126. package/lib/{components → labs}/VDatePicker/VDatePickerTitle.mjs +1 -1
  127. package/lib/labs/VDatePicker/VDatePickerTitle.mjs.map +1 -0
  128. package/lib/labs/VDatePicker/VDatePickerYears.css +18 -0
  129. package/lib/labs/VDatePicker/VDatePickerYears.mjs +64 -0
  130. package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -0
  131. package/lib/labs/VDatePicker/VDatePickerYears.sass +16 -0
  132. package/lib/labs/VDatePicker/composables.mjs +33 -0
  133. package/lib/labs/VDatePicker/composables.mjs.map +1 -0
  134. package/lib/labs/VDatePicker/index.d.mts +4430 -0
  135. package/lib/labs/VDatePicker/index.mjs +7 -0
  136. package/lib/labs/VDatePicker/index.mjs.map +1 -0
  137. package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +1 -0
  138. package/lib/labs/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -0
  139. package/lib/labs/VDatePicker/util/eventHelpers.mjs.map +1 -0
  140. package/lib/labs/VDatePicker/util/index.mjs.map +1 -0
  141. package/lib/labs/VDatePicker/util/isDateAllowed.mjs.map +1 -0
  142. package/lib/labs/VDatePicker/util/monthChange.mjs.map +1 -0
  143. package/lib/labs/VDatePicker/util/pad.mjs.map +1 -0
  144. package/lib/labs/VDatePicker/util/sanitizeDateString.mjs.map +1 -0
  145. package/lib/labs/VDatePicker/utils.mjs +69 -0
  146. package/lib/labs/VDatePicker/utils.mjs.map +1 -0
  147. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs +87 -0
  148. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs.map +1 -0
  149. package/lib/labs/VDateRangePicker/VDateRangeCard.sass +33 -0
  150. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +131 -0
  151. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -0
  152. package/lib/labs/VDateRangePicker/VDateRangePicker.sass +21 -0
  153. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +103 -0
  154. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -0
  155. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.sass +39 -0
  156. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs +61 -0
  157. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs.map +1 -0
  158. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.sass +12 -0
  159. package/lib/labs/VDateRangePicker/index.d.mts +1065 -0
  160. package/lib/labs/VDateRangePicker/index.mjs +3 -0
  161. package/lib/labs/VDateRangePicker/index.mjs.map +1 -0
  162. package/lib/labs/VPicker/VPicker.css +57 -0
  163. package/lib/labs/VPicker/VPicker.mjs +47 -0
  164. package/lib/labs/VPicker/VPicker.mjs.map +1 -0
  165. package/lib/labs/VPicker/VPicker.sass +53 -0
  166. package/lib/labs/VPicker/VPickerTitle.mjs +4 -0
  167. package/lib/labs/VPicker/VPickerTitle.mjs.map +1 -0
  168. package/lib/labs/VPicker/index.d.mts +541 -0
  169. package/lib/labs/VPicker/index.mjs +3 -0
  170. package/lib/labs/VPicker/index.mjs.map +1 -0
  171. package/lib/labs/components.d.mts +5136 -198
  172. package/lib/labs/components.mjs +2 -0
  173. package/lib/labs/components.mjs.map +1 -1
  174. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  175. package/lib/labs/date/adapters/vuetify.d.mts +28 -25
  176. package/lib/labs/date/adapters/vuetify.mjs +65 -75
  177. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  178. package/lib/labs/date/date.mjs +82 -11
  179. package/lib/labs/date/date.mjs.map +1 -1
  180. package/lib/labs/date/index.d.mts +31 -30
  181. package/lib/locale/af.mjs +14 -5
  182. package/lib/locale/af.mjs.map +1 -1
  183. package/lib/locale/ar.mjs +14 -5
  184. package/lib/locale/ar.mjs.map +1 -1
  185. package/lib/locale/az.mjs +14 -5
  186. package/lib/locale/az.mjs.map +1 -1
  187. package/lib/locale/bg.mjs +14 -5
  188. package/lib/locale/bg.mjs.map +1 -1
  189. package/lib/locale/ca.mjs +14 -5
  190. package/lib/locale/ca.mjs.map +1 -1
  191. package/lib/locale/ckb.mjs +14 -5
  192. package/lib/locale/ckb.mjs.map +1 -1
  193. package/lib/locale/cs.mjs +14 -5
  194. package/lib/locale/cs.mjs.map +1 -1
  195. package/lib/locale/da.mjs +14 -5
  196. package/lib/locale/da.mjs.map +1 -1
  197. package/lib/locale/de.mjs +14 -5
  198. package/lib/locale/de.mjs.map +1 -1
  199. package/lib/locale/el.mjs +14 -5
  200. package/lib/locale/el.mjs.map +1 -1
  201. package/lib/locale/en.mjs +14 -5
  202. package/lib/locale/en.mjs.map +1 -1
  203. package/lib/locale/es.mjs +14 -5
  204. package/lib/locale/es.mjs.map +1 -1
  205. package/lib/locale/et.mjs +14 -5
  206. package/lib/locale/et.mjs.map +1 -1
  207. package/lib/locale/fa.mjs +14 -5
  208. package/lib/locale/fa.mjs.map +1 -1
  209. package/lib/locale/fi.mjs +14 -5
  210. package/lib/locale/fi.mjs.map +1 -1
  211. package/lib/locale/fr.mjs +14 -5
  212. package/lib/locale/fr.mjs.map +1 -1
  213. package/lib/locale/he.mjs +14 -5
  214. package/lib/locale/he.mjs.map +1 -1
  215. package/lib/locale/hr.mjs +14 -5
  216. package/lib/locale/hr.mjs.map +1 -1
  217. package/lib/locale/hu.mjs +14 -5
  218. package/lib/locale/hu.mjs.map +1 -1
  219. package/lib/locale/id.mjs +14 -5
  220. package/lib/locale/id.mjs.map +1 -1
  221. package/lib/locale/index.d.mts +588 -210
  222. package/lib/locale/it.mjs +14 -5
  223. package/lib/locale/it.mjs.map +1 -1
  224. package/lib/locale/ja.mjs +14 -5
  225. package/lib/locale/ja.mjs.map +1 -1
  226. package/lib/locale/ko.mjs +14 -5
  227. package/lib/locale/ko.mjs.map +1 -1
  228. package/lib/locale/lt.mjs +14 -5
  229. package/lib/locale/lt.mjs.map +1 -1
  230. package/lib/locale/lv.mjs +14 -5
  231. package/lib/locale/lv.mjs.map +1 -1
  232. package/lib/locale/nl.mjs +14 -5
  233. package/lib/locale/nl.mjs.map +1 -1
  234. package/lib/locale/no.mjs +14 -5
  235. package/lib/locale/no.mjs.map +1 -1
  236. package/lib/locale/pl.mjs +14 -5
  237. package/lib/locale/pl.mjs.map +1 -1
  238. package/lib/locale/pt.mjs +14 -5
  239. package/lib/locale/pt.mjs.map +1 -1
  240. package/lib/locale/ro.mjs +14 -5
  241. package/lib/locale/ro.mjs.map +1 -1
  242. package/lib/locale/ru.mjs +14 -5
  243. package/lib/locale/ru.mjs.map +1 -1
  244. package/lib/locale/sk.mjs +14 -5
  245. package/lib/locale/sk.mjs.map +1 -1
  246. package/lib/locale/sl.mjs +14 -5
  247. package/lib/locale/sl.mjs.map +1 -1
  248. package/lib/locale/sr-Cyrl.mjs +14 -5
  249. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  250. package/lib/locale/sr-Latn.mjs +14 -5
  251. package/lib/locale/sr-Latn.mjs.map +1 -1
  252. package/lib/locale/sv.mjs +14 -5
  253. package/lib/locale/sv.mjs.map +1 -1
  254. package/lib/locale/th.mjs +14 -5
  255. package/lib/locale/th.mjs.map +1 -1
  256. package/lib/locale/tr.mjs +14 -5
  257. package/lib/locale/tr.mjs.map +1 -1
  258. package/lib/locale/uk.mjs +14 -5
  259. package/lib/locale/uk.mjs.map +1 -1
  260. package/lib/locale/vi.mjs +14 -5
  261. package/lib/locale/vi.mjs.map +1 -1
  262. package/lib/locale/zh-Hans.mjs +14 -5
  263. package/lib/locale/zh-Hans.mjs.map +1 -1
  264. package/lib/locale/zh-Hant.mjs +14 -5
  265. package/lib/locale/zh-Hant.mjs.map +1 -1
  266. package/lib/util/dateTimeUtils.mjs +68 -0
  267. package/lib/util/dateTimeUtils.mjs.map +1 -1
  268. package/package.json +5 -2
  269. package/lib/components/VDatePicker/VDatePicker.mjs +0 -475
  270. package/lib/components/VDatePicker/VDatePicker.mjs.map +0 -1
  271. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +0 -120
  272. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +0 -1
  273. package/lib/components/VDatePicker/VDatePickerHeader.mjs +0 -136
  274. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +0 -1
  275. package/lib/components/VDatePicker/VDatePickerHeader.sass +0 -46
  276. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +0 -48
  277. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +0 -1
  278. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  279. package/lib/components/VDatePicker/VDatePickerYears.mjs +0 -84
  280. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +0 -1
  281. package/lib/components/VDatePicker/VDatePickerYears.sass +0 -30
  282. package/lib/components/VDatePicker/index.mjs +0 -18
  283. package/lib/components/VDatePicker/index.mjs.map +0 -1
  284. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
  285. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
  286. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
  287. package/lib/components/VDatePicker/util/index.mjs.map +0 -1
  288. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
  289. package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
  290. package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
  291. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
  292. package/lib/components/VPicker/VPicker.mjs +0 -86
  293. package/lib/components/VPicker/VPicker.mjs.map +0 -1
  294. package/lib/components/VPicker/VPicker.sass +0 -94
  295. package/lib/components/VPicker/index.mjs +0 -4
  296. package/lib/components/VPicker/index.mjs.map +0 -1
  297. /package/lib/{components → labs}/VDatePicker/VDatePickerTable.sass +0 -0
  298. /package/lib/{components → labs}/VDatePicker/VDatePickerTitle.sass +0 -0
  299. /package/lib/{components → labs}/VDatePicker/_variables.scss +0 -0
  300. /package/lib/{components → labs}/VDatePicker/mixins/date-picker-table.mjs +0 -0
  301. /package/lib/{components → labs}/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -0
  302. /package/lib/{components → labs}/VDatePicker/util/eventHelpers.mjs +0 -0
  303. /package/lib/{components → labs}/VDatePicker/util/index.mjs +0 -0
  304. /package/lib/{components → labs}/VDatePicker/util/isDateAllowed.mjs +0 -0
  305. /package/lib/{components → labs}/VDatePicker/util/monthChange.mjs +0 -0
  306. /package/lib/{components → labs}/VDatePicker/util/pad.mjs +0 -0
  307. /package/lib/{components → labs}/VDatePicker/util/sanitizeDateString.mjs +0 -0
  308. /package/lib/{components → labs}/VPicker/_variables.scss +0 -0
@@ -0,0 +1,223 @@
1
+ import { resolveDirective as _resolveDirective, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
+ // Styles
3
+ import "./VDateRangeInput.css";
4
+
5
+ // Components
6
+ import { VDateRangeCard, VDateRangePicker } from "../VDateRangePicker/index.mjs";
7
+ import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
8
+ import { VDialog } from "../../components/VDialog/index.mjs";
9
+ import { VMenu } from "../../components/VMenu/index.mjs";
10
+ import { VTextField } from "../../components/VTextField/index.mjs"; // Composables
11
+ import { createDateInput, dateEmits, makeDateProps } from "./composables.mjs";
12
+ import { useDisplay, useLocale } from "../../composables/index.mjs";
13
+ import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
14
+ import { ref, toRef, watch } from 'vue';
15
+ import { genericComponent, useRender } from "../../util/index.mjs"; // Types
16
+ export const VDateRangeInput = genericComponent()({
17
+ name: 'VDateRangeInput',
18
+ props: {
19
+ color: String,
20
+ prependIcon: {
21
+ type: String,
22
+ default: '$calendar'
23
+ },
24
+ placeholder: {
25
+ type: String,
26
+ default: 'mm/dd/yyyy'
27
+ },
28
+ fromLabel: String,
29
+ toLabel: String,
30
+ dividerText: {
31
+ type: String,
32
+ default: '$vuetify.dateRangeInput.divider'
33
+ },
34
+ mobile: Boolean,
35
+ ...makeDateProps(),
36
+ modelValue: {
37
+ type: null
38
+ },
39
+ displayDate: {
40
+ type: null
41
+ }
42
+ },
43
+ emits: {
44
+ ...dateEmits
45
+ },
46
+ setup(props) {
47
+ const {
48
+ t
49
+ } = useLocale();
50
+ const {
51
+ adapter,
52
+ model,
53
+ inputMode,
54
+ viewMode,
55
+ displayDate
56
+ } = createDateInput(props, true);
57
+ const startInput = ref(model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '');
58
+ const endInput = ref(model.value.length > 1 ? adapter.format(model.value[1], 'keyboardDate') : '');
59
+ function handleBlur(index) {
60
+ const {
61
+ isValid,
62
+ isSameDay,
63
+ date
64
+ } = adapter;
65
+ if (index === 0 && isValid(startInput.value)) {
66
+ const newDate = date(startInput.value);
67
+ if (!isSameDay(newDate, model.value[0])) {
68
+ model.value = [newDate, model.value[1]];
69
+ displayDate.value = newDate;
70
+ }
71
+ } else if (index === 1 && isValid(endInput.value)) {
72
+ const newDate = date(endInput.value);
73
+ if (!isSameDay(newDate, model.value[1])) {
74
+ model.value = [model.value[0], newDate];
75
+ displayDate.value = newDate;
76
+ }
77
+ }
78
+ }
79
+ watch(model, newValue => {
80
+ if (!newValue.length) return;
81
+ if (newValue[0]) {
82
+ startInput.value = adapter.format(newValue[0], 'keyboardDate');
83
+ }
84
+ if (newValue[1]) {
85
+ endInput.value = adapter.format(newValue[1], 'keyboardDate');
86
+ }
87
+ });
88
+ const {
89
+ mobile
90
+ } = useDisplay();
91
+ provideDefaults({
92
+ VTextField: {
93
+ color: toRef(props, 'color')
94
+ }
95
+ });
96
+ useRender(() => {
97
+ if (mobile.value) {
98
+ return _createVNode(VDialog, {
99
+ "fullscreen": inputMode.value === 'calendar',
100
+ "contentClass": "v-date-range-input__dialog-content"
101
+ }, {
102
+ activator: _ref => {
103
+ let {
104
+ props: slotProps
105
+ } = _ref;
106
+ return _createVNode("div", _mergeProps({
107
+ "class": "v-date-range-input"
108
+ }, slotProps), [_createVNode(VTextField, {
109
+ "modelValue": startInput.value,
110
+ "onBlur": () => handleBlur(0),
111
+ "prependInnerIcon": props.prependIcon,
112
+ "placeholder": props.placeholder,
113
+ "label": props.fromLabel
114
+ }, null), _createVNode("div", {
115
+ "class": "v-date-range-input__divider"
116
+ }, [t(props.dividerText)]), _createVNode(VTextField, {
117
+ "modelValue": endInput.value,
118
+ "onBlur": () => handleBlur(1),
119
+ "prependInnerIcon": props.prependIcon,
120
+ "placeholder": props.placeholder,
121
+ "label": props.toLabel
122
+ }, null)]);
123
+ },
124
+ default: _ref2 => {
125
+ let {
126
+ isActive
127
+ } = _ref2;
128
+ return _createVNode(VDateRangePicker, {
129
+ "modelValue": model.value,
130
+ "onUpdate:modelValue": $event => model.value = $event,
131
+ "displayDate": displayDate.value,
132
+ "onUpdate:displayDate": $event => displayDate.value = $event,
133
+ "viewMode": viewMode.value,
134
+ "onUpdate:viewMode": $event => viewMode.value = $event,
135
+ "inputMode": inputMode.value,
136
+ "onUpdate:inputMode": $event => inputMode.value = $event,
137
+ "onSave": () => {
138
+ isActive.value = false;
139
+ },
140
+ "onCancel": () => {
141
+ isActive.value = false;
142
+ }
143
+ }, null);
144
+ }
145
+ });
146
+ }
147
+ return _createVNode(VDefaultsProvider, {
148
+ "defaults": {
149
+ VOverlay: {
150
+ minWidth: '100%'
151
+ }
152
+ }
153
+ }, {
154
+ default: () => [_createVNode("div", {
155
+ "class": "v-date-range-input"
156
+ }, [_createVNode(VMenu, {
157
+ "offset": [-28, 0],
158
+ "closeOnContentClick": false,
159
+ "contentClass": "foo"
160
+ }, {
161
+ activator: _ref3 => {
162
+ let {
163
+ props: slotProps
164
+ } = _ref3;
165
+ return _createVNode("div", _mergeProps(slotProps, {
166
+ "style": "flex: 1 1 auto;"
167
+ }), [_createVNode(VTextField, {
168
+ "modelValue": startInput.value,
169
+ "onUpdate:modelValue": $event => startInput.value = $event,
170
+ "onBlur": () => handleBlur(0),
171
+ "prependInnerIcon": props.prependIcon,
172
+ "placeholder": props.placeholder,
173
+ "label": props.fromLabel
174
+ }, null)]);
175
+ },
176
+ default: () => _createVNode(VDateRangeCard, {
177
+ "modelValue": model.value,
178
+ "onUpdate:modelValue": $event => model.value = $event,
179
+ "displayDate": displayDate.value,
180
+ "onUpdate:displayDate": $event => displayDate.value = $event,
181
+ "viewMode": viewMode.value,
182
+ "onUpdate:viewMode": $event => viewMode.value = $event,
183
+ "inputMode": inputMode.value,
184
+ "onUpdate:inputMode": $event => inputMode.value = $event
185
+ }, null)
186
+ }), _createVNode("div", {
187
+ "class": "v-date-range-input__divider"
188
+ }, [t(props.dividerText)]), _createVNode(VMenu, {
189
+ "key": "bar",
190
+ "offset": [-28, 0],
191
+ "closeOnContentClick": false
192
+ }, {
193
+ activator: _ref4 => {
194
+ let {
195
+ props: slotProps
196
+ } = _ref4;
197
+ return _createVNode("div", _mergeProps(slotProps, {
198
+ "style": "flex: 1 1 auto;"
199
+ }), [_createVNode(VTextField, {
200
+ "modelValue": endInput.value,
201
+ "onUpdate:modelValue": $event => endInput.value = $event,
202
+ "onBlur": () => handleBlur(1),
203
+ "prependInnerIcon": props.prependIcon,
204
+ "placeholder": props.placeholder,
205
+ "label": props.toLabel
206
+ }, null)]);
207
+ },
208
+ default: () => _createVNode(VDateRangeCard, {
209
+ "modelValue": model.value,
210
+ "onUpdate:modelValue": $event => model.value = $event,
211
+ "displayDate": displayDate.value,
212
+ "onUpdate:displayDate": $event => displayDate.value = $event,
213
+ "viewMode": viewMode.value,
214
+ "onUpdate:viewMode": $event => viewMode.value = $event,
215
+ "inputMode": inputMode.value,
216
+ "onUpdate:inputMode": $event => inputMode.value = $event
217
+ }, null)
218
+ })])]
219
+ });
220
+ });
221
+ }
222
+ });
223
+ //# sourceMappingURL=VDateRangeInput.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VDateRangeInput.mjs","names":["VDateRangeCard","VDateRangePicker","VDefaultsProvider","VDialog","VMenu","VTextField","createDateInput","dateEmits","makeDateProps","useDisplay","useLocale","provideDefaults","ref","toRef","watch","genericComponent","useRender","VDateRangeInput","name","props","color","String","prependIcon","type","default","placeholder","fromLabel","toLabel","dividerText","mobile","Boolean","modelValue","displayDate","emits","setup","t","adapter","model","inputMode","viewMode","startInput","value","length","format","endInput","handleBlur","index","isValid","isSameDay","date","newDate","newValue","_createVNode","activator","_ref","slotProps","_mergeProps","onBlur","_ref2","isActive","$event","onSave","onCancel","VOverlay","minWidth","_ref3","_ref4"],"sources":["../../../src/labs/VDateInput/VDateRangeInput.tsx"],"sourcesContent":["// Styles\nimport './VDateRangeInput.sass'\n\n// Components\nimport { VDateRangeCard, VDateRangePicker } from '../VDateRangePicker'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialog } from '@/components/VDialog'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { createDateInput, dateEmits, makeDateProps } from './composables'\nimport { useDisplay, useLocale } from '@/composables'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { ref, toRef, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDateRangeInput = genericComponent()({\n name: 'VDateRangeInput',\n\n props: {\n color: String,\n prependIcon: {\n type: String,\n default: '$calendar',\n },\n placeholder: {\n type: String,\n default: 'mm/dd/yyyy',\n },\n fromLabel: String,\n toLabel: String,\n dividerText: {\n type: String,\n default: '$vuetify.dateRangeInput.divider',\n },\n mobile: Boolean,\n ...makeDateProps(),\n modelValue: {\n type: null as unknown as PropType<any[]>,\n },\n displayDate: {\n type: null as unknown as PropType<any>,\n },\n },\n\n emits: {\n ...dateEmits,\n },\n\n setup (props) {\n const { t } = useLocale()\n const { adapter, model, inputMode, viewMode, displayDate } = createDateInput(props, true)\n\n const startInput = ref(model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '')\n const endInput = ref(model.value.length > 1 ? adapter.format(model.value[1], 'keyboardDate') : '')\n\n function handleBlur (index: number) {\n const { isValid, isSameDay, date } = adapter\n\n if (index === 0 && isValid(startInput.value)) {\n const newDate = date(startInput.value)\n if (!isSameDay(newDate, model.value[0])) {\n model.value = [newDate, model.value[1]]\n displayDate.value = newDate\n }\n } else if (index === 1 && isValid(endInput.value)) {\n const newDate = date(endInput.value)\n if (!isSameDay(newDate, model.value[1])) {\n model.value = [model.value[0], newDate]\n displayDate.value = newDate\n }\n }\n }\n\n watch(model, newValue => {\n if (!newValue.length) return\n\n if (newValue[0]) {\n startInput.value = adapter.format(newValue[0], 'keyboardDate')\n }\n\n if (newValue[1]) {\n endInput.value = adapter.format(newValue[1], 'keyboardDate')\n }\n })\n\n const { mobile } = useDisplay()\n\n provideDefaults({\n VTextField: {\n color: toRef(props, 'color'),\n },\n })\n\n useRender(() => {\n if (mobile.value) {\n return (\n <VDialog\n fullscreen={ inputMode.value === 'calendar' }\n contentClass=\"v-date-range-input__dialog-content\"\n v-slots={{\n activator: ({ props: slotProps }) => (\n <div class=\"v-date-range-input\" { ...slotProps }>\n <VTextField\n modelValue={ startInput.value }\n onBlur={ () => handleBlur(0) }\n prependInnerIcon={ props.prependIcon }\n placeholder={ props.placeholder }\n label={ props.fromLabel }\n />\n <div class=\"v-date-range-input__divider\">{ t(props.dividerText) }</div>\n <VTextField\n modelValue={ endInput.value }\n onBlur={ () => handleBlur(1) }\n prependInnerIcon={ props.prependIcon }\n placeholder={ props.placeholder }\n label={ props.toLabel }\n />\n </div>\n ),\n default: ({ isActive }) => (\n <VDateRangePicker\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n v-model:inputMode={ inputMode.value }\n onSave={ () => {\n isActive.value = false\n }}\n onCancel={ () => {\n isActive.value = false\n }}\n />\n ),\n }}\n />\n )\n }\n\n return (\n <VDefaultsProvider defaults={{ VOverlay: { minWidth: '100%' } }}>\n <div class=\"v-date-range-input\">\n <VMenu\n offset={[-28, 0]}\n closeOnContentClick={ false }\n contentClass=\"foo\"\n v-slots={{\n activator: ({ props: slotProps }) => (\n <div { ...slotProps } style=\"flex: 1 1 auto;\">\n <VTextField\n v-model={ startInput.value }\n onBlur={ () => handleBlur(0) }\n prependInnerIcon={ props.prependIcon }\n placeholder={ props.placeholder }\n label={ props.fromLabel }\n />\n </div>\n ),\n default: () => (\n <VDateRangeCard\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n v-model:inputMode={ inputMode.value }\n />\n ),\n }}\n />\n <div class=\"v-date-range-input__divider\">{ t(props.dividerText) }</div>\n <VMenu\n key=\"bar\"\n offset={[-28, 0]}\n closeOnContentClick={ false }\n v-slots={{\n activator: ({ props: slotProps }) => (\n <div { ...slotProps } style=\"flex: 1 1 auto;\">\n <VTextField\n v-model={ endInput.value }\n onBlur={ () => handleBlur(1) }\n prependInnerIcon={ props.prependIcon }\n placeholder={ props.placeholder }\n label={ props.toLabel }\n />\n </div>\n ),\n default: () => (\n <VDateRangeCard\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n v-model:inputMode={ inputMode.value }\n />\n ),\n }}\n />\n </div>\n </VDefaultsProvider>\n )\n })\n },\n})\n\nexport type VDateRangeInput = InstanceType<typeof VDateRangeInput>\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ .v-date-range-input__dialog-content
2
+ align-items: center
3
+
4
+ .v-date-range-input
5
+ display: flex
6
+ align-items: center
7
+
8
+ .v-date-range-input__divider
9
+ padding-left: 1rem
10
+ padding-right: 1rem
@@ -0,0 +1,59 @@
1
+ // Composables
2
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs";
3
+ import { useDate } from "../date/index.mjs"; // Utilities
4
+ import { propsFactory, wrapInArray } from "../../util/index.mjs"; // Types
5
+ export const makeDateProps = propsFactory({
6
+ modelValue: {
7
+ type: null,
8
+ default: () => []
9
+ },
10
+ displayDate: {
11
+ type: null,
12
+ default: new Date()
13
+ },
14
+ inputMode: {
15
+ type: String,
16
+ default: 'calendar'
17
+ },
18
+ viewMode: {
19
+ type: String,
20
+ default: 'month'
21
+ },
22
+ format: String
23
+ }, 'date');
24
+ export const dateEmits = {
25
+ 'update:modelValue': date => true,
26
+ 'update:displayDate': date => true,
27
+ 'update:focused': focused => true,
28
+ 'update:inputMode': inputMode => true,
29
+ 'update:viewMode': viewMode => true
30
+ };
31
+ export function createDateInput(props, isRange) {
32
+ const adapter = useDate();
33
+ const model = useProxiedModel(props, 'modelValue', [], v => {
34
+ if (v == null) return [];
35
+ const arr = wrapInArray(v).filter(v => !!v);
36
+ return arr.map(adapter.date);
37
+ }, v => {
38
+ const arr = wrapInArray(v);
39
+ const formatted = props.format ? arr.map(d => adapter.format(d, props.format)) : arr;
40
+ if (isRange) return formatted;
41
+ return formatted[0];
42
+ });
43
+ const inputMode = useProxiedModel(props, 'inputMode');
44
+ const viewMode = useProxiedModel(props, 'viewMode');
45
+ const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date());
46
+ function parseKeyboardDate(input, fallback) {
47
+ const date = adapter.date(input);
48
+ return adapter.isValid(date) ? date : fallback;
49
+ }
50
+ return {
51
+ model,
52
+ adapter,
53
+ inputMode,
54
+ viewMode,
55
+ displayDate,
56
+ parseKeyboardDate
57
+ };
58
+ }
59
+ //# sourceMappingURL=composables.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composables.mjs","names":["useProxiedModel","useDate","propsFactory","wrapInArray","makeDateProps","modelValue","type","default","displayDate","Date","inputMode","String","viewMode","format","dateEmits","date","focused","createDateInput","props","isRange","adapter","model","v","arr","filter","map","formatted","d","value","length","parseKeyboardDate","input","fallback","isValid"],"sources":["../../../src/labs/VDateInput/composables.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeDateProps = propsFactory({\n modelValue: {\n type: null as unknown as PropType<any[]>,\n default: () => [],\n },\n displayDate: {\n type: null as unknown as PropType<any>,\n default: new Date(),\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n format: String,\n}, 'date')\n\nexport const dateEmits = {\n 'update:modelValue': (date: any[]) => true,\n 'update:displayDate': (date: any) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:inputMode': (inputMode: 'calendar' | 'keyboard') => true,\n 'update:viewMode': (viewMode: 'month' | 'year') => true,\n}\n\ntype DateInputProps = {\n modelValue?: any | any[]\n 'onUpdate:modelValue': ((value: any | any[]) => void) | undefined\n displayDate?: any\n 'onUpdate:displayDate': ((value: any) => void) | undefined\n inputMode?: 'calendar' | 'keyboard'\n 'onUpdate:inputMode': ((value: 'calendar' | 'keyboard') => void) | undefined\n viewMode?: 'month' | 'year'\n 'onUpdate:viewMode': ((value: 'month' | 'year') => void) | undefined\n format?: string\n}\n\nexport function createDateInput (props: DateInputProps, isRange: boolean) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n const arr = wrapInArray(v).filter(v => !!v)\n return arr.map(adapter.date) as Date[]\n },\n v => {\n const arr = wrapInArray(v)\n const formatted = props.format ? arr.map(d => adapter.format(d, props.format as any)) : arr\n if (isRange) return formatted\n return formatted[0]\n })\n\n const inputMode = useProxiedModel(props, 'inputMode')\n const viewMode = useProxiedModel(props, 'viewMode')\n const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date())\n\n function parseKeyboardDate (input: string, fallback?: any) {\n const date = adapter.date(input)\n\n return adapter.isValid(date) ? date : fallback\n }\n\n return {\n model,\n adapter,\n inputMode,\n viewMode,\n displayDate,\n parseKeyboardDate,\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe;AAAA,SACfC,OAAO,6BAEhB;AAAA,SACSC,YAAY,EAAEC,WAAW,gCAElC;AAGA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAkC;IACxCC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,WAAW,EAAE;IACXF,IAAI,EAAE,IAAgC;IACtCC,OAAO,EAAE,IAAIE,IAAI;EACnB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAEK,MAA2C;IACjDJ,OAAO,EAAE;EACX,CAAC;EACDK,QAAQ,EAAE;IACRN,IAAI,EAAEK,MAAoC;IAC1CJ,OAAO,EAAE;EACX,CAAC;EACDM,MAAM,EAAEF;AACV,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMG,SAAS,GAAG;EACvB,mBAAmB,EAAGC,IAAW,IAAK,IAAI;EAC1C,oBAAoB,EAAGA,IAAS,IAAK,IAAI;EACzC,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;EAC5C,kBAAkB,EAAGN,SAAkC,IAAK,IAAI;EAChE,iBAAiB,EAAGE,QAA0B,IAAK;AACrD,CAAC;AAcD,OAAO,SAASK,eAAeA,CAAEC,KAAqB,EAAEC,OAAgB,EAAE;EACxE,MAAMC,OAAO,GAAGnB,OAAO,EAAE;EACzB,MAAMoB,KAAK,GAAGrB,eAAe,CAC3BkB,KAAK,EACL,YAAY,EACZ,EAAE,EACFI,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IACxB,MAAMC,GAAG,GAAGpB,WAAW,CAACmB,CAAC,CAAC,CAACE,MAAM,CAACF,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC;IAC3C,OAAOC,GAAG,CAACE,GAAG,CAACL,OAAO,CAACL,IAAI,CAAC;EAC9B,CAAC,EACDO,CAAC,IAAI;IACH,MAAMC,GAAG,GAAGpB,WAAW,CAACmB,CAAC,CAAC;IAC1B,MAAMI,SAAS,GAAGR,KAAK,CAACL,MAAM,GAAGU,GAAG,CAACE,GAAG,CAACE,CAAC,IAAIP,OAAO,CAACP,MAAM,CAACc,CAAC,EAAET,KAAK,CAACL,MAAM,CAAQ,CAAC,GAAGU,GAAG;IAC3F,IAAIJ,OAAO,EAAE,OAAOO,SAAS;IAC7B,OAAOA,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,CAAC;EAEJ,MAAMhB,SAAS,GAAGV,eAAe,CAACkB,KAAK,EAAE,WAAW,CAAC;EACrD,MAAMN,QAAQ,GAAGZ,eAAe,CAACkB,KAAK,EAAE,UAAU,CAAC;EACnD,MAAMV,WAAW,GAAGR,eAAe,CAACkB,KAAK,EAAE,aAAa,EAAEG,KAAK,CAACO,KAAK,CAACC,MAAM,GAAGR,KAAK,CAACO,KAAK,CAAC,CAAC,CAAC,GAAGR,OAAO,CAACL,IAAI,EAAE,CAAC;EAE/G,SAASe,iBAAiBA,CAAEC,KAAa,EAAEC,QAAc,EAAE;IACzD,MAAMjB,IAAI,GAAGK,OAAO,CAACL,IAAI,CAACgB,KAAK,CAAC;IAEhC,OAAOX,OAAO,CAACa,OAAO,CAAClB,IAAI,CAAC,GAAGA,IAAI,GAAGiB,QAAQ;EAChD;EAEA,OAAO;IACLX,KAAK;IACLD,OAAO;IACPV,SAAS;IACTE,QAAQ;IACRJ,WAAW;IACXsB;EACF,CAAC;AACH"}