@vuetify/nightly 3.8.5-master.2025-05-14 → 3.8.5-pr-21419.3ae3440

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 (57) hide show
  1. package/CHANGELOG.md +17 -3
  2. package/dist/json/attributes.json +3653 -3653
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +150 -150
  5. package/dist/json/web-types.json +6400 -6400
  6. package/dist/vuetify-labs.cjs +53 -37
  7. package/dist/vuetify-labs.css +3989 -3989
  8. package/dist/vuetify-labs.d.ts +605 -602
  9. package/dist/vuetify-labs.esm.js +53 -37
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +53 -37
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +53 -37
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4937 -4937
  16. package/dist/vuetify.d.ts +517 -514
  17. package/dist/vuetify.esm.js +53 -37
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +53 -37
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +589 -583
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.d.ts +84 -84
  25. package/lib/components/VCheckbox/VCheckbox.d.ts +12 -12
  26. package/lib/components/VCombobox/VCombobox.d.ts +84 -84
  27. package/lib/components/VFileInput/VFileInput.d.ts +30 -30
  28. package/lib/components/VInput/VInput.d.ts +12 -12
  29. package/lib/components/VList/VList.d.ts +3 -3
  30. package/lib/components/VList/VList.js.map +1 -1
  31. package/lib/components/VNumberInput/VNumberInput.d.ts +80 -80
  32. package/lib/components/VRadioGroup/VRadioGroup.d.ts +12 -12
  33. package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
  34. package/lib/components/VSelect/VSelect.d.ts +84 -84
  35. package/lib/components/VSelect/VSelect.js +39 -5
  36. package/lib/components/VSelect/VSelect.js.map +1 -1
  37. package/lib/components/VSlider/VSlider.d.ts +12 -12
  38. package/lib/components/VSwitch/VSwitch.d.ts +12 -12
  39. package/lib/components/VTextField/VTextField.d.ts +30 -30
  40. package/lib/components/VTextarea/VTextarea.d.ts +30 -30
  41. package/lib/components/VValidation/VValidation.d.ts +8 -8
  42. package/lib/composables/validation.d.ts +6 -5
  43. package/lib/composables/validation.js +4 -29
  44. package/lib/composables/validation.js.map +1 -1
  45. package/lib/entry-bundler.js +1 -1
  46. package/lib/entry-bundler.js.map +1 -1
  47. package/lib/framework.d.ts +56 -56
  48. package/lib/framework.js +1 -1
  49. package/lib/framework.js.map +1 -1
  50. package/lib/labs/VColorInput/VColorInput.d.ts +12 -12
  51. package/lib/labs/VDateInput/VDateInput.d.ts +84 -84
  52. package/lib/labs/rules/rules.d.ts +9 -5
  53. package/lib/labs/rules/rules.js +73 -51
  54. package/lib/labs/rules/rules.js.map +1 -1
  55. package/lib/util/helpers.js +1 -1
  56. package/lib/util/helpers.js.map +1 -1
  57. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.5-master.2025-05-14
2
+ * Vuetify v3.8.5-pr-21419.3ae3440
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -508,7 +508,7 @@ function getNextElement(elements, location, condition) {
508
508
  }
509
509
  function focusChild(el, location) {
510
510
  const focusable = focusableChildren(el);
511
- if (!location) {
511
+ if (location == null) {
512
512
  if (el === document.activeElement || !el.contains(document.activeElement)) {
513
513
  focusable[0]?.focus();
514
514
  }
@@ -6757,13 +6757,18 @@ function useForm(props) {
6757
6757
  };
6758
6758
  }
6759
6759
 
6760
+ // Utilities
6761
+ const RulesSymbol = Symbol.for('vuetify:rules');
6762
+ function useRules(fn) {
6763
+ const resolveRules = inject$1(RulesSymbol, null);
6764
+ if (!resolveRules) return toRef(fn);
6765
+ return resolveRules(fn);
6766
+ }
6767
+
6760
6768
  // Composables
6761
6769
 
6762
6770
  // Types
6763
6771
 
6764
- // type ValidationRuleParams = [any, string?]
6765
- // type ValidationAlias = string | [string, ...ValidationRuleParams]
6766
-
6767
6772
  const makeValidationProps = propsFactory({
6768
6773
  disabled: {
6769
6774
  type: Boolean,
@@ -6786,7 +6791,6 @@ const makeValidationProps = propsFactory({
6786
6791
  },
6787
6792
  rules: {
6788
6793
  type: Array,
6789
- // type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,
6790
6794
  default: () => []
6791
6795
  },
6792
6796
  modelValue: null,
@@ -6800,7 +6804,7 @@ function useValidation(props) {
6800
6804
  const model = useProxiedModel(props, 'modelValue');
6801
6805
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6802
6806
  const form = useForm(props);
6803
- // const rules = useRules()
6807
+ const rules = useRules(() => props.rules);
6804
6808
  const internalErrorMessages = ref([]);
6805
6809
  const isPristine = shallowRef(true);
6806
6810
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
@@ -6840,28 +6844,6 @@ function useValidation(props) {
6840
6844
  });
6841
6845
  const vm = getCurrentInstance('validation');
6842
6846
  const uid = computed(() => props.name ?? unref(id));
6843
-
6844
- // const resolvedRules = computed(() => props.rules.map(rule => {
6845
- // let ruleName: string | null = null
6846
- // let ruleParams: ValidationRuleParams = [undefined]
6847
- // if (Array.isArray(rule)) {
6848
- // ruleName = rule[0]
6849
- // ruleParams = rule.slice(1) as ValidationRuleParams
6850
- // } else if (typeof rule === 'string') {
6851
- // ruleName = rule
6852
- // }
6853
-
6854
- // if (ruleName !== null) {
6855
- // if (ruleName.startsWith('$')) {
6856
- // ruleName = ruleName.slice(1)
6857
- // }
6858
-
6859
- // return rules?.[ruleName]?.(...ruleParams)
6860
- // } else {
6861
- // return rule
6862
- // }
6863
- // }))
6864
-
6865
6847
  onBeforeMount(() => {
6866
6848
  form.register?.({
6867
6849
  id: uid.value,
@@ -6917,7 +6899,7 @@ function useValidation(props) {
6917
6899
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6918
6900
  const results = [];
6919
6901
  isValidating.value = true;
6920
- for (const rule of props.rules) {
6902
+ for (const rule of rules.value) {
6921
6903
  if (results.length >= Number(props.maxErrors ?? 1)) {
6922
6904
  break;
6923
6905
  }
@@ -12757,6 +12739,7 @@ const VSelect = genericComponent()({
12757
12739
  const selectedValues = computed(() => model.value.map(selection => selection.value));
12758
12740
  const isFocused = shallowRef(false);
12759
12741
  let keyboardLookupPrefix = '';
12742
+ let keyboardLookupIndex = -1;
12760
12743
  let keyboardLookupLastTime;
12761
12744
  const displayItems = computed(() => {
12762
12745
  if (props.hideSelected) {
@@ -12824,16 +12807,49 @@ const VSelect = genericComponent()({
12824
12807
  const now = performance.now();
12825
12808
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
12826
12809
  keyboardLookupPrefix = '';
12810
+ keyboardLookupIndex = -1;
12827
12811
  }
12828
12812
  keyboardLookupPrefix += e.key.toLowerCase();
12829
12813
  keyboardLookupLastTime = now;
12830
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
12814
+ const items = displayItems.value;
12815
+ function findItem() {
12816
+ let result = findItemBase();
12817
+ if (result !== undefined) return result;
12818
+ if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
12819
+ // No matches but we have a repeated letter, try the next item with that prefix
12820
+ keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
12821
+ result = findItemBase();
12822
+ if (result !== undefined) return result;
12823
+ }
12824
+
12825
+ // Still nothing, wrap around to the top
12826
+ keyboardLookupIndex = -1;
12827
+ result = findItemBase();
12828
+ if (result !== undefined) return result;
12829
+
12830
+ // Still nothing, try just the new letter
12831
+ keyboardLookupPrefix = e.key.toLowerCase();
12832
+ return findItemBase();
12833
+ }
12834
+ function findItemBase() {
12835
+ for (let i = 0; i < items.length; i++) {
12836
+ const _item = items[i];
12837
+ if (i > keyboardLookupIndex && _item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
12838
+ keyboardLookupIndex = i;
12839
+ return _item;
12840
+ }
12841
+ }
12842
+ return undefined;
12843
+ }
12844
+ const item = findItem();
12831
12845
  if (item !== undefined) {
12832
- model.value = [item];
12846
+ if (!props.multiple) {
12847
+ model.value = [item];
12848
+ }
12833
12849
  const index = displayItems.value.indexOf(item);
12834
- IN_BROWSER && window.requestAnimationFrame(() => {
12835
- index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
12836
- });
12850
+ if (~index && IN_BROWSER) {
12851
+ listRef.value?.focus(index);
12852
+ }
12837
12853
  }
12838
12854
  }
12839
12855
 
@@ -31929,7 +31945,7 @@ function createVuetify$1() {
31929
31945
  };
31930
31946
  });
31931
31947
  }
31932
- const version$1 = "3.8.5-master.2025-05-14";
31948
+ const version$1 = "3.8.5-pr-21419.3ae3440";
31933
31949
  createVuetify$1.version = version$1;
31934
31950
 
31935
31951
  // Vue's inject() can only be used in setup
@@ -32227,7 +32243,7 @@ var index = /*#__PURE__*/Object.freeze({
32227
32243
 
32228
32244
  /* eslint-disable local-rules/sort-imports */
32229
32245
 
32230
- const version = "3.8.5-master.2025-05-14";
32246
+ const version = "3.8.5-pr-21419.3ae3440";
32231
32247
 
32232
32248
  /* eslint-disable local-rules/sort-imports */
32233
32249