vuetify 3.3.2 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +8 -8
- package/dist/json/importMap.json +4 -4
- package/dist/json/web-types.json +26 -15
- package/dist/vuetify-labs.css +53 -61
- package/dist/vuetify-labs.d.ts +253 -119
- package/dist/vuetify-labs.esm.js +196 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +195 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -8
- package/dist/vuetify.d.ts +254 -120
- package/dist/vuetify.esm.js +191 -78
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +190 -77
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +780 -771
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -2
- package/lib/blueprints/md1.d.mts +2 -2
- package/lib/blueprints/md2.d.mts +2 -2
- package/lib/blueprints/md3.d.mts +2 -2
- package/lib/components/VAppBar/index.d.mts +24 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -11
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +24 -8
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +44 -28
- package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +7 -1
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +48 -32
- package/lib/components/VCombobox/VCombobox.mjs +16 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +56 -24
- package/lib/components/VField/VField.css +1 -0
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +1 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +24 -8
- package/lib/components/VMenu/VMenu.mjs +29 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +7 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +29 -35
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -10
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +2 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +1 -0
- package/lib/components/VTabs/VTabs.sass +1 -0
- package/lib/components/VTabs/index.d.mts +24 -8
- package/lib/components/VTextarea/VTextarea.css +7 -7
- package/lib/components/VTextarea/VTextarea.sass +9 -9
- package/lib/components/index.d.mts +251 -117
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs +35 -35
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDataTable/VDataTable.css +4 -14
- package/lib/labs/VDataTable/VDataTable.sass +6 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -2
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/util/bindProps.mjs +49 -0
- package/lib/util/bindProps.mjs.map +1 -0
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -290,7 +290,9 @@ declare const VExpansionPanel: {
|
|
|
290
290
|
readonly?: boolean | undefined;
|
|
291
291
|
tag?: string | undefined;
|
|
292
292
|
rounded?: string | number | boolean | undefined;
|
|
293
|
-
ripple?: boolean |
|
|
293
|
+
ripple?: boolean | {
|
|
294
|
+
class: string;
|
|
295
|
+
} | undefined;
|
|
294
296
|
collapseIcon?: IconValue | undefined;
|
|
295
297
|
expandIcon?: IconValue | undefined;
|
|
296
298
|
hideActions?: boolean | undefined;
|
|
@@ -390,7 +392,9 @@ declare const VExpansionPanel: {
|
|
|
390
392
|
disabled: boolean;
|
|
391
393
|
readonly: boolean;
|
|
392
394
|
tag: string;
|
|
393
|
-
ripple: boolean |
|
|
395
|
+
ripple: boolean | {
|
|
396
|
+
class: string;
|
|
397
|
+
} | undefined;
|
|
394
398
|
collapseIcon: IconValue;
|
|
395
399
|
expandIcon: IconValue;
|
|
396
400
|
hideActions: boolean;
|
|
@@ -434,7 +438,9 @@ declare const VExpansionPanel: {
|
|
|
434
438
|
readonly: boolean;
|
|
435
439
|
tag: string;
|
|
436
440
|
rounded: string | number | boolean;
|
|
437
|
-
ripple: boolean |
|
|
441
|
+
ripple: boolean | {
|
|
442
|
+
class: string;
|
|
443
|
+
} | undefined;
|
|
438
444
|
collapseIcon: IconValue;
|
|
439
445
|
expandIcon: IconValue;
|
|
440
446
|
hideActions: boolean;
|
|
@@ -474,7 +480,9 @@ declare const VExpansionPanel: {
|
|
|
474
480
|
disabled: boolean;
|
|
475
481
|
readonly: boolean;
|
|
476
482
|
tag: string;
|
|
477
|
-
ripple: boolean |
|
|
483
|
+
ripple: boolean | {
|
|
484
|
+
class: string;
|
|
485
|
+
} | undefined;
|
|
478
486
|
collapseIcon: IconValue;
|
|
479
487
|
expandIcon: IconValue;
|
|
480
488
|
hideActions: boolean;
|
|
@@ -517,7 +525,9 @@ declare const VExpansionPanel: {
|
|
|
517
525
|
disabled: boolean;
|
|
518
526
|
readonly: boolean;
|
|
519
527
|
tag: string;
|
|
520
|
-
ripple: boolean |
|
|
528
|
+
ripple: boolean | {
|
|
529
|
+
class: string;
|
|
530
|
+
} | undefined;
|
|
521
531
|
collapseIcon: IconValue;
|
|
522
532
|
expandIcon: IconValue;
|
|
523
533
|
hideActions: boolean;
|
|
@@ -561,7 +571,9 @@ declare const VExpansionPanel: {
|
|
|
561
571
|
readonly: boolean;
|
|
562
572
|
tag: string;
|
|
563
573
|
rounded: string | number | boolean;
|
|
564
|
-
ripple: boolean |
|
|
574
|
+
ripple: boolean | {
|
|
575
|
+
class: string;
|
|
576
|
+
} | undefined;
|
|
565
577
|
collapseIcon: IconValue;
|
|
566
578
|
expandIcon: IconValue;
|
|
567
579
|
hideActions: boolean;
|
|
@@ -592,7 +604,9 @@ declare const VExpansionPanel: {
|
|
|
592
604
|
};
|
|
593
605
|
hideActions: BooleanConstructor;
|
|
594
606
|
ripple: {
|
|
595
|
-
type:
|
|
607
|
+
type: vue.PropType<boolean | {
|
|
608
|
+
class: string;
|
|
609
|
+
} | undefined>;
|
|
596
610
|
default: boolean;
|
|
597
611
|
};
|
|
598
612
|
readonly: BooleanConstructor;
|
|
@@ -632,7 +646,9 @@ declare const VExpansionPanel: {
|
|
|
632
646
|
};
|
|
633
647
|
hideActions: BooleanConstructor;
|
|
634
648
|
ripple: {
|
|
635
|
-
type:
|
|
649
|
+
type: vue.PropType<boolean | {
|
|
650
|
+
class: string;
|
|
651
|
+
} | undefined>;
|
|
636
652
|
default: boolean;
|
|
637
653
|
};
|
|
638
654
|
readonly: BooleanConstructor;
|
|
@@ -842,7 +858,9 @@ declare const VExpansionPanelTitle: {
|
|
|
842
858
|
$props: {
|
|
843
859
|
style?: vue.StyleValue | undefined;
|
|
844
860
|
readonly?: boolean | undefined;
|
|
845
|
-
ripple?: boolean |
|
|
861
|
+
ripple?: boolean | {
|
|
862
|
+
class: string;
|
|
863
|
+
} | undefined;
|
|
846
864
|
collapseIcon?: IconValue | undefined;
|
|
847
865
|
expandIcon?: IconValue | undefined;
|
|
848
866
|
hideActions?: boolean | undefined;
|
|
@@ -922,7 +940,9 @@ declare const VExpansionPanelTitle: {
|
|
|
922
940
|
$options: vue.ComponentOptionsBase<{
|
|
923
941
|
style: vue.StyleValue;
|
|
924
942
|
readonly: boolean;
|
|
925
|
-
ripple: boolean |
|
|
943
|
+
ripple: boolean | {
|
|
944
|
+
class: string;
|
|
945
|
+
} | undefined;
|
|
926
946
|
collapseIcon: IconValue;
|
|
927
947
|
expandIcon: IconValue;
|
|
928
948
|
hideActions: boolean;
|
|
@@ -944,7 +964,9 @@ declare const VExpansionPanelTitle: {
|
|
|
944
964
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
945
965
|
style: vue.StyleValue;
|
|
946
966
|
readonly: boolean;
|
|
947
|
-
ripple: boolean |
|
|
967
|
+
ripple: boolean | {
|
|
968
|
+
class: string;
|
|
969
|
+
} | undefined;
|
|
948
970
|
collapseIcon: IconValue;
|
|
949
971
|
expandIcon: IconValue;
|
|
950
972
|
hideActions: boolean;
|
|
@@ -978,7 +1000,9 @@ declare const VExpansionPanelTitle: {
|
|
|
978
1000
|
} & {
|
|
979
1001
|
style: vue.StyleValue;
|
|
980
1002
|
readonly: boolean;
|
|
981
|
-
ripple: boolean |
|
|
1003
|
+
ripple: boolean | {
|
|
1004
|
+
class: string;
|
|
1005
|
+
} | undefined;
|
|
982
1006
|
collapseIcon: IconValue;
|
|
983
1007
|
expandIcon: IconValue;
|
|
984
1008
|
hideActions: boolean;
|
|
@@ -1004,7 +1028,9 @@ declare const VExpansionPanelTitle: {
|
|
|
1004
1028
|
} & vue.ComponentOptionsBase<{
|
|
1005
1029
|
style: vue.StyleValue;
|
|
1006
1030
|
readonly: boolean;
|
|
1007
|
-
ripple: boolean |
|
|
1031
|
+
ripple: boolean | {
|
|
1032
|
+
class: string;
|
|
1033
|
+
} | undefined;
|
|
1008
1034
|
collapseIcon: IconValue;
|
|
1009
1035
|
expandIcon: IconValue;
|
|
1010
1036
|
hideActions: boolean;
|
|
@@ -1026,7 +1052,9 @@ declare const VExpansionPanelTitle: {
|
|
|
1026
1052
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
1027
1053
|
style: vue.StyleValue;
|
|
1028
1054
|
readonly: boolean;
|
|
1029
|
-
ripple: boolean |
|
|
1055
|
+
ripple: boolean | {
|
|
1056
|
+
class: string;
|
|
1057
|
+
} | undefined;
|
|
1030
1058
|
collapseIcon: IconValue;
|
|
1031
1059
|
expandIcon: IconValue;
|
|
1032
1060
|
hideActions: boolean;
|
|
@@ -1038,44 +1066,48 @@ declare const VExpansionPanelTitle: {
|
|
|
1038
1066
|
[key: string]: any;
|
|
1039
1067
|
}>[];
|
|
1040
1068
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
1041
|
-
class:
|
|
1069
|
+
class: PropType<any>;
|
|
1042
1070
|
style: {
|
|
1043
|
-
type:
|
|
1071
|
+
type: PropType<vue.StyleValue>;
|
|
1044
1072
|
default: null;
|
|
1045
1073
|
};
|
|
1046
1074
|
color: StringConstructor;
|
|
1047
1075
|
expandIcon: {
|
|
1048
|
-
type:
|
|
1076
|
+
type: PropType<IconValue>;
|
|
1049
1077
|
default: string;
|
|
1050
1078
|
};
|
|
1051
1079
|
collapseIcon: {
|
|
1052
|
-
type:
|
|
1080
|
+
type: PropType<IconValue>;
|
|
1053
1081
|
default: string;
|
|
1054
1082
|
};
|
|
1055
1083
|
hideActions: BooleanConstructor;
|
|
1056
1084
|
ripple: {
|
|
1057
|
-
type:
|
|
1085
|
+
type: PropType<boolean | {
|
|
1086
|
+
class: string;
|
|
1087
|
+
} | undefined>;
|
|
1058
1088
|
default: boolean;
|
|
1059
1089
|
};
|
|
1060
1090
|
readonly: BooleanConstructor;
|
|
1061
1091
|
}, vue.ExtractPropTypes<{
|
|
1062
|
-
class:
|
|
1092
|
+
class: PropType<any>;
|
|
1063
1093
|
style: {
|
|
1064
|
-
type:
|
|
1094
|
+
type: PropType<vue.StyleValue>;
|
|
1065
1095
|
default: null;
|
|
1066
1096
|
};
|
|
1067
1097
|
color: StringConstructor;
|
|
1068
1098
|
expandIcon: {
|
|
1069
|
-
type:
|
|
1099
|
+
type: PropType<IconValue>;
|
|
1070
1100
|
default: string;
|
|
1071
1101
|
};
|
|
1072
1102
|
collapseIcon: {
|
|
1073
|
-
type:
|
|
1103
|
+
type: PropType<IconValue>;
|
|
1074
1104
|
default: string;
|
|
1075
1105
|
};
|
|
1076
1106
|
hideActions: BooleanConstructor;
|
|
1077
1107
|
ripple: {
|
|
1078
|
-
type:
|
|
1108
|
+
type: PropType<boolean | {
|
|
1109
|
+
class: string;
|
|
1110
|
+
} | undefined>;
|
|
1079
1111
|
default: boolean;
|
|
1080
1112
|
};
|
|
1081
1113
|
readonly: BooleanConstructor;
|
|
@@ -130,6 +130,7 @@
|
|
|
130
130
|
padding-inline-end: var(--v-field-padding-end);
|
|
131
131
|
padding-top: var(--v-field-input-padding-top);
|
|
132
132
|
padding-bottom: var(--v-field-input-padding-bottom);
|
|
133
|
+
position: relative;
|
|
133
134
|
width: 100%;
|
|
134
135
|
--v-field-input-min-height: max(var(--v-input-control-height, 56px), 1.625rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));
|
|
135
136
|
}
|
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
padding-inline-end: var(--v-field-padding-end)
|
|
129
129
|
padding-top: var(--v-field-input-padding-top)
|
|
130
130
|
padding-bottom: var(--v-field-input-padding-bottom)
|
|
131
|
+
position: relative
|
|
131
132
|
width: 100%
|
|
132
133
|
--v-field-input-min-height: #{$field-input-min-height}
|
|
133
134
|
|
|
@@ -10,7 +10,7 @@ import { makeSizeProps, useSize } from "../../composables/size.mjs";
|
|
|
10
10
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
11
11
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
|
|
12
12
|
import { computed, ref, Text, toRef } from 'vue';
|
|
13
|
-
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
13
|
+
import { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
14
14
|
export const makeVIconProps = propsFactory({
|
|
15
15
|
color: String,
|
|
16
16
|
start: Boolean,
|
|
@@ -48,7 +48,7 @@ export const VIcon = genericComponent()({
|
|
|
48
48
|
useRender(() => {
|
|
49
49
|
const slotValue = slots.default?.();
|
|
50
50
|
if (slotValue) {
|
|
51
|
-
slotIcon.value = slotValue.filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
51
|
+
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
52
52
|
}
|
|
53
53
|
return _createVNode(iconData.value.component, {
|
|
54
54
|
"tag": props.tag,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VIcon.mjs","names":["useTextColor","makeComponentProps","IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","computed","ref","Text","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVIconProps","color","String","start","Boolean","end","icon","tag","VIcon","name","props","setup","_ref","attrs","slots","slotIcon","themeClasses","iconData","value","sizeClasses","textColorClasses","textColorStyles","slotValue","default","filter","node","type","children","_createVNode","component","onClick","class","fontSize","size","height","width","undefined","style"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref<string>()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = slotValue.filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n props.class,\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n props.style,\n ]}\n role={ attrs.onClick ? 'button' : undefined }\n aria-hidden={ !attrs.onClick }\n >\n { slotValue }\n </iconData.value.component>\n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType<typeof VIcon>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,SAAS,EAAEC,OAAO;AAAA,SAClBC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,IAAI,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACvCC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;
|
|
1
|
+
{"version":3,"file":"VIcon.mjs","names":["useTextColor","makeComponentProps","IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","computed","ref","Text","toRef","convertToUnit","flattenFragments","genericComponent","propsFactory","useRender","makeVIconProps","color","String","start","Boolean","end","icon","tag","VIcon","name","props","setup","_ref","attrs","slots","slotIcon","themeClasses","iconData","value","sizeClasses","textColorClasses","textColorStyles","slotValue","default","filter","node","type","children","_createVNode","component","onClick","class","fontSize","size","height","width","undefined","style"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref<string>()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n props.class,\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n props.style,\n ]}\n role={ attrs.onClick ? 'button' : undefined }\n aria-hidden={ !attrs.onClick }\n >\n { slotValue }\n </iconData.value.component>\n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType<typeof VIcon>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
|
|
@@ -76,7 +76,9 @@ declare const VListItem: {
|
|
|
76
76
|
rounded?: string | number | boolean | undefined;
|
|
77
77
|
density?: Density | undefined;
|
|
78
78
|
variant?: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | undefined;
|
|
79
|
-
ripple?: boolean |
|
|
79
|
+
ripple?: boolean | {
|
|
80
|
+
class: string;
|
|
81
|
+
} | undefined;
|
|
80
82
|
key?: string | number | symbol | undefined;
|
|
81
83
|
height?: string | number | undefined;
|
|
82
84
|
width?: string | number | undefined;
|
|
@@ -201,7 +203,9 @@ declare const VListItem: {
|
|
|
201
203
|
tag: string;
|
|
202
204
|
density: Density;
|
|
203
205
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
204
|
-
ripple: boolean
|
|
206
|
+
ripple: boolean | {
|
|
207
|
+
class: string;
|
|
208
|
+
} | undefined;
|
|
205
209
|
} & {
|
|
206
210
|
link?: boolean | undefined;
|
|
207
211
|
height?: string | number | undefined;
|
|
@@ -269,7 +273,9 @@ declare const VListItem: {
|
|
|
269
273
|
rounded: string | number | boolean;
|
|
270
274
|
density: Density;
|
|
271
275
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
272
|
-
ripple: boolean
|
|
276
|
+
ripple: boolean | {
|
|
277
|
+
class: string;
|
|
278
|
+
} | undefined;
|
|
273
279
|
}, {}, string, vue.SlotsType<Partial<{
|
|
274
280
|
prepend: (arg: ListItemSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
275
281
|
[key: string]: any;
|
|
@@ -315,7 +321,9 @@ declare const VListItem: {
|
|
|
315
321
|
tag: string;
|
|
316
322
|
density: Density;
|
|
317
323
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
318
|
-
ripple: boolean
|
|
324
|
+
ripple: boolean | {
|
|
325
|
+
class: string;
|
|
326
|
+
} | undefined;
|
|
319
327
|
} & {
|
|
320
328
|
link?: boolean | undefined;
|
|
321
329
|
height?: string | number | undefined;
|
|
@@ -382,7 +390,9 @@ declare const VListItem: {
|
|
|
382
390
|
tag: string;
|
|
383
391
|
density: Density;
|
|
384
392
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
385
|
-
ripple: boolean
|
|
393
|
+
ripple: boolean | {
|
|
394
|
+
class: string;
|
|
395
|
+
} | undefined;
|
|
386
396
|
} & {
|
|
387
397
|
link?: boolean | undefined;
|
|
388
398
|
height?: string | number | undefined;
|
|
@@ -450,7 +460,9 @@ declare const VListItem: {
|
|
|
450
460
|
rounded: string | number | boolean;
|
|
451
461
|
density: Density;
|
|
452
462
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
453
|
-
ripple: boolean
|
|
463
|
+
ripple: boolean | {
|
|
464
|
+
class: string;
|
|
465
|
+
} | undefined;
|
|
454
466
|
}, {}, string, vue.SlotsType<Partial<{
|
|
455
467
|
prepend: (arg: ListItemSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
456
468
|
[key: string]: any;
|
|
@@ -530,7 +542,9 @@ declare const VListItem: {
|
|
|
530
542
|
prependAvatar: StringConstructor;
|
|
531
543
|
prependIcon: PropType<IconValue>;
|
|
532
544
|
ripple: {
|
|
533
|
-
type:
|
|
545
|
+
type: PropType<boolean | {
|
|
546
|
+
class: string;
|
|
547
|
+
} | undefined>;
|
|
534
548
|
default: boolean;
|
|
535
549
|
};
|
|
536
550
|
subtitle: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
@@ -601,7 +615,9 @@ declare const VListItem: {
|
|
|
601
615
|
prependAvatar: StringConstructor;
|
|
602
616
|
prependIcon: PropType<IconValue>;
|
|
603
617
|
ripple: {
|
|
604
|
-
type:
|
|
618
|
+
type: PropType<boolean | {
|
|
619
|
+
class: string;
|
|
620
|
+
} | undefined>;
|
|
605
621
|
default: boolean;
|
|
606
622
|
};
|
|
607
623
|
subtitle: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
@@ -12,7 +12,7 @@ import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
|
12
12
|
import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
|
|
13
13
|
import { computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue';
|
|
14
14
|
import { VMenuSymbol } from "./shared.mjs";
|
|
15
|
-
import { genericComponent, getUid, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
|
+
import { focusChild, genericComponent, getUid, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
16
16
|
export const makeVMenuProps = propsFactory({
|
|
17
17
|
// TODO
|
|
18
18
|
// disableKeys: Boolean,
|
|
@@ -70,10 +70,35 @@ export const VMenu = genericComponent()({
|
|
|
70
70
|
function onClickOutside() {
|
|
71
71
|
parent?.closeParents();
|
|
72
72
|
}
|
|
73
|
+
function onKeydown(e) {
|
|
74
|
+
if (props.disabled) return;
|
|
75
|
+
if (e.key === 'Tab') {
|
|
76
|
+
isActive.value = false;
|
|
77
|
+
overlay.value?.activatorEl?.focus();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function onActivatorKeydown(e) {
|
|
81
|
+
if (props.disabled) return;
|
|
82
|
+
const el = overlay.value?.contentEl;
|
|
83
|
+
if (el && isActive.value) {
|
|
84
|
+
if (e.key === 'ArrowDown') {
|
|
85
|
+
e.preventDefault();
|
|
86
|
+
focusChild(el, 'next');
|
|
87
|
+
} else if (e.key === 'ArrowUp') {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
focusChild(el, 'prev');
|
|
90
|
+
}
|
|
91
|
+
} else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
92
|
+
isActive.value = true;
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
73
97
|
const activatorProps = computed(() => mergeProps({
|
|
74
98
|
'aria-haspopup': 'menu',
|
|
75
99
|
'aria-expanded': String(isActive.value),
|
|
76
|
-
'aria-owns': id.value
|
|
100
|
+
'aria-owns': id.value,
|
|
101
|
+
onKeydown: onActivatorKeydown
|
|
77
102
|
}, props.activatorProps));
|
|
78
103
|
useRender(() => {
|
|
79
104
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
@@ -86,7 +111,8 @@ export const VMenu = genericComponent()({
|
|
|
86
111
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
87
112
|
"absolute": true,
|
|
88
113
|
"activatorProps": activatorProps.value,
|
|
89
|
-
"onClick:outside": onClickOutside
|
|
114
|
+
"onClick:outside": onClickOutside,
|
|
115
|
+
"onKeydown": onKeydown
|
|
90
116
|
}, scopeId), {
|
|
91
117
|
activator: slots.activator,
|
|
92
118
|
default: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","provide","ref","shallowRef","watch","VMenuSymbol","genericComponent","getUid","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","val","onClickOutside","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,iBAAiB,oCAE1B;AAAA,SACSC,WAAW;AAAA,SACXC,eAAe;AAAA,SACfC,UAAU,yCAEnB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC1EC,WAAW;AAAA,SACXC,gBAAgB,EAAEC,MAAM,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,
|
|
1
|
+
{"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","provide","ref","shallowRef","watch","VMenuSymbol","focusChild","genericComponent","getUid","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","val","onClickOutside","onKeydown","e","disabled","key","activatorEl","focus","onActivatorKeydown","el","contentEl","preventDefault","includes","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport { focusChild, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab') {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n focusChild(el, 'prev')\n }\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
|
21
21
|
import { useToggleScope } from "../../composables/toggleScope.mjs";
|
|
22
22
|
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Directives
|
|
23
23
|
import { ClickOutside } from "../../directives/click-outside/index.mjs"; // Utilities
|
|
24
|
-
import { computed, mergeProps, ref, Teleport,
|
|
24
|
+
import { computed, mergeProps, ref, Teleport, toRef, Transition, watch } from 'vue';
|
|
25
25
|
import { animate, convertToUnit, genericComponent, getScrollParent, IN_BROWSER, propsFactory, standardEasing, useRender } from "../../util/index.mjs"; // Types
|
|
26
26
|
function Scrim(props) {
|
|
27
27
|
const {
|
|
@@ -178,6 +178,9 @@ export const VOverlay = genericComponent()({
|
|
|
178
178
|
if (e.key === 'Escape' && globalTop.value) {
|
|
179
179
|
if (!props.persistent) {
|
|
180
180
|
isActive.value = false;
|
|
181
|
+
if (contentEl.value?.contains(document.activeElement)) {
|
|
182
|
+
activatorEl.value?.focus();
|
|
183
|
+
}
|
|
181
184
|
} else animateClick();
|
|
182
185
|
}
|
|
183
186
|
}
|
|
@@ -220,7 +223,7 @@ export const VOverlay = genericComponent()({
|
|
|
220
223
|
isActive: isActive.value,
|
|
221
224
|
props: mergeProps({
|
|
222
225
|
ref: activatorRef
|
|
223
|
-
},
|
|
226
|
+
}, activatorEvents.value, props.activatorProps)
|
|
224
227
|
}), isMounted.value && _createVNode(Teleport, {
|
|
225
228
|
"disabled": !teleportTarget.value,
|
|
226
229
|
"to": teleportTarget.value
|
|
@@ -238,7 +241,7 @@ export const VOverlay = genericComponent()({
|
|
|
238
241
|
}, scopeId, attrs), [_createVNode(Scrim, _mergeProps({
|
|
239
242
|
"color": scrimColor,
|
|
240
243
|
"modelValue": isActive.value && !!props.scrim
|
|
241
|
-
},
|
|
244
|
+
}, scrimEvents.value), null), _createVNode(MaybeTransition, {
|
|
242
245
|
"appear": true,
|
|
243
246
|
"persisted": true,
|
|
244
247
|
"transition": props.transition,
|
|
@@ -252,7 +255,7 @@ export const VOverlay = genericComponent()({
|
|
|
252
255
|
"ref": contentEl,
|
|
253
256
|
"class": ['v-overlay__content', props.contentClass],
|
|
254
257
|
"style": [dimensionStyles.value, contentStyles.value]
|
|
255
|
-
},
|
|
258
|
+
}, contentEvents.value, props.contentProps), [slots.default?.({
|
|
256
259
|
isActive
|
|
257
260
|
})]), [[_vShow, isActive.value], [_resolveDirective("click-outside"), {
|
|
258
261
|
handler: onClickOutside,
|