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
@@ -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, withModifiers, toDisplayString } 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, withModifiers, toDisplayString } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -233,6 +233,10 @@ function only(obj, include) {
233
233
  const onRE = /^on[^a-z]/;
234
234
  const isOn = key => onRE.test(key);
235
235
  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'];
236
+ const compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];
237
+ function isComposingIgnoreKey(e) {
238
+ return e.isComposing && compositionIgnoreKeys.includes(e.key);
239
+ }
236
240
 
237
241
  /**
238
242
  * Filter attributes that should be applied to
@@ -469,6 +473,13 @@ function matchesSelector(el, selector) {
469
473
  return null;
470
474
  }
471
475
  }
476
+ function ensureValidVNode(vnodes) {
477
+ return vnodes.some(child => {
478
+ if (!isVNode(child)) return true;
479
+ if (child.type === Comment) return false;
480
+ return child.type !== Fragment || ensureValidVNode(child.children);
481
+ }) ? vnodes : null;
482
+ }
472
483
 
473
484
  // Utilities
474
485
  const block = ['top', 'bottom'];
@@ -849,6 +860,9 @@ function toXYZ(_ref) {
849
860
  function isCssColor(color) {
850
861
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
851
862
  }
863
+ function isParsableColor(color) {
864
+ return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color);
865
+ }
852
866
  const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
853
867
  const mappers = {
854
868
  rgb: (r, g, b, a) => ({
@@ -3277,7 +3291,7 @@ function useColor(colors) {
3277
3291
  if (colors.value.background) {
3278
3292
  if (isCssColor(colors.value.background)) {
3279
3293
  styles.backgroundColor = colors.value.background;
3280
- if (!colors.value.text) {
3294
+ if (!colors.value.text && isParsableColor(colors.value.background)) {
3281
3295
  const backgroundColor = parseColor(colors.value.background);
3282
3296
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3283
3297
  const textColor = getForeground(backgroundColor);
@@ -11159,6 +11173,16 @@ const VSelect = genericComponent()({
11159
11173
  modelValue: true,
11160
11174
  'onUpdate:modelValue': undefined
11161
11175
  };
11176
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11177
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11178
+ item,
11179
+ index,
11180
+ props: slotProps
11181
+ }) : slots.selection({
11182
+ item,
11183
+ index
11184
+ })) : undefined;
11185
+ if (hasSlot && !slotContent) return undefined;
11162
11186
  return createVNode("div", {
11163
11187
  "key": item.value,
11164
11188
  "class": "v-select__selection"
@@ -11178,15 +11202,8 @@ const VSelect = genericComponent()({
11178
11202
  }
11179
11203
  }
11180
11204
  }, {
11181
- default: () => [slots.chip?.({
11182
- item,
11183
- index,
11184
- props: slotProps
11185
- })]
11186
- }) : slots.selection?.({
11187
- item,
11188
- index
11189
- }) ?? createVNode("span", {
11205
+ default: () => [slotContent]
11206
+ }) : slotContent ?? createVNode("span", {
11190
11207
  "class": "v-select__selection-text"
11191
11208
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
11192
11209
  "class": "v-select__selection-comma"
@@ -11687,6 +11704,16 @@ const VAutocomplete = genericComponent()({
11687
11704
  modelValue: true,
11688
11705
  'onUpdate:modelValue': undefined
11689
11706
  };
11707
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11708
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11709
+ item,
11710
+ index,
11711
+ props: slotProps
11712
+ }) : slots.selection({
11713
+ item,
11714
+ index
11715
+ })) : undefined;
11716
+ if (hasSlot && !slotContent) return undefined;
11690
11717
  return createVNode("div", {
11691
11718
  "key": item.value,
11692
11719
  "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
@@ -11707,15 +11734,8 @@ const VAutocomplete = genericComponent()({
11707
11734
  }
11708
11735
  }
11709
11736
  }, {
11710
- default: () => [slots.chip?.({
11711
- item,
11712
- index,
11713
- props: slotProps
11714
- })]
11715
- }) : slots.selection?.({
11716
- item,
11717
- index
11718
- }) ?? createVNode("span", {
11737
+ default: () => [slotContent]
11738
+ }) : slotContent ?? createVNode("span", {
11719
11739
  "class": "v-autocomplete__selection-text"
11720
11740
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
11721
11741
  "class": "v-autocomplete__selection-comma"
@@ -14998,7 +15018,7 @@ const VCombobox = genericComponent()({
14998
15018
  menu.value = !menu.value;
14999
15019
  }
15000
15020
  function onKeydown(e) {
15001
- if (props.readonly || form?.isReadonly.value) return;
15021
+ if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
15002
15022
  const selectionStart = vTextFieldRef.value.selectionStart;
15003
15023
  const length = model.value.length;
15004
15024
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -15239,6 +15259,16 @@ const VCombobox = genericComponent()({
15239
15259
  modelValue: true,
15240
15260
  'onUpdate:modelValue': undefined
15241
15261
  };
15262
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
15263
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
15264
+ item,
15265
+ index,
15266
+ props: slotProps
15267
+ }) : slots.selection({
15268
+ item,
15269
+ index
15270
+ })) : undefined;
15271
+ if (hasSlot && !slotContent) return undefined;
15242
15272
  return createVNode("div", {
15243
15273
  "key": item.value,
15244
15274
  "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
@@ -15259,15 +15289,8 @@ const VCombobox = genericComponent()({
15259
15289
  }
15260
15290
  }
15261
15291
  }, {
15262
- default: () => [slots.chip?.({
15263
- item,
15264
- index,
15265
- props: slotProps
15266
- })]
15267
- }) : slots.selection?.({
15268
- item,
15269
- index
15270
- }) ?? createVNode("span", {
15292
+ default: () => [slotContent]
15293
+ }) : slotContent ?? createVNode("span", {
15271
15294
  "class": "v-combobox__selection-text"
15272
15295
  }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
15273
15296
  "class": "v-combobox__selection-comma"
@@ -22121,7 +22144,6 @@ function getWeekdays(locale) {
22121
22144
  });
22122
22145
  }
22123
22146
  function format(value, formatString, locale) {
22124
- const date = new Date(value);
22125
22147
  let options = {};
22126
22148
  switch (formatString) {
22127
22149
  case 'fullDateWithWeekday':
@@ -22140,7 +22162,11 @@ function format(value, formatString, locale) {
22140
22162
  };
22141
22163
  break;
22142
22164
  case 'keyboardDate':
22143
- options = {};
22165
+ options = {
22166
+ day: '2-digit',
22167
+ month: '2-digit',
22168
+ year: 'numeric'
22169
+ };
22144
22170
  break;
22145
22171
  case 'monthAndDate':
22146
22172
  options = {
@@ -22170,7 +22196,7 @@ function format(value, formatString, locale) {
22170
22196
  timeZoneName: 'short'
22171
22197
  };
22172
22198
  }
22173
- return new Intl.DateTimeFormat(locale, options).format(date);
22199
+ return new Intl.DateTimeFormat(locale, options).format(date(value) ?? undefined);
22174
22200
  }
22175
22201
  function toISO(adapter, value) {
22176
22202
  const date = adapter.toJsDate(value);
@@ -23947,20 +23973,40 @@ const VStepperActions = genericComponent()({
23947
23973
  emit('click:next');
23948
23974
  }
23949
23975
  useRender(() => {
23976
+ const prevSlotProps = {
23977
+ onClick: onClickPrev
23978
+ };
23979
+ const nextSlotProps = {
23980
+ onClick: onClickNext
23981
+ };
23950
23982
  return createVNode("div", {
23951
23983
  "class": "v-stepper-actions"
23952
- }, [createVNode(VBtn, {
23953
- "disabled": ['prev', true].includes(props.disabled),
23954
- "text": t(props.prevText),
23955
- "variant": "text",
23956
- "onClick": onClickPrev
23957
- }, null), createVNode(VBtn, {
23958
- "disabled": ['next', true].includes(props.disabled),
23959
- "color": props.color,
23960
- "text": t(props.nextText),
23961
- "variant": "tonal",
23962
- "onClick": onClickNext
23963
- }, null)]);
23984
+ }, [createVNode(VDefaultsProvider, {
23985
+ "defaults": {
23986
+ VBtn: {
23987
+ disabled: ['prev', true].includes(props.disabled),
23988
+ text: t(props.prevText),
23989
+ variant: 'text'
23990
+ }
23991
+ }
23992
+ }, {
23993
+ default: () => [slots.prev?.({
23994
+ props: prevSlotProps
23995
+ }) ?? createVNode(VBtn, prevSlotProps, null)]
23996
+ }), createVNode(VDefaultsProvider, {
23997
+ "defaults": {
23998
+ VBtn: {
23999
+ color: props.color,
24000
+ disabled: ['next', true].includes(props.disabled),
24001
+ text: t(props.nextText),
24002
+ variant: 'tonal'
24003
+ }
24004
+ }
24005
+ }, {
24006
+ default: () => [slots.next?.({
24007
+ props: nextSlotProps
24008
+ }) ?? createVNode(VBtn, nextSlotProps, null)]
24009
+ })]);
23964
24010
  });
23965
24011
  return {};
23966
24012
  }
@@ -24179,7 +24225,6 @@ const VStepper = genericComponent()({
24179
24225
  let {
24180
24226
  slots
24181
24227
  } = _ref;
24182
- // TODO: fix typing
24183
24228
  const {
24184
24229
  items: _items,
24185
24230
  next,
@@ -24265,7 +24310,7 @@ const VStepper = genericComponent()({
24265
24310
  "key": "stepper-actions",
24266
24311
  "onClick:prev": prev,
24267
24312
  "onClick:next": next
24268
- }, null))]
24313
+ }, slots))]
24269
24314
  });
24270
24315
  });
24271
24316
  return {
@@ -24653,7 +24698,7 @@ function createVuetify$1() {
24653
24698
  date
24654
24699
  };
24655
24700
  }
24656
- const version$1 = "3.3.21";
24701
+ const version$1 = "3.3.23";
24657
24702
  createVuetify$1.version = version$1;
24658
24703
 
24659
24704
  // Vue's inject() can only be used in setup
@@ -24667,7 +24712,7 @@ function inject(key) {
24667
24712
 
24668
24713
  /* eslint-disable local-rules/sort-imports */
24669
24714
 
24670
- const version = "3.3.21";
24715
+ const version = "3.3.23";
24671
24716
 
24672
24717
  /* eslint-disable local-rules/sort-imports */
24673
24718