vuetify 3.3.21 → 3.3.23

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 (67) hide show
  1. package/dist/json/attributes.json +228 -24
  2. package/dist/json/importMap-labs.json +4 -4
  3. package/dist/json/tags.json +57 -3
  4. package/dist/json/web-types.json +909 -39
  5. package/dist/vuetify-labs.css +5831 -5824
  6. package/dist/vuetify-labs.d.ts +205 -19
  7. package/dist/vuetify-labs.esm.js +95 -50
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +94 -49
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +5191 -5187
  12. package/dist/vuetify.d.ts +1 -1
  13. package/dist/vuetify.esm.js +62 -36
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +61 -35
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +813 -813
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -10
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.sass +2 -2
  24. package/lib/components/VAutocomplete/_variables.scss +1 -0
  25. package/lib/components/VCard/VCard.css +3 -1
  26. package/lib/components/VCard/VCard.sass +2 -1
  27. package/lib/components/VCard/_variables.scss +7 -5
  28. package/lib/components/VCombobox/VCombobox.mjs +14 -11
  29. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  30. package/lib/components/VList/VListItem.css +0 -4
  31. package/lib/components/VList/VListItem.sass +0 -5
  32. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +6 -0
  33. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +5 -0
  34. package/lib/components/VSelect/VSelect.mjs +13 -10
  35. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  36. package/lib/components/VToolbar/_variables.scss +6 -3
  37. package/lib/composables/color.mjs +2 -2
  38. package/lib/composables/color.mjs.map +1 -1
  39. package/lib/entry-bundler.mjs +1 -1
  40. package/lib/framework.mjs +1 -1
  41. package/lib/index.d.mts +1 -1
  42. package/lib/labs/VDataTable/VDataTable.css +0 -6
  43. package/lib/labs/VDataTable/VDataTable.sass +0 -1
  44. package/lib/labs/VStepper/VStepper.css +9 -0
  45. package/lib/labs/VStepper/VStepper.mjs +1 -2
  46. package/lib/labs/VStepper/VStepper.mjs.map +1 -1
  47. package/lib/labs/VStepper/VStepper.sass +17 -8
  48. package/lib/labs/VStepper/VStepperActions.mjs +34 -13
  49. package/lib/labs/VStepper/VStepperActions.mjs.map +1 -1
  50. package/lib/labs/VStepper/VStepperItem.mjs.map +1 -1
  51. package/lib/labs/VStepper/VStepperItem.sass +15 -15
  52. package/lib/labs/VStepper/_variables.scss +24 -1
  53. package/lib/labs/VStepper/index.d.mts +205 -19
  54. package/lib/labs/components.d.mts +205 -19
  55. package/lib/labs/date/adapters/vuetify.mjs +6 -3
  56. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  57. package/lib/locale/de.mjs +20 -20
  58. package/lib/locale/de.mjs.map +1 -1
  59. package/lib/locale/fr.mjs +19 -19
  60. package/lib/locale/fr.mjs.map +1 -1
  61. package/lib/locale/nl.mjs +22 -22
  62. package/lib/locale/nl.mjs.map +1 -1
  63. package/lib/util/colorUtils.mjs +3 -0
  64. package/lib/util/colorUtils.mjs.map +1 -1
  65. package/lib/util/helpers.mjs +12 -1
  66. package/lib/util/helpers.mjs.map +1 -1
  67. package/package.json +2 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.21
2
+ * Vuetify v3.3.23
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -232,6 +232,10 @@
232
232
  const onRE = /^on[^a-z]/;
233
233
  const isOn = key => onRE.test(key);
234
234
  const bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];
235
+ const compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];
236
+ function isComposingIgnoreKey(e) {
237
+ return e.isComposing && compositionIgnoreKeys.includes(e.key);
238
+ }
235
239
 
236
240
  /**
237
241
  * Filter attributes that should be applied to
@@ -465,6 +469,13 @@
465
469
  return null;
466
470
  }
467
471
  }
472
+ function ensureValidVNode(vnodes) {
473
+ return vnodes.some(child => {
474
+ if (!vue.isVNode(child)) return true;
475
+ if (child.type === vue.Comment) return false;
476
+ return child.type !== vue.Fragment || ensureValidVNode(child.children);
477
+ }) ? vnodes : null;
478
+ }
468
479
 
469
480
  // Utilities
470
481
  const block = ['top', 'bottom'];
@@ -845,6 +856,9 @@
845
856
  function isCssColor(color) {
846
857
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
847
858
  }
859
+ function isParsableColor(color) {
860
+ return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color);
861
+ }
848
862
  const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
849
863
  const mappers = {
850
864
  rgb: (r, g, b, a) => ({
@@ -3269,7 +3283,7 @@
3269
3283
  if (colors.value.background) {
3270
3284
  if (isCssColor(colors.value.background)) {
3271
3285
  styles.backgroundColor = colors.value.background;
3272
- if (!colors.value.text) {
3286
+ if (!colors.value.text && isParsableColor(colors.value.background)) {
3273
3287
  const backgroundColor = parseColor(colors.value.background);
3274
3288
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3275
3289
  const textColor = getForeground(backgroundColor);
@@ -11151,6 +11165,16 @@
11151
11165
  modelValue: true,
11152
11166
  'onUpdate:modelValue': undefined
11153
11167
  };
11168
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11169
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11170
+ item,
11171
+ index,
11172
+ props: slotProps
11173
+ }) : slots.selection({
11174
+ item,
11175
+ index
11176
+ })) : undefined;
11177
+ if (hasSlot && !slotContent) return undefined;
11154
11178
  return vue.createVNode("div", {
11155
11179
  "key": item.value,
11156
11180
  "class": "v-select__selection"
@@ -11170,15 +11194,8 @@
11170
11194
  }
11171
11195
  }
11172
11196
  }, {
11173
- default: () => [slots.chip?.({
11174
- item,
11175
- index,
11176
- props: slotProps
11177
- })]
11178
- }) : slots.selection?.({
11179
- item,
11180
- index
11181
- }) ?? vue.createVNode("span", {
11197
+ default: () => [slotContent]
11198
+ }) : slotContent ?? vue.createVNode("span", {
11182
11199
  "class": "v-select__selection-text"
11183
11200
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
11184
11201
  "class": "v-select__selection-comma"
@@ -11679,6 +11696,16 @@
11679
11696
  modelValue: true,
11680
11697
  'onUpdate:modelValue': undefined
11681
11698
  };
11699
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11700
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11701
+ item,
11702
+ index,
11703
+ props: slotProps
11704
+ }) : slots.selection({
11705
+ item,
11706
+ index
11707
+ })) : undefined;
11708
+ if (hasSlot && !slotContent) return undefined;
11682
11709
  return vue.createVNode("div", {
11683
11710
  "key": item.value,
11684
11711
  "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
@@ -11699,15 +11726,8 @@
11699
11726
  }
11700
11727
  }
11701
11728
  }, {
11702
- default: () => [slots.chip?.({
11703
- item,
11704
- index,
11705
- props: slotProps
11706
- })]
11707
- }) : slots.selection?.({
11708
- item,
11709
- index
11710
- }) ?? vue.createVNode("span", {
11729
+ default: () => [slotContent]
11730
+ }) : slotContent ?? vue.createVNode("span", {
11711
11731
  "class": "v-autocomplete__selection-text"
11712
11732
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
11713
11733
  "class": "v-autocomplete__selection-comma"
@@ -14990,7 +15010,7 @@
14990
15010
  menu.value = !menu.value;
14991
15011
  }
14992
15012
  function onKeydown(e) {
14993
- if (props.readonly || form?.isReadonly.value) return;
15013
+ if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
14994
15014
  const selectionStart = vTextFieldRef.value.selectionStart;
14995
15015
  const length = model.value.length;
14996
15016
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -15231,6 +15251,16 @@
15231
15251
  modelValue: true,
15232
15252
  'onUpdate:modelValue': undefined
15233
15253
  };
15254
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
15255
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
15256
+ item,
15257
+ index,
15258
+ props: slotProps
15259
+ }) : slots.selection({
15260
+ item,
15261
+ index
15262
+ })) : undefined;
15263
+ if (hasSlot && !slotContent) return undefined;
15234
15264
  return vue.createVNode("div", {
15235
15265
  "key": item.value,
15236
15266
  "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
@@ -15251,15 +15281,8 @@
15251
15281
  }
15252
15282
  }
15253
15283
  }, {
15254
- default: () => [slots.chip?.({
15255
- item,
15256
- index,
15257
- props: slotProps
15258
- })]
15259
- }) : slots.selection?.({
15260
- item,
15261
- index
15262
- }) ?? vue.createVNode("span", {
15284
+ default: () => [slotContent]
15285
+ }) : slotContent ?? vue.createVNode("span", {
15263
15286
  "class": "v-combobox__selection-text"
15264
15287
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
15265
15288
  "class": "v-combobox__selection-comma"
@@ -20081,7 +20104,6 @@
20081
20104
  });
20082
20105
  }
20083
20106
  function format(value, formatString, locale) {
20084
- const date = new Date(value);
20085
20107
  let options = {};
20086
20108
  switch (formatString) {
20087
20109
  case 'fullDateWithWeekday':
@@ -20100,7 +20122,11 @@
20100
20122
  };
20101
20123
  break;
20102
20124
  case 'keyboardDate':
20103
- options = {};
20125
+ options = {
20126
+ day: '2-digit',
20127
+ month: '2-digit',
20128
+ year: 'numeric'
20129
+ };
20104
20130
  break;
20105
20131
  case 'monthAndDate':
20106
20132
  options = {
@@ -20130,7 +20156,7 @@
20130
20156
  timeZoneName: 'short'
20131
20157
  };
20132
20158
  }
20133
- return new Intl.DateTimeFormat(locale, options).format(date);
20159
+ return new Intl.DateTimeFormat(locale, options).format(date(value) ?? undefined);
20134
20160
  }
20135
20161
  function toISO(adapter, value) {
20136
20162
  const date = adapter.toJsDate(value);
@@ -20430,7 +20456,7 @@
20430
20456
  date
20431
20457
  };
20432
20458
  }
20433
- const version$1 = "3.3.21";
20459
+ const version$1 = "3.3.23";
20434
20460
  createVuetify$1.version = version$1;
20435
20461
 
20436
20462
  // Vue's inject() can only be used in setup
@@ -20455,7 +20481,7 @@
20455
20481
  ...options
20456
20482
  });
20457
20483
  };
20458
- const version = "3.3.21";
20484
+ const version = "3.3.23";
20459
20485
  createVuetify.version = version;
20460
20486
 
20461
20487
  exports.components = components;