@vuetify/nightly 3.8.9-master.2025-06-12 → 3.8.9-master.2025-06-14

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 (47) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +3361 -3361
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +6102 -6102
  6. package/dist/vuetify-labs.cjs +44 -22
  7. package/dist/vuetify-labs.css +3398 -3395
  8. package/dist/vuetify-labs.d.ts +59 -59
  9. package/dist/vuetify-labs.esm.js +44 -22
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +44 -22
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +41 -22
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4550 -4547
  16. package/dist/vuetify.d.ts +59 -59
  17. package/dist/vuetify.esm.js +41 -22
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +41 -22
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +19 -17
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTable.css +6 -3
  25. package/lib/components/VDataTable/VDataTable.sass +4 -2
  26. package/lib/components/VDatePicker/VDatePicker.js +19 -13
  27. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
  29. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  30. package/lib/components/VField/VField.js +10 -2
  31. package/lib/components/VField/VField.js.map +1 -1
  32. package/lib/composables/hotkey.d.ts +9 -0
  33. package/lib/composables/hotkey.js +131 -0
  34. package/lib/composables/hotkey.js.map +1 -0
  35. package/lib/composables/transition.js +3 -3
  36. package/lib/composables/transition.js.map +1 -1
  37. package/lib/entry-bundler.js +1 -1
  38. package/lib/framework.d.ts +59 -59
  39. package/lib/framework.js +1 -1
  40. package/lib/labs/VFileUpload/VFileUploadItem.js +1 -0
  41. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  42. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
  43. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  44. package/lib/util/helpers.d.ts +3 -0
  45. package/lib/util/helpers.js +7 -0
  46. package/lib/util/helpers.js.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ // Utilities
2
+ import { onBeforeUnmount, toValue, watch } from 'vue';
3
+ import { IN_BROWSER } from "../util/index.js";
4
+ import { getCurrentInstance } from "../util/getCurrentInstance.js"; // Types
5
+ export function useHotkey(keys, callback) {
6
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7
+ if (!IN_BROWSER) return function () {};
8
+ const {
9
+ event = 'keydown',
10
+ inputs = false,
11
+ preventDefault = true,
12
+ sequenceTimeout = 1000
13
+ } = options;
14
+ const isMac = navigator?.userAgent?.includes('Macintosh');
15
+ let timeout = 0;
16
+ let keyGroups;
17
+ let isSequence = false;
18
+ let groupIndex = 0;
19
+ function clearTimer() {
20
+ if (!timeout) return;
21
+ clearTimeout(timeout);
22
+ timeout = 0;
23
+ }
24
+ function isInputFocused() {
25
+ if (inputs) return false;
26
+ const activeElement = document.activeElement;
27
+ return activeElement && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA' || activeElement.isContentEditable || activeElement.contentEditable === 'true');
28
+ }
29
+ function resetSequence() {
30
+ groupIndex = 0;
31
+ clearTimer();
32
+ }
33
+ function handler(e) {
34
+ const group = keyGroups[groupIndex];
35
+ if (!group || isInputFocused()) return;
36
+ if (!matchesKeyGroup(e, group)) {
37
+ if (isSequence) resetSequence();
38
+ return;
39
+ }
40
+ if (preventDefault) e.preventDefault();
41
+ if (!isSequence) {
42
+ callback(e);
43
+ return;
44
+ }
45
+ clearTimer();
46
+ groupIndex++;
47
+ if (groupIndex === keyGroups.length) {
48
+ callback(e);
49
+ resetSequence();
50
+ return;
51
+ }
52
+ timeout = window.setTimeout(resetSequence, sequenceTimeout);
53
+ }
54
+ function cleanup() {
55
+ window.removeEventListener(event, handler);
56
+ clearTimer();
57
+ }
58
+ function splitKeySequence(str) {
59
+ const groups = [];
60
+ let current = '';
61
+ for (let i = 0; i < str.length; i++) {
62
+ const char = str[i];
63
+ if (char === '-') {
64
+ const next = str[i + 1];
65
+ // Treat '-' as a sequence delimiter only if the next character exists
66
+ // and is NOT one of '-', '+', or '_' (these indicate the '-' belongs to the key itself)
67
+ if (next && !['-', '+', '_'].includes(next)) {
68
+ groups.push(current);
69
+ current = '';
70
+ continue;
71
+ }
72
+ }
73
+ current += char;
74
+ }
75
+ groups.push(current);
76
+ return groups;
77
+ }
78
+ watch(() => toValue(keys), function (unrefKeys) {
79
+ cleanup();
80
+ if (unrefKeys) {
81
+ const groups = splitKeySequence(unrefKeys.toLowerCase());
82
+ isSequence = groups.length > 1;
83
+ keyGroups = groups;
84
+ resetSequence();
85
+ window.addEventListener(event, handler);
86
+ }
87
+ }, {
88
+ immediate: true
89
+ });
90
+ try {
91
+ getCurrentInstance('useHotkey');
92
+ onBeforeUnmount(cleanup);
93
+ } catch {
94
+ // Not in Vue setup context
95
+ }
96
+ function parseKeyGroup(group) {
97
+ const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];
98
+
99
+ // Split on +, -, or _ but keep empty strings which indicate consecutive separators (e.g. alt--)
100
+ const parts = group.toLowerCase().split(/[+_-]/);
101
+ const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));
102
+ let actualKey;
103
+ for (const part of parts) {
104
+ if (!part) continue; // Skip empty tokens
105
+ if (MODIFIERS.includes(part)) {
106
+ modifiers[part] = true;
107
+ } else {
108
+ actualKey = part;
109
+ }
110
+ }
111
+
112
+ // Fallback for cases where actualKey is a literal '+' or '-' (e.g. alt--, alt++ , alt+-, alt-+)
113
+ if (!actualKey) {
114
+ const lastChar = group.slice(-1);
115
+ if (['+', '-', '_'].includes(lastChar)) actualKey = lastChar;
116
+ }
117
+ return {
118
+ modifiers,
119
+ actualKey
120
+ };
121
+ }
122
+ function matchesKeyGroup(e, group) {
123
+ const {
124
+ modifiers,
125
+ actualKey
126
+ } = parseKeyGroup(group);
127
+ return e.ctrlKey === (isMac && modifiers.cmd ? false : modifiers.ctrl) && e.metaKey === (isMac && modifiers.cmd ? true : modifiers.meta) && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();
128
+ }
129
+ return cleanup;
130
+ }
131
+ //# sourceMappingURL=hotkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey.js","names":["onBeforeUnmount","toValue","watch","IN_BROWSER","getCurrentInstance","useHotkey","keys","callback","options","arguments","length","undefined","event","inputs","preventDefault","sequenceTimeout","isMac","navigator","userAgent","includes","timeout","keyGroups","isSequence","groupIndex","clearTimer","clearTimeout","isInputFocused","activeElement","document","tagName","isContentEditable","contentEditable","resetSequence","handler","e","group","matchesKeyGroup","window","setTimeout","cleanup","removeEventListener","splitKeySequence","str","groups","current","i","char","next","push","unrefKeys","toLowerCase","addEventListener","immediate","parseKeyGroup","MODIFIERS","parts","split","modifiers","Object","fromEntries","map","m","actualKey","part","lastChar","slice","ctrlKey","cmd","ctrl","metaKey","meta","shiftKey","shift","altKey","alt","key"],"sources":["../../src/composables/hotkey.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, toValue, watch } from 'vue'\nimport { IN_BROWSER } from '@/util'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\n\n// Types\nimport type { MaybeRef } from '@/util'\n\ninterface HotkeyOptions {\n event?: 'keydown' | 'keyup'\n inputs?: boolean\n preventDefault?: boolean\n sequenceTimeout?: number\n}\n\nexport function useHotkey (\n keys: MaybeRef<string | undefined>,\n callback: (e: KeyboardEvent) => void,\n options: HotkeyOptions = {}\n) {\n if (!IN_BROWSER) return function () {}\n\n const {\n event = 'keydown',\n inputs = false,\n preventDefault = true,\n sequenceTimeout = 1000,\n } = options\n\n const isMac = navigator?.userAgent?.includes('Macintosh')\n let timeout = 0\n let keyGroups: string[]\n let isSequence = false\n let groupIndex = 0\n\n function clearTimer () {\n if (!timeout) return\n\n clearTimeout(timeout)\n timeout = 0\n }\n\n function isInputFocused () {\n if (inputs) return false\n\n const activeElement = document.activeElement as HTMLElement\n\n return activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.isContentEditable ||\n activeElement.contentEditable === 'true'\n )\n }\n\n function resetSequence () {\n groupIndex = 0\n clearTimer()\n }\n\n function handler (e: KeyboardEvent) {\n const group = keyGroups[groupIndex]\n\n if (!group || isInputFocused()) return\n\n if (!matchesKeyGroup(e, group)) {\n if (isSequence) resetSequence()\n return\n }\n\n if (preventDefault) e.preventDefault()\n\n if (!isSequence) {\n callback(e)\n return\n }\n\n clearTimer()\n groupIndex++\n\n if (groupIndex === keyGroups.length) {\n callback(e)\n resetSequence()\n return\n }\n\n timeout = window.setTimeout(resetSequence, sequenceTimeout)\n }\n\n function cleanup () {\n window.removeEventListener(event, handler)\n clearTimer()\n }\n\n function splitKeySequence (str: string) {\n const groups: string[] = []\n let current = ''\n for (let i = 0; i < str.length; i++) {\n const char = str[i]\n if (char === '-') {\n const next = str[i + 1]\n // Treat '-' as a sequence delimiter only if the next character exists\n // and is NOT one of '-', '+', or '_' (these indicate the '-' belongs to the key itself)\n if (next && !['-', '+', '_'].includes(next)) {\n groups.push(current)\n current = ''\n continue\n }\n }\n current += char\n }\n groups.push(current)\n\n return groups\n }\n\n watch(() => toValue(keys), function (unrefKeys) {\n cleanup()\n\n if (unrefKeys) {\n const groups = splitKeySequence(unrefKeys.toLowerCase())\n isSequence = groups.length > 1\n keyGroups = groups\n resetSequence()\n window.addEventListener(event, handler)\n }\n }, { immediate: true })\n\n try {\n getCurrentInstance('useHotkey')\n onBeforeUnmount(cleanup)\n } catch {\n // Not in Vue setup context\n }\n\n function parseKeyGroup (group: string) {\n const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd']\n\n // Split on +, -, or _ but keep empty strings which indicate consecutive separators (e.g. alt--)\n const parts = group.toLowerCase().split(/[+_-]/)\n\n const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false])) as Record<string, boolean>\n let actualKey: string | undefined\n\n for (const part of parts) {\n if (!part) continue // Skip empty tokens\n if (MODIFIERS.includes(part)) {\n modifiers[part] = true\n } else {\n actualKey = part\n }\n }\n\n // Fallback for cases where actualKey is a literal '+' or '-' (e.g. alt--, alt++ , alt+-, alt-+)\n if (!actualKey) {\n const lastChar = group.slice(-1)\n if (['+', '-', '_'].includes(lastChar)) actualKey = lastChar\n }\n\n return { modifiers, actualKey }\n }\n\n function matchesKeyGroup (e: KeyboardEvent, group: string) {\n const { modifiers, actualKey } = parseKeyGroup(group)\n\n return (\n e.ctrlKey === (isMac && modifiers.cmd ? false : modifiers.ctrl) &&\n e.metaKey === (isMac && modifiers.cmd ? true : modifiers.meta) &&\n e.shiftKey === modifiers.shift &&\n e.altKey === modifiers.alt &&\n e.key.toLowerCase() === actualKey?.toLowerCase()\n )\n }\n\n return cleanup\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  // Utilities
2
2
  import { h, mergeProps, Transition, TransitionGroup } from 'vue';
3
- import { isObject, propsFactory } from "../util/index.js"; // Types
3
+ import { isObject, onlyDefinedProps, propsFactory } from "../util/index.js"; // Types
4
4
  export const makeTransitionProps = propsFactory({
5
5
  transition: {
6
6
  type: null,
@@ -24,10 +24,10 @@ export const MaybeTransition = (props, _ref) => {
24
24
  } = isObject(transition) ? transition : {};
25
25
  let transitionProps;
26
26
  if (isObject(transition)) {
27
- transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
27
+ transitionProps = mergeProps(customProps, onlyDefinedProps({
28
28
  disabled,
29
29
  group
30
- })), rest);
30
+ }), rest);
31
31
  } else {
32
32
  transitionProps = mergeProps({
33
33
  name: disabled || !transition ? '' : transition
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","JSON","parse","stringify","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n JSON.parse(JSON.stringify({ disabled, group })),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,YAAY,4BAE/B;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGd,eAAe,GAAGD,UAAU;IAChD,GAAGkB;EACL,CAAC,GAAGhB,QAAQ,CAACG,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIjB,QAAQ,CAACG,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGpB,UAAU,CAC1BmB,WAAW,EACXE,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC;MAAER,QAAQ;MAAEC;IAAM,CAAC,CAAC,CAAC,EAC/CC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGpB,UAAU,CAC1B;MAAEwB,IAAI,EAAET,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOlB,CAAC,CACNmB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","onlyDefinedProps","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, onlyDefinedProps, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n onlyDefinedProps({ disabled, group }),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,gBAAgB,EAAEC,YAAY,4BAEjD;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGf,eAAe,GAAGD,UAAU;IAChD,GAAGmB;EACL,CAAC,GAAGjB,QAAQ,CAACI,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIlB,QAAQ,CAACI,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGrB,UAAU,CAC1BoB,WAAW,EACXhB,gBAAgB,CAAC;MAAEY,QAAQ;MAAEC;IAAM,CAAC,CAAC,EACrCC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGrB,UAAU,CAC1B;MAAEsB,IAAI,EAAEN,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOnB,CAAC,CACNoB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.9-master.2025-06-12";
19
+ export const version = "3.8.9-master.2025-06-14";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2545,22 +2545,20 @@ declare module 'vue' {
2545
2545
  $children?: VNodeChild
2546
2546
  }
2547
2547
  export interface GlobalComponents {
2548
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2549
- VApp: typeof import('vuetify/components')['VApp']
2550
2548
  VAlert: typeof import('vuetify/components')['VAlert']
2551
2549
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2552
- VAvatar: typeof import('vuetify/components')['VAvatar']
2553
- VBadge: typeof import('vuetify/components')['VBadge']
2554
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2550
+ VAppBar: typeof import('vuetify/components')['VAppBar']
2551
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2552
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2553
+ VApp: typeof import('vuetify/components')['VApp']
2554
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2555
2555
  VBanner: typeof import('vuetify/components')['VBanner']
2556
2556
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2557
2557
  VBannerText: typeof import('vuetify/components')['VBannerText']
2558
2558
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2559
- VBtn: typeof import('vuetify/components')['VBtn']
2559
+ VBadge: typeof import('vuetify/components')['VBadge']
2560
2560
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2561
- VAppBar: typeof import('vuetify/components')['VAppBar']
2562
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2563
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2561
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2564
2562
  VCard: typeof import('vuetify/components')['VCard']
2565
2563
  VCardActions: typeof import('vuetify/components')['VCardActions']
2566
2564
  VCardItem: typeof import('vuetify/components')['VCardItem']
@@ -2568,16 +2566,20 @@ declare module 'vue' {
2568
2566
  VCardText: typeof import('vuetify/components')['VCardText']
2569
2567
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2570
2568
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2571
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2572
- VChip: typeof import('vuetify/components')['VChip']
2573
- VCarousel: typeof import('vuetify/components')['VCarousel']
2574
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2569
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2570
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2571
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2572
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2575
2573
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2576
2574
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2575
+ VBtn: typeof import('vuetify/components')['VBtn']
2576
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2577
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2578
+ VChip: typeof import('vuetify/components')['VChip']
2579
+ VCode: typeof import('vuetify/components')['VCode']
2580
+ VCombobox: typeof import('vuetify/components')['VCombobox']
2577
2581
  VCounter: typeof import('vuetify/components')['VCounter']
2578
2582
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
2579
- VCombobox: typeof import('vuetify/components')['VCombobox']
2580
- VCode: typeof import('vuetify/components')['VCode']
2581
2583
  VDataTable: typeof import('vuetify/components')['VDataTable']
2582
2584
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2583
2585
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2585,38 +2587,40 @@ declare module 'vue' {
2585
2587
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2586
2588
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2587
2589
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2590
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2588
2591
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
2589
2592
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2590
2593
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2591
2594
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2592
2595
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2593
2596
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2594
- VDivider: typeof import('vuetify/components')['VDivider']
2595
2597
  VDialog: typeof import('vuetify/components')['VDialog']
2596
- VField: typeof import('vuetify/components')['VField']
2597
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2598
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
2599
- VFileInput: typeof import('vuetify/components')['VFileInput']
2600
2598
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2601
2599
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2602
2600
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2603
2601
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2602
+ VDivider: typeof import('vuetify/components')['VDivider']
2604
2603
  VFooter: typeof import('vuetify/components')['VFooter']
2605
2604
  VFab: typeof import('vuetify/components')['VFab']
2606
- VImg: typeof import('vuetify/components')['VImg']
2607
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2605
+ VField: typeof import('vuetify/components')['VField']
2606
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2607
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
2608
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2608
2609
  VIcon: typeof import('vuetify/components')['VIcon']
2609
2610
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2610
2611
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2611
2612
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2612
2613
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2613
- VKbd: typeof import('vuetify/components')['VKbd']
2614
+ VImg: typeof import('vuetify/components')['VImg']
2615
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2614
2616
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2615
2617
  VItem: typeof import('vuetify/components')['VItem']
2616
2618
  VInput: typeof import('vuetify/components')['VInput']
2619
+ VMenu: typeof import('vuetify/components')['VMenu']
2620
+ VKbd: typeof import('vuetify/components')['VKbd']
2617
2621
  VLabel: typeof import('vuetify/components')['VLabel']
2618
- VMain: typeof import('vuetify/components')['VMain']
2619
2622
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2623
+ VMessages: typeof import('vuetify/components')['VMessages']
2620
2624
  VList: typeof import('vuetify/components')['VList']
2621
2625
  VListGroup: typeof import('vuetify/components')['VListGroup']
2622
2626
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2626,24 +2630,21 @@ declare module 'vue' {
2626
2630
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2627
2631
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2628
2632
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2629
- VMenu: typeof import('vuetify/components')['VMenu']
2630
- VMessages: typeof import('vuetify/components')['VMessages']
2631
2633
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2632
- VOverlay: typeof import('vuetify/components')['VOverlay']
2633
2634
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2635
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2636
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2637
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2634
2638
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2635
2639
  VPagination: typeof import('vuetify/components')['VPagination']
2636
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2637
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2638
- VRating: typeof import('vuetify/components')['VRating']
2640
+ VSelect: typeof import('vuetify/components')['VSelect']
2639
2641
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2640
2642
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2643
+ VRating: typeof import('vuetify/components')['VRating']
2644
+ VSheet: typeof import('vuetify/components')['VSheet']
2645
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2641
2646
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2642
2647
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2643
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2644
- VSheet: typeof import('vuetify/components')['VSheet']
2645
- VSelect: typeof import('vuetify/components')['VSelect']
2646
- VSlider: typeof import('vuetify/components')['VSlider']
2647
2648
  VStepper: typeof import('vuetify/components')['VStepper']
2648
2649
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2649
2650
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
@@ -2651,49 +2652,49 @@ declare module 'vue' {
2651
2652
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2652
2653
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2653
2654
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2654
- VSwitch: typeof import('vuetify/components')['VSwitch']
2655
+ VSlider: typeof import('vuetify/components')['VSlider']
2655
2656
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
2656
- VTimeline: typeof import('vuetify/components')['VTimeline']
2657
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2657
+ VSwitch: typeof import('vuetify/components')['VSwitch']
2658
2658
  VTextarea: typeof import('vuetify/components')['VTextarea']
2659
+ VTable: typeof import('vuetify/components')['VTable']
2660
+ VTextField: typeof import('vuetify/components')['VTextField']
2659
2661
  VTab: typeof import('vuetify/components')['VTab']
2660
2662
  VTabs: typeof import('vuetify/components')['VTabs']
2661
2663
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2662
2664
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2663
- VTable: typeof import('vuetify/components')['VTable']
2664
- VTextField: typeof import('vuetify/components')['VTextField']
2665
- VToolbar: typeof import('vuetify/components')['VToolbar']
2666
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2667
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2668
2665
  VTooltip: typeof import('vuetify/components')['VTooltip']
2669
2666
  VWindow: typeof import('vuetify/components')['VWindow']
2670
2667
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2671
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2672
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2673
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2668
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2669
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2670
+ VToolbar: typeof import('vuetify/components')['VToolbar']
2671
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2672
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2673
+ VMain: typeof import('vuetify/components')['VMain']
2674
2674
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2675
2675
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2676
2676
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2677
+ VForm: typeof import('vuetify/components')['VForm']
2677
2678
  VContainer: typeof import('vuetify/components')['VContainer']
2678
2679
  VCol: typeof import('vuetify/components')['VCol']
2679
2680
  VRow: typeof import('vuetify/components')['VRow']
2680
2681
  VSpacer: typeof import('vuetify/components')['VSpacer']
2681
- VForm: typeof import('vuetify/components')['VForm']
2682
2682
  VHover: typeof import('vuetify/components')['VHover']
2683
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2684
2683
  VLayout: typeof import('vuetify/components')['VLayout']
2685
2684
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2686
2685
  VLazy: typeof import('vuetify/components')['VLazy']
2686
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2687
2687
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2688
- VParallax: typeof import('vuetify/components')['VParallax']
2689
2688
  VRadio: typeof import('vuetify/components')['VRadio']
2689
+ VParallax: typeof import('vuetify/components')['VParallax']
2690
2690
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2691
+ VResponsive: typeof import('vuetify/components')['VResponsive']
2691
2692
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2692
2693
  VSparkline: typeof import('vuetify/components')['VSparkline']
2693
2694
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2694
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2695
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2696
2695
  VValidation: typeof import('vuetify/components')['VValidation']
2696
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2697
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2697
2698
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2698
2699
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2699
2700
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2710,29 +2711,28 @@ declare module 'vue' {
2710
2711
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2711
2712
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2712
2713
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2713
- VResponsive: typeof import('vuetify/components')['VResponsive']
2714
2714
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2715
2715
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2716
2716
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2717
2717
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2718
2718
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2719
2719
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2720
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2721
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2722
2720
  VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2723
2721
  VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2724
- VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2725
- VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2726
- VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2727
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2728
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2729
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2722
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2730
2723
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2731
2724
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2732
2725
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2733
2726
  VPicker: typeof import('vuetify/labs/components')['VPicker']
2734
2727
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2728
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2729
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2730
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2735
2731
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2736
2732
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2733
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2734
+ VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2735
+ VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2736
+ VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2737
2737
  }
2738
2738
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.9-master.2025-06-12";
112
+ export const version = "3.8.9-master.2025-06-14";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -52,6 +52,7 @@ export const VFileUploadItem = genericComponent()({
52
52
  "class": "v-file-upload-item"
53
53
  }), {
54
54
  ...slots,
55
+ title: () => props?.title ?? props.file?.name,
55
56
  prepend: slotProps => _createElementVNode(_Fragment, null, [!slots.prepend ? _createVNode(VAvatar, {
56
57
  "icon": props.fileIcon,
57
58
  "image": preview.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VFileUploadItem.js","names":["VAvatar","VBtn","VDefaultsProvider","makeVListItemProps","VListItem","computed","ref","watchEffect","genericComponent","humanReadableFileSize","propsFactory","useRender","makeVFileUploadItemProps","clearable","Boolean","file","type","Object","default","fileIcon","String","showSize","border","rounded","lines","VFileUploadItem","name","props","emits","click:remove","click","e","setup","_ref","emit","slots","preview","base","undefined","onClickRemove","value","startsWith","URL","createObjectURL","listItemProps","filterProps","_createVNode","_mergeProps","title","size","prepend","slotProps","_createElementVNode","_Fragment","image","icon","append","clear","density","variant","onClick"],"sources":["../../../src/labs/VFileUpload/VFileUploadItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { genericComponent, humanReadableFileSize, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport type VFileUploadItemSlots = {\n clear: {\n props: { onClick: () => void }\n }\n} & VListItemSlots\n\nexport const makeVFileUploadItemProps = propsFactory({\n clearable: Boolean,\n file: {\n type: Object as PropType<File>,\n default: null,\n },\n fileIcon: {\n type: String,\n // TODO: setup up a proper aliased icon\n default: 'mdi-file-document',\n },\n showSize: Boolean,\n\n ...makeVListItemProps({\n border: true,\n rounded: true,\n lines: 'two' as const,\n }),\n}, 'VFileUploadItem')\n\nexport const VFileUploadItem = genericComponent<VFileUploadItemSlots>()({\n name: 'VFileUploadItem',\n\n props: makeVFileUploadItemProps(),\n\n emits: {\n 'click:remove': () => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { emit, slots }) {\n const preview = ref()\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n\n function onClickRemove () {\n emit('click:remove')\n }\n\n watchEffect(() => {\n preview.value = props.file?.type.startsWith('image') ? URL.createObjectURL(props.file) : undefined\n })\n\n useRender(() => {\n const listItemProps = VListItem.filterProps(props)\n\n return (\n <VListItem\n { ...listItemProps }\n title={ props.title ?? props.file?.name }\n subtitle={ props.showSize ? humanReadableFileSize(props.file?.size, base.value) : props.file?.type }\n class=\"v-file-upload-item\"\n >\n {{\n ...slots,\n prepend: slotProps => (\n <>\n { !slots.prepend ? (\n <VAvatar\n icon={ props.fileIcon }\n image={ preview.value }\n rounded\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n image: preview.value,\n icon: !preview.value ? props.fileIcon : undefined,\n rounded: true,\n },\n }}\n >\n { slots.prepend?.(slotProps) ?? (\n <VAvatar />\n )}\n </VDefaultsProvider>\n )}\n </>\n ),\n append: slotProps => (\n <>\n { props.clearable && (\n <>\n { !slots.clear ? (\n <VBtn\n icon=\"$clear\"\n density=\"comfortable\"\n variant=\"text\"\n onClick={ onClickRemove }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n icon: '$clear',\n density: 'comfortable',\n variant: 'text',\n },\n }}\n >\n { slots.clear?.({\n ...slotProps,\n props: { onClick: onClickRemove },\n }) ?? (<VBtn />)}\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { slots.append?.(slotProps) }\n </>\n ),\n }}\n </VListItem>\n )\n })\n },\n})\n\nexport type VFileUploadItem = InstanceType<typeof VFileUploadItem>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VFileUploadItem.js","names":["VAvatar","VBtn","VDefaultsProvider","makeVListItemProps","VListItem","computed","ref","watchEffect","genericComponent","humanReadableFileSize","propsFactory","useRender","makeVFileUploadItemProps","clearable","Boolean","file","type","Object","default","fileIcon","String","showSize","border","rounded","lines","VFileUploadItem","name","props","emits","click:remove","click","e","setup","_ref","emit","slots","preview","base","undefined","onClickRemove","value","startsWith","URL","createObjectURL","listItemProps","filterProps","_createVNode","_mergeProps","title","size","prepend","slotProps","_createElementVNode","_Fragment","image","icon","append","clear","density","variant","onClick"],"sources":["../../../src/labs/VFileUpload/VFileUploadItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { genericComponent, humanReadableFileSize, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport type VFileUploadItemSlots = {\n clear: {\n props: { onClick: () => void }\n }\n} & VListItemSlots\n\nexport const makeVFileUploadItemProps = propsFactory({\n clearable: Boolean,\n file: {\n type: Object as PropType<File>,\n default: null,\n },\n fileIcon: {\n type: String,\n // TODO: setup up a proper aliased icon\n default: 'mdi-file-document',\n },\n showSize: Boolean,\n\n ...makeVListItemProps({\n border: true,\n rounded: true,\n lines: 'two' as const,\n }),\n}, 'VFileUploadItem')\n\nexport const VFileUploadItem = genericComponent<VFileUploadItemSlots>()({\n name: 'VFileUploadItem',\n\n props: makeVFileUploadItemProps(),\n\n emits: {\n 'click:remove': () => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { emit, slots }) {\n const preview = ref()\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n\n function onClickRemove () {\n emit('click:remove')\n }\n\n watchEffect(() => {\n preview.value = props.file?.type.startsWith('image') ? URL.createObjectURL(props.file) : undefined\n })\n\n useRender(() => {\n const listItemProps = VListItem.filterProps(props)\n\n return (\n <VListItem\n { ...listItemProps }\n title={ props.title ?? props.file?.name }\n subtitle={ props.showSize ? humanReadableFileSize(props.file?.size, base.value) : props.file?.type }\n class=\"v-file-upload-item\"\n >\n {{\n ...slots,\n title: () => props?.title ?? props.file?.name,\n prepend: slotProps => (\n <>\n { !slots.prepend ? (\n <VAvatar\n icon={ props.fileIcon }\n image={ preview.value }\n rounded\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n image: preview.value,\n icon: !preview.value ? props.fileIcon : undefined,\n rounded: true,\n },\n }}\n >\n { slots.prepend?.(slotProps) ?? (\n <VAvatar />\n )}\n </VDefaultsProvider>\n )}\n </>\n ),\n append: slotProps => (\n <>\n { props.clearable && (\n <>\n { !slots.clear ? (\n <VBtn\n icon=\"$clear\"\n density=\"comfortable\"\n variant=\"text\"\n onClick={ onClickRemove }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n icon: '$clear',\n density: 'comfortable',\n variant: 'text',\n },\n }}\n >\n { slots.clear?.({\n ...slotProps,\n props: { onClick: onClickRemove },\n }) ?? (<VBtn />)}\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { slots.append?.(slotProps) }\n </>\n ),\n }}\n </VListItem>\n )\n })\n },\n})\n\nexport type VFileUploadItem = InstanceType<typeof VFileUploadItem>\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import "./VTimePickerClock.css";
5
5
  // Composables
6
6
  import { useBackgroundColor, useTextColor } from "../../composables/color.js"; // Utilities
7
7
  import { computed, ref, watch } from 'vue';
8
- import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
8
+ import { debounce, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
9
9
  export const makeVTimePickerClockProps = propsFactory({
10
10
  allowedValues: Function,
11
11
  ampm: Boolean,
@@ -56,6 +56,7 @@ export const VTimePickerClock = genericComponent()({
56
56
  const isDragging = ref(false);
57
57
  const valueOnMouseDown = ref(null);
58
58
  const valueOnMouseUp = ref(null);
59
+ const emitChangeDebounced = debounce(value => emit('change', value), 750);
59
60
  const {
60
61
  textColorClasses,
61
62
  textColorStyles
@@ -101,6 +102,7 @@ export const VTimePickerClock = genericComponent()({
101
102
  if (value !== props.displayedValue) {
102
103
  update(value);
103
104
  }
105
+ emitChangeDebounced(value);
104
106
  }
105
107
  function isInner(value) {
106
108
  return props.double && value - props.min >= roundCount.value;