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.d.ts CHANGED
@@ -60745,7 +60745,6 @@ declare module '@vue/runtime-core' {
60745
60745
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
60746
60746
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
60747
60747
  VBottomSheet: typeof import('vuetify/labs/components')['VBottomSheet']
60748
- VDataIterator: typeof import('vuetify/labs/components')['VDataIterator']
60749
60748
  VDataTable: typeof import('vuetify/labs/components')['VDataTable']
60750
60749
  VDataTableFooter: typeof import('vuetify/labs/components')['VDataTableFooter']
60751
60750
  VDataTableRows: typeof import('vuetify/labs/components')['VDataTableRows']
@@ -60769,5 +60768,6 @@ declare module '@vue/runtime-core' {
60769
60768
  VStepperItem: typeof import('vuetify/labs/components')['VStepperItem']
60770
60769
  VStepperWindow: typeof import('vuetify/labs/components')['VStepperWindow']
60771
60770
  VStepperWindowItem: typeof import('vuetify/labs/components')['VStepperWindowItem']
60771
+ VDataIterator: typeof import('vuetify/labs/components')['VDataIterator']
60772
60772
  }
60773
60773
  }
@@ -1,10 +1,10 @@
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
  */
6
6
 
7
- import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText } from 'vue';
7
+ import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, warn, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -228,6 +228,10 @@ function omit(obj, exclude) {
228
228
  const onRE = /^on[^a-z]/;
229
229
  const isOn = key => onRE.test(key);
230
230
  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'];
231
+ const compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];
232
+ function isComposingIgnoreKey(e) {
233
+ return e.isComposing && compositionIgnoreKeys.includes(e.key);
234
+ }
231
235
 
232
236
  /**
233
237
  * Filter attributes that should be applied to
@@ -461,6 +465,13 @@ function matchesSelector(el, selector) {
461
465
  return null;
462
466
  }
463
467
  }
468
+ function ensureValidVNode(vnodes) {
469
+ return vnodes.some(child => {
470
+ if (!isVNode(child)) return true;
471
+ if (child.type === Comment) return false;
472
+ return child.type !== Fragment || ensureValidVNode(child.children);
473
+ }) ? vnodes : null;
474
+ }
464
475
 
465
476
  // Utilities
466
477
  const block = ['top', 'bottom'];
@@ -841,6 +852,9 @@ function toXYZ(_ref) {
841
852
  function isCssColor(color) {
842
853
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
843
854
  }
855
+ function isParsableColor(color) {
856
+ return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color);
857
+ }
844
858
  const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
845
859
  const mappers = {
846
860
  rgb: (r, g, b, a) => ({
@@ -3265,7 +3279,7 @@ function useColor(colors) {
3265
3279
  if (colors.value.background) {
3266
3280
  if (isCssColor(colors.value.background)) {
3267
3281
  styles.backgroundColor = colors.value.background;
3268
- if (!colors.value.text) {
3282
+ if (!colors.value.text && isParsableColor(colors.value.background)) {
3269
3283
  const backgroundColor = parseColor(colors.value.background);
3270
3284
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3271
3285
  const textColor = getForeground(backgroundColor);
@@ -11147,6 +11161,16 @@ const VSelect = genericComponent()({
11147
11161
  modelValue: true,
11148
11162
  'onUpdate:modelValue': undefined
11149
11163
  };
11164
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11165
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11166
+ item,
11167
+ index,
11168
+ props: slotProps
11169
+ }) : slots.selection({
11170
+ item,
11171
+ index
11172
+ })) : undefined;
11173
+ if (hasSlot && !slotContent) return undefined;
11150
11174
  return createVNode("div", {
11151
11175
  "key": item.value,
11152
11176
  "class": "v-select__selection"
@@ -11166,15 +11190,8 @@ const VSelect = genericComponent()({
11166
11190
  }
11167
11191
  }
11168
11192
  }, {
11169
- default: () => [slots.chip?.({
11170
- item,
11171
- index,
11172
- props: slotProps
11173
- })]
11174
- }) : slots.selection?.({
11175
- item,
11176
- index
11177
- }) ?? createVNode("span", {
11193
+ default: () => [slotContent]
11194
+ }) : slotContent ?? createVNode("span", {
11178
11195
  "class": "v-select__selection-text"
11179
11196
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
11180
11197
  "class": "v-select__selection-comma"
@@ -11675,6 +11692,16 @@ const VAutocomplete = genericComponent()({
11675
11692
  modelValue: true,
11676
11693
  'onUpdate:modelValue': undefined
11677
11694
  };
11695
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11696
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11697
+ item,
11698
+ index,
11699
+ props: slotProps
11700
+ }) : slots.selection({
11701
+ item,
11702
+ index
11703
+ })) : undefined;
11704
+ if (hasSlot && !slotContent) return undefined;
11678
11705
  return createVNode("div", {
11679
11706
  "key": item.value,
11680
11707
  "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
@@ -11695,15 +11722,8 @@ const VAutocomplete = genericComponent()({
11695
11722
  }
11696
11723
  }
11697
11724
  }, {
11698
- default: () => [slots.chip?.({
11699
- item,
11700
- index,
11701
- props: slotProps
11702
- })]
11703
- }) : slots.selection?.({
11704
- item,
11705
- index
11706
- }) ?? createVNode("span", {
11725
+ default: () => [slotContent]
11726
+ }) : slotContent ?? createVNode("span", {
11707
11727
  "class": "v-autocomplete__selection-text"
11708
11728
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
11709
11729
  "class": "v-autocomplete__selection-comma"
@@ -14986,7 +15006,7 @@ const VCombobox = genericComponent()({
14986
15006
  menu.value = !menu.value;
14987
15007
  }
14988
15008
  function onKeydown(e) {
14989
- if (props.readonly || form?.isReadonly.value) return;
15009
+ if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
14990
15010
  const selectionStart = vTextFieldRef.value.selectionStart;
14991
15011
  const length = model.value.length;
14992
15012
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -15227,6 +15247,16 @@ const VCombobox = genericComponent()({
15227
15247
  modelValue: true,
15228
15248
  'onUpdate:modelValue': undefined
15229
15249
  };
15250
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
15251
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
15252
+ item,
15253
+ index,
15254
+ props: slotProps
15255
+ }) : slots.selection({
15256
+ item,
15257
+ index
15258
+ })) : undefined;
15259
+ if (hasSlot && !slotContent) return undefined;
15230
15260
  return createVNode("div", {
15231
15261
  "key": item.value,
15232
15262
  "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
@@ -15247,15 +15277,8 @@ const VCombobox = genericComponent()({
15247
15277
  }
15248
15278
  }
15249
15279
  }, {
15250
- default: () => [slots.chip?.({
15251
- item,
15252
- index,
15253
- props: slotProps
15254
- })]
15255
- }) : slots.selection?.({
15256
- item,
15257
- index
15258
- }) ?? createVNode("span", {
15280
+ default: () => [slotContent]
15281
+ }) : slotContent ?? createVNode("span", {
15259
15282
  "class": "v-combobox__selection-text"
15260
15283
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
15261
15284
  "class": "v-combobox__selection-comma"
@@ -20077,7 +20100,6 @@ function getWeekdays(locale) {
20077
20100
  });
20078
20101
  }
20079
20102
  function format(value, formatString, locale) {
20080
- const date = new Date(value);
20081
20103
  let options = {};
20082
20104
  switch (formatString) {
20083
20105
  case 'fullDateWithWeekday':
@@ -20096,7 +20118,11 @@ function format(value, formatString, locale) {
20096
20118
  };
20097
20119
  break;
20098
20120
  case 'keyboardDate':
20099
- options = {};
20121
+ options = {
20122
+ day: '2-digit',
20123
+ month: '2-digit',
20124
+ year: 'numeric'
20125
+ };
20100
20126
  break;
20101
20127
  case 'monthAndDate':
20102
20128
  options = {
@@ -20126,7 +20152,7 @@ function format(value, formatString, locale) {
20126
20152
  timeZoneName: 'short'
20127
20153
  };
20128
20154
  }
20129
- return new Intl.DateTimeFormat(locale, options).format(date);
20155
+ return new Intl.DateTimeFormat(locale, options).format(date(value) ?? undefined);
20130
20156
  }
20131
20157
  function toISO(adapter, value) {
20132
20158
  const date = adapter.toJsDate(value);
@@ -20426,7 +20452,7 @@ function createVuetify$1() {
20426
20452
  date
20427
20453
  };
20428
20454
  }
20429
- const version$1 = "3.3.21";
20455
+ const version$1 = "3.3.23";
20430
20456
  createVuetify$1.version = version$1;
20431
20457
 
20432
20458
  // Vue's inject() can only be used in setup
@@ -20451,7 +20477,7 @@ const createVuetify = function () {
20451
20477
  ...options
20452
20478
  });
20453
20479
  };
20454
- const version = "3.3.21";
20480
+ const version = "3.3.23";
20455
20481
  createVuetify.version = version;
20456
20482
 
20457
20483
  export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };