vuetify 3.7.13 → 3.7.14

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 (54) hide show
  1. package/dist/json/attributes.json +3009 -3005
  2. package/dist/json/importMap-labs.json +22 -22
  3. package/dist/json/importMap.json +184 -184
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +5374 -5102
  6. package/dist/vuetify-labs.css +3569 -3564
  7. package/dist/vuetify-labs.d.ts +219 -0
  8. package/dist/vuetify-labs.esm.js +57 -42
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +57 -42
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4265 -4266
  13. package/dist/vuetify.d.ts +65 -65
  14. package/dist/vuetify.esm.js +43 -36
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +43 -36
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +28 -24
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VDatePicker/VDatePicker.mjs +19 -10
  22. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  23. package/lib/components/VFileInput/VFileInput.css +0 -1
  24. package/lib/components/VFileInput/VFileInput.mjs +11 -1
  25. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  26. package/lib/components/VFileInput/VFileInput.sass +0 -1
  27. package/lib/composables/date/adapters/vuetify.mjs +9 -21
  28. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  29. package/lib/composables/density.mjs +1 -1
  30. package/lib/composables/density.mjs.map +1 -1
  31. package/lib/entry-bundler.mjs +1 -1
  32. package/lib/framework.mjs +1 -1
  33. package/lib/index.d.mts +65 -65
  34. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  35. package/lib/labs/VDateInput/index.d.mts +248 -1
  36. package/lib/labs/VNumberInput/VNumberInput.mjs +2 -2
  37. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  38. package/lib/labs/VTimePicker/VTimePickerControls.sass +16 -16
  39. package/lib/labs/VTimePicker/_variables.scss +12 -12
  40. package/lib/labs/VTreeview/VTreeview.mjs +5 -1
  41. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  42. package/lib/labs/VTreeview/VTreeviewChildren.mjs +4 -1
  43. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  44. package/lib/labs/VTreeview/VTreeviewItem.css +15 -9
  45. package/lib/labs/VTreeview/VTreeviewItem.mjs +4 -2
  46. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  47. package/lib/labs/VTreeview/VTreeviewItem.sass +16 -10
  48. package/lib/labs/VTreeview/_variables.scss +2 -5
  49. package/lib/labs/VTreeview/index.d.mts +9 -0
  50. package/lib/labs/components.d.mts +280 -61
  51. package/lib/locale/ja.mjs +19 -19
  52. package/lib/locale/ja.mjs.map +1 -1
  53. package/lib/styles/tools/_functions.sass +1 -1
  54. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.13
2
+ * Vuetify v3.7.14
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -4012,7 +4012,7 @@
4012
4012
 
4013
4013
  const allowedDensities = [null, 'default', 'comfortable', 'compact'];
4014
4014
 
4015
- // typeof allowedDensities[number] evalutes to any
4015
+ // typeof allowedDensities[number] evaluates to any
4016
4016
  // when generating api types for whatever reason.
4017
4017
 
4018
4018
  // Composables
@@ -17717,16 +17717,13 @@
17717
17717
  case 'fullTime':
17718
17718
  options = {
17719
17719
  hour: 'numeric',
17720
- minute: 'numeric',
17721
- second: 'numeric',
17722
- hour12: true
17720
+ minute: 'numeric'
17723
17721
  };
17724
17722
  break;
17725
17723
  case 'fullTime12h':
17726
17724
  options = {
17727
17725
  hour: 'numeric',
17728
17726
  minute: 'numeric',
17729
- second: 'numeric',
17730
17727
  hour12: true
17731
17728
  };
17732
17729
  break;
@@ -17734,40 +17731,35 @@
17734
17731
  options = {
17735
17732
  hour: 'numeric',
17736
17733
  minute: 'numeric',
17737
- second: 'numeric',
17738
17734
  hour12: false
17739
17735
  };
17740
17736
  break;
17741
17737
  case 'fullDateTime':
17742
17738
  options = {
17743
17739
  year: 'numeric',
17744
- month: 'long',
17740
+ month: 'short',
17745
17741
  day: 'numeric',
17746
17742
  hour: 'numeric',
17747
- minute: 'numeric',
17748
- second: 'numeric',
17749
- hour12: true
17743
+ minute: 'numeric'
17750
17744
  };
17751
17745
  break;
17752
17746
  case 'fullDateTime12h':
17753
17747
  options = {
17754
17748
  year: 'numeric',
17755
- month: 'long',
17749
+ month: 'short',
17756
17750
  day: 'numeric',
17757
17751
  hour: 'numeric',
17758
17752
  minute: 'numeric',
17759
- second: 'numeric',
17760
17753
  hour12: true
17761
17754
  };
17762
17755
  break;
17763
17756
  case 'fullDateTime24h':
17764
17757
  options = {
17765
17758
  year: 'numeric',
17766
- month: 'long',
17759
+ month: 'short',
17767
17760
  day: 'numeric',
17768
17761
  hour: 'numeric',
17769
17762
  minute: 'numeric',
17770
- second: 'numeric',
17771
17763
  hour12: false
17772
17764
  };
17773
17765
  break;
@@ -17784,11 +17776,9 @@
17784
17776
  month: '2-digit',
17785
17777
  day: '2-digit',
17786
17778
  hour: 'numeric',
17787
- minute: 'numeric',
17788
- second: 'numeric',
17789
- hour12: false
17779
+ minute: 'numeric'
17790
17780
  };
17791
- break;
17781
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
17792
17782
  case 'keyboardDateTime12h':
17793
17783
  options = {
17794
17784
  year: 'numeric',
@@ -17796,10 +17786,9 @@
17796
17786
  day: '2-digit',
17797
17787
  hour: 'numeric',
17798
17788
  minute: 'numeric',
17799
- second: 'numeric',
17800
17789
  hour12: true
17801
17790
  };
17802
- break;
17791
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
17803
17792
  case 'keyboardDateTime24h':
17804
17793
  options = {
17805
17794
  year: 'numeric',
@@ -17807,10 +17796,9 @@
17807
17796
  day: '2-digit',
17808
17797
  hour: 'numeric',
17809
17798
  minute: 'numeric',
17810
- second: 'numeric',
17811
17799
  hour12: false
17812
17800
  };
17813
- break;
17801
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
17814
17802
  default:
17815
17803
  options = customFormat ?? {
17816
17804
  timeZone: 'UTC',
@@ -22249,9 +22237,26 @@
22249
22237
  const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);
22250
22238
  const viewMode = useProxiedModel(props, 'viewMode');
22251
22239
  // const inputMode = useProxiedModel(props, 'inputMode')
22240
+
22241
+ const minDate = vue.computed(() => {
22242
+ const date = adapter.date(props.min);
22243
+ return props.min && adapter.isValid(date) ? date : null;
22244
+ });
22245
+ const maxDate = vue.computed(() => {
22246
+ const date = adapter.date(props.max);
22247
+ return props.max && adapter.isValid(date) ? date : null;
22248
+ });
22252
22249
  const internal = vue.computed(() => {
22253
- const value = adapter.date(model.value?.[0]);
22254
- return value && adapter.isValid(value) ? value : adapter.date();
22250
+ const today = adapter.date();
22251
+ let value = today;
22252
+ if (model.value?.[0]) {
22253
+ value = adapter.date(model.value[0]);
22254
+ } else if (minDate.value && adapter.isBefore(today, minDate.value)) {
22255
+ value = minDate.value;
22256
+ } else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {
22257
+ value = maxDate.value;
22258
+ }
22259
+ return value && adapter.isValid(value) ? value : today;
22255
22260
  });
22256
22261
  const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22257
22262
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
@@ -22271,14 +22276,6 @@
22271
22276
  });
22272
22277
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22273
22278
  const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22274
- const minDate = vue.computed(() => {
22275
- const date = adapter.date(props.min);
22276
- return props.min && adapter.isValid(date) ? date : null;
22277
- });
22278
- const maxDate = vue.computed(() => {
22279
- const date = adapter.date(props.max);
22280
- return props.max && adapter.isValid(date) ? date : null;
22281
- });
22282
22279
  const disabled = vue.computed(() => {
22283
22280
  if (props.disabled) return true;
22284
22281
  const targets = [];
@@ -23057,6 +23054,14 @@
23057
23054
  callEvent(props['onClick:clear'], e);
23058
23055
  });
23059
23056
  }
23057
+ function onDragover(e) {
23058
+ e.preventDefault();
23059
+ }
23060
+ function onDrop(e) {
23061
+ e.preventDefault();
23062
+ if (!e.dataTransfer) return;
23063
+ model.value = [...(e.dataTransfer.files ?? [])];
23064
+ }
23060
23065
  vue.watch(model, newValue => {
23061
23066
  const hasModelReset = !Array.isArray(newValue) || !newValue.length;
23062
23067
  if (hasModelReset && inputRef.value) {
@@ -23109,7 +23114,9 @@
23109
23114
  "dirty": isDirty.value || props.dirty,
23110
23115
  "disabled": isDisabled.value,
23111
23116
  "focused": isFocused.value,
23112
- "error": isValid.value === false
23117
+ "error": isValid.value === false,
23118
+ "onDragover": onDragover,
23119
+ "onDrop": onDrop
23113
23120
  }), {
23114
23121
  ...slots,
23115
23122
  default: _ref4 => {
@@ -28707,8 +28714,8 @@
28707
28714
  const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(+val, props.min, props.max));
28708
28715
  const _inputText = vue.shallowRef(null);
28709
28716
  vue.watchEffect(() => {
28710
- if (isFocused.value && !controlsDisabled.value) ; else if (model.value == null || controlsDisabled.value) {
28711
- _inputText.value = model.value && !isNaN(model.value) ? String(model.value) : null;
28717
+ if (isFocused.value && !controlsDisabled.value) ; else if (model.value == null) {
28718
+ _inputText.value = null;
28712
28719
  } else if (!isNaN(model.value)) {
28713
28720
  _inputText.value = correctPrecision(model.value);
28714
28721
  }
@@ -30171,7 +30178,7 @@
30171
30178
  return vue.createVNode(vue.Fragment, null, [vue.createVNode(VListItemAction, {
30172
30179
  "start": false
30173
30180
  }, {
30174
- default: () => [props.toggleIcon && vue.createVNode(VBtn, {
30181
+ default: () => [props.toggleIcon ? vue.createVNode(VBtn, {
30175
30182
  "density": "compact",
30176
30183
  "icon": props.toggleIcon,
30177
30184
  "loading": props.loading,
@@ -30185,7 +30192,9 @@
30185
30192
  "width": "2"
30186
30193
  }, null);
30187
30194
  }
30188
- })]
30195
+ }) : vue.createVNode("div", {
30196
+ "class": "v-treeview-item__level"
30197
+ }, null)]
30189
30198
  }), slots.prepend?.(slotProps)]);
30190
30199
  } : undefined
30191
30200
  });
@@ -30217,7 +30226,8 @@
30217
30226
  returnObject: Boolean,
30218
30227
  selectable: Boolean,
30219
30228
  selectedColor: String,
30220
- selectStrategy: [String, Function, Object]
30229
+ selectStrategy: [String, Function, Object],
30230
+ ...makeDensityProps()
30221
30231
  }, 'VTreeviewChildren');
30222
30232
  const VTreeviewChildren = genericComponent()({
30223
30233
  name: 'VTreeviewChildren',
@@ -30257,6 +30267,7 @@
30257
30267
  "disabled": props.disabled,
30258
30268
  "loading": loading,
30259
30269
  "color": props.selectedColor,
30270
+ "density": props.density,
30260
30271
  "indeterminate": slotProps.isIndeterminate,
30261
30272
  "indeterminateIcon": props.indeterminateIcon,
30262
30273
  "falseIcon": props.falseIcon,
@@ -30333,6 +30344,7 @@
30333
30344
  return flat;
30334
30345
  }
30335
30346
  const makeVTreeviewProps = propsFactory({
30347
+ fluid: Boolean,
30336
30348
  openAll: Boolean,
30337
30349
  search: String,
30338
30350
  ...makeFilterProps({
@@ -30446,7 +30458,9 @@
30446
30458
  return vue.createVNode(VList, vue.mergeProps({
30447
30459
  "ref": vListRef
30448
30460
  }, listProps, {
30449
- "class": ['v-treeview', props.class],
30461
+ "class": ['v-treeview', {
30462
+ 'v-treeview--fluid': props.fluid
30463
+ }, props.class],
30450
30464
  "open-strategy": "multiple",
30451
30465
  "style": props.style,
30452
30466
  "opened": opened.value,
@@ -30456,6 +30470,7 @@
30456
30470
  "onUpdate:selected": $event => selected.value = $event
30457
30471
  }), {
30458
30472
  default: () => [vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
30473
+ "density": props.density,
30459
30474
  "returnObject": props.returnObject,
30460
30475
  "items": items.value
30461
30476
  }), slots)]
@@ -30963,7 +30978,7 @@
30963
30978
  goTo
30964
30979
  };
30965
30980
  }
30966
- const version$1 = "3.7.13";
30981
+ const version$1 = "3.7.14";
30967
30982
  createVuetify$1.version = version$1;
30968
30983
 
30969
30984
  // Vue's inject() can only be used in setup
@@ -31216,7 +31231,7 @@
31216
31231
 
31217
31232
  /* eslint-disable local-rules/sort-imports */
31218
31233
 
31219
- const version = "3.7.13";
31234
+ const version = "3.7.14";
31220
31235
 
31221
31236
  /* eslint-disable local-rules/sort-imports */
31222
31237