@vuetify/nightly 3.7.3-next.2024-11-01 → 3.7.4-dev.2024-11-06

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 (183) hide show
  1. package/dist/json/attributes.json +5634 -5586
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +152 -152
  4. package/dist/json/tags.json +14 -1
  5. package/dist/json/web-types.json +10062 -9974
  6. package/dist/vuetify-labs.css +25162 -23449
  7. package/dist/vuetify-labs.d.ts +2 -1
  8. package/dist/vuetify-labs.esm.js +31 -15
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +31 -15
  11. package/dist/vuetify-labs.min.css +4 -3
  12. package/dist/vuetify.css +24102 -22386
  13. package/dist/vuetify.d.ts +54 -53
  14. package/dist/vuetify.esm.js +31 -15
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +31 -15
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +4 -3
  19. package/dist/vuetify.min.js +22 -22
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +215 -207
  22. package/lib/components/VApp/VApp.css +15 -16
  23. package/lib/components/VAppBar/VAppBar.css +12 -14
  24. package/lib/components/VAutocomplete/VAutocomplete.css +85 -86
  25. package/lib/components/VAvatar/VAvatar.css +106 -108
  26. package/lib/components/VBadge/VBadge.css +73 -73
  27. package/lib/components/VBanner/VBanner.css +166 -161
  28. package/lib/components/VBottomNavigation/VBottomNavigation.css +63 -64
  29. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  30. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  31. package/lib/components/VBtn/VBtn.css +408 -385
  32. package/lib/components/VBtn/VBtn.sass +11 -12
  33. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  34. package/lib/components/VBtnToggle/VBtnToggle.css +14 -13
  35. package/lib/components/VBtnToggle/VBtnToggle.sass +3 -0
  36. package/lib/components/VCard/VCard.css +302 -294
  37. package/lib/components/VCarousel/VCarousel.css +65 -63
  38. package/lib/components/VCarousel/VCarousel.sass +1 -1
  39. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  40. package/lib/components/VChip/VChip.css +411 -378
  41. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  42. package/lib/components/VCode/VCode.css +8 -10
  43. package/lib/components/VCode/index.mjs +1 -1
  44. package/lib/components/VCode/index.mjs.map +1 -1
  45. package/lib/components/VColorPicker/VColorPicker.css +22 -22
  46. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  47. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  48. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  49. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  50. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  51. package/lib/components/VCombobox/VCombobox.css +85 -86
  52. package/lib/components/VCounter/VCounter.css +5 -7
  53. package/lib/components/VDataTable/VDataTable.css +186 -189
  54. package/lib/components/VDataTable/VDataTable.sass +10 -20
  55. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  56. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  57. package/lib/components/VDataTable/index.d.mts +1 -0
  58. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  59. package/lib/components/VDatePicker/VDatePickerControls.css +56 -54
  60. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  61. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  62. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  63. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  64. package/lib/components/VDialog/VDialog.css +95 -99
  65. package/lib/components/VDialog/VDialog.mjs +8 -1
  66. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  67. package/lib/components/VDialog/VDialog.sass +6 -7
  68. package/lib/components/VDivider/VDivider.css +52 -52
  69. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  70. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  71. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  72. package/lib/components/VFab/VFab.css +69 -74
  73. package/lib/components/VFab/VFab.sass +4 -5
  74. package/lib/components/VField/VField.css +579 -539
  75. package/lib/components/VFileInput/VFileInput.css +29 -31
  76. package/lib/components/VFooter/VFooter.css +36 -38
  77. package/lib/components/VGrid/VGrid.css +592 -565
  78. package/lib/components/VIcon/VIcon.css +52 -51
  79. package/lib/components/VImg/VImg.css +51 -50
  80. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  81. package/lib/components/VInput/VInput.css +142 -131
  82. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  83. package/lib/components/VKbd/VKbd.css +11 -13
  84. package/lib/components/VKbd/index.mjs +1 -1
  85. package/lib/components/VKbd/index.mjs.map +1 -1
  86. package/lib/components/VLabel/VLabel.css +15 -16
  87. package/lib/components/VLayout/VLayout.css +8 -10
  88. package/lib/components/VLayout/VLayoutItem.css +7 -8
  89. package/lib/components/VList/VList.css +108 -104
  90. package/lib/components/VList/VList.sass +1 -1
  91. package/lib/components/VList/VListItem.css +452 -439
  92. package/lib/components/VList/VListItem.sass +17 -12
  93. package/lib/components/VList/_variables.scss +0 -11
  94. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  95. package/lib/components/VMain/VMain.css +30 -32
  96. package/lib/components/VMenu/VMenu.css +19 -21
  97. package/lib/components/VMenu/VMenu.mjs +15 -6
  98. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  99. package/lib/components/VMessages/VMessages.css +15 -17
  100. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +108 -106
  101. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  102. package/lib/components/VOverlay/VOverlay.css +63 -60
  103. package/lib/components/VOverlay/VOverlay.sass +13 -14
  104. package/lib/components/VPagination/VPagination.css +8 -10
  105. package/lib/components/VParallax/VParallax.css +6 -8
  106. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  107. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  108. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  109. package/lib/components/VRating/VRating.css +53 -52
  110. package/lib/components/VResponsive/VResponsive.css +26 -25
  111. package/lib/components/VSelect/VSelect.css +52 -54
  112. package/lib/components/VSelectionControl/VSelectionControl.css +102 -100
  113. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  114. package/lib/components/VSheet/VSheet.css +36 -38
  115. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  116. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  117. package/lib/components/VSlider/VSlider.css +57 -53
  118. package/lib/components/VSlider/VSliderThumb.css +153 -142
  119. package/lib/components/VSlider/VSliderTrack.css +174 -155
  120. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  121. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  122. package/lib/components/VStepper/VStepper.css +56 -55
  123. package/lib/components/VStepper/VStepperItem.css +115 -112
  124. package/lib/components/VSwitch/VSwitch.css +139 -129
  125. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  126. package/lib/components/VTable/VTable.css +141 -140
  127. package/lib/components/VTable/VTable.sass +2 -4
  128. package/lib/components/VTabs/VTab.css +29 -30
  129. package/lib/components/VTabs/VTabs.css +65 -59
  130. package/lib/components/VTextField/VTextField.css +68 -65
  131. package/lib/components/VTextarea/VTextarea.css +39 -47
  132. package/lib/components/VTextarea/VTextarea.sass +2 -4
  133. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  134. package/lib/components/VTimeline/VTimeline.css +418 -379
  135. package/lib/components/VToolbar/VToolbar.css +143 -136
  136. package/lib/components/VTooltip/VTooltip.css +21 -25
  137. package/lib/components/VTooltip/VTooltip.sass +6 -8
  138. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  139. package/lib/components/VWindow/VWindow.css +70 -73
  140. package/lib/components/index.d.mts +1 -0
  141. package/lib/composables/theme.mjs +4 -4
  142. package/lib/composables/theme.mjs.map +1 -1
  143. package/lib/composables/virtual.mjs +1 -1
  144. package/lib/composables/virtual.mjs.map +1 -1
  145. package/lib/directives/ripple/VRipple.css +36 -38
  146. package/lib/entry-bundler.mjs +1 -1
  147. package/lib/entry-bundler.mjs.map +1 -1
  148. package/lib/framework.mjs +1 -1
  149. package/lib/framework.mjs.map +1 -1
  150. package/lib/index.d.mts +52 -52
  151. package/lib/labs/VCalendar/VCalendar.css +225 -219
  152. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  153. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  154. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  155. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  156. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  157. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  158. package/lib/labs/VNumberInput/VNumberInput.css +38 -40
  159. package/lib/labs/VPicker/VPicker.css +57 -53
  160. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  161. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  162. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  163. package/lib/labs/VTreeview/VTreeviewItem.css +15 -17
  164. package/lib/labs/VTreeview/VTreeviewItem.sass +1 -2
  165. package/lib/styles/elements/_global.sass +1 -1
  166. package/lib/styles/generic/_colors.scss +3 -3
  167. package/lib/styles/generic/_layers.scss +1 -13
  168. package/lib/styles/generic/_transitions.scss +32 -32
  169. package/lib/styles/main.css +16139 -14666
  170. package/lib/styles/settings/_utilities.scss +5 -0
  171. package/lib/styles/settings/_variables.scss +2 -1
  172. package/lib/styles/tools/_bootable.sass +3 -0
  173. package/lib/styles/tools/_border.sass +4 -4
  174. package/lib/styles/tools/_display.sass +10 -0
  175. package/lib/styles/tools/_elevation.sass +2 -2
  176. package/lib/styles/tools/_index.sass +2 -0
  177. package/lib/styles/tools/_layer.scss +2 -4
  178. package/lib/styles/tools/_position.sass +2 -2
  179. package/lib/styles/tools/_radius.sass +10 -0
  180. package/lib/styles/tools/_rounded.sass +2 -2
  181. package/lib/styles/tools/_utilities.sass +5 -1
  182. package/lib/styles/utilities/_elevation.scss +1 -1
  183. package/package.json +1 -1
@@ -80,11 +80,11 @@
80
80
  ~ .v-list-item__spacer
81
81
  width: $list-item-icon-margin-start
82
82
 
83
- > .v-avatar ~ .v-list-item__spacer
84
- width: $list-item-avatar-margin-start
83
+ > .v-avatar,
84
+ > .v-badge:is(:has(.v-avatar))
85
+ ~ .v-list-item__spacer
86
+ width: $list-item-avatar-margin-start
85
87
 
86
- > .v-list-item-action ~ .v-list-item__spacer
87
- width: $list-item-action-spacer-width
88
88
 
89
89
  .v-list-item--slim &
90
90
  > .v-badge,
@@ -93,8 +93,10 @@
93
93
  ~ .v-list-item__spacer
94
94
  width: $list-item-slim-spacer-width
95
95
 
96
- > .v-avatar ~ .v-list-item__spacer
97
- width: $list-item-slim-avatar-spacer-width
96
+ > .v-avatar,
97
+ > .v-badge:is(:has(.v-avatar))
98
+ ~ .v-list-item__spacer
99
+ width: $list-item-slim-avatar-spacer-width
98
100
 
99
101
  > .v-list-item-action ~ .v-list-item__spacer
100
102
  width: $list-item-slim-action-spacer-width
@@ -118,8 +120,10 @@
118
120
  ~ .v-list-item__spacer
119
121
  width: $list-item-icon-margin-end
120
122
 
121
- > .v-avatar ~ .v-list-item__spacer
122
- width: $list-item-avatar-margin-end
123
+ > .v-avatar,
124
+ > .v-badge:is(:has(.v-avatar))
125
+ ~ .v-list-item__spacer
126
+ width: $list-item-avatar-margin-end
123
127
 
124
128
  > .v-list-item-action ~ .v-list-item__spacer
125
129
  width: $list-item-action-spacer-width
@@ -131,8 +135,10 @@
131
135
  ~ .v-list-item__spacer
132
136
  width: $list-item-slim-spacer-width
133
137
 
134
- > .v-avatar ~ .v-list-item__spacer
135
- width: $list-item-slim-avatar-spacer-width
138
+ > .v-avatar,
139
+ > .v-badge:is(:has(.v-avatar))
140
+ ~ .v-list-item__spacer
141
+ width: $list-item-slim-avatar-spacer-width
136
142
 
137
143
  > .v-list-item-action ~ .v-list-item__spacer
138
144
  width: $list-item-slim-action-spacer-width
@@ -317,8 +323,7 @@
317
323
  --indent-padding: calc(var(--parent-padding) + var(--list-indent-size))
318
324
 
319
325
  .v-list-group__items .v-list-item
320
- @include tools.layer('overrides')
321
- padding-inline-start: calc(#{$base-padding} + var(--indent-padding))
326
+ padding-inline-start: calc(#{$base-padding} + var(--indent-padding)) !important
322
327
 
323
328
  .v-list-group__header:not(.v-treeview-item--activatable-group-activator).v-list-item--active
324
329
  &:not(:focus-visible)
@@ -23,15 +23,12 @@ $list-nav-subheader-font-size: .75rem !default;
23
23
  $list-subheader-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
24
24
  $list-subheader-font-size: .875rem !default;
25
25
  $list-subheader-font-weight: 400 !default;
26
- $list-subheader-inset-margin: 56px !default;
27
26
  $list-subheader-inset-padding-start: 56px !default;
28
27
  $list-subheader-line-height: 1.375rem !default;
29
28
  $list-subheader-min-height: 40px !default;
30
29
  $list-subheader-padding-end: 16px !default;
31
- $list-subheader-padding-start: 16px !default;
32
30
  $list-subheader-padding-top: 0 !default;
33
31
  $list-subheader-min-height-multiplier: 1 !default;
34
- $list-subheader-text-opacity: var(--v-medium-emphasis-opacity) !default;
35
32
  $list-subheader-transition: 0.2s min-height settings.$standard-easing !default;
36
33
 
37
34
  // VListItem
@@ -50,7 +47,6 @@ $list-item-slim-prepend-size: 28px !default;
50
47
  $list-item-plain-opacity: .62 !default;
51
48
  $list-item-rounded-border-radius: map.get(settings.$rounded, null) !default;
52
49
  $list-item-one-line-min-height: 48px !default;
53
- $list-item-one-line-padding: 8px 16px !default;
54
50
  $list-item-two-line-min-height: 64px !default;
55
51
  $list-item-two-line-padding: 12px 16px !default;
56
52
  $list-item-three-line-min-height: 88px !default;
@@ -58,11 +54,8 @@ $list-item-three-line-padding: 16px 16px !default;
58
54
 
59
55
  $list-item-action-spacer-width: 16px !default;
60
56
  $list-item-slim-action-spacer-width: 4px !default;
61
- $list-item-avatar-align-self: flex-start !default;
62
57
  $list-item-avatar-margin-end: 16px !default;
63
58
  $list-item-avatar-margin-start: 16px !default;
64
- $list-item-avatar-size: 40px !default;
65
- $list-item-avatar-margin-y: 4px !default;
66
59
  $list-item-slim-spacer-width: 20px !default;
67
60
  $list-item-slim-avatar-spacer-width: 4px !default;
68
61
 
@@ -71,8 +64,6 @@ $list-item-action-margin-start: 8px !default;
71
64
 
72
65
  $list-item-icon-margin-end: 32px !default;
73
66
  $list-item-icon-margin-start: 32px !default;
74
- $list-item-slim-icon-margin: 8px !default;
75
- $list-item-icon-size: 16px !default;
76
67
 
77
68
  $list-item-media-margin-bottom: 0 !default;
78
69
  $list-item-media-margin-end: 16px !default;
@@ -105,13 +96,11 @@ $list-item-subtitle-word-break: initial !default;
105
96
 
106
97
  $list-item-title-font-size: tools.map-deep-get(settings.$typography, 'body-1', 'size') !default;
107
98
  $list-item-title-font-weight: tools.map-deep-get(settings.$typography, 'body-1', 'weight') !default;
108
- $list-item-title-header-padding: 0 !default;
109
99
  $list-item-title-hyphens: auto !default;
110
100
  $list-item-title-letter-spacing: tools.map-deep-get(settings.$typography, 'subtitle-1', 'letter-spacing') !default;
111
101
  $list-item-title-line-height: tools.map-deep-get(settings.$typography, 'body-1', 'line-height') !default;
112
102
  $list-item-title-overflow-wrap: normal !default;
113
103
  $list-item-title-padding: 0 !default;
114
- $list-item-title-text-overflow: ellipsis !default;
115
104
  $list-item-title-text-transform: none !default;
116
105
  $list-item-title-word-break: normal !default;
117
106
  $list-item-title-word-wrap: break-word !default;
@@ -1,5 +1,3 @@
1
- @layer vuetify.components {
2
- .v-locale-provider {
3
- display: contents;
4
- }
1
+ .v-locale-provider {
2
+ display: contents;
5
3
  }
@@ -1,33 +1,31 @@
1
- @layer vuetify.components {
2
- .v-main {
3
- flex: 1 0 auto;
4
- max-width: 100%;
5
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
6
- padding-left: var(--v-layout-left);
7
- padding-right: var(--v-layout-right);
8
- padding-top: var(--v-layout-top);
9
- padding-bottom: var(--v-layout-bottom);
10
- }
11
- .v-main__scroller {
12
- max-width: 100%;
13
- position: relative;
14
- }
15
- .v-main--scrollable {
16
- display: flex;
17
- }
18
- .v-main--scrollable {
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- width: 100%;
23
- height: 100%;
24
- }
25
- .v-main--scrollable > .v-main__scroller {
26
- flex: 1 1 auto;
27
- overflow-y: auto;
28
- --v-layout-left: 0px;
29
- --v-layout-right: 0px;
30
- --v-layout-top: 0px;
31
- --v-layout-bottom: 0px;
32
- }
1
+ .v-main {
2
+ flex: 1 0 auto;
3
+ max-width: 100%;
4
+ transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5
+ padding-left: var(--v-layout-left);
6
+ padding-right: var(--v-layout-right);
7
+ padding-top: var(--v-layout-top);
8
+ padding-bottom: var(--v-layout-bottom);
9
+ }
10
+ .v-main__scroller {
11
+ max-width: 100%;
12
+ position: relative;
13
+ }
14
+ .v-main--scrollable {
15
+ display: flex;
16
+ }
17
+ .v-main--scrollable {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ }
24
+ .v-main--scrollable > .v-main__scroller {
25
+ flex: 1 1 auto;
26
+ overflow-y: auto;
27
+ --v-layout-left: 0px;
28
+ --v-layout-right: 0px;
29
+ --v-layout-top: 0px;
30
+ --v-layout-bottom: 0px;
33
31
  }
@@ -1,22 +1,20 @@
1
- @layer vuetify.components {
2
- .v-menu > .v-overlay__content {
3
- display: flex;
4
- flex-direction: column;
5
- }
6
- .v-menu > .v-overlay__content {
7
- border-radius: 4px;
8
- }
9
- .v-menu > .v-overlay__content > .v-card,
10
- .v-menu > .v-overlay__content > .v-sheet,
11
- .v-menu > .v-overlay__content > .v-list {
12
- background: rgb(var(--v-theme-surface));
13
- border-radius: inherit;
14
- overflow: auto;
15
- height: 100%;
16
- }
17
- .v-menu > .v-overlay__content > .v-card,
18
- .v-menu > .v-overlay__content > .v-sheet,
19
- .v-menu > .v-overlay__content > .v-list {
20
- box-shadow: 0px 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
21
- }
1
+ .v-menu > .v-overlay__content {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+ .v-menu > .v-overlay__content {
6
+ border-radius: 4px;
7
+ }
8
+ .v-menu > .v-overlay__content > .v-card,
9
+ .v-menu > .v-overlay__content > .v-sheet,
10
+ .v-menu > .v-overlay__content > .v-list {
11
+ background: rgb(var(--v-theme-surface));
12
+ border-radius: inherit;
13
+ overflow: auto;
14
+ height: 100%;
15
+ }
16
+ .v-menu > .v-overlay__content > .v-card,
17
+ .v-menu > .v-overlay__content > .v-sheet,
18
+ .v-menu > .v-overlay__content > .v-list {
19
+ box-shadow: 0px 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
22
20
  }
@@ -13,7 +13,7 @@ import { useProxiedModel } from "../../composables/proxiedModel.mjs";
13
13
  import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
14
14
  import { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, watch } from 'vue';
15
15
  import { VMenuSymbol } from "./shared.mjs";
16
- import { focusableChildren, focusChild, genericComponent, getNextElement, getUid, isClickInsideElement, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
+ import { focusableChildren, focusChild, genericComponent, getNextElement, getUid, IN_BROWSER, isClickInsideElement, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
17
  export const makeVMenuProps = propsFactory({
18
18
  // TODO
19
19
  // disableKeys: Boolean,
@@ -70,7 +70,10 @@ export const VMenu = genericComponent()({
70
70
  }, 40);
71
71
  }
72
72
  });
73
- onBeforeUnmount(() => parent?.unregister());
73
+ onBeforeUnmount(() => {
74
+ parent?.unregister();
75
+ document.removeEventListener('focusin', onFocusIn);
76
+ });
74
77
  onDeactivated(() => isActive.value = false);
75
78
  async function onFocusIn(e) {
76
79
  const before = e.relatedTarget;
@@ -90,13 +93,19 @@ export const VMenu = genericComponent()({
90
93
  watch(isActive, val => {
91
94
  if (val) {
92
95
  parent?.register();
93
- document.addEventListener('focusin', onFocusIn, {
94
- once: true
95
- });
96
+ if (IN_BROWSER) {
97
+ document.addEventListener('focusin', onFocusIn, {
98
+ once: true
99
+ });
100
+ }
96
101
  } else {
97
102
  parent?.unregister();
98
- document.removeEventListener('focusin', onFocusIn);
103
+ if (IN_BROWSER) {
104
+ document.removeEventListener('focusin', onFocusIn);
105
+ }
99
106
  }
107
+ }, {
108
+ immediate: true
100
109
  });
101
110
  function onClickOutside(e) {
102
111
  parent?.closeParents(e);
@@ -1 +1 @@
1
- {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","onFocusIn","before","relatedTarget","after","target","globalTop","document","includes","contains","focusable","focus","val","addEventListener","once","removeEventListener","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","stopImmediatePropagation","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set<number>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => parent?.unregister())\n onDeactivated(() => isActive.value = false)\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","IN_BROWSER","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","document","removeEventListener","onFocusIn","before","relatedTarget","after","target","globalTop","includes","contains","focusable","focus","val","addEventListener","once","immediate","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","stopImmediatePropagation","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n IN_BROWSER,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set<number>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n })\n onDeactivated(() => isActive.value = false)\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n if (IN_BROWSER) {\n document.addEventListener('focusin', onFocusIn, { once: true })\n }\n } else {\n parent?.unregister()\n if (IN_BROWSER) {\n document.removeEventListener('focusin', onFocusIn)\n }\n }\n }, { immediate: true })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,16 @@
1
- @layer vuetify.components {
2
- .v-messages {
3
- flex: 1 1 auto;
4
- font-size: 12px;
5
- min-height: 14px;
6
- min-width: 1px;
7
- opacity: var(--v-medium-emphasis-opacity);
8
- position: relative;
9
- }
10
- .v-messages__message {
11
- line-height: 12px;
12
- word-break: break-word;
13
- overflow-wrap: break-word;
14
- word-wrap: break-word;
15
- hyphens: auto;
16
- transition-duration: 150ms;
17
- }
1
+ .v-messages {
2
+ flex: 1 1 auto;
3
+ font-size: 12px;
4
+ min-height: 14px;
5
+ min-width: 1px;
6
+ opacity: var(--v-medium-emphasis-opacity);
7
+ position: relative;
8
+ }
9
+ .v-messages__message {
10
+ line-height: 12px;
11
+ word-break: break-word;
12
+ overflow-wrap: break-word;
13
+ word-wrap: break-word;
14
+ hyphens: auto;
15
+ transition-duration: 150ms;
18
16
  }
@@ -1,107 +1,109 @@
1
- @layer vuetify.components {
2
- .v-navigation-drawer {
3
- -webkit-overflow-scrolling: touch;
4
- background: rgb(var(--v-theme-surface));
5
- display: flex;
6
- flex-direction: column;
7
- height: 100%;
8
- max-width: 100%;
9
- pointer-events: auto;
10
- transition-duration: 0.2s;
11
- transition-property: box-shadow, transform, visibility, width, height, left, right, top, bottom;
12
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
13
- position: absolute;
14
- }
15
- .v-navigation-drawer {
16
- border-color: rgba(var(--v-border-color), var(--v-border-opacity));
17
- border-style: solid;
18
- border-width: 0;
19
- }
20
- .v-navigation-drawer--border {
21
- border-width: thin;
22
- box-shadow: none;
23
- }
24
- .v-navigation-drawer {
25
- 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));
26
- }
27
- .v-navigation-drawer {
28
- background: rgb(var(--v-theme-surface));
29
- color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
30
- }
31
- .v-navigation-drawer--rounded {
32
- border-radius: 4px;
33
- }
34
- .v-navigation-drawer--top, .v-navigation-drawer--bottom {
35
- max-height: -webkit-fill-available;
36
- overflow-y: auto;
37
- }
38
- .v-navigation-drawer--top {
39
- top: 0;
40
- border-bottom-width: thin;
41
- }
42
- .v-navigation-drawer--bottom {
43
- left: 0;
44
- border-top-width: thin;
45
- }
46
- .v-navigation-drawer--left {
47
- top: 0;
48
- left: 0;
49
- right: auto;
50
- border-right-width: thin;
51
- }
52
- .v-navigation-drawer--right {
53
- top: 0;
54
- left: auto;
55
- right: 0;
56
- border-left-width: thin;
57
- }
58
- .v-navigation-drawer--floating {
59
- border: none;
60
- }
61
- .v-navigation-drawer--temporary.v-navigation-drawer--active {
62
- box-shadow: 0px 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
63
- }
64
- .v-navigation-drawer--sticky {
65
- height: auto;
66
- transition: box-shadow, transform, visibility, width, height, left, right;
67
- }
68
- .v-navigation-drawer .v-list {
69
- overflow: hidden;
70
- }
71
- .v-navigation-drawer__content {
72
- flex: 0 1 auto;
73
- height: 100%;
74
- max-width: 100%;
75
- overflow-x: hidden;
76
- overflow-y: auto;
77
- }
78
- .v-navigation-drawer__img {
79
- height: 100%;
80
- left: 0;
81
- position: absolute;
82
- top: 0;
83
- width: 100%;
84
- z-index: -1;
85
- }
86
- .v-navigation-drawer__img img:not(.v-img__img) {
87
- height: inherit;
88
- object-fit: cover;
89
- width: inherit;
90
- }
91
- .v-navigation-drawer__scrim {
92
- position: absolute;
93
- top: 0;
94
- left: 0;
95
- width: 100%;
96
- height: 100%;
97
- background: black;
98
- opacity: 0.2;
99
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
100
- z-index: 1;
101
- }
102
- .v-navigation-drawer__prepend,
103
- .v-navigation-drawer__append {
104
- flex: none;
105
- overflow: hidden;
106
- }
1
+ .v-navigation-drawer {
2
+ -webkit-overflow-scrolling: touch;
3
+ background: rgb(var(--v-theme-surface));
4
+ display: flex;
5
+ flex-direction: column;
6
+ height: 100%;
7
+ max-width: 100%;
8
+ pointer-events: auto;
9
+ transition-duration: 0.2s;
10
+ transition-property: box-shadow, transform, visibility, width, height, left, right, top, bottom;
11
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
12
+ position: absolute;
13
+ }
14
+ .v-navigation-drawer {
15
+ border-color: rgba(var(--v-border-color), var(--v-border-opacity));
16
+ border-style: solid;
17
+ border-width: 0;
18
+ }
19
+ .v-navigation-drawer--border {
20
+ border-width: thin;
21
+ box-shadow: none;
22
+ }
23
+ .v-navigation-drawer {
24
+ 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));
25
+ }
26
+ .v-navigation-drawer {
27
+ background: rgb(var(--v-theme-surface));
28
+ color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
29
+ }
30
+ .v-navigation-drawer--rounded {
31
+ border-radius: 4px;
32
+ }
33
+ .v-navigation-drawer--top, .v-navigation-drawer--bottom {
34
+ max-height: -webkit-fill-available;
35
+ overflow-y: auto;
36
+ }
37
+ .v-navigation-drawer--top {
38
+ top: 0;
39
+ border-bottom-width: thin;
40
+ }
41
+ .v-navigation-drawer--bottom {
42
+ left: 0;
43
+ border-top-width: thin;
44
+ }
45
+ .v-navigation-drawer--left {
46
+ top: 0;
47
+ left: 0;
48
+ right: auto;
49
+ border-right-width: thin;
50
+ }
51
+ .v-navigation-drawer--right {
52
+ top: 0;
53
+ left: auto;
54
+ right: 0;
55
+ border-left-width: thin;
56
+ }
57
+ .v-navigation-drawer--floating {
58
+ border: none;
59
+ }
60
+ .v-navigation-drawer--temporary.v-navigation-drawer--active {
61
+ box-shadow: 0px 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
62
+ }
63
+ .v-navigation-drawer--sticky {
64
+ height: auto;
65
+ transition: box-shadow, transform, visibility, width, height, left, right;
66
+ }
67
+ .v-navigation-drawer .v-list {
68
+ overflow: hidden;
69
+ }
70
+
71
+ .v-navigation-drawer__content {
72
+ flex: 0 1 auto;
73
+ height: 100%;
74
+ max-width: 100%;
75
+ overflow-x: hidden;
76
+ overflow-y: auto;
77
+ }
78
+
79
+ .v-navigation-drawer__img {
80
+ height: 100%;
81
+ left: 0;
82
+ position: absolute;
83
+ top: 0;
84
+ width: 100%;
85
+ z-index: -1;
86
+ }
87
+ .v-navigation-drawer__img img:not(.v-img__img) {
88
+ height: inherit;
89
+ object-fit: cover;
90
+ width: inherit;
91
+ }
92
+
93
+ .v-navigation-drawer__scrim {
94
+ position: absolute;
95
+ top: 0;
96
+ left: 0;
97
+ width: 100%;
98
+ height: 100%;
99
+ background: black;
100
+ opacity: 0.2;
101
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
102
+ z-index: 1;
103
+ }
104
+
105
+ .v-navigation-drawer__prepend,
106
+ .v-navigation-drawer__append {
107
+ flex: none;
108
+ overflow: hidden;
107
109
  }