vuetify 3.3.5 → 3.3.6
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 +4 -8
- package/dist/json/importMap.json +12 -12
- package/dist/json/tags.json +0 -1
- package/dist/json/web-types.json +7 -17
- package/dist/vuetify-labs.css +41 -18
- package/dist/vuetify-labs.d.ts +38 -54
- package/dist/vuetify-labs.esm.js +67 -39
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +67 -39
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +36 -13
- package/dist/vuetify.d.ts +3 -3
- package/dist/vuetify.esm.js +36 -29
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +36 -29
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +20 -21
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +12 -9
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +12 -4
- package/lib/components/VAutocomplete/VAutocomplete.sass +17 -9
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +8 -7
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +1 -1
- package/lib/components/VBtn/VBtn.sass +1 -1
- package/lib/components/VCombobox/VCombobox.css +12 -4
- package/lib/components/VCombobox/VCombobox.sass +17 -9
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VFooter/VFooter.mjs +4 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +1 -1
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +4 -3
- package/lib/components/VSelect/VSelect.sass +10 -12
- package/lib/components/VSlider/VSliderThumb.mjs +6 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.css +2 -0
- package/lib/components/VTextField/VTextField.mjs +2 -4
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +3 -1
- package/lib/composables/validation.mjs +2 -2
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa.mjs +2 -2
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -2
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDataTable/composables/sort.mjs +4 -1
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +0 -5
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/labs/VDatePicker/index.d.mts +38 -54
- package/lib/labs/VDateRangePicker/index.d.mts +34 -44
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +24 -4
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/components.d.mts +38 -54
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +1 -0
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.6
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -428,6 +428,9 @@ function focusChild(el, location) {
|
|
|
428
428
|
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
|
+
function isEmpty(val) {
|
|
432
|
+
return val === null || val === undefined || typeof val === 'string' && val.trim() === '';
|
|
433
|
+
}
|
|
431
434
|
function noop() {}
|
|
432
435
|
|
|
433
436
|
// Utilities
|
|
@@ -1290,6 +1293,7 @@ function injectSelf(key) {
|
|
|
1290
1293
|
// TS doesn't allow symbol as index type
|
|
1291
1294
|
return provides[key];
|
|
1292
1295
|
}
|
|
1296
|
+
return undefined;
|
|
1293
1297
|
}
|
|
1294
1298
|
|
|
1295
1299
|
function isFixedPosition(el) {
|
|
@@ -3640,16 +3644,18 @@ const VAppBar = genericComponent()({
|
|
|
3640
3644
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3641
3645
|
return height + extensionHeight;
|
|
3642
3646
|
});
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
if (scrollBehavior.value.
|
|
3646
|
-
|
|
3647
|
+
useToggleScope(computed(() => !!props.scrollBehavior), () => {
|
|
3648
|
+
watchEffect(() => {
|
|
3649
|
+
if (scrollBehavior.value.hide) {
|
|
3650
|
+
if (scrollBehavior.value.inverted) {
|
|
3651
|
+
isActive.value = currentScroll.value > scrollThreshold.value;
|
|
3652
|
+
} else {
|
|
3653
|
+
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
|
3654
|
+
}
|
|
3647
3655
|
} else {
|
|
3648
|
-
isActive.value =
|
|
3656
|
+
isActive.value = true;
|
|
3649
3657
|
}
|
|
3650
|
-
}
|
|
3651
|
-
isActive.value = true;
|
|
3652
|
-
}
|
|
3658
|
+
});
|
|
3653
3659
|
});
|
|
3654
3660
|
const {
|
|
3655
3661
|
ssrBootStyles
|
|
@@ -6281,12 +6287,12 @@ function useValidation(props) {
|
|
|
6281
6287
|
const handler = typeof rule === 'function' ? rule : () => rule;
|
|
6282
6288
|
const result = await handler(validationModel.value);
|
|
6283
6289
|
if (result === true) continue;
|
|
6284
|
-
if (typeof result !== 'string') {
|
|
6290
|
+
if (result !== false && typeof result !== 'string') {
|
|
6285
6291
|
// eslint-disable-next-line no-console
|
|
6286
6292
|
console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);
|
|
6287
6293
|
continue;
|
|
6288
6294
|
}
|
|
6289
|
-
results.push(result);
|
|
6295
|
+
results.push(result || '');
|
|
6290
6296
|
}
|
|
6291
6297
|
internalErrorMessages.value = results;
|
|
6292
6298
|
isValidating.value = false;
|
|
@@ -9421,7 +9427,7 @@ const makeVOverlayProps = propsFactory({
|
|
|
9421
9427
|
modelValue: Boolean,
|
|
9422
9428
|
persistent: Boolean,
|
|
9423
9429
|
scrim: {
|
|
9424
|
-
type: [
|
|
9430
|
+
type: [Boolean, String],
|
|
9425
9431
|
default: true
|
|
9426
9432
|
},
|
|
9427
9433
|
zIndex: {
|
|
@@ -10355,12 +10361,10 @@ const VTextField = genericComponent()({
|
|
|
10355
10361
|
}]]);
|
|
10356
10362
|
return createVNode(Fragment, null, [props.prefix && createVNode("span", {
|
|
10357
10363
|
"class": "v-text-field__prefix"
|
|
10358
|
-
}, [props.prefix]),
|
|
10364
|
+
}, [props.prefix]), createVNode("div", {
|
|
10359
10365
|
"class": fieldClass,
|
|
10360
10366
|
"data-no-activator": ""
|
|
10361
|
-
}, [slots.default(), inputNode]) : cloneVNode(inputNode, {
|
|
10362
|
-
class: fieldClass
|
|
10363
|
-
}), props.suffix && createVNode("span", {
|
|
10367
|
+
}, [slots.default ? createVNode(Fragment, null, [slots.default(), inputNode]) : cloneVNode(inputNode)]), props.suffix && createVNode("span", {
|
|
10364
10368
|
"class": "v-text-field__suffix"
|
|
10365
10369
|
}, [props.suffix])]);
|
|
10366
10370
|
}
|
|
@@ -11596,20 +11600,21 @@ const VBreadcrumbsItem = genericComponent()({
|
|
|
11596
11600
|
textColorStyles
|
|
11597
11601
|
} = useTextColor(color);
|
|
11598
11602
|
useRender(() => {
|
|
11599
|
-
|
|
11600
|
-
return createVNode(Tag, {
|
|
11603
|
+
return createVNode(props.tag, {
|
|
11601
11604
|
"class": ['v-breadcrumbs-item', {
|
|
11602
11605
|
'v-breadcrumbs-item--active': isActive.value,
|
|
11603
11606
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
11604
|
-
'v-breadcrumbs-item--link': link.isLink.value,
|
|
11605
11607
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
11606
11608
|
}, textColorClasses.value, props.class],
|
|
11607
11609
|
"style": [textColorStyles.value, props.style],
|
|
11608
|
-
"
|
|
11609
|
-
"aria-current": isActive.value ? 'page' : undefined,
|
|
11610
|
-
"onClick": link.navigate
|
|
11610
|
+
"aria-current": isActive.value ? 'page' : undefined
|
|
11611
11611
|
}, {
|
|
11612
|
-
default: () => [slots.default?.() ?? props.title
|
|
11612
|
+
default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", {
|
|
11613
|
+
"class": "v-breadcrumbs-item--link",
|
|
11614
|
+
"href": link.href.value,
|
|
11615
|
+
"aria-current": isActive.value ? 'page' : undefined,
|
|
11616
|
+
"onClick": link.navigate
|
|
11617
|
+
}, [slots.default?.() ?? props.title])]
|
|
11613
11618
|
});
|
|
11614
11619
|
});
|
|
11615
11620
|
return {};
|
|
@@ -11685,7 +11690,7 @@ const VBreadcrumbs = genericComponent()({
|
|
|
11685
11690
|
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11686
11691
|
"style": [backgroundColorStyles.value, props.style]
|
|
11687
11692
|
}, {
|
|
11688
|
-
default: () => [hasPrepend && createVNode("
|
|
11693
|
+
default: () => [hasPrepend && createVNode("li", {
|
|
11689
11694
|
"key": "prepend",
|
|
11690
11695
|
"class": "v-breadcrumbs__prepend"
|
|
11691
11696
|
}, [!slots.prepend ? createVNode(VIcon, {
|
|
@@ -13297,6 +13302,9 @@ const VSliderThumb = genericComponent()({
|
|
|
13297
13302
|
emit
|
|
13298
13303
|
} = _ref;
|
|
13299
13304
|
const slider = inject$1(VSliderSymbol);
|
|
13305
|
+
const {
|
|
13306
|
+
rtlClasses
|
|
13307
|
+
} = useRtl();
|
|
13300
13308
|
if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
|
|
13301
13309
|
const {
|
|
13302
13310
|
thumbColor,
|
|
@@ -13364,7 +13372,7 @@ const VSliderThumb = genericComponent()({
|
|
|
13364
13372
|
"class": ['v-slider-thumb', {
|
|
13365
13373
|
'v-slider-thumb--focused': props.focused,
|
|
13366
13374
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
13367
|
-
}, props.class],
|
|
13375
|
+
}, props.class, rtlClasses.value],
|
|
13368
13376
|
"style": [{
|
|
13369
13377
|
'--v-slider-thumb-position': positionPercentage,
|
|
13370
13378
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
@@ -15347,7 +15355,9 @@ const VFooter = genericComponent()({
|
|
|
15347
15355
|
useRender(() => createVNode(props.tag, {
|
|
15348
15356
|
"ref": resizeRef,
|
|
15349
15357
|
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
15350
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value :
|
|
15358
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
|
|
15359
|
+
height: convertToUnit(props.height)
|
|
15360
|
+
}, props.style]
|
|
15351
15361
|
}, slots));
|
|
15352
15362
|
return {};
|
|
15353
15363
|
}
|
|
@@ -16310,7 +16320,7 @@ const makeVNavigationDrawerProps = propsFactory({
|
|
|
16310
16320
|
default: 56
|
|
16311
16321
|
},
|
|
16312
16322
|
scrim: {
|
|
16313
|
-
type: [
|
|
16323
|
+
type: [Boolean, String],
|
|
16314
16324
|
default: true
|
|
16315
16325
|
},
|
|
16316
16326
|
image: String,
|
|
@@ -19897,6 +19907,9 @@ function sortItems(items, sortByItems, locale, customSorters) {
|
|
|
19897
19907
|
}
|
|
19898
19908
|
[sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
|
|
19899
19909
|
if (sortA !== sortB) {
|
|
19910
|
+
if (isEmpty(sortA) && isEmpty(sortB)) return 0;
|
|
19911
|
+
if (isEmpty(sortA)) return -1;
|
|
19912
|
+
if (isEmpty(sortB)) return 1;
|
|
19900
19913
|
if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);
|
|
19901
19914
|
return stringCollator.compare(sortA, sortB);
|
|
19902
19915
|
}
|
|
@@ -21930,7 +21943,7 @@ const makeVDatePickerControlsProps = propsFactory({
|
|
|
21930
21943
|
},
|
|
21931
21944
|
range: {
|
|
21932
21945
|
default: false,
|
|
21933
|
-
type: [
|
|
21946
|
+
type: [Boolean, String],
|
|
21934
21947
|
validator: v => v === false || ['start', 'end'].includes(v)
|
|
21935
21948
|
},
|
|
21936
21949
|
...omit(makeDateProps(), ['modelValue', 'inputMode'])
|
|
@@ -22017,11 +22030,6 @@ const makeVDatePickerMonthProps = propsFactory({
|
|
|
22017
22030
|
showAdjacentMonths: Boolean,
|
|
22018
22031
|
hideWeekdays: Boolean,
|
|
22019
22032
|
showWeek: Boolean,
|
|
22020
|
-
range: {
|
|
22021
|
-
default: false,
|
|
22022
|
-
type: [String, Boolean],
|
|
22023
|
-
validator: v => typeof v === 'boolean' || ['start', 'end'].includes(v)
|
|
22024
|
-
},
|
|
22025
22033
|
hoverDate: null,
|
|
22026
22034
|
multiple: Boolean,
|
|
22027
22035
|
side: {
|
|
@@ -22747,7 +22755,7 @@ const VInfiniteScrollIntersect = defineComponent({
|
|
|
22747
22755
|
rootMargin: String
|
|
22748
22756
|
},
|
|
22749
22757
|
emits: {
|
|
22750
|
-
intersect: side => true
|
|
22758
|
+
intersect: (side, isIntersecting) => true
|
|
22751
22759
|
},
|
|
22752
22760
|
setup(props, _ref) {
|
|
22753
22761
|
let {
|
|
@@ -22761,7 +22769,7 @@ const VInfiniteScrollIntersect = defineComponent({
|
|
|
22761
22769
|
rootMargin: props.rootMargin
|
|
22762
22770
|
} : undefined);
|
|
22763
22771
|
watch(isIntersecting, async val => {
|
|
22764
|
-
|
|
22772
|
+
emit('intersect', props.side, val);
|
|
22765
22773
|
});
|
|
22766
22774
|
useRender(() => createVNode("div", {
|
|
22767
22775
|
"class": "v-infinite-scroll-intersect",
|
|
@@ -22785,6 +22793,7 @@ const VInfiniteScroll = genericComponent()({
|
|
|
22785
22793
|
const startStatus = ref('ok');
|
|
22786
22794
|
const endStatus = ref('ok');
|
|
22787
22795
|
const margin = computed(() => convertToUnit(props.margin));
|
|
22796
|
+
const isIntersecting = ref(false);
|
|
22788
22797
|
function setScrollAmount(amount) {
|
|
22789
22798
|
if (!rootEl.value) return;
|
|
22790
22799
|
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
@@ -22824,7 +22833,14 @@ const VInfiniteScroll = genericComponent()({
|
|
|
22824
22833
|
return side === 'start' ? startStatus.value : endStatus.value;
|
|
22825
22834
|
}
|
|
22826
22835
|
let previousScrollSize = 0;
|
|
22827
|
-
function handleIntersect(side) {
|
|
22836
|
+
function handleIntersect(side, _isIntersecting) {
|
|
22837
|
+
isIntersecting.value = _isIntersecting;
|
|
22838
|
+
if (isIntersecting.value) {
|
|
22839
|
+
intersecting(side);
|
|
22840
|
+
}
|
|
22841
|
+
}
|
|
22842
|
+
function intersecting(side) {
|
|
22843
|
+
if (props.mode !== 'manual' && !isIntersecting.value) return;
|
|
22828
22844
|
const status = getStatus(side);
|
|
22829
22845
|
if (!rootEl.value || status === 'loading') return;
|
|
22830
22846
|
previousScrollSize = getScrollSize();
|
|
@@ -22832,9 +22848,21 @@ const VInfiniteScroll = genericComponent()({
|
|
|
22832
22848
|
function done(status) {
|
|
22833
22849
|
setStatus(side, status);
|
|
22834
22850
|
nextTick(() => {
|
|
22851
|
+
if (status === 'empty' || status === 'error') return;
|
|
22835
22852
|
if (status === 'ok' && side === 'start') {
|
|
22836
22853
|
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
22837
22854
|
}
|
|
22855
|
+
if (props.mode !== 'manual') {
|
|
22856
|
+
nextTick(() => {
|
|
22857
|
+
window.requestAnimationFrame(() => {
|
|
22858
|
+
window.requestAnimationFrame(() => {
|
|
22859
|
+
window.requestAnimationFrame(() => {
|
|
22860
|
+
intersecting(side);
|
|
22861
|
+
});
|
|
22862
|
+
});
|
|
22863
|
+
});
|
|
22864
|
+
});
|
|
22865
|
+
}
|
|
22838
22866
|
});
|
|
22839
22867
|
}
|
|
22840
22868
|
emit('load', {
|
|
@@ -22847,7 +22875,7 @@ const VInfiniteScroll = genericComponent()({
|
|
|
22847
22875
|
} = useLocale();
|
|
22848
22876
|
function renderSide(side, status) {
|
|
22849
22877
|
if (props.side !== side && props.side !== 'both') return;
|
|
22850
|
-
const onClick = () =>
|
|
22878
|
+
const onClick = () => intersecting(side);
|
|
22851
22879
|
const slotProps = {
|
|
22852
22880
|
side,
|
|
22853
22881
|
props: {
|
|
@@ -23419,7 +23447,7 @@ function createVuetify$1() {
|
|
|
23419
23447
|
date
|
|
23420
23448
|
};
|
|
23421
23449
|
}
|
|
23422
|
-
const version$1 = "3.3.
|
|
23450
|
+
const version$1 = "3.3.6";
|
|
23423
23451
|
createVuetify$1.version = version$1;
|
|
23424
23452
|
|
|
23425
23453
|
// Vue's inject() can only be used in setup
|
|
@@ -23433,7 +23461,7 @@ function inject(key) {
|
|
|
23433
23461
|
|
|
23434
23462
|
/* eslint-disable local-rules/sort-imports */
|
|
23435
23463
|
|
|
23436
|
-
const version = "3.3.
|
|
23464
|
+
const version = "3.3.6";
|
|
23437
23465
|
|
|
23438
23466
|
/* eslint-disable local-rules/sort-imports */
|
|
23439
23467
|
|