@vuetify/nightly 3.8.4-master.2025-05-13 → 3.8.5-master.2025-05-14
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/CHANGELOG.md +3 -27
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +3177 -2841
- package/dist/json/importMap-labs.json +36 -32
- package/dist/json/importMap.json +180 -180
- package/dist/json/tags.json +89 -0
- package/dist/json/web-types.json +6734 -5547
- package/dist/vuetify-labs.cjs +272 -82
- package/dist/vuetify-labs.css +5164 -5136
- package/dist/vuetify-labs.d.ts +1371 -309
- package/dist/vuetify-labs.esm.js +272 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +272 -82
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +5 -4
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3047 -3022
- package/dist/vuetify.d.ts +70 -67
- package/dist/vuetify.esm.js +5 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +5 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +4 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.sass +1 -1
- package/lib/components/VBtn/VBtn.css +25 -0
- package/lib/components/VBtn/VBtn.sass +9 -0
- package/lib/components/VBtn/_variables.scss +1 -0
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +3 -1
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- package/lib/composables/dateFormat.d.ts +24 -0
- package/lib/composables/dateFormat.js +112 -0
- package/lib/composables/dateFormat.js.map +1 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +70 -67
- package/lib/framework.js +1 -1
- package/lib/iconsets/mdi.js +2 -1
- package/lib/iconsets/mdi.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.css +4 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +1767 -0
- package/lib/labs/VColorInput/VColorInput.js +129 -0
- package/lib/labs/VColorInput/VColorInput.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.sass +7 -0
- package/lib/labs/VColorInput/_variables.scss +2 -0
- package/lib/labs/VColorInput/index.d.ts +1 -0
- package/lib/labs/VColorInput/index.js +2 -0
- package/lib/labs/VColorInput/index.js.map +1 -0
- package/lib/labs/VDateInput/VDateInput.d.ts +28 -31
- package/lib/labs/VDateInput/VDateInput.js +38 -79
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/package.json +1 -1
@@ -410,6 +410,19 @@
|
|
410
410
|
height: 100%;
|
411
411
|
}
|
412
412
|
|
413
|
+
.v-pagination .v-btn {
|
414
|
+
width: auto;
|
415
|
+
padding-inline: 5px;
|
416
|
+
}
|
417
|
+
.v-pagination .v-btn.v-btn--density-default {
|
418
|
+
min-width: calc(var(--v-btn-height) + 12px);
|
419
|
+
}
|
420
|
+
.v-pagination .v-btn.v-btn--density-comfortable {
|
421
|
+
min-width: calc(var(--v-btn-height) + 0px);
|
422
|
+
}
|
423
|
+
.v-pagination .v-btn.v-btn--density-compact {
|
424
|
+
min-width: calc(var(--v-btn-height) + -8px);
|
425
|
+
}
|
413
426
|
.v-pagination .v-btn {
|
414
427
|
border-radius: 4px;
|
415
428
|
}
|
@@ -419,6 +432,18 @@
|
|
419
432
|
.v-pagination .v-btn__overlay {
|
420
433
|
transition: none;
|
421
434
|
}
|
435
|
+
.v-pagination__prev .v-btn, .v-pagination__next .v-btn {
|
436
|
+
padding-inline: 0;
|
437
|
+
}
|
438
|
+
.v-pagination__prev .v-btn.v-btn--density-default, .v-pagination__next .v-btn.v-btn--density-default {
|
439
|
+
width: calc(var(--v-btn-height) + 12px);
|
440
|
+
}
|
441
|
+
.v-pagination__prev .v-btn.v-btn--density-comfortable, .v-pagination__next .v-btn.v-btn--density-comfortable {
|
442
|
+
width: calc(var(--v-btn-height) + 0px);
|
443
|
+
}
|
444
|
+
.v-pagination__prev .v-btn.v-btn--density-compact, .v-pagination__next .v-btn.v-btn--density-compact {
|
445
|
+
width: calc(var(--v-btn-height) + -8px);
|
446
|
+
}
|
422
447
|
.v-pagination .v-pagination__item--is-active .v-btn__overlay {
|
423
448
|
opacity: var(--v-border-opacity);
|
424
449
|
}
|
@@ -234,6 +234,9 @@
|
|
234
234
|
// VPagination
|
235
235
|
.v-pagination
|
236
236
|
.v-btn
|
237
|
+
width: auto
|
238
|
+
padding-inline: $button-pagination-padding-inline
|
239
|
+
@include button-density('min-width', $button-icon-density)
|
237
240
|
@include tools.rounded($button-pagination-border-radius)
|
238
241
|
|
239
242
|
&--rounded
|
@@ -242,5 +245,11 @@
|
|
242
245
|
&__overlay
|
243
246
|
transition: none
|
244
247
|
|
248
|
+
&__prev,
|
249
|
+
&__next
|
250
|
+
.v-btn
|
251
|
+
padding-inline: 0
|
252
|
+
@include button-density('width', $button-icon-density)
|
253
|
+
|
245
254
|
.v-pagination__item--is-active .v-btn__overlay
|
246
255
|
opacity: $button-pagination-active-overlay-opacity
|
@@ -12,6 +12,7 @@ $button-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !
|
|
12
12
|
$button-banner-actions-padding: 0 8px !default; // @deprecated
|
13
13
|
$button-pagination-active-overlay-opacity: var(--v-border-opacity) !default;
|
14
14
|
$button-pagination-border-radius: settings.$border-radius-root !default;
|
15
|
+
$button-pagination-padding-inline: 5px !default;
|
15
16
|
$button-pagination-rounded-border-radius: map.get(settings.$rounded, 'circle') !default;
|
16
17
|
$button-border-color: settings.$border-color-root !default;
|
17
18
|
$button-border-radius: settings.$border-radius-root !default;
|
@@ -15,7 +15,9 @@ export type VSnackbarQueueSlots<T extends string | SnackbarMessage> = {
|
|
15
15
|
};
|
16
16
|
};
|
17
17
|
};
|
18
|
-
export type SnackbarMessage = string | Omit<VSnackbar['$props'], 'modelValue' | 'onUpdate:modelValue' | 'activator' | 'activatorProps' | 'closeDelay' | 'openDelay' | 'openOnClick' | 'openOnFocus' | 'openOnHover' | '$children' | 'v-slots' | `v-slot:${string}` | keyof VNodeProps
|
18
|
+
export type SnackbarMessage = string | (Omit<VSnackbar['$props'], 'modelValue' | 'onUpdate:modelValue' | 'activator' | 'activatorProps' | 'closeDelay' | 'openDelay' | 'openOnClick' | 'openOnFocus' | 'openOnHover' | 'style' | '$children' | 'v-slots' | `v-slot:${string}` | keyof VNodeProps> & {
|
19
|
+
style?: any;
|
20
|
+
});
|
19
21
|
export declare const makeVSnackbarQueueProps: <Defaults extends {
|
20
22
|
variant?: unknown;
|
21
23
|
offset?: unknown;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSnackbarQueue.js","names":["VBtn","VDefaultsProvider","makeVSnackbarProps","VSnackbar","useLocale","computed","nextTick","shallowRef","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarQueueProps","closable","Boolean","String","closeText","type","default","modelValue","Array","VSnackbarQueue","name","props","emits","val","setup","_ref","emit","slots","t","isActive","isVisible","current","length","oldVal","value","showNext","onAfterLeave","undefined","next","rest","text","onClickClose","btnProps","color","hasActions","actions","_","snackbarProps","filterProps","_createVNode","_Fragment","item","_mergeProps","$event","onClick"],"sources":["../../../src/components/VSnackbarQueue/VSnackbarQueue.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVSnackbarProps, VSnackbar } from '@/components/VSnackbar/VSnackbar'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, nextTick, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType, VNodeProps } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VSnackbarQueueSlots<T extends string | SnackbarMessage> = {\n default: { item: T }\n text: { item: T }\n actions: {\n item: T\n props: {\n onClick: () => void\n }\n }\n}\n\nexport type SnackbarMessage
|
1
|
+
{"version":3,"file":"VSnackbarQueue.js","names":["VBtn","VDefaultsProvider","makeVSnackbarProps","VSnackbar","useLocale","computed","nextTick","shallowRef","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarQueueProps","closable","Boolean","String","closeText","type","default","modelValue","Array","VSnackbarQueue","name","props","emits","val","setup","_ref","emit","slots","t","isActive","isVisible","current","length","oldVal","value","showNext","onAfterLeave","undefined","next","rest","text","onClickClose","btnProps","color","hasActions","actions","_","snackbarProps","filterProps","_createVNode","_Fragment","item","_mergeProps","$event","onClick"],"sources":["../../../src/components/VSnackbarQueue/VSnackbarQueue.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVSnackbarProps, VSnackbar } from '@/components/VSnackbar/VSnackbar'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, nextTick, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType, VNodeProps } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VSnackbarQueueSlots<T extends string | SnackbarMessage> = {\n default: { item: T }\n text: { item: T }\n actions: {\n item: T\n props: {\n onClick: () => void\n }\n }\n}\n\nexport type SnackbarMessage =\n | string\n | (Omit<\n VSnackbar['$props'],\n | 'modelValue'\n | 'onUpdate:modelValue'\n | 'activator'\n | 'activatorProps'\n | 'closeDelay'\n | 'openDelay'\n | 'openOnClick'\n | 'openOnFocus'\n | 'openOnHover'\n | 'style'\n | '$children'\n | 'v-slots'\n | `v-slot:${string}`\n | keyof VNodeProps\n > & { style?: any })\n\nexport const makeVSnackbarQueueProps = propsFactory({\n // TODO: Port this to Snackbar on dev\n closable: [Boolean, String],\n closeText: {\n type: String,\n default: '$vuetify.dismiss',\n },\n modelValue: {\n type: Array as PropType<readonly SnackbarMessage[]>,\n default: () => [],\n },\n\n ...omit(makeVSnackbarProps(), ['modelValue']),\n}, 'VSnackbarQueue')\n\nexport const VSnackbarQueue = genericComponent<new <T extends readonly SnackbarMessage[]> (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => void\n },\n slots: VSnackbarQueueSlots<T[number]>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSnackbarQueue',\n\n props: makeVSnackbarQueueProps(),\n\n emits: {\n 'update:modelValue': (val: SnackbarMessage[]) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n const isActive = shallowRef(false)\n const isVisible = shallowRef(false)\n const current = shallowRef<Exclude<SnackbarMessage, string>>()\n\n watch(() => props.modelValue.length, (val, oldVal) => {\n if (!isVisible.value && val > oldVal) {\n showNext()\n }\n })\n watch(isActive, val => {\n if (val) isVisible.value = true\n })\n\n function onAfterLeave () {\n if (props.modelValue.length) {\n showNext()\n } else {\n current.value = undefined\n isVisible.value = false\n }\n }\n function showNext () {\n const [next, ...rest] = props.modelValue\n emit('update:modelValue', rest)\n current.value = typeof next === 'string' ? { text: next } : next\n nextTick(() => {\n isActive.value = true\n })\n }\n function onClickClose () {\n isActive.value = false\n }\n\n const btnProps = computed(() => ({\n color: typeof props.closable === 'string' ? props.closable : undefined,\n text: t(props.closeText),\n }))\n\n useRender(() => {\n const hasActions = !!(props.closable || slots.actions)\n const { modelValue: _, ...snackbarProps } = VSnackbar.filterProps(props as any)\n\n return (\n <>\n { isVisible.value && !!current.value && (\n slots.default\n ? (\n <VDefaultsProvider defaults={{ VSnackbar: current.value }}>\n { slots.default({ item: current.value }) }\n </VDefaultsProvider>\n ) : (\n <VSnackbar\n { ...snackbarProps }\n { ...current.value }\n v-model={ isActive.value }\n onAfterLeave={ onAfterLeave }\n >\n {{\n text: slots.text ? () => slots.text?.({ item: current.value! }) : undefined,\n actions: hasActions ? () => (\n <>\n { !slots.actions ? (\n <VBtn\n { ...btnProps.value }\n onClick={ onClickClose }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: btnProps.value,\n }}\n >\n { slots.actions({\n item: current.value!,\n props: { onClick: onClickClose },\n })}\n </VDefaultsProvider>\n )}\n </>\n ) : undefined,\n }}\n </VSnackbar>\n )\n )}\n </>\n )\n })\n },\n})\n\nexport type VSnackbarQueue = InstanceType<typeof VSnackbarQueue>\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import type { Ref } from 'vue';
|
2
|
+
export interface DateFormatProps {
|
3
|
+
inputFormat?: string;
|
4
|
+
}
|
5
|
+
export declare const makeDateFormatProps: <Defaults extends {
|
6
|
+
inputFormat?: unknown;
|
7
|
+
} = {}>(defaults?: Defaults | undefined) => {
|
8
|
+
inputFormat: unknown extends Defaults["inputFormat"] ? {
|
9
|
+
type: StringConstructor;
|
10
|
+
validator: (v: string) => boolean;
|
11
|
+
} : Omit<{
|
12
|
+
type: StringConstructor;
|
13
|
+
validator: (v: string) => boolean;
|
14
|
+
}, "type" | "default"> & {
|
15
|
+
type: import("vue").PropType<unknown extends Defaults["inputFormat"] ? string : string | Defaults["inputFormat"]>;
|
16
|
+
default: unknown extends Defaults["inputFormat"] ? string : string | Defaults["inputFormat"];
|
17
|
+
};
|
18
|
+
};
|
19
|
+
export declare function useDateFormat(props: DateFormatProps, locale: Ref<string>): {
|
20
|
+
isValid: (text: string) => boolean;
|
21
|
+
parseDate: (dateString: string) => unknown;
|
22
|
+
formatDate: (value: unknown) => string;
|
23
|
+
parserFormat: Readonly<Ref<string, string>>;
|
24
|
+
};
|
@@ -0,0 +1,112 @@
|
|
1
|
+
// Composables
|
2
|
+
import { useDate } from "./date/date.js"; // Utilities
|
3
|
+
import { toRef } from 'vue';
|
4
|
+
import { consoleWarn, propsFactory } from "../util/index.js"; // Types
|
5
|
+
// Types
|
6
|
+
class DateFormatSpec {
|
7
|
+
constructor(order,
|
8
|
+
// mdy | dmy | ymd
|
9
|
+
separator // / | - | .
|
10
|
+
) {
|
11
|
+
this.order = order;
|
12
|
+
this.separator = separator;
|
13
|
+
}
|
14
|
+
get format() {
|
15
|
+
return this.order.split('').map(sign => `${sign}${sign}`).join(this.separator).replace('yy', 'yyyy');
|
16
|
+
}
|
17
|
+
static canBeParsed(v) {
|
18
|
+
if (typeof v !== 'string') return false;
|
19
|
+
const lowercase = v.toLowerCase();
|
20
|
+
return ['y', 'm', 'd'].every(sign => lowercase.includes(sign)) && ['/', '-', '.'].some(sign => v.includes(sign));
|
21
|
+
}
|
22
|
+
static parse(v) {
|
23
|
+
if (!DateFormatSpec.canBeParsed(v)) {
|
24
|
+
throw new Error(`[${v}] cannot be parsed into date format specification`);
|
25
|
+
}
|
26
|
+
const order = v.toLowerCase().split('').filter((c, i, all) => 'dmy'.includes(c) && all.indexOf(c) === i).join('');
|
27
|
+
const separator = ['/', '-', '.'].find(sign => v.includes(sign));
|
28
|
+
return new DateFormatSpec(order, separator);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
export const makeDateFormatProps = propsFactory({
|
32
|
+
inputFormat: {
|
33
|
+
type: String,
|
34
|
+
validator: v => !v || DateFormatSpec.canBeParsed(v)
|
35
|
+
}
|
36
|
+
}, 'date-format');
|
37
|
+
export function useDateFormat(props, locale) {
|
38
|
+
const adapter = useDate();
|
39
|
+
function inferFromLocale() {
|
40
|
+
const localeForDateFormat = locale.value ?? 'en-US';
|
41
|
+
const formatFromLocale = Intl.DateTimeFormat(localeForDateFormat, {
|
42
|
+
year: 'numeric',
|
43
|
+
month: '2-digit',
|
44
|
+
day: '2-digit'
|
45
|
+
}).format(adapter.toJsDate(adapter.parseISO('1999-12-07'))).replace(/(07)|(٠٧)|(٢٩)|(۱۶)|(০৭)/, 'dd').replace(/(12)|(١٢)|(٠٨)|(۰۹)|(১২)/, 'mm').replace(/(1999)|(2542)|(١٩٩٩)|(١٤٢٠)|(۱۳۷۸)|(১৯৯৯)/, 'yyyy').replace(/[^ymd\-/.]/g, '').replace(/\.$/, '');
|
46
|
+
if (!DateFormatSpec.canBeParsed(formatFromLocale)) {
|
47
|
+
consoleWarn(`Date format inferred from locale [${localeForDateFormat}] is invalid: [${formatFromLocale}]`);
|
48
|
+
return 'mm/dd/yyyy';
|
49
|
+
}
|
50
|
+
return formatFromLocale;
|
51
|
+
}
|
52
|
+
const currentFormat = toRef(() => {
|
53
|
+
return DateFormatSpec.canBeParsed(props.inputFormat) ? DateFormatSpec.parse(props.inputFormat) : DateFormatSpec.parse(inferFromLocale());
|
54
|
+
});
|
55
|
+
function parseDate(dateString) {
|
56
|
+
function parseDateParts(text) {
|
57
|
+
const parts = text.trim().split(currentFormat.value.separator);
|
58
|
+
return {
|
59
|
+
y: Number(parts[currentFormat.value.order.indexOf('y')]),
|
60
|
+
m: Number(parts[currentFormat.value.order.indexOf('m')]),
|
61
|
+
d: Number(parts[currentFormat.value.order.indexOf('d')])
|
62
|
+
};
|
63
|
+
}
|
64
|
+
function validateDateParts(dateParts) {
|
65
|
+
const {
|
66
|
+
y: year,
|
67
|
+
m: month,
|
68
|
+
d: day
|
69
|
+
} = dateParts;
|
70
|
+
if (!year || !month || !day) return null;
|
71
|
+
if (month < 1 || month > 12) return null;
|
72
|
+
if (day < 1 || day > 31) return null;
|
73
|
+
return {
|
74
|
+
year: autoFixYear(year),
|
75
|
+
month,
|
76
|
+
day
|
77
|
+
};
|
78
|
+
}
|
79
|
+
function autoFixYear(year) {
|
80
|
+
const currentYear = adapter.getYear(adapter.date());
|
81
|
+
if (year > 100 || currentYear % 100 >= 50) {
|
82
|
+
return year;
|
83
|
+
}
|
84
|
+
const currentCentury = ~~(currentYear / 100) * 100;
|
85
|
+
return year < 50 ? currentCentury + year : currentCentury - 100 + year;
|
86
|
+
}
|
87
|
+
const dateParts = parseDateParts(dateString);
|
88
|
+
const validatedParts = validateDateParts(dateParts);
|
89
|
+
if (!validatedParts) return null;
|
90
|
+
const {
|
91
|
+
year,
|
92
|
+
month,
|
93
|
+
day
|
94
|
+
} = validatedParts;
|
95
|
+
const pad = v => String(v).padStart(2, '0');
|
96
|
+
return adapter.parseISO(`${year}-${pad(month)}-${pad(day)}`);
|
97
|
+
}
|
98
|
+
function isValid(text) {
|
99
|
+
return !!parseDate(text);
|
100
|
+
}
|
101
|
+
function formatDate(value) {
|
102
|
+
const parts = adapter.toISO(value).split('-');
|
103
|
+
return currentFormat.value.order.split('').map(sign => parts['ymd'.indexOf(sign)]).join(currentFormat.value.separator);
|
104
|
+
}
|
105
|
+
return {
|
106
|
+
isValid,
|
107
|
+
parseDate,
|
108
|
+
formatDate,
|
109
|
+
parserFormat: toRef(() => currentFormat.value.format)
|
110
|
+
};
|
111
|
+
}
|
112
|
+
//# sourceMappingURL=dateFormat.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dateFormat.js","names":["useDate","toRef","consoleWarn","propsFactory","DateFormatSpec","constructor","order","separator","format","split","map","sign","join","replace","canBeParsed","v","lowercase","toLowerCase","every","includes","some","parse","Error","filter","c","i","all","indexOf","find","makeDateFormatProps","inputFormat","type","String","validator","useDateFormat","props","locale","adapter","inferFromLocale","localeForDateFormat","value","formatFromLocale","Intl","DateTimeFormat","year","month","day","toJsDate","parseISO","currentFormat","parseDate","dateString","parseDateParts","text","parts","trim","y","Number","m","d","validateDateParts","dateParts","autoFixYear","currentYear","getYear","date","currentCentury","validatedParts","pad","padStart","isValid","formatDate","toISO","parserFormat"],"sources":["../../src/composables/dateFormat.ts"],"sourcesContent":["// Composables\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Types\nexport interface DateFormatProps {\n inputFormat?: string\n}\n\nclass DateFormatSpec {\n constructor (\n public readonly order: string, // mdy | dmy | ymd\n public readonly separator: string // / | - | .\n ) { }\n\n get format () {\n return this.order.split('')\n .map(sign => `${sign}${sign}`)\n .join(this.separator)\n .replace('yy', 'yyyy')\n }\n\n static canBeParsed (v: any) {\n if (typeof v !== 'string') return false\n const lowercase = v.toLowerCase()\n return ['y', 'm', 'd'].every(sign => lowercase.includes(sign)) &&\n ['/', '-', '.'].some(sign => v.includes(sign))\n }\n\n static parse (v: string) {\n if (!DateFormatSpec.canBeParsed(v)) {\n throw new Error(`[${v}] cannot be parsed into date format specification`)\n }\n const order = v.toLowerCase().split('')\n .filter((c, i, all) => 'dmy'.includes(c) && all.indexOf(c) === i)\n .join('')\n const separator = ['/', '-', '.'].find(sign => v.includes(sign))!\n return new DateFormatSpec(order, separator)\n }\n}\n\nexport const makeDateFormatProps = propsFactory({\n inputFormat: {\n type: String,\n validator: (v: string) => !v || DateFormatSpec.canBeParsed(v),\n },\n}, 'date-format')\n\nexport function useDateFormat (props: DateFormatProps, locale: Ref<string>) {\n const adapter = useDate()\n\n function inferFromLocale () {\n const localeForDateFormat = locale.value ?? 'en-US'\n const formatFromLocale = Intl.DateTimeFormat(localeForDateFormat, { year: 'numeric', month: '2-digit', day: '2-digit' })\n .format(adapter.toJsDate(adapter.parseISO('1999-12-07')))\n .replace(/(07)|(٠٧)|(٢٩)|(۱۶)|(০৭)/, 'dd')\n .replace(/(12)|(١٢)|(٠٨)|(۰۹)|(১২)/, 'mm')\n .replace(/(1999)|(2542)|(١٩٩٩)|(١٤٢٠)|(۱۳۷۸)|(১৯৯৯)/, 'yyyy')\n .replace(/[^ymd\\-/.]/g, '')\n .replace(/\\.$/, '')\n\n if (!DateFormatSpec.canBeParsed(formatFromLocale)) {\n consoleWarn(`Date format inferred from locale [${localeForDateFormat}] is invalid: [${formatFromLocale}]`)\n return 'mm/dd/yyyy'\n }\n\n return formatFromLocale\n }\n\n const currentFormat = toRef(() => {\n return DateFormatSpec.canBeParsed(props.inputFormat)\n ? DateFormatSpec.parse(props.inputFormat!)\n : DateFormatSpec.parse(inferFromLocale())\n })\n\n function parseDate (dateString: string) {\n function parseDateParts (text: string): Record<'y' |'m' | 'd', number> {\n const parts = text.trim().split(currentFormat.value.separator)\n\n return {\n y: Number(parts[currentFormat.value.order.indexOf('y')]),\n m: Number(parts[currentFormat.value.order.indexOf('m')]),\n d: Number(parts[currentFormat.value.order.indexOf('d')]),\n }\n }\n\n function validateDateParts (dateParts: Record<string, number>) {\n const { y: year, m: month, d: day } = dateParts\n if (!year || !month || !day) return null\n if (month < 1 || month > 12) return null\n if (day < 1 || day > 31) return null\n\n return { year: autoFixYear(year), month, day }\n }\n\n function autoFixYear (year: number) {\n const currentYear = adapter.getYear(adapter.date())\n if (year > 100 || currentYear % 100 >= 50) {\n return year\n }\n\n const currentCentury = ~~(currentYear / 100) * 100\n\n return year < 50\n ? currentCentury + year\n : (currentCentury - 100) + year\n }\n\n const dateParts = parseDateParts(dateString)\n const validatedParts = validateDateParts(dateParts)\n\n if (!validatedParts) return null\n\n const { year, month, day } = validatedParts\n\n const pad = (v: number) => String(v).padStart(2, '0')\n\n return adapter.parseISO(`${year}-${pad(month)}-${pad(day)}`)\n }\n\n function isValid (text: string) {\n return !!parseDate(text)\n }\n\n function formatDate (value: unknown) {\n const parts = adapter.toISO(value).split('-')\n\n return currentFormat.value.order.split('')\n .map(sign => parts['ymd'.indexOf(sign)])\n .join(currentFormat.value.separator)\n }\n\n return {\n isValid,\n parseDate,\n formatDate,\n parserFormat: toRef(() => currentFormat.value.format),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.
|
19
|
+
export const version = "3.8.5-master.2025-05-14";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2404,7 +2404,9 @@ declare const VSnackbar: {
|
|
2404
2404
|
}>>;
|
2405
2405
|
type VSnackbar = InstanceType<typeof VSnackbar>;
|
2406
2406
|
|
2407
|
-
type SnackbarMessage = string | Omit<VSnackbar['$props'], 'modelValue' | 'onUpdate:modelValue' | 'activator' | 'activatorProps' | 'closeDelay' | 'openDelay' | 'openOnClick' | 'openOnFocus' | 'openOnHover' | '$children' | 'v-slots' | `v-slot:${string}` | keyof VNodeProps
|
2407
|
+
type SnackbarMessage = string | (Omit<VSnackbar['$props'], 'modelValue' | 'onUpdate:modelValue' | 'activator' | 'activatorProps' | 'closeDelay' | 'openDelay' | 'openOnClick' | 'openOnFocus' | 'openOnHover' | 'style' | '$children' | 'v-slots' | `v-slot:${string}` | keyof VNodeProps> & {
|
2408
|
+
style?: any;
|
2409
|
+
});
|
2408
2410
|
|
2409
2411
|
interface VuetifyOptions {
|
2410
2412
|
aliases?: Record<string, any>;
|
@@ -2537,41 +2539,42 @@ declare module 'vue' {
|
|
2537
2539
|
$children?: VNodeChild
|
2538
2540
|
}
|
2539
2541
|
export interface GlobalComponents {
|
2540
|
-
|
2542
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2541
2543
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2542
2544
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2543
2545
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2546
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2547
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
2548
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2549
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2544
2550
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2545
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2546
2551
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2547
2552
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2548
2553
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2549
|
-
|
2550
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2551
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2554
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2552
2555
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2553
2556
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2554
2557
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2555
|
-
|
2556
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2557
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
2558
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2558
2559
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2559
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2560
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2561
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2562
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2563
2560
|
VCard: typeof import('vuetify/components')['VCard']
|
2564
2561
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2565
2562
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2566
2563
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2567
2564
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2568
2565
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2566
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2567
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2568
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2569
2569
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2570
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
2571
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2572
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2573
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2570
2574
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2571
|
-
|
2575
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2572
2576
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2573
2577
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2574
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2575
2578
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2576
2579
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2577
2580
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2579,13 +2582,6 @@ declare module 'vue' {
|
|
2579
2582
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2580
2583
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2581
2584
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2582
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2583
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
2584
|
-
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2585
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2586
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2587
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2588
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2589
2585
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2590
2586
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2591
2587
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
@@ -2593,23 +2589,29 @@ declare module 'vue' {
|
|
2593
2589
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2594
2590
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2595
2591
|
VDivider: typeof import('vuetify/components')['VDivider']
|
2592
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2593
|
+
VFab: typeof import('vuetify/components')['VFab']
|
2594
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2596
2595
|
VField: typeof import('vuetify/components')['VField']
|
2597
2596
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2598
|
-
|
2597
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2598
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2599
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2600
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2601
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2599
2602
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2603
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2600
2604
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2601
2605
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2602
2606
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2603
2607
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2604
2608
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2605
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
2606
2609
|
VImg: typeof import('vuetify/components')['VImg']
|
2607
|
-
|
2610
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
2608
2611
|
VInput: typeof import('vuetify/components')['VInput']
|
2612
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
2609
2613
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2610
2614
|
VItem: typeof import('vuetify/components')['VItem']
|
2611
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
2612
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
2613
2615
|
VList: typeof import('vuetify/components')['VList']
|
2614
2616
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2615
2617
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2620,70 +2622,72 @@ declare module 'vue' {
|
|
2620
2622
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2621
2623
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2622
2624
|
VMain: typeof import('vuetify/components')['VMain']
|
2625
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
2623
2626
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2624
|
-
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2625
2627
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2628
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2629
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2626
2630
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2627
|
-
|
2631
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
2632
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2628
2633
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2629
2634
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2630
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2631
2635
|
VRating: typeof import('vuetify/components')['VRating']
|
2632
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2633
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
2634
2636
|
VSelect: typeof import('vuetify/components')['VSelect']
|
2637
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2638
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2639
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2635
2640
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2636
2641
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2637
|
-
|
2642
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2638
2643
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2639
2644
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2640
|
-
|
2641
|
-
|
2645
|
+
VStepper: typeof import('vuetify/components')['VStepper']
|
2646
|
+
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2647
|
+
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2648
|
+
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2649
|
+
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2650
|
+
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2642
2651
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2643
|
-
VTable: typeof import('vuetify/components')['VTable']
|
2644
|
-
VTab: typeof import('vuetify/components')['VTab']
|
2645
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
2646
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2647
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2648
2652
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2649
2653
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2654
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2655
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2650
2656
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2651
2657
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2658
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2652
2659
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2653
2660
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2654
2661
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2655
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2656
2662
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2657
2663
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2664
|
+
VTab: typeof import('vuetify/components')['VTab']
|
2665
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
2666
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2667
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2658
2668
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2659
2669
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2660
2670
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2661
|
-
|
2662
|
-
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2663
|
-
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2664
|
-
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2665
|
-
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2666
|
-
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2671
|
+
VForm: typeof import('vuetify/components')['VForm']
|
2667
2672
|
VHover: typeof import('vuetify/components')['VHover']
|
2673
|
+
VContainer: typeof import('vuetify/components')['VContainer']
|
2674
|
+
VCol: typeof import('vuetify/components')['VCol']
|
2675
|
+
VRow: typeof import('vuetify/components')['VRow']
|
2676
|
+
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2668
2677
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2669
2678
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2670
2679
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2671
2680
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2672
2681
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2673
2682
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2674
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
2675
2683
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2676
2684
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2677
|
-
VContainer: typeof import('vuetify/components')['VContainer']
|
2678
|
-
VCol: typeof import('vuetify/components')['VCol']
|
2679
|
-
VRow: typeof import('vuetify/components')['VRow']
|
2680
|
-
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2681
2685
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2686
|
+
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2682
2687
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2683
2688
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2684
2689
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2685
2690
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2686
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2687
2691
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2688
2692
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2689
2693
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2700,29 +2704,28 @@ declare module 'vue' {
|
|
2700
2704
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2701
2705
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2702
2706
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2703
|
-
|
2704
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2705
|
-
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2706
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2707
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2708
|
-
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2709
|
-
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2710
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2707
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
2711
2708
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2712
2709
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2713
2710
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2714
2711
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2715
2712
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2716
2713
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2717
|
-
|
2718
|
-
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2719
|
-
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2720
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2721
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2722
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2714
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2723
2715
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2724
2716
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2725
2717
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2718
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2719
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2720
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2721
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2722
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2723
|
+
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2724
|
+
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2725
|
+
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2726
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2727
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2728
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2726
2729
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2727
2730
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2728
2731
|
}
|
package/lib/framework.js
CHANGED
package/lib/iconsets/mdi.js
CHANGED
@@ -46,7 +46,8 @@ const aliases = {
|
|
46
46
|
treeviewCollapse: 'mdi-menu-down',
|
47
47
|
treeviewExpand: 'mdi-menu-right',
|
48
48
|
eyeDropper: 'mdi-eyedropper',
|
49
|
-
upload: 'mdi-cloud-upload'
|
49
|
+
upload: 'mdi-cloud-upload',
|
50
|
+
color: 'mdi-palette'
|
50
51
|
};
|
51
52
|
const mdi = {
|
52
53
|
// Not using mergeProps here, functional components merge props by default (?)
|