@fluentui/react-avatar 9.0.0-rc.9 → 9.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +544 -1
- package/CHANGELOG.md +131 -2
- package/MIGRATION-AvatarGroup.md +35 -0
- package/README-AvatarGroup.md +39 -0
- package/README.md +16 -11
- package/SPEC.md +1 -135
- package/dist/index.d.ts +90 -27
- package/lib/AvatarGroupItem.js +2 -0
- package/lib/AvatarGroupItem.js.map +1 -0
- package/lib/components/Avatar/Avatar.js.map +1 -1
- package/lib/components/Avatar/Avatar.types.js.map +1 -1
- package/lib/components/Avatar/renderAvatar.js.map +1 -1
- package/lib/components/Avatar/useAvatar.js +4 -7
- package/lib/components/Avatar/useAvatar.js.map +1 -1
- package/lib/components/Avatar/useAvatarStyles.js +63 -68
- package/lib/components/Avatar/useAvatarStyles.js.map +1 -1
- package/lib/components/AvatarGroup/AvatarGroup.js +2 -1
- package/lib/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/lib/components/AvatarGroup/AvatarGroup.types.js.map +1 -1
- package/lib/components/AvatarGroup/renderAvatarGroup.js +32 -4
- package/lib/components/AvatarGroup/renderAvatarGroup.js.map +1 -1
- package/lib/components/AvatarGroup/useAvatarGroup.js +67 -28
- package/lib/components/AvatarGroup/useAvatarGroup.js.map +1 -1
- package/lib/components/AvatarGroup/useAvatarGroupStyles.js +280 -15
- package/lib/components/AvatarGroup/useAvatarGroupStyles.js.map +1 -1
- package/lib/components/AvatarGroupItem/AvatarGroupItem.js +16 -0
- package/lib/components/AvatarGroupItem/AvatarGroupItem.js.map +1 -0
- package/lib/components/AvatarGroupItem/AvatarGroupItem.types.js +2 -0
- package/lib/components/AvatarGroupItem/AvatarGroupItem.types.js.map +1 -0
- package/lib/components/AvatarGroupItem/index.js +6 -0
- package/lib/components/AvatarGroupItem/index.js.map +1 -0
- package/lib/components/AvatarGroupItem/renderAvatarGroupItem.js +17 -0
- package/lib/components/AvatarGroupItem/renderAvatarGroupItem.js.map +1 -0
- package/lib/components/AvatarGroupItem/useAvatarGroupItem.js +70 -0
- package/lib/components/AvatarGroupItem/useAvatarGroupItem.js.map +1 -0
- package/lib/components/AvatarGroupItem/useAvatarGroupItemStyles.js +356 -0
- package/lib/components/AvatarGroupItem/useAvatarGroupItemStyles.js.map +1 -0
- package/lib/contexts/AvatarGroupContext.js +7 -0
- package/lib/contexts/AvatarGroupContext.js.map +1 -0
- package/lib/contexts/AvatarGroupContext.types.js +2 -0
- package/lib/contexts/AvatarGroupContext.types.js.map +1 -0
- package/lib/contexts/index.js +2 -0
- package/lib/contexts/index.js.map +1 -0
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/utils/getInitials.js +2 -0
- package/lib/utils/getInitials.js.map +1 -1
- package/lib-commonjs/AvatarGroupItem.js +10 -0
- package/lib-commonjs/AvatarGroupItem.js.map +1 -0
- package/lib-commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib-commonjs/components/Avatar/renderAvatar.js.map +1 -1
- package/lib-commonjs/components/Avatar/useAvatar.js +4 -7
- package/lib-commonjs/components/Avatar/useAvatar.js.map +1 -1
- package/lib-commonjs/components/Avatar/useAvatarStyles.js +65 -70
- package/lib-commonjs/components/Avatar/useAvatarStyles.js.map +1 -1
- package/lib-commonjs/components/AvatarGroup/AvatarGroup.js +2 -1
- package/lib-commonjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/lib-commonjs/components/AvatarGroup/renderAvatarGroup.js +35 -4
- package/lib-commonjs/components/AvatarGroup/renderAvatarGroup.js.map +1 -1
- package/lib-commonjs/components/AvatarGroup/useAvatarGroup.js +70 -31
- package/lib-commonjs/components/AvatarGroup/useAvatarGroup.js.map +1 -1
- package/lib-commonjs/components/AvatarGroup/useAvatarGroupStyles.js +284 -15
- package/lib-commonjs/components/AvatarGroup/useAvatarGroupStyles.js.map +1 -1
- package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.js +27 -0
- package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.js.map +1 -0
- package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.types.js +6 -0
- package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.types.js.map +1 -0
- package/lib-commonjs/components/AvatarGroupItem/index.js +18 -0
- package/lib-commonjs/components/AvatarGroupItem/index.js.map +1 -0
- package/lib-commonjs/components/AvatarGroupItem/renderAvatarGroupItem.js +28 -0
- package/lib-commonjs/components/AvatarGroupItem/renderAvatarGroupItem.js.map +1 -0
- package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItem.js +84 -0
- package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItem.js.map +1 -0
- package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItemStyles.js +370 -0
- package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItemStyles.js.map +1 -0
- package/lib-commonjs/contexts/AvatarGroupContext.js +15 -0
- package/lib-commonjs/contexts/AvatarGroupContext.js.map +1 -0
- package/lib-commonjs/contexts/AvatarGroupContext.types.js +6 -0
- package/lib-commonjs/contexts/AvatarGroupContext.types.js.map +1 -0
- package/lib-commonjs/contexts/index.js +10 -0
- package/lib-commonjs/contexts/index.js.map +1 -0
- package/lib-commonjs/index.js +34 -8
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/getInitials.js +2 -0
- package/lib-commonjs/utils/getInitials.js.map +1 -1
- package/lib-commonjs/utils/index.js.map +1 -1
- package/package.json +16 -16
- package/lib/components/AvatarGroup/AvatarGroup.strings.js +0 -4
- package/lib/components/AvatarGroup/AvatarGroup.strings.js.map +0 -1
- package/lib-commonjs/components/AvatarGroup/AvatarGroup.strings.js +0 -10
- package/lib-commonjs/components/AvatarGroup/AvatarGroup.strings.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { getNativeElementProps, resolveShorthand } from '@fluentui/react-utilities';
|
|
3
|
+
import { MoreHorizontalRegular } from '@fluentui/react-icons';
|
|
2
4
|
import { PopoverSurface } from '@fluentui/react-popover';
|
|
3
|
-
import { Button } from '@fluentui/react-button';
|
|
4
|
-
import { avatarGroupDefaultStrings } from './AvatarGroup.strings';
|
|
5
5
|
/**
|
|
6
6
|
* Create the state required to render AvatarGroup.
|
|
7
7
|
*
|
|
@@ -15,37 +15,76 @@ import { avatarGroupDefaultStrings } from './AvatarGroup.strings';
|
|
|
15
15
|
export const useAvatarGroup_unstable = (props, ref) => {
|
|
16
16
|
const {
|
|
17
17
|
children,
|
|
18
|
-
|
|
18
|
+
layout = 'spread',
|
|
19
|
+
maxAvatars = 5,
|
|
20
|
+
size = defaultAvatarGroupSize
|
|
19
21
|
} = props;
|
|
22
|
+
const {
|
|
23
|
+
overflowIndicator = size < 24 ? 'icon' : 'count'
|
|
24
|
+
} = props;
|
|
25
|
+
const childrenArray = React.Children.toArray(children);
|
|
26
|
+
let rootChildren = childrenArray;
|
|
27
|
+
let overflowChildren;
|
|
28
|
+
let overflowButtonChildren;
|
|
29
|
+
|
|
30
|
+
if (layout === 'pie') {
|
|
31
|
+
rootChildren = childrenArray.slice(0, 3);
|
|
32
|
+
overflowChildren = childrenArray;
|
|
33
|
+
} else if (childrenArray.length > maxAvatars) {
|
|
34
|
+
const numOfAvatarsToHide = childrenArray.length - maxAvatars + 1;
|
|
35
|
+
rootChildren = childrenArray.slice(numOfAvatarsToHide);
|
|
36
|
+
overflowChildren = childrenArray.slice(0, numOfAvatarsToHide);
|
|
37
|
+
|
|
38
|
+
if (overflowIndicator === 'icon') {
|
|
39
|
+
overflowButtonChildren = /*#__PURE__*/React.createElement(MoreHorizontalRegular, null);
|
|
40
|
+
} else {
|
|
41
|
+
overflowButtonChildren = numOfAvatarsToHide > 99 ? '99+' : `+${numOfAvatarsToHide}`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const root = getNativeElementProps('div', {
|
|
46
|
+
role: 'group',
|
|
47
|
+
...props,
|
|
48
|
+
ref,
|
|
49
|
+
children: rootChildren
|
|
50
|
+
}, ['size']);
|
|
51
|
+
const overflowButton = resolveShorthand(props.overflowButton, {
|
|
52
|
+
required: true,
|
|
53
|
+
defaultProps: {
|
|
54
|
+
children: overflowButtonChildren,
|
|
55
|
+
type: 'button'
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const overflowContent = resolveShorthand(props.overflowContent, {
|
|
59
|
+
required: true,
|
|
60
|
+
defaultProps: {
|
|
61
|
+
'aria-label': 'Overflow',
|
|
62
|
+
children: overflowChildren,
|
|
63
|
+
role: 'list',
|
|
64
|
+
tabIndex: 0
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
const overflowSurface = resolveShorthand(props.overflowSurface, {
|
|
68
|
+
required: true
|
|
69
|
+
});
|
|
20
70
|
return {
|
|
21
|
-
|
|
22
|
-
|
|
71
|
+
nonOverflowAvatarsCount: rootChildren.length,
|
|
72
|
+
hasOverflow: !!overflowChildren,
|
|
73
|
+
layout,
|
|
74
|
+
overflowIndicator,
|
|
75
|
+
size,
|
|
76
|
+
tooltipContent: 'View more people.',
|
|
23
77
|
components: {
|
|
24
|
-
// TODO add each slot's element type or component
|
|
25
78
|
root: 'div',
|
|
26
|
-
|
|
27
|
-
|
|
79
|
+
overflowContent: 'div',
|
|
80
|
+
overflowButton: 'button',
|
|
81
|
+
overflowSurface: PopoverSurface
|
|
28
82
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
...props
|
|
34
|
-
}),
|
|
35
|
-
popoverTrigger: resolveShorthand(props.popoverTrigger, {
|
|
36
|
-
required: true,
|
|
37
|
-
defaultProps: {
|
|
38
|
-
// TODO: Update children
|
|
39
|
-
children: '+10'
|
|
40
|
-
}
|
|
41
|
-
}),
|
|
42
|
-
popoverSurface: resolveShorthand(props.popoverSurface, {
|
|
43
|
-
required: true,
|
|
44
|
-
defaultProps: {
|
|
45
|
-
// TODO: Update children
|
|
46
|
-
children: children
|
|
47
|
-
}
|
|
48
|
-
})
|
|
83
|
+
root,
|
|
84
|
+
overflowButton,
|
|
85
|
+
overflowContent,
|
|
86
|
+
overflowSurface
|
|
49
87
|
};
|
|
50
88
|
};
|
|
89
|
+
export const defaultAvatarGroupSize = 32;
|
|
51
90
|
//# sourceMappingURL=useAvatarGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/AvatarGroup/useAvatarGroup.
|
|
1
|
+
{"version":3,"sources":["components/AvatarGroup/useAvatarGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,qBAAT,EAAgC,gBAAhC,QAAwD,2BAAxD;AACA,SAAS,qBAAT,QAAsC,uBAAtC;AACA,SAAS,cAAT,QAA+B,yBAA/B;AAGA;;;;;;;;AAQG;;AACH,OAAO,MAAM,uBAAuB,GAAG,CAAC,KAAD,EAA0B,GAA1B,KAA2E;EAChH,MAAM;IAAE,QAAF;IAAY,MAAM,GAAG,QAArB;IAA+B,UAAU,GAAG,CAA5C;IAA+C,IAAI,GAAG;EAAtD,IAAiF,KAAvF;EACA,MAAM;IAAE,iBAAiB,GAAG,IAAI,GAAG,EAAP,GAAY,MAAZ,GAAqB;EAA3C,IAAuD,KAA7D;EACA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAN,CAAe,OAAf,CAAuB,QAAvB,CAAtB;EAEA,IAAI,YAAY,GAAG,aAAnB;EACA,IAAI,gBAAJ;EACA,IAAI,sBAAJ;;EAEA,IAAI,MAAM,KAAK,KAAf,EAAsB;IACpB,YAAY,GAAG,aAAa,CAAC,KAAd,CAAoB,CAApB,EAAuB,CAAvB,CAAf;IACA,gBAAgB,GAAG,aAAnB;EACD,CAHD,MAGO,IAAI,aAAa,CAAC,MAAd,GAAuB,UAA3B,EAAuC;IAC5C,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAd,GAAuB,UAAvB,GAAoC,CAA/D;IAEA,YAAY,GAAG,aAAa,CAAC,KAAd,CAAoB,kBAApB,CAAf;IACA,gBAAgB,GAAG,aAAa,CAAC,KAAd,CAAoB,CAApB,EAAuB,kBAAvB,CAAnB;;IAEA,IAAI,iBAAiB,KAAK,MAA1B,EAAkC;MAChC,sBAAsB,gBAAG,KAAA,CAAA,aAAA,CAAC,qBAAD,EAAsB,IAAtB,CAAzB;IACD,CAFD,MAEO;MACL,sBAAsB,GAAG,kBAAkB,GAAG,EAArB,GAA0B,KAA1B,GAAkC,IAAI,kBAAkB,EAAjF;IACD;EACF;;EAED,MAAM,IAAI,GAAG,qBAAqB,CAChC,KADgC,EAEhC;IACE,IAAI,EAAE,OADR;IAEE,GAAG,KAFL;IAGE,GAHF;IAIE,QAAQ,EAAE;EAJZ,CAFgC,EAQhC,CAAC,MAAD,CARgC,CAAlC;EAWA,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAP,EAAuB;IAC5D,QAAQ,EAAE,IADkD;IAE5D,YAAY,EAAE;MACZ,QAAQ,EAAE,sBADE;MAEZ,IAAI,EAAE;IAFM;EAF8C,CAAvB,CAAvC;EAQA,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAP,EAAwB;IAC9D,QAAQ,EAAE,IADoD;IAE9D,YAAY,EAAE;MACZ,cAAc,UADF;MAEZ,QAAQ,EAAE,gBAFE;MAGZ,IAAI,EAAE,MAHM;MAIZ,QAAQ,EAAE;IAJE;EAFgD,CAAxB,CAAxC;EAUA,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAP,EAAwB;IAC9D,QAAQ,EAAE;EADoD,CAAxB,CAAxC;EAIA,OAAO;IACL,uBAAuB,EAAE,YAAY,CAAC,MADjC;IAEL,WAAW,EAAE,CAAC,CAAC,gBAFV;IAGL,MAHK;IAIL,iBAJK;IAKL,IALK;IAML,cAAc,EAAE,mBANX;IAQL,UAAU,EAAE;MACV,IAAI,EAAE,KADI;MAEV,eAAe,EAAE,KAFP;MAGV,cAAc,EAAE,QAHN;MAIV,eAAe,EAAE;IAJP,CARP;IAeL,IAfK;IAgBL,cAhBK;IAiBL,eAjBK;IAkBL;EAlBK,CAAP;AAoBD,CA9EM;AAgFP,OAAO,MAAM,sBAAsB,GAAG,EAA/B","sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, resolveShorthand } from '@fluentui/react-utilities';\nimport { MoreHorizontalRegular } from '@fluentui/react-icons';\nimport { PopoverSurface } from '@fluentui/react-popover';\nimport type { AvatarGroupProps, AvatarGroupState } from './AvatarGroup.types';\n\n/**\n * Create the state required to render AvatarGroup.\n *\n * The returned state can be modified with hooks such as useAvatarGroupStyles_unstable,\n * before being passed to renderAvatarGroup_unstable.\n *\n * @param props - props from this instance of AvatarGroup\n * @param ref - reference to root HTMLElement of AvatarGroup\n */\nexport const useAvatarGroup_unstable = (props: AvatarGroupProps, ref: React.Ref<HTMLElement>): AvatarGroupState => {\n const { children, layout = 'spread', maxAvatars = 5, size = defaultAvatarGroupSize } = props;\n const { overflowIndicator = size < 24 ? 'icon' : 'count' } = props;\n const childrenArray = React.Children.toArray(children);\n\n let rootChildren = childrenArray;\n let overflowChildren;\n let overflowButtonChildren;\n\n if (layout === 'pie') {\n rootChildren = childrenArray.slice(0, 3);\n overflowChildren = childrenArray;\n } else if (childrenArray.length > maxAvatars) {\n const numOfAvatarsToHide = childrenArray.length - maxAvatars + 1;\n\n rootChildren = childrenArray.slice(numOfAvatarsToHide);\n overflowChildren = childrenArray.slice(0, numOfAvatarsToHide);\n\n if (overflowIndicator === 'icon') {\n overflowButtonChildren = <MoreHorizontalRegular />;\n } else {\n overflowButtonChildren = numOfAvatarsToHide > 99 ? '99+' : `+${numOfAvatarsToHide}`;\n }\n }\n\n const root = getNativeElementProps(\n 'div',\n {\n role: 'group',\n ...props,\n ref,\n children: rootChildren,\n },\n ['size'],\n );\n\n const overflowButton = resolveShorthand(props.overflowButton, {\n required: true,\n defaultProps: {\n children: overflowButtonChildren,\n type: 'button',\n },\n });\n\n const overflowContent = resolveShorthand(props.overflowContent, {\n required: true,\n defaultProps: {\n 'aria-label': 'Overflow',\n children: overflowChildren,\n role: 'list',\n tabIndex: 0,\n },\n });\n\n const overflowSurface = resolveShorthand(props.overflowSurface, {\n required: true,\n });\n\n return {\n nonOverflowAvatarsCount: rootChildren.length,\n hasOverflow: !!overflowChildren,\n layout,\n overflowIndicator,\n size,\n tooltipContent: 'View more people.',\n\n components: {\n root: 'div',\n overflowContent: 'div',\n overflowButton: 'button',\n overflowSurface: PopoverSurface,\n },\n\n root,\n overflowButton,\n overflowContent,\n overflowSurface,\n };\n};\n\nexport const defaultAvatarGroupSize = 32;\n"],"sourceRoot":"../src/"}
|
|
@@ -1,35 +1,300 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';
|
|
2
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
3
|
+
import { tokens, typographyStyles } from '@fluentui/react-theme';
|
|
4
|
+
import { useSizeStyles } from '../Avatar/useAvatarStyles';
|
|
5
|
+
import { useGroupChildClassName } from '../../AvatarGroupItem';
|
|
2
6
|
export const avatarGroupClassNames = {
|
|
3
7
|
root: 'fui-AvatarGroup',
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export const extraAvatarGroupClassNames = {
|
|
8
|
-
popoverSurfaceItem: 'fui-AvatarGroup__popoverSurfaceItem'
|
|
8
|
+
overflowContent: 'fui-AvatarGroup__overflowContent',
|
|
9
|
+
overflowButton: 'fui-AvatarGroup__overflowButton',
|
|
10
|
+
overflowSurface: 'fui-AvatarGroup__overflowSurface'
|
|
9
11
|
};
|
|
10
12
|
/**
|
|
11
|
-
* Styles for the root slot
|
|
13
|
+
* Styles for the root slot.
|
|
12
14
|
*/
|
|
13
15
|
|
|
14
16
|
const useStyles = /*#__PURE__*/__styles({
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
+
"base": {
|
|
18
|
+
"mc9l5x": "ftuwxu6",
|
|
19
|
+
"qhf8xq": "f10pi13n"
|
|
20
|
+
},
|
|
21
|
+
"pie": {
|
|
22
|
+
"Bgl5zvf": "f1uz6ud1",
|
|
23
|
+
"De3pzq": "f1ganh6p",
|
|
24
|
+
"Bsw6fvg": "fe2ae1k"
|
|
25
|
+
},
|
|
26
|
+
"overflowSurface": {
|
|
27
|
+
"z8tnut": "f1g0x7ka",
|
|
28
|
+
"z189sj": ["fhxju0i", "f1cnd47f"],
|
|
29
|
+
"Byoj8tv": "f1qch9an",
|
|
30
|
+
"uwmqm3": ["f1cnd47f", "fhxju0i"]
|
|
31
|
+
},
|
|
32
|
+
"overflowContent": {
|
|
33
|
+
"Bxyxcbc": "fopcw2o",
|
|
34
|
+
"sshi5w": "f1n5o1gx",
|
|
35
|
+
"B68tc82": "f1p9o1ba",
|
|
36
|
+
"Bmxbyg5": "fqkkaap",
|
|
37
|
+
"z8tnut": "f17mpqex",
|
|
38
|
+
"z189sj": ["f1vdfbxk", "f1f5gg8d"],
|
|
39
|
+
"Byoj8tv": "fdvome7",
|
|
40
|
+
"uwmqm3": ["f1f5gg8d", "f1vdfbxk"],
|
|
41
|
+
"a9b677": "f13dwy2t"
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
"d": [".ftuwxu6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}", ".f10pi13n{position:relative;}", ".f1uz6ud1{-webkit-clip-path:circle(50%);clip-path:circle(50%);}", ".f1ganh6p{background-color:var(--colorTransparentStroke);}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".fopcw2o{max-height:220px;}", ".f1n5o1gx{min-height:80px;}", ".f1p9o1ba{overflow-x:hidden;}", ".fqkkaap{overflow-y:scroll;}", ".f17mpqex{padding-top:var(--spacingHorizontalS);}", ".f1vdfbxk{padding-right:var(--spacingHorizontalS);}", ".f1f5gg8d{padding-left:var(--spacingHorizontalS);}", ".fdvome7{padding-bottom:var(--spacingHorizontalS);}", ".f13dwy2t{width:220px;}"],
|
|
45
|
+
"m": [["@media (forced-colors: active){.fe2ae1k{background-color:CanvasText;}}", {
|
|
46
|
+
"m": "(forced-colors: active)"
|
|
47
|
+
}]]
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Styles for overflow button slot.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
const useOverflowButtonStyles = /*#__PURE__*/__styles({
|
|
55
|
+
"base": {
|
|
56
|
+
"mc9l5x": "ftuwxu6",
|
|
57
|
+
"qhf8xq": "f10pi13n",
|
|
58
|
+
"Bnnss6s": "fi64zpg",
|
|
59
|
+
"Brf1p80": "f4d9j23",
|
|
60
|
+
"Bt984gj": "f122n59",
|
|
61
|
+
"sj55zd": "f19n0e5",
|
|
62
|
+
"De3pzq": "fxugw4r",
|
|
63
|
+
"g2u3we": "fj3muxo",
|
|
64
|
+
"h3c5rm": ["f1akhkt", "f1lxtadh"],
|
|
65
|
+
"B9xav0g": "f1aperda",
|
|
66
|
+
"zhjwy3": ["f1lxtadh", "f1akhkt"],
|
|
67
|
+
"Bbmb7ep": ["f8fbkgy", "f1nfllo7"],
|
|
68
|
+
"Beyfa6y": ["f1nfllo7", "f8fbkgy"],
|
|
69
|
+
"B7oj6ja": ["f1djnp8u", "f1s8kh49"],
|
|
70
|
+
"Btl43ni": ["f1s8kh49", "f1djnp8u"],
|
|
71
|
+
"icvyot": "fzkkow9",
|
|
72
|
+
"vrafjx": ["fcdblym", "fjik90z"],
|
|
73
|
+
"oivjwe": "fg706s2",
|
|
74
|
+
"wvpqe5": ["fjik90z", "fcdblym"],
|
|
75
|
+
"z8tnut": "f1g0x7ka",
|
|
76
|
+
"z189sj": ["fhxju0i", "f1cnd47f"],
|
|
77
|
+
"Byoj8tv": "f1qch9an",
|
|
78
|
+
"uwmqm3": ["f1cnd47f", "fhxju0i"],
|
|
79
|
+
"Bjwas2f": "fw33nwi",
|
|
80
|
+
"Bn1d65q": ["f1ptkjjm", "fmzzjfk"],
|
|
81
|
+
"Bxeuatn": "f15j0dln",
|
|
82
|
+
"n51gp8": ["fmzzjfk", "f1ptkjjm"]
|
|
83
|
+
},
|
|
84
|
+
"focusIndicator": {
|
|
85
|
+
"Brovlpu": "ftqa4ok",
|
|
86
|
+
"Bnmjwt4": "flfsvnh",
|
|
87
|
+
"Jopkrh": ["f1781m5e", "flvaaa9"],
|
|
88
|
+
"hhrs2v": "f50u1b5",
|
|
89
|
+
"B7jbng7": ["flvaaa9", "f1781m5e"],
|
|
90
|
+
"Bh48x57": "foqs3zz",
|
|
91
|
+
"B32s92o": "fgeg2qa",
|
|
92
|
+
"B5hngm5": "fhcq1yo"
|
|
93
|
+
},
|
|
94
|
+
"pieFocusIndicator": {
|
|
95
|
+
"Brovlpu": "ftqa4ok",
|
|
96
|
+
"rkqiyj": "f1gx8lax",
|
|
97
|
+
"Bs3nqqt": ["f1as8ps8", "f17o1ya2"],
|
|
98
|
+
"B4mky7d": "f1amggu6",
|
|
99
|
+
"Bviepcv": ["f17o1ya2", "f1as8ps8"],
|
|
100
|
+
"Bc28wk5": "flnfwa4",
|
|
101
|
+
"w1edd7": ["fuav46a", "fcnogh1"],
|
|
102
|
+
"Ba8awiv": "f19zilzp",
|
|
103
|
+
"I50xcx": ["fcnogh1", "fuav46a"],
|
|
104
|
+
"Bnmjwt4": "f119w1j1",
|
|
105
|
+
"Jopkrh": ["f1wlf18u", "fcqg1ja"],
|
|
106
|
+
"hhrs2v": "ft77uen",
|
|
107
|
+
"B7jbng7": ["fcqg1ja", "f1wlf18u"]
|
|
108
|
+
},
|
|
109
|
+
"states": {
|
|
110
|
+
"Bi91k9c": "feu1g3u",
|
|
111
|
+
"Jwef8y": "f1knas48",
|
|
112
|
+
"Bgoe8wy": "fvcxoqz",
|
|
113
|
+
"Bwzppfd": ["f1ub3y4t", "f1m52nbi"],
|
|
114
|
+
"oetu4i": "f1xlaoq0",
|
|
115
|
+
"gg5e9n": ["f1m52nbi", "f1ub3y4t"],
|
|
116
|
+
"lj723h": "f1g4hkjv",
|
|
117
|
+
"ecr2s2": "fb40n2d",
|
|
118
|
+
"B6oc9vd": "fvs00aa",
|
|
119
|
+
"ak43y8": ["f1assf6x", "f4ruux4"],
|
|
120
|
+
"wmxk5l": "fumykes",
|
|
121
|
+
"B50zh58": ["f4ruux4", "f1assf6x"]
|
|
122
|
+
},
|
|
123
|
+
"pie": {
|
|
124
|
+
"De3pzq": "f1c21dwh",
|
|
125
|
+
"g2u3we": "fghlq4f",
|
|
126
|
+
"h3c5rm": ["f1gn591s", "fjscplz"],
|
|
127
|
+
"B9xav0g": "fb073pr",
|
|
128
|
+
"zhjwy3": ["fjscplz", "f1gn591s"],
|
|
129
|
+
"sj55zd": "f44pa96"
|
|
130
|
+
},
|
|
131
|
+
"icon12": {
|
|
132
|
+
"Be2twd7": "f1ugzwwg"
|
|
133
|
+
},
|
|
134
|
+
"icon16": {
|
|
135
|
+
"Be2twd7": "f4ybsrx"
|
|
136
|
+
},
|
|
137
|
+
"icon20": {
|
|
138
|
+
"Be2twd7": "fe5j1ua"
|
|
139
|
+
},
|
|
140
|
+
"icon24": {
|
|
141
|
+
"Be2twd7": "f1rt2boy"
|
|
142
|
+
},
|
|
143
|
+
"icon28": {
|
|
144
|
+
"Be2twd7": "f24l1pt"
|
|
145
|
+
},
|
|
146
|
+
"icon32": {
|
|
147
|
+
"Be2twd7": "ffl51b"
|
|
148
|
+
},
|
|
149
|
+
"icon48": {
|
|
150
|
+
"Be2twd7": "f18m8u13"
|
|
151
|
+
},
|
|
152
|
+
"caption2Strong": {
|
|
153
|
+
"Bahqtrf": "fk6fouc",
|
|
154
|
+
"Be2twd7": "f13mqy1h",
|
|
155
|
+
"Bhrd7zp": "fl43uef",
|
|
156
|
+
"Bg96gwp": "fcpl73t"
|
|
157
|
+
},
|
|
158
|
+
"caption1Strong": {
|
|
159
|
+
"Bahqtrf": "fk6fouc",
|
|
160
|
+
"Be2twd7": "fy9rknc",
|
|
161
|
+
"Bhrd7zp": "fl43uef",
|
|
162
|
+
"Bg96gwp": "fwrc4pm"
|
|
163
|
+
},
|
|
164
|
+
"body1Strong": {
|
|
165
|
+
"Bahqtrf": "fk6fouc",
|
|
166
|
+
"Be2twd7": "fkhj508",
|
|
167
|
+
"Bhrd7zp": "fl43uef",
|
|
168
|
+
"Bg96gwp": "f1i3iumi"
|
|
169
|
+
},
|
|
170
|
+
"subtitle2": {
|
|
171
|
+
"Bahqtrf": "fk6fouc",
|
|
172
|
+
"Be2twd7": "fod5ikn",
|
|
173
|
+
"Bhrd7zp": "fl43uef",
|
|
174
|
+
"Bg96gwp": "faaz57k"
|
|
175
|
+
},
|
|
176
|
+
"subtitle1": {
|
|
177
|
+
"Bahqtrf": "fk6fouc",
|
|
178
|
+
"Be2twd7": "f1pp30po",
|
|
179
|
+
"Bhrd7zp": "fl43uef",
|
|
180
|
+
"Bg96gwp": "f106mvju"
|
|
181
|
+
},
|
|
182
|
+
"title3": {
|
|
183
|
+
"Bahqtrf": "fk6fouc",
|
|
184
|
+
"Be2twd7": "f1x0m3f5",
|
|
185
|
+
"Bhrd7zp": "fl43uef",
|
|
186
|
+
"Bg96gwp": "fb86gi6"
|
|
187
|
+
},
|
|
188
|
+
"borderThin": {
|
|
189
|
+
"B4j52fo": "f192inf7",
|
|
190
|
+
"Bekrc4i": ["f5tn483", "f1ojsxk5"],
|
|
191
|
+
"Bn0qgzm": "f1vxd6vx",
|
|
192
|
+
"ibv6hh": ["f1ojsxk5", "f5tn483"]
|
|
193
|
+
},
|
|
194
|
+
"borderThick": {
|
|
195
|
+
"B4j52fo": "f18zi460",
|
|
196
|
+
"Bekrc4i": ["f1wpluaz", "fsfsuhs"],
|
|
197
|
+
"Bn0qgzm": "fmklw6v",
|
|
198
|
+
"ibv6hh": ["fsfsuhs", "f1wpluaz"]
|
|
199
|
+
},
|
|
200
|
+
"borderThicker": {
|
|
201
|
+
"B4j52fo": "fgx37oo",
|
|
202
|
+
"Bekrc4i": ["f130t4y6", "f1efpmoh"],
|
|
203
|
+
"Bn0qgzm": "fv51ejd",
|
|
204
|
+
"ibv6hh": ["f1efpmoh", "f130t4y6"]
|
|
205
|
+
},
|
|
206
|
+
"borderThickest": {
|
|
207
|
+
"B4j52fo": "fwn6jck",
|
|
208
|
+
"Bekrc4i": ["figl7jc", "f1g0iy8l"],
|
|
209
|
+
"Bn0qgzm": "f1b8shu7",
|
|
210
|
+
"ibv6hh": ["f1g0iy8l", "figl7jc"]
|
|
211
|
+
}
|
|
212
|
+
}, {
|
|
213
|
+
"d": [".ftuwxu6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}", ".f10pi13n{position:relative;}", ".fi64zpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}", ".f4d9j23{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".fxugw4r{background-color:var(--colorNeutralBackground1);}", ".fj3muxo{border-top-color:var(--colorNeutralStroke1);}", ".f1akhkt{border-right-color:var(--colorNeutralStroke1);}", ".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}", ".f1aperda{border-bottom-color:var(--colorNeutralStroke1);}", ".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}", ".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}", ".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}", ".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}", ".fzkkow9{border-top-style:solid;}", ".fcdblym{border-right-style:solid;}", ".fjik90z{border-left-style:solid;}", ".fg706s2{border-bottom-style:solid;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", "[data-keyboard-nav] .flfsvnh:focus{border-top-color:transparent;}", "[data-keyboard-nav] .f1781m5e:focus{border-right-color:transparent;}", "[data-keyboard-nav] .flvaaa9:focus{border-left-color:transparent;}", "[data-keyboard-nav] .f50u1b5:focus{border-bottom-color:transparent;}", "[data-keyboard-nav] .foqs3zz:focus{outline-color:var(--colorStrokeFocus2);}", "[data-keyboard-nav] .fgeg2qa:focus{outline-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .fhcq1yo:focus{outline-style:solid;}", "[data-keyboard-nav] .f1gx8lax:focus{border-top-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .f1as8ps8:focus{border-right-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .f17o1ya2:focus{border-left-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .f1amggu6:focus{border-bottom-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .flnfwa4:focus{border-top-style:solid;}", "[data-keyboard-nav] .fuav46a:focus{border-right-style:solid;}", "[data-keyboard-nav] .fcnogh1:focus{border-left-style:solid;}", "[data-keyboard-nav] .f19zilzp:focus{border-bottom-style:solid;}", "[data-keyboard-nav] .f119w1j1:focus{border-top-color:var(--colorStrokeFocus2);}", "[data-keyboard-nav] .f1wlf18u:focus{border-right-color:var(--colorStrokeFocus2);}", "[data-keyboard-nav] .fcqg1ja:focus{border-left-color:var(--colorStrokeFocus2);}", "[data-keyboard-nav] .ft77uen:focus{border-bottom-color:var(--colorStrokeFocus2);}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".fghlq4f{border-top-color:var(--colorTransparentStroke);}", ".f1gn591s{border-right-color:var(--colorTransparentStroke);}", ".fjscplz{border-left-color:var(--colorTransparentStroke);}", ".fb073pr{border-bottom-color:var(--colorTransparentStroke);}", ".f44pa96{color:transparent;}", ".f1ugzwwg{font-size:12px;}", ".f4ybsrx{font-size:16px;}", ".fe5j1ua{font-size:20px;}", ".f1rt2boy{font-size:24px;}", ".f24l1pt{font-size:28px;}", ".ffl51b{font-size:32px;}", ".f18m8u13{font-size:48px;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".f13mqy1h{font-size:var(--fontSizeBase100);}", ".fl43uef{font-weight:var(--fontWeightSemibold);}", ".fcpl73t{line-height:var(--lineHeightBase100);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".fod5ikn{font-size:var(--fontSizeBase400);}", ".faaz57k{line-height:var(--lineHeightBase400);}", ".f1pp30po{font-size:var(--fontSizeBase500);}", ".f106mvju{line-height:var(--lineHeightBase500);}", ".f1x0m3f5{font-size:var(--fontSizeBase600);}", ".fb86gi6{line-height:var(--lineHeightBase600);}", ".f192inf7{border-top-width:var(--strokeWidthThin);}", ".f5tn483{border-right-width:var(--strokeWidthThin);}", ".f1ojsxk5{border-left-width:var(--strokeWidthThin);}", ".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}", ".f18zi460{border-top-width:var(--strokeWidthThick);}", ".f1wpluaz{border-right-width:var(--strokeWidthThick);}", ".fsfsuhs{border-left-width:var(--strokeWidthThick);}", ".fmklw6v{border-bottom-width:var(--strokeWidthThick);}", ".fgx37oo{border-top-width:var(--strokeWidthThicker);}", ".f130t4y6{border-right-width:var(--strokeWidthThicker);}", ".f1efpmoh{border-left-width:var(--strokeWidthThicker);}", ".fv51ejd{border-bottom-width:var(--strokeWidthThicker);}", ".fwn6jck{border-top-width:var(--strokeWidthThickest);}", ".figl7jc{border-right-width:var(--strokeWidthThickest);}", ".f1g0iy8l{border-left-width:var(--strokeWidthThickest);}", ".f1b8shu7{border-bottom-width:var(--strokeWidthThickest);}"],
|
|
214
|
+
"m": [["@media (forced-colors: active){.fw33nwi{border-top-color:CanvasText;}}", {
|
|
215
|
+
"m": "(forced-colors: active)"
|
|
216
|
+
}], ["@media (forced-colors: active){.f1ptkjjm{border-right-color:CanvasText;}.fmzzjfk{border-left-color:CanvasText;}}", {
|
|
217
|
+
"m": "(forced-colors: active)"
|
|
218
|
+
}], ["@media (forced-colors: active){.f15j0dln{border-bottom-color:CanvasText;}}", {
|
|
219
|
+
"m": "(forced-colors: active)"
|
|
220
|
+
}], ["@media (forced-colors: active){.fmzzjfk{border-left-color:CanvasText;}.f1ptkjjm{border-right-color:CanvasText;}}", {
|
|
221
|
+
"m": "(forced-colors: active)"
|
|
222
|
+
}]],
|
|
223
|
+
"f": [".ftqa4ok:focus{outline-style:none;}"],
|
|
224
|
+
"h": [".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}", ".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}", ".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}", ".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}", ".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}", ".f1xlaoq0:hover{border-bottom-color:var(--colorNeutralStroke1Hover);}"],
|
|
225
|
+
"a": [".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}", ".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}", ".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}", ".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}", ".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}", ".fumykes:active{border-bottom-color:var(--colorNeutralStroke1Pressed);}"]
|
|
226
|
+
});
|
|
17
227
|
/**
|
|
18
228
|
* Apply styling to the AvatarGroup slots based on the state
|
|
19
229
|
*/
|
|
20
230
|
|
|
21
231
|
|
|
22
232
|
export const useAvatarGroupStyles_unstable = state => {
|
|
233
|
+
const {
|
|
234
|
+
layout,
|
|
235
|
+
overflowIndicator,
|
|
236
|
+
size
|
|
237
|
+
} = state;
|
|
23
238
|
const styles = useStyles();
|
|
24
|
-
|
|
25
|
-
|
|
239
|
+
const sizeStyles = useSizeStyles();
|
|
240
|
+
const overflowButtonStyles = useOverflowButtonStyles();
|
|
241
|
+
const groupChildClassName = useGroupChildClassName(layout, size, true);
|
|
242
|
+
state.root.className = mergeClasses(avatarGroupClassNames.root, styles.base, layout === 'pie' && styles.pie, layout === 'pie' && sizeStyles[size], state.root.className);
|
|
243
|
+
|
|
244
|
+
if (state.overflowContent) {
|
|
245
|
+
state.overflowContent.className = mergeClasses(avatarGroupClassNames.overflowContent, styles.overflowContent, state.overflowContent.className);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (state.overflowSurface) {
|
|
249
|
+
state.overflowSurface.className = mergeClasses(avatarGroupClassNames.overflowSurface, styles.overflowSurface, state.overflowSurface.className);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const overflowButtonClasses = [];
|
|
253
|
+
|
|
254
|
+
if (size < 36) {
|
|
255
|
+
overflowButtonClasses.push(overflowButtonStyles.borderThin);
|
|
256
|
+
} else if (size < 56) {
|
|
257
|
+
overflowButtonClasses.push(overflowButtonStyles.borderThick);
|
|
258
|
+
} else if (size < 72) {
|
|
259
|
+
overflowButtonClasses.push(overflowButtonStyles.borderThicker);
|
|
260
|
+
} else {
|
|
261
|
+
overflowButtonClasses.push(overflowButtonStyles.borderThickest);
|
|
262
|
+
}
|
|
26
263
|
|
|
27
|
-
if (
|
|
28
|
-
|
|
264
|
+
if (overflowIndicator === 'count') {
|
|
265
|
+
if (size <= 24) {
|
|
266
|
+
overflowButtonClasses.push(overflowButtonStyles.caption2Strong);
|
|
267
|
+
} else if (size <= 28) {
|
|
268
|
+
overflowButtonClasses.push(overflowButtonStyles.caption1Strong);
|
|
269
|
+
} else if (size <= 40) {
|
|
270
|
+
overflowButtonClasses.push(overflowButtonStyles.body1Strong);
|
|
271
|
+
} else if (size <= 56) {
|
|
272
|
+
overflowButtonClasses.push(overflowButtonStyles.subtitle2);
|
|
273
|
+
} else if (size <= 96) {
|
|
274
|
+
overflowButtonClasses.push(overflowButtonStyles.subtitle1);
|
|
275
|
+
} else {
|
|
276
|
+
overflowButtonClasses.push(overflowButtonStyles.title3);
|
|
277
|
+
}
|
|
278
|
+
} else {
|
|
279
|
+
if (size <= 16) {
|
|
280
|
+
overflowButtonClasses.push(overflowButtonStyles.icon12);
|
|
281
|
+
} else if (size <= 24) {
|
|
282
|
+
overflowButtonClasses.push(overflowButtonStyles.icon16);
|
|
283
|
+
} else if (size <= 40) {
|
|
284
|
+
overflowButtonClasses.push(overflowButtonStyles.icon20);
|
|
285
|
+
} else if (size <= 48) {
|
|
286
|
+
overflowButtonClasses.push(overflowButtonStyles.icon24);
|
|
287
|
+
} else if (size <= 56) {
|
|
288
|
+
overflowButtonClasses.push(overflowButtonStyles.icon28);
|
|
289
|
+
} else if (size <= 72) {
|
|
290
|
+
overflowButtonClasses.push(overflowButtonStyles.icon32);
|
|
291
|
+
} else {
|
|
292
|
+
overflowButtonClasses.push(overflowButtonStyles.icon48);
|
|
293
|
+
}
|
|
29
294
|
}
|
|
30
295
|
|
|
31
|
-
if (state.
|
|
32
|
-
state.
|
|
296
|
+
if (state.overflowButton) {
|
|
297
|
+
state.overflowButton.className = mergeClasses(avatarGroupClassNames.overflowButton, sizeStyles[size], overflowButtonStyles.base, ...overflowButtonClasses, layout !== 'pie' && overflowButtonStyles.states, layout !== 'pie' && overflowButtonStyles.focusIndicator, layout === 'pie' && overflowButtonStyles.pieFocusIndicator, layout === 'pie' && overflowButtonStyles.pie, groupChildClassName, state.overflowButton.className);
|
|
33
298
|
}
|
|
34
299
|
|
|
35
300
|
return state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/AvatarGroup/useAvatarGroupStyles.ts"],"names":[],"mappings":"AAAA,mBAAqB,YAArB,QAAyC,gBAAzC;AAIA,OAAO,MAAM,qBAAqB,GAAqC;AACrE,EAAA,IAAI,EAAE,iBAD+D;AAErE,EAAA,cAAc,EAAE,iCAFqD;AAGrE,EAAA,cAAc,EAAE;AAHqD,CAAhE;AAMP,OAAO,MAAM,0BAA0B,GAAG;AACxC,EAAA,kBAAkB,EAAE;AADoB,CAAnC;AAIP;;AAEG;;AACH,MAAM,SAAS,gBAAG;AAAA;AAAA,MAAlB;AAQA;;AAEG;;;AACH,OAAO,MAAM,6BAA6B,GAAI,KAAD,IAA8C;AACzF,QAAM,MAAM,GAAG,SAAS,EAAxB;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,qBAAqB,CAAC,IAAvB,EAA6B,MAAM,CAAC,IAApC,EAA0C,KAAK,CAAC,IAAN,CAAW,SAArD,CAAnC,CAFyF,CAIzF;AACA;;AAEA,MAAI,KAAK,CAAC,cAAV,EAA0B;AACxB,IAAA,KAAK,CAAC,cAAN,CAAqB,SAArB,GAAiC,YAAY,CAAC,qBAAqB,CAAC,cAAvB,EAAuC,KAAK,CAAC,cAAN,CAAqB,SAA5D,CAA7C;AACD;;AAED,MAAI,KAAK,CAAC,cAAV,EAA0B;AACxB,IAAA,KAAK,CAAC,cAAN,CAAqB,SAArB,GAAiC,YAAY,CAAC,qBAAqB,CAAC,cAAvB,EAAuC,KAAK,CAAC,cAAN,CAAqB,SAA5D,CAA7C;AACD;;AAED,SAAO,KAAP;AACD,CAhBM","sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport type { AvatarGroupSlots, AvatarGroupState } from './AvatarGroup.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const avatarGroupClassNames: SlotClassNames<AvatarGroupSlots> = {\n root: 'fui-AvatarGroup',\n popoverSurface: 'fui-AvatarGroup__popoverSurface',\n popoverTrigger: 'fui-AvatarGroup__popoverTrigger',\n};\n\nexport const extraAvatarGroupClassNames = {\n popoverSurfaceItem: 'fui-AvatarGroup__popoverSurfaceItem',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n // TODO Add default styles for the root element\n },\n\n // TODO add additional classes for different states and/or slots\n});\n\n/**\n * Apply styling to the AvatarGroup slots based on the state\n */\nexport const useAvatarGroupStyles_unstable = (state: AvatarGroupState): AvatarGroupState => {\n const styles = useStyles();\n state.root.className = mergeClasses(avatarGroupClassNames.root, styles.root, state.root.className);\n\n // TODO Add class names to slots, for example:\n // state.mySlot.className = mergeClasses(styles.mySlot, state.mySlot.className);\n\n if (state.popoverSurface) {\n state.popoverSurface.className = mergeClasses(avatarGroupClassNames.popoverSurface, state.popoverSurface.className);\n }\n\n if (state.popoverTrigger) {\n state.popoverTrigger.className = mergeClasses(avatarGroupClassNames.popoverTrigger, state.popoverTrigger.className);\n }\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
1
|
+
{"version":3,"sources":["components/AvatarGroup/useAvatarGroupStyles.ts"],"names":[],"mappings":"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","sourcesContent":["import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useSizeStyles } from '../Avatar/useAvatarStyles';\nimport type { AvatarGroupSlots, AvatarGroupState } from './AvatarGroup.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { useGroupChildClassName } from '../../AvatarGroupItem';\n\nexport const avatarGroupClassNames: SlotClassNames<AvatarGroupSlots> = {\n root: 'fui-AvatarGroup',\n overflowContent: 'fui-AvatarGroup__overflowContent',\n overflowButton: 'fui-AvatarGroup__overflowButton',\n overflowSurface: 'fui-AvatarGroup__overflowSurface',\n};\n\n/**\n * Styles for the root slot.\n */\nconst useStyles = makeStyles({\n base: {\n display: 'inline-flex',\n position: 'relative',\n },\n pie: {\n clipPath: 'circle(50%)',\n backgroundColor: tokens.colorTransparentStroke,\n '@media (forced-colors: active)': {\n backgroundColor: 'CanvasText',\n },\n },\n overflowSurface: {\n ...shorthands.padding(0),\n },\n overflowContent: {\n maxHeight: '220px',\n minHeight: '80px',\n ...shorthands.overflow('hidden', 'scroll'),\n ...shorthands.padding(tokens.spacingHorizontalS),\n width: '220px',\n },\n});\n\n/**\n * Styles for overflow button slot.\n */\nconst useOverflowButtonStyles = makeStyles({\n base: {\n display: 'inline-flex',\n position: 'relative',\n flexShrink: 0,\n justifyContent: 'center',\n alignItems: 'center',\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n ...shorthands.borderColor(tokens.colorNeutralStroke1),\n ...shorthands.borderRadius(tokens.borderRadiusCircular),\n ...shorthands.borderStyle('solid'),\n ...shorthands.padding(0),\n\n // match color to Avatar's outline color\n '@media (forced-colors: active)': {\n ...shorthands.borderColor('CanvasText'),\n },\n },\n\n // These styles match the default button styles\n focusIndicator: createCustomFocusIndicatorStyle({\n ...shorthands.borderColor('transparent'),\n outlineColor: tokens.colorStrokeFocus2,\n outlineWidth: tokens.strokeWidthThick,\n outlineStyle: 'solid',\n }),\n\n // This custom focus indicator is required for the pie layout due to the clip-path applied to the root\n pieFocusIndicator: createCustomFocusIndicatorStyle({\n ...shorthands.border(tokens.strokeWidthThick, 'solid', tokens.colorStrokeFocus2),\n }),\n\n states: {\n ':hover': {\n color: tokens.colorNeutralForeground1Hover,\n backgroundColor: tokens.colorNeutralBackground1Hover,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),\n },\n ':active': {\n color: tokens.colorNeutralForeground1Pressed,\n backgroundColor: tokens.colorNeutralBackground1Pressed,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n },\n },\n\n pie: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor(tokens.colorTransparentStroke),\n color: 'transparent',\n },\n\n icon12: { fontSize: '12px' },\n icon16: { fontSize: '16px' },\n icon20: { fontSize: '20px' },\n icon24: { fontSize: '24px' },\n icon28: { fontSize: '28px' },\n icon32: { fontSize: '32px' },\n icon48: { fontSize: '48px' },\n caption2Strong: { ...typographyStyles.caption2Strong },\n caption1Strong: { ...typographyStyles.caption1Strong },\n body1Strong: { ...typographyStyles.body1Strong },\n subtitle2: { ...typographyStyles.subtitle2 },\n subtitle1: { ...typographyStyles.subtitle1 },\n title3: { ...typographyStyles.title3 },\n borderThin: { ...shorthands.borderWidth(tokens.strokeWidthThin) },\n borderThick: { ...shorthands.borderWidth(tokens.strokeWidthThick) },\n borderThicker: { ...shorthands.borderWidth(tokens.strokeWidthThicker) },\n borderThickest: { ...shorthands.borderWidth(tokens.strokeWidthThickest) },\n});\n\n/**\n * Apply styling to the AvatarGroup slots based on the state\n */\nexport const useAvatarGroupStyles_unstable = (state: AvatarGroupState): AvatarGroupState => {\n const { layout, overflowIndicator, size } = state;\n const styles = useStyles();\n const sizeStyles = useSizeStyles();\n const overflowButtonStyles = useOverflowButtonStyles();\n\n const groupChildClassName = useGroupChildClassName(layout, size, true);\n\n state.root.className = mergeClasses(\n avatarGroupClassNames.root,\n styles.base,\n layout === 'pie' && styles.pie,\n layout === 'pie' && sizeStyles[size],\n state.root.className,\n );\n\n if (state.overflowContent) {\n state.overflowContent.className = mergeClasses(\n avatarGroupClassNames.overflowContent,\n styles.overflowContent,\n state.overflowContent.className,\n );\n }\n\n if (state.overflowSurface) {\n state.overflowSurface.className = mergeClasses(\n avatarGroupClassNames.overflowSurface,\n styles.overflowSurface,\n state.overflowSurface.className,\n );\n }\n\n const overflowButtonClasses = [];\n\n if (size < 36) {\n overflowButtonClasses.push(overflowButtonStyles.borderThin);\n } else if (size < 56) {\n overflowButtonClasses.push(overflowButtonStyles.borderThick);\n } else if (size < 72) {\n overflowButtonClasses.push(overflowButtonStyles.borderThicker);\n } else {\n overflowButtonClasses.push(overflowButtonStyles.borderThickest);\n }\n\n if (overflowIndicator === 'count') {\n if (size <= 24) {\n overflowButtonClasses.push(overflowButtonStyles.caption2Strong);\n } else if (size <= 28) {\n overflowButtonClasses.push(overflowButtonStyles.caption1Strong);\n } else if (size <= 40) {\n overflowButtonClasses.push(overflowButtonStyles.body1Strong);\n } else if (size <= 56) {\n overflowButtonClasses.push(overflowButtonStyles.subtitle2);\n } else if (size <= 96) {\n overflowButtonClasses.push(overflowButtonStyles.subtitle1);\n } else {\n overflowButtonClasses.push(overflowButtonStyles.title3);\n }\n } else {\n if (size <= 16) {\n overflowButtonClasses.push(overflowButtonStyles.icon12);\n } else if (size <= 24) {\n overflowButtonClasses.push(overflowButtonStyles.icon16);\n } else if (size <= 40) {\n overflowButtonClasses.push(overflowButtonStyles.icon20);\n } else if (size <= 48) {\n overflowButtonClasses.push(overflowButtonStyles.icon24);\n } else if (size <= 56) {\n overflowButtonClasses.push(overflowButtonStyles.icon28);\n } else if (size <= 72) {\n overflowButtonClasses.push(overflowButtonStyles.icon32);\n } else {\n overflowButtonClasses.push(overflowButtonStyles.icon48);\n }\n }\n\n if (state.overflowButton) {\n state.overflowButton.className = mergeClasses(\n avatarGroupClassNames.overflowButton,\n sizeStyles[size],\n overflowButtonStyles.base,\n ...overflowButtonClasses,\n layout !== 'pie' && overflowButtonStyles.states,\n layout !== 'pie' && overflowButtonStyles.focusIndicator,\n layout === 'pie' && overflowButtonStyles.pieFocusIndicator,\n layout === 'pie' && overflowButtonStyles.pie,\n groupChildClassName,\n state.overflowButton.className,\n );\n }\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useAvatarGroupItem_unstable } from './useAvatarGroupItem';
|
|
3
|
+
import { renderAvatarGroupItem_unstable } from './renderAvatarGroupItem';
|
|
4
|
+
import { useAvatarGroupItemStyles_unstable } from './useAvatarGroupItemStyles';
|
|
5
|
+
/**
|
|
6
|
+
* The AvatarGroupItem component represents a single person or entity.
|
|
7
|
+
* AvatarGroupItem should only be used in an AvatarGroup component.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const AvatarGroupItem = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
11
|
+
const state = useAvatarGroupItem_unstable(props, ref);
|
|
12
|
+
useAvatarGroupItemStyles_unstable(state);
|
|
13
|
+
return renderAvatarGroupItem_unstable(state);
|
|
14
|
+
});
|
|
15
|
+
AvatarGroupItem.displayName = 'AvatarGroupItem';
|
|
16
|
+
//# sourceMappingURL=AvatarGroupItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AvatarGroupItem/AvatarGroupItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,2BAAT,QAA4C,sBAA5C;AACA,SAAS,8BAAT,QAA+C,yBAA/C;AACA,SAAS,iCAAT,QAAkD,4BAAlD;AAIA;;;AAGG;;AACH,OAAO,MAAM,eAAe,gBAA8C,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;EACxG,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAD,EAAQ,GAAR,CAAzC;EAEA,iCAAiC,CAAC,KAAD,CAAjC;EACA,OAAO,8BAA8B,CAAC,KAAD,CAArC;AACD,CALyE,CAAnE;AAOP,eAAe,CAAC,WAAhB,GAA8B,iBAA9B","sourcesContent":["import * as React from 'react';\nimport { useAvatarGroupItem_unstable } from './useAvatarGroupItem';\nimport { renderAvatarGroupItem_unstable } from './renderAvatarGroupItem';\nimport { useAvatarGroupItemStyles_unstable } from './useAvatarGroupItemStyles';\nimport type { AvatarGroupItemProps } from './AvatarGroupItem.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * The AvatarGroupItem component represents a single person or entity.\n * AvatarGroupItem should only be used in an AvatarGroup component.\n */\nexport const AvatarGroupItem: ForwardRefComponent<AvatarGroupItemProps> = React.forwardRef((props, ref) => {\n const state = useAvatarGroupItem_unstable(props, ref);\n\n useAvatarGroupItemStyles_unstable(state);\n return renderAvatarGroupItem_unstable(state);\n});\n\nAvatarGroupItem.displayName = 'AvatarGroupItem';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarGroupItem.types.js","sourceRoot":"../src/","sources":["components/AvatarGroupItem/AvatarGroupItem.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { Avatar, AvatarSizes } from '../../Avatar';\nimport { AvatarGroupProps } from '../AvatarGroup/AvatarGroup.types';\n\nexport type AvatarGroupItemSlots = {\n root: NonNullable<Slot<'div'>>;\n\n /**\n * Avatar that represents a person or entity.\n */\n avatar: NonNullable<Slot<typeof Avatar>>;\n\n /**\n * Label used for the name of the AvatarGroupItem when rendered as an overflow item.\n * The content of the label, by default, is the `name` prop from the `avatar` slot.\n */\n overflowLabel: NonNullable<Slot<'span'>>;\n};\n\n/**\n * AvatarGroupItem Props\n */\nexport type AvatarGroupItemProps = Omit<ComponentProps<Partial<AvatarGroupItemSlots>, 'avatar'>, 'size' | 'shape'>;\n\n/**\n * State used in rendering AvatarGroupItem\n */\nexport type AvatarGroupItemState = ComponentState<AvatarGroupItemSlots> & {\n /**\n * Whether the Avatar is an overflow item.\n *\n * @default false\n */\n isOverflowItem?: boolean;\n\n nonOverflowAvatarsCount: number;\n layout: AvatarGroupProps['layout'];\n size: AvatarSizes;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/AvatarGroupItem/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './AvatarGroupItem';\nexport * from './AvatarGroupItem.types';\nexport * from './renderAvatarGroupItem';\nexport * from './useAvatarGroupItem';\nexport * from './useAvatarGroupItemStyles';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Render the final JSX of AvatarGroupItem
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const renderAvatarGroupItem_unstable = state => {
|
|
8
|
+
const {
|
|
9
|
+
slots,
|
|
10
|
+
slotProps
|
|
11
|
+
} = getSlots(state);
|
|
12
|
+
return /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
|
13
|
+
}, /*#__PURE__*/React.createElement(slots.avatar, { ...slotProps.avatar
|
|
14
|
+
}), state.isOverflowItem && /*#__PURE__*/React.createElement(slots.overflowLabel, { ...slotProps.overflowLabel
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=renderAvatarGroupItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AvatarGroupItem/renderAvatarGroupItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,8BAA8B,GAAI,KAAD,IAAgC;EAC5E,MAAM;IAAE,KAAF;IAAS;EAAT,IAAuB,QAAQ,CAAuB,KAAvB,CAArC;EAEA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;EAAf,CAAX,eACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,MAAP,EAAa,EAAA,GAAK,SAAS,CAAC;EAAf,CAAb,CADF,EAEG,KAAK,CAAC,cAAN,iBAAwB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,aAAP,EAAoB,EAAA,GAAK,SAAS,CAAC;EAAf,CAApB,CAF3B,CADF;AAMD,CATM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { AvatarGroupItemState, AvatarGroupItemSlots } from './AvatarGroupItem.types';\n\n/**\n * Render the final JSX of AvatarGroupItem\n */\nexport const renderAvatarGroupItem_unstable = (state: AvatarGroupItemState) => {\n const { slots, slotProps } = getSlots<AvatarGroupItemSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n <slots.avatar {...slotProps.avatar} />\n {state.isOverflowItem && <slots.overflowLabel {...slotProps.overflowLabel} />}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Avatar } from '../Avatar/Avatar';
|
|
2
|
+
import { AvatarGroupContext } from '../../contexts/AvatarGroupContext';
|
|
3
|
+
import { defaultAvatarGroupSize } from '../AvatarGroup/useAvatarGroup';
|
|
4
|
+
import { resolveShorthand } from '@fluentui/react-utilities';
|
|
5
|
+
import { useContextSelector, useHasParentContext } from '@fluentui/react-context-selector';
|
|
6
|
+
/**
|
|
7
|
+
* Create the state required to render AvatarGroupItem.
|
|
8
|
+
*
|
|
9
|
+
* The returned state can be modified with hooks such as useAvatarGroupItemStyles_unstable,
|
|
10
|
+
* before being passed to renderAvatarGroupItem_unstable.
|
|
11
|
+
*
|
|
12
|
+
* @param props - props from this instance of AvatarGroupItem
|
|
13
|
+
* @param ref - reference to root HTMLElement of AvatarGroupItem
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export const useAvatarGroupItem_unstable = (props, ref) => {
|
|
17
|
+
const nonOverflowAvatarsCount = useContextSelector(AvatarGroupContext, ctx => ctx.nonOverflowAvatarsCount);
|
|
18
|
+
const groupIsOverflow = useContextSelector(AvatarGroupContext, ctx => ctx.isOverflow);
|
|
19
|
+
const layout = useContextSelector(AvatarGroupContext, ctx => ctx.layout);
|
|
20
|
+
const groupSize = useContextSelector(AvatarGroupContext, ctx => ctx.size); // Since the primary slot is not an intrinsic element, getPartitionedNativeProps cannot be used here.
|
|
21
|
+
|
|
22
|
+
const {
|
|
23
|
+
style,
|
|
24
|
+
className,
|
|
25
|
+
...avatarSlotProps
|
|
26
|
+
} = props;
|
|
27
|
+
const size = groupSize !== null && groupSize !== void 0 ? groupSize : defaultAvatarGroupSize;
|
|
28
|
+
const hasAvatarGroupContext = useHasParentContext(AvatarGroupContext);
|
|
29
|
+
|
|
30
|
+
if (process.env.NODE_ENV !== 'production' && !hasAvatarGroupContext) {
|
|
31
|
+
// eslint-disable-next-line no-console
|
|
32
|
+
console.warn('AvatarGroupItem must only be used inside an AvatarGroup component.');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
nonOverflowAvatarsCount: nonOverflowAvatarsCount !== null && nonOverflowAvatarsCount !== void 0 ? nonOverflowAvatarsCount : 1,
|
|
37
|
+
layout,
|
|
38
|
+
size,
|
|
39
|
+
isOverflowItem: groupIsOverflow,
|
|
40
|
+
components: {
|
|
41
|
+
root: 'div',
|
|
42
|
+
avatar: Avatar,
|
|
43
|
+
overflowLabel: 'span'
|
|
44
|
+
},
|
|
45
|
+
root: resolveShorthand(props.root, {
|
|
46
|
+
required: true,
|
|
47
|
+
defaultProps: {
|
|
48
|
+
style,
|
|
49
|
+
className,
|
|
50
|
+
role: groupIsOverflow ? 'listitem' : undefined
|
|
51
|
+
}
|
|
52
|
+
}),
|
|
53
|
+
avatar: resolveShorthand(props.avatar, {
|
|
54
|
+
required: true,
|
|
55
|
+
defaultProps: {
|
|
56
|
+
ref,
|
|
57
|
+
size,
|
|
58
|
+
color: 'colorful',
|
|
59
|
+
...avatarSlotProps
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
62
|
+
overflowLabel: resolveShorthand(props.overflowLabel, {
|
|
63
|
+
required: true,
|
|
64
|
+
defaultProps: {
|
|
65
|
+
children: props.name
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=useAvatarGroupItem.js.map
|