vuetify 3.11.0 → 3.11.2

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 (56) hide show
  1. package/dist/json/attributes.json +2912 -2904
  2. package/dist/json/importMap-labs.json +30 -30
  3. package/dist/json/importMap.json +198 -198
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +4995 -4976
  6. package/dist/vuetify-labs.cjs +41 -31
  7. package/dist/vuetify-labs.css +5310 -5314
  8. package/dist/vuetify-labs.d.ts +85 -72
  9. package/dist/vuetify-labs.esm.js +41 -31
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +41 -31
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +37 -27
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4184 -4185
  16. package/dist/vuetify.d.ts +85 -72
  17. package/dist/vuetify.esm.js +37 -27
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +37 -27
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +25 -21
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTable.js +1 -1
  25. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableHeaders.d.ts +10 -0
  27. package/lib/components/VDataTable/VDataTableHeaders.js +7 -7
  28. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  29. package/lib/components/VDatePicker/VDatePicker.js +8 -3
  30. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  31. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -9
  32. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  33. package/lib/components/VHotkey/_variables.scss +1 -1
  34. package/lib/components/VNumberInput/VNumberInput.js +1 -1
  35. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  36. package/lib/components/VSlideGroup/VSlideGroup.js +4 -1
  37. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  38. package/lib/components/VTabs/VTab.d.ts +13 -0
  39. package/lib/components/VTabs/VTab.js +3 -2
  40. package/lib/components/VTabs/VTab.js.map +1 -1
  41. package/lib/components/VTabs/VTabs.css +6 -7
  42. package/lib/components/VTabs/VTabs.js +1 -0
  43. package/lib/components/VTabs/VTabs.js.map +1 -1
  44. package/lib/components/VTabs/VTabs.sass +6 -7
  45. package/lib/components/VTextField/VTextField.js +8 -10
  46. package/lib/components/VTextField/VTextField.js.map +1 -1
  47. package/lib/composables/autofocus.js +3 -1
  48. package/lib/composables/autofocus.js.map +1 -1
  49. package/lib/entry-bundler.js +1 -1
  50. package/lib/framework.d.ts +72 -72
  51. package/lib/framework.js +1 -1
  52. package/lib/labs/VMaskInput/VMaskInput.js +4 -4
  53. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  54. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +0 -3
  55. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +0 -3
  56. package/package.json +26 -26
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.11.0
2
+ * Vuetify v3.11.2
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -8464,7 +8464,7 @@
8464
8464
  },
8465
8465
  showArrows: {
8466
8466
  type: [Boolean, String],
8467
- validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
8467
+ validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile', 'never'].includes(v)
8468
8468
  },
8469
8469
  ...makeComponentProps(),
8470
8470
  ...makeDisplayProps({
@@ -8698,6 +8698,9 @@
8698
8698
  const hasOverflowOrScroll = vue.computed(() => isOverflowing.value || Math.abs(scrollOffset.value) > 0);
8699
8699
  const hasAffixes = vue.computed(() => {
8700
8700
  switch (props.showArrows) {
8701
+ case 'never':
8702
+ return false;
8703
+
8701
8704
  // Always show arrows on desktop & mobile
8702
8705
  case 'always':
8703
8706
  return true;
@@ -13164,7 +13167,9 @@
13164
13167
  function useAutofocus(props) {
13165
13168
  function onIntersect(isIntersecting, entries) {
13166
13169
  if (!props.autofocus || !isIntersecting) return;
13167
- entries[0].target?.focus?.();
13170
+ const el = entries[0].target;
13171
+ const target = el.matches('input,textarea') ? el : el.querySelector('input,textarea');
13172
+ target?.focus();
13168
13173
  }
13169
13174
  return {
13170
13175
  onIntersect
@@ -13342,7 +13347,7 @@
13342
13347
  },
13343
13348
  controlRef
13344
13349
  } = _ref3;
13345
- const inputNode = vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
13350
+ const inputNode = vue.createElementVNode("input", vue.mergeProps({
13346
13351
  "ref": val => inputRef.value = controlRef.value = val,
13347
13352
  "value": model.value,
13348
13353
  "onInput": onInput,
@@ -13357,21 +13362,19 @@
13357
13362
  "type": props.type,
13358
13363
  "onFocus": focus,
13359
13364
  "onBlur": blur
13360
- }, slotProps, inputAttrs), null), [[Intersect, {
13361
- handler: onIntersect
13362
- }, null, {
13363
- once: true
13364
- }]]);
13365
+ }, slotProps, inputAttrs), null);
13365
13366
  return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
13366
13367
  "class": "v-text-field__prefix"
13367
13368
  }, [vue.createElementVNode("span", {
13368
13369
  "class": "v-text-field__prefix__text"
13369
- }, [props.prefix])]), slots.default ? vue.createElementVNode("div", {
13370
+ }, [props.prefix])]), vue.withDirectives(slots.default ? vue.createElementVNode("div", {
13370
13371
  "class": vue.normalizeClass(fieldClass),
13371
13372
  "data-no-activator": ""
13372
13373
  }, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
13373
13374
  class: fieldClass
13374
- }), props.suffix && vue.createElementVNode("span", {
13375
+ }), [[Intersect, onIntersect, null, {
13376
+ once: true
13377
+ }]]), props.suffix && vue.createElementVNode("span", {
13375
13378
  "class": "v-text-field__suffix"
13376
13379
  }, [vue.createElementVNode("span", {
13377
13380
  "class": "v-text-field__suffix__text"
@@ -25032,6 +25035,7 @@
25032
25035
  disableSort: Boolean,
25033
25036
  fixedHeader: Boolean,
25034
25037
  multiSort: Boolean,
25038
+ initialSortOrder: String,
25035
25039
  sortAscIcon: {
25036
25040
  type: IconValue,
25037
25041
  default: '$sortAsc'
@@ -25094,8 +25098,7 @@
25094
25098
  }
25095
25099
  function getSortIcon(column) {
25096
25100
  const item = sortBy.value.find(item => item.key === column.key);
25097
- if (!item) return props.sortAscIcon;
25098
- return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
25101
+ return !item && props.initialSortOrder === 'asc' || item?.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
25099
25102
  }
25100
25103
  const {
25101
25104
  backgroundColorClasses,
@@ -25195,6 +25198,7 @@
25195
25198
  const displayItems = vue.computed(() => {
25196
25199
  return columns.value.filter(column => column?.sortable && !props.disableSort);
25197
25200
  });
25201
+ const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
25198
25202
  return vue.createVNode(VDataTableColumn, vue.mergeProps({
25199
25203
  "tag": "th",
25200
25204
  "class": [...headerCellClasses.value],
@@ -25212,16 +25216,15 @@
25212
25216
  "label": t('$vuetify.dataTable.sortBy'),
25213
25217
  "multiple": props.multiSort,
25214
25218
  "variant": "underlined",
25215
- "onClick:clear": () => sortBy.value = [],
25216
- "onClick:append": () => selectAll(!allSelected.value)
25219
+ "onClick:clear": () => sortBy.value = []
25217
25220
  }, {
25218
- append: () => vue.createVNode(VCheckboxBtn, {
25221
+ append: showSelectColumn ? () => vue.createVNode(VCheckboxBtn, {
25219
25222
  "color": props.color,
25220
25223
  "density": "compact",
25221
25224
  "modelValue": allSelected.value,
25222
25225
  "indeterminate": someSelected.value && !allSelected.value,
25223
- "onUpdate:modelValue": selectAll
25224
- }, null),
25226
+ "onUpdate:modelValue": () => selectAll(!allSelected.value)
25227
+ }, null) : undefined,
25225
25228
  chip: props => vue.createVNode(VChip, {
25226
25229
  "onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
25227
25230
  "onMousedown": e => {
@@ -25777,7 +25780,7 @@
25777
25780
  ...makeDataTableItemsProps(),
25778
25781
  ...makeDataTableSelectProps(),
25779
25782
  ...makeDataTableSortProps(),
25780
- ...omit(makeVDataTableHeadersProps(), ['multiSort']),
25783
+ ...omit(makeVDataTableHeadersProps(), ['multiSort', 'initialSortOrder']),
25781
25784
  ...makeVTableProps()
25782
25785
  }, 'DataTable');
25783
25786
  const makeVDataTableProps = propsFactory({
@@ -27669,7 +27672,10 @@
27669
27672
  const formattedDate = model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), props.headerDateFormat) : t(props.header);
27670
27673
  return props.landscape && formattedDate.split(' ').length === 3 ? formattedDate.replace(' ', '\n') : formattedDate;
27671
27674
  });
27672
- const date = vue.toRef(() => adapter.parseISO(`${year.value}-${month.value + 1}-01`));
27675
+ const date = vue.toRef(() => {
27676
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27677
+ return adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
27678
+ });
27673
27679
  const monthYearText = vue.toRef(() => adapter.format(date.value, 'monthAndYear'));
27674
27680
  const monthText = vue.toRef(() => adapter.format(date.value, 'monthShort'));
27675
27681
  const yearText = vue.toRef(() => adapter.format(date.value, 'year'));
@@ -27771,7 +27777,8 @@
27771
27777
  function onClickNextYear() {
27772
27778
  year.value++;
27773
27779
  if (maxDate.value) {
27774
- const monthStart = adapter.parseISO(`${year.value}-${month.value + 1}-01`);
27780
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27781
+ const monthStart = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
27775
27782
  if (adapter.isAfter(monthStart, maxDate.value)) {
27776
27783
  month.value = adapter.getMonth(maxDate.value);
27777
27784
  }
@@ -27781,7 +27788,8 @@
27781
27788
  function onClickPrevYear() {
27782
27789
  year.value--;
27783
27790
  if (minDate.value) {
27784
- const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${month.value + 1}-01`));
27791
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27792
+ const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${monthTwoDigits}-01`));
27785
27793
  if (adapter.isAfter(minDate.value, monthStart)) {
27786
27794
  month.value = adapter.getMonth(minDate.value);
27787
27795
  }
@@ -30638,7 +30646,7 @@
30638
30646
  });
30639
30647
  const isOutOfRange = vue.computed(() => {
30640
30648
  if (_lastParsedValue.value === null) return false;
30641
- const numberFromText = Number(_inputText.value);
30649
+ const numberFromText = Number(_inputText.value?.replace(decimalSeparator.value, '.'));
30642
30650
  return numberFromText !== clamp(numberFromText, props.min, props.max);
30643
30651
  });
30644
30652
  const canIncrease = vue.computed(() => {
@@ -33508,6 +33516,7 @@
33508
33516
  sliderTransition: String,
33509
33517
  sliderTransitionDuration: [String, Number],
33510
33518
  hideSlider: Boolean,
33519
+ inset: Boolean,
33511
33520
  direction: {
33512
33521
  type: String,
33513
33522
  default: 'horizontal'
@@ -33602,8 +33611,8 @@
33602
33611
  return vue.createVNode(VBtn, vue.mergeProps({
33603
33612
  "symbol": VTabsSymbol,
33604
33613
  "ref": rootEl,
33605
- "class": ['v-tab', props.class, isSelected.value ? insetColorClasses.value : []],
33606
- "style": [props.style, isSelected.value ? insetColorStyles.value : []],
33614
+ "class": ['v-tab', props.class, isSelected.value && props.inset ? insetColorClasses.value : []],
33615
+ "style": [props.style, isSelected.value && props.inset ? insetColorStyles.value : []],
33607
33616
  "tabindex": isSelected.value ? 0 : -1,
33608
33617
  "role": "tab",
33609
33618
  "aria-selected": String(isSelected.value),
@@ -33766,6 +33775,7 @@
33766
33775
  direction: vue.toRef(props, 'direction'),
33767
33776
  stacked: vue.toRef(props, 'stacked'),
33768
33777
  fixed: vue.toRef(props, 'fixedTabs'),
33778
+ inset: vue.toRef(props, 'inset'),
33769
33779
  sliderColor: vue.toRef(props, 'sliderColor'),
33770
33780
  sliderTransition: vue.toRef(props, 'sliderTransition'),
33771
33781
  sliderTransitionDuration: vue.toRef(props, 'sliderTransitionDuration'),
@@ -36467,7 +36477,7 @@
36467
36477
  };
36468
36478
  });
36469
36479
  }
36470
- const version$1 = "3.11.0";
36480
+ const version$1 = "3.11.2";
36471
36481
  createVuetify$1.version = version$1;
36472
36482
 
36473
36483
  // Vue's inject() can only be used in setup
@@ -36492,7 +36502,7 @@
36492
36502
  ...options
36493
36503
  });
36494
36504
  };
36495
- const version = "3.11.0";
36505
+ const version = "3.11.2";
36496
36506
  createVuetify.version = version;
36497
36507
 
36498
36508
  exports.blueprints = index;