@vuetify/nightly 3.8.0-beta.0-dev.2025-03-26 → 3.8.0-beta.0-dev.2025-03-31
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 +7 -3
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +3154 -3038
- package/dist/json/importMap-labs.json +24 -20
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +34 -0
- package/dist/json/web-types.json +5829 -5511
- package/dist/vuetify-labs.cjs +204 -13
- package/dist/vuetify-labs.css +4590 -4409
- package/dist/vuetify-labs.d.ts +527 -230
- package/dist/vuetify-labs.esm.js +204 -13
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +204 -13
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +31 -13
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2980 -2976
- package/dist/vuetify.d.ts +118 -143
- package/dist/vuetify.esm.js +31 -13
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +31 -13
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +18 -17
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VConfirmEdit/VConfirmEdit.d.ts +31 -6
- package/lib/components/VConfirmEdit/VConfirmEdit.js +17 -2
- package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +33 -78
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +33 -78
- package/lib/composables/calendar.d.ts +12 -35
- package/lib/composables/calendar.js +11 -8
- package/lib/composables/calendar.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +58 -57
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +33 -78
- package/lib/labs/VDateInput/VDateInput.d.ts +33 -78
- package/lib/labs/VDateInput/VDateInput.js +4 -0
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.css +178 -0
- package/lib/labs/VIconBtn/VIconBtn.d.ts +608 -0
- package/lib/labs/VIconBtn/VIconBtn.js +184 -0
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -0
- package/lib/labs/VIconBtn/VIconBtn.scss +110 -0
- package/lib/labs/VIconBtn/_variables.scss +36 -0
- package/lib/labs/VIconBtn/index.d.ts +1 -0
- package/lib/labs/VIconBtn/index.js +2 -0
- package/lib/labs/VIconBtn/index.js.map +1 -0
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/styles/main.css +4 -0
- package/lib/styles/settings/_utilities.scss +5 -0
- package/package.json +1 -1
package/dist/vuetify-labs.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.0-beta.0-dev.2025-03-
|
2
|
+
* Vuetify v3.8.0-beta.0-dev.2025-03-31
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -18439,6 +18439,10 @@ const makeVConfirmEditProps = propsFactory({
|
|
18439
18439
|
type: String,
|
18440
18440
|
default: '$vuetify.confirmEdit.ok'
|
18441
18441
|
},
|
18442
|
+
disabled: {
|
18443
|
+
type: [Boolean, Array],
|
18444
|
+
default: undefined
|
18445
|
+
},
|
18442
18446
|
hideActions: Boolean
|
18443
18447
|
}, 'VConfirmEdit');
|
18444
18448
|
const VConfirmEdit = genericComponent()({
|
@@ -18465,6 +18469,17 @@ const VConfirmEdit = genericComponent()({
|
|
18465
18469
|
const isPristine = computed(() => {
|
18466
18470
|
return deepEqual(model.value, internalModel.value);
|
18467
18471
|
});
|
18472
|
+
function isActionDisabled(action) {
|
18473
|
+
if (typeof props.disabled === 'boolean') {
|
18474
|
+
return props.disabled;
|
18475
|
+
}
|
18476
|
+
if (Array.isArray(props.disabled)) {
|
18477
|
+
return props.disabled.includes(action);
|
18478
|
+
}
|
18479
|
+
return isPristine.value;
|
18480
|
+
}
|
18481
|
+
const isSaveDisabled = computed(() => isActionDisabled('save'));
|
18482
|
+
const isCancelDisabled = computed(() => isActionDisabled('cancel'));
|
18468
18483
|
function save() {
|
18469
18484
|
model.value = internalModel.value;
|
18470
18485
|
emit('save', internalModel.value);
|
@@ -18475,13 +18490,13 @@ const VConfirmEdit = genericComponent()({
|
|
18475
18490
|
}
|
18476
18491
|
function actions(actionsProps) {
|
18477
18492
|
return createVNode(Fragment, null, [createVNode(VBtn, mergeProps({
|
18478
|
-
"disabled":
|
18493
|
+
"disabled": isCancelDisabled.value,
|
18479
18494
|
"variant": "text",
|
18480
18495
|
"color": props.color,
|
18481
18496
|
"onClick": cancel,
|
18482
18497
|
"text": t(props.cancelText)
|
18483
18498
|
}, actionsProps), null), createVNode(VBtn, mergeProps({
|
18484
|
-
"disabled":
|
18499
|
+
"disabled": isSaveDisabled.value,
|
18485
18500
|
"variant": "text",
|
18486
18501
|
"color": props.color,
|
18487
18502
|
"onClick": save,
|
@@ -21936,7 +21951,10 @@ const makeCalendarProps = propsFactory({
|
|
21936
21951
|
type: String,
|
21937
21952
|
default: 'dynamic'
|
21938
21953
|
},
|
21939
|
-
firstDayOfWeek:
|
21954
|
+
firstDayOfWeek: {
|
21955
|
+
type: [Number, String],
|
21956
|
+
default: 0
|
21957
|
+
}
|
21940
21958
|
}, 'calendar');
|
21941
21959
|
function useCalendar(props) {
|
21942
21960
|
const adapter = useDate();
|
@@ -21957,15 +21975,15 @@ function useCalendar(props) {
|
|
21957
21975
|
const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
|
21958
21976
|
return adapter.setMonth(date, value);
|
21959
21977
|
}, v => adapter.getMonth(v));
|
21960
|
-
const defaultFirstDayOfWeek = computed(() => {
|
21961
|
-
return props.firstDayOfWeek ?? props.weekdays[0];
|
21962
|
-
});
|
21963
21978
|
const weekDays = computed(() => {
|
21964
|
-
const firstDayOfWeek = Number(props.firstDayOfWeek
|
21965
|
-
|
21979
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
21980
|
+
|
21981
|
+
// Always generate all days, regardless of props.weekdays
|
21982
|
+
return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
|
21966
21983
|
});
|
21967
21984
|
const weeksInMonth = computed(() => {
|
21968
|
-
const
|
21985
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
21986
|
+
const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
|
21969
21987
|
const days = weeks.flat();
|
21970
21988
|
|
21971
21989
|
// Make sure there's always 6 weeks in month (6 * 7 days)
|
@@ -22043,7 +22061,7 @@ function useCalendar(props) {
|
|
22043
22061
|
if (typeof props.allowedDates === 'function') {
|
22044
22062
|
return !props.allowedDates(date);
|
22045
22063
|
}
|
22046
|
-
return
|
22064
|
+
return !props.weekdays.includes(adapter.toJsDate(date).getDay());
|
22047
22065
|
}
|
22048
22066
|
return {
|
22049
22067
|
displayValue,
|
@@ -28979,6 +28997,7 @@ const VDateInput = genericComponent()({
|
|
28979
28997
|
const menu = shallowRef(false);
|
28980
28998
|
const isEditingInput = shallowRef(false);
|
28981
28999
|
const vDateInputRef = ref();
|
29000
|
+
const disabledActions = ref(['save']);
|
28982
29001
|
function format(date) {
|
28983
29002
|
if (typeof props.displayFormat === 'function') {
|
28984
29003
|
return props.displayFormat(date);
|
@@ -29009,6 +29028,7 @@ const VDateInput = genericComponent()({
|
|
29009
29028
|
watch(menu, val => {
|
29010
29029
|
if (val) return;
|
29011
29030
|
isEditingInput.value = false;
|
29031
|
+
disabledActions.value = ['save'];
|
29012
29032
|
});
|
29013
29033
|
function onKeydown(e) {
|
29014
29034
|
if (e.key !== 'Enter') return;
|
@@ -29088,6 +29108,7 @@ const VDateInput = genericComponent()({
|
|
29088
29108
|
default: () => [createVNode(VConfirmEdit, mergeProps(confirmEditProps, {
|
29089
29109
|
"modelValue": model.value,
|
29090
29110
|
"onUpdate:modelValue": $event => model.value = $event,
|
29111
|
+
"disabled": disabledActions.value,
|
29091
29112
|
"onSave": onSave,
|
29092
29113
|
"onCancel": onCancel
|
29093
29114
|
}), {
|
@@ -29110,6 +29131,7 @@ const VDateInput = genericComponent()({
|
|
29110
29131
|
}
|
29111
29132
|
emit('save', value);
|
29112
29133
|
vDateInputRef.value?.blur();
|
29134
|
+
disabledActions.value = [];
|
29113
29135
|
}
|
29114
29136
|
return createVNode(VDatePicker, mergeProps(datePickerProps, {
|
29115
29137
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
@@ -29447,6 +29469,174 @@ const VFileUpload = genericComponent()({
|
|
29447
29469
|
|
29448
29470
|
// Types
|
29449
29471
|
|
29472
|
+
const makeVIconBtnProps = propsFactory({
|
29473
|
+
active: {
|
29474
|
+
type: Boolean,
|
29475
|
+
default: undefined
|
29476
|
+
},
|
29477
|
+
activeColor: String,
|
29478
|
+
activeIcon: [String, Function, Object],
|
29479
|
+
activeVariant: String,
|
29480
|
+
baseVariant: {
|
29481
|
+
type: String,
|
29482
|
+
default: 'tonal'
|
29483
|
+
},
|
29484
|
+
disabled: Boolean,
|
29485
|
+
height: [Number, String],
|
29486
|
+
width: [Number, String],
|
29487
|
+
hideOverlay: Boolean,
|
29488
|
+
icon: [String, Function, Object],
|
29489
|
+
iconColor: String,
|
29490
|
+
iconSize: {
|
29491
|
+
type: [Number, String],
|
29492
|
+
default: 'default'
|
29493
|
+
},
|
29494
|
+
iconSizes: {
|
29495
|
+
type: Array,
|
29496
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
29497
|
+
},
|
29498
|
+
loading: Boolean,
|
29499
|
+
opacity: [Number, String],
|
29500
|
+
readonly: Boolean,
|
29501
|
+
rotate: [Number, String],
|
29502
|
+
size: {
|
29503
|
+
type: [Number, String],
|
29504
|
+
default: 'default'
|
29505
|
+
},
|
29506
|
+
sizes: {
|
29507
|
+
type: Array,
|
29508
|
+
default: () => [['x-small', 16], ['small', 24], ['default', 40], ['large', 48], ['x-large', 56]]
|
29509
|
+
},
|
29510
|
+
text: {
|
29511
|
+
type: [String, Number, Boolean],
|
29512
|
+
default: undefined
|
29513
|
+
},
|
29514
|
+
...makeBorderProps(),
|
29515
|
+
...makeComponentProps(),
|
29516
|
+
...makeElevationProps(),
|
29517
|
+
...makeRoundedProps(),
|
29518
|
+
...makeTagProps({
|
29519
|
+
tag: 'button'
|
29520
|
+
}),
|
29521
|
+
...makeThemeProps(),
|
29522
|
+
...makeVariantProps({
|
29523
|
+
variant: 'flat'
|
29524
|
+
})
|
29525
|
+
}, 'VIconBtn');
|
29526
|
+
const VIconBtn = genericComponent()({
|
29527
|
+
name: 'VIconBtn',
|
29528
|
+
props: makeVIconBtnProps(),
|
29529
|
+
emits: {
|
29530
|
+
'update:active': value => true
|
29531
|
+
},
|
29532
|
+
setup(props, _ref) {
|
29533
|
+
let {
|
29534
|
+
attrs,
|
29535
|
+
slots
|
29536
|
+
} = _ref;
|
29537
|
+
const isActive = useProxiedModel(props, 'active');
|
29538
|
+
const {
|
29539
|
+
themeClasses
|
29540
|
+
} = provideTheme(props);
|
29541
|
+
const {
|
29542
|
+
borderClasses
|
29543
|
+
} = useBorder(props);
|
29544
|
+
const {
|
29545
|
+
elevationClasses
|
29546
|
+
} = useElevation(props);
|
29547
|
+
const {
|
29548
|
+
roundedClasses
|
29549
|
+
} = useRounded(props);
|
29550
|
+
const {
|
29551
|
+
colorClasses,
|
29552
|
+
colorStyles,
|
29553
|
+
variantClasses
|
29554
|
+
} = useVariant(toRef(() => ({
|
29555
|
+
color: (() => {
|
29556
|
+
if (props.disabled) return undefined;
|
29557
|
+
if (!isActive.value) return props.color;
|
29558
|
+
// Use an inline fallback as opposed to setting a default color
|
29559
|
+
// because non-toggle buttons are default flat whereas toggle
|
29560
|
+
// buttons are default tonal and active flat. The exact use
|
29561
|
+
// case for this is a toggle button with no active color.
|
29562
|
+
return props.activeColor ?? props.color ?? 'surface-variant';
|
29563
|
+
})(),
|
29564
|
+
variant: (() => {
|
29565
|
+
if (isActive.value === undefined) return props.variant;
|
29566
|
+
if (isActive.value) return props.activeVariant ?? props.variant;
|
29567
|
+
return props.baseVariant ?? props.variant;
|
29568
|
+
})()
|
29569
|
+
})));
|
29570
|
+
const btnSizeMap = new Map(props.sizes);
|
29571
|
+
const iconSizeMap = new Map(props.iconSizes);
|
29572
|
+
function onClick() {
|
29573
|
+
if (props.disabled || props.readonly || isActive.value === undefined || props.tag === 'a' && attrs.href) return;
|
29574
|
+
isActive.value = !isActive.value;
|
29575
|
+
}
|
29576
|
+
useRender(() => {
|
29577
|
+
const icon = isActive.value ? props.activeIcon ?? props.icon : props.icon;
|
29578
|
+
const size = props.size;
|
29579
|
+
const hasNamedSize = btnSizeMap.has(size);
|
29580
|
+
const btnSize = hasNamedSize ? btnSizeMap.get(size) : size;
|
29581
|
+
const btnHeight = props.height ?? btnSize;
|
29582
|
+
const btnWidth = props.width ?? btnSize;
|
29583
|
+
const _iconSize = hasNamedSize ? size : props.iconSize ?? size;
|
29584
|
+
const iconSize = iconSizeMap.get(_iconSize) ?? _iconSize;
|
29585
|
+
const iconProps = {
|
29586
|
+
icon,
|
29587
|
+
size: iconSize,
|
29588
|
+
iconColor: props.iconColor,
|
29589
|
+
opacity: props.opacity
|
29590
|
+
};
|
29591
|
+
return createVNode(props.tag, {
|
29592
|
+
"class": [{
|
29593
|
+
'v-icon-btn': true,
|
29594
|
+
'v-icon-btn--active': isActive.value,
|
29595
|
+
'v-icon-btn--disabled': props.disabled,
|
29596
|
+
'v-icon-btn--loading': props.loading,
|
29597
|
+
'v-icon-btn--readonly': props.readonly,
|
29598
|
+
[`v-icon-btn--${props.size}`]: true
|
29599
|
+
}, themeClasses.value, colorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
29600
|
+
"style": [{
|
29601
|
+
'--v-icon-btn-rotate': convertToUnit(props.rotate, 'deg'),
|
29602
|
+
'--v-icon-btn-height': convertToUnit(btnHeight),
|
29603
|
+
'--v-icon-btn-width': convertToUnit(btnWidth)
|
29604
|
+
}, colorStyles.value, props.style],
|
29605
|
+
"tabindex": props.disabled || props.readonly ? -1 : 0,
|
29606
|
+
"onClick": onClick
|
29607
|
+
}, {
|
29608
|
+
default: () => [genOverlays(!props.hideOverlay, 'v-icon-btn'), createVNode("div", {
|
29609
|
+
"class": "v-icon-btn__content",
|
29610
|
+
"data-no-activator": ""
|
29611
|
+
}, [!slots.default && icon ? createVNode(VIcon, mergeProps({
|
29612
|
+
"key": "content-icon"
|
29613
|
+
}, iconProps), null) : createVNode(VDefaultsProvider, {
|
29614
|
+
"key": "content-defaults",
|
29615
|
+
"disabled": !icon,
|
29616
|
+
"defaults": {
|
29617
|
+
VIcon: {
|
29618
|
+
...iconProps
|
29619
|
+
}
|
29620
|
+
}
|
29621
|
+
}, {
|
29622
|
+
default: () => slots.default?.() ?? toDisplayString(props.text)
|
29623
|
+
})]), !!props.loading && createVNode("span", {
|
29624
|
+
"key": "loader",
|
29625
|
+
"class": "v-icon-btn__loader"
|
29626
|
+
}, [slots.loader?.() ?? createVNode(VProgressCircular, {
|
29627
|
+
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
29628
|
+
"indeterminate": "disable-shrink",
|
29629
|
+
"width": "2",
|
29630
|
+
"size": iconSize
|
29631
|
+
}, null)])]
|
29632
|
+
});
|
29633
|
+
});
|
29634
|
+
return {};
|
29635
|
+
}
|
29636
|
+
});
|
29637
|
+
|
29638
|
+
// Types
|
29639
|
+
|
29450
29640
|
const makeVStepperVerticalActionsProps = propsFactory({
|
29451
29641
|
...makeVStepperActionsProps()
|
29452
29642
|
}, 'VStepperActions');
|
@@ -30926,6 +31116,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
30926
31116
|
VForm: VForm,
|
30927
31117
|
VHover: VHover,
|
30928
31118
|
VIcon: VIcon,
|
31119
|
+
VIconBtn: VIconBtn,
|
30929
31120
|
VImg: VImg,
|
30930
31121
|
VInfiniteScroll: VInfiniteScroll,
|
30931
31122
|
VInput: VInput,
|
@@ -31345,7 +31536,7 @@ function createVuetify$1() {
|
|
31345
31536
|
};
|
31346
31537
|
});
|
31347
31538
|
}
|
31348
|
-
const version$1 = "3.8.0-beta.0-dev.2025-03-
|
31539
|
+
const version$1 = "3.8.0-beta.0-dev.2025-03-31";
|
31349
31540
|
createVuetify$1.version = version$1;
|
31350
31541
|
|
31351
31542
|
// Vue's inject() can only be used in setup
|
@@ -31630,7 +31821,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
31630
31821
|
|
31631
31822
|
/* eslint-disable local-rules/sort-imports */
|
31632
31823
|
|
31633
|
-
const version = "3.8.0-beta.0-dev.2025-03-
|
31824
|
+
const version = "3.8.0-beta.0-dev.2025-03-31";
|
31634
31825
|
|
31635
31826
|
/* eslint-disable local-rules/sort-imports */
|
31636
31827
|
|