vuetify 3.11.1 → 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 +3244 -3236
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +156 -156
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +5864 -5845
  6. package/dist/vuetify-labs.cjs +41 -31
  7. package/dist/vuetify-labs.css +5306 -5310
  8. package/dist/vuetify-labs.d.ts +68 -55
  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 +2654 -2655
  16. package/dist/vuetify.d.ts +68 -55
  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 +55 -55
  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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.11.1
2
+ * Vuetify v3.11.2
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -8135,7 +8135,7 @@
8135
8135
  },
8136
8136
  showArrows: {
8137
8137
  type: [Boolean, String],
8138
- validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
8138
+ validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile', 'never'].includes(v)
8139
8139
  },
8140
8140
  ...makeComponentProps(),
8141
8141
  ...makeDisplayProps({
@@ -8369,6 +8369,9 @@
8369
8369
  const hasOverflowOrScroll = vue.computed(() => isOverflowing.value || Math.abs(scrollOffset.value) > 0);
8370
8370
  const hasAffixes = vue.computed(() => {
8371
8371
  switch (props.showArrows) {
8372
+ case 'never':
8373
+ return false;
8374
+
8372
8375
  // Always show arrows on desktop & mobile
8373
8376
  case 'always':
8374
8377
  return true;
@@ -12835,7 +12838,9 @@
12835
12838
  function useAutofocus(props) {
12836
12839
  function onIntersect(isIntersecting, entries) {
12837
12840
  if (!props.autofocus || !isIntersecting) return;
12838
- entries[0].target?.focus?.();
12841
+ const el = entries[0].target;
12842
+ const target = el.matches('input,textarea') ? el : el.querySelector('input,textarea');
12843
+ target?.focus();
12839
12844
  }
12840
12845
  return {
12841
12846
  onIntersect
@@ -13013,7 +13018,7 @@
13013
13018
  },
13014
13019
  controlRef
13015
13020
  } = _ref3;
13016
- const inputNode = vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
13021
+ const inputNode = vue.createElementVNode("input", vue.mergeProps({
13017
13022
  "ref": val => inputRef.value = controlRef.value = val,
13018
13023
  "value": model.value,
13019
13024
  "onInput": onInput,
@@ -13028,21 +13033,19 @@
13028
13033
  "type": props.type,
13029
13034
  "onFocus": focus,
13030
13035
  "onBlur": blur
13031
- }, slotProps, inputAttrs), null), [[Intersect, {
13032
- handler: onIntersect
13033
- }, null, {
13034
- once: true
13035
- }]]);
13036
+ }, slotProps, inputAttrs), null);
13036
13037
  return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
13037
13038
  "class": "v-text-field__prefix"
13038
13039
  }, [vue.createElementVNode("span", {
13039
13040
  "class": "v-text-field__prefix__text"
13040
- }, [props.prefix])]), slots.default ? vue.createElementVNode("div", {
13041
+ }, [props.prefix])]), vue.withDirectives(slots.default ? vue.createElementVNode("div", {
13041
13042
  "class": vue.normalizeClass(fieldClass),
13042
13043
  "data-no-activator": ""
13043
13044
  }, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
13044
13045
  class: fieldClass
13045
- }), props.suffix && vue.createElementVNode("span", {
13046
+ }), [[Intersect, onIntersect, null, {
13047
+ once: true
13048
+ }]]), props.suffix && vue.createElementVNode("span", {
13046
13049
  "class": "v-text-field__suffix"
13047
13050
  }, [vue.createElementVNode("span", {
13048
13051
  "class": "v-text-field__suffix__text"
@@ -24712,6 +24715,7 @@
24712
24715
  disableSort: Boolean,
24713
24716
  fixedHeader: Boolean,
24714
24717
  multiSort: Boolean,
24718
+ initialSortOrder: String,
24715
24719
  sortAscIcon: {
24716
24720
  type: IconValue,
24717
24721
  default: '$sortAsc'
@@ -24774,8 +24778,7 @@
24774
24778
  }
24775
24779
  function getSortIcon(column) {
24776
24780
  const item = sortBy.value.find(item => item.key === column.key);
24777
- if (!item) return props.sortAscIcon;
24778
- return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
24781
+ return !item && props.initialSortOrder === 'asc' || item?.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
24779
24782
  }
24780
24783
  const {
24781
24784
  backgroundColorClasses,
@@ -24875,6 +24878,7 @@
24875
24878
  const displayItems = vue.computed(() => {
24876
24879
  return columns.value.filter(column => column?.sortable && !props.disableSort);
24877
24880
  });
24881
+ const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
24878
24882
  return vue.createVNode(VDataTableColumn, vue.mergeProps({
24879
24883
  "tag": "th",
24880
24884
  "class": [...headerCellClasses.value],
@@ -24892,16 +24896,15 @@
24892
24896
  "label": t('$vuetify.dataTable.sortBy'),
24893
24897
  "multiple": props.multiSort,
24894
24898
  "variant": "underlined",
24895
- "onClick:clear": () => sortBy.value = [],
24896
- "onClick:append": () => selectAll(!allSelected.value)
24899
+ "onClick:clear": () => sortBy.value = []
24897
24900
  }, {
24898
- append: () => vue.createVNode(VCheckboxBtn, {
24901
+ append: showSelectColumn ? () => vue.createVNode(VCheckboxBtn, {
24899
24902
  "color": props.color,
24900
24903
  "density": "compact",
24901
24904
  "modelValue": allSelected.value,
24902
24905
  "indeterminate": someSelected.value && !allSelected.value,
24903
- "onUpdate:modelValue": selectAll
24904
- }, null),
24906
+ "onUpdate:modelValue": () => selectAll(!allSelected.value)
24907
+ }, null) : undefined,
24905
24908
  chip: props => vue.createVNode(VChip, {
24906
24909
  "onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
24907
24910
  "onMousedown": e => {
@@ -25457,7 +25460,7 @@
25457
25460
  ...makeDataTableItemsProps(),
25458
25461
  ...makeDataTableSelectProps(),
25459
25462
  ...makeDataTableSortProps(),
25460
- ...omit(makeVDataTableHeadersProps(), ['multiSort']),
25463
+ ...omit(makeVDataTableHeadersProps(), ['multiSort', 'initialSortOrder']),
25461
25464
  ...makeVTableProps()
25462
25465
  }, 'DataTable');
25463
25466
  const makeVDataTableProps = propsFactory({
@@ -27349,7 +27352,10 @@
27349
27352
  const formattedDate = model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), props.headerDateFormat) : t(props.header);
27350
27353
  return props.landscape && formattedDate.split(' ').length === 3 ? formattedDate.replace(' ', '\n') : formattedDate;
27351
27354
  });
27352
- const date = vue.toRef(() => adapter.parseISO(`${year.value}-${month.value + 1}-01`));
27355
+ const date = vue.toRef(() => {
27356
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27357
+ return adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
27358
+ });
27353
27359
  const monthYearText = vue.toRef(() => adapter.format(date.value, 'monthAndYear'));
27354
27360
  const monthText = vue.toRef(() => adapter.format(date.value, 'monthShort'));
27355
27361
  const yearText = vue.toRef(() => adapter.format(date.value, 'year'));
@@ -27451,7 +27457,8 @@
27451
27457
  function onClickNextYear() {
27452
27458
  year.value++;
27453
27459
  if (maxDate.value) {
27454
- const monthStart = adapter.parseISO(`${year.value}-${month.value + 1}-01`);
27460
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27461
+ const monthStart = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
27455
27462
  if (adapter.isAfter(monthStart, maxDate.value)) {
27456
27463
  month.value = adapter.getMonth(maxDate.value);
27457
27464
  }
@@ -27461,7 +27468,8 @@
27461
27468
  function onClickPrevYear() {
27462
27469
  year.value--;
27463
27470
  if (minDate.value) {
27464
- const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${month.value + 1}-01`));
27471
+ const monthTwoDigits = String(month.value + 1).padStart(2, '0');
27472
+ const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${monthTwoDigits}-01`));
27465
27473
  if (adapter.isAfter(minDate.value, monthStart)) {
27466
27474
  month.value = adapter.getMonth(minDate.value);
27467
27475
  }
@@ -30318,7 +30326,7 @@
30318
30326
  });
30319
30327
  const isOutOfRange = vue.computed(() => {
30320
30328
  if (_lastParsedValue.value === null) return false;
30321
- const numberFromText = Number(_inputText.value);
30329
+ const numberFromText = Number(_inputText.value?.replace(decimalSeparator.value, '.'));
30322
30330
  return numberFromText !== clamp(numberFromText, props.min, props.max);
30323
30331
  });
30324
30332
  const canIncrease = vue.computed(() => {
@@ -33188,6 +33196,7 @@
33188
33196
  sliderTransition: String,
33189
33197
  sliderTransitionDuration: [String, Number],
33190
33198
  hideSlider: Boolean,
33199
+ inset: Boolean,
33191
33200
  direction: {
33192
33201
  type: String,
33193
33202
  default: 'horizontal'
@@ -33282,8 +33291,8 @@
33282
33291
  return vue.createVNode(VBtn, vue.mergeProps({
33283
33292
  "symbol": VTabsSymbol,
33284
33293
  "ref": rootEl,
33285
- "class": ['v-tab', props.class, isSelected.value ? insetColorClasses.value : []],
33286
- "style": [props.style, isSelected.value ? insetColorStyles.value : []],
33294
+ "class": ['v-tab', props.class, isSelected.value && props.inset ? insetColorClasses.value : []],
33295
+ "style": [props.style, isSelected.value && props.inset ? insetColorStyles.value : []],
33287
33296
  "tabindex": isSelected.value ? 0 : -1,
33288
33297
  "role": "tab",
33289
33298
  "aria-selected": String(isSelected.value),
@@ -33446,6 +33455,7 @@
33446
33455
  direction: vue.toRef(props, 'direction'),
33447
33456
  stacked: vue.toRef(props, 'stacked'),
33448
33457
  fixed: vue.toRef(props, 'fixedTabs'),
33458
+ inset: vue.toRef(props, 'inset'),
33449
33459
  sliderColor: vue.toRef(props, 'sliderColor'),
33450
33460
  sliderTransition: vue.toRef(props, 'sliderTransition'),
33451
33461
  sliderTransitionDuration: vue.toRef(props, 'sliderTransitionDuration'),
@@ -36578,8 +36588,8 @@
36578
36588
  }
36579
36589
  async function onCut(e) {
36580
36590
  e.preventDefault();
36581
- copySelectionToClipboard(e);
36582
- deleteSelection(e);
36591
+ await copySelectionToClipboard(e);
36592
+ await deleteSelection(e);
36583
36593
  }
36584
36594
  async function onPaste(e) {
36585
36595
  e.preventDefault();
@@ -36594,12 +36604,12 @@
36594
36604
  insertCharacters(inputElement, pastedCharacters);
36595
36605
  }
36596
36606
  }
36597
- function copySelectionToClipboard(e) {
36607
+ async function copySelectionToClipboard(e) {
36598
36608
  const inputElement = e.target;
36599
36609
  const start = inputElement.selectionStart || 0;
36600
36610
  const end = inputElement.selectionEnd || 0;
36601
36611
  const selectedText = inputElement.value.substring(start, end);
36602
- navigator.clipboard.writeText(selectedText);
36612
+ await navigator.clipboard.writeText(selectedText);
36603
36613
  }
36604
36614
  async function deleteSelection(e) {
36605
36615
  const inputElement = e.target;
@@ -38993,7 +39003,7 @@
38993
39003
  };
38994
39004
  });
38995
39005
  }
38996
- const version$1 = "3.11.1";
39006
+ const version$1 = "3.11.2";
38997
39007
  createVuetify$1.version = version$1;
38998
39008
 
38999
39009
  // Vue's inject() can only be used in setup
@@ -39296,7 +39306,7 @@
39296
39306
 
39297
39307
  /* eslint-disable local-rules/sort-imports */
39298
39308
 
39299
- const version = "3.11.1";
39309
+ const version = "3.11.2";
39300
39310
 
39301
39311
  /* eslint-disable local-rules/sort-imports */
39302
39312