vuetify 3.5.9 → 3.5.10
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/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +106 -6
- package/dist/json/importMap-labs.json +8 -4
- package/dist/json/importMap.json +122 -122
- package/dist/json/tags.json +30 -0
- package/dist/json/web-types.json +582 -15
- package/dist/vuetify-labs.css +2456 -2414
- package/dist/vuetify-labs.d.ts +2711 -1996
- package/dist/vuetify-labs.esm.js +518 -40
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +518 -39
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +681 -676
- package/dist/vuetify.d.ts +2356 -2303
- package/dist/vuetify.esm.js +605 -330
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +604 -328
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1106 -1098
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +15 -15
- package/lib/components/VApp/index.d.mts +8 -8
- package/lib/components/VAppBar/index.d.mts +7 -7
- package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +94 -94
- package/lib/components/VAvatar/index.d.mts +8 -8
- package/lib/components/VBadge/index.d.mts +7 -7
- package/lib/components/VBanner/index.d.mts +20 -20
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +27 -26
- package/lib/components/VBtnGroup/index.d.mts +8 -8
- package/lib/components/VCard/index.d.mts +32 -32
- package/lib/components/VCarousel/index.d.mts +6 -6
- package/lib/components/VCheckbox/index.d.mts +44 -44
- package/lib/components/VChip/index.d.mts +7 -7
- package/lib/components/VCode/index.d.mts +8 -8
- package/lib/components/VCombobox/VCombobox.mjs +5 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +94 -94
- package/lib/components/VDataTable/index.d.mts +6 -6
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +10 -4
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +10 -10
- package/lib/components/VDefaultsProvider/index.d.mts +8 -8
- package/lib/components/VDialog/index.d.mts +12 -6
- package/lib/components/VDivider/index.d.mts +8 -8
- package/lib/components/VExpansionPanel/index.d.mts +19 -19
- package/lib/components/VField/VField.css +2 -0
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +2 -0
- package/lib/components/VField/index.d.mts +28 -28
- package/lib/components/VFileInput/index.d.mts +133 -133
- package/lib/components/VFooter/index.d.mts +8 -8
- package/lib/components/VGrid/index.d.mts +32 -32
- package/lib/components/VIcon/VIcon.css +4 -0
- package/lib/components/VIcon/VIcon.mjs +7 -3
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +4 -0
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VIcon/index.d.mts +25 -16
- package/lib/components/VImg/index.d.mts +4 -4
- package/lib/components/VInput/index.d.mts +21 -21
- package/lib/components/VKbd/index.d.mts +8 -8
- package/lib/components/VLabel/index.d.mts +8 -8
- package/lib/components/VLayout/index.d.mts +16 -16
- package/lib/components/VLazy/index.d.mts +8 -8
- package/lib/components/VList/VListItem.mjs +2 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +48 -48
- package/lib/components/VLocaleProvider/index.d.mts +12 -12
- package/lib/components/VMain/index.d.mts +8 -8
- package/lib/components/VMenu/VMenu.mjs +3 -0
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +14 -8
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +22 -8
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -1
- package/lib/components/VNavigationDrawer/index.d.mts +11 -11
- package/lib/components/VOtpInput/VOtpInput.mjs +7 -2
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/index.d.mts +31 -31
- package/lib/components/VOverlay/VOverlay.mjs +8 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +3 -0
- package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/index.d.mts +7 -7
- package/lib/components/VProgressLinear/VProgressLinear.css +0 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/index.d.mts +7 -7
- package/lib/components/VRadioGroup/index.d.mts +44 -44
- package/lib/components/VRangeSlider/index.d.mts +47 -47
- package/lib/components/VRating/index.d.mts +7 -7
- package/lib/components/VResponsive/index.d.mts +8 -8
- package/lib/components/VSelect/index.d.mts +94 -94
- package/lib/components/VSheet/index.d.mts +8 -8
- package/lib/components/VSkeletonLoader/index.d.mts +8 -8
- package/lib/components/VSlider/index.d.mts +47 -47
- package/lib/components/VSnackbar/index.d.mts +25 -19
- package/lib/components/VStepper/index.d.mts +41 -41
- package/lib/components/VSwitch/index.d.mts +39 -39
- package/lib/components/VSystemBar/index.d.mts +8 -8
- package/lib/components/VTabs/index.d.mts +15 -15
- package/lib/components/VTextField/index.d.mts +173 -173
- package/lib/components/VTextarea/index.d.mts +119 -119
- package/lib/components/VThemeProvider/index.d.mts +8 -8
- package/lib/components/VTimeline/index.d.mts +8 -8
- package/lib/components/VToolbar/index.d.mts +8 -8
- package/lib/components/VTooltip/index.d.mts +14 -8
- package/lib/components/VWindow/index.d.mts +10 -10
- package/lib/components/index.d.mts +1869 -1832
- package/lib/components/transitions/index.d.mts +128 -128
- package/lib/composables/date/adapters/vuetify.mjs +1 -1
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +3 -2
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +37 -36
- package/lib/labs/VCalendar/index.d.mts +32 -32
- package/lib/labs/VFab/index.d.mts +15 -15
- package/lib/labs/VNumberInput/VNumberInput.css +38 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +209 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -0
- package/lib/labs/VNumberInput/VNumberInput.sass +47 -0
- package/lib/labs/VNumberInput/_variables.scss +1 -0
- package/lib/labs/VNumberInput/index.d.mts +607 -0
- package/lib/labs/VNumberInput/index.mjs +2 -0
- package/lib/labs/VNumberInput/index.mjs.map +1 -0
- package/lib/labs/VPicker/index.d.mts +8 -8
- package/lib/labs/VSparkline/index.d.mts +7 -7
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +9 -5
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/labs/VSpeedDial/index.d.mts +120 -24
- package/lib/labs/VTreeview/index.d.mts +8 -8
- package/lib/labs/components.d.mts +788 -95
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -645,9 +645,9 @@ declare const VCalendarDay: {
|
|
|
645
645
|
events?: any[] | undefined;
|
|
646
646
|
dayIndex?: number | undefined;
|
|
647
647
|
} & {
|
|
648
|
-
$children?: vue.VNodeChild |
|
|
648
|
+
$children?: vue.VNodeChild | {
|
|
649
649
|
default?: (() => vue.VNodeChild) | undefined;
|
|
650
|
-
};
|
|
650
|
+
} | (() => vue.VNodeChild);
|
|
651
651
|
'v-slots'?: {
|
|
652
652
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
653
653
|
} | undefined;
|
|
@@ -668,9 +668,9 @@ declare const VCalendarDay: {
|
|
|
668
668
|
events?: any[] | undefined;
|
|
669
669
|
dayIndex?: number | undefined;
|
|
670
670
|
} & {
|
|
671
|
-
$children?: vue.VNodeChild |
|
|
671
|
+
$children?: vue.VNodeChild | {
|
|
672
672
|
default?: (() => vue.VNodeChild) | undefined;
|
|
673
|
-
};
|
|
673
|
+
} | (() => vue.VNodeChild);
|
|
674
674
|
'v-slots'?: {
|
|
675
675
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
676
676
|
} | undefined;
|
|
@@ -709,9 +709,9 @@ declare const VCalendarDay: {
|
|
|
709
709
|
events?: any[] | undefined;
|
|
710
710
|
dayIndex?: number | undefined;
|
|
711
711
|
} & {
|
|
712
|
-
$children?: vue.VNodeChild |
|
|
712
|
+
$children?: vue.VNodeChild | {
|
|
713
713
|
default?: (() => vue.VNodeChild) | undefined;
|
|
714
|
-
};
|
|
714
|
+
} | (() => vue.VNodeChild);
|
|
715
715
|
'v-slots'?: {
|
|
716
716
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
717
717
|
} | undefined;
|
|
@@ -745,9 +745,9 @@ declare const VCalendarDay: {
|
|
|
745
745
|
events?: any[] | undefined;
|
|
746
746
|
dayIndex?: number | undefined;
|
|
747
747
|
} & {
|
|
748
|
-
$children?: vue.VNodeChild |
|
|
748
|
+
$children?: vue.VNodeChild | {
|
|
749
749
|
default?: (() => vue.VNodeChild) | undefined;
|
|
750
|
-
};
|
|
750
|
+
} | (() => vue.VNodeChild);
|
|
751
751
|
'v-slots'?: {
|
|
752
752
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
753
753
|
} | undefined;
|
|
@@ -870,9 +870,9 @@ declare const VCalendarHeader: {
|
|
|
870
870
|
} & {
|
|
871
871
|
title?: string | undefined;
|
|
872
872
|
} & {
|
|
873
|
-
$children?: vue.VNodeChild |
|
|
873
|
+
$children?: vue.VNodeChild | {
|
|
874
874
|
default?: (() => vue.VNodeChild) | undefined;
|
|
875
|
-
};
|
|
875
|
+
} | (() => vue.VNodeChild);
|
|
876
876
|
'v-slots'?: {
|
|
877
877
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
878
878
|
} | undefined;
|
|
@@ -894,9 +894,9 @@ declare const VCalendarHeader: {
|
|
|
894
894
|
} & {
|
|
895
895
|
title?: string | undefined;
|
|
896
896
|
} & {
|
|
897
|
-
$children?: vue.VNodeChild |
|
|
897
|
+
$children?: vue.VNodeChild | {
|
|
898
898
|
default?: (() => vue.VNodeChild) | undefined;
|
|
899
|
-
};
|
|
899
|
+
} | (() => vue.VNodeChild);
|
|
900
900
|
'v-slots'?: {
|
|
901
901
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
902
902
|
} | undefined;
|
|
@@ -930,9 +930,9 @@ declare const VCalendarHeader: {
|
|
|
930
930
|
} & {
|
|
931
931
|
title?: string | undefined;
|
|
932
932
|
} & {
|
|
933
|
-
$children?: vue.VNodeChild |
|
|
933
|
+
$children?: vue.VNodeChild | {
|
|
934
934
|
default?: (() => vue.VNodeChild) | undefined;
|
|
935
|
-
};
|
|
935
|
+
} | (() => vue.VNodeChild);
|
|
936
936
|
'v-slots'?: {
|
|
937
937
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
938
938
|
} | undefined;
|
|
@@ -959,9 +959,9 @@ declare const VCalendarHeader: {
|
|
|
959
959
|
} & {
|
|
960
960
|
title?: string | undefined;
|
|
961
961
|
} & {
|
|
962
|
-
$children?: vue.VNodeChild |
|
|
962
|
+
$children?: vue.VNodeChild | {
|
|
963
963
|
default?: (() => vue.VNodeChild) | undefined;
|
|
964
|
-
};
|
|
964
|
+
} | (() => vue.VNodeChild);
|
|
965
965
|
'v-slots'?: {
|
|
966
966
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
967
967
|
} | undefined;
|
|
@@ -1036,9 +1036,9 @@ declare const VCalendarInterval: {
|
|
|
1036
1036
|
events?: any[] | undefined;
|
|
1037
1037
|
dayIndex?: number | undefined;
|
|
1038
1038
|
} & {
|
|
1039
|
-
$children?: vue.VNodeChild |
|
|
1039
|
+
$children?: vue.VNodeChild | {
|
|
1040
1040
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1041
|
-
};
|
|
1041
|
+
} | (() => vue.VNodeChild);
|
|
1042
1042
|
'v-slots'?: {
|
|
1043
1043
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1044
1044
|
} | undefined;
|
|
@@ -1063,9 +1063,9 @@ declare const VCalendarInterval: {
|
|
|
1063
1063
|
events?: any[] | undefined;
|
|
1064
1064
|
dayIndex?: number | undefined;
|
|
1065
1065
|
} & {
|
|
1066
|
-
$children?: vue.VNodeChild |
|
|
1066
|
+
$children?: vue.VNodeChild | {
|
|
1067
1067
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1068
|
-
};
|
|
1068
|
+
} | (() => vue.VNodeChild);
|
|
1069
1069
|
'v-slots'?: {
|
|
1070
1070
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1071
1071
|
} | undefined;
|
|
@@ -1101,9 +1101,9 @@ declare const VCalendarInterval: {
|
|
|
1101
1101
|
events?: any[] | undefined;
|
|
1102
1102
|
dayIndex?: number | undefined;
|
|
1103
1103
|
} & {
|
|
1104
|
-
$children?: vue.VNodeChild |
|
|
1104
|
+
$children?: vue.VNodeChild | {
|
|
1105
1105
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1106
|
-
};
|
|
1106
|
+
} | (() => vue.VNodeChild);
|
|
1107
1107
|
'v-slots'?: {
|
|
1108
1108
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1109
1109
|
} | undefined;
|
|
@@ -1139,9 +1139,9 @@ declare const VCalendarInterval: {
|
|
|
1139
1139
|
events?: any[] | undefined;
|
|
1140
1140
|
dayIndex?: number | undefined;
|
|
1141
1141
|
} & {
|
|
1142
|
-
$children?: vue.VNodeChild |
|
|
1142
|
+
$children?: vue.VNodeChild | {
|
|
1143
1143
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1144
|
-
};
|
|
1144
|
+
} | (() => vue.VNodeChild);
|
|
1145
1145
|
'v-slots'?: {
|
|
1146
1146
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1147
1147
|
} | undefined;
|
|
@@ -1266,9 +1266,9 @@ declare const VCalendarIntervalEvent: {
|
|
|
1266
1266
|
interval?: Record<string, any> | undefined;
|
|
1267
1267
|
event?: Record<string, any> | undefined;
|
|
1268
1268
|
} & {
|
|
1269
|
-
$children?: vue.VNodeChild |
|
|
1269
|
+
$children?: vue.VNodeChild | {
|
|
1270
1270
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1271
|
-
};
|
|
1271
|
+
} | (() => vue.VNodeChild);
|
|
1272
1272
|
'v-slots'?: {
|
|
1273
1273
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1274
1274
|
} | undefined;
|
|
@@ -1283,9 +1283,9 @@ declare const VCalendarIntervalEvent: {
|
|
|
1283
1283
|
interval?: Record<string, any> | undefined;
|
|
1284
1284
|
event?: Record<string, any> | undefined;
|
|
1285
1285
|
} & {
|
|
1286
|
-
$children?: vue.VNodeChild |
|
|
1286
|
+
$children?: vue.VNodeChild | {
|
|
1287
1287
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1288
|
-
};
|
|
1288
|
+
} | (() => vue.VNodeChild);
|
|
1289
1289
|
'v-slots'?: {
|
|
1290
1290
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1291
1291
|
} | undefined;
|
|
@@ -1313,9 +1313,9 @@ declare const VCalendarIntervalEvent: {
|
|
|
1313
1313
|
interval?: Record<string, any> | undefined;
|
|
1314
1314
|
event?: Record<string, any> | undefined;
|
|
1315
1315
|
} & {
|
|
1316
|
-
$children?: vue.VNodeChild |
|
|
1316
|
+
$children?: vue.VNodeChild | {
|
|
1317
1317
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1318
|
-
};
|
|
1318
|
+
} | (() => vue.VNodeChild);
|
|
1319
1319
|
'v-slots'?: {
|
|
1320
1320
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1321
1321
|
} | undefined;
|
|
@@ -1336,9 +1336,9 @@ declare const VCalendarIntervalEvent: {
|
|
|
1336
1336
|
interval?: Record<string, any> | undefined;
|
|
1337
1337
|
event?: Record<string, any> | undefined;
|
|
1338
1338
|
} & {
|
|
1339
|
-
$children?: vue.VNodeChild |
|
|
1339
|
+
$children?: vue.VNodeChild | {
|
|
1340
1340
|
default?: (() => vue.VNodeChild) | undefined;
|
|
1341
|
-
};
|
|
1341
|
+
} | (() => vue.VNodeChild);
|
|
1342
1342
|
'v-slots'?: {
|
|
1343
1343
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
1344
1344
|
} | undefined;
|
|
@@ -57,10 +57,10 @@ declare const VFab: {
|
|
|
57
57
|
tag: string;
|
|
58
58
|
appear: boolean;
|
|
59
59
|
app: boolean;
|
|
60
|
+
modelValue: boolean;
|
|
60
61
|
tile: boolean;
|
|
61
62
|
density: Density;
|
|
62
63
|
extended: boolean;
|
|
63
|
-
modelValue: boolean;
|
|
64
64
|
slim: boolean;
|
|
65
65
|
stacked: boolean;
|
|
66
66
|
ripple: boolean | {
|
|
@@ -91,9 +91,9 @@ declare const VFab: {
|
|
|
91
91
|
prependIcon?: IconValue | undefined;
|
|
92
92
|
appendIcon?: IconValue | undefined;
|
|
93
93
|
} & {
|
|
94
|
-
$children?: vue.VNodeChild |
|
|
94
|
+
$children?: vue.VNodeChild | {
|
|
95
95
|
default?: (() => vue.VNodeChild) | undefined;
|
|
96
|
-
};
|
|
96
|
+
} | (() => vue.VNodeChild);
|
|
97
97
|
'v-slots'?: {
|
|
98
98
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
99
99
|
} | undefined;
|
|
@@ -124,10 +124,10 @@ declare const VFab: {
|
|
|
124
124
|
tag: string;
|
|
125
125
|
appear: boolean;
|
|
126
126
|
app: boolean;
|
|
127
|
+
modelValue: boolean;
|
|
127
128
|
tile: boolean;
|
|
128
129
|
density: Density;
|
|
129
130
|
extended: boolean;
|
|
130
|
-
modelValue: boolean;
|
|
131
131
|
slim: boolean;
|
|
132
132
|
stacked: boolean;
|
|
133
133
|
ripple: boolean | {
|
|
@@ -158,9 +158,9 @@ declare const VFab: {
|
|
|
158
158
|
prependIcon?: IconValue | undefined;
|
|
159
159
|
appendIcon?: IconValue | undefined;
|
|
160
160
|
} & {
|
|
161
|
-
$children?: vue.VNodeChild |
|
|
161
|
+
$children?: vue.VNodeChild | {
|
|
162
162
|
default?: (() => vue.VNodeChild) | undefined;
|
|
163
|
-
};
|
|
163
|
+
} | (() => vue.VNodeChild);
|
|
164
164
|
'v-slots'?: {
|
|
165
165
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
166
166
|
} | undefined;
|
|
@@ -189,11 +189,11 @@ declare const VFab: {
|
|
|
189
189
|
tag: string;
|
|
190
190
|
appear: boolean;
|
|
191
191
|
app: boolean;
|
|
192
|
+
modelValue: boolean;
|
|
192
193
|
rounded: string | number | boolean;
|
|
193
194
|
tile: boolean;
|
|
194
195
|
density: Density;
|
|
195
196
|
extended: boolean;
|
|
196
|
-
modelValue: boolean;
|
|
197
197
|
slim: boolean;
|
|
198
198
|
stacked: boolean;
|
|
199
199
|
ripple: boolean | {
|
|
@@ -231,10 +231,10 @@ declare const VFab: {
|
|
|
231
231
|
tag: string;
|
|
232
232
|
appear: boolean;
|
|
233
233
|
app: boolean;
|
|
234
|
+
modelValue: boolean;
|
|
234
235
|
tile: boolean;
|
|
235
236
|
density: Density;
|
|
236
237
|
extended: boolean;
|
|
237
|
-
modelValue: boolean;
|
|
238
238
|
slim: boolean;
|
|
239
239
|
stacked: boolean;
|
|
240
240
|
ripple: boolean | {
|
|
@@ -265,9 +265,9 @@ declare const VFab: {
|
|
|
265
265
|
prependIcon?: IconValue | undefined;
|
|
266
266
|
appendIcon?: IconValue | undefined;
|
|
267
267
|
} & {
|
|
268
|
-
$children?: vue.VNodeChild |
|
|
268
|
+
$children?: vue.VNodeChild | {
|
|
269
269
|
default?: (() => vue.VNodeChild) | undefined;
|
|
270
|
-
};
|
|
270
|
+
} | (() => vue.VNodeChild);
|
|
271
271
|
'v-slots'?: {
|
|
272
272
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
273
273
|
} | undefined;
|
|
@@ -296,11 +296,11 @@ declare const VFab: {
|
|
|
296
296
|
tag: string;
|
|
297
297
|
appear: boolean;
|
|
298
298
|
app: boolean;
|
|
299
|
+
modelValue: boolean;
|
|
299
300
|
rounded: string | number | boolean;
|
|
300
301
|
tile: boolean;
|
|
301
302
|
density: Density;
|
|
302
303
|
extended: boolean;
|
|
303
|
-
modelValue: boolean;
|
|
304
304
|
slim: boolean;
|
|
305
305
|
stacked: boolean;
|
|
306
306
|
ripple: boolean | {
|
|
@@ -331,10 +331,10 @@ declare const VFab: {
|
|
|
331
331
|
tag: string;
|
|
332
332
|
appear: boolean;
|
|
333
333
|
app: boolean;
|
|
334
|
+
modelValue: boolean;
|
|
334
335
|
tile: boolean;
|
|
335
336
|
density: Density;
|
|
336
337
|
extended: boolean;
|
|
337
|
-
modelValue: boolean;
|
|
338
338
|
slim: boolean;
|
|
339
339
|
stacked: boolean;
|
|
340
340
|
ripple: boolean | {
|
|
@@ -365,9 +365,9 @@ declare const VFab: {
|
|
|
365
365
|
prependIcon?: IconValue | undefined;
|
|
366
366
|
appendIcon?: IconValue | undefined;
|
|
367
367
|
} & {
|
|
368
|
-
$children?: vue.VNodeChild |
|
|
368
|
+
$children?: vue.VNodeChild | {
|
|
369
369
|
default?: (() => vue.VNodeChild) | undefined;
|
|
370
|
-
};
|
|
370
|
+
} | (() => vue.VNodeChild);
|
|
371
371
|
'v-slots'?: {
|
|
372
372
|
default?: false | (() => vue.VNodeChild) | undefined;
|
|
373
373
|
} | undefined;
|
|
@@ -398,11 +398,11 @@ declare const VFab: {
|
|
|
398
398
|
tag: string;
|
|
399
399
|
appear: boolean;
|
|
400
400
|
app: boolean;
|
|
401
|
+
modelValue: boolean;
|
|
401
402
|
rounded: string | number | boolean;
|
|
402
403
|
tile: boolean;
|
|
403
404
|
density: Density;
|
|
404
405
|
extended: boolean;
|
|
405
|
-
modelValue: boolean;
|
|
406
406
|
slim: boolean;
|
|
407
407
|
stacked: boolean;
|
|
408
408
|
ripple: boolean | {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.v-number-input input[type=number] {
|
|
2
|
+
-moz-appearance: textfield;
|
|
3
|
+
}
|
|
4
|
+
.v-number-input input[type=number]::-webkit-outer-spin-button, .v-number-input input[type=number]::-webkit-inner-spin-button {
|
|
5
|
+
-webkit-appearance: none;
|
|
6
|
+
}
|
|
7
|
+
.v-number-input .v-field {
|
|
8
|
+
padding-inline-end: 0;
|
|
9
|
+
padding-inline-start: 0;
|
|
10
|
+
}
|
|
11
|
+
.v-number-input--inset .v-divider {
|
|
12
|
+
height: 55%;
|
|
13
|
+
width: 55%;
|
|
14
|
+
align-self: center;
|
|
15
|
+
}
|
|
16
|
+
.v-number-input--split .v-field__input {
|
|
17
|
+
text-align: center;
|
|
18
|
+
}
|
|
19
|
+
.v-number-input--stacked .v-number-input__control {
|
|
20
|
+
flex-direction: column-reverse;
|
|
21
|
+
}
|
|
22
|
+
.v-number-input--stacked .v-number-input__control .v-btn {
|
|
23
|
+
flex: 1;
|
|
24
|
+
}
|
|
25
|
+
.v-number-input--hide-input .v-field {
|
|
26
|
+
flex: none;
|
|
27
|
+
}
|
|
28
|
+
.v-number-input--hide-input .v-field__input {
|
|
29
|
+
width: 0;
|
|
30
|
+
padding-inline: 0;
|
|
31
|
+
}
|
|
32
|
+
.v-number-input__control {
|
|
33
|
+
display: flex;
|
|
34
|
+
height: 100%;
|
|
35
|
+
}
|
|
36
|
+
.v-number-input__control .v-btn {
|
|
37
|
+
background-color: transparent;
|
|
38
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VNumberInput.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VBtn } from "../../components/VBtn/index.mjs";
|
|
7
|
+
import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
|
|
8
|
+
import { VDivider } from "../../components/VDivider/index.mjs";
|
|
9
|
+
import { filterFieldProps, makeVFieldProps, VField } from "../../components/VField/VField.mjs";
|
|
10
|
+
import { makeVInputProps, VInput } from "../../components/VInput/VInput.mjs"; // Composables
|
|
11
|
+
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
|
12
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
13
|
+
import { computed, ref } from 'vue';
|
|
14
|
+
import { filterInputAttrs, genericComponent, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
|
+
const makeVNumberInputProps = propsFactory({
|
|
16
|
+
controlVariant: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: 'default'
|
|
19
|
+
},
|
|
20
|
+
inset: Boolean,
|
|
21
|
+
hideInput: Boolean,
|
|
22
|
+
min: Number,
|
|
23
|
+
max: Number,
|
|
24
|
+
step: Number,
|
|
25
|
+
...only(makeVInputProps(), ['density', 'disabled', 'focused', 'hideDetails', 'hint', 'label', 'persistentHint', 'readonly']),
|
|
26
|
+
...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
|
|
27
|
+
...makeFocusProps()
|
|
28
|
+
}, 'VNumberInput');
|
|
29
|
+
export const VNumberInput = genericComponent()({
|
|
30
|
+
name: 'VNumberInput',
|
|
31
|
+
inheritAttrs: false,
|
|
32
|
+
props: {
|
|
33
|
+
...makeVNumberInputProps(),
|
|
34
|
+
modelValue: {
|
|
35
|
+
type: [Number, String],
|
|
36
|
+
default: 0
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
emits: {
|
|
40
|
+
'update:modelValue': val => true
|
|
41
|
+
},
|
|
42
|
+
setup(props, _ref) {
|
|
43
|
+
let {
|
|
44
|
+
attrs,
|
|
45
|
+
emit,
|
|
46
|
+
slots
|
|
47
|
+
} = _ref;
|
|
48
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
49
|
+
const {
|
|
50
|
+
isFocused,
|
|
51
|
+
focus,
|
|
52
|
+
blur
|
|
53
|
+
} = useFocus(props);
|
|
54
|
+
const inputRef = ref();
|
|
55
|
+
function onFocus() {
|
|
56
|
+
if (!isFocused.value) focus();
|
|
57
|
+
}
|
|
58
|
+
const controlVariant = computed(() => {
|
|
59
|
+
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
60
|
+
});
|
|
61
|
+
function toggleUpDown() {
|
|
62
|
+
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
63
|
+
if (increment) {
|
|
64
|
+
inputRef.value?.stepUp();
|
|
65
|
+
} else {
|
|
66
|
+
inputRef.value?.stepDown();
|
|
67
|
+
}
|
|
68
|
+
if (inputRef.value) model.value = parseInt(inputRef.value.value, 10);
|
|
69
|
+
}
|
|
70
|
+
function onClickUp() {
|
|
71
|
+
toggleUpDown();
|
|
72
|
+
}
|
|
73
|
+
function onClickDown() {
|
|
74
|
+
toggleUpDown(false);
|
|
75
|
+
}
|
|
76
|
+
const incrementSlotProps = computed(() => ({
|
|
77
|
+
click: onClickUp
|
|
78
|
+
}));
|
|
79
|
+
const decrementSlotProps = computed(() => ({
|
|
80
|
+
click: onClickDown
|
|
81
|
+
}));
|
|
82
|
+
useRender(() => {
|
|
83
|
+
const fieldProps = filterFieldProps(props);
|
|
84
|
+
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
85
|
+
const {
|
|
86
|
+
modelValue: _,
|
|
87
|
+
...inputProps
|
|
88
|
+
} = VInput.filterProps(props);
|
|
89
|
+
function controlNode() {
|
|
90
|
+
const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%';
|
|
91
|
+
return _createVNode("div", {
|
|
92
|
+
"class": "v-number-input__control"
|
|
93
|
+
}, [!slots.decrement ? _createVNode(VBtn, {
|
|
94
|
+
"flat": true,
|
|
95
|
+
"key": "decrement-btn",
|
|
96
|
+
"height": defaultHeight,
|
|
97
|
+
"icon": "mdi-chevron-down",
|
|
98
|
+
"rounded": "0",
|
|
99
|
+
"size": "small",
|
|
100
|
+
"onClick": onClickDown
|
|
101
|
+
}, null) : _createVNode(VDefaultsProvider, {
|
|
102
|
+
"key": "decrement-defaults",
|
|
103
|
+
"defaults": {
|
|
104
|
+
VBtn: {
|
|
105
|
+
flat: true,
|
|
106
|
+
rounded: '0',
|
|
107
|
+
height: defaultHeight,
|
|
108
|
+
size: 'small',
|
|
109
|
+
icon: 'mdi-chevron-down'
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}, {
|
|
113
|
+
default: () => [slots.decrement(decrementSlotProps.value)]
|
|
114
|
+
}), _createVNode(VDivider, {
|
|
115
|
+
"vertical": controlVariant.value !== 'stacked'
|
|
116
|
+
}, null), !slots.increment ? _createVNode(VBtn, {
|
|
117
|
+
"flat": true,
|
|
118
|
+
"key": "increment-btn",
|
|
119
|
+
"height": defaultHeight,
|
|
120
|
+
"icon": "mdi-chevron-up",
|
|
121
|
+
"onClick": onClickUp,
|
|
122
|
+
"rounded": "0",
|
|
123
|
+
"size": "small"
|
|
124
|
+
}, null) : _createVNode(VDefaultsProvider, {
|
|
125
|
+
"key": "increment-defaults",
|
|
126
|
+
"defaults": {
|
|
127
|
+
VBtn: {
|
|
128
|
+
flat: true,
|
|
129
|
+
height: defaultHeight,
|
|
130
|
+
rounded: '0',
|
|
131
|
+
size: 'small',
|
|
132
|
+
icon: 'mdi-chevron-up'
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}, {
|
|
136
|
+
default: () => [slots.increment(incrementSlotProps.value)]
|
|
137
|
+
})]);
|
|
138
|
+
}
|
|
139
|
+
function dividerNode() {
|
|
140
|
+
return !props.hideInput && !props.inset ? _createVNode(VDivider, {
|
|
141
|
+
"vertical": true
|
|
142
|
+
}, null) : undefined;
|
|
143
|
+
}
|
|
144
|
+
return _createVNode(VInput, _mergeProps({
|
|
145
|
+
"class": ['v-number-input', {
|
|
146
|
+
'v-number-input--default': controlVariant.value === 'default',
|
|
147
|
+
'v-number-input--hide-input': props.hideInput,
|
|
148
|
+
'v-number-input--inset': props.inset,
|
|
149
|
+
'v-number-input--reverse': props.reverse,
|
|
150
|
+
'v-number-input--split': controlVariant.value === 'split',
|
|
151
|
+
'v-number-input--stacked': controlVariant.value === 'stacked'
|
|
152
|
+
}, props.class]
|
|
153
|
+
}, rootAttrs, inputProps, {
|
|
154
|
+
"focused": isFocused.value,
|
|
155
|
+
"style": props.style
|
|
156
|
+
}), {
|
|
157
|
+
...slots,
|
|
158
|
+
default: () => _createVNode(VField, _mergeProps(fieldProps, {
|
|
159
|
+
"active": true,
|
|
160
|
+
"focused": isFocused.value
|
|
161
|
+
}), {
|
|
162
|
+
...slots,
|
|
163
|
+
default: _ref2 => {
|
|
164
|
+
let {
|
|
165
|
+
props: {
|
|
166
|
+
class: fieldClass,
|
|
167
|
+
...slotProps
|
|
168
|
+
}
|
|
169
|
+
} = _ref2;
|
|
170
|
+
return _createVNode("input", _mergeProps({
|
|
171
|
+
"ref": inputRef,
|
|
172
|
+
"type": "number",
|
|
173
|
+
"value": model.value,
|
|
174
|
+
"class": fieldClass,
|
|
175
|
+
"max": props.max,
|
|
176
|
+
"min": props.min,
|
|
177
|
+
"step": props.step,
|
|
178
|
+
"onFocus": onFocus,
|
|
179
|
+
"onBlur": blur
|
|
180
|
+
}, inputAttrs), null);
|
|
181
|
+
},
|
|
182
|
+
'append-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
|
|
183
|
+
"class": "v-number-input__control"
|
|
184
|
+
}, [_createVNode(VDivider, {
|
|
185
|
+
"vertical": true
|
|
186
|
+
}, null), _createVNode(VBtn, {
|
|
187
|
+
"flat": true,
|
|
188
|
+
"height": "100%",
|
|
189
|
+
"icon": "mdi-plus",
|
|
190
|
+
"tile": true,
|
|
191
|
+
"onClick": onClickUp
|
|
192
|
+
}, null)]) : !props.reverse ? () => _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined,
|
|
193
|
+
'prepend-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
|
|
194
|
+
"class": "v-number-input__control"
|
|
195
|
+
}, [_createVNode(VBtn, {
|
|
196
|
+
"flat": true,
|
|
197
|
+
"height": "100%",
|
|
198
|
+
"icon": "mdi-minus",
|
|
199
|
+
"tile": true,
|
|
200
|
+
"onClick": onClickDown
|
|
201
|
+
}, null), _createVNode(VDivider, {
|
|
202
|
+
"vertical": true
|
|
203
|
+
}, null)]) : props.reverse ? () => _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined
|
|
204
|
+
})
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
//# sourceMappingURL=VNumberInput.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","filterFieldProps","makeVFieldProps","VField","makeVInputProps","VInput","makeFocusProps","useFocus","useProxiedModel","computed","ref","filterInputAttrs","genericComponent","only","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","max","step","VNumberInput","name","inheritAttrs","props","modelValue","emits","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","inputRef","onFocus","value","toggleUpDown","increment","arguments","length","undefined","stepUp","stepDown","parseInt","onClickUp","onClickDown","incrementSlotProps","click","decrementSlotProps","fieldProps","rootAttrs","inputAttrs","_","inputProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","flat","rounded","height","size","icon","dividerNode","_mergeProps","reverse","class","style","_ref2","fieldClass","slotProps","_Fragment"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: Number,\n max: Number,\n step: Number,\n\n ...only(makeVInputProps(), [\n 'density',\n 'disabled',\n 'focused',\n 'hideDetails',\n 'hint',\n 'label',\n 'persistentHint',\n 'readonly',\n ]),\n ...only(makeVFieldProps(), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'reverse',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n ...makeFocusProps(),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const inputRef = ref<HTMLInputElement>()\n\n function onFocus () {\n if (!isFocused.value) focus()\n }\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n function toggleUpDown (increment = true) {\n if (increment) {\n inputRef.value?.stepUp()\n } else {\n inputRef.value?.stepDown()\n }\n\n if (inputRef.value) model.value = parseInt(inputRef.value.value, 10)\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n useRender(() => {\n const fieldProps = filterFieldProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n icon=\"mdi-chevron-down\"\n rounded=\"0\"\n size=\"small\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n flat: true,\n rounded: '0',\n height: defaultHeight,\n size: 'small',\n icon: 'mdi-chevron-down',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n icon=\"mdi-chevron-up\"\n onClick={ onClickUp }\n rounded=\"0\"\n size=\"small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n flat: true,\n height: defaultHeight,\n rounded: '0',\n size: 'small',\n icon: 'mdi-chevron-up',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n return (\n <VInput\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: () => (\n <VField\n { ...fieldProps }\n active\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <input\n ref={ inputRef }\n type=\"number\"\n value={ model.value }\n class={ fieldClass }\n max={ props.max }\n min={ props.min }\n step={ props.step }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...inputAttrs }\n />\n ),\n 'append-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"mdi-plus\"\n tile\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? () => <>{ dividerNode() }{ controlNode() }</>\n : undefined),\n 'prepend-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"mdi-minus\"\n tile\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? () => <>{ controlNode() }{ dividerNode() }</>\n : undefined),\n }}\n </VField>\n ),\n }}\n </VInput>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
@use 'sass:selector'
|
|
2
|
+
@use './variables' as *
|
|
3
|
+
|
|
4
|
+
.v-number-input
|
|
5
|
+
$root: &
|
|
6
|
+
$control-root: #{selector.append($root, '__control')}
|
|
7
|
+
|
|
8
|
+
input[type="number"]
|
|
9
|
+
-moz-appearance: textfield
|
|
10
|
+
|
|
11
|
+
&::-webkit-outer-spin-button,
|
|
12
|
+
&::-webkit-inner-spin-button
|
|
13
|
+
-webkit-appearance: none
|
|
14
|
+
|
|
15
|
+
.v-field
|
|
16
|
+
padding-inline-end: 0
|
|
17
|
+
padding-inline-start: 0
|
|
18
|
+
|
|
19
|
+
&--inset
|
|
20
|
+
.v-divider
|
|
21
|
+
height: $number-input-inset-divider-size
|
|
22
|
+
width: $number-input-inset-divider-size
|
|
23
|
+
align-self: center
|
|
24
|
+
|
|
25
|
+
&--split
|
|
26
|
+
.v-field__input
|
|
27
|
+
text-align: center
|
|
28
|
+
|
|
29
|
+
&--stacked
|
|
30
|
+
#{$control-root}
|
|
31
|
+
flex-direction: column-reverse
|
|
32
|
+
.v-btn
|
|
33
|
+
flex: 1
|
|
34
|
+
|
|
35
|
+
&--hide-input
|
|
36
|
+
.v-field
|
|
37
|
+
flex: none
|
|
38
|
+
&__input
|
|
39
|
+
width: 0
|
|
40
|
+
padding-inline: 0
|
|
41
|
+
|
|
42
|
+
&__control
|
|
43
|
+
display: flex
|
|
44
|
+
height: 100%
|
|
45
|
+
|
|
46
|
+
.v-btn
|
|
47
|
+
background-color: transparent
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$number-input-inset-divider-size: 55% !default;
|