@vuetify/nightly 3.8.5-master.2025-05-14 → 3.8.5-master.2025-05-15

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 (49) hide show
  1. package/CHANGELOG.md +10 -3
  2. package/dist/json/attributes.json +3103 -3103
  3. package/dist/json/importMap-labs.json +6 -6
  4. package/dist/json/importMap.json +140 -140
  5. package/dist/json/web-types.json +5966 -5966
  6. package/dist/vuetify-labs.cjs +13 -31
  7. package/dist/vuetify-labs.css +3666 -3666
  8. package/dist/vuetify-labs.d.ts +590 -587
  9. package/dist/vuetify-labs.esm.js +13 -31
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +13 -31
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +13 -31
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2923 -2923
  16. package/dist/vuetify.d.ts +502 -499
  17. package/dist/vuetify.esm.js +13 -31
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +13 -31
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +570 -568
  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/VNumberInput/VNumberInput.d.ts +80 -80
  30. package/lib/components/VRadioGroup/VRadioGroup.d.ts +12 -12
  31. package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
  32. package/lib/components/VSelect/VSelect.d.ts +84 -84
  33. package/lib/components/VSlider/VSlider.d.ts +12 -12
  34. package/lib/components/VSwitch/VSwitch.d.ts +12 -12
  35. package/lib/components/VTextField/VTextField.d.ts +30 -30
  36. package/lib/components/VTextarea/VTextarea.d.ts +30 -30
  37. package/lib/components/VValidation/VValidation.d.ts +8 -8
  38. package/lib/composables/validation.d.ts +6 -5
  39. package/lib/composables/validation.js +4 -29
  40. package/lib/composables/validation.js.map +1 -1
  41. package/lib/entry-bundler.js +1 -1
  42. package/lib/framework.d.ts +44 -44
  43. package/lib/framework.js +1 -1
  44. package/lib/labs/VColorInput/VColorInput.d.ts +12 -12
  45. package/lib/labs/VDateInput/VDateInput.d.ts +84 -84
  46. package/lib/labs/rules/rules.d.ts +9 -5
  47. package/lib/labs/rules/rules.js +73 -51
  48. package/lib/labs/rules/rules.js.map +1 -1
  49. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import type { InjectionKey } from 'vue';
1
+ import type { InjectionKey, Ref } from 'vue';
2
2
  import type { LocaleInstance } from "../../composables/locale.js";
3
- import type { ValidationRule } from "../../composables/validation.js";
3
+ import type { ValidationProps, ValidationRule } from "../../composables/validation.js";
4
4
  export type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule;
5
5
  export type ValidationRuleBuilderWithOptions<T> = (options: T, err?: string) => ValidationRule;
6
6
  export type ValidationRuleBuilder = ValidationRuleBuilderWithoutOptions | ValidationRuleBuilderWithOptions<any>;
@@ -21,6 +21,10 @@ export interface RuleAliases {
21
21
  export type RulesOptions = {
22
22
  aliases?: Partial<RuleAliases>;
23
23
  };
24
- export declare function createRules(options: RulesOptions | undefined, locale: LocaleInstance): Record<string, any>;
25
- export declare const RulesSymbol: InjectionKey<RulesOptions>;
26
- export declare function useRules(): Partial<RuleAliases> | undefined;
24
+ type ValidationRuleParams = [any, string?];
25
+ export type ValidationAlias = string | [string, ...ValidationRuleParams];
26
+ export type RulesInstance = (fn: () => ValidationProps['rules']) => Readonly<Ref<any[]>>;
27
+ export declare function createRules(options: RulesOptions | undefined, locale: LocaleInstance): (fn: () => ValidationProps["rules"]) => import("vue").ComputedRef<(ValidationRule | [string, any, (string | undefined)?])[]>;
28
+ export declare const RulesSymbol: InjectionKey<RulesInstance>;
29
+ export declare function useRules(fn: () => ValidationProps['rules']): Readonly<Ref<any[], any[]>> | Readonly<Ref<readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[], readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[]>>;
30
+
@@ -1,61 +1,83 @@
1
1
  // Utilities
2
- import { inject } from 'vue';
3
- import { mergeDeep } from "../../util/index.js"; // Types
2
+ import { computed, inject, toRef } from 'vue';
3
+
4
+ // Types
5
+
4
6
  export function createRules(options, locale) {
5
7
  const {
6
8
  t
7
9
  } = locale;
8
- return mergeDeep({
9
- aliases: {
10
- required: err => {
11
- return v => {
12
- // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it
13
- return v === 0 || !!v || t(err || '$vuetify.rules.required');
14
- };
15
- },
16
- email: err => {
17
- return v => !v || typeof v === 'string' && /^.+@\S+\.\S+$/.test(v) || t(err || '$vuetify.rules.email');
18
- },
19
- number: err => {
20
- return v => !!Number(v) || t(err || '$vuetify.rules.number');
21
- },
22
- integer: err => {
23
- return v => /^[\d]*$/.test(v) || t(err || '$vuetify.rules.integer');
24
- },
25
- capital: err => {
26
- return v => /^[A-Z]*$/.test(v) || t(err || '$vuetify.rules.capital');
27
- },
28
- maxLength: (len, err) => {
29
- return v => !v || v.length <= len || t(err || '$vuetify.rules.maxLength', [len]);
30
- },
31
- minLength: (len, err) => {
32
- return v => !v || v.length >= len || t(err || '$vuetify.rules.minLength', [len]);
33
- },
34
- strictLength: (len, err) => {
35
- return v => !v || v.length === len || t(err || '$vuetify.rules.strictLength', [len]);
36
- },
37
- exclude: (forbiddenCharacters, err) => {
38
- return v => {
39
- let error = true;
40
- for (const character of forbiddenCharacters) {
41
- if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character);
42
- }
43
- return error;
44
- };
45
- },
46
- notEmpty: err => {
47
- return v => v && v.length > 0 || t(err || '$vuetify.rules.notEmpty');
48
- },
49
- pattern: (pattern, err) => {
50
- return v => !v || pattern.test(v) || t(err || '$vuetify.rules.pattern');
10
+ const aliases = {
11
+ required: err => {
12
+ return v => {
13
+ // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it
14
+ return v === 0 || !!v || t(err || '$vuetify.rules.required');
15
+ };
16
+ },
17
+ email: err => {
18
+ return v => !v || typeof v === 'string' && /^.+@\S+\.\S+$/.test(v) || t(err || '$vuetify.rules.email');
19
+ },
20
+ number: err => {
21
+ return v => !!Number(v) || t(err || '$vuetify.rules.number');
22
+ },
23
+ integer: err => {
24
+ return v => /^[\d]*$/.test(v) || t(err || '$vuetify.rules.integer');
25
+ },
26
+ capital: err => {
27
+ return v => /^[A-Z]*$/.test(v) || t(err || '$vuetify.rules.capital');
28
+ },
29
+ maxLength: (len, err) => {
30
+ return v => !v || v.length <= len || t(err || '$vuetify.rules.maxLength', [len]);
31
+ },
32
+ minLength: (len, err) => {
33
+ return v => !v || v.length >= len || t(err || '$vuetify.rules.minLength', [len]);
34
+ },
35
+ strictLength: (len, err) => {
36
+ return v => !v || v.length === len || t(err || '$vuetify.rules.strictLength', [len]);
37
+ },
38
+ exclude: (forbiddenCharacters, err) => {
39
+ return v => {
40
+ let error = true;
41
+ for (const character of forbiddenCharacters) {
42
+ if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character);
43
+ }
44
+ return error;
45
+ };
46
+ },
47
+ notEmpty: err => {
48
+ return v => v && v.length > 0 || t(err || '$vuetify.rules.notEmpty');
49
+ },
50
+ pattern: (pattern, err) => {
51
+ return v => !v || pattern.test(v) || t(err || '$vuetify.rules.pattern');
52
+ },
53
+ ...options?.aliases
54
+ };
55
+ function resolveRules(fn) {
56
+ return computed(() => fn().map(rule => {
57
+ let ruleName = null;
58
+ let ruleParams = [undefined];
59
+ if (Array.isArray(rule)) {
60
+ ruleName = rule[0];
61
+ ruleParams = rule.slice(1);
62
+ } else if (typeof rule === 'string') {
63
+ ruleName = rule;
51
64
  }
52
- }
53
- }, options);
65
+ if (ruleName !== null) {
66
+ if (ruleName.startsWith('$')) {
67
+ ruleName = ruleName.slice(1);
68
+ }
69
+ return aliases[ruleName]?.(...ruleParams);
70
+ } else {
71
+ return rule;
72
+ }
73
+ }));
74
+ }
75
+ return resolveRules;
54
76
  }
55
77
  export const RulesSymbol = Symbol.for('vuetify:rules');
56
- export function useRules() {
57
- const ruleOptions = inject(RulesSymbol);
58
- if (!ruleOptions) throw new Error('Could not find Vuetify rules injection');
59
- return ruleOptions.aliases;
78
+ export function useRules(fn) {
79
+ const resolveRules = inject(RulesSymbol, null);
80
+ if (!resolveRules) return toRef(fn);
81
+ return resolveRules(fn);
60
82
  }
61
83
  //# sourceMappingURL=rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","names":["inject","mergeDeep","createRules","options","locale","t","aliases","required","err","v","email","test","number","Number","integer","capital","maxLength","len","length","minLength","strictLength","exclude","forbiddenCharacters","error","character","includes","notEmpty","pattern","RulesSymbol","Symbol","for","useRules","ruleOptions","Error"],"sources":["../../../src/labs/rules/rules.ts"],"sourcesContent":["// Utilities\nimport { inject } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { LocaleInstance } from '@/composables/locale'\nimport type { ValidationRule } from '@/composables/validation'\n\nexport type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule\nexport type ValidationRuleBuilderWithOptions<T> = (options: T, err?: string) => ValidationRule\nexport type ValidationRuleBuilder =\n | ValidationRuleBuilderWithoutOptions\n | ValidationRuleBuilderWithOptions<any>\n\nexport interface RuleAliases {\n [name: string]: ValidationRuleBuilder\n required: ValidationRuleBuilderWithoutOptions\n email: ValidationRuleBuilderWithoutOptions\n number: ValidationRuleBuilderWithoutOptions\n integer: ValidationRuleBuilderWithoutOptions\n capital: ValidationRuleBuilderWithoutOptions\n maxLength: ValidationRuleBuilderWithOptions<number>\n minLength: ValidationRuleBuilderWithOptions<number>\n strictLength: ValidationRuleBuilderWithOptions<number>\n exclude: ValidationRuleBuilderWithOptions<string[]>\n notEmpty: ValidationRuleBuilderWithoutOptions\n pattern: ValidationRuleBuilderWithOptions<RegExp>\n}\n\nexport type RulesOptions = {\n aliases?: Partial<RuleAliases>\n}\n\nexport function createRules (options: RulesOptions | undefined, locale: LocaleInstance) {\n const { t } = locale\n\n return mergeDeep({\n aliases: {\n required: (err?: string) => {\n return (v: any) => {\n // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it\n return v === 0 || !!v || t(err || '$vuetify.rules.required')\n }\n },\n email: (err?: string) => {\n return (v: any) => (!v || (typeof v === 'string' && /^.+@\\S+\\.\\S+$/.test(v))) || t(err || '$vuetify.rules.email')\n },\n number: (err?: string) => {\n return (v: string) => !!Number(v) || t(err || '$vuetify.rules.number')\n },\n integer: (err?: string) => {\n return (v: string) => (/^[\\d]*$/.test(v)) || t(err || '$vuetify.rules.integer')\n },\n capital: (err?: string) => {\n return (v: string) => (/^[A-Z]*$/.test(v)) || t(err || '$vuetify.rules.capital')\n },\n maxLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length <= len) || t(err || '$vuetify.rules.maxLength', [len])\n },\n minLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length >= len) || t(err || '$vuetify.rules.minLength', [len])\n },\n strictLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length === len) || t(err || '$vuetify.rules.strictLength', [len])\n },\n exclude: (forbiddenCharacters: string[], err?: string) => {\n return (v: string) => {\n let error: string | true = true\n for (const character of forbiddenCharacters) {\n if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character)\n }\n return error\n }\n },\n notEmpty: (err?: string) => {\n return (v: any) => (v && v.length > 0) || t(err || '$vuetify.rules.notEmpty')\n },\n pattern: (pattern: RegExp, err?: string) => {\n return (v: any) => (!v || pattern.test(v) || t(err || '$vuetify.rules.pattern'))\n },\n },\n }, options)\n}\n\nexport const RulesSymbol: InjectionKey<RulesOptions> = Symbol.for('vuetify:rules')\n\nexport function useRules () {\n const ruleOptions = inject(RulesSymbol)\n\n if (!ruleOptions) throw new Error('Could not find Vuetify rules injection')\n\n return ruleOptions.aliases\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"rules.js","names":["computed","inject","toRef","createRules","options","locale","t","aliases","required","err","v","email","test","number","Number","integer","capital","maxLength","len","length","minLength","strictLength","exclude","forbiddenCharacters","error","character","includes","notEmpty","pattern","resolveRules","fn","map","rule","ruleName","ruleParams","undefined","Array","isArray","slice","startsWith","RulesSymbol","Symbol","for","useRules"],"sources":["../../../src/labs/rules/rules.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, toRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from '@/composables/locale'\nimport type { ValidationProps, ValidationRule } from '@/composables/validation'\n\nexport type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule\nexport type ValidationRuleBuilderWithOptions<T> = (options: T, err?: string) => ValidationRule\nexport type ValidationRuleBuilder =\n | ValidationRuleBuilderWithoutOptions\n | ValidationRuleBuilderWithOptions<any>\n\nexport interface RuleAliases {\n [name: string]: ValidationRuleBuilder\n required: ValidationRuleBuilderWithoutOptions\n email: ValidationRuleBuilderWithoutOptions\n number: ValidationRuleBuilderWithoutOptions\n integer: ValidationRuleBuilderWithoutOptions\n capital: ValidationRuleBuilderWithoutOptions\n maxLength: ValidationRuleBuilderWithOptions<number>\n minLength: ValidationRuleBuilderWithOptions<number>\n strictLength: ValidationRuleBuilderWithOptions<number>\n exclude: ValidationRuleBuilderWithOptions<string[]>\n notEmpty: ValidationRuleBuilderWithoutOptions\n pattern: ValidationRuleBuilderWithOptions<RegExp>\n}\n\nexport type RulesOptions = {\n aliases?: Partial<RuleAliases>\n}\n\ntype ValidationRuleParams = [any, string?]\nexport type ValidationAlias = string | [string, ...ValidationRuleParams]\n\nexport type RulesInstance = (fn: () => ValidationProps['rules']) => Readonly<Ref<any[]>>\n\nexport function createRules (options: RulesOptions | undefined, locale: LocaleInstance) {\n const { t } = locale\n\n const aliases: RuleAliases = {\n required: (err?: string) => {\n return (v: any) => {\n // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it\n return v === 0 || !!v || t(err || '$vuetify.rules.required')\n }\n },\n email: (err?: string) => {\n return (v: any) => (!v || (typeof v === 'string' && /^.+@\\S+\\.\\S+$/.test(v))) || t(err || '$vuetify.rules.email')\n },\n number: (err?: string) => {\n return (v: string) => !!Number(v) || t(err || '$vuetify.rules.number')\n },\n integer: (err?: string) => {\n return (v: string) => (/^[\\d]*$/.test(v)) || t(err || '$vuetify.rules.integer')\n },\n capital: (err?: string) => {\n return (v: string) => (/^[A-Z]*$/.test(v)) || t(err || '$vuetify.rules.capital')\n },\n maxLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length <= len) || t(err || '$vuetify.rules.maxLength', [len])\n },\n minLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length >= len) || t(err || '$vuetify.rules.minLength', [len])\n },\n strictLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length === len) || t(err || '$vuetify.rules.strictLength', [len])\n },\n exclude: (forbiddenCharacters: string[], err?: string) => {\n return (v: string) => {\n let error: string | true = true\n for (const character of forbiddenCharacters) {\n if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character)\n }\n return error\n }\n },\n notEmpty: (err?: string) => {\n return (v: any) => (v && v.length > 0) || t(err || '$vuetify.rules.notEmpty')\n },\n pattern: (pattern: RegExp, err?: string) => {\n return (v: any) => (!v || pattern.test(v) || t(err || '$vuetify.rules.pattern'))\n },\n\n ...options?.aliases,\n }\n\n function resolveRules (fn: () => ValidationProps['rules']) {\n return computed(() => fn().map(rule => {\n let ruleName: string | null = null\n let ruleParams: ValidationRuleParams = [undefined]\n if (Array.isArray(rule)) {\n ruleName = rule[0]\n ruleParams = rule.slice(1) as ValidationRuleParams\n } else if (typeof rule === 'string') {\n ruleName = rule\n }\n\n if (ruleName !== null) {\n if (ruleName.startsWith('$')) {\n ruleName = ruleName.slice(1)\n }\n\n return aliases[ruleName]?.(...ruleParams)\n } else {\n return rule\n }\n }))\n }\n\n return resolveRules\n}\n\nexport const RulesSymbol: InjectionKey<RulesInstance> = Symbol.for('vuetify:rules')\n\nexport function useRules (fn: () => ValidationProps['rules']) {\n const resolveRules = inject(RulesSymbol, null)\n\n if (!resolveRules) return toRef(fn)\n\n return resolveRules(fn)\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.8.5-master.2025-05-14",
4
+ "version": "3.8.5-master.2025-05-15",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"