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
@@ -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;
@@ -141,36 +142,42 @@ type IconOptions = {
141
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;
@@ -141,36 +142,42 @@ type IconOptions = {
141
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;
@@ -141,36 +142,42 @@ type IconOptions = {
141
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;
@@ -141,36 +142,42 @@ type IconOptions = {
141
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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"}
@@ -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
  });