@channel.io/bezier-react 2.0.2 → 2.0.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.
Files changed (66) hide show
  1. package/dist/cjs/components/AlphaAvatar/Avatar.js +121 -0
  2. package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -0
  3. package/dist/cjs/components/AlphaAvatar/Avatar.module.scss.js +8 -0
  4. package/dist/cjs/components/AlphaAvatar/Avatar.module.scss.js.map +1 -0
  5. package/dist/cjs/components/AlphaAvatar/assets/default-avatar.svg.js +8 -0
  6. package/dist/cjs/components/AlphaAvatar/assets/default-avatar.svg.js.map +1 -0
  7. package/dist/cjs/components/AlphaAvatar/useProgressiveImage.js +48 -0
  8. package/dist/cjs/components/AlphaAvatar/useProgressiveImage.js.map +1 -0
  9. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js +153 -0
  10. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js.map +1 -0
  11. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.module.scss.js +8 -0
  12. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.module.scss.js.map +1 -0
  13. package/dist/cjs/index.js +10 -5
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/styles.css +1 -1
  16. package/dist/esm/components/AlphaAvatar/Avatar.mjs +115 -0
  17. package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -0
  18. package/dist/esm/components/AlphaAvatar/Avatar.module.scss.mjs +4 -0
  19. package/dist/esm/components/AlphaAvatar/Avatar.module.scss.mjs.map +1 -0
  20. package/dist/esm/components/AlphaAvatar/assets/default-avatar.svg.mjs +4 -0
  21. package/dist/esm/components/AlphaAvatar/assets/default-avatar.svg.mjs.map +1 -0
  22. package/dist/esm/components/AlphaAvatar/useProgressiveImage.mjs +44 -0
  23. package/dist/esm/components/AlphaAvatar/useProgressiveImage.mjs.map +1 -0
  24. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs +149 -0
  25. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs.map +1 -0
  26. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.module.scss.mjs +4 -0
  27. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.module.scss.mjs.map +1 -0
  28. package/dist/esm/index.mjs +2 -0
  29. package/dist/esm/index.mjs.map +1 -1
  30. package/dist/esm/styles.css +1 -1
  31. package/dist/types/components/AlphaAvatar/Avatar.d.ts +22 -0
  32. package/dist/types/components/AlphaAvatar/Avatar.d.ts.map +1 -0
  33. package/dist/types/components/AlphaAvatar/Avatar.types.d.ts +42 -0
  34. package/dist/types/components/AlphaAvatar/Avatar.types.d.ts.map +1 -0
  35. package/dist/types/components/AlphaAvatar/index.d.ts +3 -0
  36. package/dist/types/components/AlphaAvatar/index.d.ts.map +1 -0
  37. package/dist/types/components/AlphaAvatar/useProgressiveImage.d.ts +2 -0
  38. package/dist/types/components/AlphaAvatar/useProgressiveImage.d.ts.map +1 -0
  39. package/dist/types/components/AlphaAvatarGroup/AvatarGroup.d.ts +24 -0
  40. package/dist/types/components/AlphaAvatarGroup/AvatarGroup.d.ts.map +1 -0
  41. package/dist/types/components/AlphaAvatarGroup/AvatarGroup.types.d.ts +28 -0
  42. package/dist/types/components/AlphaAvatarGroup/AvatarGroup.types.d.ts.map +1 -0
  43. package/dist/types/components/AlphaAvatarGroup/index.d.ts +3 -0
  44. package/dist/types/components/AlphaAvatarGroup/index.d.ts.map +1 -0
  45. package/dist/types/index.d.ts +2 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/package.json +2 -2
  48. package/src/components/AlphaAvatar/AlphaAvatar.stories.tsx +63 -0
  49. package/src/components/AlphaAvatar/Avatar.module.scss +54 -0
  50. package/src/components/AlphaAvatar/Avatar.test.tsx +111 -0
  51. package/src/components/AlphaAvatar/Avatar.tsx +159 -0
  52. package/src/components/AlphaAvatar/Avatar.types.ts +64 -0
  53. package/src/components/AlphaAvatar/__snapshots__/Avatar.test.tsx.snap +93 -0
  54. package/src/components/AlphaAvatar/assets/default-avatar.svg +11 -0
  55. package/src/components/AlphaAvatar/index.ts +8 -0
  56. package/src/components/AlphaAvatar/useProgressiveImage.test.ts +96 -0
  57. package/src/components/AlphaAvatar/useProgressiveImage.ts +60 -0
  58. package/src/components/AlphaAvatarGroup/AlphaAvatarGroup.stories.tsx +55 -0
  59. package/src/components/AlphaAvatarGroup/AvatarGroup.module.scss +53 -0
  60. package/src/components/AlphaAvatarGroup/AvatarGroup.test.tsx +93 -0
  61. package/src/components/AlphaAvatarGroup/AvatarGroup.tsx +229 -0
  62. package/src/components/AlphaAvatarGroup/AvatarGroup.types.ts +43 -0
  63. package/src/components/AlphaAvatarGroup/__mocks__/avatarList.ts +39 -0
  64. package/src/components/AlphaAvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +215 -0
  65. package/src/components/AlphaAvatarGroup/index.ts +2 -0
  66. package/src/index.ts +2 -0
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var index = require('../../node_modules/classnames/index.js');
5
+ var type = require('../../utils/type.js');
6
+ var AvatarGroup = require('../AlphaAvatarGroup/AvatarGroup.js');
7
+ var defaultAvatar = require('./assets/default-avatar.svg.js');
8
+ var useProgressiveImage = require('./useProgressiveImage.js');
9
+ var Avatar_module = require('./Avatar.module.scss.js');
10
+ var ThemeProvider = require('../ThemeProvider/ThemeProvider.js');
11
+ var SmoothCornersBox = require('../SmoothCornersBox/SmoothCornersBox.js');
12
+ var Status = require('../Status/Status.js');
13
+
14
+ function getStatusSize(size) {
15
+ switch (size) {
16
+ case '90':
17
+ case '120':
18
+ return 'l';
19
+ default:
20
+ return 'm';
21
+ }
22
+ }
23
+ function getShadow(size) {
24
+ const spreadRadius = (() => {
25
+ switch (size) {
26
+ case '90':
27
+ return 3;
28
+ case '120':
29
+ return 4;
30
+ default:
31
+ return 2;
32
+ }
33
+ })();
34
+ return {
35
+ spreadRadius,
36
+ color: 'bg-white-high'
37
+ };
38
+ }
39
+ function useAvatarRadiusToken() {
40
+ // TODO: Replace this with useAlphaTokens
41
+ return ThemeProvider.useTokens().global.radius['radius-42-p'];
42
+ }
43
+ const AVATAR_WRAPPER_TEST_ID = 'bezier-avatar-wrapper';
44
+ const AVATAR_TEST_ID = 'bezier-avatar';
45
+ const STATUS_WRAPPER_TEST_ID = 'bezier-status-wrapper';
46
+
47
+ /**
48
+ * `Avatar` is a component for representing some profile image.
49
+ * @example
50
+ *
51
+ * ```tsx
52
+ * <Avatar
53
+ * avatarUrl="https://..."
54
+ * name="channel"
55
+ * size="48"
56
+ * showBorder
57
+ * disabled
58
+ * />
59
+ * ```
60
+ */
61
+ const Avatar = /*#__PURE__*/React.forwardRef(function Avatar({
62
+ avatarUrl = '',
63
+ fallbackUrl = defaultAvatar.default,
64
+ size: sizeProps = '24',
65
+ name,
66
+ disabled = false,
67
+ showBorder = false,
68
+ smoothCorners = true,
69
+ status,
70
+ className,
71
+ children,
72
+ ...rest
73
+ }, forwardedRef) {
74
+ const avatarGroupContext = AvatarGroup.useAvatarGroupContext();
75
+ const size = avatarGroupContext?.size ?? sizeProps;
76
+ const loadedAvatarUrl = useProgressiveImage.default(avatarUrl, fallbackUrl);
77
+ const AVATAR_BORDER_RADIUS = useAvatarRadiusToken();
78
+ const StatusComponent = React.useMemo(() => {
79
+ if (type.isEmpty(children) && !status || children && ! /*#__PURE__*/React.isValidElement(children)) {
80
+ return null;
81
+ }
82
+ const Contents = (() => {
83
+ if (children) {
84
+ return children;
85
+ }
86
+ if (status) {
87
+ return /*#__PURE__*/React.createElement(Status.Status, {
88
+ type: status,
89
+ size: getStatusSize(size)
90
+ });
91
+ }
92
+ return null;
93
+ })();
94
+ return Contents && /*#__PURE__*/React.createElement("div", {
95
+ className: Avatar_module.default.StatusWrapper,
96
+ "data-testid": STATUS_WRAPPER_TEST_ID
97
+ }, Contents);
98
+ }, [status, size, children]);
99
+ return /*#__PURE__*/React.createElement("div", Object.assign({
100
+ className: index.default(Avatar_module.default.Avatar, Avatar_module.default[`size-${size}`], disabled && Avatar_module.default.disabled, className),
101
+ "data-disabled": disabled,
102
+ "data-testid": AVATAR_WRAPPER_TEST_ID
103
+ }, rest), /*#__PURE__*/React.createElement(SmoothCornersBox.SmoothCornersBox, {
104
+ ref: forwardedRef,
105
+ "aria-label": name,
106
+ className: index.default(Avatar_module.default.AvatarImage, Number(size) >= 72 && Avatar_module.default['big-size'], showBorder && Avatar_module.default.bordered),
107
+ disabled: !smoothCorners,
108
+ borderRadius: AVATAR_BORDER_RADIUS,
109
+ shadow: showBorder ? getShadow(size) : undefined,
110
+ backgroundColor: "bg-white-normal",
111
+ backgroundImage: loadedAvatarUrl,
112
+ "data-testid": AVATAR_TEST_ID
113
+ }, StatusComponent));
114
+ });
115
+
116
+ exports.AVATAR_TEST_ID = AVATAR_TEST_ID;
117
+ exports.AVATAR_WRAPPER_TEST_ID = AVATAR_WRAPPER_TEST_ID;
118
+ exports.Avatar = Avatar;
119
+ exports.STATUS_WRAPPER_TEST_ID = STATUS_WRAPPER_TEST_ID;
120
+ exports.useAvatarRadiusToken = useAvatarRadiusToken;
121
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../../../src/components/AlphaAvatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport { useAvatarGroupContext } from '~/src/components/AlphaAvatarGroup/AvatarGroup'\nimport {\n SmoothCornersBox,\n type SmoothCornersBoxProps,\n} from '~/src/components/SmoothCornersBox'\nimport { Status, type StatusSize } from '~/src/components/Status'\nimport { useTokens } from '~/src/components/ThemeProvider'\n\nimport type { AvatarProps, AvatarSize } from './Avatar.types'\nimport defaultAvatarUrl from './assets/default-avatar.svg'\nimport useProgressiveImage from './useProgressiveImage'\n\nimport styles from './Avatar.module.scss'\n\nfunction getStatusSize(size: AvatarSize): StatusSize {\n switch (size) {\n case '90':\n case '120':\n return 'l'\n default:\n return 'm'\n }\n}\n\nfunction getShadow(size: AvatarSize): SmoothCornersBoxProps['shadow'] {\n const spreadRadius = (() => {\n switch (size) {\n case '90':\n return 3\n case '120':\n return 4\n default:\n return 2\n }\n })()\n\n return {\n spreadRadius,\n color: 'bg-white-high',\n }\n}\n\nexport function useAvatarRadiusToken() {\n // TODO: Replace this with useAlphaTokens\n return useTokens().global.radius['radius-42-p']\n}\n\nexport const AVATAR_WRAPPER_TEST_ID = 'bezier-avatar-wrapper'\nexport const AVATAR_TEST_ID = 'bezier-avatar'\nexport const STATUS_WRAPPER_TEST_ID = 'bezier-status-wrapper'\n\n/**\n * `Avatar` is a component for representing some profile image.\n * @example\n *\n * ```tsx\n * <Avatar\n * avatarUrl=\"https://...\"\n * name=\"channel\"\n * size=\"48\"\n * showBorder\n * disabled\n * />\n * ```\n */\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n avatarUrl = '',\n fallbackUrl = defaultAvatarUrl,\n size: sizeProps = '24',\n name,\n disabled = false,\n showBorder = false,\n smoothCorners = true,\n status,\n className,\n children,\n ...rest\n },\n forwardedRef\n) {\n const avatarGroupContext = useAvatarGroupContext()\n const size = avatarGroupContext?.size ?? sizeProps\n const loadedAvatarUrl = useProgressiveImage(avatarUrl, fallbackUrl)\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const StatusComponent = useMemo(() => {\n if (\n (isEmpty(children) && !status) ||\n (children && !React.isValidElement(children))\n ) {\n return null\n }\n\n const Contents = (() => {\n if (children) {\n return children\n }\n if (status) {\n return (\n <Status\n type={status}\n size={getStatusSize(size)}\n />\n )\n }\n return null\n })()\n\n return (\n Contents && (\n <div\n className={styles.StatusWrapper}\n data-testid={STATUS_WRAPPER_TEST_ID}\n >\n {Contents}\n </div>\n )\n )\n }, [status, size, children])\n\n return (\n <div\n className={classNames(\n styles.Avatar,\n styles[`size-${size}`],\n disabled && styles.disabled,\n className\n )}\n data-disabled={disabled}\n data-testid={AVATAR_WRAPPER_TEST_ID}\n {...rest}\n >\n <SmoothCornersBox\n ref={forwardedRef}\n aria-label={name}\n className={classNames(\n styles.AvatarImage,\n Number(size) >= 72 && styles['big-size'],\n showBorder && styles.bordered\n )}\n disabled={!smoothCorners}\n borderRadius={AVATAR_BORDER_RADIUS}\n shadow={showBorder ? getShadow(size) : undefined}\n backgroundColor=\"bg-white-normal\"\n backgroundImage={loadedAvatarUrl}\n data-testid={AVATAR_TEST_ID}\n >\n {StatusComponent}\n </SmoothCornersBox>\n </div>\n )\n})\n"],"names":["getStatusSize","size","getShadow","spreadRadius","color","useAvatarRadiusToken","useTokens","global","radius","AVATAR_WRAPPER_TEST_ID","AVATAR_TEST_ID","STATUS_WRAPPER_TEST_ID","Avatar","forwardRef","avatarUrl","fallbackUrl","defaultAvatarUrl","sizeProps","name","disabled","showBorder","smoothCorners","status","className","children","rest","forwardedRef","avatarGroupContext","useAvatarGroupContext","loadedAvatarUrl","useProgressiveImage","AVATAR_BORDER_RADIUS","StatusComponent","useMemo","isEmpty","React","isValidElement","Contents","createElement","Status","type","styles","StatusWrapper","Object","assign","classNames","SmoothCornersBox","ref","AvatarImage","Number","bordered","borderRadius","shadow","undefined","backgroundColor","backgroundImage"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var styles = {"Avatar":"b-fDR-U","disabled":"b-SnNT0","size-16":"b-v3W6R","size-20":"b-gC4cV","size-24":"b-lgU-A","size-30":"b-O61k6","size-36":"b-3M3QV","size-42":"b-cA6AB","size-48":"b-NETn8","size-72":"b-4bOSq","size-90":"b-dNqNN","size-120":"b-wyYTI","AvatarImage":"b-K69h3","big-size":"b-s7757","bordered":"b-Qctjl","StatusWrapper":"b-ZSr4L"};
6
+
7
+ exports.default = styles;
8
+ //# sourceMappingURL=Avatar.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var defaultAvatarUrl = "data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0%29%22%3E%3Crect%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22%23cfccfb%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M41%2023C41%2029.0744%2036.0744%2034%2030%2034C23.9256%2034%2019%2029.0744%2019%2023C19%2016.9256%2023.9256%2012%2030%2012C36.0744%2012%2041%2016.9256%2041%2023ZM30%2037C16.1929%2037%205%2048.1929%205%2062V90H55V62C55%2048.1929%2043.8071%2037%2030%2037Z%22%20fill%3D%22white%22%20fill-opacity%3D%220.4%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Crect%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
6
+
7
+ exports.default = defaultAvatarUrl;
8
+ //# sourceMappingURL=default-avatar.svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-avatar.svg.js","sources":["../../../../../src/components/AlphaAvatar/assets/default-avatar.svg"],"sourcesContent":["export default \"data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0%29%22%3E%3Crect%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22%23cfccfb%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M41%2023C41%2029.0744%2036.0744%2034%2030%2034C23.9256%2034%2019%2029.0744%2019%2023C19%2016.9256%2023.9256%2012%2030%2012C36.0744%2012%2041%2016.9256%2041%2023ZM30%2037C16.1929%2037%205%2048.1929%205%2062V90H55V62C55%2048.1929%2043.8071%2037%2030%2037Z%22%20fill%3D%22white%22%20fill-opacity%3D%220.4%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Crect%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\""],"names":[],"mappings":";;;;AAAA,uBAAe;;;;"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const imageCache = new Map();
8
+ function getCachedImage(src) {
9
+ const cachedImage = imageCache.get(src);
10
+ if (!cachedImage) {
11
+ return null;
12
+ }
13
+ return cachedImage;
14
+ }
15
+ function useProgressiveImage(src, defaultSrc) {
16
+ const [source, setSource] = React.useState(() => getCachedImage(src));
17
+ React.useEffect(function updateSource() {
18
+ if (source?.src === src) {
19
+ return undefined;
20
+ }
21
+ const cachedImage = getCachedImage(src);
22
+ if (cachedImage?.isLoaded) {
23
+ setSource(cachedImage);
24
+ return undefined;
25
+ }
26
+ const image = new Image();
27
+ image.src = src;
28
+ image.onload = loadImage(true);
29
+ image.onerror = loadImage(false);
30
+ function loadImage(isLoaded) {
31
+ return () => {
32
+ const loadedImage = {
33
+ src,
34
+ isLoaded
35
+ };
36
+ setSource(loadedImage);
37
+ imageCache.set(src, loadedImage);
38
+ };
39
+ }
40
+ }, [src, source]);
41
+ if (!source || !source.isLoaded) {
42
+ return defaultSrc;
43
+ }
44
+ return source.src;
45
+ }
46
+
47
+ exports.default = useProgressiveImage;
48
+ //# sourceMappingURL=useProgressiveImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProgressiveImage.js","sources":["../../../../src/components/AlphaAvatar/useProgressiveImage.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\ninterface CachedImage {\n src: string\n isLoaded: boolean\n}\n\nconst imageCache = new Map<string, CachedImage>()\n\nfunction getCachedImage(src: string) {\n const cachedImage = imageCache.get(src)\n if (!cachedImage) {\n return null\n }\n return cachedImage\n}\n\nexport default function useProgressiveImage(src: string, defaultSrc: string) {\n const [source, setSource] = useState<CachedImage | null>(() =>\n getCachedImage(src)\n )\n\n useEffect(\n function updateSource() {\n if (source?.src === src) {\n return undefined\n }\n\n const cachedImage = getCachedImage(src)\n\n if (cachedImage?.isLoaded) {\n setSource(cachedImage)\n return undefined\n }\n\n const image = new Image()\n image.src = src\n image.onload = loadImage(true)\n image.onerror = loadImage(false)\n\n function loadImage(isLoaded: boolean) {\n return () => {\n const loadedImage = {\n src,\n isLoaded,\n }\n setSource(loadedImage)\n imageCache.set(src, loadedImage)\n }\n }\n },\n [src, source]\n )\n\n if (!source || !source.isLoaded) {\n return defaultSrc\n }\n\n return source.src\n}\n"],"names":["imageCache","Map","getCachedImage","src","cachedImage","get","useProgressiveImage","defaultSrc","source","setSource","useState","useEffect","updateSource","undefined","isLoaded","image","Image","onload","loadImage","onerror","loadedImage","set"],"mappings":";;;;;;AAOA,MAAMA,UAAU,GAAG,IAAIC,GAAG,EAAuB,CAAA;AAEjD,SAASC,cAAcA,CAACC,GAAW,EAAE;AACnC,EAAA,MAAMC,WAAW,GAAGJ,UAAU,CAACK,GAAG,CAACF,GAAG,CAAC,CAAA;EACvC,IAAI,CAACC,WAAW,EAAE;AAChB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAOA,WAAW,CAAA;AACpB,CAAA;AAEe,SAASE,mBAAmBA,CAACH,GAAW,EAAEI,UAAkB,EAAE;AAC3E,EAAA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGC,cAAQ,CAAqB,MACvDR,cAAc,CAACC,GAAG,CACpB,CAAC,CAAA;AAEDQ,EAAAA,eAAS,CACP,SAASC,YAAYA,GAAG;AACtB,IAAA,IAAIJ,MAAM,EAAEL,GAAG,KAAKA,GAAG,EAAE;AACvB,MAAA,OAAOU,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAMT,WAAW,GAAGF,cAAc,CAACC,GAAG,CAAC,CAAA;IAEvC,IAAIC,WAAW,EAAEU,QAAQ,EAAE;MACzBL,SAAS,CAACL,WAAW,CAAC,CAAA;AACtB,MAAA,OAAOS,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAME,KAAK,GAAG,IAAIC,KAAK,EAAE,CAAA;IACzBD,KAAK,CAACZ,GAAG,GAAGA,GAAG,CAAA;AACfY,IAAAA,KAAK,CAACE,MAAM,GAAGC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC9BH,IAAAA,KAAK,CAACI,OAAO,GAAGD,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhC,SAASA,SAASA,CAACJ,QAAiB,EAAE;AACpC,MAAA,OAAO,MAAM;AACX,QAAA,MAAMM,WAAW,GAAG;UAClBjB,GAAG;AACHW,UAAAA,QAAAA;SACD,CAAA;QACDL,SAAS,CAACW,WAAW,CAAC,CAAA;AACtBpB,QAAAA,UAAU,CAACqB,GAAG,CAAClB,GAAG,EAAEiB,WAAW,CAAC,CAAA;OACjC,CAAA;AACH,KAAA;AACF,GAAC,EACD,CAACjB,GAAG,EAAEK,MAAM,CACd,CAAC,CAAA;AAED,EAAA,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACM,QAAQ,EAAE;AAC/B,IAAA,OAAOP,UAAU,CAAA;AACnB,GAAA;EAEA,OAAOC,MAAM,CAACL,GAAG,CAAA;AACnB;;;;"}
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var bezierIcons = require('@channel.io/bezier-icons');
5
+ var index = require('../../node_modules/classnames/index.js');
6
+ var array = require('../../utils/array.js');
7
+ var react = require('../../utils/react.js');
8
+ var style = require('../../utils/style.js');
9
+ var AvatarGroup_module = require('./AvatarGroup.module.scss.js');
10
+ var Avatar = require('../AlphaAvatar/Avatar.js');
11
+ var SmoothCornersBox = require('../SmoothCornersBox/SmoothCornersBox.js');
12
+ var Icon = require('../Icon/Icon.js');
13
+ var Text = require('../Text/Text.js');
14
+
15
+ const [AvatarGroupContextProvider, useAvatarGroupContext] = react.createContext(undefined);
16
+ const MAX_AVATAR_LIST_COUNT = 99;
17
+ const AVATAR_GROUP_DEFAULT_SPACING = 4;
18
+ const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID = 'bezier-avatar-group-ellipsis-icon';
19
+ function getRestAvatarListCountText(count, max) {
20
+ const restCount = count - max;
21
+ return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`;
22
+ }
23
+
24
+ // TODO: Not specified
25
+ function getProperIconSize(size) {
26
+ return {
27
+ 16: 'xxs',
28
+ 20: 'xxs',
29
+ 24: 'xs',
30
+ 30: 's',
31
+ 36: 'm',
32
+ 42: 'm',
33
+ 48: 'l',
34
+ 72: 'l',
35
+ 90: 'l',
36
+ 120: 'l'
37
+ }[size];
38
+ }
39
+
40
+ // TODO: Not specified
41
+ function getProperTypoSize(size) {
42
+ return {
43
+ 16: '12',
44
+ 20: '12',
45
+ 24: '13',
46
+ 30: '15',
47
+ 36: '16',
48
+ 42: '18',
49
+ 48: '24',
50
+ 72: '24',
51
+ 90: '24',
52
+ 120: '24'
53
+ }[size];
54
+ }
55
+
56
+ /**
57
+ * `AvatarGroup` is a component for grouping `Avatar` components
58
+ * @example
59
+ *
60
+ * ```tsx
61
+ * <AvatarGroup
62
+ * max={2}
63
+ * size="24"
64
+ * spacing={4}
65
+ * ellipsisType="icon"
66
+ * >
67
+ * <Avatar />
68
+ * <Avatar />
69
+ * <Avatar />
70
+ * </AvatarGroup>
71
+ * ```
72
+ */
73
+ const AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup({
74
+ max = 5,
75
+ size = '24',
76
+ spacing = AVATAR_GROUP_DEFAULT_SPACING,
77
+ ellipsisType = 'icon',
78
+ style: style$1,
79
+ className,
80
+ children,
81
+ ...rest
82
+ }, forwardedRef) {
83
+ const AVATAR_BORDER_RADIUS = Avatar.useAvatarRadiusToken();
84
+ const avatarListCount = React.Children.count(children);
85
+ const renderAvatarElement = React.useCallback(avatar => {
86
+ const key = avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`;
87
+ const shouldShowBorder = max > 1 && avatarListCount > 1 && spacing < 0;
88
+ const showBorder = avatar.props.showBorder || shouldShowBorder;
89
+ return /*#__PURE__*/React.cloneElement(avatar, {
90
+ key,
91
+ showBorder
92
+ });
93
+ }, [avatarListCount, max, spacing]);
94
+ const AvatarListComponent = React.useMemo(() => {
95
+ return React.Children.toArray(children).slice(0, max).map((avatar, index$1, arr) => {
96
+ if (! /*#__PURE__*/React.isValidElement(avatar)) {
97
+ return null;
98
+ }
99
+ const AvatarElement = renderAvatarElement(avatar);
100
+ if (!array.isLastIndex(arr, index$1) || avatarListCount <= max) {
101
+ return AvatarElement;
102
+ }
103
+ if (ellipsisType === 'icon') {
104
+ return /*#__PURE__*/React.createElement("div", {
105
+ key: "ellipsis",
106
+ className: AvatarGroup_module.default.AvatarEllipsisIconWrapper,
107
+ "data-testid": AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID
108
+ }, /*#__PURE__*/React.createElement(SmoothCornersBox.SmoothCornersBox, {
109
+ borderRadius: AVATAR_BORDER_RADIUS,
110
+ backgroundColor: "bgtxt-absolute-black-lightest",
111
+ className: AvatarGroup_module.default.AvatarEllipsisIcon
112
+ }, /*#__PURE__*/React.createElement(Icon.Icon, {
113
+ source: bezierIcons.MoreIcon,
114
+ size: getProperIconSize(size),
115
+ color: "bgtxt-absolute-white-dark"
116
+ })), AvatarElement);
117
+ }
118
+ if (ellipsisType === 'count') {
119
+ return /*#__PURE__*/React.createElement(React.Fragment, {
120
+ key: "ellipsis"
121
+ }, AvatarElement, /*#__PURE__*/React.createElement("div", {
122
+ style: {
123
+ '--b-avatar-group-ellipsis-ml': style.px(Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING))
124
+ },
125
+ className: index.default(AvatarGroup_module.default.AvatarEllipsisCountWrapper)
126
+ }, /*#__PURE__*/React.createElement(Text.Text, {
127
+ typo: getProperTypoSize(size),
128
+ color: "txt-black-dark",
129
+ className: AvatarGroup_module.default.AvatarEllipsisCount
130
+ }, getRestAvatarListCountText(avatarListCount, max))));
131
+ }
132
+ return null;
133
+ });
134
+ }, [avatarListCount, max, children, renderAvatarElement, ellipsisType, AVATAR_BORDER_RADIUS, size, spacing]);
135
+ return /*#__PURE__*/React.createElement(AvatarGroupContextProvider, {
136
+ value: React.useMemo(() => ({
137
+ size
138
+ }), [size])
139
+ }, /*#__PURE__*/React.createElement("div", Object.assign({
140
+ role: "group",
141
+ ref: forwardedRef,
142
+ className: index.default(AvatarGroup_module.default.AvatarGroup, AvatarGroup_module.default[`size-${size}`], className),
143
+ style: {
144
+ '--b-avatar-group-spacing': style.px(spacing),
145
+ ...style$1
146
+ }
147
+ }, rest), AvatarListComponent));
148
+ });
149
+
150
+ exports.AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID = AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID;
151
+ exports.AvatarGroup = AvatarGroup;
152
+ exports.useAvatarGroupContext = useAvatarGroupContext;
153
+ //# sourceMappingURL=AvatarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AlphaAvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react'\n\nimport { MoreIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isLastIndex } from '~/src/utils/array'\nimport { createContext } from '~/src/utils/react'\nimport { px } from '~/src/utils/style'\n\nimport {\n type AlphaAvatarProps,\n type AlphaAvatarSize,\n useAlphaAvatarRadiusToken,\n} from '~/src/components/AlphaAvatar'\nimport { Icon } from '~/src/components/Icon'\nimport { SmoothCornersBox } from '~/src/components/SmoothCornersBox'\nimport { Text } from '~/src/components/Text'\n\nimport {\n type AvatarGroupContextValue,\n type AvatarGroupProps,\n} from './AvatarGroup.types'\n\nimport styles from './AvatarGroup.module.scss'\n\nconst [AvatarGroupContextProvider, useAvatarGroupContext] = createContext<\n AvatarGroupContextValue | undefined\n>(undefined)\n\nexport { useAvatarGroupContext }\n\nconst MAX_AVATAR_LIST_COUNT = 99\nconst AVATAR_GROUP_DEFAULT_SPACING = 4\nexport const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID =\n 'bezier-avatar-group-ellipsis-icon'\n\nfunction getRestAvatarListCountText(count: number, max: number) {\n const restCount = count - max\n return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`\n}\n\n// TODO: Not specified\nfunction getProperIconSize(size: AlphaAvatarSize) {\n return (\n {\n 16: 'xxs',\n 20: 'xxs',\n 24: 'xs',\n 30: 's',\n 36: 'm',\n 42: 'm',\n 48: 'l',\n 72: 'l',\n 90: 'l',\n 120: 'l',\n } as const\n )[size]\n}\n\n// TODO: Not specified\nfunction getProperTypoSize(size: AlphaAvatarSize) {\n return (\n {\n 16: '12',\n 20: '12',\n 24: '13',\n 30: '15',\n 36: '16',\n 42: '18',\n 48: '24',\n 72: '24',\n 90: '24',\n 120: '24',\n } as const\n )[size]\n}\n\n/**\n * `AvatarGroup` is a component for grouping `Avatar` components\n * @example\n *\n * ```tsx\n * <AvatarGroup\n * max={2}\n * size=\"24\"\n * spacing={4}\n * ellipsisType=\"icon\"\n * >\n * <Avatar />\n * <Avatar />\n * <Avatar />\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n function AvatarGroup(\n {\n max = 5,\n size = '24',\n spacing = AVATAR_GROUP_DEFAULT_SPACING,\n ellipsisType = 'icon',\n style,\n className,\n children,\n ...rest\n },\n forwardedRef\n ) {\n const AVATAR_BORDER_RADIUS = useAlphaAvatarRadiusToken()\n const avatarListCount = React.Children.count(children)\n\n const renderAvatarElement = useCallback(\n (avatar: React.ReactElement<AlphaAvatarProps>) => {\n const key =\n avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`\n const shouldShowBorder = max > 1 && avatarListCount > 1 && spacing < 0\n const showBorder = avatar.props.showBorder || shouldShowBorder\n return React.cloneElement(avatar, { key, showBorder })\n },\n [avatarListCount, max, spacing]\n )\n\n const AvatarListComponent = useMemo(() => {\n return React.Children.toArray(children)\n .slice(0, max)\n .map((avatar, index, arr) => {\n if (!React.isValidElement<AlphaAvatarProps>(avatar)) {\n return null\n }\n\n const AvatarElement = renderAvatarElement(avatar)\n\n if (!isLastIndex(arr, index) || avatarListCount <= max) {\n return AvatarElement\n }\n\n if (ellipsisType === 'icon') {\n return (\n <div\n key=\"ellipsis\"\n className={styles.AvatarEllipsisIconWrapper}\n data-testid={AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID}\n >\n <SmoothCornersBox\n borderRadius={AVATAR_BORDER_RADIUS}\n backgroundColor=\"bgtxt-absolute-black-lightest\"\n className={styles.AvatarEllipsisIcon}\n >\n <Icon\n source={MoreIcon}\n size={getProperIconSize(size)}\n color=\"bgtxt-absolute-white-dark\"\n />\n </SmoothCornersBox>\n {AvatarElement}\n </div>\n )\n }\n\n if (ellipsisType === 'count') {\n return (\n <React.Fragment key=\"ellipsis\">\n {AvatarElement}\n <div\n style={\n {\n '--b-avatar-group-ellipsis-ml': px(\n Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING)\n ),\n } as React.CSSProperties\n }\n className={classNames(styles.AvatarEllipsisCountWrapper)}\n >\n <Text\n typo={getProperTypoSize(size)}\n color=\"txt-black-dark\"\n className={styles.AvatarEllipsisCount}\n >\n {getRestAvatarListCountText(avatarListCount, max)}\n </Text>\n </div>\n </React.Fragment>\n )\n }\n\n return null\n })\n }, [\n avatarListCount,\n max,\n children,\n renderAvatarElement,\n ellipsisType,\n AVATAR_BORDER_RADIUS,\n size,\n spacing,\n ])\n\n return (\n <AvatarGroupContextProvider\n value={useMemo(\n () => ({\n size,\n }),\n [size]\n )}\n >\n <div\n role=\"group\"\n ref={forwardedRef}\n className={classNames(\n styles.AvatarGroup,\n styles[`size-${size}`],\n className\n )}\n style={\n {\n '--b-avatar-group-spacing': px(spacing),\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n >\n {AvatarListComponent}\n </div>\n </AvatarGroupContextProvider>\n )\n }\n)\n"],"names":["AvatarGroupContextProvider","useAvatarGroupContext","createContext","undefined","MAX_AVATAR_LIST_COUNT","AVATAR_GROUP_DEFAULT_SPACING","AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID","getRestAvatarListCountText","count","max","restCount","getProperIconSize","size","getProperTypoSize","AvatarGroup","forwardRef","spacing","ellipsisType","style","className","children","rest","forwardedRef","AVATAR_BORDER_RADIUS","useAlphaAvatarRadiusToken","avatarListCount","React","Children","renderAvatarElement","useCallback","avatar","key","props","name","avatarUrl","shouldShowBorder","showBorder","cloneElement","AvatarListComponent","useMemo","toArray","slice","map","index","arr","isValidElement","AvatarElement","isLastIndex","createElement","styles","AvatarEllipsisIconWrapper","SmoothCornersBox","borderRadius","backgroundColor","AvatarEllipsisIcon","Icon","source","MoreIcon","color","Fragment","px","Math","classNames","AvatarEllipsisCountWrapper","Text","typo","AvatarEllipsisCount","value","Object","assign","role","ref"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var styles = {"Avatar":"b-EUIBZ","disabled":"b-r0qvh","size-16":"b-ieYAz","size-20":"b-kYxYF","size-24":"b-89-dE","size-30":"b-3oC7r","size-36":"b-saxkg","size-42":"b-SnpVF","size-48":"b-MdIGf","size-72":"b-lWIXR","size-90":"b-Ny-RI","size-120":"b--IfyP","AvatarImage":"b-OXNdE","big-size":"b-zD-uu","bordered":"b--g-5e","StatusWrapper":"b-TwIX8","AvatarGroup":"b-27zD4","AvatarEllipsisIconWrapper":"b-DAfQV","AvatarEllipsisIcon":"b-3kWFn","AvatarEllipsisCountWrapper":"b-l557G","AvatarEllipsisCount":"b-LTmB2"};
6
+
7
+ exports.default = styles;
8
+ //# sourceMappingURL=AvatarGroup.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
package/dist/cjs/index.js CHANGED
@@ -2,12 +2,14 @@
2
2
 
3
3
  var index = require('./packages/bezier-tokens/dist/esm/index.js');
4
4
  var useKeyboardActionLockerWhileComposing = require('./hooks/useKeyboardActionLockerWhileComposing.js');
5
+ var Avatar = require('./components/AlphaAvatar/Avatar.js');
6
+ var AvatarGroup = require('./components/AlphaAvatarGroup/AvatarGroup.js');
5
7
  var DialogPrimitive = require('./components/AlphaDialogPrimitive/DialogPrimitive.js');
6
8
  var TooltipPrimitive = require('./components/AlphaTooltipPrimitive/TooltipPrimitive.js');
7
9
  var AppProvider = require('./components/AppProvider/AppProvider.js');
8
10
  var AutoFocus = require('./components/AutoFocus/AutoFocus.js');
9
- var Avatar = require('./components/Avatar/Avatar.js');
10
- var AvatarGroup = require('./components/AvatarGroup/AvatarGroup.js');
11
+ var Avatar$1 = require('./components/Avatar/Avatar.js');
12
+ var AvatarGroup$1 = require('./components/AvatarGroup/AvatarGroup.js');
11
13
  var Badge = require('./components/Badge/Badge.js');
12
14
  var Banner = require('./components/Banner/Banner.js');
13
15
  var Box = require('./components/Box/Box.js');
@@ -70,6 +72,9 @@ var WindowProvider = require('./components/WindowProvider/WindowProvider.js');
70
72
  exports.tokens = index.tokens;
71
73
  exports.COMMON_IME_CONTROL_KEYS = useKeyboardActionLockerWhileComposing.COMMON_IME_CONTROL_KEYS;
72
74
  exports.useKeyboardActionLockerWhileComposing = useKeyboardActionLockerWhileComposing.useKeyboardActionLockerWhileComposing;
75
+ exports.AlphaAvatar = Avatar.Avatar;
76
+ exports.useAlphaAvatarRadiusToken = Avatar.useAvatarRadiusToken;
77
+ exports.AlphaAvatarGroup = AvatarGroup.AvatarGroup;
73
78
  exports.AlphaDialogPrimitive = DialogPrimitive.DialogPrimitive;
74
79
  exports.AlphaDialogPrimitiveClose = DialogPrimitive.DialogPrimitiveClose;
75
80
  exports.AlphaDialogPrimitiveContent = DialogPrimitive.DialogPrimitiveContent;
@@ -86,9 +91,9 @@ exports.AlphaTooltipPrimitiveProvider = TooltipPrimitive.TooltipPrimitiveProvide
86
91
  exports.AlphaTooltipPrimitiveTrigger = TooltipPrimitive.TooltipPrimitiveTrigger;
87
92
  exports.AppProvider = AppProvider.AppProvider;
88
93
  exports.AutoFocus = AutoFocus.AutoFocus;
89
- exports.Avatar = Avatar.Avatar;
90
- exports.useAvatarRadiusToken = Avatar.useAvatarRadiusToken;
91
- exports.AvatarGroup = AvatarGroup.AvatarGroup;
94
+ exports.Avatar = Avatar$1.Avatar;
95
+ exports.useAvatarRadiusToken = Avatar$1.useAvatarRadiusToken;
96
+ exports.AvatarGroup = AvatarGroup$1.AvatarGroup;
92
97
  exports.Badge = Badge.Badge;
93
98
  exports.Banner = Banner.Banner;
94
99
  exports.Box = Box.Box;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}