vuetify 3.3.2 → 3.3.3
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 +8 -8
- package/dist/json/importMap.json +4 -4
- package/dist/json/web-types.json +26 -15
- package/dist/vuetify-labs.css +53 -61
- package/dist/vuetify-labs.d.ts +253 -119
- package/dist/vuetify-labs.esm.js +196 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +195 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -8
- package/dist/vuetify.d.ts +254 -120
- package/dist/vuetify.esm.js +191 -78
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +190 -77
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +780 -771
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -2
- package/lib/blueprints/md1.d.mts +2 -2
- package/lib/blueprints/md2.d.mts +2 -2
- package/lib/blueprints/md3.d.mts +2 -2
- package/lib/components/VAppBar/index.d.mts +24 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -11
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +24 -8
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +44 -28
- package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +7 -1
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +48 -32
- package/lib/components/VCombobox/VCombobox.mjs +16 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +56 -24
- package/lib/components/VField/VField.css +1 -0
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +1 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +24 -8
- package/lib/components/VMenu/VMenu.mjs +29 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +7 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +29 -35
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -10
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +2 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +1 -0
- package/lib/components/VTabs/VTabs.sass +1 -0
- package/lib/components/VTabs/index.d.mts +24 -8
- package/lib/components/VTextarea/VTextarea.css +7 -7
- package/lib/components/VTextarea/VTextarea.sass +9 -9
- package/lib/components/index.d.mts +251 -117
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs +35 -35
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDataTable/VDataTable.css +4 -14
- package/lib/labs/VDataTable/VDataTable.sass +6 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -2
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/util/bindProps.mjs +49 -0
- package/lib/util/bindProps.mjs.map +1 -0
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.3
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives,
|
|
7
|
+
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
|
|
8
8
|
|
|
9
9
|
// Types
|
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
|
@@ -294,6 +294,15 @@ function mergeDeep() {
|
|
|
294
294
|
}
|
|
295
295
|
return out;
|
|
296
296
|
}
|
|
297
|
+
function flattenFragments(nodes) {
|
|
298
|
+
return nodes.map(node => {
|
|
299
|
+
if (node.type === Fragment) {
|
|
300
|
+
return flattenFragments(node.children);
|
|
301
|
+
} else {
|
|
302
|
+
return node;
|
|
303
|
+
}
|
|
304
|
+
}).flat();
|
|
305
|
+
}
|
|
297
306
|
function toKebabCase() {
|
|
298
307
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
299
308
|
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
|
@@ -373,6 +382,9 @@ function includes(arr, val) {
|
|
|
373
382
|
}
|
|
374
383
|
const onRE = /^on[^a-z]/;
|
|
375
384
|
const isOn = key => onRE.test(key);
|
|
385
|
+
function eventName(propName) {
|
|
386
|
+
return propName[2].toLowerCase() + propName.slice(3);
|
|
387
|
+
}
|
|
376
388
|
const EventProp = () => [Function, Array];
|
|
377
389
|
function hasEvent(props, name) {
|
|
378
390
|
name = 'on' + capitalize(name);
|
|
@@ -571,6 +583,54 @@ function animate(el, keyframes, options) {
|
|
|
571
583
|
return animation;
|
|
572
584
|
}
|
|
573
585
|
|
|
586
|
+
// Utilities
|
|
587
|
+
const handlers = new WeakMap();
|
|
588
|
+
function bindProps(el, props) {
|
|
589
|
+
Object.keys(props).forEach(k => {
|
|
590
|
+
if (isOn(k)) {
|
|
591
|
+
const name = eventName(k);
|
|
592
|
+
const handler = handlers.get(el);
|
|
593
|
+
if (props[k] == null) {
|
|
594
|
+
handler?.forEach(v => {
|
|
595
|
+
const [n, fn] = v;
|
|
596
|
+
if (n === name) {
|
|
597
|
+
el.removeEventListener(name, fn);
|
|
598
|
+
handler.delete(v);
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
} else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {
|
|
602
|
+
el.addEventListener(name, props[k]);
|
|
603
|
+
const _handler = handler || new Set();
|
|
604
|
+
_handler.add([name, props[k]]);
|
|
605
|
+
if (!handlers.has(el)) handlers.set(el, _handler);
|
|
606
|
+
}
|
|
607
|
+
} else {
|
|
608
|
+
if (props[k] == null) {
|
|
609
|
+
el.removeAttribute(k);
|
|
610
|
+
} else {
|
|
611
|
+
el.setAttribute(k, props[k]);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
function unbindProps(el, props) {
|
|
617
|
+
Object.keys(props).forEach(k => {
|
|
618
|
+
if (isOn(k)) {
|
|
619
|
+
const name = eventName(k);
|
|
620
|
+
const handler = handlers.get(el);
|
|
621
|
+
handler?.forEach(v => {
|
|
622
|
+
const [n, fn] = v;
|
|
623
|
+
if (n === name) {
|
|
624
|
+
el.removeEventListener(name, fn);
|
|
625
|
+
handler.delete(v);
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
} else {
|
|
629
|
+
el.removeAttribute(k);
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
|
|
574
634
|
/* eslint-disable no-console */
|
|
575
635
|
|
|
576
636
|
function consoleWarn(message) {
|
|
@@ -2154,6 +2214,7 @@ function createTheme(options) {
|
|
|
2154
2214
|
};
|
|
2155
2215
|
}
|
|
2156
2216
|
function install(app) {
|
|
2217
|
+
if (parsedOptions.isDisabled) return;
|
|
2157
2218
|
const head = app._context.provides.usehead;
|
|
2158
2219
|
if (head) {
|
|
2159
2220
|
if (head.push) {
|
|
@@ -2175,7 +2236,6 @@ function createTheme(options) {
|
|
|
2175
2236
|
immediate: true
|
|
2176
2237
|
});
|
|
2177
2238
|
function updateStyles() {
|
|
2178
|
-
if (parsedOptions.isDisabled) return;
|
|
2179
2239
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
2180
2240
|
const el = document.createElement('style');
|
|
2181
2241
|
el.type = 'text/css';
|
|
@@ -4262,7 +4322,7 @@ const VIcon = genericComponent()({
|
|
|
4262
4322
|
useRender(() => {
|
|
4263
4323
|
const slotValue = slots.default?.();
|
|
4264
4324
|
if (slotValue) {
|
|
4265
|
-
slotIcon.value = slotValue.filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4325
|
+
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4266
4326
|
}
|
|
4267
4327
|
return createVNode(iconData.value.component, {
|
|
4268
4328
|
"tag": props.tag,
|
|
@@ -5099,7 +5159,7 @@ const makeVBtnProps = propsFactory({
|
|
|
5099
5159
|
block: Boolean,
|
|
5100
5160
|
stacked: Boolean,
|
|
5101
5161
|
ripple: {
|
|
5102
|
-
type: Boolean,
|
|
5162
|
+
type: [Boolean, Object],
|
|
5103
5163
|
default: true
|
|
5104
5164
|
},
|
|
5105
5165
|
text: String,
|
|
@@ -6382,6 +6442,7 @@ const VCheckbox = genericComponent()({
|
|
|
6382
6442
|
inheritAttrs: false,
|
|
6383
6443
|
props: makeVCheckboxProps(),
|
|
6384
6444
|
emits: {
|
|
6445
|
+
'update:modelValue': value => true,
|
|
6385
6446
|
'update:focused': focused => true
|
|
6386
6447
|
},
|
|
6387
6448
|
setup(props, _ref) {
|
|
@@ -6389,6 +6450,7 @@ const VCheckbox = genericComponent()({
|
|
|
6389
6450
|
attrs,
|
|
6390
6451
|
slots
|
|
6391
6452
|
} = _ref;
|
|
6453
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
6392
6454
|
const {
|
|
6393
6455
|
isFocused,
|
|
6394
6456
|
focus,
|
|
@@ -6403,6 +6465,8 @@ const VCheckbox = genericComponent()({
|
|
|
6403
6465
|
return createVNode(VInput, mergeProps({
|
|
6404
6466
|
"class": ['v-checkbox', props.class]
|
|
6405
6467
|
}, inputAttrs, inputProps, {
|
|
6468
|
+
"modelValue": model.value,
|
|
6469
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6406
6470
|
"id": id.value,
|
|
6407
6471
|
"focused": isFocused.value,
|
|
6408
6472
|
"style": props.style
|
|
@@ -6421,6 +6485,8 @@ const VCheckbox = genericComponent()({
|
|
|
6421
6485
|
"disabled": isDisabled.value,
|
|
6422
6486
|
"readonly": isReadonly.value
|
|
6423
6487
|
}, controlAttrs, {
|
|
6488
|
+
"modelValue": model.value,
|
|
6489
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6424
6490
|
"onFocus": focus,
|
|
6425
6491
|
"onBlur": blur
|
|
6426
6492
|
}), slots);
|
|
@@ -6558,6 +6624,8 @@ const VChipGroup = genericComponent()({
|
|
|
6558
6624
|
}
|
|
6559
6625
|
});
|
|
6560
6626
|
|
|
6627
|
+
// Types
|
|
6628
|
+
|
|
6561
6629
|
const makeVChipProps = propsFactory({
|
|
6562
6630
|
activeClass: String,
|
|
6563
6631
|
appendAvatar: String,
|
|
@@ -6586,7 +6654,7 @@ const makeVChipProps = propsFactory({
|
|
|
6586
6654
|
prependAvatar: String,
|
|
6587
6655
|
prependIcon: IconValue,
|
|
6588
6656
|
ripple: {
|
|
6589
|
-
type: Boolean,
|
|
6657
|
+
type: [Boolean, Object],
|
|
6590
6658
|
default: true
|
|
6591
6659
|
},
|
|
6592
6660
|
text: String,
|
|
@@ -7402,7 +7470,7 @@ const makeVListItemProps = propsFactory({
|
|
|
7402
7470
|
prependAvatar: String,
|
|
7403
7471
|
prependIcon: IconValue,
|
|
7404
7472
|
ripple: {
|
|
7405
|
-
type: Boolean,
|
|
7473
|
+
type: [Boolean, Object],
|
|
7406
7474
|
default: true
|
|
7407
7475
|
},
|
|
7408
7476
|
subtitle: [String, Number, Boolean],
|
|
@@ -8775,29 +8843,29 @@ function useActivator(props, _ref) {
|
|
|
8775
8843
|
}
|
|
8776
8844
|
});
|
|
8777
8845
|
const availableEvents = {
|
|
8778
|
-
|
|
8846
|
+
onClick: e => {
|
|
8779
8847
|
e.stopPropagation();
|
|
8780
8848
|
activatorEl.value = e.currentTarget || e.target;
|
|
8781
8849
|
isActive.value = !isActive.value;
|
|
8782
8850
|
},
|
|
8783
|
-
|
|
8851
|
+
onMouseenter: e => {
|
|
8784
8852
|
if (e.sourceCapabilities?.firesTouchEvents) return;
|
|
8785
8853
|
isHovered = true;
|
|
8786
8854
|
activatorEl.value = e.currentTarget || e.target;
|
|
8787
8855
|
runOpenDelay();
|
|
8788
8856
|
},
|
|
8789
|
-
|
|
8857
|
+
onMouseleave: e => {
|
|
8790
8858
|
isHovered = false;
|
|
8791
8859
|
runCloseDelay();
|
|
8792
8860
|
},
|
|
8793
|
-
|
|
8861
|
+
onFocus: e => {
|
|
8794
8862
|
if (SUPPORTS_FOCUS_VISIBLE && !e.target.matches(':focus-visible')) return;
|
|
8795
8863
|
isFocused = true;
|
|
8796
8864
|
e.stopPropagation();
|
|
8797
8865
|
activatorEl.value = e.currentTarget || e.target;
|
|
8798
8866
|
runOpenDelay();
|
|
8799
8867
|
},
|
|
8800
|
-
|
|
8868
|
+
onBlur: e => {
|
|
8801
8869
|
isFocused = false;
|
|
8802
8870
|
e.stopPropagation();
|
|
8803
8871
|
runCloseDelay();
|
|
@@ -8806,33 +8874,43 @@ function useActivator(props, _ref) {
|
|
|
8806
8874
|
const activatorEvents = computed(() => {
|
|
8807
8875
|
const events = {};
|
|
8808
8876
|
if (openOnClick.value) {
|
|
8809
|
-
events.
|
|
8877
|
+
events.onClick = availableEvents.onClick;
|
|
8810
8878
|
}
|
|
8811
8879
|
if (props.openOnHover) {
|
|
8812
|
-
events.
|
|
8813
|
-
events.
|
|
8880
|
+
events.onMouseenter = availableEvents.onMouseenter;
|
|
8881
|
+
events.onMouseleave = availableEvents.onMouseleave;
|
|
8814
8882
|
}
|
|
8815
8883
|
if (openOnFocus.value) {
|
|
8816
|
-
events.
|
|
8817
|
-
events.
|
|
8884
|
+
events.onFocus = availableEvents.onFocus;
|
|
8885
|
+
events.onBlur = availableEvents.onBlur;
|
|
8818
8886
|
}
|
|
8819
8887
|
return events;
|
|
8820
8888
|
});
|
|
8821
8889
|
const contentEvents = computed(() => {
|
|
8822
8890
|
const events = {};
|
|
8823
8891
|
if (props.openOnHover) {
|
|
8824
|
-
events.
|
|
8892
|
+
events.onMouseenter = () => {
|
|
8825
8893
|
isHovered = true;
|
|
8826
8894
|
runOpenDelay();
|
|
8827
8895
|
};
|
|
8828
|
-
events.
|
|
8896
|
+
events.onMouseleave = () => {
|
|
8829
8897
|
isHovered = false;
|
|
8830
8898
|
runCloseDelay();
|
|
8831
8899
|
};
|
|
8832
8900
|
}
|
|
8901
|
+
if (openOnFocus.value) {
|
|
8902
|
+
events.onFocusin = () => {
|
|
8903
|
+
isFocused = true;
|
|
8904
|
+
runOpenDelay();
|
|
8905
|
+
};
|
|
8906
|
+
events.onFocusout = () => {
|
|
8907
|
+
isFocused = false;
|
|
8908
|
+
runCloseDelay();
|
|
8909
|
+
};
|
|
8910
|
+
}
|
|
8833
8911
|
if (props.closeOnContentClick) {
|
|
8834
8912
|
const menu = inject$1(VMenuSymbol, null);
|
|
8835
|
-
events.
|
|
8913
|
+
events.onClick = () => {
|
|
8836
8914
|
isActive.value = false;
|
|
8837
8915
|
menu?.closeParents();
|
|
8838
8916
|
};
|
|
@@ -8842,14 +8920,14 @@ function useActivator(props, _ref) {
|
|
|
8842
8920
|
const scrimEvents = computed(() => {
|
|
8843
8921
|
const events = {};
|
|
8844
8922
|
if (props.openOnHover) {
|
|
8845
|
-
events.
|
|
8923
|
+
events.onMouseenter = () => {
|
|
8846
8924
|
if (firstEnter) {
|
|
8847
8925
|
isHovered = true;
|
|
8848
8926
|
firstEnter = false;
|
|
8849
8927
|
runOpenDelay();
|
|
8850
8928
|
}
|
|
8851
8929
|
};
|
|
8852
|
-
events.
|
|
8930
|
+
events.onMouseleave = () => {
|
|
8853
8931
|
isHovered = false;
|
|
8854
8932
|
runCloseDelay();
|
|
8855
8933
|
};
|
|
@@ -8923,29 +9001,13 @@ function _useActivator(props, vm, _ref2) {
|
|
|
8923
9001
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8924
9002
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8925
9003
|
if (!el) return;
|
|
8926
|
-
|
|
8927
|
-
let [name, cb] = _ref3;
|
|
8928
|
-
el.addEventListener(name, cb);
|
|
8929
|
-
});
|
|
8930
|
-
Object.keys(_props).forEach(k => {
|
|
8931
|
-
if (_props[k] == null) {
|
|
8932
|
-
el.removeAttribute(k);
|
|
8933
|
-
} else {
|
|
8934
|
-
el.setAttribute(k, _props[k]);
|
|
8935
|
-
}
|
|
8936
|
-
});
|
|
9004
|
+
bindProps(el, mergeProps(activatorEvents.value, _props));
|
|
8937
9005
|
}
|
|
8938
9006
|
function unbindActivatorProps() {
|
|
8939
9007
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8940
9008
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8941
9009
|
if (!el) return;
|
|
8942
|
-
|
|
8943
|
-
let [name, cb] = _ref4;
|
|
8944
|
-
el.removeEventListener(name, cb);
|
|
8945
|
-
});
|
|
8946
|
-
Object.keys(_props).forEach(k => {
|
|
8947
|
-
el.removeAttribute(k);
|
|
8948
|
-
});
|
|
9010
|
+
unbindProps(el, mergeProps(activatorEvents.value, _props));
|
|
8949
9011
|
}
|
|
8950
9012
|
function getActivator() {
|
|
8951
9013
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
@@ -9472,6 +9534,9 @@ const VOverlay = genericComponent()({
|
|
|
9472
9534
|
if (e.key === 'Escape' && globalTop.value) {
|
|
9473
9535
|
if (!props.persistent) {
|
|
9474
9536
|
isActive.value = false;
|
|
9537
|
+
if (contentEl.value?.contains(document.activeElement)) {
|
|
9538
|
+
activatorEl.value?.focus();
|
|
9539
|
+
}
|
|
9475
9540
|
} else animateClick();
|
|
9476
9541
|
}
|
|
9477
9542
|
}
|
|
@@ -9514,7 +9579,7 @@ const VOverlay = genericComponent()({
|
|
|
9514
9579
|
isActive: isActive.value,
|
|
9515
9580
|
props: mergeProps({
|
|
9516
9581
|
ref: activatorRef
|
|
9517
|
-
},
|
|
9582
|
+
}, activatorEvents.value, props.activatorProps)
|
|
9518
9583
|
}), isMounted.value && createVNode(Teleport, {
|
|
9519
9584
|
"disabled": !teleportTarget.value,
|
|
9520
9585
|
"to": teleportTarget.value
|
|
@@ -9532,7 +9597,7 @@ const VOverlay = genericComponent()({
|
|
|
9532
9597
|
}, scopeId, attrs), [createVNode(Scrim, mergeProps({
|
|
9533
9598
|
"color": scrimColor,
|
|
9534
9599
|
"modelValue": isActive.value && !!props.scrim
|
|
9535
|
-
},
|
|
9600
|
+
}, scrimEvents.value), null), createVNode(MaybeTransition, {
|
|
9536
9601
|
"appear": true,
|
|
9537
9602
|
"persisted": true,
|
|
9538
9603
|
"transition": props.transition,
|
|
@@ -9546,7 +9611,7 @@ const VOverlay = genericComponent()({
|
|
|
9546
9611
|
"ref": contentEl,
|
|
9547
9612
|
"class": ['v-overlay__content', props.contentClass],
|
|
9548
9613
|
"style": [dimensionStyles.value, contentStyles.value]
|
|
9549
|
-
},
|
|
9614
|
+
}, contentEvents.value, props.contentProps), [slots.default?.({
|
|
9550
9615
|
isActive
|
|
9551
9616
|
})]), [[vShow, isActive.value], [resolveDirective("click-outside"), {
|
|
9552
9617
|
handler: onClickOutside,
|
|
@@ -9706,10 +9771,35 @@ const VMenu = genericComponent()({
|
|
|
9706
9771
|
function onClickOutside() {
|
|
9707
9772
|
parent?.closeParents();
|
|
9708
9773
|
}
|
|
9774
|
+
function onKeydown(e) {
|
|
9775
|
+
if (props.disabled) return;
|
|
9776
|
+
if (e.key === 'Tab') {
|
|
9777
|
+
isActive.value = false;
|
|
9778
|
+
overlay.value?.activatorEl?.focus();
|
|
9779
|
+
}
|
|
9780
|
+
}
|
|
9781
|
+
function onActivatorKeydown(e) {
|
|
9782
|
+
if (props.disabled) return;
|
|
9783
|
+
const el = overlay.value?.contentEl;
|
|
9784
|
+
if (el && isActive.value) {
|
|
9785
|
+
if (e.key === 'ArrowDown') {
|
|
9786
|
+
e.preventDefault();
|
|
9787
|
+
focusChild(el, 'next');
|
|
9788
|
+
} else if (e.key === 'ArrowUp') {
|
|
9789
|
+
e.preventDefault();
|
|
9790
|
+
focusChild(el, 'prev');
|
|
9791
|
+
}
|
|
9792
|
+
} else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
9793
|
+
isActive.value = true;
|
|
9794
|
+
e.preventDefault();
|
|
9795
|
+
setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
|
|
9796
|
+
}
|
|
9797
|
+
}
|
|
9709
9798
|
const activatorProps = computed(() => mergeProps({
|
|
9710
9799
|
'aria-haspopup': 'menu',
|
|
9711
9800
|
'aria-expanded': String(isActive.value),
|
|
9712
|
-
'aria-owns': id.value
|
|
9801
|
+
'aria-owns': id.value,
|
|
9802
|
+
onKeydown: onActivatorKeydown
|
|
9713
9803
|
}, props.activatorProps));
|
|
9714
9804
|
useRender(() => {
|
|
9715
9805
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
@@ -9722,7 +9812,8 @@ const VMenu = genericComponent()({
|
|
|
9722
9812
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
9723
9813
|
"absolute": true,
|
|
9724
9814
|
"activatorProps": activatorProps.value,
|
|
9725
|
-
"onClick:outside": onClickOutside
|
|
9815
|
+
"onClick:outside": onClickOutside,
|
|
9816
|
+
"onKeydown": onKeydown
|
|
9726
9817
|
}, scopeId), {
|
|
9727
9818
|
activator: slots.activator,
|
|
9728
9819
|
default: function () {
|
|
@@ -10366,6 +10457,7 @@ const VSelect = genericComponent()({
|
|
|
10366
10457
|
}
|
|
10367
10458
|
return items.value;
|
|
10368
10459
|
});
|
|
10460
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10369
10461
|
const listRef = ref();
|
|
10370
10462
|
function onClear(e) {
|
|
10371
10463
|
if (props.openOnClear) {
|
|
@@ -10373,7 +10465,7 @@ const VSelect = genericComponent()({
|
|
|
10373
10465
|
}
|
|
10374
10466
|
}
|
|
10375
10467
|
function onMousedownControl() {
|
|
10376
|
-
if (
|
|
10468
|
+
if (menuDisabled.value) return;
|
|
10377
10469
|
menu.value = !menu.value;
|
|
10378
10470
|
}
|
|
10379
10471
|
function onKeydown(e) {
|
|
@@ -10387,11 +10479,7 @@ const VSelect = genericComponent()({
|
|
|
10387
10479
|
if (['Escape', 'Tab'].includes(e.key)) {
|
|
10388
10480
|
menu.value = false;
|
|
10389
10481
|
}
|
|
10390
|
-
if (e.key === '
|
|
10391
|
-
listRef.value?.focus('next');
|
|
10392
|
-
} else if (e.key === 'ArrowUp') {
|
|
10393
|
-
listRef.value?.focus('prev');
|
|
10394
|
-
} else if (e.key === 'Home') {
|
|
10482
|
+
if (e.key === 'Home') {
|
|
10395
10483
|
listRef.value?.focus('first');
|
|
10396
10484
|
} else if (e.key === 'End') {
|
|
10397
10485
|
listRef.value?.focus('last');
|
|
@@ -10417,6 +10505,11 @@ const VSelect = genericComponent()({
|
|
|
10417
10505
|
model.value = [item];
|
|
10418
10506
|
}
|
|
10419
10507
|
}
|
|
10508
|
+
function onListKeydown(e) {
|
|
10509
|
+
if (e.key === 'Tab') {
|
|
10510
|
+
vTextFieldRef.value?.focus();
|
|
10511
|
+
}
|
|
10512
|
+
}
|
|
10420
10513
|
function select(item) {
|
|
10421
10514
|
if (props.multiple) {
|
|
10422
10515
|
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
@@ -10447,7 +10540,7 @@ const VSelect = genericComponent()({
|
|
|
10447
10540
|
}
|
|
10448
10541
|
useRender(() => {
|
|
10449
10542
|
const hasChips = !!(props.chips || slots.chip);
|
|
10450
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
10543
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10451
10544
|
const isDirty = model.value.length > 0;
|
|
10452
10545
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10453
10546
|
const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
|
|
@@ -10484,6 +10577,7 @@ const VSelect = genericComponent()({
|
|
|
10484
10577
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10485
10578
|
"activator": "parent",
|
|
10486
10579
|
"contentClass": "v-select__content",
|
|
10580
|
+
"disabled": menuDisabled.value,
|
|
10487
10581
|
"eager": props.eager,
|
|
10488
10582
|
"maxHeight": 310,
|
|
10489
10583
|
"openOnClick": false,
|
|
@@ -10496,11 +10590,13 @@ const VSelect = genericComponent()({
|
|
|
10496
10590
|
"selected": selected.value,
|
|
10497
10591
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10498
10592
|
"onMousedown": e => e.preventDefault(),
|
|
10499
|
-
"
|
|
10593
|
+
"onKeydown": onListKeydown,
|
|
10594
|
+
"onFocusin": onFocusin,
|
|
10595
|
+
"tabindex": "-1"
|
|
10500
10596
|
}, {
|
|
10501
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10597
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10502
10598
|
"title": t(props.noDataText)
|
|
10503
|
-
}, null)),
|
|
10599
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10504
10600
|
const itemProps = mergeProps(item.props, {
|
|
10505
10601
|
key: index,
|
|
10506
10602
|
onClick: () => select(item)
|
|
@@ -10792,6 +10888,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10792
10888
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
10793
10889
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
10794
10890
|
});
|
|
10891
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10795
10892
|
const listRef = ref();
|
|
10796
10893
|
function onClear(e) {
|
|
10797
10894
|
if (props.openOnClear) {
|
|
@@ -10800,10 +10897,11 @@ const VAutocomplete = genericComponent()({
|
|
|
10800
10897
|
search.value = '';
|
|
10801
10898
|
}
|
|
10802
10899
|
function onMousedownControl() {
|
|
10803
|
-
if (
|
|
10900
|
+
if (menuDisabled.value) return;
|
|
10804
10901
|
menu.value = true;
|
|
10805
10902
|
}
|
|
10806
10903
|
function onMousedownMenuIcon(e) {
|
|
10904
|
+
if (menuDisabled.value) return;
|
|
10807
10905
|
if (isFocused.value) {
|
|
10808
10906
|
e.preventDefault();
|
|
10809
10907
|
e.stopPropagation();
|
|
@@ -10829,13 +10927,8 @@ const VAutocomplete = genericComponent()({
|
|
|
10829
10927
|
}
|
|
10830
10928
|
isPristine.value = true;
|
|
10831
10929
|
}
|
|
10832
|
-
if (e.key === 'ArrowDown') {
|
|
10930
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
10833
10931
|
listRef.value?.focus('next');
|
|
10834
|
-
if (highlightFirst.value) {
|
|
10835
|
-
listRef.value?.focus('next');
|
|
10836
|
-
}
|
|
10837
|
-
} else if (e.key === 'ArrowUp') {
|
|
10838
|
-
listRef.value?.focus('prev');
|
|
10839
10932
|
}
|
|
10840
10933
|
if (!props.multiple) return;
|
|
10841
10934
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -10870,6 +10963,11 @@ const VAutocomplete = genericComponent()({
|
|
|
10870
10963
|
}
|
|
10871
10964
|
}
|
|
10872
10965
|
}
|
|
10966
|
+
function onListKeydown(e) {
|
|
10967
|
+
if (e.key === 'Tab') {
|
|
10968
|
+
vTextFieldRef.value?.focus();
|
|
10969
|
+
}
|
|
10970
|
+
}
|
|
10873
10971
|
function onInput(e) {
|
|
10874
10972
|
search.value = e.target.value;
|
|
10875
10973
|
}
|
|
@@ -10939,7 +11037,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10939
11037
|
});
|
|
10940
11038
|
useRender(() => {
|
|
10941
11039
|
const hasChips = !!(props.chips || slots.chip);
|
|
10942
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
11040
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10943
11041
|
const isDirty = model.value.length > 0;
|
|
10944
11042
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10945
11043
|
return createVNode(VTextField, mergeProps({
|
|
@@ -10972,6 +11070,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10972
11070
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10973
11071
|
"activator": "parent",
|
|
10974
11072
|
"contentClass": "v-autocomplete__content",
|
|
11073
|
+
"disabled": menuDisabled.value,
|
|
10975
11074
|
"eager": props.eager,
|
|
10976
11075
|
"maxHeight": 310,
|
|
10977
11076
|
"openOnClick": false,
|
|
@@ -10984,12 +11083,14 @@ const VAutocomplete = genericComponent()({
|
|
|
10984
11083
|
"selected": selected.value,
|
|
10985
11084
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10986
11085
|
"onMousedown": e => e.preventDefault(),
|
|
11086
|
+
"onKeydown": onListKeydown,
|
|
10987
11087
|
"onFocusin": onFocusin,
|
|
10988
|
-
"onFocusout": onFocusout
|
|
11088
|
+
"onFocusout": onFocusout,
|
|
11089
|
+
"tabindex": "-1"
|
|
10989
11090
|
}, {
|
|
10990
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
11091
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10991
11092
|
"title": t(props.noDataText)
|
|
10992
|
-
}, null)),
|
|
11093
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10993
11094
|
const itemProps = mergeProps(item.props, {
|
|
10994
11095
|
key: index,
|
|
10995
11096
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -11739,7 +11840,7 @@ const makeVCardProps = propsFactory({
|
|
|
11739
11840
|
prependAvatar: String,
|
|
11740
11841
|
prependIcon: IconValue,
|
|
11741
11842
|
ripple: {
|
|
11742
|
-
type: Boolean,
|
|
11843
|
+
type: [Boolean, Object],
|
|
11743
11844
|
default: true
|
|
11744
11845
|
},
|
|
11745
11846
|
subtitle: String,
|
|
@@ -13144,6 +13245,8 @@ const useSlider = _ref => {
|
|
|
13144
13245
|
return data;
|
|
13145
13246
|
};
|
|
13146
13247
|
|
|
13248
|
+
// Types
|
|
13249
|
+
|
|
13147
13250
|
const makeVSliderThumbProps = propsFactory({
|
|
13148
13251
|
focused: Boolean,
|
|
13149
13252
|
max: {
|
|
@@ -13163,7 +13266,7 @@ const makeVSliderThumbProps = propsFactory({
|
|
|
13163
13266
|
required: true
|
|
13164
13267
|
},
|
|
13165
13268
|
ripple: {
|
|
13166
|
-
type: Boolean,
|
|
13269
|
+
type: [Boolean, Object],
|
|
13167
13270
|
default: true
|
|
13168
13271
|
},
|
|
13169
13272
|
...makeComponentProps()
|
|
@@ -14322,6 +14425,7 @@ const VCombobox = genericComponent()({
|
|
|
14322
14425
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
14323
14426
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
14324
14427
|
});
|
|
14428
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
14325
14429
|
const listRef = ref();
|
|
14326
14430
|
function onClear(e) {
|
|
14327
14431
|
cleared = true;
|
|
@@ -14330,10 +14434,11 @@ const VCombobox = genericComponent()({
|
|
|
14330
14434
|
}
|
|
14331
14435
|
}
|
|
14332
14436
|
function onMousedownControl() {
|
|
14333
|
-
if (
|
|
14437
|
+
if (menuDisabled.value) return;
|
|
14334
14438
|
menu.value = true;
|
|
14335
14439
|
}
|
|
14336
14440
|
function onMousedownMenuIcon(e) {
|
|
14441
|
+
if (menuDisabled.value) return;
|
|
14337
14442
|
if (isFocused.value) {
|
|
14338
14443
|
e.preventDefault();
|
|
14339
14444
|
e.stopPropagation();
|
|
@@ -14359,10 +14464,8 @@ const VCombobox = genericComponent()({
|
|
|
14359
14464
|
}
|
|
14360
14465
|
isPristine.value = true;
|
|
14361
14466
|
}
|
|
14362
|
-
if (e.key === 'ArrowDown') {
|
|
14467
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
14363
14468
|
listRef.value?.focus('next');
|
|
14364
|
-
} else if (e.key === 'ArrowUp') {
|
|
14365
|
-
listRef.value?.focus('prev');
|
|
14366
14469
|
}
|
|
14367
14470
|
if (!props.multiple) return;
|
|
14368
14471
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -14401,6 +14504,11 @@ const VCombobox = genericComponent()({
|
|
|
14401
14504
|
search.value = '';
|
|
14402
14505
|
}
|
|
14403
14506
|
}
|
|
14507
|
+
function onListKeydown(e) {
|
|
14508
|
+
if (e.key === 'Tab') {
|
|
14509
|
+
vTextFieldRef.value?.focus();
|
|
14510
|
+
}
|
|
14511
|
+
}
|
|
14404
14512
|
function onAfterLeave() {
|
|
14405
14513
|
if (isFocused.value) {
|
|
14406
14514
|
isPristine.value = true;
|
|
@@ -14462,7 +14570,7 @@ const VCombobox = genericComponent()({
|
|
|
14462
14570
|
});
|
|
14463
14571
|
useRender(() => {
|
|
14464
14572
|
const hasChips = !!(props.chips || slots.chip);
|
|
14465
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
14573
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
14466
14574
|
const isDirty = model.value.length > 0;
|
|
14467
14575
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
14468
14576
|
return createVNode(VTextField, mergeProps({
|
|
@@ -14495,6 +14603,7 @@ const VCombobox = genericComponent()({
|
|
|
14495
14603
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
14496
14604
|
"activator": "parent",
|
|
14497
14605
|
"contentClass": "v-combobox__content",
|
|
14606
|
+
"disabled": menuDisabled.value,
|
|
14498
14607
|
"eager": props.eager,
|
|
14499
14608
|
"maxHeight": 310,
|
|
14500
14609
|
"openOnClick": false,
|
|
@@ -14507,12 +14616,14 @@ const VCombobox = genericComponent()({
|
|
|
14507
14616
|
"selected": selected.value,
|
|
14508
14617
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
14509
14618
|
"onMousedown": e => e.preventDefault(),
|
|
14619
|
+
"onKeydown": onListKeydown,
|
|
14510
14620
|
"onFocusin": onFocusin,
|
|
14511
|
-
"onFocusout": onFocusout
|
|
14621
|
+
"onFocusout": onFocusout,
|
|
14622
|
+
"tabindex": "-1"
|
|
14512
14623
|
}, {
|
|
14513
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
14624
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
14514
14625
|
"title": t(props.noDataText)
|
|
14515
|
-
}, null)),
|
|
14626
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
14516
14627
|
const itemProps = mergeProps(item.props, {
|
|
14517
14628
|
key: index,
|
|
14518
14629
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -14804,6 +14915,8 @@ const VExpansionPanelText = genericComponent()({
|
|
|
14804
14915
|
}
|
|
14805
14916
|
});
|
|
14806
14917
|
|
|
14918
|
+
// Types
|
|
14919
|
+
|
|
14807
14920
|
const makeVExpansionPanelTitleProps = propsFactory({
|
|
14808
14921
|
color: String,
|
|
14809
14922
|
expandIcon: {
|
|
@@ -19853,7 +19966,7 @@ function createVuetify$1() {
|
|
|
19853
19966
|
date
|
|
19854
19967
|
};
|
|
19855
19968
|
}
|
|
19856
|
-
const version$1 = "3.3.
|
|
19969
|
+
const version$1 = "3.3.3";
|
|
19857
19970
|
createVuetify$1.version = version$1;
|
|
19858
19971
|
|
|
19859
19972
|
// Vue's inject() can only be used in setup
|
|
@@ -19878,7 +19991,7 @@ const createVuetify = function () {
|
|
|
19878
19991
|
...options
|
|
19879
19992
|
});
|
|
19880
19993
|
};
|
|
19881
|
-
const version = "3.3.
|
|
19994
|
+
const version = "3.3.3";
|
|
19882
19995
|
createVuetify.version = version;
|
|
19883
19996
|
|
|
19884
19997
|
export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|