@vuetify/nightly 3.9.0-master.2025-07-09 → 3.9.0-next.2025-07-09

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 (209) hide show
  1. package/CHANGELOG.md +20 -9
  2. package/dist/json/attributes.json +3539 -3539
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +130 -130
  5. package/dist/json/web-types.json +6434 -6398
  6. package/dist/vuetify-labs.cjs +55 -36
  7. package/dist/vuetify-labs.css +26440 -28193
  8. package/dist/vuetify-labs.d.ts +197 -590
  9. package/dist/vuetify-labs.esm.js +55 -36
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +55 -36
  12. package/dist/vuetify-labs.min.css +3 -4
  13. package/dist/vuetify.cjs +47 -28
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +22837 -24587
  16. package/dist/vuetify.d.ts +197 -590
  17. package/dist/vuetify.esm.js +47 -28
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +47 -28
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +3 -4
  22. package/dist/vuetify.min.js +18 -18
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.css +211 -220
  25. package/lib/components/VApp/VApp.css +16 -15
  26. package/lib/components/VAppBar/VAppBar.css +14 -12
  27. package/lib/components/VAutocomplete/VAutocomplete.css +85 -84
  28. package/lib/components/VAutocomplete/VAutocomplete.d.ts +18 -9
  29. package/lib/components/VAutocomplete/VAutocomplete.js +6 -3
  30. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  31. package/lib/components/VAvatar/VAvatar.css +108 -106
  32. package/lib/components/VBadge/VBadge.css +77 -77
  33. package/lib/components/VBanner/VBanner.css +161 -166
  34. package/lib/components/VBottomNavigation/VBottomNavigation.css +65 -64
  35. package/lib/components/VBottomSheet/VBottomSheet.css +34 -31
  36. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +54 -57
  37. package/lib/components/VBtn/VBtn.css +400 -436
  38. package/lib/components/VBtn/VBtn.sass +10 -23
  39. package/lib/components/VBtn/_variables.scss +1 -1
  40. package/lib/components/VBtnGroup/VBtnGroup.css +87 -88
  41. package/lib/components/VBtnToggle/VBtnToggle.css +16 -14
  42. package/lib/components/VCard/VCard.css +294 -302
  43. package/lib/components/VCarousel/VCarousel.css +62 -64
  44. package/lib/components/VCarousel/VCarousel.sass +1 -1
  45. package/lib/components/VCheckbox/VCheckbox.css +7 -5
  46. package/lib/components/VChip/VChip.css +378 -411
  47. package/lib/components/VChipGroup/VChipGroup.css +19 -18
  48. package/lib/components/VCode/VCode.css +13 -11
  49. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  50. package/lib/components/VColorPicker/VColorPickerCanvas.css +24 -22
  51. package/lib/components/VColorPicker/VColorPickerEdit.css +29 -28
  52. package/lib/components/VColorPicker/VColorPickerPreview.css +69 -67
  53. package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -2
  54. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  55. package/lib/components/VCombobox/VCombobox.css +85 -84
  56. package/lib/components/VCombobox/VCombobox.d.ts +18 -9
  57. package/lib/components/VCombobox/VCombobox.js +6 -3
  58. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  59. package/lib/components/VCounter/VCounter.css +7 -5
  60. package/lib/components/VDataTable/VDataTable.css +202 -200
  61. package/lib/components/VDataTable/VDataTable.sass +20 -10
  62. package/lib/components/VDataTable/VDataTableFooter.css +33 -31
  63. package/lib/components/VDataTable/VDataTableFooter.js +7 -7
  64. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  65. package/lib/components/VDatePicker/VDatePicker.css +8 -6
  66. package/lib/components/VDatePicker/VDatePickerControls.css +56 -58
  67. package/lib/components/VDatePicker/VDatePickerHeader.css +56 -60
  68. package/lib/components/VDatePicker/VDatePickerMonth.css +46 -50
  69. package/lib/components/VDatePicker/VDatePickerMonths.css +20 -19
  70. package/lib/components/VDatePicker/VDatePickerYears.css +16 -15
  71. package/lib/components/VDialog/VDialog.css +98 -98
  72. package/lib/components/VDivider/VDivider.css +52 -52
  73. package/lib/components/VEmptyState/VEmptyState.css +62 -67
  74. package/lib/components/VExpansionPanel/VExpansionPanel.css +203 -209
  75. package/lib/components/VExpansionPanel/VExpansionPanel.sass +27 -25
  76. package/lib/components/VFab/VFab.css +78 -73
  77. package/lib/components/VFab/VFab.sass +5 -4
  78. package/lib/components/VField/VField.css +541 -589
  79. package/lib/components/VField/VField.sass +4 -11
  80. package/lib/components/VField/_variables.scss +1 -1
  81. package/lib/components/VFileInput/VFileInput.css +34 -32
  82. package/lib/components/VFileInput/VFileInput.js +1 -1
  83. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  84. package/lib/components/VFooter/VFooter.css +38 -36
  85. package/lib/components/VForm/VForm.d.ts +111 -531
  86. package/lib/components/VForm/VForm.js +11 -1
  87. package/lib/components/VForm/VForm.js.map +1 -1
  88. package/lib/components/VGrid/VGrid.css +565 -592
  89. package/lib/components/VIcon/VIcon.css +52 -53
  90. package/lib/components/VImg/VImg.css +50 -51
  91. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +36 -37
  92. package/lib/components/VInput/VInput.css +136 -147
  93. package/lib/components/VItemGroup/VItemGroup.css +7 -5
  94. package/lib/components/VKbd/VKbd.css +33 -31
  95. package/lib/components/VLabel/VLabel.css +16 -15
  96. package/lib/components/VLayout/VLayout.css +10 -8
  97. package/lib/components/VLayout/VLayoutItem.css +8 -7
  98. package/lib/components/VList/VList.css +104 -108
  99. package/lib/components/VList/VList.sass +1 -1
  100. package/lib/components/VList/VListItem.css +442 -454
  101. package/lib/components/VList/VListItem.sass +2 -1
  102. package/lib/components/VLocaleProvider/VLocaleProvider.css +4 -2
  103. package/lib/components/VMain/VMain.css +32 -30
  104. package/lib/components/VMenu/VMenu.css +21 -19
  105. package/lib/components/VMessages/VMessages.css +17 -15
  106. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +102 -104
  107. package/lib/components/VNumberInput/VNumberInput.css +59 -57
  108. package/lib/components/VOtpInput/VOtpInput.css +56 -58
  109. package/lib/components/VOtpInput/VOtpInput.js +2 -2
  110. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  111. package/lib/components/VOverlay/VOverlay.css +61 -64
  112. package/lib/components/VOverlay/VOverlay.sass +14 -13
  113. package/lib/components/VPagination/VPagination.css +10 -8
  114. package/lib/components/VParallax/VParallax.css +8 -6
  115. package/lib/components/VProgressCircular/VProgressCircular.css +95 -101
  116. package/lib/components/VProgressLinear/VProgressLinear.css +209 -222
  117. package/lib/components/VRadioGroup/VRadioGroup.css +14 -12
  118. package/lib/components/VRating/VRating.css +52 -53
  119. package/lib/components/VResponsive/VResponsive.css +25 -26
  120. package/lib/components/VSelect/VSelect.css +59 -57
  121. package/lib/components/VSelect/VSelect.d.ts +18 -9
  122. package/lib/components/VSelect/VSelect.js +6 -3
  123. package/lib/components/VSelect/VSelect.js.map +1 -1
  124. package/lib/components/VSelectionControl/VSelectionControl.css +98 -100
  125. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +10 -8
  126. package/lib/components/VSheet/VSheet.css +38 -36
  127. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +225 -224
  128. package/lib/components/VSlideGroup/VSlideGroup.css +53 -55
  129. package/lib/components/VSlider/VSlider.css +53 -57
  130. package/lib/components/VSlider/VSliderThumb.css +142 -153
  131. package/lib/components/VSlider/VSliderTrack.css +155 -174
  132. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  133. package/lib/components/VSnackbar/VSnackbar.js +1 -1
  134. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  135. package/lib/components/VSpeedDial/VSpeedDial.css +43 -41
  136. package/lib/components/VStepper/VStepper.css +55 -56
  137. package/lib/components/VStepper/VStepperItem.css +112 -115
  138. package/lib/components/VSwitch/VSwitch.css +129 -139
  139. package/lib/components/VSystemBar/VSystemBar.css +45 -43
  140. package/lib/components/VTable/VTable.css +142 -143
  141. package/lib/components/VTable/VTable.sass +4 -2
  142. package/lib/components/VTabs/VTab.css +30 -29
  143. package/lib/components/VTabs/VTabs.css +59 -65
  144. package/lib/components/VTextField/VTextField.css +77 -85
  145. package/lib/components/VTextarea/VTextarea.css +48 -40
  146. package/lib/components/VTextarea/VTextarea.sass +4 -2
  147. package/lib/components/VThemeProvider/VThemeProvider.css +5 -3
  148. package/lib/components/VTimePicker/VTimePicker.css +4 -2
  149. package/lib/components/VTimePicker/VTimePickerClock.css +127 -130
  150. package/lib/components/VTimePicker/VTimePickerControls.css +103 -104
  151. package/lib/components/VTimeline/VTimeline.css +388 -427
  152. package/lib/components/VToolbar/VToolbar.css +137 -144
  153. package/lib/components/VTooltip/VTooltip.css +27 -23
  154. package/lib/components/VTooltip/VTooltip.sass +8 -6
  155. package/lib/components/VTreeview/VTreeview.js +1 -1
  156. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  157. package/lib/components/VTreeview/VTreeviewItem.css +83 -85
  158. package/lib/components/VVirtualScroll/VVirtualScroll.css +11 -9
  159. package/lib/components/VWindow/VWindow.css +88 -85
  160. package/lib/composables/theme.js +3 -3
  161. package/lib/composables/theme.js.map +1 -1
  162. package/lib/directives/ripple/VRipple.css +38 -36
  163. package/lib/entry-bundler.js +1 -1
  164. package/lib/entry-bundler.js.map +1 -1
  165. package/lib/framework.d.ts +45 -45
  166. package/lib/framework.js +1 -1
  167. package/lib/framework.js.map +1 -1
  168. package/lib/labs/VCalendar/VCalendar.css +219 -225
  169. package/lib/labs/VCalendar/VCalendarDay.css +40 -41
  170. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  171. package/lib/labs/VCalendar/VCalendarInterval.css +43 -42
  172. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +7 -5
  173. package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -58
  174. package/lib/labs/VCalendar/VCalendarMonthDay.sass +3 -2
  175. package/lib/labs/VColorInput/VColorInput.css +5 -3
  176. package/lib/labs/VColorInput/VColorInput.js +1 -1
  177. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  178. package/lib/labs/VDateInput/VDateInput.js +1 -1
  179. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  180. package/lib/labs/VFileUpload/VFileUpload.css +74 -77
  181. package/lib/labs/VFileUpload/VFileUpload.js +1 -1
  182. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  183. package/lib/labs/VHotkey/VHotkey.css +242 -241
  184. package/lib/labs/VIconBtn/VIconBtn.css +162 -164
  185. package/lib/labs/VPicker/VPicker.css +62 -67
  186. package/lib/labs/VStepperVertical/VStepperVertical.js +4 -4
  187. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  188. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +1 -1
  189. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  190. package/lib/styles/elements/_global.sass +1 -1
  191. package/lib/styles/generic/_colors.scss +3 -3
  192. package/lib/styles/generic/_layers.scss +13 -1
  193. package/lib/styles/generic/_reset.scss +0 -1
  194. package/lib/styles/generic/_transitions.scss +32 -32
  195. package/lib/styles/main.css +14677 -16153
  196. package/lib/styles/settings/_utilities.scss +0 -5
  197. package/lib/styles/settings/_variables.scss +2 -3
  198. package/lib/styles/tools/_border.sass +4 -4
  199. package/lib/styles/tools/_display.sass +0 -10
  200. package/lib/styles/tools/_elevation.sass +2 -2
  201. package/lib/styles/tools/_index.sass +0 -2
  202. package/lib/styles/tools/_layer.scss +4 -2
  203. package/lib/styles/tools/_position.sass +2 -2
  204. package/lib/styles/tools/_rounded.sass +2 -2
  205. package/lib/styles/tools/_utilities.sass +1 -5
  206. package/lib/styles/utilities/_elevation.scss +1 -1
  207. package/package.json +1 -1
  208. package/lib/styles/tools/_bootable.sass +0 -3
  209. package/lib/styles/tools/_radius.sass +0 -10
@@ -8,16 +8,16 @@
8
8
  @include tools.layer('components')
9
9
  /* region INPUT */
10
10
  .v-field
11
- display: grid
12
- grid-template-areas: "prepend-inner field clear append-inner"
13
- grid-template-columns: min-content minmax(0, 1fr) min-content min-content
11
+ align-items: center
12
+ display: flex
13
+ flex-direction: row
14
+ gap: $field-gap
14
15
  font-size: $field-font-size
15
16
  letter-spacing: $field-letter-spacing
16
17
  max-width: $field-max-width
17
18
  border-radius: $field-border-radius
18
19
  contain: layout
19
20
  flex: 1 0
20
- grid-area: control
21
21
  position: relative
22
22
 
23
23
  --v-theme-overlay-multiplier: 1
@@ -163,7 +163,6 @@
163
163
 
164
164
  .v-field__field
165
165
  flex: 1 0
166
- grid-area: field
167
166
  position: relative
168
167
  align-items: flex-start
169
168
  display: flex
@@ -171,14 +170,9 @@
171
170
  /* endregion */
172
171
  /* region AFFIXES */
173
172
  .v-field__prepend-inner
174
- grid-area: prepend-inner
175
173
  padding-inline-end: var(--v-field-padding-after)
176
174
 
177
- .v-field__clearable
178
- grid-area: clear
179
-
180
175
  .v-field__append-inner
181
- grid-area: append-inner
182
176
  padding-inline-start: var(--v-field-padding-after)
183
177
 
184
178
  .v-field__append-inner,
@@ -226,7 +220,6 @@
226
220
  cursor: pointer
227
221
  opacity: 0
228
222
  overflow: hidden
229
- margin-inline: $field-clearable-margin
230
223
  transition: $field-transition-timing
231
224
  transition-property: opacity, transform, width
232
225
 
@@ -15,9 +15,9 @@ $field-max-width: 100% !default;
15
15
  $field-transition-timing: .15s settings.$standard-easing !default;
16
16
  $field-subtle-transition-timing: 250ms settings.$standard-easing !default;
17
17
  $field-underlined-margin-bottom: 4px !default;
18
- $field-clearable-margin: 4px !default;
19
18
  $field-clearable-transition: .15s opacity, .15s width settings.$standard-easing !default;
20
19
  $field-chip-height: 24px !default;
20
+ $field-gap: 6px !default;
21
21
 
22
22
  // CONTROL
23
23
  $field-control-solo-background: rgb(var(--v-theme-surface)) !default;
@@ -1,33 +1,35 @@
1
- .v-file-input--hide.v-input .v-field,
2
- .v-file-input--hide.v-input .v-input__control,
3
- .v-file-input--hide.v-input .v-input__details {
4
- display: none;
5
- }
6
- .v-file-input--hide.v-input .v-input__prepend {
7
- grid-area: control;
8
- margin: 0 auto;
9
- }
10
- .v-file-input--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,
11
- .v-file-input--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,
12
- .v-file-input--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,
13
- .v-file-input--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating {
14
- top: 0px;
15
- }
16
- .v-file-input input[type=file] {
17
- height: 100%;
18
- left: 0;
19
- opacity: 0;
20
- position: absolute;
21
- top: 0;
22
- width: 100%;
23
- z-index: 0;
24
- }
25
- .v-file-input--dragging input[type=file] {
26
- z-index: 1;
27
- }
28
- .v-file-input .v-input__details {
29
- padding-inline: 16px;
30
- }
31
- .v-input--plain-underlined.v-file-input .v-input__details {
32
- padding-inline: 0;
1
+ @layer vuetify.components {
2
+ .v-file-input--hide.v-input .v-field,
3
+ .v-file-input--hide.v-input .v-input__control,
4
+ .v-file-input--hide.v-input .v-input__details {
5
+ display: none;
6
+ }
7
+ .v-file-input--hide.v-input .v-input__prepend {
8
+ grid-area: control;
9
+ margin: 0 auto;
10
+ }
11
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,
12
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,
13
+ .v-file-input--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,
14
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating {
15
+ top: 0px;
16
+ }
17
+ .v-file-input input[type=file] {
18
+ height: 100%;
19
+ left: 0;
20
+ opacity: 0;
21
+ position: absolute;
22
+ top: 0;
23
+ width: 100%;
24
+ z-index: 0;
25
+ }
26
+ .v-file-input--dragging input[type=file] {
27
+ z-index: 1;
28
+ }
29
+ .v-file-input .v-input__details {
30
+ padding-inline: 16px;
31
+ }
32
+ .v-input--plain-underlined.v-file-input .v-input__details {
33
+ padding-inline: 0;
34
+ }
33
35
  }
@@ -191,7 +191,7 @@ export const VFileInput = genericComponent()({
191
191
  } = _ref3;
192
192
  return _createVNode(VField, _mergeProps({
193
193
  "ref": vFieldRef,
194
- "prependIcon": props.prependIcon,
194
+ "prepend-icon": props.prependIcon,
195
195
  "onMousedown": onControlMousedown,
196
196
  "onClick": onControlClick,
197
197
  "onClick:clear": onClear,
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFileDrop","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","isDragging","handleDrop","hasFilesOrFolders","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","dataTransfer","DataTransfer","items","add","dispatchEvent","Event","bubbles","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_createElementVNode","_Fragment","target","_normalizeClass","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFileDrop } from '@/composables/fileDrop'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n const { handleDrop, hasFilesOrFolders } = useFileDrop()\n\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n async function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!inputRef.value || !hasFilesOrFolders(e)) return\n\n const dataTransfer = new DataTransfer()\n for (const file of await handleDrop(e)) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prependIcon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFileDrop","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","isDragging","handleDrop","hasFilesOrFolders","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","dataTransfer","DataTransfer","items","add","dispatchEvent","Event","bubbles","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_createElementVNode","_Fragment","target","_normalizeClass","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFileDrop } from '@/composables/fileDrop'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n const { handleDrop, hasFilesOrFolders } = useFileDrop()\n\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n async function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!inputRef.value || !hasFilesOrFolders(e)) return\n\n const dataTransfer = new DataTransfer()\n for (const file of await handleDrop(e)) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
@@ -1,37 +1,39 @@
1
- .v-footer {
2
- align-items: center;
3
- display: flex;
4
- flex: 1 1 auto;
5
- padding: 8px 16px;
6
- position: relative;
7
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
8
- transition-property: height, width, transform, max-width, left, right, top, bottom;
9
- }
10
- .v-footer {
11
- border-color: rgba(var(--v-border-color), var(--v-border-opacity));
12
- border-style: solid;
13
- border-width: 0;
14
- }
15
- .v-footer--border {
16
- border-width: thin;
17
- box-shadow: none;
18
- }
19
- .v-footer {
20
- box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
21
- }
22
- .v-footer--absolute {
23
- position: absolute;
24
- }
25
- .v-footer--fixed {
26
- position: fixed;
27
- }
28
- .v-footer {
29
- border-radius: 0;
30
- }
31
- .v-footer {
32
- background: rgb(var(--v-theme-surface));
33
- color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
34
- }
35
- .v-footer--rounded {
36
- border-radius: 4px;
1
+ @layer vuetify.components {
2
+ .v-footer {
3
+ align-items: center;
4
+ display: flex;
5
+ flex: 1 1 auto;
6
+ padding: 8px 16px;
7
+ position: relative;
8
+ transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
9
+ transition-property: height, width, transform, max-width, left, right, top, bottom;
10
+ }
11
+ .v-footer {
12
+ border-color: rgba(var(--v-border-color), var(--v-border-opacity));
13
+ border-style: solid;
14
+ border-width: 0;
15
+ }
16
+ .v-footer--border {
17
+ border-width: thin;
18
+ box-shadow: none;
19
+ }
20
+ .v-footer {
21
+ box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
22
+ }
23
+ .v-footer--absolute {
24
+ position: absolute;
25
+ }
26
+ .v-footer--fixed {
27
+ position: fixed;
28
+ }
29
+ .v-footer {
30
+ border-radius: 0;
31
+ }
32
+ .v-footer {
33
+ background: rgb(var(--v-theme-surface));
34
+ color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
35
+ }
36
+ .v-footer--rounded {
37
+ border-radius: 4px;
38
+ }
37
39
  }