@vuetify/nightly 3.7.6-master.2024-12-26 → 3.7.6-master.2025-01-16
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 +1540 -1540
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +168 -168
- package/dist/json/web-types.json +2725 -2705
- package/dist/vuetify-labs.css +3281 -3277
- package/dist/vuetify-labs.d.ts +129 -104
- package/dist/vuetify-labs.esm.js +61 -27
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +61 -27
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3686 -3682
- package/dist/vuetify.d.ts +65 -68
- package/dist/vuetify.esm.js +41 -22
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +41 -22
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +930 -924
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +7 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +7 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +5 -2
- package/lib/components/VDialog/VDialog.sass +6 -2
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +1 -1
- package/lib/components/VInput/VInput.sass +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +12 -2
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSparkline/VBarline.mjs +3 -2
- package/lib/components/VSparkline/VBarline.mjs.map +1 -1
- package/lib/components/VSparkline/VTrendline.mjs +2 -1
- package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
- package/lib/components/VSparkline/index.d.mts +7 -10
- package/lib/components/VSparkline/util/line.mjs +1 -1
- package/lib/components/VSparkline/util/line.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.mjs +1 -0
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +1 -0
- package/lib/components/VTextarea/VTextarea.sass +1 -0
- package/lib/components/index.d.mts +7 -10
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +58 -58
- package/lib/labs/VDateInput/VDateInput.mjs +19 -5
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +176 -97
- package/lib/labs/components.d.mts +227 -199
- package/lib/locale/az.mjs +28 -28
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -5
- package/lib/locale/nl.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.7.6-master.
|
2
|
+
* Vuetify v3.7.6-master.2025-01-16
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -5040,7 +5040,7 @@
|
|
5040
5040
|
"aria-hidden": props.active ? 'false' : 'true',
|
5041
5041
|
"aria-valuemin": "0",
|
5042
5042
|
"aria-valuemax": props.max,
|
5043
|
-
"aria-valuenow": props.indeterminate ? undefined :
|
5043
|
+
"aria-valuenow": props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value),
|
5044
5044
|
"onClick": props.clickable && handleClick
|
5045
5045
|
}, {
|
5046
5046
|
default: () => [props.stream && vue.createVNode("div", {
|
@@ -7619,6 +7619,14 @@
|
|
7619
7619
|
toFocus('last');
|
7620
7620
|
}
|
7621
7621
|
}
|
7622
|
+
function getSiblingElement(el, location) {
|
7623
|
+
if (!el) return undefined;
|
7624
|
+
let sibling = el;
|
7625
|
+
do {
|
7626
|
+
sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'];
|
7627
|
+
} while (sibling?.hasAttribute('disabled'));
|
7628
|
+
return sibling;
|
7629
|
+
}
|
7622
7630
|
function focus(location) {
|
7623
7631
|
if (!contentRef.el) return;
|
7624
7632
|
let el;
|
@@ -7626,15 +7634,17 @@
|
|
7626
7634
|
const focusable = focusableChildren(contentRef.el);
|
7627
7635
|
el = focusable[0];
|
7628
7636
|
} else if (location === 'next') {
|
7629
|
-
el = contentRef.el.querySelector(':focus')
|
7637
|
+
el = getSiblingElement(contentRef.el.querySelector(':focus'), location);
|
7630
7638
|
if (!el) return focus('first');
|
7631
7639
|
} else if (location === 'prev') {
|
7632
|
-
el = contentRef.el.querySelector(':focus')
|
7640
|
+
el = getSiblingElement(contentRef.el.querySelector(':focus'), location);
|
7633
7641
|
if (!el) return focus('last');
|
7634
7642
|
} else if (location === 'first') {
|
7635
7643
|
el = contentRef.el.firstElementChild;
|
7644
|
+
if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next');
|
7636
7645
|
} else if (location === 'last') {
|
7637
7646
|
el = contentRef.el.lastElementChild;
|
7647
|
+
if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev');
|
7638
7648
|
}
|
7639
7649
|
if (el) {
|
7640
7650
|
el.focus({
|
@@ -11582,7 +11592,7 @@
|
|
11582
11592
|
useRender(() => {
|
11583
11593
|
const isOutlined = props.variant === 'outlined';
|
11584
11594
|
const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
|
11585
|
-
const hasClear = !!(props.clearable || slots.clear);
|
11595
|
+
const hasClear = !!(props.clearable || slots.clear) && !props.disabled;
|
11586
11596
|
const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
|
11587
11597
|
const label = () => slots.label ? slots.label({
|
11588
11598
|
...slotProps.value,
|
@@ -12864,8 +12874,8 @@
|
|
12864
12874
|
return array;
|
12865
12875
|
}
|
12866
12876
|
function useFilter(props, items, query, options) {
|
12867
|
-
const filteredItems = vue.
|
12868
|
-
const filteredMatches = vue.
|
12877
|
+
const filteredItems = vue.shallowRef([]);
|
12878
|
+
const filteredMatches = vue.shallowRef(new Map());
|
12869
12879
|
const transformedItems = vue.computed(() => options?.transform ? vue.unref(items).map(item => [item, options.transform(item)]) : vue.unref(items));
|
12870
12880
|
vue.watchEffect(() => {
|
12871
12881
|
const _query = typeof query === 'function' ? query() : vue.unref(query);
|
@@ -13026,7 +13036,7 @@
|
|
13026
13036
|
menu.value = !menu.value;
|
13027
13037
|
}
|
13028
13038
|
function onListKeydown(e) {
|
13029
|
-
if (checkPrintable(e)) {
|
13039
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13030
13040
|
vTextFieldRef.value?.focus();
|
13031
13041
|
}
|
13032
13042
|
}
|
@@ -13034,7 +13044,7 @@
|
|
13034
13044
|
if (form.isReadonly.value) return;
|
13035
13045
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13036
13046
|
const length = model.value.length;
|
13037
|
-
if (
|
13047
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13038
13048
|
e.preventDefault();
|
13039
13049
|
}
|
13040
13050
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
@@ -13057,12 +13067,14 @@
|
|
13057
13067
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
13058
13068
|
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
13059
13069
|
if (~selectionIndex.value) {
|
13070
|
+
e.preventDefault();
|
13060
13071
|
const originalSelectionIndex = selectionIndex.value;
|
13061
13072
|
select(model.value[selectionIndex.value], false);
|
13062
13073
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
13063
13074
|
} else if (e.key === 'Backspace' && !search.value) {
|
13064
13075
|
selectionIndex.value = length - 1;
|
13065
13076
|
}
|
13077
|
+
return;
|
13066
13078
|
}
|
13067
13079
|
if (!props.multiple) return;
|
13068
13080
|
if (e.key === 'ArrowLeft') {
|
@@ -13074,8 +13086,7 @@
|
|
13074
13086
|
selectionIndex.value = -1;
|
13075
13087
|
vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);
|
13076
13088
|
}
|
13077
|
-
}
|
13078
|
-
if (e.key === 'ArrowRight') {
|
13089
|
+
} else if (e.key === 'ArrowRight') {
|
13079
13090
|
if (selectionIndex.value < 0) return;
|
13080
13091
|
const next = selectionIndex.value + 1;
|
13081
13092
|
if (model.value[next]) {
|
@@ -13084,6 +13095,8 @@
|
|
13084
13095
|
selectionIndex.value = -1;
|
13085
13096
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
13086
13097
|
}
|
13098
|
+
} else if (~selectionIndex.value && checkPrintable(e)) {
|
13099
|
+
selectionIndex.value = -1;
|
13087
13100
|
}
|
13088
13101
|
}
|
13089
13102
|
function onChange(e) {
|
@@ -16099,7 +16112,7 @@
|
|
16099
16112
|
const result = await eyeDropper.open({
|
16100
16113
|
signal: abortController.signal
|
16101
16114
|
});
|
16102
|
-
const colorHexValue =
|
16115
|
+
const colorHexValue = RGBtoHSV(parseColor(result.sRGBHex));
|
16103
16116
|
emit('update:color', {
|
16104
16117
|
...(props.color ?? nullColor),
|
16105
16118
|
...colorHexValue
|
@@ -16910,7 +16923,7 @@
|
|
16910
16923
|
menu.value = !menu.value;
|
16911
16924
|
}
|
16912
16925
|
function onListKeydown(e) {
|
16913
|
-
if (checkPrintable(e)) {
|
16926
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
16914
16927
|
vTextFieldRef.value?.focus();
|
16915
16928
|
}
|
16916
16929
|
}
|
@@ -16919,7 +16932,7 @@
|
|
16919
16932
|
if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
|
16920
16933
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
16921
16934
|
const length = model.value.length;
|
16922
|
-
if (
|
16935
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
16923
16936
|
e.preventDefault();
|
16924
16937
|
}
|
16925
16938
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
@@ -16949,12 +16962,14 @@
|
|
16949
16962
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
16950
16963
|
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
16951
16964
|
if (~selectionIndex.value) {
|
16965
|
+
e.preventDefault();
|
16952
16966
|
const originalSelectionIndex = selectionIndex.value;
|
16953
16967
|
select(model.value[selectionIndex.value], false);
|
16954
16968
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
16955
16969
|
} else if (e.key === 'Backspace' && !search.value) {
|
16956
16970
|
selectionIndex.value = length - 1;
|
16957
16971
|
}
|
16972
|
+
return;
|
16958
16973
|
}
|
16959
16974
|
if (!props.multiple) return;
|
16960
16975
|
if (e.key === 'ArrowLeft') {
|
@@ -16966,8 +16981,7 @@
|
|
16966
16981
|
selectionIndex.value = -1;
|
16967
16982
|
vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length);
|
16968
16983
|
}
|
16969
|
-
}
|
16970
|
-
if (e.key === 'ArrowRight') {
|
16984
|
+
} else if (e.key === 'ArrowRight') {
|
16971
16985
|
if (selectionIndex.value < 0) return;
|
16972
16986
|
const next = selectionIndex.value + 1;
|
16973
16987
|
if (model.value[next]) {
|
@@ -16976,6 +16990,8 @@
|
|
16976
16990
|
selectionIndex.value = -1;
|
16977
16991
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
16978
16992
|
}
|
16993
|
+
} else if (~selectionIndex.value && checkPrintable(e)) {
|
16994
|
+
selectionIndex.value = -1;
|
16979
16995
|
}
|
16980
16996
|
}
|
16981
16997
|
function onAfterEnter() {
|
@@ -25548,7 +25564,7 @@
|
|
25548
25564
|
default: 8
|
25549
25565
|
},
|
25550
25566
|
showLabels: Boolean,
|
25551
|
-
smooth: Boolean,
|
25567
|
+
smooth: [Boolean, String, Number],
|
25552
25568
|
width: {
|
25553
25569
|
type: [Number, String],
|
25554
25570
|
default: 300
|
@@ -25629,6 +25645,7 @@
|
|
25629
25645
|
});
|
25630
25646
|
const bars = vue.computed(() => genBars(items.value, boundary.value));
|
25631
25647
|
const offsetX = vue.computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);
|
25648
|
+
const smooth = vue.computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
|
25632
25649
|
useRender(() => {
|
25633
25650
|
const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
|
25634
25651
|
return vue.createVNode("svg", {
|
@@ -25650,8 +25667,8 @@
|
|
25650
25667
|
"y": item.y,
|
25651
25668
|
"width": lineWidth.value,
|
25652
25669
|
"height": item.height,
|
25653
|
-
"rx":
|
25654
|
-
"ry":
|
25670
|
+
"rx": smooth.value,
|
25671
|
+
"ry": smooth.value
|
25655
25672
|
}, [props.autoDraw && vue.createVNode(vue.Fragment, null, [vue.createVNode("animate", {
|
25656
25673
|
"attributeName": "y",
|
25657
25674
|
"from": item.y + item.height,
|
@@ -25853,7 +25870,8 @@
|
|
25853
25870
|
immediate: true
|
25854
25871
|
});
|
25855
25872
|
function genPath$1(fill) {
|
25856
|
-
|
25873
|
+
const smoothValue = typeof props.smooth === 'boolean' ? props.smooth ? 8 : 0 : Number(props.smooth);
|
25874
|
+
return genPath(genPoints(items.value, boundary.value), smoothValue, fill, parseInt(props.height, 10));
|
25857
25875
|
}
|
25858
25876
|
useRender(() => {
|
25859
25877
|
const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
|
@@ -26177,6 +26195,7 @@
|
|
26177
26195
|
'v-stepper-item--error': hasError.value
|
26178
26196
|
}, group?.selectedClass.value],
|
26179
26197
|
"disabled": !props.editable,
|
26198
|
+
"type": "button",
|
26180
26199
|
"onClick": onClick
|
26181
26200
|
}, [isClickable.value && genOverlays(true, 'v-stepper-item'), vue.createVNode(VAvatar, {
|
26182
26201
|
"key": "stepper-avatar",
|
@@ -28066,8 +28085,14 @@
|
|
28066
28085
|
|
28067
28086
|
// Types
|
28068
28087
|
|
28088
|
+
// Types
|
28089
|
+
|
28069
28090
|
const makeVDateInputProps = propsFactory({
|
28070
28091
|
hideActions: Boolean,
|
28092
|
+
location: {
|
28093
|
+
type: String,
|
28094
|
+
default: 'bottom start'
|
28095
|
+
},
|
28071
28096
|
...makeFocusProps(),
|
28072
28097
|
...makeVConfirmEditProps(),
|
28073
28098
|
...makeVTextFieldProps({
|
@@ -28077,7 +28102,7 @@
|
|
28077
28102
|
...omit(makeVDatePickerProps({
|
28078
28103
|
weeksInMonth: 'dynamic',
|
28079
28104
|
hideHeader: true
|
28080
|
-
}), ['active'])
|
28105
|
+
}), ['active', 'location'])
|
28081
28106
|
}, 'VDateInput');
|
28082
28107
|
const VDateInput = genericComponent()({
|
28083
28108
|
name: 'VDateInput',
|
@@ -28133,7 +28158,7 @@
|
|
28133
28158
|
}
|
28134
28159
|
useRender(() => {
|
28135
28160
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
28136
|
-
const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
|
28161
|
+
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
|
28137
28162
|
const textFieldProps = VTextField.filterProps(props);
|
28138
28163
|
return vue.createVNode(VTextField, vue.mergeProps(textFieldProps, {
|
28139
28164
|
"class": props.class,
|
@@ -28151,18 +28176,23 @@
|
|
28151
28176
|
"onUpdate:modelValue": $event => menu.value = $event,
|
28152
28177
|
"activator": "parent",
|
28153
28178
|
"min-width": "0",
|
28179
|
+
"location": props.location,
|
28154
28180
|
"closeOnContentClick": false,
|
28155
28181
|
"openOnClick": false
|
28156
28182
|
}, {
|
28157
28183
|
default: () => [vue.createVNode(VConfirmEdit, vue.mergeProps(confirmEditProps, {
|
28158
28184
|
"modelValue": model.value,
|
28159
28185
|
"onUpdate:modelValue": $event => model.value = $event,
|
28160
|
-
"onSave": onSave
|
28186
|
+
"onSave": onSave,
|
28187
|
+
"onCancel": () => menu.value = false
|
28161
28188
|
}), {
|
28162
28189
|
default: _ref2 => {
|
28163
28190
|
let {
|
28164
28191
|
actions,
|
28165
|
-
model: proxyModel
|
28192
|
+
model: proxyModel,
|
28193
|
+
save,
|
28194
|
+
cancel,
|
28195
|
+
isPristine
|
28166
28196
|
} = _ref2;
|
28167
28197
|
return vue.createVNode(VDatePicker, vue.mergeProps(datePickerProps, {
|
28168
28198
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
@@ -28176,7 +28206,11 @@
|
|
28176
28206
|
},
|
28177
28207
|
"onMousedown": e => e.preventDefault()
|
28178
28208
|
}), {
|
28179
|
-
actions: !props.hideActions ?
|
28209
|
+
actions: !props.hideActions ? () => slots.actions?.({
|
28210
|
+
save,
|
28211
|
+
cancel,
|
28212
|
+
isPristine
|
28213
|
+
}) ?? actions() : undefined
|
28180
28214
|
});
|
28181
28215
|
}
|
28182
28216
|
})]
|
@@ -30750,7 +30784,7 @@
|
|
30750
30784
|
goTo
|
30751
30785
|
};
|
30752
30786
|
}
|
30753
|
-
const version$1 = "3.7.6-master.
|
30787
|
+
const version$1 = "3.7.6-master.2025-01-16";
|
30754
30788
|
createVuetify$1.version = version$1;
|
30755
30789
|
|
30756
30790
|
// Vue's inject() can only be used in setup
|
@@ -31003,7 +31037,7 @@
|
|
31003
31037
|
|
31004
31038
|
/* eslint-disable local-rules/sort-imports */
|
31005
31039
|
|
31006
|
-
const version = "3.7.6-master.
|
31040
|
+
const version = "3.7.6-master.2025-01-16";
|
31007
31041
|
|
31008
31042
|
/* eslint-disable local-rules/sort-imports */
|
31009
31043
|
|