vuetify 3.3.12 → 3.4.0-alpha.0
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/dist/json/attributes.json +152 -16
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +34 -0
- package/dist/json/web-types.json +462 -48
- package/dist/vuetify-labs.css +1718 -606
- package/dist/vuetify-labs.d.ts +880 -276
- package/dist/vuetify-labs.esm.js +373 -189
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +372 -188
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1591 -479
- package/dist/vuetify.d.ts +865 -267
- package/dist/vuetify.esm.js +373 -189
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +372 -188
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +920 -905
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +62 -14
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +28 -2
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +3 -0
- package/lib/components/VCarousel/index.d.mts +26 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +14 -11
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +15 -1
- package/lib/components/VColorPicker/VColorPickerEdit.css +4 -2
- package/lib/components/VColorPicker/VColorPickerPreview.css +16 -6
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +28 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +6 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +62 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/VField.css +11 -6
- package/lib/components/VField/VField.mjs +5 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VField/index.d.mts +4 -4
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.sass +5 -1
- package/lib/components/VFileInput/_variables.scss +2 -1
- package/lib/components/VFileInput/index.d.mts +4 -4
- package/lib/components/VGrid/VGrid.css +153 -142
- package/lib/components/VImg/VImg.mjs +13 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +26 -0
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +15 -10
- package/lib/components/VList/VListItem.mjs +6 -3
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +17 -10
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/VMenu.mjs +4 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +46 -25
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +0 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VOverlay/VOverlay.mjs +9 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +17 -8
- package/lib/components/VOverlay/locationStrategies.mjs +9 -9
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -21
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +3 -2
- package/lib/components/VRadio/index.d.mts +9 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
- package/lib/components/VRadioGroup/_variables.scss +3 -1
- package/lib/components/VRadioGroup/index.d.mts +3 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +128 -33
- package/lib/components/VSelect/VSelect.mjs +14 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +62 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +27 -21
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +33 -25
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VSlider/VSlider.mjs +2 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +8 -4
- package/lib/components/VSlider/VSliderTrack.css +22 -12
- package/lib/components/VSlider/index.d.mts +128 -33
- package/lib/components/VSlider/slider.mjs +5 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +41 -20
- package/lib/components/VSwitch/VSwitch.css +24 -17
- package/lib/components/VSwitch/VSwitch.mjs +37 -28
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +20 -11
- package/lib/components/VSwitch/_variables.scss +18 -6
- package/lib/components/VSwitch/index.d.mts +9 -1
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/VTextField.css +9 -2
- package/lib/components/VTextField/VTextField.mjs +6 -3
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +10 -3
- package/lib/components/VTextField/index.d.mts +22 -16
- package/lib/components/VTextarea/VTextarea.mjs +1 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTimeline/VTimeline.css +21 -11
- package/lib/components/VTimeline/VTimeline.sass +6 -1
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +836 -265
- package/lib/components/transitions/dialog-transition.mjs +4 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +6 -6
- package/lib/composables/defaults.mjs +9 -9
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +33 -2
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +10 -4
- package/lib/labs/VDatePicker/VDatePickerControls.css +1 -1
- package/lib/labs/VOtpInput/index.d.mts +4 -4
- package/lib/labs/components.d.mts +18 -12
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +1026 -0
- package/lib/styles/settings/_utilities.scss +20 -0
- package/lib/styles/tools/_rtl.sass +4 -2
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +19 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.4.0-alpha.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn,
|
|
7
|
+
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, vModelText, withModifiers } from 'vue';
|
|
8
8
|
|
|
9
9
|
// Types
|
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
|
@@ -74,6 +74,7 @@ const makeComponentProps = propsFactory({
|
|
|
74
74
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
75
75
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
76
76
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
77
|
+
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
|
77
78
|
|
|
78
79
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
79
80
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
@@ -157,7 +158,15 @@ function isObject(obj) {
|
|
|
157
158
|
return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
|
|
158
159
|
}
|
|
159
160
|
function refElement(obj) {
|
|
160
|
-
|
|
161
|
+
if (obj && '$el' in obj) {
|
|
162
|
+
const el = obj.$el;
|
|
163
|
+
if (el?.nodeType === Node.TEXT_NODE) {
|
|
164
|
+
// Multi-root component, use the first element
|
|
165
|
+
return el.nextElementSibling;
|
|
166
|
+
}
|
|
167
|
+
return el;
|
|
168
|
+
}
|
|
169
|
+
return obj;
|
|
161
170
|
}
|
|
162
171
|
|
|
163
172
|
// KeyboardEvent.keyCode aliases
|
|
@@ -229,14 +238,22 @@ function only(obj, include) {
|
|
|
229
238
|
include.forEach(prop => clone[prop] = obj[prop]);
|
|
230
239
|
return clone;
|
|
231
240
|
}
|
|
241
|
+
const onRE = /^on[^a-z]/;
|
|
242
|
+
const isOn = key => onRE.test(key);
|
|
243
|
+
const bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];
|
|
232
244
|
|
|
233
245
|
/**
|
|
234
246
|
* Filter attributes that should be applied to
|
|
235
|
-
* the root element of
|
|
247
|
+
* the root element of an input component. Remaining
|
|
236
248
|
* attributes should be passed to the <input> element inside.
|
|
237
249
|
*/
|
|
238
250
|
function filterInputAttrs(attrs) {
|
|
239
|
-
|
|
251
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
252
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
253
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
254
|
+
Object.assign(rootAttrs, events);
|
|
255
|
+
Object.assign(inputAttrs, inputEvents);
|
|
256
|
+
return [rootAttrs, inputAttrs];
|
|
240
257
|
}
|
|
241
258
|
function wrapInArray(v) {
|
|
242
259
|
return v == null ? [] : Array.isArray(v) ? v : [v];
|
|
@@ -389,8 +406,6 @@ function destructComputed(getter) {
|
|
|
389
406
|
function includes(arr, val) {
|
|
390
407
|
return arr.includes(val);
|
|
391
408
|
}
|
|
392
|
-
const onRE = /^on[^a-z]/;
|
|
393
|
-
const isOn = key => onRE.test(key);
|
|
394
409
|
function eventName(propName) {
|
|
395
410
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
396
411
|
}
|
|
@@ -550,6 +565,18 @@ function getOverflow(a, b) {
|
|
|
550
565
|
}
|
|
551
566
|
};
|
|
552
567
|
}
|
|
568
|
+
function getTargetBox(target) {
|
|
569
|
+
if (Array.isArray(target)) {
|
|
570
|
+
return new Box({
|
|
571
|
+
x: target[0],
|
|
572
|
+
y: target[1],
|
|
573
|
+
width: 0,
|
|
574
|
+
height: 0
|
|
575
|
+
});
|
|
576
|
+
} else {
|
|
577
|
+
return target.getBoundingClientRect();
|
|
578
|
+
}
|
|
579
|
+
}
|
|
553
580
|
|
|
554
581
|
// Utilities
|
|
555
582
|
|
|
@@ -1021,34 +1048,6 @@ function getContrast(first, second) {
|
|
|
1021
1048
|
|
|
1022
1049
|
// Types
|
|
1023
1050
|
|
|
1024
|
-
function useToggleScope(source, fn) {
|
|
1025
|
-
let scope;
|
|
1026
|
-
function start() {
|
|
1027
|
-
scope = effectScope();
|
|
1028
|
-
scope.run(() => fn.length ? fn(() => {
|
|
1029
|
-
scope?.stop();
|
|
1030
|
-
start();
|
|
1031
|
-
}) : fn());
|
|
1032
|
-
}
|
|
1033
|
-
watch(source, active => {
|
|
1034
|
-
if (active && !scope) {
|
|
1035
|
-
start();
|
|
1036
|
-
} else if (!active) {
|
|
1037
|
-
scope?.stop();
|
|
1038
|
-
scope = undefined;
|
|
1039
|
-
}
|
|
1040
|
-
}, {
|
|
1041
|
-
immediate: true
|
|
1042
|
-
});
|
|
1043
|
-
onScopeDispose(() => {
|
|
1044
|
-
scope?.stop();
|
|
1045
|
-
});
|
|
1046
|
-
}
|
|
1047
|
-
|
|
1048
|
-
// Composables
|
|
1049
|
-
|
|
1050
|
-
// Types
|
|
1051
|
-
|
|
1052
1051
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
1053
1052
|
function createDefaults(options) {
|
|
1054
1053
|
return ref(options);
|
|
@@ -1067,6 +1066,7 @@ function provideDefaults(defaults, options) {
|
|
|
1067
1066
|
const scoped = unref(options?.scoped);
|
|
1068
1067
|
const reset = unref(options?.reset);
|
|
1069
1068
|
const root = unref(options?.root);
|
|
1069
|
+
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
|
1070
1070
|
let properties = mergeDeep(providedDefaults.value, {
|
|
1071
1071
|
prev: injectedDefaults.value
|
|
1072
1072
|
});
|
|
@@ -1122,16 +1122,16 @@ function internalUseDefaults() {
|
|
|
1122
1122
|
let [key] = _ref;
|
|
1123
1123
|
return key.startsWith(key[0].toUpperCase());
|
|
1124
1124
|
});
|
|
1125
|
-
|
|
1125
|
+
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
|
1126
|
+
} else {
|
|
1127
|
+
_subcomponentDefaults.value = undefined;
|
|
1126
1128
|
}
|
|
1127
1129
|
});
|
|
1128
1130
|
function provideSubDefaults() {
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1134
|
-
});
|
|
1131
|
+
const injected = injectSelf(DefaultsSymbol, vm);
|
|
1132
|
+
provide(DefaultsSymbol, computed(() => {
|
|
1133
|
+
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
|
1134
|
+
}));
|
|
1135
1135
|
}
|
|
1136
1136
|
return {
|
|
1137
1137
|
props: _props,
|
|
@@ -1313,9 +1313,10 @@ function isPotentiallyScrollable(el) {
|
|
|
1313
1313
|
// Types
|
|
1314
1314
|
|
|
1315
1315
|
function injectSelf(key) {
|
|
1316
|
+
let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
|
|
1316
1317
|
const {
|
|
1317
1318
|
provides
|
|
1318
|
-
} =
|
|
1319
|
+
} = vm;
|
|
1319
1320
|
if (provides && key in provides) {
|
|
1320
1321
|
// TS doesn't allow symbol as index type
|
|
1321
1322
|
return provides[key];
|
|
@@ -1653,6 +1654,7 @@ function createLayout(props) {
|
|
|
1653
1654
|
|
|
1654
1655
|
var en = {
|
|
1655
1656
|
badge: 'Badge',
|
|
1657
|
+
open: 'Open',
|
|
1656
1658
|
close: 'Close',
|
|
1657
1659
|
dataIterator: {
|
|
1658
1660
|
noResultsText: 'No matching records found',
|
|
@@ -1791,6 +1793,34 @@ const defaultRtl = {
|
|
|
1791
1793
|
zhHant: false
|
|
1792
1794
|
};
|
|
1793
1795
|
|
|
1796
|
+
// Utilities
|
|
1797
|
+
|
|
1798
|
+
// Types
|
|
1799
|
+
|
|
1800
|
+
function useToggleScope(source, fn) {
|
|
1801
|
+
let scope;
|
|
1802
|
+
function start() {
|
|
1803
|
+
scope = effectScope();
|
|
1804
|
+
scope.run(() => fn.length ? fn(() => {
|
|
1805
|
+
scope?.stop();
|
|
1806
|
+
start();
|
|
1807
|
+
}) : fn());
|
|
1808
|
+
}
|
|
1809
|
+
watch(source, active => {
|
|
1810
|
+
if (active && !scope) {
|
|
1811
|
+
start();
|
|
1812
|
+
} else if (!active) {
|
|
1813
|
+
scope?.stop();
|
|
1814
|
+
scope = undefined;
|
|
1815
|
+
}
|
|
1816
|
+
}, {
|
|
1817
|
+
immediate: true
|
|
1818
|
+
});
|
|
1819
|
+
onScopeDispose(() => {
|
|
1820
|
+
scope?.stop();
|
|
1821
|
+
});
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1794
1824
|
// Composables
|
|
1795
1825
|
|
|
1796
1826
|
// Types
|
|
@@ -2103,9 +2133,9 @@ const defaultThemeOptions = {
|
|
|
2103
2133
|
surface: '#FFFFFF',
|
|
2104
2134
|
'surface-variant': '#424242',
|
|
2105
2135
|
'on-surface-variant': '#EEEEEE',
|
|
2106
|
-
primary: '#
|
|
2107
|
-
'primary-darken-1': '#
|
|
2108
|
-
secondary: '#
|
|
2136
|
+
primary: '#1867C0',
|
|
2137
|
+
'primary-darken-1': '#1F5592',
|
|
2138
|
+
secondary: '#48A9A6',
|
|
2109
2139
|
'secondary-darken-1': '#018786',
|
|
2110
2140
|
error: '#B00020',
|
|
2111
2141
|
info: '#2196F3',
|
|
@@ -2138,10 +2168,10 @@ const defaultThemeOptions = {
|
|
|
2138
2168
|
surface: '#212121',
|
|
2139
2169
|
'surface-variant': '#BDBDBD',
|
|
2140
2170
|
'on-surface-variant': '#424242',
|
|
2141
|
-
primary: '#
|
|
2142
|
-
'primary-darken-1': '#
|
|
2143
|
-
secondary: '#
|
|
2144
|
-
'secondary-darken-1': '#
|
|
2171
|
+
primary: '#2196F3',
|
|
2172
|
+
'primary-darken-1': '#277CC1',
|
|
2173
|
+
secondary: '#54B6B2',
|
|
2174
|
+
'secondary-darken-1': '#48A9A6',
|
|
2145
2175
|
error: '#CF6679',
|
|
2146
2176
|
info: '#2196F3',
|
|
2147
2177
|
success: '#4CAF50',
|
|
@@ -2626,7 +2656,7 @@ function ExpandTransitionGenerator () {
|
|
|
2626
2656
|
// Types
|
|
2627
2657
|
|
|
2628
2658
|
const makeVDialogTransitionProps = propsFactory({
|
|
2629
|
-
target: Object
|
|
2659
|
+
target: [Object, Array]
|
|
2630
2660
|
}, 'v-dialog-transition');
|
|
2631
2661
|
const VDialogTransition = genericComponent()({
|
|
2632
2662
|
name: 'VDialogTransition',
|
|
@@ -2728,7 +2758,7 @@ function getChildren(el) {
|
|
|
2728
2758
|
return els && [...els];
|
|
2729
2759
|
}
|
|
2730
2760
|
function getDimensions(target, el) {
|
|
2731
|
-
const targetBox = target
|
|
2761
|
+
const targetBox = getTargetBox(target);
|
|
2732
2762
|
const elBox = nullifyTransforms(el);
|
|
2733
2763
|
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
2734
2764
|
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
@@ -2974,6 +3004,10 @@ const Intersect = {
|
|
|
2974
3004
|
const makeVImgProps = propsFactory({
|
|
2975
3005
|
alt: String,
|
|
2976
3006
|
cover: Boolean,
|
|
3007
|
+
draggable: {
|
|
3008
|
+
type: [Boolean, String],
|
|
3009
|
+
default: undefined
|
|
3010
|
+
},
|
|
2977
3011
|
eager: Boolean,
|
|
2978
3012
|
gradient: String,
|
|
2979
3013
|
lazySrc: String,
|
|
@@ -2992,6 +3026,8 @@ const makeVImgProps = propsFactory({
|
|
|
2992
3026
|
type: [String, Object],
|
|
2993
3027
|
default: ''
|
|
2994
3028
|
},
|
|
3029
|
+
crossorigin: String,
|
|
3030
|
+
referrerpolicy: String,
|
|
2995
3031
|
srcset: String,
|
|
2996
3032
|
...makeVResponsiveProps(),
|
|
2997
3033
|
...makeComponentProps(),
|
|
@@ -3116,6 +3152,9 @@ const VImg = genericComponent()({
|
|
|
3116
3152
|
"src": normalisedSrc.value.src,
|
|
3117
3153
|
"srcset": normalisedSrc.value.srcset,
|
|
3118
3154
|
"alt": props.alt,
|
|
3155
|
+
"crossorigin": props.crossorigin,
|
|
3156
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3157
|
+
"draggable": props.draggable,
|
|
3119
3158
|
"sizes": props.sizes,
|
|
3120
3159
|
"ref": image,
|
|
3121
3160
|
"onLoad": onLoad,
|
|
@@ -3137,7 +3176,10 @@ const VImg = genericComponent()({
|
|
|
3137
3176
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
|
|
3138
3177
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
3139
3178
|
"src": normalisedSrc.value.lazySrc,
|
|
3140
|
-
"alt": props.alt
|
|
3179
|
+
"alt": props.alt,
|
|
3180
|
+
"crossorigin": props.crossorigin,
|
|
3181
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3182
|
+
"draggable": props.draggable
|
|
3141
3183
|
}, null)]
|
|
3142
3184
|
});
|
|
3143
3185
|
const __placeholder = () => {
|
|
@@ -4156,7 +4198,8 @@ const aliases = {
|
|
|
4156
4198
|
file: 'mdi-paperclip',
|
|
4157
4199
|
plus: 'mdi-plus',
|
|
4158
4200
|
minus: 'mdi-minus',
|
|
4159
|
-
calendar: 'mdi-calendar'
|
|
4201
|
+
calendar: 'mdi-calendar',
|
|
4202
|
+
eyeDropper: 'mdi-eyedropper'
|
|
4160
4203
|
};
|
|
4161
4204
|
const mdi = {
|
|
4162
4205
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -5746,6 +5789,7 @@ const VSelectionControlGroup = genericComponent()({
|
|
|
5746
5789
|
|
|
5747
5790
|
const makeVSelectionControlProps = propsFactory({
|
|
5748
5791
|
label: String,
|
|
5792
|
+
baseColor: String,
|
|
5749
5793
|
trueValue: null,
|
|
5750
5794
|
falseValue: null,
|
|
5751
5795
|
value: null,
|
|
@@ -5784,7 +5828,8 @@ function useSelectionControl(props) {
|
|
|
5784
5828
|
textColorClasses,
|
|
5785
5829
|
textColorStyles
|
|
5786
5830
|
} = useTextColor(computed(() => {
|
|
5787
|
-
|
|
5831
|
+
if (props.error || props.disabled) return undefined;
|
|
5832
|
+
return model.value ? props.color : props.baseColor;
|
|
5788
5833
|
}));
|
|
5789
5834
|
const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5790
5835
|
return {
|
|
@@ -5856,6 +5901,20 @@ const VSelectionControl = genericComponent()({
|
|
|
5856
5901
|
}
|
|
5857
5902
|
}) : props.label;
|
|
5858
5903
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
5904
|
+
const inputNode = createVNode("input", mergeProps({
|
|
5905
|
+
"ref": input,
|
|
5906
|
+
"checked": model.value,
|
|
5907
|
+
"disabled": !!(props.readonly || props.disabled),
|
|
5908
|
+
"id": id.value,
|
|
5909
|
+
"onBlur": onBlur,
|
|
5910
|
+
"onFocus": onFocus,
|
|
5911
|
+
"onInput": onInput,
|
|
5912
|
+
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5913
|
+
"type": props.type,
|
|
5914
|
+
"value": trueValue.value,
|
|
5915
|
+
"name": props.name,
|
|
5916
|
+
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5917
|
+
}, inputAttrs), null);
|
|
5859
5918
|
return createVNode("div", mergeProps({
|
|
5860
5919
|
"class": ['v-selection-control', {
|
|
5861
5920
|
'v-selection-control--dirty': model.value,
|
|
@@ -5872,34 +5931,24 @@ const VSelectionControl = genericComponent()({
|
|
|
5872
5931
|
"style": textColorStyles.value
|
|
5873
5932
|
}, [slots.default?.(), withDirectives(createVNode("div", {
|
|
5874
5933
|
"class": ['v-selection-control__input']
|
|
5875
|
-
}, [
|
|
5876
|
-
"key": "icon",
|
|
5877
|
-
"icon": icon.value
|
|
5878
|
-
}, null), createVNode("input", mergeProps({
|
|
5879
|
-
"ref": input,
|
|
5880
|
-
"checked": model.value,
|
|
5881
|
-
"disabled": !!(props.readonly || props.disabled),
|
|
5882
|
-
"id": id.value,
|
|
5883
|
-
"onBlur": onBlur,
|
|
5884
|
-
"onFocus": onFocus,
|
|
5885
|
-
"onInput": onInput,
|
|
5886
|
-
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5887
|
-
"type": props.type,
|
|
5888
|
-
"value": trueValue.value,
|
|
5889
|
-
"name": props.name,
|
|
5890
|
-
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5891
|
-
}, inputAttrs), null), slots.input?.({
|
|
5934
|
+
}, [slots.input?.({
|
|
5892
5935
|
model,
|
|
5893
5936
|
textColorClasses,
|
|
5894
5937
|
textColorStyles,
|
|
5938
|
+
inputNode,
|
|
5939
|
+
icon: icon.value,
|
|
5895
5940
|
props: {
|
|
5896
5941
|
onFocus,
|
|
5897
5942
|
onBlur,
|
|
5898
5943
|
id: id.value
|
|
5899
5944
|
}
|
|
5900
|
-
})
|
|
5945
|
+
}) ?? createVNode(Fragment, null, [icon.value && createVNode(VIcon, {
|
|
5946
|
+
"key": "icon",
|
|
5947
|
+
"icon": icon.value
|
|
5948
|
+
}, null), inputNode])]), [[resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && createVNode(VLabel, {
|
|
5901
5949
|
"for": id.value,
|
|
5902
|
-
"clickable": true
|
|
5950
|
+
"clickable": true,
|
|
5951
|
+
"onClick": e => e.stopPropagation()
|
|
5903
5952
|
}, {
|
|
5904
5953
|
default: () => [label]
|
|
5905
5954
|
})]);
|
|
@@ -5948,16 +5997,19 @@ const VCheckboxBtn = genericComponent()({
|
|
|
5948
5997
|
const trueIcon = computed(() => {
|
|
5949
5998
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
5950
5999
|
});
|
|
5951
|
-
useRender(() =>
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
6000
|
+
useRender(() => {
|
|
6001
|
+
const controlProps = omit(VSelectionControl.filterProps(props)[0], ['modelValue']);
|
|
6002
|
+
return createVNode(VSelectionControl, mergeProps(controlProps, {
|
|
6003
|
+
"modelValue": model.value,
|
|
6004
|
+
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6005
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6006
|
+
"style": props.style,
|
|
6007
|
+
"type": "checkbox",
|
|
6008
|
+
"falseIcon": falseIcon.value,
|
|
6009
|
+
"trueIcon": trueIcon.value,
|
|
6010
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
6011
|
+
}), slots);
|
|
6012
|
+
});
|
|
5961
6013
|
return {};
|
|
5962
6014
|
}
|
|
5963
6015
|
});
|
|
@@ -6521,12 +6573,12 @@ const VCheckbox = genericComponent()({
|
|
|
6521
6573
|
const uid = getUid();
|
|
6522
6574
|
const id = computed(() => props.id || `checkbox-${uid}`);
|
|
6523
6575
|
useRender(() => {
|
|
6524
|
-
const [
|
|
6576
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6525
6577
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6526
6578
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6527
6579
|
return createVNode(VInput, mergeProps({
|
|
6528
6580
|
"class": ['v-checkbox', props.class]
|
|
6529
|
-
},
|
|
6581
|
+
}, rootAttrs, inputProps, {
|
|
6530
6582
|
"modelValue": model.value,
|
|
6531
6583
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6532
6584
|
"id": id.value,
|
|
@@ -6564,6 +6616,7 @@ const makeVAvatarProps = propsFactory({
|
|
|
6564
6616
|
end: Boolean,
|
|
6565
6617
|
icon: IconValue,
|
|
6566
6618
|
image: String,
|
|
6619
|
+
text: String,
|
|
6567
6620
|
...makeComponentProps(),
|
|
6568
6621
|
...makeDensityProps(),
|
|
6569
6622
|
...makeRoundedProps(),
|
|
@@ -6614,7 +6667,7 @@ const VAvatar = genericComponent()({
|
|
|
6614
6667
|
}, null) : props.icon ? createVNode(VIcon, {
|
|
6615
6668
|
"key": "icon",
|
|
6616
6669
|
"icon": props.icon
|
|
6617
|
-
}, null) : slots.default?.(), genOverlays(false, 'v-avatar')]
|
|
6670
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6618
6671
|
}));
|
|
6619
6672
|
return {};
|
|
6620
6673
|
}
|
|
@@ -7666,7 +7719,6 @@ const VListItem = genericComponent()({
|
|
|
7666
7719
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
7667
7720
|
"href": link.href.value,
|
|
7668
7721
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
7669
|
-
"title": props.title,
|
|
7670
7722
|
"onClick": onClick,
|
|
7671
7723
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7672
7724
|
}, {
|
|
@@ -7699,7 +7751,9 @@ const VListItem = genericComponent()({
|
|
|
7699
7751
|
}
|
|
7700
7752
|
}, {
|
|
7701
7753
|
default: () => [slots.prepend?.(slotProps.value)]
|
|
7702
|
-
})
|
|
7754
|
+
}), createVNode("div", {
|
|
7755
|
+
"class": "v-list-item__spacer"
|
|
7756
|
+
}, null)]), createVNode("div", {
|
|
7703
7757
|
"class": "v-list-item__content",
|
|
7704
7758
|
"data-no-activator": ""
|
|
7705
7759
|
}, [hasTitle && createVNode(VListItemTitle, {
|
|
@@ -7743,7 +7797,9 @@ const VListItem = genericComponent()({
|
|
|
7743
7797
|
}
|
|
7744
7798
|
}, {
|
|
7745
7799
|
default: () => [slots.append?.(slotProps.value)]
|
|
7746
|
-
})
|
|
7800
|
+
}), createVNode("div", {
|
|
7801
|
+
"class": "v-list-item__spacer"
|
|
7802
|
+
}, null)])]
|
|
7747
7803
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7748
7804
|
});
|
|
7749
7805
|
return {};
|
|
@@ -8392,7 +8448,7 @@ function getIntrinsicSize(el, isRtl) {
|
|
|
8392
8448
|
return contentBox;
|
|
8393
8449
|
}
|
|
8394
8450
|
function connectedLocationStrategy(data, props, contentStyles) {
|
|
8395
|
-
const activatorFixed = isFixedPosition(data.
|
|
8451
|
+
const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);
|
|
8396
8452
|
if (activatorFixed) {
|
|
8397
8453
|
Object.assign(contentStyles.value, {
|
|
8398
8454
|
position: 'fixed',
|
|
@@ -8441,11 +8497,11 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
8441
8497
|
const observer = new ResizeObserver(() => {
|
|
8442
8498
|
if (observe) updateLocation();
|
|
8443
8499
|
});
|
|
8444
|
-
watch([data.
|
|
8445
|
-
let [
|
|
8446
|
-
let [
|
|
8447
|
-
if (
|
|
8448
|
-
if (
|
|
8500
|
+
watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
8501
|
+
let [newTarget, newContentEl] = _ref;
|
|
8502
|
+
let [oldTarget, oldContentEl] = _ref2;
|
|
8503
|
+
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
|
8504
|
+
if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);
|
|
8449
8505
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
8450
8506
|
if (newContentEl) observer.observe(newContentEl);
|
|
8451
8507
|
}, {
|
|
@@ -8461,8 +8517,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
8461
8517
|
requestAnimationFrame(() => {
|
|
8462
8518
|
requestAnimationFrame(() => observe = true);
|
|
8463
8519
|
});
|
|
8464
|
-
if (!data.
|
|
8465
|
-
const targetBox = data.
|
|
8520
|
+
if (!data.target.value || !data.contentEl.value) return;
|
|
8521
|
+
const targetBox = getTargetBox(data.target.value);
|
|
8466
8522
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8467
8523
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8468
8524
|
const viewportMargin = 12;
|
|
@@ -8749,11 +8805,11 @@ function closeScrollStrategy(data) {
|
|
|
8749
8805
|
function onScroll(e) {
|
|
8750
8806
|
data.isActive.value = false;
|
|
8751
8807
|
}
|
|
8752
|
-
bindScroll(data.
|
|
8808
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
|
|
8753
8809
|
}
|
|
8754
8810
|
function blockScrollStrategy(data, props) {
|
|
8755
8811
|
const offsetParent = data.root.value?.offsetParent;
|
|
8756
|
-
const scrollElements = [...new Set([...getScrollParents(data.
|
|
8812
|
+
const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
|
|
8757
8813
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
8758
8814
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
8759
8815
|
if (scrollableParent) {
|
|
@@ -8797,7 +8853,7 @@ function repositionScrollStrategy(data, props, scope) {
|
|
|
8797
8853
|
}
|
|
8798
8854
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
|
8799
8855
|
scope.run(() => {
|
|
8800
|
-
bindScroll(data.
|
|
8856
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
|
|
8801
8857
|
if (slow) {
|
|
8802
8858
|
// If the position calculation is slow,
|
|
8803
8859
|
// defer updates until scrolling is finished.
|
|
@@ -8878,6 +8934,7 @@ function useDelay(props, cb) {
|
|
|
8878
8934
|
// Types
|
|
8879
8935
|
|
|
8880
8936
|
const makeActivatorProps = propsFactory({
|
|
8937
|
+
target: [String, Object],
|
|
8881
8938
|
activator: [String, Object],
|
|
8882
8939
|
activatorProps: {
|
|
8883
8940
|
type: Object,
|
|
@@ -8900,6 +8957,7 @@ function useActivator(props, _ref) {
|
|
|
8900
8957
|
isActive,
|
|
8901
8958
|
isTop
|
|
8902
8959
|
} = _ref;
|
|
8960
|
+
const vm = getCurrentInstance('useActivator');
|
|
8903
8961
|
const activatorEl = ref();
|
|
8904
8962
|
let isHovered = false;
|
|
8905
8963
|
let isFocused = false;
|
|
@@ -8917,10 +8975,14 @@ function useActivator(props, _ref) {
|
|
|
8917
8975
|
isActive.value = value;
|
|
8918
8976
|
}
|
|
8919
8977
|
});
|
|
8978
|
+
const cursorTarget = ref();
|
|
8920
8979
|
const availableEvents = {
|
|
8921
8980
|
onClick: e => {
|
|
8922
8981
|
e.stopPropagation();
|
|
8923
8982
|
activatorEl.value = e.currentTarget || e.target;
|
|
8983
|
+
if (!isActive.value) {
|
|
8984
|
+
cursorTarget.value = [e.clientX, e.clientY];
|
|
8985
|
+
}
|
|
8924
8986
|
isActive.value = !isActive.value;
|
|
8925
8987
|
},
|
|
8926
8988
|
onMouseenter: e => {
|
|
@@ -9014,6 +9076,15 @@ function useActivator(props, _ref) {
|
|
|
9014
9076
|
isActive.value = false;
|
|
9015
9077
|
}
|
|
9016
9078
|
});
|
|
9079
|
+
watch(isActive, val => {
|
|
9080
|
+
if (!val) {
|
|
9081
|
+
setTimeout(() => {
|
|
9082
|
+
cursorTarget.value = undefined;
|
|
9083
|
+
});
|
|
9084
|
+
}
|
|
9085
|
+
}, {
|
|
9086
|
+
flush: 'post'
|
|
9087
|
+
});
|
|
9017
9088
|
const activatorRef = ref();
|
|
9018
9089
|
watchEffect(() => {
|
|
9019
9090
|
if (!activatorRef.value) return;
|
|
@@ -9021,7 +9092,15 @@ function useActivator(props, _ref) {
|
|
|
9021
9092
|
activatorEl.value = refElement(activatorRef.value);
|
|
9022
9093
|
});
|
|
9023
9094
|
});
|
|
9024
|
-
const
|
|
9095
|
+
const targetRef = ref();
|
|
9096
|
+
const target = computed(() => {
|
|
9097
|
+
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
9098
|
+
if (targetRef.value) return refElement(targetRef.value);
|
|
9099
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
9100
|
+
});
|
|
9101
|
+
const targetEl = computed(() => {
|
|
9102
|
+
return Array.isArray(target.value) ? undefined : target.value;
|
|
9103
|
+
});
|
|
9025
9104
|
let scope;
|
|
9026
9105
|
watch(() => !!props.activator, val => {
|
|
9027
9106
|
if (val && IN_BROWSER) {
|
|
@@ -9045,6 +9124,9 @@ function useActivator(props, _ref) {
|
|
|
9045
9124
|
return {
|
|
9046
9125
|
activatorEl,
|
|
9047
9126
|
activatorRef,
|
|
9127
|
+
target,
|
|
9128
|
+
targetEl,
|
|
9129
|
+
targetRef,
|
|
9048
9130
|
activatorEvents,
|
|
9049
9131
|
contentEvents,
|
|
9050
9132
|
scrimEvents
|
|
@@ -9086,31 +9168,34 @@ function _useActivator(props, vm, _ref2) {
|
|
|
9086
9168
|
}
|
|
9087
9169
|
function getActivator() {
|
|
9088
9170
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
9089
|
-
|
|
9090
|
-
if (selector) {
|
|
9091
|
-
if (selector === 'parent') {
|
|
9092
|
-
let el = vm?.proxy?.$el?.parentNode;
|
|
9093
|
-
while (el.hasAttribute('data-no-activator')) {
|
|
9094
|
-
el = el.parentNode;
|
|
9095
|
-
}
|
|
9096
|
-
activator = el;
|
|
9097
|
-
} else if (typeof selector === 'string') {
|
|
9098
|
-
// Selector
|
|
9099
|
-
activator = document.querySelector(selector);
|
|
9100
|
-
} else if ('$el' in selector) {
|
|
9101
|
-
// Component (ref)
|
|
9102
|
-
activator = selector.$el;
|
|
9103
|
-
} else {
|
|
9104
|
-
// HTMLElement | Element
|
|
9105
|
-
activator = selector;
|
|
9106
|
-
}
|
|
9107
|
-
}
|
|
9171
|
+
const activator = getTarget(selector, vm);
|
|
9108
9172
|
|
|
9109
9173
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
9110
|
-
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator :
|
|
9174
|
+
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
9111
9175
|
return activatorEl.value;
|
|
9112
9176
|
}
|
|
9113
9177
|
}
|
|
9178
|
+
function getTarget(selector, vm) {
|
|
9179
|
+
if (!selector) return;
|
|
9180
|
+
let target;
|
|
9181
|
+
if (selector === 'parent') {
|
|
9182
|
+
let el = vm?.proxy?.$el?.parentNode;
|
|
9183
|
+
while (el.hasAttribute('data-no-activator')) {
|
|
9184
|
+
el = el.parentNode;
|
|
9185
|
+
}
|
|
9186
|
+
target = el;
|
|
9187
|
+
} else if (typeof selector === 'string') {
|
|
9188
|
+
// Selector
|
|
9189
|
+
target = document.querySelector(selector);
|
|
9190
|
+
} else if ('$el' in selector) {
|
|
9191
|
+
// Component (ref)
|
|
9192
|
+
target = selector.$el;
|
|
9193
|
+
} else {
|
|
9194
|
+
// HTMLElement | Element | [x, y]
|
|
9195
|
+
target = selector;
|
|
9196
|
+
}
|
|
9197
|
+
return target;
|
|
9198
|
+
}
|
|
9114
9199
|
|
|
9115
9200
|
// Utilities
|
|
9116
9201
|
|
|
@@ -9234,10 +9319,30 @@ function createDisplay(options, ssr) {
|
|
|
9234
9319
|
ssr: !!ssr
|
|
9235
9320
|
};
|
|
9236
9321
|
}
|
|
9322
|
+
const makeDisplayProps = propsFactory({
|
|
9323
|
+
mobileBreakpoint: [Number, String]
|
|
9324
|
+
}, 'display');
|
|
9237
9325
|
function useDisplay() {
|
|
9326
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9327
|
+
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
9238
9328
|
const display = inject$1(DisplaySymbol);
|
|
9239
9329
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
9240
|
-
|
|
9330
|
+
const mobile = computed(() => {
|
|
9331
|
+
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
9332
|
+
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
9333
|
+
return display.width.value < breakpointValue;
|
|
9334
|
+
});
|
|
9335
|
+
const displayClasses = computed(() => {
|
|
9336
|
+
if (!name) return {};
|
|
9337
|
+
return {
|
|
9338
|
+
[`${name}--mobile`]: mobile.value
|
|
9339
|
+
};
|
|
9340
|
+
});
|
|
9341
|
+
return {
|
|
9342
|
+
...display,
|
|
9343
|
+
displayClasses,
|
|
9344
|
+
mobile
|
|
9345
|
+
};
|
|
9241
9346
|
}
|
|
9242
9347
|
|
|
9243
9348
|
// Composables
|
|
@@ -9554,6 +9659,9 @@ const VOverlay = genericComponent()({
|
|
|
9554
9659
|
const {
|
|
9555
9660
|
activatorEl,
|
|
9556
9661
|
activatorRef,
|
|
9662
|
+
target,
|
|
9663
|
+
targetEl,
|
|
9664
|
+
targetRef,
|
|
9557
9665
|
activatorEvents,
|
|
9558
9666
|
contentEvents,
|
|
9559
9667
|
scrimEvents
|
|
@@ -9579,13 +9687,13 @@ const VOverlay = genericComponent()({
|
|
|
9579
9687
|
} = useLocationStrategies(props, {
|
|
9580
9688
|
isRtl,
|
|
9581
9689
|
contentEl,
|
|
9582
|
-
|
|
9690
|
+
target,
|
|
9583
9691
|
isActive
|
|
9584
9692
|
});
|
|
9585
9693
|
useScrollStrategies(props, {
|
|
9586
9694
|
root,
|
|
9587
9695
|
contentEl,
|
|
9588
|
-
|
|
9696
|
+
targetEl,
|
|
9589
9697
|
isActive,
|
|
9590
9698
|
updateLocation
|
|
9591
9699
|
});
|
|
@@ -9653,7 +9761,8 @@ const VOverlay = genericComponent()({
|
|
|
9653
9761
|
useRender(() => createVNode(Fragment, null, [slots.activator?.({
|
|
9654
9762
|
isActive: isActive.value,
|
|
9655
9763
|
props: mergeProps({
|
|
9656
|
-
ref: activatorRef
|
|
9764
|
+
ref: activatorRef,
|
|
9765
|
+
targetRef
|
|
9657
9766
|
}, activatorEvents.value, props.activatorProps)
|
|
9658
9767
|
}), isMounted.value && hasContent.value && createVNode(Teleport, {
|
|
9659
9768
|
"disabled": !teleportTarget.value,
|
|
@@ -9676,7 +9785,7 @@ const VOverlay = genericComponent()({
|
|
|
9676
9785
|
"appear": true,
|
|
9677
9786
|
"persisted": true,
|
|
9678
9787
|
"transition": props.transition,
|
|
9679
|
-
"target":
|
|
9788
|
+
"target": target.value,
|
|
9680
9789
|
"onAfterLeave": () => {
|
|
9681
9790
|
onAfterLeave();
|
|
9682
9791
|
emit('afterLeave');
|
|
@@ -9697,6 +9806,7 @@ const VOverlay = genericComponent()({
|
|
|
9697
9806
|
})]));
|
|
9698
9807
|
return {
|
|
9699
9808
|
activatorEl,
|
|
9809
|
+
target,
|
|
9700
9810
|
animateClick,
|
|
9701
9811
|
contentEl,
|
|
9702
9812
|
globalTop,
|
|
@@ -9854,10 +9964,11 @@ const VMenu = genericComponent()({
|
|
|
9854
9964
|
}, 40);
|
|
9855
9965
|
}
|
|
9856
9966
|
});
|
|
9857
|
-
function onFocusIn(e) {
|
|
9967
|
+
async function onFocusIn(e) {
|
|
9858
9968
|
const before = e.relatedTarget;
|
|
9859
9969
|
const after = e.target;
|
|
9860
|
-
|
|
9970
|
+
await nextTick();
|
|
9971
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
9861
9972
|
// We're the topmost menu
|
|
9862
9973
|
overlay.value?.globalTop &&
|
|
9863
9974
|
// It isn't the document or the menu body
|
|
@@ -10193,7 +10304,7 @@ const VField = genericComponent()({
|
|
|
10193
10304
|
'v-field--no-label': !label,
|
|
10194
10305
|
[`v-field--variant-${props.variant}`]: true
|
|
10195
10306
|
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
|
|
10196
|
-
"style": [backgroundColorStyles.value,
|
|
10307
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
10197
10308
|
"onClick": onClick
|
|
10198
10309
|
}, attrs), [createVNode("div", {
|
|
10199
10310
|
"class": "v-field__overlay"
|
|
@@ -10217,7 +10328,8 @@ const VField = genericComponent()({
|
|
|
10217
10328
|
"ref": floatingLabelRef,
|
|
10218
10329
|
"class": [textColorClasses.value],
|
|
10219
10330
|
"floating": true,
|
|
10220
|
-
"for": id.value
|
|
10331
|
+
"for": id.value,
|
|
10332
|
+
"style": textColorStyles.value
|
|
10221
10333
|
}, {
|
|
10222
10334
|
default: () => [label]
|
|
10223
10335
|
}), createVNode(VFieldLabel, {
|
|
@@ -10253,7 +10365,8 @@ const VField = genericComponent()({
|
|
|
10253
10365
|
"key": "append-icon",
|
|
10254
10366
|
"name": "appendInner"
|
|
10255
10367
|
}, null)]), createVNode("div", {
|
|
10256
|
-
"class": ['v-field__outline', textColorClasses.value]
|
|
10368
|
+
"class": ['v-field__outline', textColorClasses.value],
|
|
10369
|
+
"style": textColorStyles.value
|
|
10257
10370
|
}, [isOutlined && createVNode(Fragment, null, [createVNode("div", {
|
|
10258
10371
|
"class": "v-field__outline__start"
|
|
10259
10372
|
}, null), hasLabel.value && createVNode("div", {
|
|
@@ -10297,6 +10410,7 @@ const makeVTextFieldProps = propsFactory({
|
|
|
10297
10410
|
persistentPlaceholder: Boolean,
|
|
10298
10411
|
persistentCounter: Boolean,
|
|
10299
10412
|
suffix: String,
|
|
10413
|
+
role: String,
|
|
10300
10414
|
type: {
|
|
10301
10415
|
type: String,
|
|
10302
10416
|
default: 'text'
|
|
@@ -10421,7 +10535,7 @@ const VTextField = genericComponent()({
|
|
|
10421
10535
|
"onClick:clear": onClear,
|
|
10422
10536
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
10423
10537
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
10424
|
-
"role":
|
|
10538
|
+
"role": props.role
|
|
10425
10539
|
}, fieldProps, {
|
|
10426
10540
|
"id": id.value,
|
|
10427
10541
|
"active": isActive.value || isDirty.value,
|
|
@@ -10460,10 +10574,12 @@ const VTextField = genericComponent()({
|
|
|
10460
10574
|
"class": "v-text-field__prefix"
|
|
10461
10575
|
}, [createVNode("span", {
|
|
10462
10576
|
"class": "v-text-field__prefix__text"
|
|
10463
|
-
}, [props.prefix])]), createVNode("div", {
|
|
10577
|
+
}, [props.prefix])]), slots.default ? createVNode("div", {
|
|
10464
10578
|
"class": fieldClass,
|
|
10465
10579
|
"data-no-activator": ""
|
|
10466
|
-
}, [slots.default
|
|
10580
|
+
}, [slots.default(), inputNode]) : cloneVNode(inputNode, {
|
|
10581
|
+
class: fieldClass
|
|
10582
|
+
}), props.suffix && createVNode("span", {
|
|
10467
10583
|
"class": "v-text-field__suffix"
|
|
10468
10584
|
}, [createVNode("span", {
|
|
10469
10585
|
"class": "v-text-field__suffix__text"
|
|
@@ -10782,6 +10898,14 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
10782
10898
|
const makeSelectProps = propsFactory({
|
|
10783
10899
|
chips: Boolean,
|
|
10784
10900
|
closableChips: Boolean,
|
|
10901
|
+
closeText: {
|
|
10902
|
+
type: String,
|
|
10903
|
+
default: '$vuetify.close'
|
|
10904
|
+
},
|
|
10905
|
+
openText: {
|
|
10906
|
+
type: String,
|
|
10907
|
+
default: '$vuetify.open'
|
|
10908
|
+
},
|
|
10785
10909
|
eager: Boolean,
|
|
10786
10910
|
hideNoData: Boolean,
|
|
10787
10911
|
hideSelected: Boolean,
|
|
@@ -10811,7 +10935,8 @@ const makeSelectProps = propsFactory({
|
|
|
10811
10935
|
const makeVSelectProps = propsFactory({
|
|
10812
10936
|
...makeSelectProps(),
|
|
10813
10937
|
...omit(makeVTextFieldProps({
|
|
10814
|
-
modelValue: null
|
|
10938
|
+
modelValue: null,
|
|
10939
|
+
role: 'button'
|
|
10815
10940
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
10816
10941
|
...makeTransitionProps({
|
|
10817
10942
|
transition: {
|
|
@@ -10866,6 +10991,7 @@ const VSelect = genericComponent()({
|
|
|
10866
10991
|
});
|
|
10867
10992
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
10868
10993
|
const isFocused = shallowRef(false);
|
|
10994
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
10869
10995
|
let keyboardLookupPrefix = '';
|
|
10870
10996
|
let keyboardLookupLastTime;
|
|
10871
10997
|
const displayItems = computed(() => {
|
|
@@ -10992,7 +11118,9 @@ const VSelect = genericComponent()({
|
|
|
10992
11118
|
"onClick:clear": onClear,
|
|
10993
11119
|
"onMousedown:control": onMousedownControl,
|
|
10994
11120
|
"onBlur": onBlur,
|
|
10995
|
-
"onKeydown": onKeydown
|
|
11121
|
+
"onKeydown": onKeydown,
|
|
11122
|
+
"aria-label": t(label.value),
|
|
11123
|
+
"title": t(label.value)
|
|
10996
11124
|
}), {
|
|
10997
11125
|
...slots,
|
|
10998
11126
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
|
|
@@ -11255,7 +11383,8 @@ const makeVAutocompleteProps = propsFactory({
|
|
|
11255
11383
|
}),
|
|
11256
11384
|
...makeSelectProps(),
|
|
11257
11385
|
...omit(makeVTextFieldProps({
|
|
11258
|
-
modelValue: null
|
|
11386
|
+
modelValue: null,
|
|
11387
|
+
role: 'combobox'
|
|
11259
11388
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
11260
11389
|
...makeTransitionProps({
|
|
11261
11390
|
transition: false
|
|
@@ -11292,6 +11421,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11292
11421
|
});
|
|
11293
11422
|
const selectionIndex = shallowRef(-1);
|
|
11294
11423
|
const color = computed(() => vTextFieldRef.value?.color);
|
|
11424
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
11295
11425
|
const {
|
|
11296
11426
|
items,
|
|
11297
11427
|
transformIn,
|
|
@@ -11639,7 +11769,9 @@ const VAutocomplete = genericComponent()({
|
|
|
11639
11769
|
"class": "v-autocomplete__menu-icon",
|
|
11640
11770
|
"icon": props.menuIcon,
|
|
11641
11771
|
"onMousedown": onMousedownMenuIcon,
|
|
11642
|
-
"onClick": noop
|
|
11772
|
+
"onClick": noop,
|
|
11773
|
+
"aria-label": t(label.value),
|
|
11774
|
+
"title": t(label.value)
|
|
11643
11775
|
}, null) : undefined]);
|
|
11644
11776
|
}
|
|
11645
11777
|
});
|
|
@@ -11794,6 +11926,7 @@ const makeVBannerProps = propsFactory({
|
|
|
11794
11926
|
...makeComponentProps(),
|
|
11795
11927
|
...makeDensityProps(),
|
|
11796
11928
|
...makeDimensionProps(),
|
|
11929
|
+
...makeDisplayProps(),
|
|
11797
11930
|
...makeElevationProps(),
|
|
11798
11931
|
...makeLocationProps(),
|
|
11799
11932
|
...makePositionProps(),
|
|
@@ -11815,8 +11948,9 @@ const VBanner = genericComponent()({
|
|
|
11815
11948
|
densityClasses
|
|
11816
11949
|
} = useDensity(props);
|
|
11817
11950
|
const {
|
|
11951
|
+
displayClasses,
|
|
11818
11952
|
mobile
|
|
11819
|
-
} = useDisplay();
|
|
11953
|
+
} = useDisplay(props);
|
|
11820
11954
|
const {
|
|
11821
11955
|
dimensionStyles
|
|
11822
11956
|
} = useDimension(props);
|
|
@@ -11852,7 +11986,7 @@ const VBanner = genericComponent()({
|
|
|
11852
11986
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
11853
11987
|
'v-banner--sticky': props.sticky,
|
|
11854
11988
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
11855
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11989
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11856
11990
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
11857
11991
|
"role": "banner"
|
|
11858
11992
|
}, {
|
|
@@ -12159,12 +12293,17 @@ const VBreadcrumbs = genericComponent()({
|
|
|
12159
12293
|
item,
|
|
12160
12294
|
raw
|
|
12161
12295
|
} = _ref2;
|
|
12162
|
-
return createVNode(Fragment, null, [
|
|
12163
|
-
|
|
12296
|
+
return createVNode(Fragment, null, [slots.item?.({
|
|
12297
|
+
item,
|
|
12298
|
+
index
|
|
12299
|
+
}) ?? createVNode(VBreadcrumbsItem, mergeProps({
|
|
12300
|
+
"key": index,
|
|
12164
12301
|
"disabled": index >= array.length - 1
|
|
12165
|
-
}, item
|
|
12302
|
+
}, typeof item === 'string' ? {
|
|
12303
|
+
title: item
|
|
12304
|
+
} : item), {
|
|
12166
12305
|
default: slots.title ? () => slots.title?.({
|
|
12167
|
-
item
|
|
12306
|
+
item,
|
|
12168
12307
|
index
|
|
12169
12308
|
}) : undefined
|
|
12170
12309
|
}), index < array.length - 1 && createVNode(VBreadcrumbsDivider, null, {
|
|
@@ -13502,7 +13641,11 @@ const makeSliderProps = propsFactory({
|
|
|
13502
13641
|
...makeRoundedProps(),
|
|
13503
13642
|
...makeElevationProps({
|
|
13504
13643
|
elevation: 2
|
|
13505
|
-
})
|
|
13644
|
+
}),
|
|
13645
|
+
ripple: {
|
|
13646
|
+
type: Boolean,
|
|
13647
|
+
default: true
|
|
13648
|
+
}
|
|
13506
13649
|
}, 'Slider');
|
|
13507
13650
|
const useSteps = props => {
|
|
13508
13651
|
const min = computed(() => parseFloat(props.min));
|
|
@@ -14109,7 +14252,8 @@ const VSlider = genericComponent()({
|
|
|
14109
14252
|
"position": trackStop.value,
|
|
14110
14253
|
"elevation": props.elevation,
|
|
14111
14254
|
"onFocus": focus,
|
|
14112
|
-
"onBlur": blur
|
|
14255
|
+
"onBlur": blur,
|
|
14256
|
+
"ripple": props.ripple
|
|
14113
14257
|
}, {
|
|
14114
14258
|
'thumb-label': slots['thumb-label']
|
|
14115
14259
|
})]);
|
|
@@ -14140,12 +14284,36 @@ const VColorPickerPreview = defineComponent({
|
|
|
14140
14284
|
let {
|
|
14141
14285
|
emit
|
|
14142
14286
|
} = _ref;
|
|
14287
|
+
const abortController = new AbortController();
|
|
14288
|
+
onUnmounted(() => abortController.abort());
|
|
14289
|
+
async function openEyeDropper() {
|
|
14290
|
+
if (!SUPPORTS_EYE_DROPPER) return;
|
|
14291
|
+
const eyeDropper = new window.EyeDropper();
|
|
14292
|
+
try {
|
|
14293
|
+
const result = await eyeDropper.open({
|
|
14294
|
+
signal: abortController.signal
|
|
14295
|
+
});
|
|
14296
|
+
const colorHexValue = HexToHSV(result.sRGBHex);
|
|
14297
|
+
emit('update:color', {
|
|
14298
|
+
...(props.color ?? nullColor),
|
|
14299
|
+
...colorHexValue
|
|
14300
|
+
});
|
|
14301
|
+
} catch (e) {}
|
|
14302
|
+
}
|
|
14143
14303
|
useRender(() => createVNode("div", {
|
|
14144
14304
|
"class": ['v-color-picker-preview', {
|
|
14145
14305
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
14146
14306
|
}, props.class],
|
|
14147
14307
|
"style": props.style
|
|
14148
|
-
}, [createVNode("div", {
|
|
14308
|
+
}, [SUPPORTS_EYE_DROPPER && createVNode("div", {
|
|
14309
|
+
"class": "v-color-picker-preview__eye-dropper",
|
|
14310
|
+
"key": "eyeDropper"
|
|
14311
|
+
}, [createVNode(VBtn, {
|
|
14312
|
+
"onClick": openEyeDropper,
|
|
14313
|
+
"icon": "$eyeDropper",
|
|
14314
|
+
"variant": "plain",
|
|
14315
|
+
"density": "comfortable"
|
|
14316
|
+
}, null)]), createVNode("div", {
|
|
14149
14317
|
"class": "v-color-picker-preview__dot"
|
|
14150
14318
|
}, [createVNode("div", {
|
|
14151
14319
|
"style": {
|
|
@@ -14783,7 +14951,8 @@ const makeVComboboxProps = propsFactory({
|
|
|
14783
14951
|
returnObject: true
|
|
14784
14952
|
}),
|
|
14785
14953
|
...omit(makeVTextFieldProps({
|
|
14786
|
-
modelValue: null
|
|
14954
|
+
modelValue: null,
|
|
14955
|
+
role: 'combobox'
|
|
14787
14956
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
14788
14957
|
...makeTransitionProps({
|
|
14789
14958
|
transition: false
|
|
@@ -14822,6 +14991,7 @@ const VCombobox = genericComponent()({
|
|
|
14822
14991
|
const selectionIndex = shallowRef(-1);
|
|
14823
14992
|
let cleared = false;
|
|
14824
14993
|
const color = computed(() => vTextFieldRef.value?.color);
|
|
14994
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
14825
14995
|
const {
|
|
14826
14996
|
items,
|
|
14827
14997
|
transformIn,
|
|
@@ -15197,7 +15367,9 @@ const VCombobox = genericComponent()({
|
|
|
15197
15367
|
"class": "v-combobox__menu-icon",
|
|
15198
15368
|
"icon": props.menuIcon,
|
|
15199
15369
|
"onMousedown": onMousedownMenuIcon,
|
|
15200
|
-
"onClick": noop
|
|
15370
|
+
"onClick": noop,
|
|
15371
|
+
"aria-label": t(label.value),
|
|
15372
|
+
"title": t(label.value)
|
|
15201
15373
|
}, null) : undefined]);
|
|
15202
15374
|
}
|
|
15203
15375
|
});
|
|
@@ -16812,6 +16984,7 @@ const makeVNavigationDrawerProps = propsFactory({
|
|
|
16812
16984
|
sticky: Boolean,
|
|
16813
16985
|
...makeBorderProps(),
|
|
16814
16986
|
...makeComponentProps(),
|
|
16987
|
+
...makeDisplayProps(),
|
|
16815
16988
|
...makeElevationProps(),
|
|
16816
16989
|
...makeLayoutItemProps(),
|
|
16817
16990
|
...makeRoundedProps(),
|
|
@@ -16850,8 +17023,9 @@ const VNavigationDrawer = genericComponent()({
|
|
|
16850
17023
|
elevationClasses
|
|
16851
17024
|
} = useElevation(props);
|
|
16852
17025
|
const {
|
|
17026
|
+
displayClasses,
|
|
16853
17027
|
mobile
|
|
16854
|
-
} = useDisplay();
|
|
17028
|
+
} = useDisplay(props);
|
|
16855
17029
|
const {
|
|
16856
17030
|
roundedClasses
|
|
16857
17031
|
} = useRounded(props);
|
|
@@ -16962,7 +17136,7 @@ const VNavigationDrawer = genericComponent()({
|
|
|
16962
17136
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
16963
17137
|
'v-navigation-drawer--active': isActive.value,
|
|
16964
17138
|
'v-navigation-drawer--sticky': isSticky.value
|
|
16965
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17139
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16966
17140
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
16967
17141
|
}, scopeId, attrs), {
|
|
16968
17142
|
default: () => [hasImage && createVNode("div", {
|
|
@@ -17490,7 +17664,7 @@ const VRadioGroup = genericComponent()({
|
|
|
17490
17664
|
const id = computed(() => props.id || `radio-group-${uid}`);
|
|
17491
17665
|
const model = useProxiedModel(props, 'modelValue');
|
|
17492
17666
|
useRender(() => {
|
|
17493
|
-
const [
|
|
17667
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17494
17668
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
17495
17669
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17496
17670
|
const label = slots.label ? slots.label({
|
|
@@ -17502,7 +17676,7 @@ const VRadioGroup = genericComponent()({
|
|
|
17502
17676
|
return createVNode(VInput, mergeProps({
|
|
17503
17677
|
"class": ['v-radio-group', props.class],
|
|
17504
17678
|
"style": props.style
|
|
17505
|
-
},
|
|
17679
|
+
}, rootAttrs, inputProps, {
|
|
17506
17680
|
"modelValue": model.value,
|
|
17507
17681
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17508
17682
|
"id": id.value
|
|
@@ -17710,7 +17884,8 @@ const VRangeSlider = genericComponent()({
|
|
|
17710
17884
|
},
|
|
17711
17885
|
"min": min.value,
|
|
17712
17886
|
"max": model.value[1],
|
|
17713
|
-
"position": trackStart.value
|
|
17887
|
+
"position": trackStart.value,
|
|
17888
|
+
"ripple": props.ripple
|
|
17714
17889
|
}, {
|
|
17715
17890
|
'thumb-label': slots['thumb-label']
|
|
17716
17891
|
}), createVNode(VSliderThumb, {
|
|
@@ -17738,7 +17913,8 @@ const VRangeSlider = genericComponent()({
|
|
|
17738
17913
|
},
|
|
17739
17914
|
"min": model.value[0],
|
|
17740
17915
|
"max": max.value,
|
|
17741
|
-
"position": trackStop.value
|
|
17916
|
+
"position": trackStop.value,
|
|
17917
|
+
"ripple": props.ripple
|
|
17742
17918
|
}, {
|
|
17743
17919
|
'thumb-label': slots['thumb-label']
|
|
17744
17920
|
})]);
|
|
@@ -18012,6 +18188,7 @@ const makeVSlideGroupProps = propsFactory({
|
|
|
18012
18188
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
18013
18189
|
},
|
|
18014
18190
|
...makeComponentProps(),
|
|
18191
|
+
...makeDisplayProps(),
|
|
18015
18192
|
...makeTagProps(),
|
|
18016
18193
|
...makeGroupProps({
|
|
18017
18194
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -18031,8 +18208,9 @@ const VSlideGroup = genericComponent()({
|
|
|
18031
18208
|
isRtl
|
|
18032
18209
|
} = useRtl();
|
|
18033
18210
|
const {
|
|
18211
|
+
displayClasses,
|
|
18034
18212
|
mobile
|
|
18035
|
-
} = useDisplay();
|
|
18213
|
+
} = useDisplay(props);
|
|
18036
18214
|
const group = useGroup(props, props.symbol);
|
|
18037
18215
|
const isOverflowing = shallowRef(false);
|
|
18038
18216
|
const scrollOffset = shallowRef(0);
|
|
@@ -18252,7 +18430,7 @@ const VSlideGroup = genericComponent()({
|
|
|
18252
18430
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
18253
18431
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
18254
18432
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
18255
|
-
}, props.class],
|
|
18433
|
+
}, displayClasses.value, props.class],
|
|
18256
18434
|
"style": props.style,
|
|
18257
18435
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
18258
18436
|
"onFocus": onFocus
|
|
@@ -18479,6 +18657,7 @@ const VSwitch = genericComponent()({
|
|
|
18479
18657
|
focus,
|
|
18480
18658
|
blur
|
|
18481
18659
|
} = useFocus(props);
|
|
18660
|
+
const control = ref();
|
|
18482
18661
|
const loaderColor = computed(() => {
|
|
18483
18662
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
18484
18663
|
});
|
|
@@ -18489,16 +18668,15 @@ const VSwitch = genericComponent()({
|
|
|
18489
18668
|
indeterminate.value = false;
|
|
18490
18669
|
}
|
|
18491
18670
|
}
|
|
18671
|
+
function onTrackClick(e) {
|
|
18672
|
+
e.stopPropagation();
|
|
18673
|
+
e.preventDefault();
|
|
18674
|
+
control.value?.input?.click();
|
|
18675
|
+
}
|
|
18492
18676
|
useRender(() => {
|
|
18493
|
-
const [
|
|
18677
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
18494
18678
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
18495
18679
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
18496
|
-
const control = ref();
|
|
18497
|
-
function onClick(e) {
|
|
18498
|
-
e.stopPropagation();
|
|
18499
|
-
e.preventDefault();
|
|
18500
|
-
control.value?.input?.click();
|
|
18501
|
-
}
|
|
18502
18680
|
return createVNode(VInput, mergeProps({
|
|
18503
18681
|
"class": ['v-switch', {
|
|
18504
18682
|
'v-switch--inset': props.inset
|
|
@@ -18506,7 +18684,7 @@ const VSwitch = genericComponent()({
|
|
|
18506
18684
|
'v-switch--indeterminate': indeterminate.value
|
|
18507
18685
|
}, loaderClasses.value, props.class],
|
|
18508
18686
|
"style": props.style
|
|
18509
|
-
},
|
|
18687
|
+
}, rootAttrs, inputProps, {
|
|
18510
18688
|
"id": id.value,
|
|
18511
18689
|
"focused": isFocused.value
|
|
18512
18690
|
}), {
|
|
@@ -18536,29 +18714,36 @@ const VSwitch = genericComponent()({
|
|
|
18536
18714
|
...slots,
|
|
18537
18715
|
default: () => createVNode("div", {
|
|
18538
18716
|
"class": "v-switch__track",
|
|
18539
|
-
"onClick":
|
|
18717
|
+
"onClick": onTrackClick
|
|
18540
18718
|
}, null),
|
|
18541
18719
|
input: _ref3 => {
|
|
18542
18720
|
let {
|
|
18543
|
-
|
|
18544
|
-
|
|
18721
|
+
inputNode,
|
|
18722
|
+
icon
|
|
18545
18723
|
} = _ref3;
|
|
18546
|
-
return createVNode("div", {
|
|
18547
|
-
"class": ['v-switch__thumb',
|
|
18548
|
-
|
|
18549
|
-
|
|
18550
|
-
|
|
18551
|
-
|
|
18552
|
-
|
|
18553
|
-
|
|
18554
|
-
|
|
18555
|
-
|
|
18556
|
-
"
|
|
18557
|
-
"
|
|
18558
|
-
"
|
|
18559
|
-
|
|
18560
|
-
|
|
18561
|
-
|
|
18724
|
+
return createVNode(Fragment, null, [inputNode, createVNode("div", {
|
|
18725
|
+
"class": ['v-switch__thumb', {
|
|
18726
|
+
'v-switch__thumb--filled': icon || props.loading
|
|
18727
|
+
}]
|
|
18728
|
+
}, [createVNode(VScaleTransition, null, {
|
|
18729
|
+
default: () => [!props.loading ? icon && createVNode(VIcon, {
|
|
18730
|
+
"key": icon,
|
|
18731
|
+
"icon": icon,
|
|
18732
|
+
"size": "x-small"
|
|
18733
|
+
}, null) : createVNode(LoaderSlot, {
|
|
18734
|
+
"name": "v-switch",
|
|
18735
|
+
"active": true,
|
|
18736
|
+
"color": isValid.value === false ? undefined : loaderColor.value
|
|
18737
|
+
}, {
|
|
18738
|
+
default: slotProps => slots.loader ? slots.loader(slotProps) : createVNode(VProgressCircular, {
|
|
18739
|
+
"active": slotProps.isActive,
|
|
18740
|
+
"color": slotProps.color,
|
|
18741
|
+
"indeterminate": true,
|
|
18742
|
+
"size": "16",
|
|
18743
|
+
"width": "2"
|
|
18744
|
+
}, null)
|
|
18745
|
+
})]
|
|
18746
|
+
})])]);
|
|
18562
18747
|
}
|
|
18563
18748
|
});
|
|
18564
18749
|
}
|
|
@@ -19039,8 +19224,7 @@ const VTextarea = genericComponent()({
|
|
|
19039
19224
|
"onMousedown": onControlMousedown,
|
|
19040
19225
|
"onClick:clear": onClear,
|
|
19041
19226
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
19042
|
-
"onClick:appendInner": props['onClick:appendInner']
|
|
19043
|
-
"role": "textbox"
|
|
19227
|
+
"onClick:appendInner": props['onClick:appendInner']
|
|
19044
19228
|
}, fieldProps, {
|
|
19045
19229
|
"active": isActive.value || isDirty.value,
|
|
19046
19230
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
@@ -24392,7 +24576,7 @@ function createVuetify$1() {
|
|
|
24392
24576
|
date
|
|
24393
24577
|
};
|
|
24394
24578
|
}
|
|
24395
|
-
const version$1 = "3.
|
|
24579
|
+
const version$1 = "3.4.0-alpha.0";
|
|
24396
24580
|
createVuetify$1.version = version$1;
|
|
24397
24581
|
|
|
24398
24582
|
// Vue's inject() can only be used in setup
|
|
@@ -24406,7 +24590,7 @@ function inject(key) {
|
|
|
24406
24590
|
|
|
24407
24591
|
/* eslint-disable local-rules/sort-imports */
|
|
24408
24592
|
|
|
24409
|
-
const version = "3.
|
|
24593
|
+
const version = "3.4.0-alpha.0";
|
|
24410
24594
|
|
|
24411
24595
|
/* eslint-disable local-rules/sort-imports */
|
|
24412
24596
|
|