vuetify 3.3.13 → 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 +107 -11
- package/dist/json/importMap.json +16 -16
- package/dist/json/tags.json +24 -0
- package/dist/json/web-types.json +305 -38
- package/dist/vuetify-labs.css +1483 -408
- package/dist/vuetify-labs.d.ts +711 -241
- package/dist/vuetify-labs.esm.js +279 -134
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +278 -133
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1370 -295
- package/dist/vuetify.d.ts +699 -235
- package/dist/vuetify.esm.js +279 -134
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +278 -133
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +912 -897
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +20 -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/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/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 +12 -0
- 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/index.d.mts +20 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/VField.css +10 -6
- package/lib/components/VField/index.d.mts +4 -4
- 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/index.d.mts +12 -12
- package/lib/components/VMenu/index.d.mts +41 -20
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -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 +6 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -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/index.d.mts +20 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +5 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +6 -0
- 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.mjs +9 -9
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +6 -0
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/index.d.mts +16 -16
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTimeline/VTimeline.css +15 -10
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +667 -230
- 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 +36 -5
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +4 -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/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.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
|
*/
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
79
79
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
80
80
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
81
|
+
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
|
81
82
|
|
|
82
83
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
83
84
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
@@ -161,7 +162,15 @@
|
|
|
161
162
|
return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
|
|
162
163
|
}
|
|
163
164
|
function refElement(obj) {
|
|
164
|
-
|
|
165
|
+
if (obj && '$el' in obj) {
|
|
166
|
+
const el = obj.$el;
|
|
167
|
+
if (el?.nodeType === Node.TEXT_NODE) {
|
|
168
|
+
// Multi-root component, use the first element
|
|
169
|
+
return el.nextElementSibling;
|
|
170
|
+
}
|
|
171
|
+
return el;
|
|
172
|
+
}
|
|
173
|
+
return obj;
|
|
165
174
|
}
|
|
166
175
|
|
|
167
176
|
// KeyboardEvent.keyCode aliases
|
|
@@ -233,14 +242,22 @@
|
|
|
233
242
|
include.forEach(prop => clone[prop] = obj[prop]);
|
|
234
243
|
return clone;
|
|
235
244
|
}
|
|
245
|
+
const onRE = /^on[^a-z]/;
|
|
246
|
+
const isOn = key => onRE.test(key);
|
|
247
|
+
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'];
|
|
236
248
|
|
|
237
249
|
/**
|
|
238
250
|
* Filter attributes that should be applied to
|
|
239
|
-
* the root element of
|
|
251
|
+
* the root element of an input component. Remaining
|
|
240
252
|
* attributes should be passed to the <input> element inside.
|
|
241
253
|
*/
|
|
242
254
|
function filterInputAttrs(attrs) {
|
|
243
|
-
|
|
255
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
256
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
257
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
258
|
+
Object.assign(rootAttrs, events);
|
|
259
|
+
Object.assign(inputAttrs, inputEvents);
|
|
260
|
+
return [rootAttrs, inputAttrs];
|
|
244
261
|
}
|
|
245
262
|
function wrapInArray(v) {
|
|
246
263
|
return v == null ? [] : Array.isArray(v) ? v : [v];
|
|
@@ -393,8 +410,6 @@
|
|
|
393
410
|
function includes(arr, val) {
|
|
394
411
|
return arr.includes(val);
|
|
395
412
|
}
|
|
396
|
-
const onRE = /^on[^a-z]/;
|
|
397
|
-
const isOn = key => onRE.test(key);
|
|
398
413
|
function eventName(propName) {
|
|
399
414
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
400
415
|
}
|
|
@@ -554,6 +569,18 @@
|
|
|
554
569
|
}
|
|
555
570
|
};
|
|
556
571
|
}
|
|
572
|
+
function getTargetBox(target) {
|
|
573
|
+
if (Array.isArray(target)) {
|
|
574
|
+
return new Box({
|
|
575
|
+
x: target[0],
|
|
576
|
+
y: target[1],
|
|
577
|
+
width: 0,
|
|
578
|
+
height: 0
|
|
579
|
+
});
|
|
580
|
+
} else {
|
|
581
|
+
return target.getBoundingClientRect();
|
|
582
|
+
}
|
|
583
|
+
}
|
|
557
584
|
|
|
558
585
|
// Utilities
|
|
559
586
|
|
|
@@ -1025,34 +1052,6 @@
|
|
|
1025
1052
|
|
|
1026
1053
|
// Types
|
|
1027
1054
|
|
|
1028
|
-
function useToggleScope(source, fn) {
|
|
1029
|
-
let scope;
|
|
1030
|
-
function start() {
|
|
1031
|
-
scope = vue.effectScope();
|
|
1032
|
-
scope.run(() => fn.length ? fn(() => {
|
|
1033
|
-
scope?.stop();
|
|
1034
|
-
start();
|
|
1035
|
-
}) : fn());
|
|
1036
|
-
}
|
|
1037
|
-
vue.watch(source, active => {
|
|
1038
|
-
if (active && !scope) {
|
|
1039
|
-
start();
|
|
1040
|
-
} else if (!active) {
|
|
1041
|
-
scope?.stop();
|
|
1042
|
-
scope = undefined;
|
|
1043
|
-
}
|
|
1044
|
-
}, {
|
|
1045
|
-
immediate: true
|
|
1046
|
-
});
|
|
1047
|
-
vue.onScopeDispose(() => {
|
|
1048
|
-
scope?.stop();
|
|
1049
|
-
});
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
// Composables
|
|
1053
|
-
|
|
1054
|
-
// Types
|
|
1055
|
-
|
|
1056
1055
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
1057
1056
|
function createDefaults(options) {
|
|
1058
1057
|
return vue.ref(options);
|
|
@@ -1071,6 +1070,7 @@
|
|
|
1071
1070
|
const scoped = vue.unref(options?.scoped);
|
|
1072
1071
|
const reset = vue.unref(options?.reset);
|
|
1073
1072
|
const root = vue.unref(options?.root);
|
|
1073
|
+
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
|
1074
1074
|
let properties = mergeDeep(providedDefaults.value, {
|
|
1075
1075
|
prev: injectedDefaults.value
|
|
1076
1076
|
});
|
|
@@ -1126,16 +1126,16 @@
|
|
|
1126
1126
|
let [key] = _ref;
|
|
1127
1127
|
return key.startsWith(key[0].toUpperCase());
|
|
1128
1128
|
});
|
|
1129
|
-
|
|
1129
|
+
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
|
1130
|
+
} else {
|
|
1131
|
+
_subcomponentDefaults.value = undefined;
|
|
1130
1132
|
}
|
|
1131
1133
|
});
|
|
1132
1134
|
function provideSubDefaults() {
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1138
|
-
});
|
|
1135
|
+
const injected = injectSelf(DefaultsSymbol, vm);
|
|
1136
|
+
vue.provide(DefaultsSymbol, vue.computed(() => {
|
|
1137
|
+
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
|
1138
|
+
}));
|
|
1139
1139
|
}
|
|
1140
1140
|
return {
|
|
1141
1141
|
props: _props,
|
|
@@ -1317,9 +1317,10 @@
|
|
|
1317
1317
|
// Types
|
|
1318
1318
|
|
|
1319
1319
|
function injectSelf(key) {
|
|
1320
|
+
let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
|
|
1320
1321
|
const {
|
|
1321
1322
|
provides
|
|
1322
|
-
} =
|
|
1323
|
+
} = vm;
|
|
1323
1324
|
if (provides && key in provides) {
|
|
1324
1325
|
// TS doesn't allow symbol as index type
|
|
1325
1326
|
return provides[key];
|
|
@@ -1796,6 +1797,34 @@
|
|
|
1796
1797
|
zhHant: false
|
|
1797
1798
|
};
|
|
1798
1799
|
|
|
1800
|
+
// Utilities
|
|
1801
|
+
|
|
1802
|
+
// Types
|
|
1803
|
+
|
|
1804
|
+
function useToggleScope(source, fn) {
|
|
1805
|
+
let scope;
|
|
1806
|
+
function start() {
|
|
1807
|
+
scope = vue.effectScope();
|
|
1808
|
+
scope.run(() => fn.length ? fn(() => {
|
|
1809
|
+
scope?.stop();
|
|
1810
|
+
start();
|
|
1811
|
+
}) : fn());
|
|
1812
|
+
}
|
|
1813
|
+
vue.watch(source, active => {
|
|
1814
|
+
if (active && !scope) {
|
|
1815
|
+
start();
|
|
1816
|
+
} else if (!active) {
|
|
1817
|
+
scope?.stop();
|
|
1818
|
+
scope = undefined;
|
|
1819
|
+
}
|
|
1820
|
+
}, {
|
|
1821
|
+
immediate: true
|
|
1822
|
+
});
|
|
1823
|
+
vue.onScopeDispose(() => {
|
|
1824
|
+
scope?.stop();
|
|
1825
|
+
});
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1799
1828
|
// Composables
|
|
1800
1829
|
|
|
1801
1830
|
// Types
|
|
@@ -2108,9 +2137,9 @@
|
|
|
2108
2137
|
surface: '#FFFFFF',
|
|
2109
2138
|
'surface-variant': '#424242',
|
|
2110
2139
|
'on-surface-variant': '#EEEEEE',
|
|
2111
|
-
primary: '#
|
|
2112
|
-
'primary-darken-1': '#
|
|
2113
|
-
secondary: '#
|
|
2140
|
+
primary: '#1867C0',
|
|
2141
|
+
'primary-darken-1': '#1F5592',
|
|
2142
|
+
secondary: '#48A9A6',
|
|
2114
2143
|
'secondary-darken-1': '#018786',
|
|
2115
2144
|
error: '#B00020',
|
|
2116
2145
|
info: '#2196F3',
|
|
@@ -2143,10 +2172,10 @@
|
|
|
2143
2172
|
surface: '#212121',
|
|
2144
2173
|
'surface-variant': '#BDBDBD',
|
|
2145
2174
|
'on-surface-variant': '#424242',
|
|
2146
|
-
primary: '#
|
|
2147
|
-
'primary-darken-1': '#
|
|
2148
|
-
secondary: '#
|
|
2149
|
-
'secondary-darken-1': '#
|
|
2175
|
+
primary: '#2196F3',
|
|
2176
|
+
'primary-darken-1': '#277CC1',
|
|
2177
|
+
secondary: '#54B6B2',
|
|
2178
|
+
'secondary-darken-1': '#48A9A6',
|
|
2150
2179
|
error: '#CF6679',
|
|
2151
2180
|
info: '#2196F3',
|
|
2152
2181
|
success: '#4CAF50',
|
|
@@ -2631,7 +2660,7 @@
|
|
|
2631
2660
|
// Types
|
|
2632
2661
|
|
|
2633
2662
|
const makeVDialogTransitionProps = propsFactory({
|
|
2634
|
-
target: Object
|
|
2663
|
+
target: [Object, Array]
|
|
2635
2664
|
}, 'v-dialog-transition');
|
|
2636
2665
|
const VDialogTransition = genericComponent()({
|
|
2637
2666
|
name: 'VDialogTransition',
|
|
@@ -2733,7 +2762,7 @@
|
|
|
2733
2762
|
return els && [...els];
|
|
2734
2763
|
}
|
|
2735
2764
|
function getDimensions(target, el) {
|
|
2736
|
-
const targetBox = target
|
|
2765
|
+
const targetBox = getTargetBox(target);
|
|
2737
2766
|
const elBox = nullifyTransforms(el);
|
|
2738
2767
|
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
2739
2768
|
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
@@ -2979,6 +3008,10 @@
|
|
|
2979
3008
|
const makeVImgProps = propsFactory({
|
|
2980
3009
|
alt: String,
|
|
2981
3010
|
cover: Boolean,
|
|
3011
|
+
draggable: {
|
|
3012
|
+
type: [Boolean, String],
|
|
3013
|
+
default: undefined
|
|
3014
|
+
},
|
|
2982
3015
|
eager: Boolean,
|
|
2983
3016
|
gradient: String,
|
|
2984
3017
|
lazySrc: String,
|
|
@@ -2997,6 +3030,8 @@
|
|
|
2997
3030
|
type: [String, Object],
|
|
2998
3031
|
default: ''
|
|
2999
3032
|
},
|
|
3033
|
+
crossorigin: String,
|
|
3034
|
+
referrerpolicy: String,
|
|
3000
3035
|
srcset: String,
|
|
3001
3036
|
...makeVResponsiveProps(),
|
|
3002
3037
|
...makeComponentProps(),
|
|
@@ -3121,6 +3156,9 @@
|
|
|
3121
3156
|
"src": normalisedSrc.value.src,
|
|
3122
3157
|
"srcset": normalisedSrc.value.srcset,
|
|
3123
3158
|
"alt": props.alt,
|
|
3159
|
+
"crossorigin": props.crossorigin,
|
|
3160
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3161
|
+
"draggable": props.draggable,
|
|
3124
3162
|
"sizes": props.sizes,
|
|
3125
3163
|
"ref": image,
|
|
3126
3164
|
"onLoad": onLoad,
|
|
@@ -3142,7 +3180,10 @@
|
|
|
3142
3180
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createVNode("img", {
|
|
3143
3181
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
3144
3182
|
"src": normalisedSrc.value.lazySrc,
|
|
3145
|
-
"alt": props.alt
|
|
3183
|
+
"alt": props.alt,
|
|
3184
|
+
"crossorigin": props.crossorigin,
|
|
3185
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3186
|
+
"draggable": props.draggable
|
|
3146
3187
|
}, null)]
|
|
3147
3188
|
});
|
|
3148
3189
|
const __placeholder = () => {
|
|
@@ -4161,7 +4202,8 @@
|
|
|
4161
4202
|
file: 'mdi-paperclip',
|
|
4162
4203
|
plus: 'mdi-plus',
|
|
4163
4204
|
minus: 'mdi-minus',
|
|
4164
|
-
calendar: 'mdi-calendar'
|
|
4205
|
+
calendar: 'mdi-calendar',
|
|
4206
|
+
eyeDropper: 'mdi-eyedropper'
|
|
4165
4207
|
};
|
|
4166
4208
|
const mdi = {
|
|
4167
4209
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -5751,6 +5793,7 @@
|
|
|
5751
5793
|
|
|
5752
5794
|
const makeVSelectionControlProps = propsFactory({
|
|
5753
5795
|
label: String,
|
|
5796
|
+
baseColor: String,
|
|
5754
5797
|
trueValue: null,
|
|
5755
5798
|
falseValue: null,
|
|
5756
5799
|
value: null,
|
|
@@ -5789,7 +5832,8 @@
|
|
|
5789
5832
|
textColorClasses,
|
|
5790
5833
|
textColorStyles
|
|
5791
5834
|
} = useTextColor(vue.computed(() => {
|
|
5792
|
-
|
|
5835
|
+
if (props.error || props.disabled) return undefined;
|
|
5836
|
+
return model.value ? props.color : props.baseColor;
|
|
5793
5837
|
}));
|
|
5794
5838
|
const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5795
5839
|
return {
|
|
@@ -5907,7 +5951,8 @@
|
|
|
5907
5951
|
"icon": icon.value
|
|
5908
5952
|
}, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
|
|
5909
5953
|
"for": id.value,
|
|
5910
|
-
"clickable": true
|
|
5954
|
+
"clickable": true,
|
|
5955
|
+
"onClick": e => e.stopPropagation()
|
|
5911
5956
|
}, {
|
|
5912
5957
|
default: () => [label]
|
|
5913
5958
|
})]);
|
|
@@ -5956,16 +6001,19 @@
|
|
|
5956
6001
|
const trueIcon = vue.computed(() => {
|
|
5957
6002
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
5958
6003
|
});
|
|
5959
|
-
useRender(() =>
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
6004
|
+
useRender(() => {
|
|
6005
|
+
const controlProps = omit(VSelectionControl.filterProps(props)[0], ['modelValue']);
|
|
6006
|
+
return vue.createVNode(VSelectionControl, vue.mergeProps(controlProps, {
|
|
6007
|
+
"modelValue": model.value,
|
|
6008
|
+
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6009
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6010
|
+
"style": props.style,
|
|
6011
|
+
"type": "checkbox",
|
|
6012
|
+
"falseIcon": falseIcon.value,
|
|
6013
|
+
"trueIcon": trueIcon.value,
|
|
6014
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
6015
|
+
}), slots);
|
|
6016
|
+
});
|
|
5969
6017
|
return {};
|
|
5970
6018
|
}
|
|
5971
6019
|
});
|
|
@@ -6529,12 +6577,12 @@
|
|
|
6529
6577
|
const uid = getUid();
|
|
6530
6578
|
const id = vue.computed(() => props.id || `checkbox-${uid}`);
|
|
6531
6579
|
useRender(() => {
|
|
6532
|
-
const [
|
|
6580
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6533
6581
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6534
6582
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6535
6583
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6536
6584
|
"class": ['v-checkbox', props.class]
|
|
6537
|
-
},
|
|
6585
|
+
}, rootAttrs, inputProps, {
|
|
6538
6586
|
"modelValue": model.value,
|
|
6539
6587
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6540
6588
|
"id": id.value,
|
|
@@ -6572,6 +6620,7 @@
|
|
|
6572
6620
|
end: Boolean,
|
|
6573
6621
|
icon: IconValue,
|
|
6574
6622
|
image: String,
|
|
6623
|
+
text: String,
|
|
6575
6624
|
...makeComponentProps(),
|
|
6576
6625
|
...makeDensityProps(),
|
|
6577
6626
|
...makeRoundedProps(),
|
|
@@ -6622,7 +6671,7 @@
|
|
|
6622
6671
|
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
6623
6672
|
"key": "icon",
|
|
6624
6673
|
"icon": props.icon
|
|
6625
|
-
}, null) : slots.default?.(), genOverlays(false, 'v-avatar')]
|
|
6674
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6626
6675
|
}));
|
|
6627
6676
|
return {};
|
|
6628
6677
|
}
|
|
@@ -8403,7 +8452,7 @@
|
|
|
8403
8452
|
return contentBox;
|
|
8404
8453
|
}
|
|
8405
8454
|
function connectedLocationStrategy(data, props, contentStyles) {
|
|
8406
|
-
const activatorFixed = isFixedPosition(data.
|
|
8455
|
+
const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);
|
|
8407
8456
|
if (activatorFixed) {
|
|
8408
8457
|
Object.assign(contentStyles.value, {
|
|
8409
8458
|
position: 'fixed',
|
|
@@ -8452,11 +8501,11 @@
|
|
|
8452
8501
|
const observer = new ResizeObserver(() => {
|
|
8453
8502
|
if (observe) updateLocation();
|
|
8454
8503
|
});
|
|
8455
|
-
vue.watch([data.
|
|
8456
|
-
let [
|
|
8457
|
-
let [
|
|
8458
|
-
if (
|
|
8459
|
-
if (
|
|
8504
|
+
vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
8505
|
+
let [newTarget, newContentEl] = _ref;
|
|
8506
|
+
let [oldTarget, oldContentEl] = _ref2;
|
|
8507
|
+
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
|
8508
|
+
if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);
|
|
8460
8509
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
8461
8510
|
if (newContentEl) observer.observe(newContentEl);
|
|
8462
8511
|
}, {
|
|
@@ -8472,8 +8521,8 @@
|
|
|
8472
8521
|
requestAnimationFrame(() => {
|
|
8473
8522
|
requestAnimationFrame(() => observe = true);
|
|
8474
8523
|
});
|
|
8475
|
-
if (!data.
|
|
8476
|
-
const targetBox = data.
|
|
8524
|
+
if (!data.target.value || !data.contentEl.value) return;
|
|
8525
|
+
const targetBox = getTargetBox(data.target.value);
|
|
8477
8526
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8478
8527
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8479
8528
|
const viewportMargin = 12;
|
|
@@ -8760,11 +8809,11 @@
|
|
|
8760
8809
|
function onScroll(e) {
|
|
8761
8810
|
data.isActive.value = false;
|
|
8762
8811
|
}
|
|
8763
|
-
bindScroll(data.
|
|
8812
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
|
|
8764
8813
|
}
|
|
8765
8814
|
function blockScrollStrategy(data, props) {
|
|
8766
8815
|
const offsetParent = data.root.value?.offsetParent;
|
|
8767
|
-
const scrollElements = [...new Set([...getScrollParents(data.
|
|
8816
|
+
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'));
|
|
8768
8817
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
8769
8818
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
8770
8819
|
if (scrollableParent) {
|
|
@@ -8808,7 +8857,7 @@
|
|
|
8808
8857
|
}
|
|
8809
8858
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
|
8810
8859
|
scope.run(() => {
|
|
8811
|
-
bindScroll(data.
|
|
8860
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
|
|
8812
8861
|
if (slow) {
|
|
8813
8862
|
// If the position calculation is slow,
|
|
8814
8863
|
// defer updates until scrolling is finished.
|
|
@@ -8889,6 +8938,7 @@
|
|
|
8889
8938
|
// Types
|
|
8890
8939
|
|
|
8891
8940
|
const makeActivatorProps = propsFactory({
|
|
8941
|
+
target: [String, Object],
|
|
8892
8942
|
activator: [String, Object],
|
|
8893
8943
|
activatorProps: {
|
|
8894
8944
|
type: Object,
|
|
@@ -8911,6 +8961,7 @@
|
|
|
8911
8961
|
isActive,
|
|
8912
8962
|
isTop
|
|
8913
8963
|
} = _ref;
|
|
8964
|
+
const vm = getCurrentInstance('useActivator');
|
|
8914
8965
|
const activatorEl = vue.ref();
|
|
8915
8966
|
let isHovered = false;
|
|
8916
8967
|
let isFocused = false;
|
|
@@ -8928,10 +8979,14 @@
|
|
|
8928
8979
|
isActive.value = value;
|
|
8929
8980
|
}
|
|
8930
8981
|
});
|
|
8982
|
+
const cursorTarget = vue.ref();
|
|
8931
8983
|
const availableEvents = {
|
|
8932
8984
|
onClick: e => {
|
|
8933
8985
|
e.stopPropagation();
|
|
8934
8986
|
activatorEl.value = e.currentTarget || e.target;
|
|
8987
|
+
if (!isActive.value) {
|
|
8988
|
+
cursorTarget.value = [e.clientX, e.clientY];
|
|
8989
|
+
}
|
|
8935
8990
|
isActive.value = !isActive.value;
|
|
8936
8991
|
},
|
|
8937
8992
|
onMouseenter: e => {
|
|
@@ -9025,6 +9080,15 @@
|
|
|
9025
9080
|
isActive.value = false;
|
|
9026
9081
|
}
|
|
9027
9082
|
});
|
|
9083
|
+
vue.watch(isActive, val => {
|
|
9084
|
+
if (!val) {
|
|
9085
|
+
setTimeout(() => {
|
|
9086
|
+
cursorTarget.value = undefined;
|
|
9087
|
+
});
|
|
9088
|
+
}
|
|
9089
|
+
}, {
|
|
9090
|
+
flush: 'post'
|
|
9091
|
+
});
|
|
9028
9092
|
const activatorRef = vue.ref();
|
|
9029
9093
|
vue.watchEffect(() => {
|
|
9030
9094
|
if (!activatorRef.value) return;
|
|
@@ -9032,7 +9096,15 @@
|
|
|
9032
9096
|
activatorEl.value = refElement(activatorRef.value);
|
|
9033
9097
|
});
|
|
9034
9098
|
});
|
|
9035
|
-
const
|
|
9099
|
+
const targetRef = vue.ref();
|
|
9100
|
+
const target = vue.computed(() => {
|
|
9101
|
+
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
9102
|
+
if (targetRef.value) return refElement(targetRef.value);
|
|
9103
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
9104
|
+
});
|
|
9105
|
+
const targetEl = vue.computed(() => {
|
|
9106
|
+
return Array.isArray(target.value) ? undefined : target.value;
|
|
9107
|
+
});
|
|
9036
9108
|
let scope;
|
|
9037
9109
|
vue.watch(() => !!props.activator, val => {
|
|
9038
9110
|
if (val && IN_BROWSER) {
|
|
@@ -9056,6 +9128,9 @@
|
|
|
9056
9128
|
return {
|
|
9057
9129
|
activatorEl,
|
|
9058
9130
|
activatorRef,
|
|
9131
|
+
target,
|
|
9132
|
+
targetEl,
|
|
9133
|
+
targetRef,
|
|
9059
9134
|
activatorEvents,
|
|
9060
9135
|
contentEvents,
|
|
9061
9136
|
scrimEvents
|
|
@@ -9097,31 +9172,34 @@
|
|
|
9097
9172
|
}
|
|
9098
9173
|
function getActivator() {
|
|
9099
9174
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
9100
|
-
|
|
9101
|
-
if (selector) {
|
|
9102
|
-
if (selector === 'parent') {
|
|
9103
|
-
let el = vm?.proxy?.$el?.parentNode;
|
|
9104
|
-
while (el.hasAttribute('data-no-activator')) {
|
|
9105
|
-
el = el.parentNode;
|
|
9106
|
-
}
|
|
9107
|
-
activator = el;
|
|
9108
|
-
} else if (typeof selector === 'string') {
|
|
9109
|
-
// Selector
|
|
9110
|
-
activator = document.querySelector(selector);
|
|
9111
|
-
} else if ('$el' in selector) {
|
|
9112
|
-
// Component (ref)
|
|
9113
|
-
activator = selector.$el;
|
|
9114
|
-
} else {
|
|
9115
|
-
// HTMLElement | Element
|
|
9116
|
-
activator = selector;
|
|
9117
|
-
}
|
|
9118
|
-
}
|
|
9175
|
+
const activator = getTarget(selector, vm);
|
|
9119
9176
|
|
|
9120
9177
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
9121
|
-
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator :
|
|
9178
|
+
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
9122
9179
|
return activatorEl.value;
|
|
9123
9180
|
}
|
|
9124
9181
|
}
|
|
9182
|
+
function getTarget(selector, vm) {
|
|
9183
|
+
if (!selector) return;
|
|
9184
|
+
let target;
|
|
9185
|
+
if (selector === 'parent') {
|
|
9186
|
+
let el = vm?.proxy?.$el?.parentNode;
|
|
9187
|
+
while (el.hasAttribute('data-no-activator')) {
|
|
9188
|
+
el = el.parentNode;
|
|
9189
|
+
}
|
|
9190
|
+
target = el;
|
|
9191
|
+
} else if (typeof selector === 'string') {
|
|
9192
|
+
// Selector
|
|
9193
|
+
target = document.querySelector(selector);
|
|
9194
|
+
} else if ('$el' in selector) {
|
|
9195
|
+
// Component (ref)
|
|
9196
|
+
target = selector.$el;
|
|
9197
|
+
} else {
|
|
9198
|
+
// HTMLElement | Element | [x, y]
|
|
9199
|
+
target = selector;
|
|
9200
|
+
}
|
|
9201
|
+
return target;
|
|
9202
|
+
}
|
|
9125
9203
|
|
|
9126
9204
|
// Utilities
|
|
9127
9205
|
|
|
@@ -9245,10 +9323,30 @@
|
|
|
9245
9323
|
ssr: !!ssr
|
|
9246
9324
|
};
|
|
9247
9325
|
}
|
|
9326
|
+
const makeDisplayProps = propsFactory({
|
|
9327
|
+
mobileBreakpoint: [Number, String]
|
|
9328
|
+
}, 'display');
|
|
9248
9329
|
function useDisplay() {
|
|
9330
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9331
|
+
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
9249
9332
|
const display = vue.inject(DisplaySymbol);
|
|
9250
9333
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
9251
|
-
|
|
9334
|
+
const mobile = vue.computed(() => {
|
|
9335
|
+
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
9336
|
+
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
9337
|
+
return display.width.value < breakpointValue;
|
|
9338
|
+
});
|
|
9339
|
+
const displayClasses = vue.computed(() => {
|
|
9340
|
+
if (!name) return {};
|
|
9341
|
+
return {
|
|
9342
|
+
[`${name}--mobile`]: mobile.value
|
|
9343
|
+
};
|
|
9344
|
+
});
|
|
9345
|
+
return {
|
|
9346
|
+
...display,
|
|
9347
|
+
displayClasses,
|
|
9348
|
+
mobile
|
|
9349
|
+
};
|
|
9252
9350
|
}
|
|
9253
9351
|
|
|
9254
9352
|
// Composables
|
|
@@ -9565,6 +9663,9 @@
|
|
|
9565
9663
|
const {
|
|
9566
9664
|
activatorEl,
|
|
9567
9665
|
activatorRef,
|
|
9666
|
+
target,
|
|
9667
|
+
targetEl,
|
|
9668
|
+
targetRef,
|
|
9568
9669
|
activatorEvents,
|
|
9569
9670
|
contentEvents,
|
|
9570
9671
|
scrimEvents
|
|
@@ -9590,13 +9691,13 @@
|
|
|
9590
9691
|
} = useLocationStrategies(props, {
|
|
9591
9692
|
isRtl,
|
|
9592
9693
|
contentEl,
|
|
9593
|
-
|
|
9694
|
+
target,
|
|
9594
9695
|
isActive
|
|
9595
9696
|
});
|
|
9596
9697
|
useScrollStrategies(props, {
|
|
9597
9698
|
root,
|
|
9598
9699
|
contentEl,
|
|
9599
|
-
|
|
9700
|
+
targetEl,
|
|
9600
9701
|
isActive,
|
|
9601
9702
|
updateLocation
|
|
9602
9703
|
});
|
|
@@ -9664,7 +9765,8 @@
|
|
|
9664
9765
|
useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
|
|
9665
9766
|
isActive: isActive.value,
|
|
9666
9767
|
props: vue.mergeProps({
|
|
9667
|
-
ref: activatorRef
|
|
9768
|
+
ref: activatorRef,
|
|
9769
|
+
targetRef
|
|
9668
9770
|
}, activatorEvents.value, props.activatorProps)
|
|
9669
9771
|
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
9670
9772
|
"disabled": !teleportTarget.value,
|
|
@@ -9687,7 +9789,7 @@
|
|
|
9687
9789
|
"appear": true,
|
|
9688
9790
|
"persisted": true,
|
|
9689
9791
|
"transition": props.transition,
|
|
9690
|
-
"target":
|
|
9792
|
+
"target": target.value,
|
|
9691
9793
|
"onAfterLeave": () => {
|
|
9692
9794
|
onAfterLeave();
|
|
9693
9795
|
emit('afterLeave');
|
|
@@ -9708,6 +9810,7 @@
|
|
|
9708
9810
|
})]));
|
|
9709
9811
|
return {
|
|
9710
9812
|
activatorEl,
|
|
9813
|
+
target,
|
|
9711
9814
|
animateClick,
|
|
9712
9815
|
contentEl,
|
|
9713
9816
|
globalTop,
|
|
@@ -11827,6 +11930,7 @@
|
|
|
11827
11930
|
...makeComponentProps(),
|
|
11828
11931
|
...makeDensityProps(),
|
|
11829
11932
|
...makeDimensionProps(),
|
|
11933
|
+
...makeDisplayProps(),
|
|
11830
11934
|
...makeElevationProps(),
|
|
11831
11935
|
...makeLocationProps(),
|
|
11832
11936
|
...makePositionProps(),
|
|
@@ -11848,8 +11952,9 @@
|
|
|
11848
11952
|
densityClasses
|
|
11849
11953
|
} = useDensity(props);
|
|
11850
11954
|
const {
|
|
11955
|
+
displayClasses,
|
|
11851
11956
|
mobile
|
|
11852
|
-
} = useDisplay();
|
|
11957
|
+
} = useDisplay(props);
|
|
11853
11958
|
const {
|
|
11854
11959
|
dimensionStyles
|
|
11855
11960
|
} = useDimension(props);
|
|
@@ -11885,7 +11990,7 @@
|
|
|
11885
11990
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
11886
11991
|
'v-banner--sticky': props.sticky,
|
|
11887
11992
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
11888
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11993
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11889
11994
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
11890
11995
|
"role": "banner"
|
|
11891
11996
|
}, {
|
|
@@ -12192,12 +12297,17 @@
|
|
|
12192
12297
|
item,
|
|
12193
12298
|
raw
|
|
12194
12299
|
} = _ref2;
|
|
12195
|
-
return vue.createVNode(vue.Fragment, null, [
|
|
12196
|
-
|
|
12300
|
+
return vue.createVNode(vue.Fragment, null, [slots.item?.({
|
|
12301
|
+
item,
|
|
12302
|
+
index
|
|
12303
|
+
}) ?? vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
|
12304
|
+
"key": index,
|
|
12197
12305
|
"disabled": index >= array.length - 1
|
|
12198
|
-
}, item
|
|
12306
|
+
}, typeof item === 'string' ? {
|
|
12307
|
+
title: item
|
|
12308
|
+
} : item), {
|
|
12199
12309
|
default: slots.title ? () => slots.title?.({
|
|
12200
|
-
item
|
|
12310
|
+
item,
|
|
12201
12311
|
index
|
|
12202
12312
|
}) : undefined
|
|
12203
12313
|
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
@@ -13535,7 +13645,11 @@
|
|
|
13535
13645
|
...makeRoundedProps(),
|
|
13536
13646
|
...makeElevationProps({
|
|
13537
13647
|
elevation: 2
|
|
13538
|
-
})
|
|
13648
|
+
}),
|
|
13649
|
+
ripple: {
|
|
13650
|
+
type: Boolean,
|
|
13651
|
+
default: true
|
|
13652
|
+
}
|
|
13539
13653
|
}, 'Slider');
|
|
13540
13654
|
const useSteps = props => {
|
|
13541
13655
|
const min = vue.computed(() => parseFloat(props.min));
|
|
@@ -14142,7 +14256,8 @@
|
|
|
14142
14256
|
"position": trackStop.value,
|
|
14143
14257
|
"elevation": props.elevation,
|
|
14144
14258
|
"onFocus": focus,
|
|
14145
|
-
"onBlur": blur
|
|
14259
|
+
"onBlur": blur,
|
|
14260
|
+
"ripple": props.ripple
|
|
14146
14261
|
}, {
|
|
14147
14262
|
'thumb-label': slots['thumb-label']
|
|
14148
14263
|
})]);
|
|
@@ -14173,12 +14288,36 @@
|
|
|
14173
14288
|
let {
|
|
14174
14289
|
emit
|
|
14175
14290
|
} = _ref;
|
|
14291
|
+
const abortController = new AbortController();
|
|
14292
|
+
vue.onUnmounted(() => abortController.abort());
|
|
14293
|
+
async function openEyeDropper() {
|
|
14294
|
+
if (!SUPPORTS_EYE_DROPPER) return;
|
|
14295
|
+
const eyeDropper = new window.EyeDropper();
|
|
14296
|
+
try {
|
|
14297
|
+
const result = await eyeDropper.open({
|
|
14298
|
+
signal: abortController.signal
|
|
14299
|
+
});
|
|
14300
|
+
const colorHexValue = HexToHSV(result.sRGBHex);
|
|
14301
|
+
emit('update:color', {
|
|
14302
|
+
...(props.color ?? nullColor),
|
|
14303
|
+
...colorHexValue
|
|
14304
|
+
});
|
|
14305
|
+
} catch (e) {}
|
|
14306
|
+
}
|
|
14176
14307
|
useRender(() => vue.createVNode("div", {
|
|
14177
14308
|
"class": ['v-color-picker-preview', {
|
|
14178
14309
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
14179
14310
|
}, props.class],
|
|
14180
14311
|
"style": props.style
|
|
14181
|
-
}, [vue.createVNode("div", {
|
|
14312
|
+
}, [SUPPORTS_EYE_DROPPER && vue.createVNode("div", {
|
|
14313
|
+
"class": "v-color-picker-preview__eye-dropper",
|
|
14314
|
+
"key": "eyeDropper"
|
|
14315
|
+
}, [vue.createVNode(VBtn, {
|
|
14316
|
+
"onClick": openEyeDropper,
|
|
14317
|
+
"icon": "$eyeDropper",
|
|
14318
|
+
"variant": "plain",
|
|
14319
|
+
"density": "comfortable"
|
|
14320
|
+
}, null)]), vue.createVNode("div", {
|
|
14182
14321
|
"class": "v-color-picker-preview__dot"
|
|
14183
14322
|
}, [vue.createVNode("div", {
|
|
14184
14323
|
"style": {
|
|
@@ -16849,6 +16988,7 @@
|
|
|
16849
16988
|
sticky: Boolean,
|
|
16850
16989
|
...makeBorderProps(),
|
|
16851
16990
|
...makeComponentProps(),
|
|
16991
|
+
...makeDisplayProps(),
|
|
16852
16992
|
...makeElevationProps(),
|
|
16853
16993
|
...makeLayoutItemProps(),
|
|
16854
16994
|
...makeRoundedProps(),
|
|
@@ -16887,8 +17027,9 @@
|
|
|
16887
17027
|
elevationClasses
|
|
16888
17028
|
} = useElevation(props);
|
|
16889
17029
|
const {
|
|
17030
|
+
displayClasses,
|
|
16890
17031
|
mobile
|
|
16891
|
-
} = useDisplay();
|
|
17032
|
+
} = useDisplay(props);
|
|
16892
17033
|
const {
|
|
16893
17034
|
roundedClasses
|
|
16894
17035
|
} = useRounded(props);
|
|
@@ -16999,7 +17140,7 @@
|
|
|
16999
17140
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
17000
17141
|
'v-navigation-drawer--active': isActive.value,
|
|
17001
17142
|
'v-navigation-drawer--sticky': isSticky.value
|
|
17002
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17143
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17003
17144
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
17004
17145
|
}, scopeId, attrs), {
|
|
17005
17146
|
default: () => [hasImage && vue.createVNode("div", {
|
|
@@ -17527,7 +17668,7 @@
|
|
|
17527
17668
|
const id = vue.computed(() => props.id || `radio-group-${uid}`);
|
|
17528
17669
|
const model = useProxiedModel(props, 'modelValue');
|
|
17529
17670
|
useRender(() => {
|
|
17530
|
-
const [
|
|
17671
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17531
17672
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
17532
17673
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17533
17674
|
const label = slots.label ? slots.label({
|
|
@@ -17539,7 +17680,7 @@
|
|
|
17539
17680
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
17540
17681
|
"class": ['v-radio-group', props.class],
|
|
17541
17682
|
"style": props.style
|
|
17542
|
-
},
|
|
17683
|
+
}, rootAttrs, inputProps, {
|
|
17543
17684
|
"modelValue": model.value,
|
|
17544
17685
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17545
17686
|
"id": id.value
|
|
@@ -17747,7 +17888,8 @@
|
|
|
17747
17888
|
},
|
|
17748
17889
|
"min": min.value,
|
|
17749
17890
|
"max": model.value[1],
|
|
17750
|
-
"position": trackStart.value
|
|
17891
|
+
"position": trackStart.value,
|
|
17892
|
+
"ripple": props.ripple
|
|
17751
17893
|
}, {
|
|
17752
17894
|
'thumb-label': slots['thumb-label']
|
|
17753
17895
|
}), vue.createVNode(VSliderThumb, {
|
|
@@ -17775,7 +17917,8 @@
|
|
|
17775
17917
|
},
|
|
17776
17918
|
"min": model.value[0],
|
|
17777
17919
|
"max": max.value,
|
|
17778
|
-
"position": trackStop.value
|
|
17920
|
+
"position": trackStop.value,
|
|
17921
|
+
"ripple": props.ripple
|
|
17779
17922
|
}, {
|
|
17780
17923
|
'thumb-label': slots['thumb-label']
|
|
17781
17924
|
})]);
|
|
@@ -18049,6 +18192,7 @@
|
|
|
18049
18192
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
18050
18193
|
},
|
|
18051
18194
|
...makeComponentProps(),
|
|
18195
|
+
...makeDisplayProps(),
|
|
18052
18196
|
...makeTagProps(),
|
|
18053
18197
|
...makeGroupProps({
|
|
18054
18198
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -18068,8 +18212,9 @@
|
|
|
18068
18212
|
isRtl
|
|
18069
18213
|
} = useRtl();
|
|
18070
18214
|
const {
|
|
18215
|
+
displayClasses,
|
|
18071
18216
|
mobile
|
|
18072
|
-
} = useDisplay();
|
|
18217
|
+
} = useDisplay(props);
|
|
18073
18218
|
const group = useGroup(props, props.symbol);
|
|
18074
18219
|
const isOverflowing = vue.shallowRef(false);
|
|
18075
18220
|
const scrollOffset = vue.shallowRef(0);
|
|
@@ -18289,7 +18434,7 @@
|
|
|
18289
18434
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
18290
18435
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
18291
18436
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
18292
|
-
}, props.class],
|
|
18437
|
+
}, displayClasses.value, props.class],
|
|
18293
18438
|
"style": props.style,
|
|
18294
18439
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
18295
18440
|
"onFocus": onFocus
|
|
@@ -18516,6 +18661,7 @@
|
|
|
18516
18661
|
focus,
|
|
18517
18662
|
blur
|
|
18518
18663
|
} = useFocus(props);
|
|
18664
|
+
const control = vue.ref();
|
|
18519
18665
|
const loaderColor = vue.computed(() => {
|
|
18520
18666
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
18521
18667
|
});
|
|
@@ -18526,16 +18672,15 @@
|
|
|
18526
18672
|
indeterminate.value = false;
|
|
18527
18673
|
}
|
|
18528
18674
|
}
|
|
18675
|
+
function onTrackClick(e) {
|
|
18676
|
+
e.stopPropagation();
|
|
18677
|
+
e.preventDefault();
|
|
18678
|
+
control.value?.input?.click();
|
|
18679
|
+
}
|
|
18529
18680
|
useRender(() => {
|
|
18530
|
-
const [
|
|
18681
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
18531
18682
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
18532
18683
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
18533
|
-
const control = vue.ref();
|
|
18534
|
-
function onClick(e) {
|
|
18535
|
-
e.stopPropagation();
|
|
18536
|
-
e.preventDefault();
|
|
18537
|
-
control.value?.input?.click();
|
|
18538
|
-
}
|
|
18539
18684
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
18540
18685
|
"class": ['v-switch', {
|
|
18541
18686
|
'v-switch--inset': props.inset
|
|
@@ -18543,7 +18688,7 @@
|
|
|
18543
18688
|
'v-switch--indeterminate': indeterminate.value
|
|
18544
18689
|
}, loaderClasses.value, props.class],
|
|
18545
18690
|
"style": props.style
|
|
18546
|
-
},
|
|
18691
|
+
}, rootAttrs, inputProps, {
|
|
18547
18692
|
"id": id.value,
|
|
18548
18693
|
"focused": isFocused.value
|
|
18549
18694
|
}), {
|
|
@@ -18573,7 +18718,7 @@
|
|
|
18573
18718
|
...slots,
|
|
18574
18719
|
default: () => vue.createVNode("div", {
|
|
18575
18720
|
"class": "v-switch__track",
|
|
18576
|
-
"onClick":
|
|
18721
|
+
"onClick": onTrackClick
|
|
18577
18722
|
}, null),
|
|
18578
18723
|
input: _ref3 => {
|
|
18579
18724
|
let {
|
|
@@ -24435,7 +24580,7 @@
|
|
|
24435
24580
|
date
|
|
24436
24581
|
};
|
|
24437
24582
|
}
|
|
24438
|
-
const version$1 = "3.
|
|
24583
|
+
const version$1 = "3.4.0-alpha.0";
|
|
24439
24584
|
createVuetify$1.version = version$1;
|
|
24440
24585
|
|
|
24441
24586
|
// Vue's inject() can only be used in setup
|
|
@@ -24449,7 +24594,7 @@
|
|
|
24449
24594
|
|
|
24450
24595
|
/* eslint-disable local-rules/sort-imports */
|
|
24451
24596
|
|
|
24452
|
-
const version = "3.
|
|
24597
|
+
const version = "3.4.0-alpha.0";
|
|
24453
24598
|
|
|
24454
24599
|
/* eslint-disable local-rules/sort-imports */
|
|
24455
24600
|
|