vuetify 3.6.5 → 3.6.6

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 (51) hide show
  1. package/dist/json/importMap-labs.json +22 -22
  2. package/dist/json/importMap.json +168 -168
  3. package/dist/json/web-types.json +7 -7
  4. package/dist/vuetify-labs.css +1919 -2135
  5. package/dist/vuetify-labs.d.ts +61 -37
  6. package/dist/vuetify-labs.esm.js +43 -25
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +43 -25
  9. package/dist/vuetify-labs.min.css +3 -3
  10. package/dist/vuetify.css +1163 -1379
  11. package/dist/vuetify.d.ts +117 -93
  12. package/dist/vuetify.esm.js +15 -9
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +15 -9
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +3 -3
  17. package/dist/vuetify.min.js +18 -17
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VBanner/VBanner.mjs +3 -1
  20. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  21. package/lib/components/VBanner/index.d.mts +15 -9
  22. package/lib/components/VChipGroup/index.d.mts +15 -9
  23. package/lib/components/VMenu/VMenu.mjs +2 -1
  24. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  25. package/lib/components/VSelect/VSelect.mjs +1 -1
  26. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  27. package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
  28. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  29. package/lib/components/VSlideGroup/index.d.mts +15 -9
  30. package/lib/components/VSwitch/VSwitch.css +44 -0
  31. package/lib/components/VSwitch/VSwitch.mjs +4 -3
  32. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  33. package/lib/components/VSwitch/VSwitch.sass +55 -0
  34. package/lib/components/VTabs/index.d.mts +15 -9
  35. package/lib/components/index.d.mts +60 -36
  36. package/lib/entry-bundler.mjs +1 -1
  37. package/lib/framework.mjs +1 -1
  38. package/lib/index.d.mts +57 -57
  39. package/lib/labs/VNumberInput/VNumberInput.mjs +16 -6
  40. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  41. package/lib/labs/VNumberInput/index.d.mts +1 -1
  42. package/lib/labs/VTreeview/VTreeviewChildren.mjs +12 -10
  43. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  44. package/lib/labs/components.d.mts +1 -1
  45. package/lib/locale/de.mjs +4 -4
  46. package/lib/locale/de.mjs.map +1 -1
  47. package/lib/locale/hu.mjs +18 -18
  48. package/lib/locale/hu.mjs.map +1 -1
  49. package/lib/styles/generic/_colors.scss +0 -1
  50. package/lib/styles/main.css +0 -260
  51. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.5
2
+ * Vuetify v3.6.6
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -7372,7 +7372,9 @@
7372
7372
  validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
7373
7373
  },
7374
7374
  ...makeComponentProps(),
7375
- ...makeDisplayProps(),
7375
+ ...makeDisplayProps({
7376
+ mobile: null
7377
+ }),
7376
7378
  ...makeTagProps(),
7377
7379
  ...makeGroupProps({
7378
7380
  selectedClass: 'v-slide-group-item--active'
@@ -11103,7 +11105,7 @@
11103
11105
  },
11104
11106
  closeParents(e) {
11105
11107
  setTimeout(() => {
11106
- if (!openChildren.value && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11108
+ if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11107
11109
  isActive.value = false;
11108
11110
  parent?.closeParents();
11109
11111
  }
@@ -11142,6 +11144,7 @@
11142
11144
  function onKeydown(e) {
11143
11145
  if (props.disabled) return;
11144
11146
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11147
+ if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11145
11148
  if (e.key === 'Enter') e.preventDefault();
11146
11149
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11147
11150
  if (!nextElement) {
@@ -12323,7 +12326,7 @@
12323
12326
  let keyboardLookupLastTime;
12324
12327
  const displayItems = vue.computed(() => {
12325
12328
  if (props.hideSelected) {
12326
- return items.value.filter(item => !model.value.some(s => s === item));
12329
+ return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
12327
12330
  }
12328
12331
  return items.value;
12329
12332
  });
@@ -13349,7 +13352,9 @@
13349
13352
  ...makeComponentProps(),
13350
13353
  ...makeDensityProps(),
13351
13354
  ...makeDimensionProps(),
13352
- ...makeDisplayProps(),
13355
+ ...makeDisplayProps({
13356
+ mobile: null
13357
+ }),
13353
13358
  ...makeElevationProps(),
13354
13359
  ...makeLocationProps(),
13355
13360
  ...makePositionProps(),
@@ -26176,6 +26181,7 @@
26176
26181
  blur
26177
26182
  } = useFocus(props);
26178
26183
  const control = vue.ref();
26184
+ const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
26179
26185
  const loaderColor = vue.computed(() => {
26180
26186
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
26181
26187
  });
@@ -26244,7 +26250,7 @@
26244
26250
  backgroundColorStyles
26245
26251
  } = _ref3;
26246
26252
  return vue.createVNode("div", {
26247
- "class": ['v-switch__track', ...backgroundColorClasses.value],
26253
+ "class": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
26248
26254
  "style": backgroundColorStyles.value,
26249
26255
  "onClick": onTrackClick
26250
26256
  }, [slots['track-true'] && vue.createVNode("div", {
@@ -26265,7 +26271,7 @@
26265
26271
  return vue.createVNode(vue.Fragment, null, [inputNode, vue.createVNode("div", {
26266
26272
  "class": ['v-switch__thumb', {
26267
26273
  'v-switch__thumb--filled': icon || props.loading
26268
- }, props.inset ? undefined : backgroundColorClasses.value],
26274
+ }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],
26269
26275
  "style": props.inset ? undefined : backgroundColorStyles.value
26270
26276
  }, [slots.thumb ? vue.createVNode(VDefaultsProvider, {
26271
26277
  "defaults": {
@@ -27969,10 +27975,12 @@
27969
27975
  if (canDecrease.value) model.value = +(model.value - props.step).toFixed(decimals);
27970
27976
  }
27971
27977
  }
27972
- function onClickUp() {
27978
+ function onClickUp(e) {
27979
+ e.stopPropagation();
27973
27980
  toggleUpDown();
27974
27981
  }
27975
- function onClickDown() {
27982
+ function onClickDown(e) {
27983
+ e.stopPropagation();
27976
27984
  toggleUpDown(false);
27977
27985
  }
27978
27986
  function onKeydown(e) {
@@ -27996,6 +28004,9 @@
27996
28004
  function onModelUpdate(v) {
27997
28005
  model.value = v ? +v : undefined;
27998
28006
  }
28007
+ function onControlMousedown(e) {
28008
+ e.stopPropagation();
28009
+ }
27999
28010
  useRender(() => {
28000
28011
  const {
28001
28012
  modelValue: _,
@@ -28014,7 +28025,8 @@
28014
28025
  "icon": "$expand",
28015
28026
  "size": "small",
28016
28027
  "tabindex": "-1",
28017
- "onClick": onClickDown
28028
+ "onClick": onClickDown,
28029
+ "onMousedown": onControlMousedown
28018
28030
  }, null) : vue.createVNode(VDefaultsProvider, {
28019
28031
  "key": "decrement-defaults",
28020
28032
  "defaults": {
@@ -28038,6 +28050,7 @@
28038
28050
  "name": "increment-btn",
28039
28051
  "icon": "$collapse",
28040
28052
  "onClick": onClickUp,
28053
+ "onMousedown": onControlMousedown,
28041
28054
  "size": "small",
28042
28055
  "tabindex": "-1"
28043
28056
  }, null) : vue.createVNode(VDefaultsProvider, {
@@ -28070,7 +28083,8 @@
28070
28083
  "icon": "$plus",
28071
28084
  "tile": true,
28072
28085
  "tabindex": "-1",
28073
- "onClick": onClickUp
28086
+ "onClick": onClickUp,
28087
+ "onMousedown": onControlMousedown
28074
28088
  }, null)]) : !props.reverse ? vue.createVNode(vue.Fragment, null, [dividerNode(), controlNode()]) : undefined;
28075
28089
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
28076
28090
  const prependInnerControl = controlVariant.value === 'split' ? vue.createVNode("div", {
@@ -28081,7 +28095,8 @@
28081
28095
  "icon": "$minus",
28082
28096
  "tile": true,
28083
28097
  "tabindex": "-1",
28084
- "onClick": onClickDown
28098
+ "onClick": onClickDown,
28099
+ "onMousedown": onControlMousedown
28085
28100
  }, null), vue.createVNode(VDivider, {
28086
28101
  "vertical": true
28087
28102
  }, null)]) : props.reverse ? vue.createVNode(vue.Fragment, null, [controlNode(), dividerNode()]) : undefined;
@@ -28099,7 +28114,8 @@
28099
28114
  'v-number-input--stacked': controlVariant.value === 'stacked'
28100
28115
  }, props.class]
28101
28116
  }, textFieldProps, {
28102
- "style": props.style
28117
+ "style": props.style,
28118
+ "inputmode": "decimal"
28103
28119
  }), {
28104
28120
  ...slots,
28105
28121
  'append-inner': hasAppendInner ? function () {
@@ -29363,17 +29379,18 @@
29363
29379
  emit,
29364
29380
  slots
29365
29381
  } = _ref;
29366
- const isLoading = vue.shallowRef(false);
29367
- const hasLoaded = vue.shallowRef(false);
29382
+ const isLoading = vue.shallowRef(null);
29368
29383
  function checkChildren(item) {
29369
29384
  return new Promise(resolve => {
29370
- if (!props.items?.length || !props.loadChildren || hasLoaded.value) return resolve();
29371
- isLoading.value = true;
29372
- props.loadChildren(item).then(resolve);
29373
- }).then(() => {
29374
- hasLoaded.value = true;
29385
+ if (!props.items?.length || !props.loadChildren) return resolve();
29386
+ if (item?.children?.length === 0) {
29387
+ isLoading.value = item.value;
29388
+ props.loadChildren(item).then(resolve);
29389
+ return;
29390
+ }
29391
+ resolve();
29375
29392
  }).finally(() => {
29376
- isLoading.value = false;
29393
+ isLoading.value = null;
29377
29394
  });
29378
29395
  }
29379
29396
  function onClick(e, item) {
@@ -29386,6 +29403,7 @@
29386
29403
  props: itemProps,
29387
29404
  raw: item
29388
29405
  } = _ref2;
29406
+ const loading = isLoading.value === item.value;
29389
29407
  const slotsWithItem = {
29390
29408
  prepend: slots.prepend ? slotProps => slots.prepend?.({
29391
29409
  ...slotProps,
@@ -29399,7 +29417,7 @@
29399
29417
  "key": item.value,
29400
29418
  "tabindex": "-1",
29401
29419
  "modelValue": isSelected,
29402
- "loading": isLoading.value,
29420
+ "loading": loading,
29403
29421
  "indeterminate": isIndeterminate,
29404
29422
  "onClick": e => onClick(e, item)
29405
29423
  }, null);
@@ -29423,7 +29441,7 @@
29423
29441
  props: activatorProps
29424
29442
  } = _ref4;
29425
29443
  return vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, activatorProps, {
29426
- "loading": isLoading.value,
29444
+ "loading": loading,
29427
29445
  "onClick": e => onClick(e, item)
29428
29446
  }), slotsWithItem);
29429
29447
  },
@@ -30076,7 +30094,7 @@
30076
30094
  goTo
30077
30095
  };
30078
30096
  }
30079
- const version$1 = "3.6.5";
30097
+ const version$1 = "3.6.6";
30080
30098
  createVuetify$1.version = version$1;
30081
30099
 
30082
30100
  // Vue's inject() can only be used in setup
@@ -30329,7 +30347,7 @@
30329
30347
 
30330
30348
  /* eslint-disable local-rules/sort-imports */
30331
30349
 
30332
- const version = "3.6.5";
30350
+ const version = "3.6.6";
30333
30351
 
30334
30352
  /* eslint-disable local-rules/sort-imports */
30335
30353