@vuetify/nightly 3.7.5-master.2024-12-11 → 3.7.5-master.2024-12-12

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 (127) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +4228 -3932
  3. package/dist/json/importMap-labs.json +20 -12
  4. package/dist/json/importMap.json +176 -176
  5. package/dist/json/tags.json +84 -0
  6. package/dist/json/web-types.json +8499 -7558
  7. package/dist/vuetify-labs.css +4391 -4318
  8. package/dist/vuetify-labs.d.ts +1314 -1
  9. package/dist/vuetify-labs.esm.js +325 -4
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +325 -4
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +3206 -3206
  14. package/dist/vuetify.d.ts +59 -57
  15. package/dist/vuetify.esm.js +10 -4
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +10 -4
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +5 -5
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/entry-bundler.mjs +1 -1
  23. package/lib/framework.mjs +1 -1
  24. package/lib/iconsets/mdi.mjs +2 -1
  25. package/lib/iconsets/mdi.mjs.map +1 -1
  26. package/lib/index.d.mts +59 -57
  27. package/lib/labs/VFileUpload/VFileUpload.css +74 -0
  28. package/lib/labs/VFileUpload/VFileUpload.mjs +241 -0
  29. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -0
  30. package/lib/labs/VFileUpload/VFileUpload.sass +75 -0
  31. package/lib/labs/VFileUpload/VFileUploadItem.mjs +95 -0
  32. package/lib/labs/VFileUpload/VFileUploadItem.mjs.map +1 -0
  33. package/lib/labs/VFileUpload/_variables.scss +12 -0
  34. package/lib/labs/VFileUpload/index.d.mts +1365 -0
  35. package/lib/labs/VFileUpload/index.mjs +3 -0
  36. package/lib/labs/VFileUpload/index.mjs.map +1 -0
  37. package/lib/labs/components.d.mts +1348 -37
  38. package/lib/labs/components.mjs +1 -0
  39. package/lib/labs/components.mjs.map +1 -1
  40. package/lib/locale/af.mjs +5 -0
  41. package/lib/locale/af.mjs.map +1 -1
  42. package/lib/locale/ar.mjs +5 -0
  43. package/lib/locale/ar.mjs.map +1 -1
  44. package/lib/locale/az.mjs +5 -0
  45. package/lib/locale/az.mjs.map +1 -1
  46. package/lib/locale/bg.mjs +5 -0
  47. package/lib/locale/bg.mjs.map +1 -1
  48. package/lib/locale/ca.mjs +5 -0
  49. package/lib/locale/ca.mjs.map +1 -1
  50. package/lib/locale/ckb.mjs +5 -0
  51. package/lib/locale/ckb.mjs.map +1 -1
  52. package/lib/locale/cs.mjs +5 -0
  53. package/lib/locale/cs.mjs.map +1 -1
  54. package/lib/locale/da.mjs +5 -0
  55. package/lib/locale/da.mjs.map +1 -1
  56. package/lib/locale/de.mjs +5 -0
  57. package/lib/locale/de.mjs.map +1 -1
  58. package/lib/locale/el.mjs +5 -0
  59. package/lib/locale/el.mjs.map +1 -1
  60. package/lib/locale/en.mjs +5 -0
  61. package/lib/locale/en.mjs.map +1 -1
  62. package/lib/locale/es.mjs +5 -0
  63. package/lib/locale/es.mjs.map +1 -1
  64. package/lib/locale/et.mjs +5 -0
  65. package/lib/locale/et.mjs.map +1 -1
  66. package/lib/locale/fa.mjs +5 -0
  67. package/lib/locale/fa.mjs.map +1 -1
  68. package/lib/locale/fi.mjs +5 -0
  69. package/lib/locale/fi.mjs.map +1 -1
  70. package/lib/locale/fr.mjs +5 -0
  71. package/lib/locale/fr.mjs.map +1 -1
  72. package/lib/locale/he.mjs +5 -0
  73. package/lib/locale/he.mjs.map +1 -1
  74. package/lib/locale/hr.mjs +5 -0
  75. package/lib/locale/hr.mjs.map +1 -1
  76. package/lib/locale/hu.mjs +5 -0
  77. package/lib/locale/hu.mjs.map +1 -1
  78. package/lib/locale/id.mjs +5 -0
  79. package/lib/locale/id.mjs.map +1 -1
  80. package/lib/locale/index.d.mts +215 -0
  81. package/lib/locale/it.mjs +5 -0
  82. package/lib/locale/it.mjs.map +1 -1
  83. package/lib/locale/ja.mjs +5 -0
  84. package/lib/locale/ja.mjs.map +1 -1
  85. package/lib/locale/km.mjs +5 -0
  86. package/lib/locale/km.mjs.map +1 -1
  87. package/lib/locale/ko.mjs +5 -0
  88. package/lib/locale/ko.mjs.map +1 -1
  89. package/lib/locale/lt.mjs +5 -0
  90. package/lib/locale/lt.mjs.map +1 -1
  91. package/lib/locale/lv.mjs +5 -0
  92. package/lib/locale/lv.mjs.map +1 -1
  93. package/lib/locale/nl.mjs +5 -0
  94. package/lib/locale/nl.mjs.map +1 -1
  95. package/lib/locale/no.mjs +5 -0
  96. package/lib/locale/no.mjs.map +1 -1
  97. package/lib/locale/pl.mjs +5 -0
  98. package/lib/locale/pl.mjs.map +1 -1
  99. package/lib/locale/pt.mjs +5 -0
  100. package/lib/locale/pt.mjs.map +1 -1
  101. package/lib/locale/ro.mjs +5 -0
  102. package/lib/locale/ro.mjs.map +1 -1
  103. package/lib/locale/ru.mjs +5 -0
  104. package/lib/locale/ru.mjs.map +1 -1
  105. package/lib/locale/sk.mjs +5 -0
  106. package/lib/locale/sk.mjs.map +1 -1
  107. package/lib/locale/sl.mjs +5 -0
  108. package/lib/locale/sl.mjs.map +1 -1
  109. package/lib/locale/sr-Cyrl.mjs +5 -0
  110. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  111. package/lib/locale/sr-Latn.mjs +5 -0
  112. package/lib/locale/sr-Latn.mjs.map +1 -1
  113. package/lib/locale/sv.mjs +5 -0
  114. package/lib/locale/sv.mjs.map +1 -1
  115. package/lib/locale/th.mjs +5 -0
  116. package/lib/locale/th.mjs.map +1 -1
  117. package/lib/locale/tr.mjs +5 -0
  118. package/lib/locale/tr.mjs.map +1 -1
  119. package/lib/locale/uk.mjs +5 -0
  120. package/lib/locale/uk.mjs.map +1 -1
  121. package/lib/locale/vi.mjs +5 -0
  122. package/lib/locale/vi.mjs.map +1 -1
  123. package/lib/locale/zh-Hans.mjs +5 -0
  124. package/lib/locale/zh-Hans.mjs.map +1 -1
  125. package/lib/locale/zh-Hant.mjs +5 -0
  126. package/lib/locale/zh-Hant.mjs.map +1 -1
  127. package/package.json +1 -1
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.7.5-master.2024-12-11";
19
+ export const version = "3.7.5-master.2024-12-12";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.7.5-master.2024-12-11";
100
+ export const version = "3.7.5-master.2024-12-12";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
@@ -45,7 +45,8 @@ const aliases = {
45
45
  calendar: 'mdi-calendar',
46
46
  treeviewCollapse: 'mdi-menu-down',
47
47
  treeviewExpand: 'mdi-menu-right',
48
- eyeDropper: 'mdi-eyedropper'
48
+ eyeDropper: 'mdi-eyedropper',
49
+ upload: 'mdi-cloud-upload'
49
50
  };
50
51
  const mdi = {
51
52
  // Not using mergeProps here, functional components merge props by default (?)
@@ -1 +1 @@
1
- {"version":3,"file":"mdi.mjs","names":["VClassIcon","h","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","calendar","treeviewCollapse","treeviewExpand","eyeDropper","mdi","component","props","class"],"sources":["../../src/iconsets/mdi.ts"],"sourcesContent":["// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,oCAEnB;AACA,SAASC,CAAC,QAAQ,KAAK;;AAEvB;;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,gBAAgB;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE,kBAAkB;EAC1BC,KAAK,EAAE,WAAW;EAClBC,MAAM,EAAE,kBAAkB;EAAE;EAC5BC,KAAK,EAAE,kBAAkB;EACzBC,OAAO,EAAE,kBAAkB;EAC3BC,IAAI,EAAE,iBAAiB;EACvBC,OAAO,EAAE,kBAAkB;EAC3BC,KAAK,EAAE,kBAAkB;EACzBC,IAAI,EAAE,kBAAkB;EACxBC,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE,qBAAqB;EACjCC,WAAW,EAAE,4BAA4B;EACzCC,qBAAqB,EAAE,eAAe;EACtCC,SAAS,EAAE,YAAY;EAAE;EACzBC,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,gBAAgB;EAC1BC,MAAM,EAAE,kBAAkB;EAC1BC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,eAAe;EACzBC,QAAQ,EAAE,eAAe;EACzBC,OAAO,EAAE,qBAAqB;EAC9BC,QAAQ,EAAE,oBAAoB;EAC9BC,IAAI,EAAE,YAAY;EAClBC,WAAW,EAAE,kBAAkB;EAC/BC,UAAU,EAAE,UAAU;EACtBC,UAAU,EAAE,oBAAoB;EAChCC,OAAO,EAAE,YAAY;EACrBC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE,eAAe;EACrBC,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,WAAW;EAClBC,QAAQ,EAAE,cAAc;EACxBC,gBAAgB,EAAE,eAAe;EACjCC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE;AACd,CAAC;AAED,MAAMC,GAAY,GAAG;EACnB;EACAC,SAAS,EAAGC,KAAU,IAAK3C,CAAC,CAACD,UAAU,EAAE;IAAE,GAAG4C,KAAK;IAAEC,KAAK,EAAE;EAAM,CAAC;AACrE,CAAC;AAED,SAAS3C,OAAO,EAAEwC,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"mdi.mjs","names":["VClassIcon","h","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","calendar","treeviewCollapse","treeviewExpand","eyeDropper","upload","mdi","component","props","class"],"sources":["../../src/iconsets/mdi.ts"],"sourcesContent":["// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n upload: 'mdi-cloud-upload',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,oCAEnB;AACA,SAASC,CAAC,QAAQ,KAAK;;AAEvB;;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,gBAAgB;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE,kBAAkB;EAC1BC,KAAK,EAAE,WAAW;EAClBC,MAAM,EAAE,kBAAkB;EAAE;EAC5BC,KAAK,EAAE,kBAAkB;EACzBC,OAAO,EAAE,kBAAkB;EAC3BC,IAAI,EAAE,iBAAiB;EACvBC,OAAO,EAAE,kBAAkB;EAC3BC,KAAK,EAAE,kBAAkB;EACzBC,IAAI,EAAE,kBAAkB;EACxBC,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE,qBAAqB;EACjCC,WAAW,EAAE,4BAA4B;EACzCC,qBAAqB,EAAE,eAAe;EACtCC,SAAS,EAAE,YAAY;EAAE;EACzBC,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,gBAAgB;EAC1BC,MAAM,EAAE,kBAAkB;EAC1BC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,eAAe;EACzBC,QAAQ,EAAE,eAAe;EACzBC,OAAO,EAAE,qBAAqB;EAC9BC,QAAQ,EAAE,oBAAoB;EAC9BC,IAAI,EAAE,YAAY;EAClBC,WAAW,EAAE,kBAAkB;EAC/BC,UAAU,EAAE,UAAU;EACtBC,UAAU,EAAE,oBAAoB;EAChCC,OAAO,EAAE,YAAY;EACrBC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE,eAAe;EACrBC,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,WAAW;EAClBC,QAAQ,EAAE,cAAc;EACxBC,gBAAgB,EAAE,eAAe;EACjCC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE,gBAAgB;EAC5BC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,GAAY,GAAG;EACnB;EACAC,SAAS,EAAGC,KAAU,IAAK5C,CAAC,CAACD,UAAU,EAAE;IAAE,GAAG6C,KAAK;IAAEC,KAAK,EAAE;EAAM,CAAC;AACrE,CAAC;AAED,SAAS5C,OAAO,EAAEyC,GAAG","ignoreList":[]}
package/lib/index.d.mts CHANGED
@@ -487,39 +487,47 @@ declare module 'vue' {
487
487
  }
488
488
  export interface GlobalComponents {
489
489
  VApp: typeof import('vuetify/components')['VApp']
490
- VAvatar: typeof import('vuetify/components')['VAvatar']
491
490
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
492
491
  VAppBar: typeof import('vuetify/components')['VAppBar']
493
492
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
494
493
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
494
+ VAlert: typeof import('vuetify/components')['VAlert']
495
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
496
+ VBadge: typeof import('vuetify/components')['VBadge']
497
+ VAvatar: typeof import('vuetify/components')['VAvatar']
495
498
  VBanner: typeof import('vuetify/components')['VBanner']
496
499
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
497
500
  VBannerText: typeof import('vuetify/components')['VBannerText']
498
- VBadge: typeof import('vuetify/components')['VBadge']
499
- VAlert: typeof import('vuetify/components')['VAlert']
500
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
501
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
502
501
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
503
- VBtn: typeof import('vuetify/components')['VBtn']
504
502
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
505
503
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
506
504
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
507
- VCode: typeof import('vuetify/components')['VCode']
505
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
506
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
507
+ VBtn: typeof import('vuetify/components')['VBtn']
508
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
509
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
510
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
511
+ VCarousel: typeof import('vuetify/components')['VCarousel']
512
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
513
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
508
514
  VCard: typeof import('vuetify/components')['VCard']
509
515
  VCardActions: typeof import('vuetify/components')['VCardActions']
510
516
  VCardItem: typeof import('vuetify/components')['VCardItem']
511
517
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
512
518
  VCardText: typeof import('vuetify/components')['VCardText']
513
519
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
514
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
515
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
516
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
517
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
518
- VCarousel: typeof import('vuetify/components')['VCarousel']
519
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
520
520
  VChip: typeof import('vuetify/components')['VChip']
521
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
521
+ VCombobox: typeof import('vuetify/components')['VCombobox']
522
522
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
523
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
524
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
525
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
526
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
527
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
528
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
529
+ VCode: typeof import('vuetify/components')['VCode']
530
+ VCounter: typeof import('vuetify/components')['VCounter']
523
531
  VDataTable: typeof import('vuetify/components')['VDataTable']
524
532
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
525
533
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -527,38 +535,29 @@ declare module 'vue' {
527
535
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
528
536
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
529
537
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
530
- VCombobox: typeof import('vuetify/components')['VCombobox']
531
- VCounter: typeof import('vuetify/components')['VCounter']
532
- VDivider: typeof import('vuetify/components')['VDivider']
533
- VFab: typeof import('vuetify/components')['VFab']
534
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
535
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
536
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
537
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
538
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
539
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
538
+ VDialog: typeof import('vuetify/components')['VDialog']
540
539
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
541
540
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
542
541
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
543
542
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
544
- VFileInput: typeof import('vuetify/components')['VFileInput']
543
+ VDivider: typeof import('vuetify/components')['VDivider']
544
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
545
545
  VField: typeof import('vuetify/components')['VField']
546
546
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
547
+ VFab: typeof import('vuetify/components')['VFab']
547
548
  VFooter: typeof import('vuetify/components')['VFooter']
548
- VDialog: typeof import('vuetify/components')['VDialog']
549
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
549
+ VImg: typeof import('vuetify/components')['VImg']
550
+ VFileInput: typeof import('vuetify/components')['VFileInput']
551
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
550
552
  VIcon: typeof import('vuetify/components')['VIcon']
551
553
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
552
554
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
553
555
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
554
556
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
555
- VImg: typeof import('vuetify/components')['VImg']
556
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
557
- VKbd: typeof import('vuetify/components')['VKbd']
557
+ VInput: typeof import('vuetify/components')['VInput']
558
558
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
559
559
  VItem: typeof import('vuetify/components')['VItem']
560
- VLabel: typeof import('vuetify/components')['VLabel']
561
- VInput: typeof import('vuetify/components')['VInput']
560
+ VKbd: typeof import('vuetify/components')['VKbd']
562
561
  VList: typeof import('vuetify/components')['VList']
563
562
  VListGroup: typeof import('vuetify/components')['VListGroup']
564
563
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -568,72 +567,73 @@ declare module 'vue' {
568
567
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
569
568
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
570
569
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
570
+ VMain: typeof import('vuetify/components')['VMain']
571
+ VLabel: typeof import('vuetify/components')['VLabel']
572
+ VMessages: typeof import('vuetify/components')['VMessages']
571
573
  VMenu: typeof import('vuetify/components')['VMenu']
572
574
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
573
- VMain: typeof import('vuetify/components')['VMain']
574
575
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
575
- VMessages: typeof import('vuetify/components')['VMessages']
576
576
  VPagination: typeof import('vuetify/components')['VPagination']
577
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
578
- VOverlay: typeof import('vuetify/components')['VOverlay']
579
577
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
580
- VRating: typeof import('vuetify/components')['VRating']
581
578
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
579
+ VOverlay: typeof import('vuetify/components')['VOverlay']
580
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
581
+ VSheet: typeof import('vuetify/components')['VSheet']
582
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
583
+ VRating: typeof import('vuetify/components')['VRating']
582
584
  VSelect: typeof import('vuetify/components')['VSelect']
583
585
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
584
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
585
586
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
586
587
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
587
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
588
588
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
589
- VSheet: typeof import('vuetify/components')['VSheet']
589
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
590
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
591
+ VSlider: typeof import('vuetify/components')['VSlider']
592
+ VSwitch: typeof import('vuetify/components')['VSwitch']
590
593
  VStepper: typeof import('vuetify/components')['VStepper']
591
594
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
592
595
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
593
596
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
594
597
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
595
598
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
596
- VSlider: typeof import('vuetify/components')['VSlider']
599
+ VTable: typeof import('vuetify/components')['VTable']
600
+ VTextField: typeof import('vuetify/components')['VTextField']
601
+ VToolbar: typeof import('vuetify/components')['VToolbar']
602
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
603
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
604
+ VTextarea: typeof import('vuetify/components')['VTextarea']
597
605
  VTab: typeof import('vuetify/components')['VTab']
598
606
  VTabs: typeof import('vuetify/components')['VTabs']
599
607
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
600
608
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
601
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
602
- VSwitch: typeof import('vuetify/components')['VSwitch']
603
- VTextarea: typeof import('vuetify/components')['VTextarea']
604
- VTable: typeof import('vuetify/components')['VTable']
605
609
  VTimeline: typeof import('vuetify/components')['VTimeline']
606
610
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
607
- VTextField: typeof import('vuetify/components')['VTextField']
608
- VToolbar: typeof import('vuetify/components')['VToolbar']
609
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
610
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
611
+ VTooltip: typeof import('vuetify/components')['VTooltip']
611
612
  VWindow: typeof import('vuetify/components')['VWindow']
612
613
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
613
- VTooltip: typeof import('vuetify/components')['VTooltip']
614
614
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
615
615
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
616
616
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
617
+ VForm: typeof import('vuetify/components')['VForm']
618
+ VHover: typeof import('vuetify/components')['VHover']
617
619
  VContainer: typeof import('vuetify/components')['VContainer']
618
620
  VCol: typeof import('vuetify/components')['VCol']
619
621
  VRow: typeof import('vuetify/components')['VRow']
620
622
  VSpacer: typeof import('vuetify/components')['VSpacer']
621
- VForm: typeof import('vuetify/components')['VForm']
622
- VHover: typeof import('vuetify/components')['VHover']
623
623
  VLazy: typeof import('vuetify/components')['VLazy']
624
624
  VLayout: typeof import('vuetify/components')['VLayout']
625
625
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
626
626
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
627
627
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
628
628
  VParallax: typeof import('vuetify/components')['VParallax']
629
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
630
629
  VRadio: typeof import('vuetify/components')['VRadio']
631
630
  VResponsive: typeof import('vuetify/components')['VResponsive']
631
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
632
632
  VSparkline: typeof import('vuetify/components')['VSparkline']
633
633
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
634
634
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
635
- VValidation: typeof import('vuetify/components')['VValidation']
636
635
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
636
+ VValidation: typeof import('vuetify/components')['VValidation']
637
637
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
638
638
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
639
639
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -650,21 +650,23 @@ declare module 'vue' {
650
650
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
651
651
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
652
652
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
653
- VPicker: typeof import('vuetify/labs/components')['VPicker']
654
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
655
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
656
653
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
657
654
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
658
655
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
659
656
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
660
657
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
661
658
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
659
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
660
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
662
661
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
663
662
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
664
663
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
664
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
665
665
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
666
666
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
667
667
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
668
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
669
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
668
670
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
669
671
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
670
672
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
@@ -0,0 +1,74 @@
1
+ .v-file-upload {
2
+ padding: 64px 0;
3
+ flex-direction: column;
4
+ justify-content: center;
5
+ align-items: center;
6
+ position: relative;
7
+ }
8
+ .v-file-upload.v-sheet {
9
+ display: flex;
10
+ border-radius: 4px;
11
+ border-style: dashed;
12
+ border-width: 2px;
13
+ }
14
+ .v-file-upload.v-file-upload--density-compact {
15
+ padding: 32px 0;
16
+ flex-direction: row;
17
+ gap: 1rem;
18
+ }
19
+ .v-file-upload .v-overlay__scrim {
20
+ pointer-events: none;
21
+ }
22
+ .v-file-upload--disabled {
23
+ pointer-events: none;
24
+ opacity: var(--v-disabled-opacity);
25
+ }
26
+ .v-file-upload--dragging > * {
27
+ pointer-events: none;
28
+ }
29
+ .v-file-upload--clickable {
30
+ cursor: pointer;
31
+ }
32
+ .v-file-upload input[type=file] {
33
+ left: 0;
34
+ opacity: 0;
35
+ position: absolute;
36
+ cursor: pointer;
37
+ top: 0;
38
+ z-index: -1;
39
+ }
40
+
41
+ .v-file-upload-title {
42
+ font-size: 1.5rem;
43
+ font-weight: 600;
44
+ }
45
+
46
+ .v-file-upload-icon {
47
+ opacity: var(--v-medium-emphasis-opacity);
48
+ font-size: 3rem;
49
+ margin-bottom: 1rem;
50
+ }
51
+ .v-file-upload--density-comfortable .v-file-upload-icon {
52
+ font-size: 2.5rem;
53
+ margin-bottom: 0.5rem;
54
+ }
55
+ .v-file-upload--density-compact .v-file-upload-icon {
56
+ font-size: 2rem;
57
+ margin-bottom: 0rem;
58
+ }
59
+
60
+ .v-file-upload-divider {
61
+ align-items: center;
62
+ display: flex;
63
+ margin: 32px 0;
64
+ justify-content: center;
65
+ width: 100%;
66
+ }
67
+
68
+ .v-file-upload-items {
69
+ margin: 16px 0;
70
+ }
71
+
72
+ .v-file-upload-item:not(:first-child) {
73
+ margin-top: 8px;
74
+ }
@@ -0,0 +1,241 @@
1
+ import { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
+ // Styles
3
+ import "./VFileUpload.css";
4
+
5
+ // Components
6
+ import { VFileUploadItem } from "./VFileUploadItem.mjs";
7
+ import { VBtn } from "../../components/VBtn/VBtn.mjs";
8
+ import { VDefaultsProvider } from "../../components/VDefaultsProvider/VDefaultsProvider.mjs";
9
+ import { makeVDividerProps, VDivider } from "../../components/VDivider/VDivider.mjs";
10
+ import { VIcon } from "../../components/VIcon/VIcon.mjs";
11
+ import { VOverlay } from "../../components/VOverlay/VOverlay.mjs";
12
+ import { makeVSheetProps, VSheet } from "../../components/VSheet/VSheet.mjs"; // Composables
13
+ import { makeDelayProps } from "../../composables/delay.mjs";
14
+ import { makeDensityProps, useDensity } from "../../composables/density.mjs";
15
+ import { IconValue } from "../../composables/icons.mjs";
16
+ import { useLocale } from "../../composables/locale.mjs";
17
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
18
+ import { onMounted, onUnmounted, ref, shallowRef } from 'vue';
19
+ import { filterInputAttrs, genericComponent, only, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
20
+ export const makeVFileUploadProps = propsFactory({
21
+ browseText: {
22
+ type: String,
23
+ default: '$vuetify.fileUpload.browse'
24
+ },
25
+ dividerText: {
26
+ type: String,
27
+ default: '$vuetify.fileUpload.divider'
28
+ },
29
+ title: {
30
+ type: String,
31
+ default: '$vuetify.fileUpload.title'
32
+ },
33
+ subtitle: String,
34
+ icon: {
35
+ type: IconValue,
36
+ default: '$upload'
37
+ },
38
+ modelValue: {
39
+ type: [Array, Object],
40
+ default: null,
41
+ validator: val => {
42
+ return wrapInArray(val).every(v => v != null && typeof v === 'object');
43
+ }
44
+ },
45
+ clearable: Boolean,
46
+ disabled: Boolean,
47
+ hideBrowse: Boolean,
48
+ multiple: Boolean,
49
+ scrim: {
50
+ type: [Boolean, String],
51
+ default: true
52
+ },
53
+ showSize: Boolean,
54
+ name: String,
55
+ ...makeDelayProps(),
56
+ ...makeDensityProps(),
57
+ ...only(makeVDividerProps({
58
+ length: 150
59
+ }), ['length', 'thickness', 'opacity']),
60
+ ...makeVSheetProps()
61
+ }, 'VFileUpload');
62
+ export const VFileUpload = genericComponent()({
63
+ name: 'VFileUpload',
64
+ inheritAttrs: false,
65
+ props: makeVFileUploadProps(),
66
+ emits: {
67
+ 'update:modelValue': files => true
68
+ },
69
+ setup(props, _ref) {
70
+ let {
71
+ attrs,
72
+ slots
73
+ } = _ref;
74
+ const {
75
+ t
76
+ } = useLocale();
77
+ const {
78
+ densityClasses
79
+ } = useDensity(props);
80
+ const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
81
+ const dragOver = shallowRef(false);
82
+ const vSheetRef = ref(null);
83
+ const inputRef = ref(null);
84
+ onMounted(() => {
85
+ vSheetRef.value?.$el.addEventListener('dragover', onDragOver);
86
+ vSheetRef.value?.$el.addEventListener('drop', onDrop);
87
+ });
88
+ onUnmounted(() => {
89
+ vSheetRef.value?.$el.removeEventListener('dragover', onDragOver);
90
+ vSheetRef.value?.$el.removeEventListener('drop', onDrop);
91
+ });
92
+ function onDragOver(e) {
93
+ e.preventDefault();
94
+ e.stopImmediatePropagation();
95
+ dragOver.value = true;
96
+ }
97
+ function onDragLeave(e) {
98
+ e.preventDefault();
99
+ dragOver.value = false;
100
+ }
101
+ function onDrop(e) {
102
+ e.preventDefault();
103
+ e.stopImmediatePropagation();
104
+ dragOver.value = false;
105
+ const files = Array.from(e.dataTransfer?.files ?? []);
106
+ if (!files.length) return;
107
+ if (!props.multiple) {
108
+ model.value = [files[0]];
109
+ return;
110
+ }
111
+ const array = model.value.slice();
112
+ for (const file of files) {
113
+ if (!array.some(f => f.name === file.name)) {
114
+ array.push(file);
115
+ }
116
+ }
117
+ model.value = array;
118
+ }
119
+ function onClick() {
120
+ inputRef.value?.click();
121
+ }
122
+ function onClickRemove(index) {
123
+ model.value = model.value.filter((_, i) => i !== index);
124
+ if (model.value.length > 0 || !inputRef.value) return;
125
+ inputRef.value.value = '';
126
+ }
127
+ useRender(() => {
128
+ const hasTitle = !!(slots.title || props.title);
129
+ const hasIcon = !!(slots.icon || props.icon);
130
+ const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'));
131
+ const cardProps = VSheet.filterProps(props);
132
+ const dividerProps = VDivider.filterProps(props);
133
+ const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
134
+ const inputNode = _createVNode("input", _mergeProps({
135
+ "ref": inputRef,
136
+ "type": "file",
137
+ "disabled": props.disabled,
138
+ "multiple": props.multiple,
139
+ "name": props.name,
140
+ "onChange": e => {
141
+ if (!e.target) return;
142
+ const target = e.target;
143
+ model.value = [...(target.files ?? [])];
144
+ }
145
+ }, inputAttrs), null);
146
+ return _createVNode(_Fragment, null, [_createVNode(VSheet, _mergeProps({
147
+ "ref": vSheetRef
148
+ }, cardProps, {
149
+ "class": ['v-file-upload', {
150
+ 'v-file-upload--clickable': !hasBrowse,
151
+ 'v-file-upload--disabled': props.disabled,
152
+ 'v-file-upload--dragging': dragOver.value
153
+ }, densityClasses.value],
154
+ "onDragleave": onDragLeave,
155
+ "onDragover": onDragOver,
156
+ "onDrop": onDrop,
157
+ "onClick": !hasBrowse ? onClick : undefined
158
+ }, rootAttrs), {
159
+ default: () => [hasIcon && _createVNode("div", {
160
+ "key": "icon",
161
+ "class": "v-file-upload-icon"
162
+ }, [!slots.icon ? _createVNode(VIcon, {
163
+ "key": "icon-icon",
164
+ "icon": props.icon
165
+ }, null) : _createVNode(VDefaultsProvider, {
166
+ "key": "icon-defaults",
167
+ "defaults": {
168
+ VIcon: {
169
+ icon: props.icon
170
+ }
171
+ }
172
+ }, {
173
+ default: () => [slots.icon()]
174
+ })]), hasTitle && _createVNode("div", {
175
+ "key": "title",
176
+ "class": "v-file-upload-title"
177
+ }, [slots.title?.() ?? t(props.title)]), props.density === 'default' && _createVNode(_Fragment, null, [_createVNode("div", {
178
+ "key": "upload-divider",
179
+ "class": "v-file-upload-divider"
180
+ }, [slots.divider?.() ?? _createVNode(VDivider, dividerProps, {
181
+ default: () => [t(props.dividerText)]
182
+ })]), hasBrowse && _createVNode(_Fragment, null, [!slots.browse ? _createVNode(VBtn, {
183
+ "readonly": props.disabled,
184
+ "size": "large",
185
+ "text": t(props.browseText),
186
+ "variant": "tonal",
187
+ "onClick": onClick
188
+ }, null) : _createVNode(VDefaultsProvider, {
189
+ "defaults": {
190
+ VBtn: {
191
+ readonly: props.disabled,
192
+ size: 'large',
193
+ text: t(props.browseText),
194
+ variant: 'tonal'
195
+ }
196
+ }
197
+ }, {
198
+ default: () => [slots.browse({
199
+ props: {
200
+ onClick
201
+ }
202
+ })]
203
+ })]), props.subtitle && _createVNode("div", {
204
+ "class": "v-file-upload-subtitle"
205
+ }, [props.subtitle])]), _createVNode(VOverlay, {
206
+ "model-value": dragOver.value,
207
+ "contained": true,
208
+ "scrim": props.scrim
209
+ }, null), slots.input?.({
210
+ inputNode
211
+ }) ?? inputNode]
212
+ }), model.value.length > 0 && _createVNode("div", {
213
+ "class": "v-file-upload-items"
214
+ }, [model.value.map((file, i) => {
215
+ const slotProps = {
216
+ file,
217
+ props: {
218
+ 'onClick:remove': () => onClickRemove(i)
219
+ }
220
+ };
221
+ return _createVNode(VDefaultsProvider, {
222
+ "key": i,
223
+ "defaults": {
224
+ VFileUploadItem: {
225
+ file,
226
+ clearable: props.clearable,
227
+ disabled: props.disabled,
228
+ showSize: props.showSize
229
+ }
230
+ }
231
+ }, {
232
+ default: () => [slots.item?.(slotProps) ?? _createVNode(VFileUploadItem, {
233
+ "key": i,
234
+ "onClick:remove": () => onClickRemove(i)
235
+ }, slots)]
236
+ });
237
+ })])]);
238
+ });
239
+ }
240
+ });
241
+ //# sourceMappingURL=VFileUpload.mjs.map