@vuetify/nightly 3.0.0-beta.6 → 3.0.0-beta.9
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.
- package/CHANGELOG.md +14 -39
- package/dist/json/attributes.json +98 -14
- package/dist/json/importMap.json +64 -64
- package/dist/json/tags.json +23 -2
- package/dist/json/web-types.json +253 -40
- package/dist/vuetify.css +1469 -1640
- package/dist/vuetify.d.ts +1701 -7588
- package/dist/vuetify.esm.js +694 -443
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +693 -441
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +766 -742
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +0 -3
- package/lib/components/VAlert/VAlert.mjs +20 -10
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +0 -3
- package/lib/components/VAutocomplete/VAutocomplete.css +10 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -3
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAvatar/VAvatar.css +2 -0
- package/lib/components/VAvatar/VAvatar.sass +3 -0
- package/lib/components/VBtn/VBtn.css +29 -5
- package/lib/components/VBtn/VBtn.sass +40 -10
- package/lib/components/VBtn/_variables.scss +4 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
- package/lib/components/VCard/VCard.mjs +12 -7
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +10 -0
- package/lib/components/VCombobox/VCombobox.mjs +2 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +10 -0
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VDialog/VDialog.mjs +3 -3
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VField/VField.css +44 -25
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +33 -19
- package/lib/components/VField/_variables.scss +3 -2
- package/lib/components/VFileInput/VFileInput.mjs +2 -2
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +2 -2
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +2 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +8 -3
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +0 -10
- package/lib/components/VIcon/VIcon.sass +0 -10
- package/lib/components/VIcon/_variables.scss +0 -1
- package/lib/components/VImg/VImg.mjs +1 -0
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +2 -1
- package/lib/components/VInput/VInput.sass +2 -1
- package/lib/components/VInput/_variables.scss +0 -1
- package/lib/components/VLayout/VLayout.css +0 -2
- package/lib/components/VLayout/VLayout.sass +0 -2
- package/lib/components/VList/VList.css +4 -1
- package/lib/components/VList/VList.sass +5 -1
- package/lib/components/VList/VListChildren.mjs +19 -2
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +18 -11
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VMain/VMain.css +21 -3
- package/lib/components/VMain/VMain.mjs +13 -8
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +18 -3
- package/lib/components/VMenu/VMenu.mjs +2 -2
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +52 -19
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
- package/lib/components/VNavigationDrawer/_variables.scss +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
- package/lib/components/VOverlay/VOverlay.mjs +8 -6
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/useActivator.mjs +1 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +8 -17
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +20 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +10 -0
- package/lib/components/VSelect/VSelect.mjs +3 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +10 -0
- package/lib/components/VSelect/_variables.scss +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +4 -4
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +1 -3
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +0 -1
- package/lib/components/VTabs/VTab.sass +0 -1
- package/lib/components/VTextField/VTextField.css +2 -1
- package/lib/components/VTextField/VTextField.mjs +19 -21
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +2 -1
- package/lib/components/VTextarea/VTextarea.css +6 -2
- package/lib/components/VTextarea/VTextarea.mjs +18 -11
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -2
- package/lib/components/VTextarea/_variables.scss +0 -1
- package/lib/components/VTimeline/VTimeline.css +123 -112
- package/lib/components/VTimeline/VTimeline.mjs +4 -4
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +129 -111
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -2
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -1
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +9 -33
- package/lib/components/VToolbar/VToolbar.mjs +3 -4
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +5 -15
- package/lib/components/VToolbar/_variables.scss +3 -7
- package/lib/components/VTooltip/VTooltip.mjs +2 -2
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/index.d.ts +1696 -7583
- package/lib/composables/color.mjs +19 -26
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +29 -9
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
- package/lib/composables/forwardRefs.mjs.map +1 -0
- package/lib/composables/index.mjs +3 -2
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/layout.mjs +12 -12
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/rtl.mjs +2 -2
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/size.mjs +18 -14
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/stack.mjs +22 -12
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +9 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +13 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/index.d.ts +21 -21
- package/lib/styles/generic/_colors.scss +17 -9
- package/lib/styles/main.css +1135 -1371
- package/lib/styles/settings/_utilities.scss +16 -5
- package/lib/styles/utilities/_index.sass +0 -1
- package/lib/util/anchor.mjs +1 -3
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +6 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +12 -0
- package/lib/util/injectSelf.mjs.map +1 -0
- package/package.json +3 -1
- package/lib/composables/forwardRef.mjs.map +0 -1
- package/lib/styles/utilities/_text.sass +0 -9
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use 'sass:map'
|
|
2
|
+
@use 'sass:math'
|
|
2
3
|
@use '../../styles/settings'
|
|
3
4
|
@use '../../styles/tools'
|
|
4
5
|
@use './variables' as *
|
|
@@ -65,7 +66,7 @@
|
|
|
65
66
|
.v-timeline-item:nth-child(2n)
|
|
66
67
|
.v-timeline-item__body
|
|
67
68
|
grid-column: 1
|
|
68
|
-
|
|
69
|
+
justify-self: flex-end
|
|
69
70
|
padding-inline-end: $timeline-item-padding
|
|
70
71
|
|
|
71
72
|
.v-timeline-item__opposite
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
|
|
80
81
|
.v-timeline-item__opposite
|
|
81
82
|
grid-column: 1
|
|
82
|
-
|
|
83
|
+
justify-self: flex-end
|
|
83
84
|
padding-inline-end: $timeline-item-padding
|
|
84
85
|
|
|
85
86
|
// VTimelineItem
|
|
@@ -102,35 +103,106 @@
|
|
|
102
103
|
flex-direction: column
|
|
103
104
|
grid-column: 2
|
|
104
105
|
|
|
105
|
-
.v-timeline-
|
|
106
|
+
$timeline-divider-size: calc(50% + #{math.div($timeline-item-padding, 2)} - var(--v-timeline-line-inset))
|
|
107
|
+
$timeline-divider-offset: math.div(-$timeline-item-padding, 2)
|
|
108
|
+
|
|
109
|
+
.v-timeline-divider__before
|
|
106
110
|
background: $timeline-divider-line-background
|
|
107
111
|
position: absolute
|
|
108
112
|
|
|
109
113
|
@include horizontal
|
|
110
114
|
height: $timeline-divider-line-thickness
|
|
111
|
-
width:
|
|
115
|
+
width: $timeline-divider-size
|
|
112
116
|
|
|
113
117
|
@include tools.ltr
|
|
114
|
-
left:
|
|
118
|
+
left: $timeline-divider-offset
|
|
119
|
+
right: initial
|
|
120
|
+
|
|
115
121
|
@include tools.rtl
|
|
116
|
-
right:
|
|
122
|
+
right: $timeline-divider-offset
|
|
123
|
+
left: initial
|
|
117
124
|
|
|
118
125
|
@include vertical
|
|
119
|
-
height:
|
|
126
|
+
height: $timeline-divider-size
|
|
120
127
|
width: $timeline-divider-line-thickness
|
|
128
|
+
top: $timeline-divider-offset
|
|
129
|
+
|
|
130
|
+
.v-timeline-divider__after
|
|
131
|
+
background: $timeline-divider-line-background
|
|
132
|
+
position: absolute
|
|
133
|
+
|
|
134
|
+
@include horizontal
|
|
135
|
+
height: $timeline-divider-line-thickness
|
|
136
|
+
width: $timeline-divider-size
|
|
121
137
|
|
|
122
138
|
@include tools.ltr
|
|
123
|
-
|
|
139
|
+
right: $timeline-divider-offset
|
|
140
|
+
left: initial
|
|
141
|
+
|
|
124
142
|
@include tools.rtl
|
|
125
|
-
|
|
143
|
+
left: $timeline-divider-offset
|
|
144
|
+
right: initial
|
|
145
|
+
|
|
146
|
+
@include vertical
|
|
147
|
+
height: $timeline-divider-size
|
|
148
|
+
width: $timeline-divider-line-thickness
|
|
149
|
+
bottom: $timeline-divider-offset
|
|
150
|
+
|
|
151
|
+
.v-timeline-item:first-child
|
|
152
|
+
.v-timeline-divider__before
|
|
153
|
+
@include vertical
|
|
154
|
+
height: $timeline-divider-size
|
|
155
|
+
top: 0
|
|
156
|
+
|
|
157
|
+
@include horizontal
|
|
158
|
+
width: $timeline-divider-size
|
|
159
|
+
|
|
160
|
+
@include tools.ltr
|
|
161
|
+
left: 0
|
|
162
|
+
right: initial
|
|
163
|
+
|
|
164
|
+
@include tools.rtl
|
|
165
|
+
right: 0
|
|
166
|
+
left: initial
|
|
167
|
+
|
|
168
|
+
.v-timeline-divider__after
|
|
169
|
+
@include vertical
|
|
170
|
+
height: calc(50% - var(--v-timeline-line-inset))
|
|
171
|
+
|
|
172
|
+
@include horizontal
|
|
173
|
+
width: calc(50% - var(--v-timeline-line-inset))
|
|
174
|
+
|
|
175
|
+
@include tools.ltr
|
|
176
|
+
right: math.div(-$timeline-item-padding,2)
|
|
177
|
+
left: initial
|
|
178
|
+
|
|
179
|
+
@include tools.rtl
|
|
180
|
+
left: math.div(-$timeline-item-padding,2)
|
|
181
|
+
right: initial
|
|
126
182
|
|
|
127
183
|
.v-timeline-item:last-child
|
|
128
|
-
.v-timeline-
|
|
184
|
+
.v-timeline-divider__before
|
|
129
185
|
@include vertical
|
|
130
|
-
height:
|
|
186
|
+
height: calc(50% - var(--v-timeline-line-inset))
|
|
131
187
|
|
|
132
188
|
@include horizontal
|
|
133
|
-
width:
|
|
189
|
+
width: calc(50% - var(--v-timeline-line-inset))
|
|
190
|
+
|
|
191
|
+
.v-timeline-divider__after
|
|
192
|
+
@include vertical
|
|
193
|
+
height: calc(50% + #{math.div($timeline-item-padding, 2)} - var(--v-timeline-line-inset))
|
|
194
|
+
bottom: 0
|
|
195
|
+
|
|
196
|
+
@include horizontal
|
|
197
|
+
width: calc(50% + #{math.div($timeline-item-padding, 2)} - var(--v-timeline-line-inset))
|
|
198
|
+
|
|
199
|
+
@include tools.ltr
|
|
200
|
+
right: 0
|
|
201
|
+
left: initial
|
|
202
|
+
|
|
203
|
+
@include tools.rtl
|
|
204
|
+
left: 0
|
|
205
|
+
right: initial
|
|
134
206
|
|
|
135
207
|
.v-timeline-divider__dot
|
|
136
208
|
z-index: 1
|
|
@@ -219,13 +291,13 @@
|
|
|
219
291
|
@include vertical(true)
|
|
220
292
|
.v-timeline-item__body
|
|
221
293
|
grid-column: 3
|
|
222
|
-
text-align: initial
|
|
223
294
|
padding-inline-start: $timeline-item-padding
|
|
224
295
|
padding-inline-end: initial
|
|
296
|
+
justify-self: flex-start
|
|
225
297
|
|
|
226
298
|
.v-timeline-item__opposite
|
|
227
299
|
grid-column: 1
|
|
228
|
-
|
|
300
|
+
justify-self: flex-end
|
|
229
301
|
padding-inline-end: $timeline-item-padding
|
|
230
302
|
padding-inline-start: initial
|
|
231
303
|
|
|
@@ -245,13 +317,13 @@
|
|
|
245
317
|
@include vertical(true)
|
|
246
318
|
.v-timeline-item__body
|
|
247
319
|
grid-column: 1
|
|
248
|
-
|
|
320
|
+
justify-self: flex-end
|
|
249
321
|
padding-inline-end: $timeline-item-padding
|
|
250
322
|
|
|
251
323
|
.v-timeline-item__opposite
|
|
252
324
|
grid-column: 3
|
|
253
|
-
text-align: initial
|
|
254
325
|
padding-inline-start: $timeline-item-padding
|
|
326
|
+
justify-self: flex-start
|
|
255
327
|
|
|
256
328
|
// Fill dot
|
|
257
329
|
.v-timeline-divider--fill-dot
|
|
@@ -260,51 +332,15 @@
|
|
|
260
332
|
width: inherit
|
|
261
333
|
|
|
262
334
|
// Truncate line
|
|
263
|
-
.v-timeline--truncate-line-end
|
|
264
|
-
.v-timeline-item:last-child
|
|
265
|
-
.v-timeline-divider__line
|
|
266
|
-
@include horizontal(true)
|
|
267
|
-
width: 50%
|
|
268
|
-
|
|
269
|
-
@include vertical(true)
|
|
270
|
-
height: $timeline-item-padding
|
|
271
|
-
|
|
272
|
-
.v-timeline--truncate-line-end.v-timeline--align-start
|
|
273
|
-
.v-timeline-item:last-child
|
|
274
|
-
.v-timeline-divider__line
|
|
275
|
-
@include horizontal(true)
|
|
276
|
-
width: $timeline-item-padding
|
|
277
|
-
|
|
278
335
|
.v-timeline--truncate-line-start
|
|
279
336
|
.v-timeline-item:first-child
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
padding-inline-start: 0
|
|
283
|
-
|
|
284
|
-
@include vertical(true)
|
|
285
|
-
.v-timeline-item__body, .v-timeline-item__opposite, .v-timeline-divider
|
|
286
|
-
padding-block-start: 0
|
|
287
|
-
|
|
288
|
-
.v-timeline--truncate-line-start.v-timeline--align-center
|
|
289
|
-
.v-timeline-item:first-child
|
|
290
|
-
.v-timeline-divider__line
|
|
291
|
-
$inset: calc(50% + #{$timeline-item-padding} - var(--v-timeline-dot-size))
|
|
292
|
-
|
|
293
|
-
@include horizontal(true)
|
|
294
|
-
width: calc(50% + var(--v-timeline-dot-size))
|
|
295
|
-
|
|
296
|
-
@include tools.ltr
|
|
297
|
-
left: $inset
|
|
298
|
-
@include tools.rtl
|
|
299
|
-
right: $inset
|
|
300
|
-
|
|
301
|
-
@include vertical(true)
|
|
302
|
-
height: calc(50% + var(--v-timeline-dot-size))
|
|
337
|
+
.v-timeline-divider__before
|
|
338
|
+
display: none
|
|
303
339
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
340
|
+
.v-timeline--truncate-line-end
|
|
341
|
+
.v-timeline-item:last-child
|
|
342
|
+
.v-timeline-divider__after
|
|
343
|
+
display: none
|
|
308
344
|
|
|
309
345
|
// Alignment
|
|
310
346
|
.v-timeline--align-center
|
|
@@ -321,72 +357,54 @@
|
|
|
321
357
|
justify-content: center
|
|
322
358
|
|
|
323
359
|
.v-timeline--align-start
|
|
324
|
-
|
|
325
|
-
|
|
360
|
+
$timeline-divider-before-base: calc(#{math.div($timeline-item-padding, 2)} + var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))
|
|
361
|
+
$timeline-divider-after-base: calc(100% - var(--v-timeline-dot-size) / 2 + #{$timeline-item-padding} / 2 - var(--v-timeline-line-inset))
|
|
362
|
+
$timeline-divider-before-first: calc($timeline-item-padding + var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))
|
|
363
|
+
$timeline-divider-after-first: calc(100% - #{math.div($timeline-item-padding, 2)} - var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))
|
|
364
|
+
$timeline-divider-after-last: calc(100% - var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))
|
|
326
365
|
|
|
327
|
-
@include
|
|
328
|
-
|
|
366
|
+
@include horizontal(true)
|
|
367
|
+
justify-items: flex-start
|
|
329
368
|
|
|
330
369
|
.v-timeline-divider
|
|
331
370
|
justify-content: flex-start
|
|
332
371
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
.v-timeline-divider__line
|
|
336
|
-
$inset: calc(50% + var(--v-timeline-line-inset) + var(--v-timeline-dot-size) / 2)
|
|
337
|
-
|
|
338
|
-
@include horizontal(true)
|
|
339
|
-
width: calc(100% + #{$timeline-item-padding} - var(--v-timeline-dot-size) - var(--v-timeline-line-inset) * 2)
|
|
340
|
-
|
|
341
|
-
@include tools.ltr
|
|
342
|
-
left: $inset
|
|
343
|
-
@include tools.rtl
|
|
344
|
-
right: $inset
|
|
345
|
-
|
|
346
|
-
@include vertical(true)
|
|
347
|
-
height: calc(100% + #{$timeline-item-padding} - var(--v-timeline-dot-size) - var(--v-timeline-line-inset) * 2)
|
|
372
|
+
.v-timeline-divider__before
|
|
373
|
+
width: $timeline-divider-before-base
|
|
348
374
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
@include tools.rtl
|
|
352
|
-
bottom: $inset
|
|
375
|
+
.v-timeline-divider__after
|
|
376
|
+
width: $timeline-divider-after-base
|
|
353
377
|
|
|
354
|
-
|
|
355
|
-
|
|
378
|
+
.v-timeline-item:first-child
|
|
379
|
+
.v-timeline-divider__before
|
|
380
|
+
width: $timeline-divider-before-first
|
|
356
381
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
width: calc(100% - var(--v-timeline-dot-size) - var(--v-timeline-line-inset) * 2)
|
|
382
|
+
.v-timeline-divider__after
|
|
383
|
+
width: $timeline-divider-after-first
|
|
360
384
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
right: $inset
|
|
385
|
+
.v-timeline-item:last-child
|
|
386
|
+
.v-timeline-divider__after
|
|
387
|
+
width: $timeline-divider-after-last
|
|
365
388
|
|
|
366
|
-
|
|
367
|
-
|
|
389
|
+
@include vertical(true)
|
|
390
|
+
align-items: flex-start
|
|
368
391
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
@include tools.rtl
|
|
372
|
-
bottom: $inset
|
|
392
|
+
.v-timeline-divider
|
|
393
|
+
justify-content: flex-start
|
|
373
394
|
|
|
374
|
-
|
|
375
|
-
|
|
395
|
+
.v-timeline-divider__before
|
|
396
|
+
height: $timeline-divider-before-base
|
|
376
397
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
width: calc(50% - #{$timeline-item-padding} - var(--v-timeline-line-inset) * 2)
|
|
398
|
+
.v-timeline-divider__after
|
|
399
|
+
height: $timeline-divider-after-base
|
|
380
400
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
right: $inset
|
|
401
|
+
.v-timeline-item:first-child
|
|
402
|
+
.v-timeline-divider__before
|
|
403
|
+
height: $timeline-divider-before-first
|
|
385
404
|
|
|
386
|
-
|
|
387
|
-
height:
|
|
405
|
+
.v-timeline-divider__after
|
|
406
|
+
height: $timeline-divider-after-first
|
|
388
407
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
bottom: $inset
|
|
408
|
+
.v-timeline-item:last-child
|
|
409
|
+
.v-timeline-divider__after
|
|
410
|
+
height: $timeline-divider-after-last
|
|
@@ -61,7 +61,10 @@ export const VTimelineDivider = defineComponent({
|
|
|
61
61
|
"class": ['v-timeline-divider', {
|
|
62
62
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
63
63
|
}]
|
|
64
|
-
}, [
|
|
64
|
+
}, [_createVNode("div", {
|
|
65
|
+
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
66
|
+
"style": lineColorStyles.value
|
|
67
|
+
}, null), !props.hideDot && _createVNode("div", {
|
|
65
68
|
"key": "dot",
|
|
66
69
|
"class": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],
|
|
67
70
|
"style": sizeStyles.value
|
|
@@ -69,7 +72,7 @@ export const VTimelineDivider = defineComponent({
|
|
|
69
72
|
"class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
|
|
70
73
|
"style": backgroundColorStyles.value
|
|
71
74
|
}, [(_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : props.icon ? _createVNode(VIcon, null, null) : undefined])]), _createVNode("div", {
|
|
72
|
-
"class": ['v-timeline-
|
|
75
|
+
"class": ['v-timeline-divider__after', lineColorClasses.value],
|
|
73
76
|
"style": lineColorStyles.value
|
|
74
77
|
}, null)]);
|
|
75
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTimelineDivider.mjs","names":["VIcon","IconValue","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeSizeProps","useSize","provideDefaults","useBackgroundColor","defineComponent","useRender","toRef","VTimelineDivider","name","props","dotColor","String","fillDot","Boolean","hideDot","icon","iconColor","lineColor","setup","slots","sizeClasses","sizeStyles","backgroundColorStyles","backgroundColorClasses","roundedClasses","elevationClasses","lineColorClasses","lineColorStyles","color","size","value","default","undefined"],"sources":["../../../src/components/VTimeline/VTimelineDivider.tsx"],"sourcesContent":["// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VTimelineDivider = defineComponent({\n name: 'VTimelineDivider',\n\n props: {\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n },\n\n setup (props, { slots }) {\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles,\n } = useBackgroundColor(toRef(props, 'lineColor'))\n\n provideDefaults({\n VIcon: {\n color: toRef(props, 'iconColor'),\n icon: toRef(props, 'icon'),\n size: toRef(props, 'size'),\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-divider',\n {\n 'v-timeline-divider--fill-dot': props.fillDot,\n },\n ]}\n >\n { !props.hideDot && (\n <div\n key=\"dot\"\n class={[\n 'v-timeline-divider__dot',\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={ sizeStyles.value }\n >\n <div\n class={[\n 'v-timeline-divider__inner-dot',\n backgroundColorClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { slots.default?.() ?? (props.icon ? (<VIcon />) : undefined) }\n </div>\n </div>\n ) }\n\n <div\n class={[\n 'v-timeline-
|
|
1
|
+
{"version":3,"file":"VTimelineDivider.mjs","names":["VIcon","IconValue","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeSizeProps","useSize","provideDefaults","useBackgroundColor","defineComponent","useRender","toRef","VTimelineDivider","name","props","dotColor","String","fillDot","Boolean","hideDot","icon","iconColor","lineColor","setup","slots","sizeClasses","sizeStyles","backgroundColorStyles","backgroundColorClasses","roundedClasses","elevationClasses","lineColorClasses","lineColorStyles","color","size","value","default","undefined"],"sources":["../../../src/components/VTimeline/VTimelineDivider.tsx"],"sourcesContent":["// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VTimelineDivider = defineComponent({\n name: 'VTimelineDivider',\n\n props: {\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n },\n\n setup (props, { slots }) {\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles,\n } = useBackgroundColor(toRef(props, 'lineColor'))\n\n provideDefaults({\n VIcon: {\n color: toRef(props, 'iconColor'),\n icon: toRef(props, 'icon'),\n size: toRef(props, 'size'),\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-divider',\n {\n 'v-timeline-divider--fill-dot': props.fillDot,\n },\n ]}\n >\n <div\n class={[\n 'v-timeline-divider__before',\n lineColorClasses.value,\n ]}\n style={ lineColorStyles.value }\n />\n\n { !props.hideDot && (\n <div\n key=\"dot\"\n class={[\n 'v-timeline-divider__dot',\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={ sizeStyles.value }\n >\n <div\n class={[\n 'v-timeline-divider__inner-dot',\n backgroundColorClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { slots.default?.() ?? (props.icon ? (<VIcon />) : undefined) }\n </div>\n </div>\n ) }\n\n <div\n class={[\n 'v-timeline-divider__after',\n lineColorClasses.value,\n ]}\n style={ lineColorStyles.value }\n />\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VTimelineDivider = InstanceType<typeof VTimelineDivider>\n"],"mappings":";AAAA;SACSA,K,8BAET;;SACSC,S;SACAC,kB,EAAoBC,Y;SACpBC,gB,EAAkBC,U;SAClBC,a,EAAeC,O;SACfC,e;SACAC,kB,uCAET;;SACSC,e,EAAiBC,S;AAC1B,SAASC,KAAT,QAAsB,KAAtB;AAEA,OAAO,MAAMC,gBAAgB,GAAGH,eAAe,CAAC;EAC9CI,IAAI,EAAE,kBADwC;EAG9CC,KAAK,EAAE;IACLC,QAAQ,EAAEC,MADL;IAELC,OAAO,EAAEC,OAFJ;IAGLC,OAAO,EAAED,OAHJ;IAILE,IAAI,EAAEpB,SAJD;IAKLqB,SAAS,EAAEL,MALN;IAMLM,SAAS,EAAEN,MANN;IAQL,GAAGb,gBAAgB,EARd;IASL,GAAGE,aAAa,EATX;IAUL,GAAGJ,kBAAkB;EAVhB,CAHuC;;EAgB9CsB,KAAK,CAAET,KAAF,QAAoB;IAAA,IAAX;MAAEU;IAAF,CAAW;IACvB,MAAM;MAAEC,WAAF;MAAeC;IAAf,IAA8BpB,OAAO,CAACQ,KAAD,EAAQ,yBAAR,CAA3C;IACA,MAAM;MAAEa,qBAAF;MAAyBC;IAAzB,IAAoDpB,kBAAkB,CAACG,KAAK,CAACG,KAAD,EAAQ,UAAR,CAAN,CAA5E;IACA,MAAM;MAAEe;IAAF,IAAqBzB,UAAU,CAACU,KAAD,EAAQ,yBAAR,CAArC;IACA,MAAM;MAAEgB;IAAF,IAAuB5B,YAAY,CAACY,KAAD,CAAzC;IACA,MAAM;MACJc,sBAAsB,EAAEG,gBADpB;MAEJJ,qBAAqB,EAAEK;IAFnB,IAGFxB,kBAAkB,CAACG,KAAK,CAACG,KAAD,EAAQ,WAAR,CAAN,CAHtB;IAKAP,eAAe,CAAC;MACdR,KAAK,EAAE;QACLkC,KAAK,EAAEtB,KAAK,CAACG,KAAD,EAAQ,WAAR,CADP;QAELM,IAAI,EAAET,KAAK,CAACG,KAAD,EAAQ,MAAR,CAFN;QAGLoB,IAAI,EAAEvB,KAAK,CAACG,KAAD,EAAQ,MAAR;MAHN;IADO,CAAD,CAAf;IAQAJ,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,oBADK,EAEL;UACE,gCAAgCI,KAAK,CAACG;QADxC,CAFK;MAFD;QAAA,SAUG,CACL,4BADK,EAELc,gBAAgB,CAACI,KAFZ,CAVH;QAAA,SAcIH,eAAe,CAACG;MAdpB,UAiBJ,CAACrB,KAAK,CAACK,OAAP;QAAA,OAEM,KAFN;QAAA,SAGS,CACL,yBADK,EAELW,gBAAgB,CAACK,KAFZ,EAGLN,cAAc,CAACM,KAHV,EAILV,WAAW,CAACU,KAJP,CAHT;QAAA,SASUT,UAAU,CAACS;MATrB;QAAA,SAYW,CACL,+BADK,EAELP,sBAAsB,CAACO,KAFlB,EAGLN,cAAc,CAACM,KAHV,CAZX;QAAA,SAiBYR,qBAAqB,CAACQ;MAjBlC,yCAmBMX,KAAK,CAACY,OAnBZ,qBAmBM,qBAAAZ,KAAK,CAnBX,6BAmB4BV,KAAK,CAACM,IAAN,qCAA2BiB,SAnBvD,IAjBI;QAAA,SA0CG,CACL,2BADK,EAELN,gBAAgB,CAACI,KAFZ,CA1CH;QAAA,SA8CIH,eAAe,CAACG;MA9CpB;IAAA,CAAD,CAAT;IAmDA,OAAO,EAAP;EACD;;AAtF6C,CAAD,CAAxC"}
|
|
@@ -24,6 +24,7 @@ export const VTimelineItem = defineComponent({
|
|
|
24
24
|
},
|
|
25
25
|
icon: IconValue,
|
|
26
26
|
iconColor: String,
|
|
27
|
+
lineInset: [Number, String],
|
|
27
28
|
...makeRoundedProps(),
|
|
28
29
|
...makeElevationProps(),
|
|
29
30
|
...makeSizeProps(),
|
|
@@ -56,7 +57,8 @@ export const VTimelineItem = defineComponent({
|
|
|
56
57
|
'v-timeline-item--fill-dot': props.fillDot
|
|
57
58
|
}],
|
|
58
59
|
"style": {
|
|
59
|
-
'--v-timeline-dot-size': convertToUnit(dotSize.value)
|
|
60
|
+
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
61
|
+
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
60
62
|
}
|
|
61
63
|
}, [_createVNode("div", {
|
|
62
64
|
"class": "v-timeline-item__body",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTimelineItem.mjs","names":["VTimelineDivider","IconValue","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","ref","watch","convertToUnit","defineComponent","useRender","makeDimensionProps","useDimension","VTimelineItem","name","props","density","String","dotColor","fillDot","Boolean","hideDot","hideOpposite","type","default","undefined","icon","iconColor","setup","slots","dimensionStyles","dotSize","dotRef","newValue","value","$el","querySelector","getBoundingClientRect","width","flush","size","elevation","rounded","opposite"],"sources":["../../../src/components/VTimeline/VTimelineItem.tsx"],"sourcesContent":["// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport type { PropType } from 'vue'\nimport { ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\nexport const VTimelineItem = defineComponent({\n name: 'VTimelineItem',\n\n props: {\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = ref(0)\n const dotRef = ref<VTimelineDivider>()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-item',\n {\n 'v-timeline-item--fill-dot': props.fillDot,\n },\n ]}\n style={{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n }}\n >\n <div\n class=\"v-timeline-item__body\"\n style={ dimensionStyles.value }\n >\n { slots.default?.() }\n </div>\n\n <VTimelineDivider\n ref={ dotRef }\n hideDot={ props.hideDot }\n icon={ props.icon }\n iconColor={ props.iconColor }\n size={ props.size }\n elevation={ props.elevation }\n dotColor={ props.dotColor }\n fillDot={ props.fillDot }\n rounded={ props.rounded }\n v-slots={{ default: slots.icon }}\n />\n\n { props.density !== 'compact' && (\n <div class=\"v-timeline-item__opposite\">\n { !props.hideOpposite && slots.opposite?.() }\n </div>\n ) }\n </div>\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;SACSA,gB,kCAET;;SACSC,S;SACAC,kB;SACAC,gB;SACAC,a;SACAC,Y,qCAET;;AAEA,SAASC,GAAT,EAAcC,KAAd,QAA2B,KAA3B;SACSC,a,EAAeC,e,EAAiBC,S;SAChCC,kB,EAAoBC,Y;AAE7B,OAAO,MAAMC,aAAa,GAAGJ,eAAe,CAAC;EAC3CK,IAAI,EAAE,eADqC;EAG3CC,KAAK,EAAE;IACLC,OAAO,EAAEC,MADJ;IAELC,QAAQ,EAAED,MAFL;IAGLE,OAAO,EAAEC,OAHJ;IAILC,OAAO,EAAED,OAJJ;IAKLE,YAAY,EAAE;MACZC,IAAI,EAAEH,OADM;MAEZI,OAAO,EAAEC;IAFG,CALT;IASLC,IAAI,EAAEzB,SATD;IAUL0B,SAAS,EAAEV,MAVN;
|
|
1
|
+
{"version":3,"file":"VTimelineItem.mjs","names":["VTimelineDivider","IconValue","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","ref","watch","convertToUnit","defineComponent","useRender","makeDimensionProps","useDimension","VTimelineItem","name","props","density","String","dotColor","fillDot","Boolean","hideDot","hideOpposite","type","default","undefined","icon","iconColor","lineInset","Number","setup","slots","dimensionStyles","dotSize","dotRef","newValue","value","$el","querySelector","getBoundingClientRect","width","flush","size","elevation","rounded","opposite"],"sources":["../../../src/components/VTimeline/VTimelineItem.tsx"],"sourcesContent":["// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport type { PropType } from 'vue'\nimport { ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\nexport const VTimelineItem = defineComponent({\n name: 'VTimelineItem',\n\n props: {\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = ref(0)\n const dotRef = ref<VTimelineDivider>()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-item',\n {\n 'v-timeline-item--fill-dot': props.fillDot,\n },\n ]}\n style={{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0),\n }}\n >\n <div\n class=\"v-timeline-item__body\"\n style={ dimensionStyles.value }\n >\n { slots.default?.() }\n </div>\n\n <VTimelineDivider\n ref={ dotRef }\n hideDot={ props.hideDot }\n icon={ props.icon }\n iconColor={ props.iconColor }\n size={ props.size }\n elevation={ props.elevation }\n dotColor={ props.dotColor }\n fillDot={ props.fillDot }\n rounded={ props.rounded }\n v-slots={{ default: slots.icon }}\n />\n\n { props.density !== 'compact' && (\n <div class=\"v-timeline-item__opposite\">\n { !props.hideOpposite && slots.opposite?.() }\n </div>\n ) }\n </div>\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;SACSA,gB,kCAET;;SACSC,S;SACAC,kB;SACAC,gB;SACAC,a;SACAC,Y,qCAET;;AAEA,SAASC,GAAT,EAAcC,KAAd,QAA2B,KAA3B;SACSC,a,EAAeC,e,EAAiBC,S;SAChCC,kB,EAAoBC,Y;AAE7B,OAAO,MAAMC,aAAa,GAAGJ,eAAe,CAAC;EAC3CK,IAAI,EAAE,eADqC;EAG3CC,KAAK,EAAE;IACLC,OAAO,EAAEC,MADJ;IAELC,QAAQ,EAAED,MAFL;IAGLE,OAAO,EAAEC,OAHJ;IAILC,OAAO,EAAED,OAJJ;IAKLE,YAAY,EAAE;MACZC,IAAI,EAAEH,OADM;MAEZI,OAAO,EAAEC;IAFG,CALT;IASLC,IAAI,EAAEzB,SATD;IAUL0B,SAAS,EAAEV,MAVN;IAWLW,SAAS,EAAE,CAACC,MAAD,EAASZ,MAAT,CAXN;IAaL,GAAGd,gBAAgB,EAbd;IAcL,GAAGD,kBAAkB,EAdhB;IAeL,GAAGE,aAAa,EAfX;IAgBL,GAAGC,YAAY,EAhBV;IAiBL,GAAGM,kBAAkB;EAjBhB,CAHoC;;EAuB3CmB,KAAK,CAAEf,KAAF,QAAoB;IAAA,IAAX;MAAEgB;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAsBpB,YAAY,CAACG,KAAD,CAAxC;IAEA,MAAMkB,OAAO,GAAG3B,GAAG,CAAC,CAAD,CAAnB;IACA,MAAM4B,MAAM,GAAG5B,GAAG,EAAlB;IACAC,KAAK,CAAC2B,MAAD,EAASC,QAAQ,IAAI;MAAA;;MACxB,IAAI,CAACA,QAAL,EAAe;MACfF,OAAO,CAACG,KAAR,sDAAgBD,QAAQ,CAACE,GAAT,CAAaC,aAAb,CAA2B,0BAA3B,CAAhB,qBAAgB,uBAAwDC,qBAAxD,GAAgFC,KAAhG,oCAAyG,CAAzG;IACD,CAHI,EAGF;MACDC,KAAK,EAAE;IADN,CAHE,CAAL;IAOA/B,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,iBADK,EAEL;UACE,6BAA6BK,KAAK,CAACI;QADrC,CAFK,CAFD;QAAA,SAQC;UACL,yBAAyBX,aAAa,CAACyB,OAAO,CAACG,KAAT,CADjC;UAEL,2BAA2BrB,KAAK,CAACa,SAAN,GAAmB,yCAAwCpB,aAAa,CAACO,KAAK,CAACa,SAAP,CAAkB,GAA1F,GAA+FpB,aAAa,CAAC,CAAD;QAFlI;MARD;QAAA,SAcE,uBAdF;QAAA,SAeIwB,eAAe,CAACI;MAfpB,sBAiBFL,KAAK,CAACP,OAjBJ,qBAiBF,oBAAAO,KAAK,CAjBH;QAAA,OAqBEG,MArBF;QAAA,WAsBMnB,KAAK,CAACM,OAtBZ;QAAA,QAuBGN,KAAK,CAACW,IAvBT;QAAA,aAwBQX,KAAK,CAACY,SAxBd;QAAA,QAyBGZ,KAAK,CAAC2B,IAzBT;QAAA,aA0BQ3B,KAAK,CAAC4B,SA1Bd;QAAA,YA2BO5B,KAAK,CAACG,QA3Bb;QAAA,WA4BMH,KAAK,CAACI,OA5BZ;QAAA,WA6BMJ,KAAK,CAAC6B;MA7BZ,GA8BK;QAAEpB,OAAO,EAAEO,KAAK,CAACL;MAAjB,CA9BL,GAiCJX,KAAK,CAACC,OAAN,KAAkB,SAAlB;QAAA,SACW;MADX,IAEI,CAACD,KAAK,CAACO,YAAP,wBAAuBS,KAAK,CAACc,QAA7B,qBAAuB,qBAAAd,KAAK,CAA5B,CAFJ,EAjCI;IAAA,CAAD,CAAT;IAyCA,OAAO,EAAP;EACD;;AA7E0C,CAAD,CAArC"}
|
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|
justify-content: space-between;
|
|
7
7
|
max-width: 100%;
|
|
8
8
|
overflow: hidden;
|
|
9
|
-
padding-inline-end:
|
|
10
|
-
padding-inline-start: 16px;
|
|
9
|
+
padding-inline-end: var(--v-scrollbar-offset);
|
|
11
10
|
position: relative;
|
|
12
11
|
transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
13
|
-
transition-property: height, transform, max-width;
|
|
12
|
+
transition-property: height, width, transform, max-width, left, right, top, bottom;
|
|
14
13
|
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
15
14
|
border-style: solid;
|
|
16
15
|
border-width: 0;
|
|
@@ -23,26 +22,6 @@
|
|
|
23
22
|
border-width: thin;
|
|
24
23
|
box-shadow: none;
|
|
25
24
|
}
|
|
26
|
-
.v-toolbar--density-default .v-toolbar__content {
|
|
27
|
-
padding-top: 16px;
|
|
28
|
-
padding-bottom: 16px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.v-toolbar--density-comfortable .v-toolbar__content {
|
|
32
|
-
padding-top: 12px;
|
|
33
|
-
padding-bottom: 12px;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.v-toolbar--density-compact .v-toolbar__content {
|
|
37
|
-
padding-top: 8px;
|
|
38
|
-
padding-bottom: 8px;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.v-toolbar--density-prominent .v-toolbar__content {
|
|
42
|
-
padding-top: 4px;
|
|
43
|
-
padding-bottom: 4px;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
25
|
.v-toolbar--absolute {
|
|
47
26
|
position: absolute;
|
|
48
27
|
}
|
|
@@ -80,13 +59,13 @@
|
|
|
80
59
|
}
|
|
81
60
|
|
|
82
61
|
.v-toolbar__content > .v-btn:first-child {
|
|
83
|
-
margin-inline-start:
|
|
84
|
-
}
|
|
85
|
-
.v-toolbar__content > .v-btn:first-child + .v-toolbar-title {
|
|
86
|
-
padding-inline-start: 20px;
|
|
62
|
+
margin-inline-start: 10px;
|
|
87
63
|
}
|
|
88
64
|
.v-toolbar__content > .v-btn:last-child {
|
|
89
|
-
margin-inline-end:
|
|
65
|
+
margin-inline-end: 10px;
|
|
66
|
+
}
|
|
67
|
+
.v-toolbar__content > .v-toolbar-title {
|
|
68
|
+
margin-inline-start: 16px;
|
|
90
69
|
}
|
|
91
70
|
.v-toolbar--density-prominent .v-toolbar__content {
|
|
92
71
|
align-items: flex-start;
|
|
@@ -107,16 +86,13 @@
|
|
|
107
86
|
}
|
|
108
87
|
|
|
109
88
|
.v-toolbar__prepend {
|
|
110
|
-
margin-inline-start:
|
|
89
|
+
margin-inline-start: 10px;
|
|
111
90
|
margin-inline-end: auto;
|
|
112
91
|
}
|
|
113
|
-
.v-toolbar__prepend + .v-toolbar-title {
|
|
114
|
-
padding-inline-start: 20px;
|
|
115
|
-
}
|
|
116
92
|
|
|
117
93
|
.v-toolbar__append {
|
|
118
94
|
margin-inline-start: auto;
|
|
119
|
-
margin-inline-end:
|
|
95
|
+
margin-inline-end: 10px;
|
|
120
96
|
}
|
|
121
97
|
|
|
122
98
|
.v-toolbar-title {
|
|
@@ -13,8 +13,7 @@ import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
|
|
|
13
13
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
14
14
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
15
15
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
16
|
-
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
17
|
-
import { useForwardRef } from "../../composables/forwardRef.mjs"; // Utilities
|
|
16
|
+
import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
|
|
18
17
|
|
|
19
18
|
import { computed, ref, toRef } from 'vue';
|
|
20
19
|
import { convertToUnit, genericComponent, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
@@ -137,10 +136,10 @@ export const VToolbar = genericComponent()({
|
|
|
137
136
|
})]
|
|
138
137
|
});
|
|
139
138
|
});
|
|
140
|
-
return
|
|
139
|
+
return {
|
|
141
140
|
contentHeight,
|
|
142
141
|
extensionHeight
|
|
143
|
-
}
|
|
142
|
+
};
|
|
144
143
|
}
|
|
145
144
|
|
|
146
145
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VToolbar.mjs","names":["VDefaultsProvider","VExpandTransition","VImg","VToolbarTitle","makeBorderProps","useBorder","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useForwardRef","computed","ref","toRef","convertToUnit","genericComponent","pick","propsFactory","useRender","allowedDensities","makeVToolbarProps","absolute","Boolean","collapse","color","String","density","type","default","validator","v","includes","extended","extensionHeight","Number","flat","floating","height","image","title","tag","VToolbar","name","props","setup","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","themeClasses","isExtended","extension","contentHeight","parseInt","value","VBtn","variant","hasTitle","hasImage","cover","src","prepend","text","append","filterToolbarProps","Object","keys"],"sources":["../../../src/components/VToolbar/VToolbar.tsx"],"sourcesContent":["// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VImg } from '@/components/VImg'\nimport { VToolbarTitle } from './VToolbarTitle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useForwardRef } from '@/composables/forwardRef'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type Density = typeof allowedDensities[number]\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'v-toolbar')\n\nexport const VToolbar = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n image: []\n prepend: []\n append: []\n title: []\n extension: []\n }>\n}>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n\n const isExtended = ref(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasImage && (\n <div key=\"image\" class=\"v-toolbar__image\">\n <VDefaultsProvider\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n { slots.image ? slots.image?.() : (<VImg />) }\n </VDefaultsProvider>\n </div>\n ) }\n\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n ) }\n\n { hasTitle && (\n <VToolbarTitle key=\"title\" text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n ) }\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n ) }\n </div>\n\n <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n ) }\n </VExpandTransition>\n </props.tag>\n )\n })\n\n return useForwardRef({\n contentHeight,\n extensionHeight,\n })\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n\nexport function filterToolbarProps (props: ExtractPropTypes<ReturnType<typeof makeVToolbarProps>>) {\n return pick(props, Object.keys(VToolbar?.props ?? {}) as any)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VToolbar.mjs","names":["VDefaultsProvider","VExpandTransition","VImg","VToolbarTitle","makeBorderProps","useBorder","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","computed","ref","toRef","convertToUnit","genericComponent","pick","propsFactory","useRender","allowedDensities","makeVToolbarProps","absolute","Boolean","collapse","color","String","density","type","default","validator","v","includes","extended","extensionHeight","Number","flat","floating","height","image","title","tag","VToolbar","name","props","setup","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","themeClasses","isExtended","extension","contentHeight","parseInt","value","VBtn","variant","hasTitle","hasImage","cover","src","prepend","text","append","filterToolbarProps","Object","keys"],"sources":["../../../src/components/VToolbar/VToolbar.tsx"],"sourcesContent":["// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VImg } from '@/components/VImg'\nimport { VToolbarTitle } from './VToolbarTitle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type Density = typeof allowedDensities[number]\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'v-toolbar')\n\nexport const VToolbar = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n image: []\n prepend: []\n append: []\n title: []\n extension: []\n }>\n}>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n\n const isExtended = ref(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasImage && (\n <div key=\"image\" class=\"v-toolbar__image\">\n <VDefaultsProvider\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n { slots.image ? slots.image?.() : (<VImg />) }\n </VDefaultsProvider>\n </div>\n ) }\n\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n ) }\n\n { hasTitle && (\n <VToolbarTitle key=\"title\" text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n ) }\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n ) }\n </div>\n\n <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n ) }\n </VExpandTransition>\n </props.tag>\n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n\nexport function filterToolbarProps (props: ExtractPropTypes<ReturnType<typeof makeVToolbarProps>>) {\n return pick(props, Object.keys(VToolbar?.props ?? {}) as any)\n}\n"],"mappings":"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"}
|
|
@@ -10,23 +10,16 @@
|
|
|
10
10
|
justify-content: space-between
|
|
11
11
|
max-width: 100%
|
|
12
12
|
overflow: hidden
|
|
13
|
-
padding-inline-end:
|
|
14
|
-
padding-inline-start: $toolbar-padding-start
|
|
13
|
+
padding-inline-end: var(--v-scrollbar-offset)
|
|
15
14
|
position: relative
|
|
16
15
|
transition: $toolbar-transition
|
|
17
|
-
transition-property: height, transform, max-width
|
|
16
|
+
transition-property: height, width, transform, max-width, left, right, top, bottom
|
|
18
17
|
|
|
19
18
|
@include tools.border($toolbar-border...)
|
|
20
19
|
@include tools.elevation($toolbar-elevation)
|
|
21
20
|
@include tools.rounded($toolbar-border-radius)
|
|
22
21
|
@include tools.theme($toolbar-theme...)
|
|
23
22
|
|
|
24
|
-
@at-root
|
|
25
|
-
@include tools.density('v-toolbar', $toolbar-density) using ($modifier)
|
|
26
|
-
.v-toolbar__content
|
|
27
|
-
padding-top: $toolbar-padding + $modifier
|
|
28
|
-
padding-bottom: $toolbar-padding + $modifier
|
|
29
|
-
|
|
30
23
|
&--absolute
|
|
31
24
|
position: absolute
|
|
32
25
|
|
|
@@ -65,12 +58,12 @@
|
|
|
65
58
|
> .v-btn:first-child
|
|
66
59
|
margin-inline-start: $toolbar-prepend-btn-margin-start
|
|
67
60
|
|
|
68
|
-
+ .v-toolbar-title
|
|
69
|
-
padding-inline-start: $toolbar-title-padding
|
|
70
|
-
|
|
71
61
|
> .v-btn:last-child
|
|
72
62
|
margin-inline-end: $toolbar-append-btn-margin-end
|
|
73
63
|
|
|
64
|
+
> .v-toolbar-title
|
|
65
|
+
margin-inline-start: $toolbar-title-margin
|
|
66
|
+
|
|
74
67
|
.v-toolbar--density-prominent &
|
|
75
68
|
align-items: flex-start
|
|
76
69
|
|
|
@@ -87,9 +80,6 @@
|
|
|
87
80
|
margin-inline-start: $toolbar-prepend-btn-margin-start
|
|
88
81
|
margin-inline-end: auto
|
|
89
82
|
|
|
90
|
-
+ .v-toolbar-title
|
|
91
|
-
padding-inline-start: $toolbar-title-padding
|
|
92
|
-
|
|
93
83
|
.v-toolbar__append
|
|
94
84
|
margin-inline-start: auto
|
|
95
85
|
margin-inline-end: $toolbar-append-btn-margin-end
|