@transferwise/components 46.83.0 → 46.83.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/build/avatarLayout/AvatarLayout.js +7 -3
- package/build/avatarLayout/AvatarLayout.js.map +1 -1
- package/build/avatarLayout/AvatarLayout.mjs +7 -3
- package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
- package/build/avatarView/AvatarView.js.map +1 -1
- package/build/avatarView/AvatarView.mjs.map +1 -1
- package/build/i18n/es.json +1 -1
- package/build/i18n/es.json.js +1 -1
- package/build/i18n/es.json.mjs +1 -1
- package/build/i18n/hu.json +5 -0
- package/build/i18n/hu.json.js +5 -0
- package/build/i18n/hu.json.js.map +1 -1
- package/build/i18n/hu.json.mjs +5 -0
- package/build/i18n/hu.json.mjs.map +1 -1
- package/build/i18n/id.json +5 -0
- package/build/i18n/id.json.js +5 -0
- package/build/i18n/id.json.js.map +1 -1
- package/build/i18n/id.json.mjs +5 -0
- package/build/i18n/id.json.mjs.map +1 -1
- package/build/i18n/ja.json +5 -0
- package/build/i18n/ja.json.js +5 -0
- package/build/i18n/ja.json.js.map +1 -1
- package/build/i18n/ja.json.mjs +5 -0
- package/build/i18n/ja.json.mjs.map +1 -1
- package/build/i18n/pl.json +1 -1
- package/build/i18n/pl.json.js +1 -1
- package/build/i18n/pl.json.mjs +1 -1
- package/build/i18n/tr.json +5 -0
- package/build/i18n/tr.json.js +5 -0
- package/build/i18n/tr.json.js.map +1 -1
- package/build/i18n/tr.json.mjs +5 -0
- package/build/i18n/tr.json.mjs.map +1 -1
- package/build/index.js +1 -1
- package/build/index.mjs +1 -1
- package/build/types/avatarLayout/AvatarLayout.d.ts +1 -1
- package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
- package/build/types/avatarView/AvatarView.d.ts +1 -1
- package/build/types/avatarView/AvatarView.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/table/Table.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/avatarLayout/AvatarLayout.story.tsx +8 -0
- package/src/avatarLayout/AvatarLayout.tsx +32 -30
- package/src/avatarView/AvatarView.tsx +1 -1
- package/src/i18n/es.json +1 -1
- package/src/i18n/hu.json +5 -0
- package/src/i18n/id.json +5 -0
- package/src/i18n/ja.json +5 -0
- package/src/i18n/pl.json +1 -1
- package/src/i18n/tr.json +5 -0
- package/src/index.ts +1 -1
- package/src/table/Table.tsx +3 -2
|
@@ -6,15 +6,19 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
|
|
7
7
|
function AvatarLayout({
|
|
8
8
|
avatars = [],
|
|
9
|
-
orientation = 'horizontal',
|
|
9
|
+
orientation: orientationProp = 'horizontal',
|
|
10
10
|
size = 48,
|
|
11
11
|
className,
|
|
12
12
|
interactive,
|
|
13
13
|
...restProps
|
|
14
14
|
}) {
|
|
15
|
+
const orientation = size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;
|
|
15
16
|
const isDiagonal = orientation === 'diagonal';
|
|
16
17
|
const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;
|
|
17
|
-
return /*#__PURE__*/jsxRuntime.jsx(
|
|
18
|
+
return avatars.length < 1 ? null : avatars.length === 1 ? /*#__PURE__*/jsxRuntime.jsx(AvatarView, {
|
|
19
|
+
...avatars[0],
|
|
20
|
+
children: avatars[0].asset
|
|
21
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
18
22
|
className: clsx.clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className),
|
|
19
23
|
style: {
|
|
20
24
|
// @ts-expect-error CSS custom props allowed
|
|
@@ -23,7 +27,7 @@ function AvatarLayout({
|
|
|
23
27
|
'--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`
|
|
24
28
|
},
|
|
25
29
|
...restProps,
|
|
26
|
-
children: avatars.
|
|
30
|
+
children: avatars.map(({
|
|
27
31
|
asset,
|
|
28
32
|
style,
|
|
29
33
|
...avatar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarLayout.js","sources":["../../src/avatarLayout/AvatarLayout.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport AvatarView, { AvatarViewProps } from '../avatarView';\n\ntype SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<\n AvatarViewProps,\n 'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'\n>;\n\nexport type Props = {\n avatars: SingleAvatarType[];\n orientation?: 'horizontal' | 'diagonal';\n} & Pick<\n AvatarViewProps,\n 'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nexport default function AvatarLayout({\n avatars = [],\n orientation = 'horizontal',\n size = 48,\n className,\n interactive,\n ...restProps\n}: Props) {\n const isDiagonal = orientation === 'diagonal';\n const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;\n return (\n <div\n className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}\n style={{\n // @ts-expect-error CSS custom props allowed\n '--np-avatar-layout-size': `${size}px`,\n '--np-avatar-size': `${avatarSize}px`,\n '--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`,\n }}\n {...restProps}\n >\n {avatars.
|
|
1
|
+
{"version":3,"file":"AvatarLayout.js","sources":["../../src/avatarLayout/AvatarLayout.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport AvatarView, { AvatarViewProps } from '../avatarView';\n\ntype SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<\n AvatarViewProps,\n 'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'\n>;\n\nexport type Props = {\n avatars: SingleAvatarType[];\n orientation?: 'horizontal' | 'diagonal';\n} & Pick<\n AvatarViewProps,\n 'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nexport default function AvatarLayout({\n avatars = [],\n orientation: orientationProp = 'horizontal',\n size = 48,\n className,\n interactive,\n ...restProps\n}: Props) {\n const orientation =\n size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;\n const isDiagonal = orientation === 'diagonal';\n const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;\n return avatars.length < 1 ? null : avatars.length === 1 ? (\n <AvatarView {...avatars[0]}>{avatars[0].asset}</AvatarView>\n ) : (\n <div\n className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}\n style={{\n // @ts-expect-error CSS custom props allowed\n '--np-avatar-layout-size': `${size}px`,\n '--np-avatar-size': `${avatarSize}px`,\n '--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`,\n }}\n {...restProps}\n >\n {avatars.map(({ asset, style, ...avatar }, index) => (\n <div\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n className={clsx(\n { [`np-avatar-layout-${orientation}-child`]: index !== 0 },\n { [`np-avatar-layout-${orientation}-mask`]: index !== avatars.length - 1 },\n )}\n >\n <AvatarView\n {...avatar}\n size={avatarSize as Props['size']}\n style={{\n ...(isDiagonal && {\n '--circle-size': `${avatarSize}px`,\n '--circle-icon-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].iconSize}px`,\n '--circle-font-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].fontSize}px`,\n }),\n ...style,\n }}\n interactive={interactive}\n >\n {asset}\n </AvatarView>\n </div>\n ))}\n </div>\n );\n}\n\n/** Diagonal layout have custom sizes for avatar, font and icon */\nconst DIAGONAL_LAYOUT_STYLE_CONFIG = {\n // Diagonal layout doesn't support 16 size\n 16: { avatarSize: undefined, offset: undefined, fontSize: undefined, iconSize: undefined },\n 24: { avatarSize: 15, offset: 2.5, fontSize: 8, iconSize: 11.25 },\n 32: { avatarSize: 20, offset: 2.5, fontSize: 12, iconSize: 15 },\n 40: { avatarSize: 24, offset: 4.5, fontSize: 12, iconSize: 18 },\n 48: { avatarSize: 30, offset: 3.5, fontSize: 14, iconSize: 16.87 },\n 56: { avatarSize: 34, offset: 5, fontSize: 14, iconSize: 19.12 },\n 72: { avatarSize: 44, offset: 6, fontSize: 22, iconSize: 22 },\n};\n\n/** Horizontal layout have custom offset between avatars */\nconst HORIZONTAL_LAYOUT_OFFSET = {\n 16: 2,\n 24: 2,\n 32: 4,\n 40: 4,\n 48: 4,\n 56: 5,\n 72: 5,\n};\n"],"names":["AvatarLayout","avatars","orientation","orientationProp","size","className","interactive","restProps","isDiagonal","avatarSize","DIAGONAL_LAYOUT_STYLE_CONFIG","length","_jsx","AvatarView","children","asset","clsx","style","offset","HORIZONTAL_LAYOUT_OFFSET","map","avatar","index","iconSize","fontSize","undefined"],"mappings":"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"}
|
|
@@ -4,15 +4,19 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
4
4
|
|
|
5
5
|
function AvatarLayout({
|
|
6
6
|
avatars = [],
|
|
7
|
-
orientation = 'horizontal',
|
|
7
|
+
orientation: orientationProp = 'horizontal',
|
|
8
8
|
size = 48,
|
|
9
9
|
className,
|
|
10
10
|
interactive,
|
|
11
11
|
...restProps
|
|
12
12
|
}) {
|
|
13
|
+
const orientation = size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;
|
|
13
14
|
const isDiagonal = orientation === 'diagonal';
|
|
14
15
|
const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;
|
|
15
|
-
return /*#__PURE__*/jsx(
|
|
16
|
+
return avatars.length < 1 ? null : avatars.length === 1 ? /*#__PURE__*/jsx(AvatarView, {
|
|
17
|
+
...avatars[0],
|
|
18
|
+
children: avatars[0].asset
|
|
19
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
16
20
|
className: clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className),
|
|
17
21
|
style: {
|
|
18
22
|
// @ts-expect-error CSS custom props allowed
|
|
@@ -21,7 +25,7 @@ function AvatarLayout({
|
|
|
21
25
|
'--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`
|
|
22
26
|
},
|
|
23
27
|
...restProps,
|
|
24
|
-
children: avatars.
|
|
28
|
+
children: avatars.map(({
|
|
25
29
|
asset,
|
|
26
30
|
style,
|
|
27
31
|
...avatar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarLayout.mjs","sources":["../../src/avatarLayout/AvatarLayout.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport AvatarView, { AvatarViewProps } from '../avatarView';\n\ntype SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<\n AvatarViewProps,\n 'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'\n>;\n\nexport type Props = {\n avatars: SingleAvatarType[];\n orientation?: 'horizontal' | 'diagonal';\n} & Pick<\n AvatarViewProps,\n 'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nexport default function AvatarLayout({\n avatars = [],\n orientation = 'horizontal',\n size = 48,\n className,\n interactive,\n ...restProps\n}: Props) {\n const isDiagonal = orientation === 'diagonal';\n const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;\n return (\n <div\n className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}\n style={{\n // @ts-expect-error CSS custom props allowed\n '--np-avatar-layout-size': `${size}px`,\n '--np-avatar-size': `${avatarSize}px`,\n '--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`,\n }}\n {...restProps}\n >\n {avatars.
|
|
1
|
+
{"version":3,"file":"AvatarLayout.mjs","sources":["../../src/avatarLayout/AvatarLayout.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport AvatarView, { AvatarViewProps } from '../avatarView';\n\ntype SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<\n AvatarViewProps,\n 'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'\n>;\n\nexport type Props = {\n avatars: SingleAvatarType[];\n orientation?: 'horizontal' | 'diagonal';\n} & Pick<\n AvatarViewProps,\n 'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nexport default function AvatarLayout({\n avatars = [],\n orientation: orientationProp = 'horizontal',\n size = 48,\n className,\n interactive,\n ...restProps\n}: Props) {\n const orientation =\n size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;\n const isDiagonal = orientation === 'diagonal';\n const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;\n return avatars.length < 1 ? null : avatars.length === 1 ? (\n <AvatarView {...avatars[0]}>{avatars[0].asset}</AvatarView>\n ) : (\n <div\n className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}\n style={{\n // @ts-expect-error CSS custom props allowed\n '--np-avatar-layout-size': `${size}px`,\n '--np-avatar-size': `${avatarSize}px`,\n '--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`,\n }}\n {...restProps}\n >\n {avatars.map(({ asset, style, ...avatar }, index) => (\n <div\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n className={clsx(\n { [`np-avatar-layout-${orientation}-child`]: index !== 0 },\n { [`np-avatar-layout-${orientation}-mask`]: index !== avatars.length - 1 },\n )}\n >\n <AvatarView\n {...avatar}\n size={avatarSize as Props['size']}\n style={{\n ...(isDiagonal && {\n '--circle-size': `${avatarSize}px`,\n '--circle-icon-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].iconSize}px`,\n '--circle-font-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].fontSize}px`,\n }),\n ...style,\n }}\n interactive={interactive}\n >\n {asset}\n </AvatarView>\n </div>\n ))}\n </div>\n );\n}\n\n/** Diagonal layout have custom sizes for avatar, font and icon */\nconst DIAGONAL_LAYOUT_STYLE_CONFIG = {\n // Diagonal layout doesn't support 16 size\n 16: { avatarSize: undefined, offset: undefined, fontSize: undefined, iconSize: undefined },\n 24: { avatarSize: 15, offset: 2.5, fontSize: 8, iconSize: 11.25 },\n 32: { avatarSize: 20, offset: 2.5, fontSize: 12, iconSize: 15 },\n 40: { avatarSize: 24, offset: 4.5, fontSize: 12, iconSize: 18 },\n 48: { avatarSize: 30, offset: 3.5, fontSize: 14, iconSize: 16.87 },\n 56: { avatarSize: 34, offset: 5, fontSize: 14, iconSize: 19.12 },\n 72: { avatarSize: 44, offset: 6, fontSize: 22, iconSize: 22 },\n};\n\n/** Horizontal layout have custom offset between avatars */\nconst HORIZONTAL_LAYOUT_OFFSET = {\n 16: 2,\n 24: 2,\n 32: 4,\n 40: 4,\n 48: 4,\n 56: 5,\n 72: 5,\n};\n"],"names":["AvatarLayout","avatars","orientation","orientationProp","size","className","interactive","restProps","isDiagonal","avatarSize","DIAGONAL_LAYOUT_STYLE_CONFIG","length","_jsx","AvatarView","children","asset","clsx","style","offset","HORIZONTAL_LAYOUT_OFFSET","map","avatar","index","iconSize","fontSize","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarView.js","sources":["../../src/avatarView/AvatarView.tsx"],"sourcesContent":["import Badge, { BadgeAssets, BadgeProps, BadgeAssetsProps } from '../badge';\nimport NotificationDot from './NotificationDot';\nimport Circle from '../common/circle';\nimport Image from '../image';\nimport { HTMLAttributes, PropsWithChildren, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { getInitials, ProfileType, ProfileTypeBusiness, ProfileTypePersonal } from '../common';\nimport {\n Briefcase as BusinessProfileIcon,\n Profile as PersonalProfileIcon,\n} from '@transferwise/icons';\n\nexport type AvatarViewBadgeProps = BadgeAssetsProps &\n Pick<BadgeProps, 'aria-label'> & {\n /**\n * Custom badge content\n */\n asset?: React.ReactNode;\n };\n\nexport type Props = {\n imgSrc?: string | null;\n /**\n * Entity name (person (profile or recipient) or business name), it will be boilded down to 1 or 2 chars (initials)\n */\n profileName?: string | null;\n profileType?: ProfileTypeBusiness | ProfileTypePersonal;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n notification?: boolean;\n badge?: AvatarViewBadgeProps;\n interactive?: boolean;\n selected?: boolean;\n style?: Pick<React.CSSProperties, 'border' | 'backgroundColor' | 'color'>;\n} & Pick<\n HTMLAttributes<HTMLDivElement>,\n 'className' | 'children' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nfunction AvatarView({\n children = undefined,\n size = 48,\n selected,\n notification,\n badge,\n interactive = false,\n className,\n style,\n imgSrc,\n profileType,\n profileName,\n ...restProps\n}: Props) {\n return (\n <Circle\n size={size}\n fixedSize\n className={clsx(\n 'np-avatar-view',\n interactive ? 'np-avatar-view-interactive' : 'np-avatar-view-non-interactive',\n { 'np-avatar-view-selected': selected },\n className,\n )}\n {...restProps}\n >\n <Badges avatar={{ size, notification, selected }} {...badge}>\n <Circle\n size={size}\n fixedSize\n className={clsx('np-avatar-view-content')}\n enableBorder={!interactive || selected}\n style={{\n ...(selected && { '--circle-border-color': 'var(--color-interactive-primary)' }),\n ...style,\n }}\n >\n <AvatarViewContent {...{ imgSrc, profileType, profileName }}>\n {children}\n </AvatarViewContent>\n </Circle>\n </Badges>\n </Circle>\n );\n}\n\n/** Size of badge depends on size of avatar */\nconst MAP_BADGE_ASSET_SIZE = {\n 16: 16,\n 24: 16,\n 32: 16,\n 40: 16,\n 48: 16,\n 56: 24,\n 72: 24,\n} satisfies Record<number, BadgeAssetsProps['size']>;\n\n/** Certain sizes of AvatarView has a custom offset for badge */\nconst MAP_BADGE_POSITION = {\n 24: -6,\n 32: -4,\n};\n\ntype BadgesProps = AvatarViewBadgeProps &\n PropsWithChildren<{\n avatar: Pick<Props, 'selected' | 'size' | 'notification'>;\n }>;\n\n/**\n * Adds build-in badges to AvatarView\n */\nfunction Badges({\n children,\n avatar,\n 'aria-label': ariaLabel,\n asset: customBadge,\n ...badgeAssets\n}: BadgesProps) {\n const { size = 48, selected, notification } = avatar;\n const anyBadge = Object.values({ customBadge, ...badgeAssets }).filter(Boolean).length > 0;\n if ((anyBadge || selected) && size > 16) {\n const badgeSize: BadgeAssetsProps['size'] = MAP_BADGE_ASSET_SIZE[size];\n return (\n <Badge\n aria-label={ariaLabel}\n size={badgeSize}\n badge={\n customBadge ? (\n <Circle fixedSize size={badgeSize}>\n {customBadge}\n </Circle>\n ) : (\n <BadgeAssets {...(selected ? { status: 'positive' } : badgeAssets)} size={badgeSize} />\n )\n }\n style={{\n // @ts-expect-error CSS custom props allowed\n '--badge-content-position': `${MAP_BADGE_POSITION[size] ?? 0}px`,\n }}\n >\n {children}\n </Badge>\n );\n }\n if (notification) {\n return <NotificationDot avatarSize={size}>{children}</NotificationDot>;\n }\n return children;\n}\n\nfunction AvatarViewContent({\n children,\n imgSrc,\n profileName: name,\n profileType: type,\n}: PropsWithChildren<Pick<Props, 'imgSrc' | 'profileName' | 'profileType'>>) {\n const [tryLoadImage, setTryLoadImage] = useState(true);\n if (children === undefined) {\n if (imgSrc && tryLoadImage) {\n return <Image src={imgSrc} alt=\"\" onError={() => setTryLoadImage(false)} />;\n }\n if (type) {\n return type === ProfileType.BUSINESS ? <BusinessProfileIcon /> : <PersonalProfileIcon />;\n }\n if (name) {\n return getInitials(name);\n }\n return <PersonalProfileIcon />;\n }\n return children;\n}\n\nexport default AvatarView;\n"],"names":["AvatarView","children","undefined","size","selected","notification","badge","interactive","className","style","imgSrc","profileType","profileName","restProps","_jsx","Circle","fixedSize","clsx","Badges","avatar","enableBorder","AvatarViewContent","MAP_BADGE_ASSET_SIZE","MAP_BADGE_POSITION","ariaLabel","asset","customBadge","badgeAssets","anyBadge","Object","values","filter","Boolean","length","badgeSize","Badge","BadgeAssets","status","NotificationDot","avatarSize","name","type","tryLoadImage","setTryLoadImage","useState","Image","src","alt","onError","ProfileType","BUSINESS","BusinessProfileIcon","PersonalProfileIcon","getInitials"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,SAASA,UAAUA,CAAC;AAClBC,EAAAA,QAAQ,GAAGC,SAAS;AACpBC,EAAAA,IAAI,GAAG,EAAE;EACTC,QAAQ;EACRC,YAAY;EACZC,KAAK;AACLC,EAAAA,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC,WAAW;EACXC,WAAW;EACX,GAAGC,SAAAA;AACG,CAAA,EAAA;EACN,oBACEC,cAAA,CAACC,MAAM,EAAA;AACLZ,IAAAA,IAAI,EAAEA,IAAK;IACXa,SAAS,EAAA,IAAA;IACTR,SAAS,EAAES,SAAI,CACb,gBAAgB,EAChBV,WAAW,GAAG,4BAA4B,GAAG,gCAAgC,EAC7E;AAAE,MAAA,yBAAyB,EAAEH,QAAAA;KAAU,EACvCI,SAAS,CACT;AAAA,IAAA,GACEK,SAAS;IAAAZ,QAAA,eAEba,cAAA,CAACI,MAAM,EAAA;AAACC,MAAAA,MAAM,EAAE;QAAEhB,IAAI;QAAEE,YAAY;AAAED,QAAAA,QAAAA;OAAW;AAAA,MAAA,GAAKE,KAAK;MAAAL,QAAA,eACzDa,cAAA,CAACC,MAAM,EAAA;AACLZ,QAAAA,IAAI,EAAEA,IAAK;QACXa,SAAS,EAAA,IAAA;AACTR,QAAAA,SAAS,EAAES,SAAI,CAAC,wBAAwB,CAAE;AAC1CG,QAAAA,YAAY,EAAE,CAACb,WAAW,IAAIH,QAAS;AACvCK,QAAAA,KAAK,EAAE;AACL,UAAA,IAAIL,QAAQ,IAAI;AAAE,YAAA,uBAAuB,EAAE,kCAAA;WAAoC,CAAC;UAChF,GAAGK,KAAAA;SACH;QAAAR,QAAA,eAEFa,cAAA,CAACO,iBAAiB,EAAA;UAAOX,MAAM;UAAEC,WAAW;UAAEC,WAAW;AAAAX,UAAAA,QAAA,EACtDA,QAAAA;SACgB,CAAA;OACb,CAAA;KACF,CAAA;AACV,GAAQ,CAAC,CAAA;AAEb,CAAA;AAEA;AACA,MAAMqB,oBAAoB,GAAG;AAC3B,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAE;AACN,EAAA,EAAE,EAAE,EAAA;CAC8C,CAAA;AAEpD;AACA,MAAMC,kBAAkB,GAAG;EACzB,EAAE,EAAE,CAAC,CAAC;AACN,EAAA,EAAE,EAAE,CAAC,CAAA;CACN,CAAA;AAOD;;AAEG;AACH,SAASL,MAAMA,CAAC;EACdjB,QAAQ;EACRkB,MAAM;AACN,EAAA,YAAY,EAAEK,SAAS;AACvBC,EAAAA,KAAK,EAAEC,WAAW;EAClB,GAAGC,WAAAA;AACS,CAAA,EAAA;EACZ,MAAM;AAAExB,IAAAA,IAAI,GAAG,EAAE;IAAEC,QAAQ;AAAEC,IAAAA,YAAAA;AAAY,GAAE,GAAGc,MAAM,CAAA;AACpD,EAAA,MAAMS,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;IAAEJ,WAAW;IAAE,GAAGC,WAAAA;GAAa,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM,GAAG,CAAC,CAAA;EAC1F,IAAI,CAACL,QAAQ,IAAIxB,QAAQ,KAAKD,IAAI,GAAG,EAAE,EAAE;AACvC,IAAA,MAAM+B,SAAS,GAA6BZ,oBAAoB,CAACnB,IAAI,CAAC,CAAA;IACtE,oBACEW,cAAA,CAACqB,KAAK,EAAA;AACJ,MAAA,YAAA,EAAYX,SAAU;AACtBrB,MAAAA,IAAI,EAAE+B,SAAU;AAChB5B,MAAAA,KAAK,EACHoB,WAAW,gBACTZ,cAAA,CAACC,MAAM,EAAA;QAACC,SAAS,EAAA,IAAA;AAACb,QAAAA,IAAI,EAAE+B,SAAU;AAAAjC,QAAAA,QAAA,EAC/ByB,WAAAA;AAAW,OACN,CAAC,gBAETZ,cAAA,CAACsB,WAAW,EAAA;AAAA,QAAA,IAAMhC,QAAQ,GAAG;AAAEiC,UAAAA,MAAM,EAAE,UAAA;AAAU,SAAE,GAAGV,WAAW,CAAA;AAAGxB,QAAAA,IAAI,EAAE+B,SAAAA;AAAU,OAAG,CAE1F;AACDzB,MAAAA,KAAK,EAAE;AACL;AACA,QAAA,0BAA0B,EAAE,CAAGc,EAAAA,kBAAkB,CAACpB,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAA;OAC5D;AAAAF,MAAAA,QAAA,EAEDA,QAAAA;AAAQ,KACJ,CAAC,CAAA;AAEZ,GAAA;AACA,EAAA,IAAII,YAAY,EAAE;IAChB,oBAAOS,cAAA,CAACwB,eAAe,EAAA;AAACC,MAAAA,UAAU,EAAEpC,IAAK;AAAAF,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAkB,CAAC,CAAA;AACxE,GAAA;AACA,EAAA,OAAOA,QAAQ,CAAA;AACjB,CAAA;AAEA,SAASoB,iBAAiBA,CAAC;EACzBpB,QAAQ;EACRS,MAAM;AACNE,EAAAA,WAAW,EAAE4B,IAAI;AACjB7B,EAAAA,WAAW,EAAE8B,IAAAA;AAC4D,CAAA,EAAA;EACzE,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGC,cAAQ,CAAC,IAAI,CAAC,CAAA;EACtD,IAAI3C,QAAQ,KAAKC,SAAS,EAAE;IAC1B,IAAIQ,MAAM,IAAIgC,YAAY,EAAE;MAC1B,oBAAO5B,cAAA,CAAC+B,aAAK,EAAA;AAACC,QAAAA,GAAG,EAAEpC,MAAO;AAACqC,QAAAA,GAAG,EAAC,EAAE;AAACC,QAAAA,OAAO,EAAEA,MAAML,eAAe,CAAC,KAAK,CAAA;AAAE,OAAA,CAAG,CAAA;AAC7E,KAAA;AACA,IAAA,IAAIF,IAAI,EAAE;AACR,MAAA,OAAOA,IAAI,KAAKQ,uBAAW,CAACC,QAAQ,gBAAGpC,cAAA,CAACqC,eAAmB,EAAA,EAAA,CAAG,gBAAGrC,cAAA,CAACsC,aAAmB,IAAA,CAAG,CAAA;AAC1F,KAAA;AACA,IAAA,IAAIZ,IAAI,EAAE;MACR,OAAOa,oBAAW,CAACb,IAAI,CAAC,CAAA;AAC1B,KAAA;AACA,IAAA,oBAAO1B,cAAA,CAACsC,aAAmB,EAAA,GAAG,CAAA;AAChC,GAAA;AACA,EAAA,OAAOnD,QAAQ,CAAA;AACjB;;;;"}
|
|
1
|
+
{"version":3,"file":"AvatarView.js","sources":["../../src/avatarView/AvatarView.tsx"],"sourcesContent":["import Badge, { BadgeAssets, BadgeProps, BadgeAssetsProps } from '../badge';\nimport NotificationDot from './NotificationDot';\nimport Circle from '../common/circle';\nimport Image from '../image';\nimport { HTMLAttributes, PropsWithChildren, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { getInitials, ProfileType, ProfileTypeBusiness, ProfileTypePersonal } from '../common';\nimport {\n Briefcase as BusinessProfileIcon,\n Profile as PersonalProfileIcon,\n} from '@transferwise/icons';\n\nexport type AvatarViewBadgeProps = Omit<BadgeAssetsProps, 'size'> &\n Pick<BadgeProps, 'aria-label'> & {\n /**\n * Custom badge content\n */\n asset?: React.ReactNode;\n };\n\nexport type Props = {\n imgSrc?: string | null;\n /**\n * Entity name (person (profile or recipient) or business name), it will be boilded down to 1 or 2 chars (initials)\n */\n profileName?: string | null;\n profileType?: ProfileTypeBusiness | ProfileTypePersonal;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n notification?: boolean;\n badge?: AvatarViewBadgeProps;\n interactive?: boolean;\n selected?: boolean;\n style?: Pick<React.CSSProperties, 'border' | 'backgroundColor' | 'color'>;\n} & Pick<\n HTMLAttributes<HTMLDivElement>,\n 'className' | 'children' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nfunction AvatarView({\n children = undefined,\n size = 48,\n selected,\n notification,\n badge,\n interactive = false,\n className,\n style,\n imgSrc,\n profileType,\n profileName,\n ...restProps\n}: Props) {\n return (\n <Circle\n size={size}\n fixedSize\n className={clsx(\n 'np-avatar-view',\n interactive ? 'np-avatar-view-interactive' : 'np-avatar-view-non-interactive',\n { 'np-avatar-view-selected': selected },\n className,\n )}\n {...restProps}\n >\n <Badges avatar={{ size, notification, selected }} {...badge}>\n <Circle\n size={size}\n fixedSize\n className={clsx('np-avatar-view-content')}\n enableBorder={!interactive || selected}\n style={{\n ...(selected && { '--circle-border-color': 'var(--color-interactive-primary)' }),\n ...style,\n }}\n >\n <AvatarViewContent {...{ imgSrc, profileType, profileName }}>\n {children}\n </AvatarViewContent>\n </Circle>\n </Badges>\n </Circle>\n );\n}\n\n/** Size of badge depends on size of avatar */\nconst MAP_BADGE_ASSET_SIZE = {\n 16: 16,\n 24: 16,\n 32: 16,\n 40: 16,\n 48: 16,\n 56: 24,\n 72: 24,\n} satisfies Record<number, BadgeAssetsProps['size']>;\n\n/** Certain sizes of AvatarView has a custom offset for badge */\nconst MAP_BADGE_POSITION = {\n 24: -6,\n 32: -4,\n};\n\ntype BadgesProps = AvatarViewBadgeProps &\n PropsWithChildren<{\n avatar: Pick<Props, 'selected' | 'size' | 'notification'>;\n }>;\n\n/**\n * Adds build-in badges to AvatarView\n */\nfunction Badges({\n children,\n avatar,\n 'aria-label': ariaLabel,\n asset: customBadge,\n ...badgeAssets\n}: BadgesProps) {\n const { size = 48, selected, notification } = avatar;\n const anyBadge = Object.values({ customBadge, ...badgeAssets }).filter(Boolean).length > 0;\n if ((anyBadge || selected) && size > 16) {\n const badgeSize: BadgeAssetsProps['size'] = MAP_BADGE_ASSET_SIZE[size];\n return (\n <Badge\n aria-label={ariaLabel}\n size={badgeSize}\n badge={\n customBadge ? (\n <Circle fixedSize size={badgeSize}>\n {customBadge}\n </Circle>\n ) : (\n <BadgeAssets {...(selected ? { status: 'positive' } : badgeAssets)} size={badgeSize} />\n )\n }\n style={{\n // @ts-expect-error CSS custom props allowed\n '--badge-content-position': `${MAP_BADGE_POSITION[size] ?? 0}px`,\n }}\n >\n {children}\n </Badge>\n );\n }\n if (notification) {\n return <NotificationDot avatarSize={size}>{children}</NotificationDot>;\n }\n return children;\n}\n\nfunction AvatarViewContent({\n children,\n imgSrc,\n profileName: name,\n profileType: type,\n}: PropsWithChildren<Pick<Props, 'imgSrc' | 'profileName' | 'profileType'>>) {\n const [tryLoadImage, setTryLoadImage] = useState(true);\n if (children === undefined) {\n if (imgSrc && tryLoadImage) {\n return <Image src={imgSrc} alt=\"\" onError={() => setTryLoadImage(false)} />;\n }\n if (type) {\n return type === ProfileType.BUSINESS ? <BusinessProfileIcon /> : <PersonalProfileIcon />;\n }\n if (name) {\n return getInitials(name);\n }\n return <PersonalProfileIcon />;\n }\n return children;\n}\n\nexport default AvatarView;\n"],"names":["AvatarView","children","undefined","size","selected","notification","badge","interactive","className","style","imgSrc","profileType","profileName","restProps","_jsx","Circle","fixedSize","clsx","Badges","avatar","enableBorder","AvatarViewContent","MAP_BADGE_ASSET_SIZE","MAP_BADGE_POSITION","ariaLabel","asset","customBadge","badgeAssets","anyBadge","Object","values","filter","Boolean","length","badgeSize","Badge","BadgeAssets","status","NotificationDot","avatarSize","name","type","tryLoadImage","setTryLoadImage","useState","Image","src","alt","onError","ProfileType","BUSINESS","BusinessProfileIcon","PersonalProfileIcon","getInitials"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarView.mjs","sources":["../../src/avatarView/AvatarView.tsx"],"sourcesContent":["import Badge, { BadgeAssets, BadgeProps, BadgeAssetsProps } from '../badge';\nimport NotificationDot from './NotificationDot';\nimport Circle from '../common/circle';\nimport Image from '../image';\nimport { HTMLAttributes, PropsWithChildren, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { getInitials, ProfileType, ProfileTypeBusiness, ProfileTypePersonal } from '../common';\nimport {\n Briefcase as BusinessProfileIcon,\n Profile as PersonalProfileIcon,\n} from '@transferwise/icons';\n\nexport type AvatarViewBadgeProps = BadgeAssetsProps &\n Pick<BadgeProps, 'aria-label'> & {\n /**\n * Custom badge content\n */\n asset?: React.ReactNode;\n };\n\nexport type Props = {\n imgSrc?: string | null;\n /**\n * Entity name (person (profile or recipient) or business name), it will be boilded down to 1 or 2 chars (initials)\n */\n profileName?: string | null;\n profileType?: ProfileTypeBusiness | ProfileTypePersonal;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n notification?: boolean;\n badge?: AvatarViewBadgeProps;\n interactive?: boolean;\n selected?: boolean;\n style?: Pick<React.CSSProperties, 'border' | 'backgroundColor' | 'color'>;\n} & Pick<\n HTMLAttributes<HTMLDivElement>,\n 'className' | 'children' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nfunction AvatarView({\n children = undefined,\n size = 48,\n selected,\n notification,\n badge,\n interactive = false,\n className,\n style,\n imgSrc,\n profileType,\n profileName,\n ...restProps\n}: Props) {\n return (\n <Circle\n size={size}\n fixedSize\n className={clsx(\n 'np-avatar-view',\n interactive ? 'np-avatar-view-interactive' : 'np-avatar-view-non-interactive',\n { 'np-avatar-view-selected': selected },\n className,\n )}\n {...restProps}\n >\n <Badges avatar={{ size, notification, selected }} {...badge}>\n <Circle\n size={size}\n fixedSize\n className={clsx('np-avatar-view-content')}\n enableBorder={!interactive || selected}\n style={{\n ...(selected && { '--circle-border-color': 'var(--color-interactive-primary)' }),\n ...style,\n }}\n >\n <AvatarViewContent {...{ imgSrc, profileType, profileName }}>\n {children}\n </AvatarViewContent>\n </Circle>\n </Badges>\n </Circle>\n );\n}\n\n/** Size of badge depends on size of avatar */\nconst MAP_BADGE_ASSET_SIZE = {\n 16: 16,\n 24: 16,\n 32: 16,\n 40: 16,\n 48: 16,\n 56: 24,\n 72: 24,\n} satisfies Record<number, BadgeAssetsProps['size']>;\n\n/** Certain sizes of AvatarView has a custom offset for badge */\nconst MAP_BADGE_POSITION = {\n 24: -6,\n 32: -4,\n};\n\ntype BadgesProps = AvatarViewBadgeProps &\n PropsWithChildren<{\n avatar: Pick<Props, 'selected' | 'size' | 'notification'>;\n }>;\n\n/**\n * Adds build-in badges to AvatarView\n */\nfunction Badges({\n children,\n avatar,\n 'aria-label': ariaLabel,\n asset: customBadge,\n ...badgeAssets\n}: BadgesProps) {\n const { size = 48, selected, notification } = avatar;\n const anyBadge = Object.values({ customBadge, ...badgeAssets }).filter(Boolean).length > 0;\n if ((anyBadge || selected) && size > 16) {\n const badgeSize: BadgeAssetsProps['size'] = MAP_BADGE_ASSET_SIZE[size];\n return (\n <Badge\n aria-label={ariaLabel}\n size={badgeSize}\n badge={\n customBadge ? (\n <Circle fixedSize size={badgeSize}>\n {customBadge}\n </Circle>\n ) : (\n <BadgeAssets {...(selected ? { status: 'positive' } : badgeAssets)} size={badgeSize} />\n )\n }\n style={{\n // @ts-expect-error CSS custom props allowed\n '--badge-content-position': `${MAP_BADGE_POSITION[size] ?? 0}px`,\n }}\n >\n {children}\n </Badge>\n );\n }\n if (notification) {\n return <NotificationDot avatarSize={size}>{children}</NotificationDot>;\n }\n return children;\n}\n\nfunction AvatarViewContent({\n children,\n imgSrc,\n profileName: name,\n profileType: type,\n}: PropsWithChildren<Pick<Props, 'imgSrc' | 'profileName' | 'profileType'>>) {\n const [tryLoadImage, setTryLoadImage] = useState(true);\n if (children === undefined) {\n if (imgSrc && tryLoadImage) {\n return <Image src={imgSrc} alt=\"\" onError={() => setTryLoadImage(false)} />;\n }\n if (type) {\n return type === ProfileType.BUSINESS ? <BusinessProfileIcon /> : <PersonalProfileIcon />;\n }\n if (name) {\n return getInitials(name);\n }\n return <PersonalProfileIcon />;\n }\n return children;\n}\n\nexport default AvatarView;\n"],"names":["AvatarView","children","undefined","size","selected","notification","badge","interactive","className","style","imgSrc","profileType","profileName","restProps","_jsx","Circle","fixedSize","clsx","Badges","avatar","enableBorder","AvatarViewContent","MAP_BADGE_ASSET_SIZE","MAP_BADGE_POSITION","ariaLabel","asset","customBadge","badgeAssets","anyBadge","Object","values","filter","Boolean","length","badgeSize","Badge","BadgeAssets","status","NotificationDot","avatarSize","name","type","tryLoadImage","setTryLoadImage","useState","Image","src","alt","onError","ProfileType","BUSINESS","BusinessProfileIcon","PersonalProfileIcon","getInitials"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AvatarView.mjs","sources":["../../src/avatarView/AvatarView.tsx"],"sourcesContent":["import Badge, { BadgeAssets, BadgeProps, BadgeAssetsProps } from '../badge';\nimport NotificationDot from './NotificationDot';\nimport Circle from '../common/circle';\nimport Image from '../image';\nimport { HTMLAttributes, PropsWithChildren, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { getInitials, ProfileType, ProfileTypeBusiness, ProfileTypePersonal } from '../common';\nimport {\n Briefcase as BusinessProfileIcon,\n Profile as PersonalProfileIcon,\n} from '@transferwise/icons';\n\nexport type AvatarViewBadgeProps = Omit<BadgeAssetsProps, 'size'> &\n Pick<BadgeProps, 'aria-label'> & {\n /**\n * Custom badge content\n */\n asset?: React.ReactNode;\n };\n\nexport type Props = {\n imgSrc?: string | null;\n /**\n * Entity name (person (profile or recipient) or business name), it will be boilded down to 1 or 2 chars (initials)\n */\n profileName?: string | null;\n profileType?: ProfileTypeBusiness | ProfileTypePersonal;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n notification?: boolean;\n badge?: AvatarViewBadgeProps;\n interactive?: boolean;\n selected?: boolean;\n style?: Pick<React.CSSProperties, 'border' | 'backgroundColor' | 'color'>;\n} & Pick<\n HTMLAttributes<HTMLDivElement>,\n 'className' | 'children' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'\n>;\n\nfunction AvatarView({\n children = undefined,\n size = 48,\n selected,\n notification,\n badge,\n interactive = false,\n className,\n style,\n imgSrc,\n profileType,\n profileName,\n ...restProps\n}: Props) {\n return (\n <Circle\n size={size}\n fixedSize\n className={clsx(\n 'np-avatar-view',\n interactive ? 'np-avatar-view-interactive' : 'np-avatar-view-non-interactive',\n { 'np-avatar-view-selected': selected },\n className,\n )}\n {...restProps}\n >\n <Badges avatar={{ size, notification, selected }} {...badge}>\n <Circle\n size={size}\n fixedSize\n className={clsx('np-avatar-view-content')}\n enableBorder={!interactive || selected}\n style={{\n ...(selected && { '--circle-border-color': 'var(--color-interactive-primary)' }),\n ...style,\n }}\n >\n <AvatarViewContent {...{ imgSrc, profileType, profileName }}>\n {children}\n </AvatarViewContent>\n </Circle>\n </Badges>\n </Circle>\n );\n}\n\n/** Size of badge depends on size of avatar */\nconst MAP_BADGE_ASSET_SIZE = {\n 16: 16,\n 24: 16,\n 32: 16,\n 40: 16,\n 48: 16,\n 56: 24,\n 72: 24,\n} satisfies Record<number, BadgeAssetsProps['size']>;\n\n/** Certain sizes of AvatarView has a custom offset for badge */\nconst MAP_BADGE_POSITION = {\n 24: -6,\n 32: -4,\n};\n\ntype BadgesProps = AvatarViewBadgeProps &\n PropsWithChildren<{\n avatar: Pick<Props, 'selected' | 'size' | 'notification'>;\n }>;\n\n/**\n * Adds build-in badges to AvatarView\n */\nfunction Badges({\n children,\n avatar,\n 'aria-label': ariaLabel,\n asset: customBadge,\n ...badgeAssets\n}: BadgesProps) {\n const { size = 48, selected, notification } = avatar;\n const anyBadge = Object.values({ customBadge, ...badgeAssets }).filter(Boolean).length > 0;\n if ((anyBadge || selected) && size > 16) {\n const badgeSize: BadgeAssetsProps['size'] = MAP_BADGE_ASSET_SIZE[size];\n return (\n <Badge\n aria-label={ariaLabel}\n size={badgeSize}\n badge={\n customBadge ? (\n <Circle fixedSize size={badgeSize}>\n {customBadge}\n </Circle>\n ) : (\n <BadgeAssets {...(selected ? { status: 'positive' } : badgeAssets)} size={badgeSize} />\n )\n }\n style={{\n // @ts-expect-error CSS custom props allowed\n '--badge-content-position': `${MAP_BADGE_POSITION[size] ?? 0}px`,\n }}\n >\n {children}\n </Badge>\n );\n }\n if (notification) {\n return <NotificationDot avatarSize={size}>{children}</NotificationDot>;\n }\n return children;\n}\n\nfunction AvatarViewContent({\n children,\n imgSrc,\n profileName: name,\n profileType: type,\n}: PropsWithChildren<Pick<Props, 'imgSrc' | 'profileName' | 'profileType'>>) {\n const [tryLoadImage, setTryLoadImage] = useState(true);\n if (children === undefined) {\n if (imgSrc && tryLoadImage) {\n return <Image src={imgSrc} alt=\"\" onError={() => setTryLoadImage(false)} />;\n }\n if (type) {\n return type === ProfileType.BUSINESS ? <BusinessProfileIcon /> : <PersonalProfileIcon />;\n }\n if (name) {\n return getInitials(name);\n }\n return <PersonalProfileIcon />;\n }\n return children;\n}\n\nexport default AvatarView;\n"],"names":["AvatarView","children","undefined","size","selected","notification","badge","interactive","className","style","imgSrc","profileType","profileName","restProps","_jsx","Circle","fixedSize","clsx","Badges","avatar","enableBorder","AvatarViewContent","MAP_BADGE_ASSET_SIZE","MAP_BADGE_POSITION","ariaLabel","asset","customBadge","badgeAssets","anyBadge","Object","values","filter","Boolean","length","badgeSize","Badge","BadgeAssets","status","NotificationDot","avatarSize","name","type","tryLoadImage","setTryLoadImage","useState","Image","src","alt","onError","ProfileType","BUSINESS","BusinessProfileIcon","PersonalProfileIcon","getInitials"],"mappings":"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"}
|
package/build/i18n/es.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"neptune.Summary.statusNotDone": "Apartado a completar",
|
|
37
37
|
"neptune.Summary.statusPending": "Apartado pendiente",
|
|
38
38
|
"neptune.Table.actionHeader": "Acción",
|
|
39
|
-
"neptune.Table.emptyData": "
|
|
39
|
+
"neptune.Table.emptyData": "Ningún resultado",
|
|
40
40
|
"neptune.Table.loaded": "Los datos de la tabla se han cargado",
|
|
41
41
|
"neptune.Table.loading": "Los datos de la tabla se están cargando",
|
|
42
42
|
"neptune.Table.refreshPage": "Actualizar página",
|
package/build/i18n/es.json.js
CHANGED
|
@@ -38,7 +38,7 @@ var es = {
|
|
|
38
38
|
"neptune.Summary.statusNotDone": "Apartado a completar",
|
|
39
39
|
"neptune.Summary.statusPending": "Apartado pendiente",
|
|
40
40
|
"neptune.Table.actionHeader": "Acción",
|
|
41
|
-
"neptune.Table.emptyData": "
|
|
41
|
+
"neptune.Table.emptyData": "Ningún resultado",
|
|
42
42
|
"neptune.Table.loaded": "Los datos de la tabla se han cargado",
|
|
43
43
|
"neptune.Table.loading": "Los datos de la tabla se están cargando",
|
|
44
44
|
"neptune.Table.refreshPage": "Actualizar página",
|
package/build/i18n/es.json.mjs
CHANGED
|
@@ -36,7 +36,7 @@ var es = {
|
|
|
36
36
|
"neptune.Summary.statusNotDone": "Apartado a completar",
|
|
37
37
|
"neptune.Summary.statusPending": "Apartado pendiente",
|
|
38
38
|
"neptune.Table.actionHeader": "Acción",
|
|
39
|
-
"neptune.Table.emptyData": "
|
|
39
|
+
"neptune.Table.emptyData": "Ningún resultado",
|
|
40
40
|
"neptune.Table.loaded": "Los datos de la tabla se han cargado",
|
|
41
41
|
"neptune.Table.loading": "Los datos de la tabla se están cargando",
|
|
42
42
|
"neptune.Table.refreshPage": "Actualizar página",
|
package/build/i18n/hu.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Kész",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Hátravan",
|
|
37
37
|
"neptune.Summary.statusPending": "Függőben",
|
|
38
|
+
"neptune.Table.actionHeader": "Művelet",
|
|
39
|
+
"neptune.Table.emptyData": "Nincs találat",
|
|
40
|
+
"neptune.Table.loaded": "Táblázatadatok betöltve",
|
|
41
|
+
"neptune.Table.loading": "Táblázatadatok betöltése folyamatban",
|
|
42
|
+
"neptune.Table.refreshPage": "Oldal frissítése",
|
|
38
43
|
"neptune.Upload.csButtonText": "Másik fájl feltöltése?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Feltöltés sikertelen. Kérünk, próbáld újra",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Feltöltés sikeres",
|
package/build/i18n/hu.json.js
CHANGED
|
@@ -37,6 +37,11 @@ var hu = {
|
|
|
37
37
|
"neptune.Summary.statusDone": "Kész",
|
|
38
38
|
"neptune.Summary.statusNotDone": "Hátravan",
|
|
39
39
|
"neptune.Summary.statusPending": "Függőben",
|
|
40
|
+
"neptune.Table.actionHeader": "Művelet",
|
|
41
|
+
"neptune.Table.emptyData": "Nincs találat",
|
|
42
|
+
"neptune.Table.loaded": "Táblázatadatok betöltve",
|
|
43
|
+
"neptune.Table.loading": "Táblázatadatok betöltése folyamatban",
|
|
44
|
+
"neptune.Table.refreshPage": "Oldal frissítése",
|
|
40
45
|
"neptune.Upload.csButtonText": "Másik fájl feltöltése?",
|
|
41
46
|
"neptune.Upload.csFailureText": "Feltöltés sikertelen. Kérünk, próbáld újra",
|
|
42
47
|
"neptune.Upload.csSuccessText": "Feltöltés sikeres",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hu.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hu.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/hu.json.mjs
CHANGED
|
@@ -35,6 +35,11 @@ var hu = {
|
|
|
35
35
|
"neptune.Summary.statusDone": "Kész",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Hátravan",
|
|
37
37
|
"neptune.Summary.statusPending": "Függőben",
|
|
38
|
+
"neptune.Table.actionHeader": "Művelet",
|
|
39
|
+
"neptune.Table.emptyData": "Nincs találat",
|
|
40
|
+
"neptune.Table.loaded": "Táblázatadatok betöltve",
|
|
41
|
+
"neptune.Table.loading": "Táblázatadatok betöltése folyamatban",
|
|
42
|
+
"neptune.Table.refreshPage": "Oldal frissítése",
|
|
38
43
|
"neptune.Upload.csButtonText": "Másik fájl feltöltése?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Feltöltés sikertelen. Kérünk, próbáld újra",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Feltöltés sikeres",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hu.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hu.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/id.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Item selesai",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Item yang harus dilakukan",
|
|
37
37
|
"neptune.Summary.statusPending": "Item tertunda",
|
|
38
|
+
"neptune.Table.actionHeader": "Tindakan",
|
|
39
|
+
"neptune.Table.emptyData": "Hasil tidak ditemukan",
|
|
40
|
+
"neptune.Table.loaded": "Data tabel telah dimuat",
|
|
41
|
+
"neptune.Table.loading": "Data tabel sedang dimuat",
|
|
42
|
+
"neptune.Table.refreshPage": "Muat ulang halaman",
|
|
38
43
|
"neptune.Upload.csButtonText": "Unggah file lainnya?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Unggahan gagal. Silakan coba lagi",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Pengunggahan selesai!",
|
package/build/i18n/id.json.js
CHANGED
|
@@ -37,6 +37,11 @@ var id = {
|
|
|
37
37
|
"neptune.Summary.statusDone": "Item selesai",
|
|
38
38
|
"neptune.Summary.statusNotDone": "Item yang harus dilakukan",
|
|
39
39
|
"neptune.Summary.statusPending": "Item tertunda",
|
|
40
|
+
"neptune.Table.actionHeader": "Tindakan",
|
|
41
|
+
"neptune.Table.emptyData": "Hasil tidak ditemukan",
|
|
42
|
+
"neptune.Table.loaded": "Data tabel telah dimuat",
|
|
43
|
+
"neptune.Table.loading": "Data tabel sedang dimuat",
|
|
44
|
+
"neptune.Table.refreshPage": "Muat ulang halaman",
|
|
40
45
|
"neptune.Upload.csButtonText": "Unggah file lainnya?",
|
|
41
46
|
"neptune.Upload.csFailureText": "Unggahan gagal. Silakan coba lagi",
|
|
42
47
|
"neptune.Upload.csSuccessText": "Pengunggahan selesai!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/id.json.mjs
CHANGED
|
@@ -35,6 +35,11 @@ var id = {
|
|
|
35
35
|
"neptune.Summary.statusDone": "Item selesai",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Item yang harus dilakukan",
|
|
37
37
|
"neptune.Summary.statusPending": "Item tertunda",
|
|
38
|
+
"neptune.Table.actionHeader": "Tindakan",
|
|
39
|
+
"neptune.Table.emptyData": "Hasil tidak ditemukan",
|
|
40
|
+
"neptune.Table.loaded": "Data tabel telah dimuat",
|
|
41
|
+
"neptune.Table.loading": "Data tabel sedang dimuat",
|
|
42
|
+
"neptune.Table.refreshPage": "Muat ulang halaman",
|
|
38
43
|
"neptune.Upload.csButtonText": "Unggah file lainnya?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Unggahan gagal. Silakan coba lagi",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Pengunggahan selesai!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/ja.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "完了",
|
|
36
36
|
"neptune.Summary.statusNotDone": "未完了",
|
|
37
37
|
"neptune.Summary.statusPending": "保留中",
|
|
38
|
+
"neptune.Table.actionHeader": "アクション",
|
|
39
|
+
"neptune.Table.emptyData": "結果が見つかりませんでした",
|
|
40
|
+
"neptune.Table.loaded": "テーブルデータが読み込まれました",
|
|
41
|
+
"neptune.Table.loading": "テーブルデータを読み込み中です",
|
|
42
|
+
"neptune.Table.refreshPage": "ページを更新する",
|
|
38
43
|
"neptune.Upload.csButtonText": "別のファイルをアップロードしますか?",
|
|
39
44
|
"neptune.Upload.csFailureText": "アップロードに失敗しました。もう一度やり直してください。",
|
|
40
45
|
"neptune.Upload.csSuccessText": "アップロードが完了しました。",
|
package/build/i18n/ja.json.js
CHANGED
|
@@ -37,6 +37,11 @@ var ja = {
|
|
|
37
37
|
"neptune.Summary.statusDone": "完了",
|
|
38
38
|
"neptune.Summary.statusNotDone": "未完了",
|
|
39
39
|
"neptune.Summary.statusPending": "保留中",
|
|
40
|
+
"neptune.Table.actionHeader": "アクション",
|
|
41
|
+
"neptune.Table.emptyData": "結果が見つかりませんでした",
|
|
42
|
+
"neptune.Table.loaded": "テーブルデータが読み込まれました",
|
|
43
|
+
"neptune.Table.loading": "テーブルデータを読み込み中です",
|
|
44
|
+
"neptune.Table.refreshPage": "ページを更新する",
|
|
40
45
|
"neptune.Upload.csButtonText": "別のファイルをアップロードしますか?",
|
|
41
46
|
"neptune.Upload.csFailureText": "アップロードに失敗しました。もう一度やり直してください。",
|
|
42
47
|
"neptune.Upload.csSuccessText": "アップロードが完了しました。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/ja.json.mjs
CHANGED
|
@@ -35,6 +35,11 @@ var ja = {
|
|
|
35
35
|
"neptune.Summary.statusDone": "完了",
|
|
36
36
|
"neptune.Summary.statusNotDone": "未完了",
|
|
37
37
|
"neptune.Summary.statusPending": "保留中",
|
|
38
|
+
"neptune.Table.actionHeader": "アクション",
|
|
39
|
+
"neptune.Table.emptyData": "結果が見つかりませんでした",
|
|
40
|
+
"neptune.Table.loaded": "テーブルデータが読み込まれました",
|
|
41
|
+
"neptune.Table.loading": "テーブルデータを読み込み中です",
|
|
42
|
+
"neptune.Table.refreshPage": "ページを更新する",
|
|
38
43
|
"neptune.Upload.csButtonText": "別のファイルをアップロードしますか?",
|
|
39
44
|
"neptune.Upload.csFailureText": "アップロードに失敗しました。もう一度やり直してください。",
|
|
40
45
|
"neptune.Upload.csSuccessText": "アップロードが完了しました。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ja.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/pl.json
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Czynność wykonana",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Czynność do wykonania",
|
|
37
37
|
"neptune.Summary.statusPending": "Czynność oczekująca",
|
|
38
|
-
"neptune.Table.actionHeader": "
|
|
38
|
+
"neptune.Table.actionHeader": "Działanie",
|
|
39
39
|
"neptune.Table.emptyData": "Nie znaleziono wyników",
|
|
40
40
|
"neptune.Table.loaded": "Wczytano dane tabeli",
|
|
41
41
|
"neptune.Table.loading": "Wczytywanie danych tabeli",
|
package/build/i18n/pl.json.js
CHANGED
|
@@ -37,7 +37,7 @@ var pl = {
|
|
|
37
37
|
"neptune.Summary.statusDone": "Czynność wykonana",
|
|
38
38
|
"neptune.Summary.statusNotDone": "Czynność do wykonania",
|
|
39
39
|
"neptune.Summary.statusPending": "Czynność oczekująca",
|
|
40
|
-
"neptune.Table.actionHeader": "
|
|
40
|
+
"neptune.Table.actionHeader": "Działanie",
|
|
41
41
|
"neptune.Table.emptyData": "Nie znaleziono wyników",
|
|
42
42
|
"neptune.Table.loaded": "Wczytano dane tabeli",
|
|
43
43
|
"neptune.Table.loading": "Wczytywanie danych tabeli",
|
package/build/i18n/pl.json.mjs
CHANGED
|
@@ -35,7 +35,7 @@ var pl = {
|
|
|
35
35
|
"neptune.Summary.statusDone": "Czynność wykonana",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Czynność do wykonania",
|
|
37
37
|
"neptune.Summary.statusPending": "Czynność oczekująca",
|
|
38
|
-
"neptune.Table.actionHeader": "
|
|
38
|
+
"neptune.Table.actionHeader": "Działanie",
|
|
39
39
|
"neptune.Table.emptyData": "Nie znaleziono wyników",
|
|
40
40
|
"neptune.Table.loaded": "Wczytano dane tabeli",
|
|
41
41
|
"neptune.Table.loading": "Wczytywanie danych tabeli",
|
package/build/i18n/tr.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Tamamlanan aşama",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Yapılacak",
|
|
37
37
|
"neptune.Summary.statusPending": "Bekliyor",
|
|
38
|
+
"neptune.Table.actionHeader": "Eylem",
|
|
39
|
+
"neptune.Table.emptyData": "Sonuç bulunamadı",
|
|
40
|
+
"neptune.Table.loaded": "Tablo verileri yüklendi",
|
|
41
|
+
"neptune.Table.loading": "Tablo verileri yükleniyor",
|
|
42
|
+
"neptune.Table.refreshPage": "Sayfayı yenile",
|
|
38
43
|
"neptune.Upload.csButtonText": "Başka bir dosya yükleyin?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Yükleme başarısız. Lütfen yine deneyin",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Yükleme tamamlandı!",
|
package/build/i18n/tr.json.js
CHANGED
|
@@ -37,6 +37,11 @@ var tr = {
|
|
|
37
37
|
"neptune.Summary.statusDone": "Tamamlanan aşama",
|
|
38
38
|
"neptune.Summary.statusNotDone": "Yapılacak",
|
|
39
39
|
"neptune.Summary.statusPending": "Bekliyor",
|
|
40
|
+
"neptune.Table.actionHeader": "Eylem",
|
|
41
|
+
"neptune.Table.emptyData": "Sonuç bulunamadı",
|
|
42
|
+
"neptune.Table.loaded": "Tablo verileri yüklendi",
|
|
43
|
+
"neptune.Table.loading": "Tablo verileri yükleniyor",
|
|
44
|
+
"neptune.Table.refreshPage": "Sayfayı yenile",
|
|
40
45
|
"neptune.Upload.csButtonText": "Başka bir dosya yükleyin?",
|
|
41
46
|
"neptune.Upload.csFailureText": "Yükleme başarısız. Lütfen yine deneyin",
|
|
42
47
|
"neptune.Upload.csSuccessText": "Yükleme tamamlandı!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tr.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/tr.json.mjs
CHANGED
|
@@ -35,6 +35,11 @@ var tr = {
|
|
|
35
35
|
"neptune.Summary.statusDone": "Tamamlanan aşama",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Yapılacak",
|
|
37
37
|
"neptune.Summary.statusPending": "Bekliyor",
|
|
38
|
+
"neptune.Table.actionHeader": "Eylem",
|
|
39
|
+
"neptune.Table.emptyData": "Sonuç bulunamadı",
|
|
40
|
+
"neptune.Table.loaded": "Tablo verileri yüklendi",
|
|
41
|
+
"neptune.Table.loading": "Tablo verileri yükleniyor",
|
|
42
|
+
"neptune.Table.refreshPage": "Sayfayı yenile",
|
|
38
43
|
"neptune.Upload.csButtonText": "Başka bir dosya yükleyin?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Yükleme başarısız. Lütfen yine deneyin",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Yükleme tamamlandı!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tr.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/index.js
CHANGED
|
@@ -153,7 +153,7 @@ Object.defineProperty(exports, "AvatarType", {
|
|
|
153
153
|
});
|
|
154
154
|
exports.Avatar = Avatar;
|
|
155
155
|
exports.AvatarView = AvatarView;
|
|
156
|
-
exports.
|
|
156
|
+
exports.AvatarLayout = AvatarLayout;
|
|
157
157
|
exports.AvatarWrapper = AvatarWrapper;
|
|
158
158
|
exports.Badge = Badge;
|
|
159
159
|
exports.StatusIcon = StatusIcon;
|
package/build/index.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export { default as Alert, AlertArrowPosition } from './alert/Alert.mjs';
|
|
|
7
7
|
export { AvatarType } from './avatar/avatarTypes.mjs';
|
|
8
8
|
export { default as Avatar } from './avatar/Avatar.mjs';
|
|
9
9
|
export { default as AvatarView } from './avatarView/AvatarView.mjs';
|
|
10
|
-
export { default as
|
|
10
|
+
export { default as AvatarLayout } from './avatarLayout/AvatarLayout.mjs';
|
|
11
11
|
export { default as AvatarWrapper } from './avatarWrapper/AvatarWrapper.mjs';
|
|
12
12
|
export { default as Badge } from './badge/Badge.mjs';
|
|
13
13
|
export { default as StatusIcon } from './statusIcon/StatusIcon.mjs';
|
|
@@ -6,6 +6,6 @@ export type Props = {
|
|
|
6
6
|
avatars: SingleAvatarType[];
|
|
7
7
|
orientation?: 'horizontal' | 'diagonal';
|
|
8
8
|
} & Pick<AvatarViewProps, 'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'>;
|
|
9
|
-
export default function AvatarLayout({ avatars, orientation, size, className, interactive, ...restProps }: Props): import("react").JSX.Element;
|
|
9
|
+
export default function AvatarLayout({ avatars, orientation: orientationProp, size, className, interactive, ...restProps }: Props): import("react").JSX.Element | null;
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=AvatarLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarLayout.d.ts","sourceRoot":"","sources":["../../../src/avatarLayout/AvatarLayout.tsx"],"names":[],"mappings":"AACA,OAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5D,KAAK,gBAAgB,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAAI,CACpE,eAAe,EACf,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAC5E,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,GAAG,IAAI,CACN,eAAe,EACf,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,OAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"AvatarLayout.d.ts","sourceRoot":"","sources":["../../../src/avatarLayout/AvatarLayout.tsx"],"names":[],"mappings":"AACA,OAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5D,KAAK,gBAAgB,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAAI,CACpE,eAAe,EACf,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAC5E,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,GAAG,IAAI,CACN,eAAe,EACf,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,OAAY,EACZ,WAAW,EAAE,eAA8B,EAC3C,IAAS,EACT,SAAS,EACT,WAAW,EACX,GAAG,SAAS,EACb,EAAE,KAAK,sCA8CP"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BadgeProps, BadgeAssetsProps } from '../badge';
|
|
2
2
|
import { HTMLAttributes } from 'react';
|
|
3
3
|
import { ProfileTypeBusiness, ProfileTypePersonal } from '../common';
|
|
4
|
-
export type AvatarViewBadgeProps = BadgeAssetsProps & Pick<BadgeProps, 'aria-label'> & {
|
|
4
|
+
export type AvatarViewBadgeProps = Omit<BadgeAssetsProps, 'size'> & Pick<BadgeProps, 'aria-label'> & {
|
|
5
5
|
/**
|
|
6
6
|
* Custom badge content
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../../src/avatarView/AvatarView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAe,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5E,OAAO,EAAE,cAAc,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAA4B,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM/F,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../../src/avatarView/AvatarView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAe,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5E,OAAO,EAAE,cAAc,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAA4B,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM/F,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC/D,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEJ,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;CAC3E,GAAG,IAAI,CACN,cAAc,CAAC,cAAc,CAAC,EAC9B,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa,CACrF,CAAC;AAEF,iBAAS,UAAU,CAAC,EAClB,QAAoB,EACpB,IAAS,EACT,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,WAAmB,EACnB,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,GAAG,SAAS,EACb,EAAE,KAAK,+BA+BP;AAwFD,eAAe,UAAU,CAAC"}
|
package/build/types/index.d.ts
CHANGED
|
@@ -78,7 +78,7 @@ export { default as SelectOption } from './selectOption';
|
|
|
78
78
|
export { default as Alert } from './alert';
|
|
79
79
|
export { default as Avatar } from './avatar';
|
|
80
80
|
export { default as AvatarView } from './avatarView';
|
|
81
|
-
export { default as
|
|
81
|
+
export { default as AvatarLayout } from './avatarLayout';
|
|
82
82
|
export { default as AvatarWrapper } from './avatarWrapper';
|
|
83
83
|
export { default as Badge } from './badge';
|
|
84
84
|
export { default as Body } from './body';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":"AAEA,OAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW3E,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,qBAAqB,EAAE,CAAC;QAChD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,KAAK,IAAI,CAAC;KACtE,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH;AAED,QAAA,MAAM,KAAK,uFAOR,UAAU,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":"AAEA,OAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW3E,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,qBAAqB,EAAE,CAAC;QAChD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,KAAK,IAAI,CAAC;KACtE,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH;AAED,QAAA,MAAM,KAAK,uFAOR,UAAU,gCA6HZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transferwise/components",
|
|
3
|
-
"version": "46.83.
|
|
3
|
+
"version": "46.83.2",
|
|
4
4
|
"description": "Neptune React components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"storybook": "^8.2.2",
|
|
94
94
|
"@transferwise/less-config": "3.1.0",
|
|
95
95
|
"@wise/components-theming": "1.6.1",
|
|
96
|
-
"@transferwise/neptune-css": "14.20.
|
|
96
|
+
"@transferwise/neptune-css": "14.20.1"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
99
|
"@transferwise/icons": "^3.13.1",
|
|
@@ -192,6 +192,14 @@ export const EdgeInstances: Story = {
|
|
|
192
192
|
gridTemplate: `auto auto / repeat(2, min-content)`,
|
|
193
193
|
}}
|
|
194
194
|
>
|
|
195
|
+
<AvatarLayout orientation="diagonal" avatars={[]} />
|
|
196
|
+
|
|
197
|
+
<AvatarLayout orientation="diagonal" avatars={[{}]} />
|
|
198
|
+
|
|
199
|
+
<AvatarLayout orientation="diagonal" avatars={[{ profileName: 'Jay Jay' }]} />
|
|
200
|
+
|
|
201
|
+
<AvatarLayout orientation="diagonal" avatars={[{ asset: <Flag code="gb" /> }]} />
|
|
202
|
+
|
|
195
203
|
<AvatarLayout
|
|
196
204
|
orientation="diagonal"
|
|
197
205
|
avatars={[{ asset: <Flag code="gb" /> }, { asset: <Flag code="jp" /> }]}
|
|
@@ -16,15 +16,19 @@ export type Props = {
|
|
|
16
16
|
|
|
17
17
|
export default function AvatarLayout({
|
|
18
18
|
avatars = [],
|
|
19
|
-
orientation = 'horizontal',
|
|
19
|
+
orientation: orientationProp = 'horizontal',
|
|
20
20
|
size = 48,
|
|
21
21
|
className,
|
|
22
22
|
interactive,
|
|
23
23
|
...restProps
|
|
24
24
|
}: Props) {
|
|
25
|
+
const orientation =
|
|
26
|
+
size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;
|
|
25
27
|
const isDiagonal = orientation === 'diagonal';
|
|
26
28
|
const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;
|
|
27
|
-
return (
|
|
29
|
+
return avatars.length < 1 ? null : avatars.length === 1 ? (
|
|
30
|
+
<AvatarView {...avatars[0]}>{avatars[0].asset}</AvatarView>
|
|
31
|
+
) : (
|
|
28
32
|
<div
|
|
29
33
|
className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}
|
|
30
34
|
style={{
|
|
@@ -35,34 +39,32 @@ export default function AvatarLayout({
|
|
|
35
39
|
}}
|
|
36
40
|
{...restProps}
|
|
37
41
|
>
|
|
38
|
-
{avatars.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
</div>
|
|
65
|
-
))}
|
|
42
|
+
{avatars.map(({ asset, style, ...avatar }, index) => (
|
|
43
|
+
<div
|
|
44
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
45
|
+
key={index}
|
|
46
|
+
className={clsx(
|
|
47
|
+
{ [`np-avatar-layout-${orientation}-child`]: index !== 0 },
|
|
48
|
+
{ [`np-avatar-layout-${orientation}-mask`]: index !== avatars.length - 1 },
|
|
49
|
+
)}
|
|
50
|
+
>
|
|
51
|
+
<AvatarView
|
|
52
|
+
{...avatar}
|
|
53
|
+
size={avatarSize as Props['size']}
|
|
54
|
+
style={{
|
|
55
|
+
...(isDiagonal && {
|
|
56
|
+
'--circle-size': `${avatarSize}px`,
|
|
57
|
+
'--circle-icon-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].iconSize}px`,
|
|
58
|
+
'--circle-font-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].fontSize}px`,
|
|
59
|
+
}),
|
|
60
|
+
...style,
|
|
61
|
+
}}
|
|
62
|
+
interactive={interactive}
|
|
63
|
+
>
|
|
64
|
+
{asset}
|
|
65
|
+
</AvatarView>
|
|
66
|
+
</div>
|
|
67
|
+
))}
|
|
66
68
|
</div>
|
|
67
69
|
);
|
|
68
70
|
}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Profile as PersonalProfileIcon,
|
|
11
11
|
} from '@transferwise/icons';
|
|
12
12
|
|
|
13
|
-
export type AvatarViewBadgeProps = BadgeAssetsProps &
|
|
13
|
+
export type AvatarViewBadgeProps = Omit<BadgeAssetsProps, 'size'> &
|
|
14
14
|
Pick<BadgeProps, 'aria-label'> & {
|
|
15
15
|
/**
|
|
16
16
|
* Custom badge content
|
package/src/i18n/es.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"neptune.Summary.statusNotDone": "Apartado a completar",
|
|
37
37
|
"neptune.Summary.statusPending": "Apartado pendiente",
|
|
38
38
|
"neptune.Table.actionHeader": "Acción",
|
|
39
|
-
"neptune.Table.emptyData": "
|
|
39
|
+
"neptune.Table.emptyData": "Ningún resultado",
|
|
40
40
|
"neptune.Table.loaded": "Los datos de la tabla se han cargado",
|
|
41
41
|
"neptune.Table.loading": "Los datos de la tabla se están cargando",
|
|
42
42
|
"neptune.Table.refreshPage": "Actualizar página",
|
package/src/i18n/hu.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Kész",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Hátravan",
|
|
37
37
|
"neptune.Summary.statusPending": "Függőben",
|
|
38
|
+
"neptune.Table.actionHeader": "Művelet",
|
|
39
|
+
"neptune.Table.emptyData": "Nincs találat",
|
|
40
|
+
"neptune.Table.loaded": "Táblázatadatok betöltve",
|
|
41
|
+
"neptune.Table.loading": "Táblázatadatok betöltése folyamatban",
|
|
42
|
+
"neptune.Table.refreshPage": "Oldal frissítése",
|
|
38
43
|
"neptune.Upload.csButtonText": "Másik fájl feltöltése?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Feltöltés sikertelen. Kérünk, próbáld újra",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Feltöltés sikeres",
|
package/src/i18n/id.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Item selesai",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Item yang harus dilakukan",
|
|
37
37
|
"neptune.Summary.statusPending": "Item tertunda",
|
|
38
|
+
"neptune.Table.actionHeader": "Tindakan",
|
|
39
|
+
"neptune.Table.emptyData": "Hasil tidak ditemukan",
|
|
40
|
+
"neptune.Table.loaded": "Data tabel telah dimuat",
|
|
41
|
+
"neptune.Table.loading": "Data tabel sedang dimuat",
|
|
42
|
+
"neptune.Table.refreshPage": "Muat ulang halaman",
|
|
38
43
|
"neptune.Upload.csButtonText": "Unggah file lainnya?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Unggahan gagal. Silakan coba lagi",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Pengunggahan selesai!",
|
package/src/i18n/ja.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "完了",
|
|
36
36
|
"neptune.Summary.statusNotDone": "未完了",
|
|
37
37
|
"neptune.Summary.statusPending": "保留中",
|
|
38
|
+
"neptune.Table.actionHeader": "アクション",
|
|
39
|
+
"neptune.Table.emptyData": "結果が見つかりませんでした",
|
|
40
|
+
"neptune.Table.loaded": "テーブルデータが読み込まれました",
|
|
41
|
+
"neptune.Table.loading": "テーブルデータを読み込み中です",
|
|
42
|
+
"neptune.Table.refreshPage": "ページを更新する",
|
|
38
43
|
"neptune.Upload.csButtonText": "別のファイルをアップロードしますか?",
|
|
39
44
|
"neptune.Upload.csFailureText": "アップロードに失敗しました。もう一度やり直してください。",
|
|
40
45
|
"neptune.Upload.csSuccessText": "アップロードが完了しました。",
|
package/src/i18n/pl.json
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Czynność wykonana",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Czynność do wykonania",
|
|
37
37
|
"neptune.Summary.statusPending": "Czynność oczekująca",
|
|
38
|
-
"neptune.Table.actionHeader": "
|
|
38
|
+
"neptune.Table.actionHeader": "Działanie",
|
|
39
39
|
"neptune.Table.emptyData": "Nie znaleziono wyników",
|
|
40
40
|
"neptune.Table.loaded": "Wczytano dane tabeli",
|
|
41
41
|
"neptune.Table.loading": "Wczytywanie danych tabeli",
|
package/src/i18n/tr.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Tamamlanan aşama",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Yapılacak",
|
|
37
37
|
"neptune.Summary.statusPending": "Bekliyor",
|
|
38
|
+
"neptune.Table.actionHeader": "Eylem",
|
|
39
|
+
"neptune.Table.emptyData": "Sonuç bulunamadı",
|
|
40
|
+
"neptune.Table.loaded": "Tablo verileri yüklendi",
|
|
41
|
+
"neptune.Table.loading": "Tablo verileri yükleniyor",
|
|
42
|
+
"neptune.Table.refreshPage": "Sayfayı yenile",
|
|
38
43
|
"neptune.Upload.csButtonText": "Başka bir dosya yükleyin?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Yükleme başarısız. Lütfen yine deneyin",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Yükleme tamamlandı!",
|
package/src/index.ts
CHANGED
|
@@ -106,7 +106,7 @@ export { default as SelectOption } from './selectOption';
|
|
|
106
106
|
export { default as Alert } from './alert';
|
|
107
107
|
export { default as Avatar } from './avatar';
|
|
108
108
|
export { default as AvatarView } from './avatarView';
|
|
109
|
-
export { default as
|
|
109
|
+
export { default as AvatarLayout } from './avatarLayout';
|
|
110
110
|
export { default as AvatarWrapper } from './avatarWrapper';
|
|
111
111
|
export { default as Badge } from './badge';
|
|
112
112
|
export { default as Body } from './body';
|
package/src/table/Table.tsx
CHANGED
|
@@ -41,6 +41,7 @@ const Table = ({
|
|
|
41
41
|
}: TableProps) => {
|
|
42
42
|
const { formatMessage } = useIntl();
|
|
43
43
|
const { theme } = useTheme();
|
|
44
|
+
const isEmptyHeader = loading ?? (data?.headers && !data?.headers.length);
|
|
44
45
|
|
|
45
46
|
const getRowLength = () => {
|
|
46
47
|
const columnsLength = data?.headers?.length ?? 0;
|
|
@@ -124,9 +125,9 @@ const Table = ({
|
|
|
124
125
|
>
|
|
125
126
|
<div className="np-table-inner-container">
|
|
126
127
|
<table className="np-table">
|
|
127
|
-
<thead
|
|
128
|
+
<thead aria-hidden={isEmptyHeader}>
|
|
128
129
|
<tr>
|
|
129
|
-
{
|
|
130
|
+
{isEmptyHeader ? (
|
|
130
131
|
<TableHeader />
|
|
131
132
|
) : (
|
|
132
133
|
data?.headers?.map((headerItem: TableHeaderType, index) => (
|