@vuetify/nightly 3.7.6-master.2024-12-26 → 3.7.6-master.2025-01-16

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 (61) hide show
  1. package/dist/json/attributes.json +1540 -1540
  2. package/dist/json/importMap-labs.json +18 -18
  3. package/dist/json/importMap.json +168 -168
  4. package/dist/json/web-types.json +2725 -2705
  5. package/dist/vuetify-labs.css +3281 -3277
  6. package/dist/vuetify-labs.d.ts +129 -104
  7. package/dist/vuetify-labs.esm.js +61 -27
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +61 -27
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +3686 -3682
  12. package/dist/vuetify.d.ts +65 -68
  13. package/dist/vuetify.esm.js +41 -22
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +41 -22
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +930 -924
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +7 -4
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  23. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  24. package/lib/components/VCombobox/VCombobox.mjs +7 -4
  25. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  26. package/lib/components/VDialog/VDialog.css +5 -2
  27. package/lib/components/VDialog/VDialog.sass +6 -2
  28. package/lib/components/VField/VField.mjs +1 -1
  29. package/lib/components/VField/VField.mjs.map +1 -1
  30. package/lib/components/VInput/VInput.css +1 -1
  31. package/lib/components/VInput/VInput.sass +1 -1
  32. package/lib/components/VProgressLinear/VProgressLinear.mjs +1 -1
  33. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  34. package/lib/components/VSlideGroup/VSlideGroup.mjs +12 -2
  35. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  36. package/lib/components/VSparkline/VBarline.mjs +3 -2
  37. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  38. package/lib/components/VSparkline/VTrendline.mjs +2 -1
  39. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  40. package/lib/components/VSparkline/index.d.mts +7 -10
  41. package/lib/components/VSparkline/util/line.mjs +1 -1
  42. package/lib/components/VSparkline/util/line.mjs.map +1 -1
  43. package/lib/components/VStepper/VStepperItem.mjs +1 -0
  44. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  45. package/lib/components/VTextarea/VTextarea.css +1 -0
  46. package/lib/components/VTextarea/VTextarea.sass +1 -0
  47. package/lib/components/index.d.mts +7 -10
  48. package/lib/composables/filter.mjs +3 -3
  49. package/lib/composables/filter.mjs.map +1 -1
  50. package/lib/entry-bundler.mjs +1 -1
  51. package/lib/framework.mjs +1 -1
  52. package/lib/index.d.mts +58 -58
  53. package/lib/labs/VDateInput/VDateInput.mjs +19 -5
  54. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  55. package/lib/labs/VDateInput/index.d.mts +176 -97
  56. package/lib/labs/components.d.mts +227 -199
  57. package/lib/locale/az.mjs +28 -28
  58. package/lib/locale/az.mjs.map +1 -1
  59. package/lib/locale/nl.mjs +5 -5
  60. package/lib/locale/nl.mjs.map +1 -1
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.6-master.2024-12-26
2
+ * Vuetify v3.7.6-master.2025-01-16
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5036,7 +5036,7 @@ const VProgressLinear = genericComponent()({
5036
5036
  "aria-hidden": props.active ? 'false' : 'true',
5037
5037
  "aria-valuemin": "0",
5038
5038
  "aria-valuemax": props.max,
5039
- "aria-valuenow": props.indeterminate ? undefined : normalizedValue.value,
5039
+ "aria-valuenow": props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value),
5040
5040
  "onClick": props.clickable && handleClick
5041
5041
  }, {
5042
5042
  default: () => [props.stream && createVNode("div", {
@@ -7615,6 +7615,14 @@ const VSlideGroup = genericComponent()({
7615
7615
  toFocus('last');
7616
7616
  }
7617
7617
  }
7618
+ function getSiblingElement(el, location) {
7619
+ if (!el) return undefined;
7620
+ let sibling = el;
7621
+ do {
7622
+ sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'];
7623
+ } while (sibling?.hasAttribute('disabled'));
7624
+ return sibling;
7625
+ }
7618
7626
  function focus(location) {
7619
7627
  if (!contentRef.el) return;
7620
7628
  let el;
@@ -7622,15 +7630,17 @@ const VSlideGroup = genericComponent()({
7622
7630
  const focusable = focusableChildren(contentRef.el);
7623
7631
  el = focusable[0];
7624
7632
  } else if (location === 'next') {
7625
- el = contentRef.el.querySelector(':focus')?.nextElementSibling;
7633
+ el = getSiblingElement(contentRef.el.querySelector(':focus'), location);
7626
7634
  if (!el) return focus('first');
7627
7635
  } else if (location === 'prev') {
7628
- el = contentRef.el.querySelector(':focus')?.previousElementSibling;
7636
+ el = getSiblingElement(contentRef.el.querySelector(':focus'), location);
7629
7637
  if (!el) return focus('last');
7630
7638
  } else if (location === 'first') {
7631
7639
  el = contentRef.el.firstElementChild;
7640
+ if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next');
7632
7641
  } else if (location === 'last') {
7633
7642
  el = contentRef.el.lastElementChild;
7643
+ if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev');
7634
7644
  }
7635
7645
  if (el) {
7636
7646
  el.focus({
@@ -11578,7 +11588,7 @@ const VField = genericComponent()({
11578
11588
  useRender(() => {
11579
11589
  const isOutlined = props.variant === 'outlined';
11580
11590
  const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
11581
- const hasClear = !!(props.clearable || slots.clear);
11591
+ const hasClear = !!(props.clearable || slots.clear) && !props.disabled;
11582
11592
  const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
11583
11593
  const label = () => slots.label ? slots.label({
11584
11594
  ...slotProps.value,
@@ -12860,8 +12870,8 @@ function filterItems(items, query, options) {
12860
12870
  return array;
12861
12871
  }
12862
12872
  function useFilter(props, items, query, options) {
12863
- const filteredItems = ref([]);
12864
- const filteredMatches = ref(new Map());
12873
+ const filteredItems = shallowRef([]);
12874
+ const filteredMatches = shallowRef(new Map());
12865
12875
  const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));
12866
12876
  watchEffect(() => {
12867
12877
  const _query = typeof query === 'function' ? query() : unref(query);
@@ -13022,7 +13032,7 @@ const VAutocomplete = genericComponent()({
13022
13032
  menu.value = !menu.value;
13023
13033
  }
13024
13034
  function onListKeydown(e) {
13025
- if (checkPrintable(e)) {
13035
+ if (e.key !== ' ' && checkPrintable(e)) {
13026
13036
  vTextFieldRef.value?.focus();
13027
13037
  }
13028
13038
  }
@@ -13030,7 +13040,7 @@ const VAutocomplete = genericComponent()({
13030
13040
  if (form.isReadonly.value) return;
13031
13041
  const selectionStart = vTextFieldRef.value.selectionStart;
13032
13042
  const length = model.value.length;
13033
- if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
13043
+ if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
13034
13044
  e.preventDefault();
13035
13045
  }
13036
13046
  if (['Enter', 'ArrowDown'].includes(e.key)) {
@@ -13053,12 +13063,14 @@ const VAutocomplete = genericComponent()({
13053
13063
  if (['Backspace', 'Delete'].includes(e.key)) {
13054
13064
  if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
13055
13065
  if (~selectionIndex.value) {
13066
+ e.preventDefault();
13056
13067
  const originalSelectionIndex = selectionIndex.value;
13057
13068
  select(model.value[selectionIndex.value], false);
13058
13069
  selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
13059
13070
  } else if (e.key === 'Backspace' && !search.value) {
13060
13071
  selectionIndex.value = length - 1;
13061
13072
  }
13073
+ return;
13062
13074
  }
13063
13075
  if (!props.multiple) return;
13064
13076
  if (e.key === 'ArrowLeft') {
@@ -13070,8 +13082,7 @@ const VAutocomplete = genericComponent()({
13070
13082
  selectionIndex.value = -1;
13071
13083
  vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);
13072
13084
  }
13073
- }
13074
- if (e.key === 'ArrowRight') {
13085
+ } else if (e.key === 'ArrowRight') {
13075
13086
  if (selectionIndex.value < 0) return;
13076
13087
  const next = selectionIndex.value + 1;
13077
13088
  if (model.value[next]) {
@@ -13080,6 +13091,8 @@ const VAutocomplete = genericComponent()({
13080
13091
  selectionIndex.value = -1;
13081
13092
  vTextFieldRef.value.setSelectionRange(0, 0);
13082
13093
  }
13094
+ } else if (~selectionIndex.value && checkPrintable(e)) {
13095
+ selectionIndex.value = -1;
13083
13096
  }
13084
13097
  }
13085
13098
  function onChange(e) {
@@ -16095,7 +16108,7 @@ const VColorPickerPreview = defineComponent({
16095
16108
  const result = await eyeDropper.open({
16096
16109
  signal: abortController.signal
16097
16110
  });
16098
- const colorHexValue = HexToHSV(result.sRGBHex);
16111
+ const colorHexValue = RGBtoHSV(parseColor(result.sRGBHex));
16099
16112
  emit('update:color', {
16100
16113
  ...(props.color ?? nullColor),
16101
16114
  ...colorHexValue
@@ -16906,7 +16919,7 @@ const VCombobox = genericComponent()({
16906
16919
  menu.value = !menu.value;
16907
16920
  }
16908
16921
  function onListKeydown(e) {
16909
- if (checkPrintable(e)) {
16922
+ if (e.key !== ' ' && checkPrintable(e)) {
16910
16923
  vTextFieldRef.value?.focus();
16911
16924
  }
16912
16925
  }
@@ -16915,7 +16928,7 @@ const VCombobox = genericComponent()({
16915
16928
  if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
16916
16929
  const selectionStart = vTextFieldRef.value.selectionStart;
16917
16930
  const length = model.value.length;
16918
- if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
16931
+ if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
16919
16932
  e.preventDefault();
16920
16933
  }
16921
16934
  if (['Enter', 'ArrowDown'].includes(e.key)) {
@@ -16945,12 +16958,14 @@ const VCombobox = genericComponent()({
16945
16958
  if (['Backspace', 'Delete'].includes(e.key)) {
16946
16959
  if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
16947
16960
  if (~selectionIndex.value) {
16961
+ e.preventDefault();
16948
16962
  const originalSelectionIndex = selectionIndex.value;
16949
16963
  select(model.value[selectionIndex.value], false);
16950
16964
  selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
16951
16965
  } else if (e.key === 'Backspace' && !search.value) {
16952
16966
  selectionIndex.value = length - 1;
16953
16967
  }
16968
+ return;
16954
16969
  }
16955
16970
  if (!props.multiple) return;
16956
16971
  if (e.key === 'ArrowLeft') {
@@ -16962,8 +16977,7 @@ const VCombobox = genericComponent()({
16962
16977
  selectionIndex.value = -1;
16963
16978
  vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length);
16964
16979
  }
16965
- }
16966
- if (e.key === 'ArrowRight') {
16980
+ } else if (e.key === 'ArrowRight') {
16967
16981
  if (selectionIndex.value < 0) return;
16968
16982
  const next = selectionIndex.value + 1;
16969
16983
  if (model.value[next]) {
@@ -16972,6 +16986,8 @@ const VCombobox = genericComponent()({
16972
16986
  selectionIndex.value = -1;
16973
16987
  vTextFieldRef.value.setSelectionRange(0, 0);
16974
16988
  }
16989
+ } else if (~selectionIndex.value && checkPrintable(e)) {
16990
+ selectionIndex.value = -1;
16975
16991
  }
16976
16992
  }
16977
16993
  function onAfterEnter() {
@@ -25544,7 +25560,7 @@ const makeLineProps = propsFactory({
25544
25560
  default: 8
25545
25561
  },
25546
25562
  showLabels: Boolean,
25547
- smooth: Boolean,
25563
+ smooth: [Boolean, String, Number],
25548
25564
  width: {
25549
25565
  type: [Number, String],
25550
25566
  default: 300
@@ -25625,6 +25641,7 @@ const VBarline = genericComponent()({
25625
25641
  });
25626
25642
  const bars = computed(() => genBars(items.value, boundary.value));
25627
25643
  const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);
25644
+ const smooth = computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
25628
25645
  useRender(() => {
25629
25646
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
25630
25647
  return createVNode("svg", {
@@ -25646,8 +25663,8 @@ const VBarline = genericComponent()({
25646
25663
  "y": item.y,
25647
25664
  "width": lineWidth.value,
25648
25665
  "height": item.height,
25649
- "rx": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0,
25650
- "ry": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0
25666
+ "rx": smooth.value,
25667
+ "ry": smooth.value
25651
25668
  }, [props.autoDraw && createVNode(Fragment, null, [createVNode("animate", {
25652
25669
  "attributeName": "y",
25653
25670
  "from": item.y + item.height,
@@ -25849,7 +25866,8 @@ const VTrendline = genericComponent()({
25849
25866
  immediate: true
25850
25867
  });
25851
25868
  function genPath$1(fill) {
25852
- return genPath(genPoints(items.value, boundary.value), props.smooth ? 8 : Number(props.smooth), fill, parseInt(props.height, 10));
25869
+ const smoothValue = typeof props.smooth === 'boolean' ? props.smooth ? 8 : 0 : Number(props.smooth);
25870
+ return genPath(genPoints(items.value, boundary.value), smoothValue, fill, parseInt(props.height, 10));
25853
25871
  }
25854
25872
  useRender(() => {
25855
25873
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
@@ -26173,6 +26191,7 @@ const VStepperItem = genericComponent()({
26173
26191
  'v-stepper-item--error': hasError.value
26174
26192
  }, group?.selectedClass.value],
26175
26193
  "disabled": !props.editable,
26194
+ "type": "button",
26176
26195
  "onClick": onClick
26177
26196
  }, [isClickable.value && genOverlays(true, 'v-stepper-item'), createVNode(VAvatar, {
26178
26197
  "key": "stepper-avatar",
@@ -28062,8 +28081,14 @@ const VCalendar = genericComponent()({
28062
28081
 
28063
28082
  // Types
28064
28083
 
28084
+ // Types
28085
+
28065
28086
  const makeVDateInputProps = propsFactory({
28066
28087
  hideActions: Boolean,
28088
+ location: {
28089
+ type: String,
28090
+ default: 'bottom start'
28091
+ },
28067
28092
  ...makeFocusProps(),
28068
28093
  ...makeVConfirmEditProps(),
28069
28094
  ...makeVTextFieldProps({
@@ -28073,7 +28098,7 @@ const makeVDateInputProps = propsFactory({
28073
28098
  ...omit(makeVDatePickerProps({
28074
28099
  weeksInMonth: 'dynamic',
28075
28100
  hideHeader: true
28076
- }), ['active'])
28101
+ }), ['active', 'location'])
28077
28102
  }, 'VDateInput');
28078
28103
  const VDateInput = genericComponent()({
28079
28104
  name: 'VDateInput',
@@ -28129,7 +28154,7 @@ const VDateInput = genericComponent()({
28129
28154
  }
28130
28155
  useRender(() => {
28131
28156
  const confirmEditProps = VConfirmEdit.filterProps(props);
28132
- const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
28157
+ const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
28133
28158
  const textFieldProps = VTextField.filterProps(props);
28134
28159
  return createVNode(VTextField, mergeProps(textFieldProps, {
28135
28160
  "class": props.class,
@@ -28147,18 +28172,23 @@ const VDateInput = genericComponent()({
28147
28172
  "onUpdate:modelValue": $event => menu.value = $event,
28148
28173
  "activator": "parent",
28149
28174
  "min-width": "0",
28175
+ "location": props.location,
28150
28176
  "closeOnContentClick": false,
28151
28177
  "openOnClick": false
28152
28178
  }, {
28153
28179
  default: () => [createVNode(VConfirmEdit, mergeProps(confirmEditProps, {
28154
28180
  "modelValue": model.value,
28155
28181
  "onUpdate:modelValue": $event => model.value = $event,
28156
- "onSave": onSave
28182
+ "onSave": onSave,
28183
+ "onCancel": () => menu.value = false
28157
28184
  }), {
28158
28185
  default: _ref2 => {
28159
28186
  let {
28160
28187
  actions,
28161
- model: proxyModel
28188
+ model: proxyModel,
28189
+ save,
28190
+ cancel,
28191
+ isPristine
28162
28192
  } = _ref2;
28163
28193
  return createVNode(VDatePicker, mergeProps(datePickerProps, {
28164
28194
  "modelValue": props.hideActions ? model.value : proxyModel.value,
@@ -28172,7 +28202,11 @@ const VDateInput = genericComponent()({
28172
28202
  },
28173
28203
  "onMousedown": e => e.preventDefault()
28174
28204
  }), {
28175
- actions: !props.hideActions ? actions : undefined
28205
+ actions: !props.hideActions ? () => slots.actions?.({
28206
+ save,
28207
+ cancel,
28208
+ isPristine
28209
+ }) ?? actions() : undefined
28176
28210
  });
28177
28211
  }
28178
28212
  })]
@@ -30746,7 +30780,7 @@ function createVuetify$1() {
30746
30780
  goTo
30747
30781
  };
30748
30782
  }
30749
- const version$1 = "3.7.6-master.2024-12-26";
30783
+ const version$1 = "3.7.6-master.2025-01-16";
30750
30784
  createVuetify$1.version = version$1;
30751
30785
 
30752
30786
  // Vue's inject() can only be used in setup
@@ -30999,7 +31033,7 @@ var index = /*#__PURE__*/Object.freeze({
30999
31033
 
31000
31034
  /* eslint-disable local-rules/sort-imports */
31001
31035
 
31002
- const version = "3.7.6-master.2024-12-26";
31036
+ const version = "3.7.6-master.2025-01-16";
31003
31037
 
31004
31038
  /* eslint-disable local-rules/sort-imports */
31005
31039