vuetify 3.3.8 → 3.3.9
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 +2 -2
- package/dist/json/importMap.json +42 -42
- package/dist/json/web-types.json +152 -152
- package/dist/vuetify-labs.css +522 -575
- package/dist/vuetify-labs.d.ts +65 -64
- package/dist/vuetify-labs.esm.js +85 -20
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +85 -20
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +61 -120
- package/dist/vuetify.d.ts +11 -11
- package/dist/vuetify.esm.js +28 -7
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +28 -7
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +27 -24
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.sass +2 -2
- package/lib/components/VColorPicker/VColorPickerEdit.css +1 -0
- package/lib/components/VColorPicker/VColorPickerEdit.sass +1 -0
- package/lib/components/VColorPicker/VColorPickerPreview.css +1 -1
- package/lib/components/VColorPicker/_variables.scss +2 -1
- package/lib/components/VCombobox/VCombobox.css +2 -2
- package/lib/components/VCombobox/VCombobox.sass +2 -2
- package/lib/components/VField/VField.css +7 -70
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +4 -8
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VList/VListItem.css +3 -0
- package/lib/components/VList/VListItem.sass +10 -3
- package/lib/components/VOverlay/locationStrategies.mjs +6 -0
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.css +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +11 -11
- package/lib/labs/VDataIterator/index.d.mts +1 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/items.mjs +1 -0
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.mts +47 -46
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VDateInput/composables.mjs +1 -1
- package/lib/labs/VDateInput/composables.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +16 -16
- package/lib/labs/VDatePicker/VDatePicker.mjs +8 -7
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.css +7 -0
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -0
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.sass +8 -0
- package/lib/labs/VDatePicker/composables.mjs +15 -2
- package/lib/labs/VDatePicker/composables.mjs.map +1 -1
- package/lib/labs/VDatePicker/index.d.mts +18 -18
- package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +2 -4
- package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -1
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +4 -5
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
- package/lib/labs/VDateRangePicker/index.d.mts +59 -51
- package/lib/labs/VPicker/VPicker.css +0 -1
- package/lib/labs/VPicker/VPicker.sass +0 -1
- package/lib/labs/components.d.mts +65 -64
- package/lib/labs/date/adapters/vuetify.mjs +14 -1
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/labs/date/date.mjs +3 -3
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +25 -1
- package/package.json +2 -2
- package/lib/components/VField/_mixins.sass +0 -7
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.9
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -8338,6 +8338,12 @@
|
|
|
8338
8338
|
// el.style.removeProperty('max-width')
|
|
8339
8339
|
// el.style.removeProperty('max-height')
|
|
8340
8340
|
|
|
8341
|
+
if (isRtl) {
|
|
8342
|
+
el.style.removeProperty('left');
|
|
8343
|
+
} else {
|
|
8344
|
+
el.style.removeProperty('right');
|
|
8345
|
+
}
|
|
8346
|
+
|
|
8341
8347
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
|
8342
8348
|
const contentBox = nullifyTransforms(el);
|
|
8343
8349
|
if (isRtl) {
|
|
@@ -10125,7 +10131,7 @@
|
|
|
10125
10131
|
}, null), vue.createVNode(LoaderSlot, {
|
|
10126
10132
|
"name": "v-field",
|
|
10127
10133
|
"active": !!props.loading,
|
|
10128
|
-
"color": props.error ? 'error' : props.color
|
|
10134
|
+
"color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
|
|
10129
10135
|
}, {
|
|
10130
10136
|
default: slots.loader
|
|
10131
10137
|
}), hasPrepend && vue.createVNode("div", {
|
|
@@ -17491,8 +17497,10 @@
|
|
|
17491
17497
|
value
|
|
17492
17498
|
} = _ref2;
|
|
17493
17499
|
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
17494
|
-
|
|
17495
|
-
|
|
17500
|
+
if (!props.strict && newValue[0] < newValue[1]) {
|
|
17501
|
+
model.value = newValue;
|
|
17502
|
+
}
|
|
17503
|
+
emit('end', model.value);
|
|
17496
17504
|
},
|
|
17497
17505
|
onSliderMove: _ref3 => {
|
|
17498
17506
|
let {
|
|
@@ -20936,7 +20944,7 @@
|
|
|
20936
20944
|
const itemSlotProps = {
|
|
20937
20945
|
...slotProps,
|
|
20938
20946
|
props: {
|
|
20939
|
-
key: `item_${item.
|
|
20947
|
+
key: `item_${item.key ?? item.index}`,
|
|
20940
20948
|
onClick: expandOnClick.value || props['onClick:row'] ? event => {
|
|
20941
20949
|
if (expandOnClick.value) {
|
|
20942
20950
|
toggleExpand(item);
|
|
@@ -20985,6 +20993,7 @@
|
|
|
20985
20993
|
}, {});
|
|
20986
20994
|
return {
|
|
20987
20995
|
type: 'item',
|
|
20996
|
+
key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,
|
|
20988
20997
|
index,
|
|
20989
20998
|
value,
|
|
20990
20999
|
selectable,
|
|
@@ -21756,11 +21765,24 @@
|
|
|
21756
21765
|
function endOfMonth(date) {
|
|
21757
21766
|
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
21758
21767
|
}
|
|
21768
|
+
function formatYyyyMmDd(value) {
|
|
21769
|
+
const formattedValue = value.split('-').map(d => d.padStart(2, '0')).join('-');
|
|
21770
|
+
const offsetMin = new Date().getTimezoneOffset() / -60;
|
|
21771
|
+
const offsetSign = offsetMin < 0 ? '-' : '+';
|
|
21772
|
+
const offsetValue = Math.abs(offsetMin).toString().padStart(2, '0');
|
|
21773
|
+
return `${formattedValue}T00:00:00.000${offsetSign}${offsetValue}:00`;
|
|
21774
|
+
}
|
|
21775
|
+
const _YYYMMDD = /([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))/;
|
|
21759
21776
|
function date(value) {
|
|
21760
21777
|
if (value == null) return new Date();
|
|
21761
21778
|
if (value instanceof Date) return value;
|
|
21762
21779
|
if (typeof value === 'string') {
|
|
21763
|
-
|
|
21780
|
+
let parsed;
|
|
21781
|
+
if (_YYYMMDD.test(value)) {
|
|
21782
|
+
parsed = Date.parse(formatYyyyMmDd(value));
|
|
21783
|
+
} else {
|
|
21784
|
+
parsed = Date.parse(value);
|
|
21785
|
+
}
|
|
21764
21786
|
if (!isNaN(parsed)) return new Date(parsed);
|
|
21765
21787
|
}
|
|
21766
21788
|
return null;
|
|
@@ -22009,11 +22031,11 @@
|
|
|
22009
22031
|
const date = vue.inject(DateAdapterSymbol);
|
|
22010
22032
|
const locale = useLocale();
|
|
22011
22033
|
if (!date) throw new Error('[Vuetify] Could not find injected date');
|
|
22012
|
-
const instance = typeof date.adapter === 'function'
|
|
22034
|
+
const instance = vue.reactive(typeof date.adapter === 'function'
|
|
22013
22035
|
// eslint-disable-next-line new-cap
|
|
22014
22036
|
? new date.adapter({
|
|
22015
22037
|
locale: date.locale?.[locale.current.value] ?? locale.current.value
|
|
22016
|
-
}) : date.adapter;
|
|
22038
|
+
}) : date.adapter);
|
|
22017
22039
|
vue.watch(locale.current, value => {
|
|
22018
22040
|
const newLocale = date.locale ? date.locale[value] : value;
|
|
22019
22041
|
instance.locale = newLocale ?? instance.locale;
|
|
@@ -22059,7 +22081,7 @@
|
|
|
22059
22081
|
},
|
|
22060
22082
|
displayDate: {
|
|
22061
22083
|
type: null,
|
|
22062
|
-
default:
|
|
22084
|
+
default: null
|
|
22063
22085
|
},
|
|
22064
22086
|
inputMode: {
|
|
22065
22087
|
type: String,
|
|
@@ -22078,6 +22100,34 @@
|
|
|
22078
22100
|
'update:inputMode': inputMode => true,
|
|
22079
22101
|
'update:viewMode': viewMode => true
|
|
22080
22102
|
};
|
|
22103
|
+
function createDateInput(props, isRange) {
|
|
22104
|
+
const adapter = useDate();
|
|
22105
|
+
const model = useProxiedModel(props, 'modelValue', [], v => {
|
|
22106
|
+
if (v == null) return [];
|
|
22107
|
+
const arr = wrapInArray(v).filter(v => !!v);
|
|
22108
|
+
return arr.map(adapter.date);
|
|
22109
|
+
}, v => {
|
|
22110
|
+
const arr = wrapInArray(v);
|
|
22111
|
+
const formatted = props.format ? arr.map(d => adapter.format(d, props.format)) : arr;
|
|
22112
|
+
if (isRange) return formatted;
|
|
22113
|
+
return formatted[0];
|
|
22114
|
+
});
|
|
22115
|
+
const inputMode = useProxiedModel(props, 'inputMode');
|
|
22116
|
+
const viewMode = useProxiedModel(props, 'viewMode');
|
|
22117
|
+
const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date());
|
|
22118
|
+
function parseKeyboardDate(input, fallback) {
|
|
22119
|
+
const date = adapter.date(input);
|
|
22120
|
+
return adapter.isValid(date) ? date : fallback;
|
|
22121
|
+
}
|
|
22122
|
+
return {
|
|
22123
|
+
model,
|
|
22124
|
+
adapter,
|
|
22125
|
+
inputMode,
|
|
22126
|
+
viewMode,
|
|
22127
|
+
displayDate,
|
|
22128
|
+
parseKeyboardDate
|
|
22129
|
+
};
|
|
22130
|
+
}
|
|
22081
22131
|
|
|
22082
22132
|
const makeVDatePickerControlsProps = propsFactory({
|
|
22083
22133
|
nextIcon: {
|
|
@@ -22141,6 +22191,7 @@
|
|
|
22141
22191
|
"icon": props.viewMode === 'month' ? props.expandIcon : props.collapseIcon,
|
|
22142
22192
|
"onClick": () => emit('update:viewMode', props.viewMode === 'month' ? 'year' : 'month')
|
|
22143
22193
|
}, null), vue.createVNode(VSpacer, null, null), props.viewMode === 'month' && !props.range && vue.createVNode("div", {
|
|
22194
|
+
"class": "v-date-picker-controls__month",
|
|
22144
22195
|
"key": "month-buttons"
|
|
22145
22196
|
}, [prevBtn, nextBtn]), props.viewMode === 'month' && props.range === 'end' && nextBtn]);
|
|
22146
22197
|
});
|
|
@@ -22148,7 +22199,7 @@
|
|
|
22148
22199
|
}
|
|
22149
22200
|
});
|
|
22150
22201
|
|
|
22151
|
-
//
|
|
22202
|
+
// Composables
|
|
22152
22203
|
|
|
22153
22204
|
// Types
|
|
22154
22205
|
|
|
@@ -22166,12 +22217,24 @@
|
|
|
22166
22217
|
dragHandle,
|
|
22167
22218
|
hasScrolled
|
|
22168
22219
|
});
|
|
22220
|
+
|
|
22221
|
+
// TODO: This composable should probably not live in DateInput
|
|
22222
|
+
const {
|
|
22223
|
+
model,
|
|
22224
|
+
displayDate,
|
|
22225
|
+
viewMode,
|
|
22226
|
+
inputMode
|
|
22227
|
+
} = createDateInput(props, !!props.multiple);
|
|
22169
22228
|
return {
|
|
22170
22229
|
hoverDate,
|
|
22171
22230
|
hoverMonth,
|
|
22172
22231
|
isDragging,
|
|
22173
22232
|
dragHandle,
|
|
22174
|
-
hasScrolled
|
|
22233
|
+
hasScrolled,
|
|
22234
|
+
model,
|
|
22235
|
+
displayDate,
|
|
22236
|
+
viewMode,
|
|
22237
|
+
inputMode
|
|
22175
22238
|
};
|
|
22176
22239
|
}
|
|
22177
22240
|
function useDatePicker() {
|
|
@@ -22549,7 +22612,7 @@
|
|
|
22549
22612
|
const {
|
|
22550
22613
|
t
|
|
22551
22614
|
} = useLocale();
|
|
22552
|
-
createDatePicker();
|
|
22615
|
+
createDatePicker(props);
|
|
22553
22616
|
function onDisplayUpdate(val) {
|
|
22554
22617
|
emit('update:displayDate', val);
|
|
22555
22618
|
}
|
|
@@ -22765,12 +22828,13 @@
|
|
|
22765
22828
|
const {
|
|
22766
22829
|
t
|
|
22767
22830
|
} = useLocale();
|
|
22768
|
-
|
|
22769
|
-
|
|
22831
|
+
const {
|
|
22832
|
+
model,
|
|
22833
|
+
displayDate,
|
|
22834
|
+
viewMode,
|
|
22835
|
+
inputMode
|
|
22836
|
+
} = createDatePicker(props);
|
|
22770
22837
|
const isReversing = vue.ref(false);
|
|
22771
|
-
const displayDate = useProxiedModel(props, 'displayDate', props.displayDate);
|
|
22772
|
-
const inputMode = useProxiedModel(props, 'inputMode', props.inputMode);
|
|
22773
|
-
const viewMode = useProxiedModel(props, 'viewMode', props.viewMode);
|
|
22774
22838
|
const inputModel = vue.computed(() => model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '');
|
|
22775
22839
|
const title = vue.computed(() => t(props.title));
|
|
22776
22840
|
const header = vue.computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header));
|
|
@@ -22815,7 +22879,8 @@
|
|
|
22815
22879
|
return vue.createVNode(VPicker, vue.mergeProps(pickerProps, {
|
|
22816
22880
|
"class": ['v-date-picker', props.class],
|
|
22817
22881
|
"style": props.style,
|
|
22818
|
-
"title": title.value
|
|
22882
|
+
"title": title.value,
|
|
22883
|
+
"width": props.showWeek ? 408 : 360
|
|
22819
22884
|
}), {
|
|
22820
22885
|
header: () => slots.header?.(headerSlotProps.value) ?? vue.createVNode(VDatePickerHeader, vue.mergeProps({
|
|
22821
22886
|
"key": "header"
|
|
@@ -23602,7 +23667,7 @@
|
|
|
23602
23667
|
date
|
|
23603
23668
|
};
|
|
23604
23669
|
}
|
|
23605
|
-
const version$1 = "3.3.
|
|
23670
|
+
const version$1 = "3.3.9";
|
|
23606
23671
|
createVuetify$1.version = version$1;
|
|
23607
23672
|
|
|
23608
23673
|
// Vue's inject() can only be used in setup
|
|
@@ -23616,7 +23681,7 @@
|
|
|
23616
23681
|
|
|
23617
23682
|
/* eslint-disable local-rules/sort-imports */
|
|
23618
23683
|
|
|
23619
|
-
const version = "3.3.
|
|
23684
|
+
const version = "3.3.9";
|
|
23620
23685
|
|
|
23621
23686
|
/* eslint-disable local-rules/sort-imports */
|
|
23622
23687
|
|