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
@@ -125,6 +125,7 @@ interface IconAliases {
125
125
  file: IconValue;
126
126
  plus: IconValue;
127
127
  minus: IconValue;
128
+ calendar: IconValue;
128
129
  }
129
130
  interface IconProps {
130
131
  tag: string;
@@ -136,41 +137,47 @@ interface IconSet {
136
137
  component: IconComponent;
137
138
  }
138
139
  type IconOptions = {
139
- defaultSet: string;
140
+ defaultSet?: string;
140
141
  aliases?: Partial<IconAliases>;
141
- sets: Record<string, IconSet>;
142
+ sets?: Record<string, IconSet>;
142
143
  };
143
144
 
144
- interface DateAdapter<Date> {
145
- date(value?: any): Date | null;
146
- format(date: Date, formatString: string): string;
147
- startOfMonth(date: Date): Date;
148
- endOfMonth(date: Date): Date;
149
- startOfYear(date: Date): Date;
150
- endOfYear(date: Date): Date;
151
- isAfter(date: Date, comparing: Date): boolean;
152
- isEqual(date: Date, comparing: Date): boolean;
153
- isSameDay(date: Date, comparing: Date): boolean;
154
- isSameMonth(date: Date, comparing: Date): boolean;
145
+ interface DateAdapter<T> {
146
+ date(value?: any): T | null;
147
+ format(date: T, formatString: string): string;
148
+ toJsDate(value: T): Date;
149
+ startOfMonth(date: T): T;
150
+ endOfMonth(date: T): T;
151
+ startOfYear(date: T): T;
152
+ endOfYear(date: T): T;
153
+ isBefore(date: T, comparing: T): boolean;
154
+ isAfter(date: T, comparing: T): boolean;
155
+ isEqual(date: T, comparing: T): boolean;
156
+ isSameDay(date: T, comparing: T): boolean;
157
+ isSameMonth(date: T, comparing: T): boolean;
155
158
  isValid(date: any): boolean;
156
- isWithinRange(date: Date, range: [Date, Date]): boolean;
157
- addDays(date: Date, amount: number): Date;
158
- addMonths(date: Date, amount: number): Date;
159
- getYear(date: Date): number;
160
- setYear(date: Date, year: number): Date;
161
- getDiff(date: Date, comparing: Date | string, unit?: string): number;
162
- getWeek(date: Date): number;
163
- getWeekArray(date: Date): (Date | null)[][];
159
+ isWithinRange(date: T, range: [T, T]): boolean;
160
+ addDays(date: T, amount: number): T;
161
+ addMonths(date: T, amount: number): T;
162
+ getYear(date: T): number;
163
+ setYear(date: T, year: number): T;
164
+ getDiff(date: T, comparing: T | string, unit?: string): number;
165
+ getWeekArray(date: T): T[][];
164
166
  getWeekdays(): string[];
165
- getMonth(date: Date): number;
167
+ getMonth(date: T): number;
166
168
  }
167
169
 
168
- interface DateInstance extends DateAdapter<Date> {
169
- locale: string;
170
- }
171
- type DateOptions = {
172
- adapter: (new (locale: string) => DateInstance) | DateInstance;
170
+ interface DateInstance<T> extends DateAdapter<T> {
171
+ locale?: any;
172
+ }
173
+ type InternalDateOptions<T = any> = {
174
+ adapter: (new (options: {
175
+ locale: any;
176
+ }) => DateInstance<T>) | DateInstance<T>;
177
+ formats?: Record<string, string>;
178
+ locale: Record<string, any>;
173
179
  };
180
+ type DateOptions<T = any> = Partial<InternalDateOptions<T>>;
174
181
 
175
182
  interface VuetifyOptions {
176
183
  aliases?: Record<string, any>;
@@ -125,6 +125,7 @@ interface IconAliases {
125
125
  file: IconValue;
126
126
  plus: IconValue;
127
127
  minus: IconValue;
128
+ calendar: IconValue;
128
129
  }
129
130
  interface IconProps {
130
131
  tag: string;
@@ -136,41 +137,47 @@ interface IconSet {
136
137
  component: IconComponent;
137
138
  }
138
139
  type IconOptions = {
139
- defaultSet: string;
140
+ defaultSet?: string;
140
141
  aliases?: Partial<IconAliases>;
141
- sets: Record<string, IconSet>;
142
+ sets?: Record<string, IconSet>;
142
143
  };
143
144
 
144
- interface DateAdapter<Date> {
145
- date(value?: any): Date | null;
146
- format(date: Date, formatString: string): string;
147
- startOfMonth(date: Date): Date;
148
- endOfMonth(date: Date): Date;
149
- startOfYear(date: Date): Date;
150
- endOfYear(date: Date): Date;
151
- isAfter(date: Date, comparing: Date): boolean;
152
- isEqual(date: Date, comparing: Date): boolean;
153
- isSameDay(date: Date, comparing: Date): boolean;
154
- isSameMonth(date: Date, comparing: Date): boolean;
145
+ interface DateAdapter<T> {
146
+ date(value?: any): T | null;
147
+ format(date: T, formatString: string): string;
148
+ toJsDate(value: T): Date;
149
+ startOfMonth(date: T): T;
150
+ endOfMonth(date: T): T;
151
+ startOfYear(date: T): T;
152
+ endOfYear(date: T): T;
153
+ isBefore(date: T, comparing: T): boolean;
154
+ isAfter(date: T, comparing: T): boolean;
155
+ isEqual(date: T, comparing: T): boolean;
156
+ isSameDay(date: T, comparing: T): boolean;
157
+ isSameMonth(date: T, comparing: T): boolean;
155
158
  isValid(date: any): boolean;
156
- isWithinRange(date: Date, range: [Date, Date]): boolean;
157
- addDays(date: Date, amount: number): Date;
158
- addMonths(date: Date, amount: number): Date;
159
- getYear(date: Date): number;
160
- setYear(date: Date, year: number): Date;
161
- getDiff(date: Date, comparing: Date | string, unit?: string): number;
162
- getWeek(date: Date): number;
163
- getWeekArray(date: Date): (Date | null)[][];
159
+ isWithinRange(date: T, range: [T, T]): boolean;
160
+ addDays(date: T, amount: number): T;
161
+ addMonths(date: T, amount: number): T;
162
+ getYear(date: T): number;
163
+ setYear(date: T, year: number): T;
164
+ getDiff(date: T, comparing: T | string, unit?: string): number;
165
+ getWeekArray(date: T): T[][];
164
166
  getWeekdays(): string[];
165
- getMonth(date: Date): number;
167
+ getMonth(date: T): number;
166
168
  }
167
169
 
168
- interface DateInstance extends DateAdapter<Date> {
169
- locale: string;
170
- }
171
- type DateOptions = {
172
- adapter: (new (locale: string) => DateInstance) | DateInstance;
170
+ interface DateInstance<T> extends DateAdapter<T> {
171
+ locale?: any;
172
+ }
173
+ type InternalDateOptions<T = any> = {
174
+ adapter: (new (options: {
175
+ locale: any;
176
+ }) => DateInstance<T>) | DateInstance<T>;
177
+ formats?: Record<string, string>;
178
+ locale: Record<string, any>;
173
179
  };
180
+ type DateOptions<T = any> = Partial<InternalDateOptions<T>>;
174
181
 
175
182
  interface VuetifyOptions {
176
183
  aliases?: Record<string, any>;
@@ -125,6 +125,7 @@ interface IconAliases {
125
125
  file: IconValue;
126
126
  plus: IconValue;
127
127
  minus: IconValue;
128
+ calendar: IconValue;
128
129
  }
129
130
  interface IconProps {
130
131
  tag: string;
@@ -136,41 +137,47 @@ interface IconSet {
136
137
  component: IconComponent;
137
138
  }
138
139
  type IconOptions = {
139
- defaultSet: string;
140
+ defaultSet?: string;
140
141
  aliases?: Partial<IconAliases>;
141
- sets: Record<string, IconSet>;
142
+ sets?: Record<string, IconSet>;
142
143
  };
143
144
 
144
- interface DateAdapter<Date> {
145
- date(value?: any): Date | null;
146
- format(date: Date, formatString: string): string;
147
- startOfMonth(date: Date): Date;
148
- endOfMonth(date: Date): Date;
149
- startOfYear(date: Date): Date;
150
- endOfYear(date: Date): Date;
151
- isAfter(date: Date, comparing: Date): boolean;
152
- isEqual(date: Date, comparing: Date): boolean;
153
- isSameDay(date: Date, comparing: Date): boolean;
154
- isSameMonth(date: Date, comparing: Date): boolean;
145
+ interface DateAdapter<T> {
146
+ date(value?: any): T | null;
147
+ format(date: T, formatString: string): string;
148
+ toJsDate(value: T): Date;
149
+ startOfMonth(date: T): T;
150
+ endOfMonth(date: T): T;
151
+ startOfYear(date: T): T;
152
+ endOfYear(date: T): T;
153
+ isBefore(date: T, comparing: T): boolean;
154
+ isAfter(date: T, comparing: T): boolean;
155
+ isEqual(date: T, comparing: T): boolean;
156
+ isSameDay(date: T, comparing: T): boolean;
157
+ isSameMonth(date: T, comparing: T): boolean;
155
158
  isValid(date: any): boolean;
156
- isWithinRange(date: Date, range: [Date, Date]): boolean;
157
- addDays(date: Date, amount: number): Date;
158
- addMonths(date: Date, amount: number): Date;
159
- getYear(date: Date): number;
160
- setYear(date: Date, year: number): Date;
161
- getDiff(date: Date, comparing: Date | string, unit?: string): number;
162
- getWeek(date: Date): number;
163
- getWeekArray(date: Date): (Date | null)[][];
159
+ isWithinRange(date: T, range: [T, T]): boolean;
160
+ addDays(date: T, amount: number): T;
161
+ addMonths(date: T, amount: number): T;
162
+ getYear(date: T): number;
163
+ setYear(date: T, year: number): T;
164
+ getDiff(date: T, comparing: T | string, unit?: string): number;
165
+ getWeekArray(date: T): T[][];
164
166
  getWeekdays(): string[];
165
- getMonth(date: Date): number;
167
+ getMonth(date: T): number;
166
168
  }
167
169
 
168
- interface DateInstance extends DateAdapter<Date> {
169
- locale: string;
170
- }
171
- type DateOptions = {
172
- adapter: (new (locale: string) => DateInstance) | DateInstance;
170
+ interface DateInstance<T> extends DateAdapter<T> {
171
+ locale?: any;
172
+ }
173
+ type InternalDateOptions<T = any> = {
174
+ adapter: (new (options: {
175
+ locale: any;
176
+ }) => DateInstance<T>) | DateInstance<T>;
177
+ formats?: Record<string, string>;
178
+ locale: Record<string, any>;
173
179
  };
180
+ type DateOptions<T = any> = Partial<InternalDateOptions<T>>;
174
181
 
175
182
  interface VuetifyOptions {
176
183
  aliases?: Record<string, any>;
@@ -125,6 +125,7 @@ interface IconAliases {
125
125
  file: IconValue;
126
126
  plus: IconValue;
127
127
  minus: IconValue;
128
+ calendar: IconValue;
128
129
  }
129
130
  interface IconProps {
130
131
  tag: string;
@@ -136,41 +137,47 @@ interface IconSet {
136
137
  component: IconComponent;
137
138
  }
138
139
  type IconOptions = {
139
- defaultSet: string;
140
+ defaultSet?: string;
140
141
  aliases?: Partial<IconAliases>;
141
- sets: Record<string, IconSet>;
142
+ sets?: Record<string, IconSet>;
142
143
  };
143
144
 
144
- interface DateAdapter<Date> {
145
- date(value?: any): Date | null;
146
- format(date: Date, formatString: string): string;
147
- startOfMonth(date: Date): Date;
148
- endOfMonth(date: Date): Date;
149
- startOfYear(date: Date): Date;
150
- endOfYear(date: Date): Date;
151
- isAfter(date: Date, comparing: Date): boolean;
152
- isEqual(date: Date, comparing: Date): boolean;
153
- isSameDay(date: Date, comparing: Date): boolean;
154
- isSameMonth(date: Date, comparing: Date): boolean;
145
+ interface DateAdapter<T> {
146
+ date(value?: any): T | null;
147
+ format(date: T, formatString: string): string;
148
+ toJsDate(value: T): Date;
149
+ startOfMonth(date: T): T;
150
+ endOfMonth(date: T): T;
151
+ startOfYear(date: T): T;
152
+ endOfYear(date: T): T;
153
+ isBefore(date: T, comparing: T): boolean;
154
+ isAfter(date: T, comparing: T): boolean;
155
+ isEqual(date: T, comparing: T): boolean;
156
+ isSameDay(date: T, comparing: T): boolean;
157
+ isSameMonth(date: T, comparing: T): boolean;
155
158
  isValid(date: any): boolean;
156
- isWithinRange(date: Date, range: [Date, Date]): boolean;
157
- addDays(date: Date, amount: number): Date;
158
- addMonths(date: Date, amount: number): Date;
159
- getYear(date: Date): number;
160
- setYear(date: Date, year: number): Date;
161
- getDiff(date: Date, comparing: Date | string, unit?: string): number;
162
- getWeek(date: Date): number;
163
- getWeekArray(date: Date): (Date | null)[][];
159
+ isWithinRange(date: T, range: [T, T]): boolean;
160
+ addDays(date: T, amount: number): T;
161
+ addMonths(date: T, amount: number): T;
162
+ getYear(date: T): number;
163
+ setYear(date: T, year: number): T;
164
+ getDiff(date: T, comparing: T | string, unit?: string): number;
165
+ getWeekArray(date: T): T[][];
164
166
  getWeekdays(): string[];
165
- getMonth(date: Date): number;
167
+ getMonth(date: T): number;
166
168
  }
167
169
 
168
- interface DateInstance extends DateAdapter<Date> {
169
- locale: string;
170
- }
171
- type DateOptions = {
172
- adapter: (new (locale: string) => DateInstance) | DateInstance;
170
+ interface DateInstance<T> extends DateAdapter<T> {
171
+ locale?: any;
172
+ }
173
+ type InternalDateOptions<T = any> = {
174
+ adapter: (new (options: {
175
+ locale: any;
176
+ }) => DateInstance<T>) | DateInstance<T>;
177
+ formats?: Record<string, string>;
178
+ locale: Record<string, any>;
173
179
  };
180
+ type DateOptions<T = any> = Partial<InternalDateOptions<T>>;
174
181
 
175
182
  interface VuetifyOptions {
176
183
  aliases?: Record<string, any>;
@@ -7,9 +7,8 @@ import { makeVToolbarProps, VToolbar } from "../VToolbar/VToolbar.mjs"; // Compo
7
7
  import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs";
8
8
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
9
9
  import { makeScrollProps, useScroll } from "../../composables/scroll.mjs";
10
- import { useSsrBoot } from "../../composables/ssrBoot.mjs";
11
- import { useToggleScope } from "../../composables/toggleScope.mjs"; // Utilities
12
- import { computed, ref, shallowRef, toRef, watch } from 'vue';
10
+ import { useSsrBoot } from "../../composables/ssrBoot.mjs"; // Utilities
11
+ import { computed, ref, shallowRef, toRef, watchEffect } from 'vue';
13
12
  import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
14
13
  export const makeVAppBarProps = propsFactory({
15
14
  scrollBehavior: String,
@@ -80,7 +79,7 @@ export const VAppBar = genericComponent()({
80
79
  const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
81
80
  return height + extensionHeight;
82
81
  });
83
- function setActive() {
82
+ watchEffect(() => {
84
83
  if (scrollBehavior.value.hide) {
85
84
  if (scrollBehavior.value.inverted) {
86
85
  isActive.value = currentScroll.value > scrollThreshold.value;
@@ -90,12 +89,6 @@ export const VAppBar = genericComponent()({
90
89
  } else {
91
90
  isActive.value = true;
92
91
  }
93
- }
94
- useToggleScope(() => !!props.scrollBehavior, () => {
95
- watch(currentScroll, setActive, {
96
- immediate: true
97
- });
98
- watch(scrollBehavior, setActive);
99
92
  });
100
93
  const {
101
94
  ssrBootStyles
@@ -1 +1 @@
1
- {"version":3,"file":"VAppBar.mjs","names":["makeVToolbarProps","VToolbar","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeScrollProps","useScroll","useSsrBoot","useToggleScope","computed","ref","shallowRef","toRef","watch","genericComponent","propsFactory","useRender","makeVAppBarProps","scrollBehavior","String","modelValue","type","Boolean","default","location","validator","value","includes","height","Number","VAppBar","name","props","emits","setup","_ref","slots","vToolbarRef","isActive","behavior","Set","split","hide","has","inverted","collapse","elevate","fadeImage","canScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","isCollapsed","isFlat","flat","opacity","undefined","contentHeight","extensionHeight","setActive","immediate","ssrBootStyles","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","toolbarProps","filterProps","_createVNode","_mergeProps","class","style"],"sources":["../../../src/components/VAppBar/VAppBar.tsx"],"sourcesContent":["// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n}, 'VAppBar')\n\nexport const VAppBar = genericComponent<VToolbarSlots>()({\n name: 'VAppBar',\n\n props: makeVAppBarProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref<VToolbar>()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n // fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n // behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n function setActive () {\n if (scrollBehavior.value.hide) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n }\n\n useToggleScope(() => !!props.scrollBehavior, () => {\n watch(currentScroll, setActive, { immediate: true })\n watch(scrollBehavior, setActive)\n })\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = VToolbar.filterProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n props.class,\n ]}\n style={[\n {\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value,\n },\n props.style,\n ]}\n { ...toolbarProps }\n collapse={ isCollapsed.value }\n flat={ isFlat.value }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VAppBar.mjs","names":["makeVToolbarProps","VToolbar","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeScrollProps","useScroll","useSsrBoot","computed","ref","shallowRef","toRef","watchEffect","genericComponent","propsFactory","useRender","makeVAppBarProps","scrollBehavior","String","modelValue","type","Boolean","default","location","validator","value","includes","height","Number","VAppBar","name","props","emits","setup","_ref","slots","vToolbarRef","isActive","behavior","Set","split","hide","has","inverted","collapse","elevate","fadeImage","canScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","isCollapsed","isFlat","flat","opacity","undefined","contentHeight","extensionHeight","ssrBootStyles","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","toolbarProps","filterProps","_createVNode","_mergeProps","class","style"],"sources":["../../../src/components/VAppBar/VAppBar.tsx"],"sourcesContent":["// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n}, 'VAppBar')\n\nexport const VAppBar = genericComponent<VToolbarSlots>()({\n name: 'VAppBar',\n\n props: makeVAppBarProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref<VToolbar>()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n // fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n // behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n\n watchEffect(() => {\n if (scrollBehavior.value.hide) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n })\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = VToolbar.filterProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n props.class,\n ]}\n style={[\n {\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value,\n },\n props.style,\n ]}\n { ...toolbarProps }\n collapse={ isCollapsed.value }\n flat={ isFlat.value }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n"],"mappings":"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"}
@@ -585,7 +585,9 @@ declare const VAppBarNavIcon: {
585
585
  density?: Density | undefined;
586
586
  variant?: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">> | undefined;
587
587
  stacked?: boolean | undefined;
588
- ripple?: boolean | undefined;
588
+ ripple?: boolean | {
589
+ class: string;
590
+ } | undefined;
589
591
  key?: string | number | symbol | undefined;
590
592
  location?: Anchor | undefined;
591
593
  height?: string | number | undefined;
@@ -704,7 +706,9 @@ declare const VAppBarNavIcon: {
704
706
  density: Density;
705
707
  variant: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
706
708
  stacked: boolean;
707
- ripple: boolean;
709
+ ripple: boolean | {
710
+ class: string;
711
+ } | undefined;
708
712
  } & {
709
713
  location?: Anchor | undefined;
710
714
  height?: string | number | undefined;
@@ -763,7 +767,9 @@ declare const VAppBarNavIcon: {
763
767
  density: Density;
764
768
  variant: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
765
769
  stacked: boolean;
766
- ripple: boolean;
770
+ ripple: boolean | {
771
+ class: string;
772
+ } | undefined;
767
773
  }, {}, string, vue.SlotsType<Partial<{
768
774
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
769
775
  [key: string]: any;
@@ -811,7 +817,9 @@ declare const VAppBarNavIcon: {
811
817
  density: Density;
812
818
  variant: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
813
819
  stacked: boolean;
814
- ripple: boolean;
820
+ ripple: boolean | {
821
+ class: string;
822
+ } | undefined;
815
823
  } & {
816
824
  location?: Anchor | undefined;
817
825
  height?: string | number | undefined;
@@ -872,7 +880,9 @@ declare const VAppBarNavIcon: {
872
880
  density: Density;
873
881
  variant: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
874
882
  stacked: boolean;
875
- ripple: boolean;
883
+ ripple: boolean | {
884
+ class: string;
885
+ } | undefined;
876
886
  } & {
877
887
  location?: Anchor | undefined;
878
888
  height?: string | number | undefined;
@@ -931,7 +941,9 @@ declare const VAppBarNavIcon: {
931
941
  density: Density;
932
942
  variant: NonNullable<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
933
943
  stacked: boolean;
934
- ripple: boolean;
944
+ ripple: boolean | {
945
+ class: string;
946
+ } | undefined;
935
947
  }, {}, string, vue.SlotsType<Partial<{
936
948
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
937
949
  [key: string]: any;
@@ -1026,7 +1038,9 @@ declare const VAppBarNavIcon: {
1026
1038
  block: BooleanConstructor;
1027
1039
  stacked: BooleanConstructor;
1028
1040
  ripple: {
1029
- type: BooleanConstructor;
1041
+ type: vue.PropType<boolean | {
1042
+ class: string;
1043
+ } | undefined>;
1030
1044
  default: boolean;
1031
1045
  };
1032
1046
  text: StringConstructor;
@@ -1111,7 +1125,9 @@ declare const VAppBarNavIcon: {
1111
1125
  block: BooleanConstructor;
1112
1126
  stacked: BooleanConstructor;
1113
1127
  ripple: {
1114
- type: BooleanConstructor;
1128
+ type: vue.PropType<boolean | {
1129
+ class: string;
1130
+ } | undefined>;
1115
1131
  default: boolean;
1116
1132
  };
1117
1133
  text: StringConstructor;
@@ -1,23 +1,8 @@
1
- .v-input--density-default {
2
- --autocomplete-chips-margin-bottom: 0px;
3
- }
4
-
5
- .v-input--density-comfortable {
6
- --autocomplete-chips-margin-bottom: 2px;
7
- }
8
-
9
- .v-input--density-compact {
10
- --autocomplete-chips-margin-bottom: 4px;
11
- }
12
-
13
1
  .v-autocomplete .v-field .v-text-field__prefix,
14
2
  .v-autocomplete .v-field .v-text-field__suffix,
15
3
  .v-autocomplete .v-field .v-field__input, .v-autocomplete .v-field.v-field {
16
4
  cursor: text;
17
5
  }
18
- .v-autocomplete .v-field--variant-outlined {
19
- --autocomplete-chips-margin-bottom: 2px;
20
- }
21
6
  .v-autocomplete .v-field .v-field__input > input {
22
7
  align-self: flex-start;
23
8
  flex: 1 1;
@@ -48,14 +33,11 @@
48
33
  line-height: inherit;
49
34
  max-width: 100%;
50
35
  }
51
- .v-autocomplete--chips .v-field__input, .v-autocomplete--selection-slot .v-field__input {
52
- min-height: calc(var(--v-field-input-min-height) + var(--autocomplete-chips-margin-bottom) + 2px);
53
- }
54
- .v-autocomplete--chips .v-autocomplete__selection, .v-autocomplete--selection-slot .v-autocomplete__selection {
55
- margin-top: 2px;
56
- margin-bottom: var(--autocomplete-chips-margin-bottom);
36
+ .v-autocomplete input, .v-autocomplete__selection {
37
+ margin-top: var(--v-input-chips-margin-top);
38
+ margin-bottom: var(--v-input-chips-margin-bottom);
57
39
  }
58
- .v-autocomplete--chips .v-autocomplete__selection:first-child, .v-autocomplete--selection-slot .v-autocomplete__selection:first-child {
40
+ .v-autocomplete input:first-child, .v-autocomplete__selection:first-child {
59
41
  margin-inline-start: 0;
60
42
  }
61
43
  .v-autocomplete--selecting-index .v-autocomplete__selection {
@@ -89,7 +89,7 @@ export const VAutocomplete = genericComponent()({
89
89
  textColorStyles
90
90
  } = useTextColor(color);
91
91
  const search = useProxiedModel(props, 'search', '');
92
- const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
92
+ const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
93
93
  const transformed = transformOut(v);
94
94
  return props.multiple ? transformed : transformed[0] ?? null;
95
95
  });
@@ -115,6 +115,7 @@ export const VAutocomplete = genericComponent()({
115
115
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
116
116
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
117
117
  });
118
+ const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
118
119
  const listRef = ref();
119
120
  function onClear(e) {
120
121
  if (props.openOnClear) {
@@ -123,10 +124,11 @@ export const VAutocomplete = genericComponent()({
123
124
  search.value = '';
124
125
  }
125
126
  function onMousedownControl() {
126
- if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
127
+ if (menuDisabled.value) return;
127
128
  menu.value = true;
128
129
  }
129
130
  function onMousedownMenuIcon(e) {
131
+ if (menuDisabled.value) return;
130
132
  if (isFocused.value) {
131
133
  e.preventDefault();
132
134
  e.stopPropagation();
@@ -152,13 +154,8 @@ export const VAutocomplete = genericComponent()({
152
154
  }
153
155
  isPristine.value = true;
154
156
  }
155
- if (e.key === 'ArrowDown') {
157
+ if (e.key === 'ArrowDown' && highlightFirst.value) {
156
158
  listRef.value?.focus('next');
157
- if (highlightFirst.value) {
158
- listRef.value?.focus('next');
159
- }
160
- } else if (e.key === 'ArrowUp') {
161
- listRef.value?.focus('prev');
162
159
  }
163
160
  if (!props.multiple) return;
164
161
  if (['Backspace', 'Delete'].includes(e.key)) {
@@ -193,6 +190,11 @@ export const VAutocomplete = genericComponent()({
193
190
  }
194
191
  }
195
192
  }
193
+ function onListKeydown(e) {
194
+ if (e.key === 'Tab') {
195
+ vTextFieldRef.value?.focus();
196
+ }
197
+ }
196
198
  function onInput(e) {
197
199
  search.value = e.target.value;
198
200
  }
@@ -262,7 +264,7 @@ export const VAutocomplete = genericComponent()({
262
264
  });
263
265
  useRender(() => {
264
266
  const hasChips = !!(props.chips || slots.chip);
265
- const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
267
+ const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
266
268
  const isDirty = model.value.length > 0;
267
269
  const [textFieldProps] = VTextField.filterProps(props);
268
270
  return _createVNode(VTextField, _mergeProps({
@@ -295,6 +297,7 @@ export const VAutocomplete = genericComponent()({
295
297
  "onUpdate:modelValue": $event => menu.value = $event,
296
298
  "activator": "parent",
297
299
  "contentClass": "v-autocomplete__content",
300
+ "disabled": menuDisabled.value,
298
301
  "eager": props.eager,
299
302
  "maxHeight": 310,
300
303
  "openOnClick": false,
@@ -307,12 +310,14 @@ export const VAutocomplete = genericComponent()({
307
310
  "selected": selected.value,
308
311
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
309
312
  "onMousedown": e => e.preventDefault(),
313
+ "onKeydown": onListKeydown,
310
314
  "onFocusin": onFocusin,
311
- "onFocusout": onFocusout
315
+ "onFocusout": onFocusout,
316
+ "tabindex": "-1"
312
317
  }, {
313
- default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
318
+ default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
314
319
  "title": t(props.noDataText)
315
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
320
+ }, null)), displayItems.value.map((item, index) => {
316
321
  const itemProps = mergeProps(item.props, {
317
322
  key: index,
318
323
  active: highlightFirst.value && index === 0 ? true : undefined,