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.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 } 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
|
|
@@ -224,14 +233,22 @@ function omit(obj, exclude) {
|
|
|
224
233
|
exclude.forEach(prop => delete clone[prop]);
|
|
225
234
|
return clone;
|
|
226
235
|
}
|
|
236
|
+
const onRE = /^on[^a-z]/;
|
|
237
|
+
const isOn = key => onRE.test(key);
|
|
238
|
+
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'];
|
|
227
239
|
|
|
228
240
|
/**
|
|
229
241
|
* Filter attributes that should be applied to
|
|
230
|
-
* the root element of
|
|
242
|
+
* the root element of an input component. Remaining
|
|
231
243
|
* attributes should be passed to the <input> element inside.
|
|
232
244
|
*/
|
|
233
245
|
function filterInputAttrs(attrs) {
|
|
234
|
-
|
|
246
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
247
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
248
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
249
|
+
Object.assign(rootAttrs, events);
|
|
250
|
+
Object.assign(inputAttrs, inputEvents);
|
|
251
|
+
return [rootAttrs, inputAttrs];
|
|
235
252
|
}
|
|
236
253
|
function wrapInArray(v) {
|
|
237
254
|
return v == null ? [] : Array.isArray(v) ? v : [v];
|
|
@@ -384,8 +401,6 @@ function destructComputed(getter) {
|
|
|
384
401
|
function includes(arr, val) {
|
|
385
402
|
return arr.includes(val);
|
|
386
403
|
}
|
|
387
|
-
const onRE = /^on[^a-z]/;
|
|
388
|
-
const isOn = key => onRE.test(key);
|
|
389
404
|
function eventName(propName) {
|
|
390
405
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
391
406
|
}
|
|
@@ -542,6 +557,18 @@ function getOverflow(a, b) {
|
|
|
542
557
|
}
|
|
543
558
|
};
|
|
544
559
|
}
|
|
560
|
+
function getTargetBox(target) {
|
|
561
|
+
if (Array.isArray(target)) {
|
|
562
|
+
return new Box({
|
|
563
|
+
x: target[0],
|
|
564
|
+
y: target[1],
|
|
565
|
+
width: 0,
|
|
566
|
+
height: 0
|
|
567
|
+
});
|
|
568
|
+
} else {
|
|
569
|
+
return target.getBoundingClientRect();
|
|
570
|
+
}
|
|
571
|
+
}
|
|
545
572
|
|
|
546
573
|
// Utilities
|
|
547
574
|
|
|
@@ -1013,34 +1040,6 @@ function getContrast(first, second) {
|
|
|
1013
1040
|
|
|
1014
1041
|
// Types
|
|
1015
1042
|
|
|
1016
|
-
function useToggleScope(source, fn) {
|
|
1017
|
-
let scope;
|
|
1018
|
-
function start() {
|
|
1019
|
-
scope = effectScope();
|
|
1020
|
-
scope.run(() => fn.length ? fn(() => {
|
|
1021
|
-
scope?.stop();
|
|
1022
|
-
start();
|
|
1023
|
-
}) : fn());
|
|
1024
|
-
}
|
|
1025
|
-
watch(source, active => {
|
|
1026
|
-
if (active && !scope) {
|
|
1027
|
-
start();
|
|
1028
|
-
} else if (!active) {
|
|
1029
|
-
scope?.stop();
|
|
1030
|
-
scope = undefined;
|
|
1031
|
-
}
|
|
1032
|
-
}, {
|
|
1033
|
-
immediate: true
|
|
1034
|
-
});
|
|
1035
|
-
onScopeDispose(() => {
|
|
1036
|
-
scope?.stop();
|
|
1037
|
-
});
|
|
1038
|
-
}
|
|
1039
|
-
|
|
1040
|
-
// Composables
|
|
1041
|
-
|
|
1042
|
-
// Types
|
|
1043
|
-
|
|
1044
1043
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
1045
1044
|
function createDefaults(options) {
|
|
1046
1045
|
return ref(options);
|
|
@@ -1059,6 +1058,7 @@ function provideDefaults(defaults, options) {
|
|
|
1059
1058
|
const scoped = unref(options?.scoped);
|
|
1060
1059
|
const reset = unref(options?.reset);
|
|
1061
1060
|
const root = unref(options?.root);
|
|
1061
|
+
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
|
1062
1062
|
let properties = mergeDeep(providedDefaults.value, {
|
|
1063
1063
|
prev: injectedDefaults.value
|
|
1064
1064
|
});
|
|
@@ -1114,16 +1114,16 @@ function internalUseDefaults() {
|
|
|
1114
1114
|
let [key] = _ref;
|
|
1115
1115
|
return key.startsWith(key[0].toUpperCase());
|
|
1116
1116
|
});
|
|
1117
|
-
|
|
1117
|
+
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
|
1118
|
+
} else {
|
|
1119
|
+
_subcomponentDefaults.value = undefined;
|
|
1118
1120
|
}
|
|
1119
1121
|
});
|
|
1120
1122
|
function provideSubDefaults() {
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1126
|
-
});
|
|
1123
|
+
const injected = injectSelf(DefaultsSymbol, vm);
|
|
1124
|
+
provide(DefaultsSymbol, computed(() => {
|
|
1125
|
+
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
|
1126
|
+
}));
|
|
1127
1127
|
}
|
|
1128
1128
|
return {
|
|
1129
1129
|
props: _props,
|
|
@@ -1301,9 +1301,10 @@ function isPotentiallyScrollable(el) {
|
|
|
1301
1301
|
// Types
|
|
1302
1302
|
|
|
1303
1303
|
function injectSelf(key) {
|
|
1304
|
+
let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
|
|
1304
1305
|
const {
|
|
1305
1306
|
provides
|
|
1306
|
-
} =
|
|
1307
|
+
} = vm;
|
|
1307
1308
|
if (provides && key in provides) {
|
|
1308
1309
|
// TS doesn't allow symbol as index type
|
|
1309
1310
|
return provides[key];
|
|
@@ -1641,6 +1642,7 @@ function createLayout(props) {
|
|
|
1641
1642
|
|
|
1642
1643
|
var en = {
|
|
1643
1644
|
badge: 'Badge',
|
|
1645
|
+
open: 'Open',
|
|
1644
1646
|
close: 'Close',
|
|
1645
1647
|
dataIterator: {
|
|
1646
1648
|
noResultsText: 'No matching records found',
|
|
@@ -1779,6 +1781,34 @@ const defaultRtl = {
|
|
|
1779
1781
|
zhHant: false
|
|
1780
1782
|
};
|
|
1781
1783
|
|
|
1784
|
+
// Utilities
|
|
1785
|
+
|
|
1786
|
+
// Types
|
|
1787
|
+
|
|
1788
|
+
function useToggleScope(source, fn) {
|
|
1789
|
+
let scope;
|
|
1790
|
+
function start() {
|
|
1791
|
+
scope = effectScope();
|
|
1792
|
+
scope.run(() => fn.length ? fn(() => {
|
|
1793
|
+
scope?.stop();
|
|
1794
|
+
start();
|
|
1795
|
+
}) : fn());
|
|
1796
|
+
}
|
|
1797
|
+
watch(source, active => {
|
|
1798
|
+
if (active && !scope) {
|
|
1799
|
+
start();
|
|
1800
|
+
} else if (!active) {
|
|
1801
|
+
scope?.stop();
|
|
1802
|
+
scope = undefined;
|
|
1803
|
+
}
|
|
1804
|
+
}, {
|
|
1805
|
+
immediate: true
|
|
1806
|
+
});
|
|
1807
|
+
onScopeDispose(() => {
|
|
1808
|
+
scope?.stop();
|
|
1809
|
+
});
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1782
1812
|
// Composables
|
|
1783
1813
|
|
|
1784
1814
|
// Types
|
|
@@ -2091,9 +2121,9 @@ const defaultThemeOptions = {
|
|
|
2091
2121
|
surface: '#FFFFFF',
|
|
2092
2122
|
'surface-variant': '#424242',
|
|
2093
2123
|
'on-surface-variant': '#EEEEEE',
|
|
2094
|
-
primary: '#
|
|
2095
|
-
'primary-darken-1': '#
|
|
2096
|
-
secondary: '#
|
|
2124
|
+
primary: '#1867C0',
|
|
2125
|
+
'primary-darken-1': '#1F5592',
|
|
2126
|
+
secondary: '#48A9A6',
|
|
2097
2127
|
'secondary-darken-1': '#018786',
|
|
2098
2128
|
error: '#B00020',
|
|
2099
2129
|
info: '#2196F3',
|
|
@@ -2126,10 +2156,10 @@ const defaultThemeOptions = {
|
|
|
2126
2156
|
surface: '#212121',
|
|
2127
2157
|
'surface-variant': '#BDBDBD',
|
|
2128
2158
|
'on-surface-variant': '#424242',
|
|
2129
|
-
primary: '#
|
|
2130
|
-
'primary-darken-1': '#
|
|
2131
|
-
secondary: '#
|
|
2132
|
-
'secondary-darken-1': '#
|
|
2159
|
+
primary: '#2196F3',
|
|
2160
|
+
'primary-darken-1': '#277CC1',
|
|
2161
|
+
secondary: '#54B6B2',
|
|
2162
|
+
'secondary-darken-1': '#48A9A6',
|
|
2133
2163
|
error: '#CF6679',
|
|
2134
2164
|
info: '#2196F3',
|
|
2135
2165
|
success: '#4CAF50',
|
|
@@ -2614,7 +2644,7 @@ function ExpandTransitionGenerator () {
|
|
|
2614
2644
|
// Types
|
|
2615
2645
|
|
|
2616
2646
|
const makeVDialogTransitionProps = propsFactory({
|
|
2617
|
-
target: Object
|
|
2647
|
+
target: [Object, Array]
|
|
2618
2648
|
}, 'v-dialog-transition');
|
|
2619
2649
|
const VDialogTransition = genericComponent()({
|
|
2620
2650
|
name: 'VDialogTransition',
|
|
@@ -2716,7 +2746,7 @@ function getChildren(el) {
|
|
|
2716
2746
|
return els && [...els];
|
|
2717
2747
|
}
|
|
2718
2748
|
function getDimensions(target, el) {
|
|
2719
|
-
const targetBox = target
|
|
2749
|
+
const targetBox = getTargetBox(target);
|
|
2720
2750
|
const elBox = nullifyTransforms(el);
|
|
2721
2751
|
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
2722
2752
|
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
@@ -2962,6 +2992,10 @@ const Intersect = {
|
|
|
2962
2992
|
const makeVImgProps = propsFactory({
|
|
2963
2993
|
alt: String,
|
|
2964
2994
|
cover: Boolean,
|
|
2995
|
+
draggable: {
|
|
2996
|
+
type: [Boolean, String],
|
|
2997
|
+
default: undefined
|
|
2998
|
+
},
|
|
2965
2999
|
eager: Boolean,
|
|
2966
3000
|
gradient: String,
|
|
2967
3001
|
lazySrc: String,
|
|
@@ -2980,6 +3014,8 @@ const makeVImgProps = propsFactory({
|
|
|
2980
3014
|
type: [String, Object],
|
|
2981
3015
|
default: ''
|
|
2982
3016
|
},
|
|
3017
|
+
crossorigin: String,
|
|
3018
|
+
referrerpolicy: String,
|
|
2983
3019
|
srcset: String,
|
|
2984
3020
|
...makeVResponsiveProps(),
|
|
2985
3021
|
...makeComponentProps(),
|
|
@@ -3104,6 +3140,9 @@ const VImg = genericComponent()({
|
|
|
3104
3140
|
"src": normalisedSrc.value.src,
|
|
3105
3141
|
"srcset": normalisedSrc.value.srcset,
|
|
3106
3142
|
"alt": props.alt,
|
|
3143
|
+
"crossorigin": props.crossorigin,
|
|
3144
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3145
|
+
"draggable": props.draggable,
|
|
3107
3146
|
"sizes": props.sizes,
|
|
3108
3147
|
"ref": image,
|
|
3109
3148
|
"onLoad": onLoad,
|
|
@@ -3125,7 +3164,10 @@ const VImg = genericComponent()({
|
|
|
3125
3164
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
|
|
3126
3165
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
3127
3166
|
"src": normalisedSrc.value.lazySrc,
|
|
3128
|
-
"alt": props.alt
|
|
3167
|
+
"alt": props.alt,
|
|
3168
|
+
"crossorigin": props.crossorigin,
|
|
3169
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3170
|
+
"draggable": props.draggable
|
|
3129
3171
|
}, null)]
|
|
3130
3172
|
});
|
|
3131
3173
|
const __placeholder = () => {
|
|
@@ -4144,7 +4186,8 @@ const aliases = {
|
|
|
4144
4186
|
file: 'mdi-paperclip',
|
|
4145
4187
|
plus: 'mdi-plus',
|
|
4146
4188
|
minus: 'mdi-minus',
|
|
4147
|
-
calendar: 'mdi-calendar'
|
|
4189
|
+
calendar: 'mdi-calendar',
|
|
4190
|
+
eyeDropper: 'mdi-eyedropper'
|
|
4148
4191
|
};
|
|
4149
4192
|
const mdi = {
|
|
4150
4193
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -5734,6 +5777,7 @@ const VSelectionControlGroup = genericComponent()({
|
|
|
5734
5777
|
|
|
5735
5778
|
const makeVSelectionControlProps = propsFactory({
|
|
5736
5779
|
label: String,
|
|
5780
|
+
baseColor: String,
|
|
5737
5781
|
trueValue: null,
|
|
5738
5782
|
falseValue: null,
|
|
5739
5783
|
value: null,
|
|
@@ -5772,7 +5816,8 @@ function useSelectionControl(props) {
|
|
|
5772
5816
|
textColorClasses,
|
|
5773
5817
|
textColorStyles
|
|
5774
5818
|
} = useTextColor(computed(() => {
|
|
5775
|
-
|
|
5819
|
+
if (props.error || props.disabled) return undefined;
|
|
5820
|
+
return model.value ? props.color : props.baseColor;
|
|
5776
5821
|
}));
|
|
5777
5822
|
const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5778
5823
|
return {
|
|
@@ -5844,6 +5889,20 @@ const VSelectionControl = genericComponent()({
|
|
|
5844
5889
|
}
|
|
5845
5890
|
}) : props.label;
|
|
5846
5891
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
5892
|
+
const inputNode = createVNode("input", mergeProps({
|
|
5893
|
+
"ref": input,
|
|
5894
|
+
"checked": model.value,
|
|
5895
|
+
"disabled": !!(props.readonly || props.disabled),
|
|
5896
|
+
"id": id.value,
|
|
5897
|
+
"onBlur": onBlur,
|
|
5898
|
+
"onFocus": onFocus,
|
|
5899
|
+
"onInput": onInput,
|
|
5900
|
+
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5901
|
+
"type": props.type,
|
|
5902
|
+
"value": trueValue.value,
|
|
5903
|
+
"name": props.name,
|
|
5904
|
+
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5905
|
+
}, inputAttrs), null);
|
|
5847
5906
|
return createVNode("div", mergeProps({
|
|
5848
5907
|
"class": ['v-selection-control', {
|
|
5849
5908
|
'v-selection-control--dirty': model.value,
|
|
@@ -5860,34 +5919,24 @@ const VSelectionControl = genericComponent()({
|
|
|
5860
5919
|
"style": textColorStyles.value
|
|
5861
5920
|
}, [slots.default?.(), withDirectives(createVNode("div", {
|
|
5862
5921
|
"class": ['v-selection-control__input']
|
|
5863
|
-
}, [
|
|
5864
|
-
"key": "icon",
|
|
5865
|
-
"icon": icon.value
|
|
5866
|
-
}, null), createVNode("input", mergeProps({
|
|
5867
|
-
"ref": input,
|
|
5868
|
-
"checked": model.value,
|
|
5869
|
-
"disabled": !!(props.readonly || props.disabled),
|
|
5870
|
-
"id": id.value,
|
|
5871
|
-
"onBlur": onBlur,
|
|
5872
|
-
"onFocus": onFocus,
|
|
5873
|
-
"onInput": onInput,
|
|
5874
|
-
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5875
|
-
"type": props.type,
|
|
5876
|
-
"value": trueValue.value,
|
|
5877
|
-
"name": props.name,
|
|
5878
|
-
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5879
|
-
}, inputAttrs), null), slots.input?.({
|
|
5922
|
+
}, [slots.input?.({
|
|
5880
5923
|
model,
|
|
5881
5924
|
textColorClasses,
|
|
5882
5925
|
textColorStyles,
|
|
5926
|
+
inputNode,
|
|
5927
|
+
icon: icon.value,
|
|
5883
5928
|
props: {
|
|
5884
5929
|
onFocus,
|
|
5885
5930
|
onBlur,
|
|
5886
5931
|
id: id.value
|
|
5887
5932
|
}
|
|
5888
|
-
})
|
|
5933
|
+
}) ?? createVNode(Fragment, null, [icon.value && createVNode(VIcon, {
|
|
5934
|
+
"key": "icon",
|
|
5935
|
+
"icon": icon.value
|
|
5936
|
+
}, null), inputNode])]), [[resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && createVNode(VLabel, {
|
|
5889
5937
|
"for": id.value,
|
|
5890
|
-
"clickable": true
|
|
5938
|
+
"clickable": true,
|
|
5939
|
+
"onClick": e => e.stopPropagation()
|
|
5891
5940
|
}, {
|
|
5892
5941
|
default: () => [label]
|
|
5893
5942
|
})]);
|
|
@@ -5936,16 +5985,19 @@ const VCheckboxBtn = genericComponent()({
|
|
|
5936
5985
|
const trueIcon = computed(() => {
|
|
5937
5986
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
5938
5987
|
});
|
|
5939
|
-
useRender(() =>
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5988
|
+
useRender(() => {
|
|
5989
|
+
const controlProps = omit(VSelectionControl.filterProps(props)[0], ['modelValue']);
|
|
5990
|
+
return createVNode(VSelectionControl, mergeProps(controlProps, {
|
|
5991
|
+
"modelValue": model.value,
|
|
5992
|
+
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
5993
|
+
"class": ['v-checkbox-btn', props.class],
|
|
5994
|
+
"style": props.style,
|
|
5995
|
+
"type": "checkbox",
|
|
5996
|
+
"falseIcon": falseIcon.value,
|
|
5997
|
+
"trueIcon": trueIcon.value,
|
|
5998
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
5999
|
+
}), slots);
|
|
6000
|
+
});
|
|
5949
6001
|
return {};
|
|
5950
6002
|
}
|
|
5951
6003
|
});
|
|
@@ -6509,12 +6561,12 @@ const VCheckbox = genericComponent()({
|
|
|
6509
6561
|
const uid = getUid();
|
|
6510
6562
|
const id = computed(() => props.id || `checkbox-${uid}`);
|
|
6511
6563
|
useRender(() => {
|
|
6512
|
-
const [
|
|
6564
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6513
6565
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6514
6566
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6515
6567
|
return createVNode(VInput, mergeProps({
|
|
6516
6568
|
"class": ['v-checkbox', props.class]
|
|
6517
|
-
},
|
|
6569
|
+
}, rootAttrs, inputProps, {
|
|
6518
6570
|
"modelValue": model.value,
|
|
6519
6571
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6520
6572
|
"id": id.value,
|
|
@@ -6552,6 +6604,7 @@ const makeVAvatarProps = propsFactory({
|
|
|
6552
6604
|
end: Boolean,
|
|
6553
6605
|
icon: IconValue,
|
|
6554
6606
|
image: String,
|
|
6607
|
+
text: String,
|
|
6555
6608
|
...makeComponentProps(),
|
|
6556
6609
|
...makeDensityProps(),
|
|
6557
6610
|
...makeRoundedProps(),
|
|
@@ -6602,7 +6655,7 @@ const VAvatar = genericComponent()({
|
|
|
6602
6655
|
}, null) : props.icon ? createVNode(VIcon, {
|
|
6603
6656
|
"key": "icon",
|
|
6604
6657
|
"icon": props.icon
|
|
6605
|
-
}, null) : slots.default?.(), genOverlays(false, 'v-avatar')]
|
|
6658
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6606
6659
|
}));
|
|
6607
6660
|
return {};
|
|
6608
6661
|
}
|
|
@@ -7654,7 +7707,6 @@ const VListItem = genericComponent()({
|
|
|
7654
7707
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
7655
7708
|
"href": link.href.value,
|
|
7656
7709
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
7657
|
-
"title": props.title,
|
|
7658
7710
|
"onClick": onClick,
|
|
7659
7711
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7660
7712
|
}, {
|
|
@@ -7687,7 +7739,9 @@ const VListItem = genericComponent()({
|
|
|
7687
7739
|
}
|
|
7688
7740
|
}, {
|
|
7689
7741
|
default: () => [slots.prepend?.(slotProps.value)]
|
|
7690
|
-
})
|
|
7742
|
+
}), createVNode("div", {
|
|
7743
|
+
"class": "v-list-item__spacer"
|
|
7744
|
+
}, null)]), createVNode("div", {
|
|
7691
7745
|
"class": "v-list-item__content",
|
|
7692
7746
|
"data-no-activator": ""
|
|
7693
7747
|
}, [hasTitle && createVNode(VListItemTitle, {
|
|
@@ -7731,7 +7785,9 @@ const VListItem = genericComponent()({
|
|
|
7731
7785
|
}
|
|
7732
7786
|
}, {
|
|
7733
7787
|
default: () => [slots.append?.(slotProps.value)]
|
|
7734
|
-
})
|
|
7788
|
+
}), createVNode("div", {
|
|
7789
|
+
"class": "v-list-item__spacer"
|
|
7790
|
+
}, null)])]
|
|
7735
7791
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7736
7792
|
});
|
|
7737
7793
|
return {};
|
|
@@ -8380,7 +8436,7 @@ function getIntrinsicSize(el, isRtl) {
|
|
|
8380
8436
|
return contentBox;
|
|
8381
8437
|
}
|
|
8382
8438
|
function connectedLocationStrategy(data, props, contentStyles) {
|
|
8383
|
-
const activatorFixed = isFixedPosition(data.
|
|
8439
|
+
const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);
|
|
8384
8440
|
if (activatorFixed) {
|
|
8385
8441
|
Object.assign(contentStyles.value, {
|
|
8386
8442
|
position: 'fixed',
|
|
@@ -8429,11 +8485,11 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
8429
8485
|
const observer = new ResizeObserver(() => {
|
|
8430
8486
|
if (observe) updateLocation();
|
|
8431
8487
|
});
|
|
8432
|
-
watch([data.
|
|
8433
|
-
let [
|
|
8434
|
-
let [
|
|
8435
|
-
if (
|
|
8436
|
-
if (
|
|
8488
|
+
watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
8489
|
+
let [newTarget, newContentEl] = _ref;
|
|
8490
|
+
let [oldTarget, oldContentEl] = _ref2;
|
|
8491
|
+
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
|
8492
|
+
if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);
|
|
8437
8493
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
8438
8494
|
if (newContentEl) observer.observe(newContentEl);
|
|
8439
8495
|
}, {
|
|
@@ -8449,8 +8505,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
8449
8505
|
requestAnimationFrame(() => {
|
|
8450
8506
|
requestAnimationFrame(() => observe = true);
|
|
8451
8507
|
});
|
|
8452
|
-
if (!data.
|
|
8453
|
-
const targetBox = data.
|
|
8508
|
+
if (!data.target.value || !data.contentEl.value) return;
|
|
8509
|
+
const targetBox = getTargetBox(data.target.value);
|
|
8454
8510
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8455
8511
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8456
8512
|
const viewportMargin = 12;
|
|
@@ -8737,11 +8793,11 @@ function closeScrollStrategy(data) {
|
|
|
8737
8793
|
function onScroll(e) {
|
|
8738
8794
|
data.isActive.value = false;
|
|
8739
8795
|
}
|
|
8740
|
-
bindScroll(data.
|
|
8796
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
|
|
8741
8797
|
}
|
|
8742
8798
|
function blockScrollStrategy(data, props) {
|
|
8743
8799
|
const offsetParent = data.root.value?.offsetParent;
|
|
8744
|
-
const scrollElements = [...new Set([...getScrollParents(data.
|
|
8800
|
+
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'));
|
|
8745
8801
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
8746
8802
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
8747
8803
|
if (scrollableParent) {
|
|
@@ -8785,7 +8841,7 @@ function repositionScrollStrategy(data, props, scope) {
|
|
|
8785
8841
|
}
|
|
8786
8842
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
|
8787
8843
|
scope.run(() => {
|
|
8788
|
-
bindScroll(data.
|
|
8844
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
|
|
8789
8845
|
if (slow) {
|
|
8790
8846
|
// If the position calculation is slow,
|
|
8791
8847
|
// defer updates until scrolling is finished.
|
|
@@ -8866,6 +8922,7 @@ function useDelay(props, cb) {
|
|
|
8866
8922
|
// Types
|
|
8867
8923
|
|
|
8868
8924
|
const makeActivatorProps = propsFactory({
|
|
8925
|
+
target: [String, Object],
|
|
8869
8926
|
activator: [String, Object],
|
|
8870
8927
|
activatorProps: {
|
|
8871
8928
|
type: Object,
|
|
@@ -8888,6 +8945,7 @@ function useActivator(props, _ref) {
|
|
|
8888
8945
|
isActive,
|
|
8889
8946
|
isTop
|
|
8890
8947
|
} = _ref;
|
|
8948
|
+
const vm = getCurrentInstance('useActivator');
|
|
8891
8949
|
const activatorEl = ref();
|
|
8892
8950
|
let isHovered = false;
|
|
8893
8951
|
let isFocused = false;
|
|
@@ -8905,10 +8963,14 @@ function useActivator(props, _ref) {
|
|
|
8905
8963
|
isActive.value = value;
|
|
8906
8964
|
}
|
|
8907
8965
|
});
|
|
8966
|
+
const cursorTarget = ref();
|
|
8908
8967
|
const availableEvents = {
|
|
8909
8968
|
onClick: e => {
|
|
8910
8969
|
e.stopPropagation();
|
|
8911
8970
|
activatorEl.value = e.currentTarget || e.target;
|
|
8971
|
+
if (!isActive.value) {
|
|
8972
|
+
cursorTarget.value = [e.clientX, e.clientY];
|
|
8973
|
+
}
|
|
8912
8974
|
isActive.value = !isActive.value;
|
|
8913
8975
|
},
|
|
8914
8976
|
onMouseenter: e => {
|
|
@@ -9002,6 +9064,15 @@ function useActivator(props, _ref) {
|
|
|
9002
9064
|
isActive.value = false;
|
|
9003
9065
|
}
|
|
9004
9066
|
});
|
|
9067
|
+
watch(isActive, val => {
|
|
9068
|
+
if (!val) {
|
|
9069
|
+
setTimeout(() => {
|
|
9070
|
+
cursorTarget.value = undefined;
|
|
9071
|
+
});
|
|
9072
|
+
}
|
|
9073
|
+
}, {
|
|
9074
|
+
flush: 'post'
|
|
9075
|
+
});
|
|
9005
9076
|
const activatorRef = ref();
|
|
9006
9077
|
watchEffect(() => {
|
|
9007
9078
|
if (!activatorRef.value) return;
|
|
@@ -9009,7 +9080,15 @@ function useActivator(props, _ref) {
|
|
|
9009
9080
|
activatorEl.value = refElement(activatorRef.value);
|
|
9010
9081
|
});
|
|
9011
9082
|
});
|
|
9012
|
-
const
|
|
9083
|
+
const targetRef = ref();
|
|
9084
|
+
const target = computed(() => {
|
|
9085
|
+
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
9086
|
+
if (targetRef.value) return refElement(targetRef.value);
|
|
9087
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
9088
|
+
});
|
|
9089
|
+
const targetEl = computed(() => {
|
|
9090
|
+
return Array.isArray(target.value) ? undefined : target.value;
|
|
9091
|
+
});
|
|
9013
9092
|
let scope;
|
|
9014
9093
|
watch(() => !!props.activator, val => {
|
|
9015
9094
|
if (val && IN_BROWSER) {
|
|
@@ -9033,6 +9112,9 @@ function useActivator(props, _ref) {
|
|
|
9033
9112
|
return {
|
|
9034
9113
|
activatorEl,
|
|
9035
9114
|
activatorRef,
|
|
9115
|
+
target,
|
|
9116
|
+
targetEl,
|
|
9117
|
+
targetRef,
|
|
9036
9118
|
activatorEvents,
|
|
9037
9119
|
contentEvents,
|
|
9038
9120
|
scrimEvents
|
|
@@ -9074,31 +9156,34 @@ function _useActivator(props, vm, _ref2) {
|
|
|
9074
9156
|
}
|
|
9075
9157
|
function getActivator() {
|
|
9076
9158
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
9077
|
-
|
|
9078
|
-
if (selector) {
|
|
9079
|
-
if (selector === 'parent') {
|
|
9080
|
-
let el = vm?.proxy?.$el?.parentNode;
|
|
9081
|
-
while (el.hasAttribute('data-no-activator')) {
|
|
9082
|
-
el = el.parentNode;
|
|
9083
|
-
}
|
|
9084
|
-
activator = el;
|
|
9085
|
-
} else if (typeof selector === 'string') {
|
|
9086
|
-
// Selector
|
|
9087
|
-
activator = document.querySelector(selector);
|
|
9088
|
-
} else if ('$el' in selector) {
|
|
9089
|
-
// Component (ref)
|
|
9090
|
-
activator = selector.$el;
|
|
9091
|
-
} else {
|
|
9092
|
-
// HTMLElement | Element
|
|
9093
|
-
activator = selector;
|
|
9094
|
-
}
|
|
9095
|
-
}
|
|
9159
|
+
const activator = getTarget(selector, vm);
|
|
9096
9160
|
|
|
9097
9161
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
9098
|
-
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator :
|
|
9162
|
+
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
9099
9163
|
return activatorEl.value;
|
|
9100
9164
|
}
|
|
9101
9165
|
}
|
|
9166
|
+
function getTarget(selector, vm) {
|
|
9167
|
+
if (!selector) return;
|
|
9168
|
+
let target;
|
|
9169
|
+
if (selector === 'parent') {
|
|
9170
|
+
let el = vm?.proxy?.$el?.parentNode;
|
|
9171
|
+
while (el.hasAttribute('data-no-activator')) {
|
|
9172
|
+
el = el.parentNode;
|
|
9173
|
+
}
|
|
9174
|
+
target = el;
|
|
9175
|
+
} else if (typeof selector === 'string') {
|
|
9176
|
+
// Selector
|
|
9177
|
+
target = document.querySelector(selector);
|
|
9178
|
+
} else if ('$el' in selector) {
|
|
9179
|
+
// Component (ref)
|
|
9180
|
+
target = selector.$el;
|
|
9181
|
+
} else {
|
|
9182
|
+
// HTMLElement | Element | [x, y]
|
|
9183
|
+
target = selector;
|
|
9184
|
+
}
|
|
9185
|
+
return target;
|
|
9186
|
+
}
|
|
9102
9187
|
|
|
9103
9188
|
// Utilities
|
|
9104
9189
|
|
|
@@ -9222,10 +9307,30 @@ function createDisplay(options, ssr) {
|
|
|
9222
9307
|
ssr: !!ssr
|
|
9223
9308
|
};
|
|
9224
9309
|
}
|
|
9310
|
+
const makeDisplayProps = propsFactory({
|
|
9311
|
+
mobileBreakpoint: [Number, String]
|
|
9312
|
+
}, 'display');
|
|
9225
9313
|
function useDisplay() {
|
|
9314
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9315
|
+
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
9226
9316
|
const display = inject$1(DisplaySymbol);
|
|
9227
9317
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
9228
|
-
|
|
9318
|
+
const mobile = computed(() => {
|
|
9319
|
+
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
9320
|
+
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
9321
|
+
return display.width.value < breakpointValue;
|
|
9322
|
+
});
|
|
9323
|
+
const displayClasses = computed(() => {
|
|
9324
|
+
if (!name) return {};
|
|
9325
|
+
return {
|
|
9326
|
+
[`${name}--mobile`]: mobile.value
|
|
9327
|
+
};
|
|
9328
|
+
});
|
|
9329
|
+
return {
|
|
9330
|
+
...display,
|
|
9331
|
+
displayClasses,
|
|
9332
|
+
mobile
|
|
9333
|
+
};
|
|
9229
9334
|
}
|
|
9230
9335
|
|
|
9231
9336
|
// Composables
|
|
@@ -9542,6 +9647,9 @@ const VOverlay = genericComponent()({
|
|
|
9542
9647
|
const {
|
|
9543
9648
|
activatorEl,
|
|
9544
9649
|
activatorRef,
|
|
9650
|
+
target,
|
|
9651
|
+
targetEl,
|
|
9652
|
+
targetRef,
|
|
9545
9653
|
activatorEvents,
|
|
9546
9654
|
contentEvents,
|
|
9547
9655
|
scrimEvents
|
|
@@ -9567,13 +9675,13 @@ const VOverlay = genericComponent()({
|
|
|
9567
9675
|
} = useLocationStrategies(props, {
|
|
9568
9676
|
isRtl,
|
|
9569
9677
|
contentEl,
|
|
9570
|
-
|
|
9678
|
+
target,
|
|
9571
9679
|
isActive
|
|
9572
9680
|
});
|
|
9573
9681
|
useScrollStrategies(props, {
|
|
9574
9682
|
root,
|
|
9575
9683
|
contentEl,
|
|
9576
|
-
|
|
9684
|
+
targetEl,
|
|
9577
9685
|
isActive,
|
|
9578
9686
|
updateLocation
|
|
9579
9687
|
});
|
|
@@ -9641,7 +9749,8 @@ const VOverlay = genericComponent()({
|
|
|
9641
9749
|
useRender(() => createVNode(Fragment, null, [slots.activator?.({
|
|
9642
9750
|
isActive: isActive.value,
|
|
9643
9751
|
props: mergeProps({
|
|
9644
|
-
ref: activatorRef
|
|
9752
|
+
ref: activatorRef,
|
|
9753
|
+
targetRef
|
|
9645
9754
|
}, activatorEvents.value, props.activatorProps)
|
|
9646
9755
|
}), isMounted.value && hasContent.value && createVNode(Teleport, {
|
|
9647
9756
|
"disabled": !teleportTarget.value,
|
|
@@ -9664,7 +9773,7 @@ const VOverlay = genericComponent()({
|
|
|
9664
9773
|
"appear": true,
|
|
9665
9774
|
"persisted": true,
|
|
9666
9775
|
"transition": props.transition,
|
|
9667
|
-
"target":
|
|
9776
|
+
"target": target.value,
|
|
9668
9777
|
"onAfterLeave": () => {
|
|
9669
9778
|
onAfterLeave();
|
|
9670
9779
|
emit('afterLeave');
|
|
@@ -9685,6 +9794,7 @@ const VOverlay = genericComponent()({
|
|
|
9685
9794
|
})]));
|
|
9686
9795
|
return {
|
|
9687
9796
|
activatorEl,
|
|
9797
|
+
target,
|
|
9688
9798
|
animateClick,
|
|
9689
9799
|
contentEl,
|
|
9690
9800
|
globalTop,
|
|
@@ -9842,10 +9952,11 @@ const VMenu = genericComponent()({
|
|
|
9842
9952
|
}, 40);
|
|
9843
9953
|
}
|
|
9844
9954
|
});
|
|
9845
|
-
function onFocusIn(e) {
|
|
9955
|
+
async function onFocusIn(e) {
|
|
9846
9956
|
const before = e.relatedTarget;
|
|
9847
9957
|
const after = e.target;
|
|
9848
|
-
|
|
9958
|
+
await nextTick();
|
|
9959
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
9849
9960
|
// We're the topmost menu
|
|
9850
9961
|
overlay.value?.globalTop &&
|
|
9851
9962
|
// It isn't the document or the menu body
|
|
@@ -10181,7 +10292,7 @@ const VField = genericComponent()({
|
|
|
10181
10292
|
'v-field--no-label': !label,
|
|
10182
10293
|
[`v-field--variant-${props.variant}`]: true
|
|
10183
10294
|
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
|
|
10184
|
-
"style": [backgroundColorStyles.value,
|
|
10295
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
10185
10296
|
"onClick": onClick
|
|
10186
10297
|
}, attrs), [createVNode("div", {
|
|
10187
10298
|
"class": "v-field__overlay"
|
|
@@ -10205,7 +10316,8 @@ const VField = genericComponent()({
|
|
|
10205
10316
|
"ref": floatingLabelRef,
|
|
10206
10317
|
"class": [textColorClasses.value],
|
|
10207
10318
|
"floating": true,
|
|
10208
|
-
"for": id.value
|
|
10319
|
+
"for": id.value,
|
|
10320
|
+
"style": textColorStyles.value
|
|
10209
10321
|
}, {
|
|
10210
10322
|
default: () => [label]
|
|
10211
10323
|
}), createVNode(VFieldLabel, {
|
|
@@ -10241,7 +10353,8 @@ const VField = genericComponent()({
|
|
|
10241
10353
|
"key": "append-icon",
|
|
10242
10354
|
"name": "appendInner"
|
|
10243
10355
|
}, null)]), createVNode("div", {
|
|
10244
|
-
"class": ['v-field__outline', textColorClasses.value]
|
|
10356
|
+
"class": ['v-field__outline', textColorClasses.value],
|
|
10357
|
+
"style": textColorStyles.value
|
|
10245
10358
|
}, [isOutlined && createVNode(Fragment, null, [createVNode("div", {
|
|
10246
10359
|
"class": "v-field__outline__start"
|
|
10247
10360
|
}, null), hasLabel.value && createVNode("div", {
|
|
@@ -10285,6 +10398,7 @@ const makeVTextFieldProps = propsFactory({
|
|
|
10285
10398
|
persistentPlaceholder: Boolean,
|
|
10286
10399
|
persistentCounter: Boolean,
|
|
10287
10400
|
suffix: String,
|
|
10401
|
+
role: String,
|
|
10288
10402
|
type: {
|
|
10289
10403
|
type: String,
|
|
10290
10404
|
default: 'text'
|
|
@@ -10409,7 +10523,7 @@ const VTextField = genericComponent()({
|
|
|
10409
10523
|
"onClick:clear": onClear,
|
|
10410
10524
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
10411
10525
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
10412
|
-
"role":
|
|
10526
|
+
"role": props.role
|
|
10413
10527
|
}, fieldProps, {
|
|
10414
10528
|
"id": id.value,
|
|
10415
10529
|
"active": isActive.value || isDirty.value,
|
|
@@ -10448,10 +10562,12 @@ const VTextField = genericComponent()({
|
|
|
10448
10562
|
"class": "v-text-field__prefix"
|
|
10449
10563
|
}, [createVNode("span", {
|
|
10450
10564
|
"class": "v-text-field__prefix__text"
|
|
10451
|
-
}, [props.prefix])]), createVNode("div", {
|
|
10565
|
+
}, [props.prefix])]), slots.default ? createVNode("div", {
|
|
10452
10566
|
"class": fieldClass,
|
|
10453
10567
|
"data-no-activator": ""
|
|
10454
|
-
}, [slots.default
|
|
10568
|
+
}, [slots.default(), inputNode]) : cloneVNode(inputNode, {
|
|
10569
|
+
class: fieldClass
|
|
10570
|
+
}), props.suffix && createVNode("span", {
|
|
10455
10571
|
"class": "v-text-field__suffix"
|
|
10456
10572
|
}, [createVNode("span", {
|
|
10457
10573
|
"class": "v-text-field__suffix__text"
|
|
@@ -10770,6 +10886,14 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
10770
10886
|
const makeSelectProps = propsFactory({
|
|
10771
10887
|
chips: Boolean,
|
|
10772
10888
|
closableChips: Boolean,
|
|
10889
|
+
closeText: {
|
|
10890
|
+
type: String,
|
|
10891
|
+
default: '$vuetify.close'
|
|
10892
|
+
},
|
|
10893
|
+
openText: {
|
|
10894
|
+
type: String,
|
|
10895
|
+
default: '$vuetify.open'
|
|
10896
|
+
},
|
|
10773
10897
|
eager: Boolean,
|
|
10774
10898
|
hideNoData: Boolean,
|
|
10775
10899
|
hideSelected: Boolean,
|
|
@@ -10799,7 +10923,8 @@ const makeSelectProps = propsFactory({
|
|
|
10799
10923
|
const makeVSelectProps = propsFactory({
|
|
10800
10924
|
...makeSelectProps(),
|
|
10801
10925
|
...omit(makeVTextFieldProps({
|
|
10802
|
-
modelValue: null
|
|
10926
|
+
modelValue: null,
|
|
10927
|
+
role: 'button'
|
|
10803
10928
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
10804
10929
|
...makeTransitionProps({
|
|
10805
10930
|
transition: {
|
|
@@ -10854,6 +10979,7 @@ const VSelect = genericComponent()({
|
|
|
10854
10979
|
});
|
|
10855
10980
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
10856
10981
|
const isFocused = shallowRef(false);
|
|
10982
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
10857
10983
|
let keyboardLookupPrefix = '';
|
|
10858
10984
|
let keyboardLookupLastTime;
|
|
10859
10985
|
const displayItems = computed(() => {
|
|
@@ -10980,7 +11106,9 @@ const VSelect = genericComponent()({
|
|
|
10980
11106
|
"onClick:clear": onClear,
|
|
10981
11107
|
"onMousedown:control": onMousedownControl,
|
|
10982
11108
|
"onBlur": onBlur,
|
|
10983
|
-
"onKeydown": onKeydown
|
|
11109
|
+
"onKeydown": onKeydown,
|
|
11110
|
+
"aria-label": t(label.value),
|
|
11111
|
+
"title": t(label.value)
|
|
10984
11112
|
}), {
|
|
10985
11113
|
...slots,
|
|
10986
11114
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
|
|
@@ -11243,7 +11371,8 @@ const makeVAutocompleteProps = propsFactory({
|
|
|
11243
11371
|
}),
|
|
11244
11372
|
...makeSelectProps(),
|
|
11245
11373
|
...omit(makeVTextFieldProps({
|
|
11246
|
-
modelValue: null
|
|
11374
|
+
modelValue: null,
|
|
11375
|
+
role: 'combobox'
|
|
11247
11376
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
11248
11377
|
...makeTransitionProps({
|
|
11249
11378
|
transition: false
|
|
@@ -11280,6 +11409,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11280
11409
|
});
|
|
11281
11410
|
const selectionIndex = shallowRef(-1);
|
|
11282
11411
|
const color = computed(() => vTextFieldRef.value?.color);
|
|
11412
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
11283
11413
|
const {
|
|
11284
11414
|
items,
|
|
11285
11415
|
transformIn,
|
|
@@ -11627,7 +11757,9 @@ const VAutocomplete = genericComponent()({
|
|
|
11627
11757
|
"class": "v-autocomplete__menu-icon",
|
|
11628
11758
|
"icon": props.menuIcon,
|
|
11629
11759
|
"onMousedown": onMousedownMenuIcon,
|
|
11630
|
-
"onClick": noop
|
|
11760
|
+
"onClick": noop,
|
|
11761
|
+
"aria-label": t(label.value),
|
|
11762
|
+
"title": t(label.value)
|
|
11631
11763
|
}, null) : undefined]);
|
|
11632
11764
|
}
|
|
11633
11765
|
});
|
|
@@ -11782,6 +11914,7 @@ const makeVBannerProps = propsFactory({
|
|
|
11782
11914
|
...makeComponentProps(),
|
|
11783
11915
|
...makeDensityProps(),
|
|
11784
11916
|
...makeDimensionProps(),
|
|
11917
|
+
...makeDisplayProps(),
|
|
11785
11918
|
...makeElevationProps(),
|
|
11786
11919
|
...makeLocationProps(),
|
|
11787
11920
|
...makePositionProps(),
|
|
@@ -11803,8 +11936,9 @@ const VBanner = genericComponent()({
|
|
|
11803
11936
|
densityClasses
|
|
11804
11937
|
} = useDensity(props);
|
|
11805
11938
|
const {
|
|
11939
|
+
displayClasses,
|
|
11806
11940
|
mobile
|
|
11807
|
-
} = useDisplay();
|
|
11941
|
+
} = useDisplay(props);
|
|
11808
11942
|
const {
|
|
11809
11943
|
dimensionStyles
|
|
11810
11944
|
} = useDimension(props);
|
|
@@ -11840,7 +11974,7 @@ const VBanner = genericComponent()({
|
|
|
11840
11974
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
11841
11975
|
'v-banner--sticky': props.sticky,
|
|
11842
11976
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
11843
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11977
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11844
11978
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
11845
11979
|
"role": "banner"
|
|
11846
11980
|
}, {
|
|
@@ -12147,12 +12281,17 @@ const VBreadcrumbs = genericComponent()({
|
|
|
12147
12281
|
item,
|
|
12148
12282
|
raw
|
|
12149
12283
|
} = _ref2;
|
|
12150
|
-
return createVNode(Fragment, null, [
|
|
12151
|
-
|
|
12284
|
+
return createVNode(Fragment, null, [slots.item?.({
|
|
12285
|
+
item,
|
|
12286
|
+
index
|
|
12287
|
+
}) ?? createVNode(VBreadcrumbsItem, mergeProps({
|
|
12288
|
+
"key": index,
|
|
12152
12289
|
"disabled": index >= array.length - 1
|
|
12153
|
-
}, item
|
|
12290
|
+
}, typeof item === 'string' ? {
|
|
12291
|
+
title: item
|
|
12292
|
+
} : item), {
|
|
12154
12293
|
default: slots.title ? () => slots.title?.({
|
|
12155
|
-
item
|
|
12294
|
+
item,
|
|
12156
12295
|
index
|
|
12157
12296
|
}) : undefined
|
|
12158
12297
|
}), index < array.length - 1 && createVNode(VBreadcrumbsDivider, null, {
|
|
@@ -13490,7 +13629,11 @@ const makeSliderProps = propsFactory({
|
|
|
13490
13629
|
...makeRoundedProps(),
|
|
13491
13630
|
...makeElevationProps({
|
|
13492
13631
|
elevation: 2
|
|
13493
|
-
})
|
|
13632
|
+
}),
|
|
13633
|
+
ripple: {
|
|
13634
|
+
type: Boolean,
|
|
13635
|
+
default: true
|
|
13636
|
+
}
|
|
13494
13637
|
}, 'Slider');
|
|
13495
13638
|
const useSteps = props => {
|
|
13496
13639
|
const min = computed(() => parseFloat(props.min));
|
|
@@ -14097,7 +14240,8 @@ const VSlider = genericComponent()({
|
|
|
14097
14240
|
"position": trackStop.value,
|
|
14098
14241
|
"elevation": props.elevation,
|
|
14099
14242
|
"onFocus": focus,
|
|
14100
|
-
"onBlur": blur
|
|
14243
|
+
"onBlur": blur,
|
|
14244
|
+
"ripple": props.ripple
|
|
14101
14245
|
}, {
|
|
14102
14246
|
'thumb-label': slots['thumb-label']
|
|
14103
14247
|
})]);
|
|
@@ -14128,12 +14272,36 @@ const VColorPickerPreview = defineComponent({
|
|
|
14128
14272
|
let {
|
|
14129
14273
|
emit
|
|
14130
14274
|
} = _ref;
|
|
14275
|
+
const abortController = new AbortController();
|
|
14276
|
+
onUnmounted(() => abortController.abort());
|
|
14277
|
+
async function openEyeDropper() {
|
|
14278
|
+
if (!SUPPORTS_EYE_DROPPER) return;
|
|
14279
|
+
const eyeDropper = new window.EyeDropper();
|
|
14280
|
+
try {
|
|
14281
|
+
const result = await eyeDropper.open({
|
|
14282
|
+
signal: abortController.signal
|
|
14283
|
+
});
|
|
14284
|
+
const colorHexValue = HexToHSV(result.sRGBHex);
|
|
14285
|
+
emit('update:color', {
|
|
14286
|
+
...(props.color ?? nullColor),
|
|
14287
|
+
...colorHexValue
|
|
14288
|
+
});
|
|
14289
|
+
} catch (e) {}
|
|
14290
|
+
}
|
|
14131
14291
|
useRender(() => createVNode("div", {
|
|
14132
14292
|
"class": ['v-color-picker-preview', {
|
|
14133
14293
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
14134
14294
|
}, props.class],
|
|
14135
14295
|
"style": props.style
|
|
14136
|
-
}, [createVNode("div", {
|
|
14296
|
+
}, [SUPPORTS_EYE_DROPPER && createVNode("div", {
|
|
14297
|
+
"class": "v-color-picker-preview__eye-dropper",
|
|
14298
|
+
"key": "eyeDropper"
|
|
14299
|
+
}, [createVNode(VBtn, {
|
|
14300
|
+
"onClick": openEyeDropper,
|
|
14301
|
+
"icon": "$eyeDropper",
|
|
14302
|
+
"variant": "plain",
|
|
14303
|
+
"density": "comfortable"
|
|
14304
|
+
}, null)]), createVNode("div", {
|
|
14137
14305
|
"class": "v-color-picker-preview__dot"
|
|
14138
14306
|
}, [createVNode("div", {
|
|
14139
14307
|
"style": {
|
|
@@ -14771,7 +14939,8 @@ const makeVComboboxProps = propsFactory({
|
|
|
14771
14939
|
returnObject: true
|
|
14772
14940
|
}),
|
|
14773
14941
|
...omit(makeVTextFieldProps({
|
|
14774
|
-
modelValue: null
|
|
14942
|
+
modelValue: null,
|
|
14943
|
+
role: 'combobox'
|
|
14775
14944
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
14776
14945
|
...makeTransitionProps({
|
|
14777
14946
|
transition: false
|
|
@@ -14810,6 +14979,7 @@ const VCombobox = genericComponent()({
|
|
|
14810
14979
|
const selectionIndex = shallowRef(-1);
|
|
14811
14980
|
let cleared = false;
|
|
14812
14981
|
const color = computed(() => vTextFieldRef.value?.color);
|
|
14982
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
14813
14983
|
const {
|
|
14814
14984
|
items,
|
|
14815
14985
|
transformIn,
|
|
@@ -15185,7 +15355,9 @@ const VCombobox = genericComponent()({
|
|
|
15185
15355
|
"class": "v-combobox__menu-icon",
|
|
15186
15356
|
"icon": props.menuIcon,
|
|
15187
15357
|
"onMousedown": onMousedownMenuIcon,
|
|
15188
|
-
"onClick": noop
|
|
15358
|
+
"onClick": noop,
|
|
15359
|
+
"aria-label": t(label.value),
|
|
15360
|
+
"title": t(label.value)
|
|
15189
15361
|
}, null) : undefined]);
|
|
15190
15362
|
}
|
|
15191
15363
|
});
|
|
@@ -16800,6 +16972,7 @@ const makeVNavigationDrawerProps = propsFactory({
|
|
|
16800
16972
|
sticky: Boolean,
|
|
16801
16973
|
...makeBorderProps(),
|
|
16802
16974
|
...makeComponentProps(),
|
|
16975
|
+
...makeDisplayProps(),
|
|
16803
16976
|
...makeElevationProps(),
|
|
16804
16977
|
...makeLayoutItemProps(),
|
|
16805
16978
|
...makeRoundedProps(),
|
|
@@ -16838,8 +17011,9 @@ const VNavigationDrawer = genericComponent()({
|
|
|
16838
17011
|
elevationClasses
|
|
16839
17012
|
} = useElevation(props);
|
|
16840
17013
|
const {
|
|
17014
|
+
displayClasses,
|
|
16841
17015
|
mobile
|
|
16842
|
-
} = useDisplay();
|
|
17016
|
+
} = useDisplay(props);
|
|
16843
17017
|
const {
|
|
16844
17018
|
roundedClasses
|
|
16845
17019
|
} = useRounded(props);
|
|
@@ -16950,7 +17124,7 @@ const VNavigationDrawer = genericComponent()({
|
|
|
16950
17124
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
16951
17125
|
'v-navigation-drawer--active': isActive.value,
|
|
16952
17126
|
'v-navigation-drawer--sticky': isSticky.value
|
|
16953
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17127
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16954
17128
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
16955
17129
|
}, scopeId, attrs), {
|
|
16956
17130
|
default: () => [hasImage && createVNode("div", {
|
|
@@ -17478,7 +17652,7 @@ const VRadioGroup = genericComponent()({
|
|
|
17478
17652
|
const id = computed(() => props.id || `radio-group-${uid}`);
|
|
17479
17653
|
const model = useProxiedModel(props, 'modelValue');
|
|
17480
17654
|
useRender(() => {
|
|
17481
|
-
const [
|
|
17655
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17482
17656
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
17483
17657
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17484
17658
|
const label = slots.label ? slots.label({
|
|
@@ -17490,7 +17664,7 @@ const VRadioGroup = genericComponent()({
|
|
|
17490
17664
|
return createVNode(VInput, mergeProps({
|
|
17491
17665
|
"class": ['v-radio-group', props.class],
|
|
17492
17666
|
"style": props.style
|
|
17493
|
-
},
|
|
17667
|
+
}, rootAttrs, inputProps, {
|
|
17494
17668
|
"modelValue": model.value,
|
|
17495
17669
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17496
17670
|
"id": id.value
|
|
@@ -17698,7 +17872,8 @@ const VRangeSlider = genericComponent()({
|
|
|
17698
17872
|
},
|
|
17699
17873
|
"min": min.value,
|
|
17700
17874
|
"max": model.value[1],
|
|
17701
|
-
"position": trackStart.value
|
|
17875
|
+
"position": trackStart.value,
|
|
17876
|
+
"ripple": props.ripple
|
|
17702
17877
|
}, {
|
|
17703
17878
|
'thumb-label': slots['thumb-label']
|
|
17704
17879
|
}), createVNode(VSliderThumb, {
|
|
@@ -17726,7 +17901,8 @@ const VRangeSlider = genericComponent()({
|
|
|
17726
17901
|
},
|
|
17727
17902
|
"min": model.value[0],
|
|
17728
17903
|
"max": max.value,
|
|
17729
|
-
"position": trackStop.value
|
|
17904
|
+
"position": trackStop.value,
|
|
17905
|
+
"ripple": props.ripple
|
|
17730
17906
|
}, {
|
|
17731
17907
|
'thumb-label': slots['thumb-label']
|
|
17732
17908
|
})]);
|
|
@@ -18000,6 +18176,7 @@ const makeVSlideGroupProps = propsFactory({
|
|
|
18000
18176
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
18001
18177
|
},
|
|
18002
18178
|
...makeComponentProps(),
|
|
18179
|
+
...makeDisplayProps(),
|
|
18003
18180
|
...makeTagProps(),
|
|
18004
18181
|
...makeGroupProps({
|
|
18005
18182
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -18019,8 +18196,9 @@ const VSlideGroup = genericComponent()({
|
|
|
18019
18196
|
isRtl
|
|
18020
18197
|
} = useRtl();
|
|
18021
18198
|
const {
|
|
18199
|
+
displayClasses,
|
|
18022
18200
|
mobile
|
|
18023
|
-
} = useDisplay();
|
|
18201
|
+
} = useDisplay(props);
|
|
18024
18202
|
const group = useGroup(props, props.symbol);
|
|
18025
18203
|
const isOverflowing = shallowRef(false);
|
|
18026
18204
|
const scrollOffset = shallowRef(0);
|
|
@@ -18240,7 +18418,7 @@ const VSlideGroup = genericComponent()({
|
|
|
18240
18418
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
18241
18419
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
18242
18420
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
18243
|
-
}, props.class],
|
|
18421
|
+
}, displayClasses.value, props.class],
|
|
18244
18422
|
"style": props.style,
|
|
18245
18423
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
18246
18424
|
"onFocus": onFocus
|
|
@@ -18467,6 +18645,7 @@ const VSwitch = genericComponent()({
|
|
|
18467
18645
|
focus,
|
|
18468
18646
|
blur
|
|
18469
18647
|
} = useFocus(props);
|
|
18648
|
+
const control = ref();
|
|
18470
18649
|
const loaderColor = computed(() => {
|
|
18471
18650
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
18472
18651
|
});
|
|
@@ -18477,16 +18656,15 @@ const VSwitch = genericComponent()({
|
|
|
18477
18656
|
indeterminate.value = false;
|
|
18478
18657
|
}
|
|
18479
18658
|
}
|
|
18659
|
+
function onTrackClick(e) {
|
|
18660
|
+
e.stopPropagation();
|
|
18661
|
+
e.preventDefault();
|
|
18662
|
+
control.value?.input?.click();
|
|
18663
|
+
}
|
|
18480
18664
|
useRender(() => {
|
|
18481
|
-
const [
|
|
18665
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
18482
18666
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
18483
18667
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
18484
|
-
const control = ref();
|
|
18485
|
-
function onClick(e) {
|
|
18486
|
-
e.stopPropagation();
|
|
18487
|
-
e.preventDefault();
|
|
18488
|
-
control.value?.input?.click();
|
|
18489
|
-
}
|
|
18490
18668
|
return createVNode(VInput, mergeProps({
|
|
18491
18669
|
"class": ['v-switch', {
|
|
18492
18670
|
'v-switch--inset': props.inset
|
|
@@ -18494,7 +18672,7 @@ const VSwitch = genericComponent()({
|
|
|
18494
18672
|
'v-switch--indeterminate': indeterminate.value
|
|
18495
18673
|
}, loaderClasses.value, props.class],
|
|
18496
18674
|
"style": props.style
|
|
18497
|
-
},
|
|
18675
|
+
}, rootAttrs, inputProps, {
|
|
18498
18676
|
"id": id.value,
|
|
18499
18677
|
"focused": isFocused.value
|
|
18500
18678
|
}), {
|
|
@@ -18524,29 +18702,36 @@ const VSwitch = genericComponent()({
|
|
|
18524
18702
|
...slots,
|
|
18525
18703
|
default: () => createVNode("div", {
|
|
18526
18704
|
"class": "v-switch__track",
|
|
18527
|
-
"onClick":
|
|
18705
|
+
"onClick": onTrackClick
|
|
18528
18706
|
}, null),
|
|
18529
18707
|
input: _ref3 => {
|
|
18530
18708
|
let {
|
|
18531
|
-
|
|
18532
|
-
|
|
18709
|
+
inputNode,
|
|
18710
|
+
icon
|
|
18533
18711
|
} = _ref3;
|
|
18534
|
-
return createVNode("div", {
|
|
18535
|
-
"class": ['v-switch__thumb',
|
|
18536
|
-
|
|
18537
|
-
|
|
18538
|
-
|
|
18539
|
-
|
|
18540
|
-
|
|
18541
|
-
|
|
18542
|
-
|
|
18543
|
-
|
|
18544
|
-
"
|
|
18545
|
-
"
|
|
18546
|
-
"
|
|
18547
|
-
|
|
18548
|
-
|
|
18549
|
-
|
|
18712
|
+
return createVNode(Fragment, null, [inputNode, createVNode("div", {
|
|
18713
|
+
"class": ['v-switch__thumb', {
|
|
18714
|
+
'v-switch__thumb--filled': icon || props.loading
|
|
18715
|
+
}]
|
|
18716
|
+
}, [createVNode(VScaleTransition, null, {
|
|
18717
|
+
default: () => [!props.loading ? icon && createVNode(VIcon, {
|
|
18718
|
+
"key": icon,
|
|
18719
|
+
"icon": icon,
|
|
18720
|
+
"size": "x-small"
|
|
18721
|
+
}, null) : createVNode(LoaderSlot, {
|
|
18722
|
+
"name": "v-switch",
|
|
18723
|
+
"active": true,
|
|
18724
|
+
"color": isValid.value === false ? undefined : loaderColor.value
|
|
18725
|
+
}, {
|
|
18726
|
+
default: slotProps => slots.loader ? slots.loader(slotProps) : createVNode(VProgressCircular, {
|
|
18727
|
+
"active": slotProps.isActive,
|
|
18728
|
+
"color": slotProps.color,
|
|
18729
|
+
"indeterminate": true,
|
|
18730
|
+
"size": "16",
|
|
18731
|
+
"width": "2"
|
|
18732
|
+
}, null)
|
|
18733
|
+
})]
|
|
18734
|
+
})])]);
|
|
18550
18735
|
}
|
|
18551
18736
|
});
|
|
18552
18737
|
}
|
|
@@ -19027,8 +19212,7 @@ const VTextarea = genericComponent()({
|
|
|
19027
19212
|
"onMousedown": onControlMousedown,
|
|
19028
19213
|
"onClick:clear": onClear,
|
|
19029
19214
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
19030
|
-
"onClick:appendInner": props['onClick:appendInner']
|
|
19031
|
-
"role": "textbox"
|
|
19215
|
+
"onClick:appendInner": props['onClick:appendInner']
|
|
19032
19216
|
}, fieldProps, {
|
|
19033
19217
|
"active": isActive.value || isDirty.value,
|
|
19034
19218
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
@@ -20289,7 +20473,7 @@ function createVuetify$1() {
|
|
|
20289
20473
|
date
|
|
20290
20474
|
};
|
|
20291
20475
|
}
|
|
20292
|
-
const version$1 = "3.
|
|
20476
|
+
const version$1 = "3.4.0-alpha.0";
|
|
20293
20477
|
createVuetify$1.version = version$1;
|
|
20294
20478
|
|
|
20295
20479
|
// Vue's inject() can only be used in setup
|
|
@@ -20314,7 +20498,7 @@ const createVuetify = function () {
|
|
|
20314
20498
|
...options
|
|
20315
20499
|
});
|
|
20316
20500
|
};
|
|
20317
|
-
const version = "3.
|
|
20501
|
+
const version = "3.4.0-alpha.0";
|
|
20318
20502
|
createVuetify.version = version;
|
|
20319
20503
|
|
|
20320
20504
|
export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|