@vuetify/nightly 3.7.6-master.2025-01-15 → 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 (43) hide show
  1. package/dist/json/attributes.json +3190 -3190
  2. package/dist/json/importMap-labs.json +18 -18
  3. package/dist/json/importMap.json +164 -164
  4. package/dist/json/web-types.json +6252 -6232
  5. package/dist/vuetify-labs.css +2912 -2909
  6. package/dist/vuetify-labs.d.ts +129 -104
  7. package/dist/vuetify-labs.esm.js +53 -20
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +53 -20
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +3437 -3434
  12. package/dist/vuetify.d.ts +62 -65
  13. package/dist/vuetify.esm.js +33 -15
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +33 -15
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +29 -23
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -3
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VCombobox/VCombobox.mjs +6 -3
  23. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  24. package/lib/components/VDialog/VDialog.css +5 -2
  25. package/lib/components/VDialog/VDialog.sass +6 -2
  26. package/lib/components/VSlideGroup/VSlideGroup.mjs +12 -2
  27. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  28. package/lib/components/VSparkline/VBarline.mjs +3 -2
  29. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  30. package/lib/components/VSparkline/VTrendline.mjs +2 -1
  31. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  32. package/lib/components/VSparkline/index.d.mts +7 -10
  33. package/lib/components/VSparkline/util/line.mjs +1 -1
  34. package/lib/components/VSparkline/util/line.mjs.map +1 -1
  35. package/lib/components/index.d.mts +7 -10
  36. package/lib/entry-bundler.mjs +1 -1
  37. package/lib/framework.mjs +1 -1
  38. package/lib/index.d.mts +55 -55
  39. package/lib/labs/VDateInput/VDateInput.mjs +19 -5
  40. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  41. package/lib/labs/VDateInput/index.d.mts +176 -97
  42. package/lib/labs/components.d.mts +227 -199
  43. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.6-master.2025-01-15
2
+ * Vuetify v3.7.6-master.2025-01-16
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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({
@@ -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) {
@@ -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();
@@ -28063,8 +28081,14 @@ const VCalendar = genericComponent()({
28063
28081
 
28064
28082
  // Types
28065
28083
 
28084
+ // Types
28085
+
28066
28086
  const makeVDateInputProps = propsFactory({
28067
28087
  hideActions: Boolean,
28088
+ location: {
28089
+ type: String,
28090
+ default: 'bottom start'
28091
+ },
28068
28092
  ...makeFocusProps(),
28069
28093
  ...makeVConfirmEditProps(),
28070
28094
  ...makeVTextFieldProps({
@@ -28074,7 +28098,7 @@ const makeVDateInputProps = propsFactory({
28074
28098
  ...omit(makeVDatePickerProps({
28075
28099
  weeksInMonth: 'dynamic',
28076
28100
  hideHeader: true
28077
- }), ['active'])
28101
+ }), ['active', 'location'])
28078
28102
  }, 'VDateInput');
28079
28103
  const VDateInput = genericComponent()({
28080
28104
  name: 'VDateInput',
@@ -28130,7 +28154,7 @@ const VDateInput = genericComponent()({
28130
28154
  }
28131
28155
  useRender(() => {
28132
28156
  const confirmEditProps = VConfirmEdit.filterProps(props);
28133
- const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
28157
+ const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
28134
28158
  const textFieldProps = VTextField.filterProps(props);
28135
28159
  return createVNode(VTextField, mergeProps(textFieldProps, {
28136
28160
  "class": props.class,
@@ -28148,18 +28172,23 @@ const VDateInput = genericComponent()({
28148
28172
  "onUpdate:modelValue": $event => menu.value = $event,
28149
28173
  "activator": "parent",
28150
28174
  "min-width": "0",
28175
+ "location": props.location,
28151
28176
  "closeOnContentClick": false,
28152
28177
  "openOnClick": false
28153
28178
  }, {
28154
28179
  default: () => [createVNode(VConfirmEdit, mergeProps(confirmEditProps, {
28155
28180
  "modelValue": model.value,
28156
28181
  "onUpdate:modelValue": $event => model.value = $event,
28157
- "onSave": onSave
28182
+ "onSave": onSave,
28183
+ "onCancel": () => menu.value = false
28158
28184
  }), {
28159
28185
  default: _ref2 => {
28160
28186
  let {
28161
28187
  actions,
28162
- model: proxyModel
28188
+ model: proxyModel,
28189
+ save,
28190
+ cancel,
28191
+ isPristine
28163
28192
  } = _ref2;
28164
28193
  return createVNode(VDatePicker, mergeProps(datePickerProps, {
28165
28194
  "modelValue": props.hideActions ? model.value : proxyModel.value,
@@ -28173,7 +28202,11 @@ const VDateInput = genericComponent()({
28173
28202
  },
28174
28203
  "onMousedown": e => e.preventDefault()
28175
28204
  }), {
28176
- actions: !props.hideActions ? actions : undefined
28205
+ actions: !props.hideActions ? () => slots.actions?.({
28206
+ save,
28207
+ cancel,
28208
+ isPristine
28209
+ }) ?? actions() : undefined
28177
28210
  });
28178
28211
  }
28179
28212
  })]
@@ -30747,7 +30780,7 @@ function createVuetify$1() {
30747
30780
  goTo
30748
30781
  };
30749
30782
  }
30750
- const version$1 = "3.7.6-master.2025-01-15";
30783
+ const version$1 = "3.7.6-master.2025-01-16";
30751
30784
  createVuetify$1.version = version$1;
30752
30785
 
30753
30786
  // Vue's inject() can only be used in setup
@@ -31000,7 +31033,7 @@ var index = /*#__PURE__*/Object.freeze({
31000
31033
 
31001
31034
  /* eslint-disable local-rules/sort-imports */
31002
31035
 
31003
- const version = "3.7.6-master.2025-01-15";
31036
+ const version = "3.7.6-master.2025-01-16";
31004
31037
 
31005
31038
  /* eslint-disable local-rules/sort-imports */
31006
31039