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,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
  */
@@ -237,6 +237,10 @@
237
237
  const onRE = /^on[^a-z]/;
238
238
  const isOn = key => onRE.test(key);
239
239
  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'];
240
+ const compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];
241
+ function isComposingIgnoreKey(e) {
242
+ return e.isComposing && compositionIgnoreKeys.includes(e.key);
243
+ }
240
244
 
241
245
  /**
242
246
  * Filter attributes that should be applied to
@@ -473,6 +477,13 @@
473
477
  return null;
474
478
  }
475
479
  }
480
+ function ensureValidVNode(vnodes) {
481
+ return vnodes.some(child => {
482
+ if (!vue.isVNode(child)) return true;
483
+ if (child.type === vue.Comment) return false;
484
+ return child.type !== vue.Fragment || ensureValidVNode(child.children);
485
+ }) ? vnodes : null;
486
+ }
476
487
 
477
488
  // Utilities
478
489
  const block = ['top', 'bottom'];
@@ -853,6 +864,9 @@
853
864
  function isCssColor(color) {
854
865
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
855
866
  }
867
+ function isParsableColor(color) {
868
+ return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color);
869
+ }
856
870
  const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
857
871
  const mappers = {
858
872
  rgb: (r, g, b, a) => ({
@@ -3281,7 +3295,7 @@
3281
3295
  if (colors.value.background) {
3282
3296
  if (isCssColor(colors.value.background)) {
3283
3297
  styles.backgroundColor = colors.value.background;
3284
- if (!colors.value.text) {
3298
+ if (!colors.value.text && isParsableColor(colors.value.background)) {
3285
3299
  const backgroundColor = parseColor(colors.value.background);
3286
3300
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3287
3301
  const textColor = getForeground(backgroundColor);
@@ -11163,6 +11177,16 @@
11163
11177
  modelValue: true,
11164
11178
  'onUpdate:modelValue': undefined
11165
11179
  };
11180
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11181
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11182
+ item,
11183
+ index,
11184
+ props: slotProps
11185
+ }) : slots.selection({
11186
+ item,
11187
+ index
11188
+ })) : undefined;
11189
+ if (hasSlot && !slotContent) return undefined;
11166
11190
  return vue.createVNode("div", {
11167
11191
  "key": item.value,
11168
11192
  "class": "v-select__selection"
@@ -11182,15 +11206,8 @@
11182
11206
  }
11183
11207
  }
11184
11208
  }, {
11185
- default: () => [slots.chip?.({
11186
- item,
11187
- index,
11188
- props: slotProps
11189
- })]
11190
- }) : slots.selection?.({
11191
- item,
11192
- index
11193
- }) ?? vue.createVNode("span", {
11209
+ default: () => [slotContent]
11210
+ }) : slotContent ?? vue.createVNode("span", {
11194
11211
  "class": "v-select__selection-text"
11195
11212
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
11196
11213
  "class": "v-select__selection-comma"
@@ -11691,6 +11708,16 @@
11691
11708
  modelValue: true,
11692
11709
  'onUpdate:modelValue': undefined
11693
11710
  };
11711
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
11712
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
11713
+ item,
11714
+ index,
11715
+ props: slotProps
11716
+ }) : slots.selection({
11717
+ item,
11718
+ index
11719
+ })) : undefined;
11720
+ if (hasSlot && !slotContent) return undefined;
11694
11721
  return vue.createVNode("div", {
11695
11722
  "key": item.value,
11696
11723
  "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
@@ -11711,15 +11738,8 @@
11711
11738
  }
11712
11739
  }
11713
11740
  }, {
11714
- default: () => [slots.chip?.({
11715
- item,
11716
- index,
11717
- props: slotProps
11718
- })]
11719
- }) : slots.selection?.({
11720
- item,
11721
- index
11722
- }) ?? vue.createVNode("span", {
11741
+ default: () => [slotContent]
11742
+ }) : slotContent ?? vue.createVNode("span", {
11723
11743
  "class": "v-autocomplete__selection-text"
11724
11744
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
11725
11745
  "class": "v-autocomplete__selection-comma"
@@ -15002,7 +15022,7 @@
15002
15022
  menu.value = !menu.value;
15003
15023
  }
15004
15024
  function onKeydown(e) {
15005
- if (props.readonly || form?.isReadonly.value) return;
15025
+ if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
15006
15026
  const selectionStart = vTextFieldRef.value.selectionStart;
15007
15027
  const length = model.value.length;
15008
15028
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -15243,6 +15263,16 @@
15243
15263
  modelValue: true,
15244
15264
  'onUpdate:modelValue': undefined
15245
15265
  };
15266
+ const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
15267
+ const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
15268
+ item,
15269
+ index,
15270
+ props: slotProps
15271
+ }) : slots.selection({
15272
+ item,
15273
+ index
15274
+ })) : undefined;
15275
+ if (hasSlot && !slotContent) return undefined;
15246
15276
  return vue.createVNode("div", {
15247
15277
  "key": item.value,
15248
15278
  "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
@@ -15263,15 +15293,8 @@
15263
15293
  }
15264
15294
  }
15265
15295
  }, {
15266
- default: () => [slots.chip?.({
15267
- item,
15268
- index,
15269
- props: slotProps
15270
- })]
15271
- }) : slots.selection?.({
15272
- item,
15273
- index
15274
- }) ?? vue.createVNode("span", {
15296
+ default: () => [slotContent]
15297
+ }) : slotContent ?? vue.createVNode("span", {
15275
15298
  "class": "v-combobox__selection-text"
15276
15299
  }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
15277
15300
  "class": "v-combobox__selection-comma"
@@ -22125,7 +22148,6 @@
22125
22148
  });
22126
22149
  }
22127
22150
  function format(value, formatString, locale) {
22128
- const date = new Date(value);
22129
22151
  let options = {};
22130
22152
  switch (formatString) {
22131
22153
  case 'fullDateWithWeekday':
@@ -22144,7 +22166,11 @@
22144
22166
  };
22145
22167
  break;
22146
22168
  case 'keyboardDate':
22147
- options = {};
22169
+ options = {
22170
+ day: '2-digit',
22171
+ month: '2-digit',
22172
+ year: 'numeric'
22173
+ };
22148
22174
  break;
22149
22175
  case 'monthAndDate':
22150
22176
  options = {
@@ -22174,7 +22200,7 @@
22174
22200
  timeZoneName: 'short'
22175
22201
  };
22176
22202
  }
22177
- return new Intl.DateTimeFormat(locale, options).format(date);
22203
+ return new Intl.DateTimeFormat(locale, options).format(date(value) ?? undefined);
22178
22204
  }
22179
22205
  function toISO(adapter, value) {
22180
22206
  const date = adapter.toJsDate(value);
@@ -23951,20 +23977,40 @@
23951
23977
  emit('click:next');
23952
23978
  }
23953
23979
  useRender(() => {
23980
+ const prevSlotProps = {
23981
+ onClick: onClickPrev
23982
+ };
23983
+ const nextSlotProps = {
23984
+ onClick: onClickNext
23985
+ };
23954
23986
  return vue.createVNode("div", {
23955
23987
  "class": "v-stepper-actions"
23956
- }, [vue.createVNode(VBtn, {
23957
- "disabled": ['prev', true].includes(props.disabled),
23958
- "text": t(props.prevText),
23959
- "variant": "text",
23960
- "onClick": onClickPrev
23961
- }, null), vue.createVNode(VBtn, {
23962
- "disabled": ['next', true].includes(props.disabled),
23963
- "color": props.color,
23964
- "text": t(props.nextText),
23965
- "variant": "tonal",
23966
- "onClick": onClickNext
23967
- }, null)]);
23988
+ }, [vue.createVNode(VDefaultsProvider, {
23989
+ "defaults": {
23990
+ VBtn: {
23991
+ disabled: ['prev', true].includes(props.disabled),
23992
+ text: t(props.prevText),
23993
+ variant: 'text'
23994
+ }
23995
+ }
23996
+ }, {
23997
+ default: () => [slots.prev?.({
23998
+ props: prevSlotProps
23999
+ }) ?? vue.createVNode(VBtn, prevSlotProps, null)]
24000
+ }), vue.createVNode(VDefaultsProvider, {
24001
+ "defaults": {
24002
+ VBtn: {
24003
+ color: props.color,
24004
+ disabled: ['next', true].includes(props.disabled),
24005
+ text: t(props.nextText),
24006
+ variant: 'tonal'
24007
+ }
24008
+ }
24009
+ }, {
24010
+ default: () => [slots.next?.({
24011
+ props: nextSlotProps
24012
+ }) ?? vue.createVNode(VBtn, nextSlotProps, null)]
24013
+ })]);
23968
24014
  });
23969
24015
  return {};
23970
24016
  }
@@ -24183,7 +24229,6 @@
24183
24229
  let {
24184
24230
  slots
24185
24231
  } = _ref;
24186
- // TODO: fix typing
24187
24232
  const {
24188
24233
  items: _items,
24189
24234
  next,
@@ -24269,7 +24314,7 @@
24269
24314
  "key": "stepper-actions",
24270
24315
  "onClick:prev": prev,
24271
24316
  "onClick:next": next
24272
- }, null))]
24317
+ }, slots))]
24273
24318
  });
24274
24319
  });
24275
24320
  return {
@@ -24657,7 +24702,7 @@
24657
24702
  date
24658
24703
  };
24659
24704
  }
24660
- const version$1 = "3.3.21";
24705
+ const version$1 = "3.3.23";
24661
24706
  createVuetify$1.version = version$1;
24662
24707
 
24663
24708
  // Vue's inject() can only be used in setup
@@ -24671,7 +24716,7 @@
24671
24716
 
24672
24717
  /* eslint-disable local-rules/sort-imports */
24673
24718
 
24674
- const version = "3.3.21";
24719
+ const version = "3.3.23";
24675
24720
 
24676
24721
  /* eslint-disable local-rules/sort-imports */
24677
24722