@salutejs/plasma-new-hope 0.76.3-canary.1180.8720362393.0 → 0.76.3-canary.1180.8732245904.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -38,21 +38,15 @@ var getAvatarContent = function getAvatarContent(_ref) {
38
38
  return /*#__PURE__*/React.createElement(Avatar_styles.Text, null, initials);
39
39
  };
40
40
  var getAriaLabel = function getAriaLabel(props) {
41
- var customText = props.customText,
42
- url = props.url,
41
+ var url = props.url,
43
42
  name = props.name,
44
43
  status = props.status,
45
44
  ariaLabelProp = props['aria-label'],
46
45
  role = props.role,
47
46
  statusDict = props.statusDict;
48
47
 
49
- // INFO: В этих сценариях aria-label не нужен
50
- if (customText || !role || role !== 'button') {
51
- return undefined;
52
- }
53
-
54
48
  // INFO: включаем aria-label чтобы озвучить что на изображении
55
- if (url) {
49
+ if (url && role && role === 'button') {
56
50
  var ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;
57
51
  return status ? "".concat(ariaLabel, ". ").concat(statusDict[status]) : ariaLabel;
58
52
  }
@@ -98,7 +92,7 @@ var avatarRoot = function avatarRoot(Root) {
98
92
  return getAriaLabel(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, props), {}, {
99
93
  statusDict: statusDict
100
94
  }));
101
- }, [name, url, rest.role, status, customText, statusDict, rest['aria-label']]);
95
+ }, [name, url, rest.role, status, statusDict, rest['aria-label']]);
102
96
  return /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
103
97
  ref: ref,
104
98
  size: avatarSize,
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, ReactElement } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component, mergeConfig } from '../../engines';\nimport { cx } from '../../utils';\nimport { indicatorConfig, indicatorTokens } from '../Indicator';\n\nimport { classes, tokens } from './Avatar.tokens';\nimport { base, Wrapper, Image, StatusIcon, Text } from './Avatar.styles';\nimport { base as viewCSS } from './variations/_size/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { getInitialsForName } from './utils';\nimport type { AvatarProps, StatusDict } from './Avatar.types';\n\nconst StatusDictDefault = {\n active: 'Активен',\n inactive: 'Неактивен',\n};\n\nconst getAvatarContent = ({\n customText,\n url,\n initials,\n name,\n}: Omit<AvatarProps, 'size'> & { initials?: string }): ReactElement => {\n if (customText) {\n return <Text>{customText}</Text>;\n }\n\n if (url) {\n return <Image src={url} alt={name} />;\n }\n\n return <Text>{initials}</Text>;\n};\n\nconst getAriaLabel = (\n props: Pick<AvatarProps, 'url' | 'status' | 'role' | 'name' | 'customText' | 'aria-label'> & {\n statusDict: StatusDict;\n },\n) => {\n const { customText, url, name, status, 'aria-label': ariaLabelProp, role, statusDict } = props;\n\n // INFO: В этих сценариях aria-label не нужен\n if (customText || !role || role !== 'button') {\n return undefined;\n }\n\n // INFO: включаем aria-label чтобы озвучить что на изображении\n if (url) {\n const ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;\n\n return status ? `${ariaLabel}. ${statusDict[status]}` : ariaLabel;\n }\n\n return undefined;\n};\n\nconst mergedConfig = mergeConfig(indicatorConfig);\n\nconst Indicator: React.FunctionComponent<\n React.HTMLAttributes<HTMLDivElement> & { status: AvatarProps['status'] }\n> = component(mergedConfig) as never;\n\nconst StyledIndicator = styled(Indicator)`\n ${indicatorTokens.size}: var(${tokens.statusIconSize});\n ${indicatorTokens.color}: ${({ status }) =>\n status === 'active' ? `var(${tokens.statusOnlineColor})` : `var(${tokens.statusOfflineColor})`}\n`;\n\nexport const avatarRoot = (Root: RootProps<HTMLDivElement, AvatarProps>) => {\n return forwardRef<HTMLDivElement, AvatarProps>((props, ref) => {\n const {\n size: avatarSize,\n name,\n url,\n customText,\n status,\n className,\n focused = true,\n isScalable,\n statusDict = StatusDictDefault,\n ...rest\n } = props;\n\n const initials = useMemo(() => getInitialsForName(name), [name]);\n const ariaLabel = useMemo(\n () =>\n getAriaLabel({\n ...props,\n statusDict,\n }),\n [name, url, rest.role, status, customText, statusDict, rest['aria-label']],\n );\n\n return (\n <Root\n ref={ref}\n size={avatarSize}\n className={cx(classes.avatarItem, className)}\n aria-label={ariaLabel}\n focused={focused}\n {...rest}\n >\n <Wrapper isScalable={isScalable}>{getAvatarContent({ customText, url, initials, name })}</Wrapper>\n\n {status && (\n <StatusIcon>\n <StyledIndicator aria-label={statusDict[status]} status={status} />\n </StatusIcon>\n )}\n </Root>\n );\n });\n};\n\nexport const avatarConfig = {\n name: 'Avatar',\n tag: 'div',\n layout: avatarRoot,\n base,\n variations: {\n size: {\n css: viewCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n },\n};\n"],"names":["StatusDictDefault","active","inactive","getAvatarContent","_ref","customText","url","initials","name","React","createElement","Text","Image","src","alt","getAriaLabel","props","status","ariaLabelProp","role","statusDict","undefined","ariaLabel","trim","concat","mergedConfig","mergeConfig","indicatorConfig","Indicator","component","_exp","_exp5","_ref2","tokens","statusOnlineColor","statusOfflineColor","StyledIndicator","styled","class","propsAsIs","vars","avatarRoot","Root","forwardRef","ref","avatarSize","size","className","_props$focused","focused","isScalable","_props$statusDict","rest","_excluded","useMemo","getInitialsForName","_objectSpread","_extends","cx","classes","avatarItem","Wrapper","StatusIcon","avatarConfig","tag","layout","base","variations","css","viewCSS","focusedCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, ReactElement } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component, mergeConfig } from '../../engines';\nimport { cx } from '../../utils';\nimport { indicatorConfig, indicatorTokens } from '../Indicator';\n\nimport { classes, tokens } from './Avatar.tokens';\nimport { base, Wrapper, Image, StatusIcon, Text } from './Avatar.styles';\nimport { base as viewCSS } from './variations/_size/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { getInitialsForName } from './utils';\nimport type { AvatarProps, StatusDict } from './Avatar.types';\n\nconst StatusDictDefault = {\n active: 'Активен',\n inactive: 'Неактивен',\n};\n\nconst getAvatarContent = ({\n customText,\n url,\n initials,\n name,\n}: Omit<AvatarProps, 'size'> & { initials?: string }): ReactElement => {\n if (customText) {\n return <Text>{customText}</Text>;\n }\n\n if (url) {\n return <Image src={url} alt={name} />;\n }\n\n return <Text>{initials}</Text>;\n};\n\nconst getAriaLabel = (\n props: Pick<AvatarProps, 'url' | 'status' | 'role' | 'name' | 'aria-label'> & {\n statusDict: StatusDict;\n },\n) => {\n const { url, name, status, 'aria-label': ariaLabelProp, role, statusDict } = props;\n\n // INFO: включаем aria-label чтобы озвучить что на изображении\n if (url && role && role === 'button') {\n const ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;\n\n return status ? `${ariaLabel}. ${statusDict[status]}` : ariaLabel;\n }\n\n return undefined;\n};\n\nconst mergedConfig = mergeConfig(indicatorConfig);\n\nconst Indicator: React.FunctionComponent<\n React.HTMLAttributes<HTMLDivElement> & { status: AvatarProps['status'] }\n> = component(mergedConfig) as never;\n\nconst StyledIndicator = styled(Indicator)`\n ${indicatorTokens.size}: var(${tokens.statusIconSize});\n ${indicatorTokens.color}: ${({ status }) =>\n status === 'active' ? `var(${tokens.statusOnlineColor})` : `var(${tokens.statusOfflineColor})`}\n`;\n\nexport const avatarRoot = (Root: RootProps<HTMLDivElement, AvatarProps>) => {\n return forwardRef<HTMLDivElement, AvatarProps>((props, ref) => {\n const {\n size: avatarSize,\n name,\n url,\n customText,\n status,\n className,\n focused = true,\n isScalable,\n statusDict = StatusDictDefault,\n ...rest\n } = props;\n\n const initials = useMemo(() => getInitialsForName(name), [name]);\n const ariaLabel = useMemo(\n () =>\n getAriaLabel({\n ...props,\n statusDict,\n }),\n [name, url, rest.role, status, statusDict, rest['aria-label']],\n );\n\n return (\n <Root\n ref={ref}\n size={avatarSize}\n className={cx(classes.avatarItem, className)}\n aria-label={ariaLabel}\n focused={focused}\n {...rest}\n >\n <Wrapper isScalable={isScalable}>{getAvatarContent({ customText, url, initials, name })}</Wrapper>\n\n {status && (\n <StatusIcon>\n <StyledIndicator aria-label={statusDict[status]} status={status} />\n </StatusIcon>\n )}\n </Root>\n );\n });\n};\n\nexport const avatarConfig = {\n name: 'Avatar',\n tag: 'div',\n layout: avatarRoot,\n base,\n variations: {\n size: {\n css: viewCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n },\n};\n"],"names":["StatusDictDefault","active","inactive","getAvatarContent","_ref","customText","url","initials","name","React","createElement","Text","Image","src","alt","getAriaLabel","props","status","ariaLabelProp","role","statusDict","ariaLabel","trim","concat","undefined","mergedConfig","mergeConfig","indicatorConfig","Indicator","component","_exp","_exp5","_ref2","tokens","statusOnlineColor","statusOfflineColor","StyledIndicator","styled","class","propsAsIs","vars","avatarRoot","Root","forwardRef","ref","avatarSize","size","className","_props$focused","focused","isScalable","_props$statusDict","rest","_excluded","useMemo","getInitialsForName","_objectSpread","_extends","cx","classes","avatarItem","Wrapper","StatusIcon","avatarConfig","tag","layout","base","variations","css","viewCSS","focusedCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,IAAMA,iBAAiB,GAAG;AACtBC,EAAAA,MAAM,EAAE,SAAS;AACjBC,EAAAA,QAAQ,EAAE,WAAA;AACd,CAAC,CAAA;AAED,IAAMC,gBAAgB,GAAGA,SAAnBA,gBAAgBA,CAAAC,IAAA,EAKiD;AAAA,EAAA,IAJnEC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,IAAAA,GAAAA,IAAAA,CAAAA,IAAAA,CAAAA;AAEA,EAAA,IAAIH,UAAU,EAAE;AACZ,IAAA,oBAAOI,KAAA,CAAAC,aAAA,CAACC,kBAAI,EAAA,IAAA,EAAEN,UAAiB,CAAC,CAAA;AACpC,GAAA;AAEA,EAAA,IAAIC,GAAG,EAAE;AACL,IAAA,oBAAOG,KAAA,CAAAC,aAAA,CAACE,mBAAK,EAAA;AAACC,MAAAA,GAAG,EAAEP,GAAI;AAACQ,MAAAA,GAAG,EAAEN,IAAAA;AAAK,KAAG,CAAA,CAAA;AACzC,GAAA;AAEA,EAAA,oBAAOC,KAAA,CAAAC,aAAA,CAACC,kBAAI,EAAA,IAAA,EAAEJ,QAAe,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,IAAMQ,YAAY,GAAGA,SAAfA,YAAYA,CACdC,KAEC,EACA;AACD,EAAA,IAAQV,GAAG,GAAkEU,KAAK,CAA1EV,GAAG;IAAEE,IAAI,GAA4DQ,KAAK,CAArER,IAAI;IAAES,MAAM,GAAoDD,KAAK,CAA/DC,MAAM;IAAgBC,aAAa,GAAuBF,KAAK,CAAvD,YAAY,CAAA;IAAiBG,IAAI,GAAiBH,KAAK,CAA1BG,IAAI;IAAEC,UAAAA,GAAeJ,KAAK,CAApBI,UAAAA,CAAAA;;AAE9D;AACA,EAAA,IAAId,GAAG,IAAIa,IAAI,IAAIA,IAAI,KAAK,QAAQ,EAAE;AAClC,IAAA,IAAME,SAAS,GAAG,CAACH,aAAa,IAAIA,aAAa,CAACI,IAAI,EAAE,KAAK,EAAE,GAAGd,IAAI,GAAGU,aAAa,CAAA;AAEtF,IAAA,OAAOD,MAAM,GAAA,EAAA,CAAAM,MAAA,CAAMF,SAAU,EAAA,IAAA,CAAA,CAAAE,MAAA,CAAIH,UAAU,CAACH,MAAM,CAAE,IAAII,SAAS,CAAA;AACrE,GAAA;AAEA,EAAA,OAAOG,SAAS,CAAA;AACpB,CAAC,CAAA;AAED,IAAMC,YAAY,gBAAGC,kBAAW,CAACC,2BAAe,CAAC,CAAA;AAEjD,IAAMC,SAEL,gBAAGC,gBAAS,CAACJ,YAAY,CAAU,CAAA;AAAC,IAAAK,IAAA,GAxDnBA,SAwDmBA,IAAAA,GAAA;AAAA,EAAA,OAENF,SAAS,CAAA;AAAA,CAAA,CAAA;AAAA,IAAAG,KAAA,GA1DtBA,SA0DsBA,KAAAA,GAAA;AAAA,EAAA,OAER,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGf,MAAAA,GAAAA,KAAAA,CAAAA,MAAAA,CAAAA;AAAAA,IAAAA,OAC/BA,MAAM,KAAK,QAAQ,GAAA,MAAA,CAAAM,MAAA,CAAUU,oBAAM,CAACC,iBAAkB,gBAAAX,MAAA,CAAYU,oBAAM,CAACE,kBAAmB,EAAE,GAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAHlG,IAAMC,eAAe,gBAAGC,YAAM,CAAAP,IAAA,EAAA,CAAA,CAAA;AAAAtB,EAAAA,IAAA,EAAA,iBAAA;AAAA8B,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,WAAA,EAAA,cAEET,KACkE,EAAA,CAAA;AAAA,GAAA;AAAA,CACjG,CAAA,CAAA;IAEYU,UAAU,GAAGA,SAAbA,UAAUA,CAAIC,IAA4C,EAAK;AACxE,EAAA,oBAAOC,gBAAU,CAA8B,UAAC3B,KAAK,EAAE4B,GAAG,EAAK;AAC3D,IAAA,IACUC,UAAU,GAUhB7B,KAAK,CAVL8B,IAAI;MACJtC,IAAI,GASJQ,KAAK,CATLR,IAAI;MACJF,GAAG,GAQHU,KAAK,CARLV,GAAG;MACHD,UAAU,GAOVW,KAAK,CAPLX,UAAU;MACVY,MAAM,GAMND,KAAK,CANLC,MAAM;MACN8B,SAAS,GAKT/B,KAAK,CALL+B,SAAS;MAAAC,cAAA,GAKThC,KAAK,CAJLiC,OAAO;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,cAAA;MACdE,UAAU,GAGVlC,KAAK,CAHLkC,UAAU;MAAAC,iBAAA,GAGVnC,KAAK,CAFLI,UAAU;AAAVA,MAAAA,UAAU,GAAA+B,iBAAA,KAAGnD,KAAAA,CAAAA,GAAAA,iBAAiB,GAAAmD,iBAAA;AAC3BC,MAAAA,IAAAA,GAAAA,iDAAAA,CACHpC,KAAK,EAAAqC,SAAA,CAAA,CAAA;IAET,IAAM9C,QAAQ,GAAG+C,aAAO,CAAC,YAAA;MAAA,OAAMC,qCAAkB,CAAC/C,IAAI,CAAC,CAAA;KAAE,EAAA,CAACA,IAAI,CAAC,CAAC,CAAA;IAChE,IAAMa,SAAS,GAAGiC,aAAO,CACrB,YAAA;AAAA,MAAA,OACIvC,YAAY,CAAAyC,uCAAA,CAAAA,uCAAA,KACLxC,KAAK,CAAA,EAAA,EAAA,EAAA;AACRI,QAAAA,UAAAA,EAAAA,UAAAA;AAAAA,OAAAA,CACH,CAAC,CAAA;AAAA,KAAA,EACN,CAACZ,IAAI,EAAEF,GAAG,EAAE8C,IAAI,CAACjC,IAAI,EAAEF,MAAM,EAAEG,UAAU,EAAEgC,IAAI,CAAC,YAAY,CAAC,CACjE,CAAC,CAAA;AAED,IAAA,oBACI3C,KAAA,CAAAC,aAAA,CAACgC,IAAI,EAAAe,iCAAA,CAAA;AACDb,MAAAA,GAAG,EAAEA,GAAI;AACTE,MAAAA,IAAI,EAAED,UAAW;MACjBE,SAAS,EAAEW,QAAE,CAACC,qBAAO,CAACC,UAAU,EAAEb,SAAS,CAAE;AAC7C,MAAA,YAAA,EAAY1B,SAAU;AACtB4B,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAA,EACbG,IAAI,CAER3C,eAAAA,KAAA,CAAAC,aAAA,CAACmD,qBAAO,EAAA;AAACX,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAA,EAAE/C,gBAAgB,CAAC;AAAEE,MAAAA,UAAU,EAAVA,UAAU;AAAEC,MAAAA,GAAG,EAAHA,GAAG;AAAEC,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,IAAAA,EAAAA,IAAAA;AAAK,KAAC,CAAW,CAAA,EAEhGS,MAAM,iBACHR,KAAA,CAAAC,aAAA,CAACoD,wBAAU,EACPrD,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAAC0B,eAAe,EAAA;MAAC,YAAYhB,EAAAA,UAAU,CAACH,MAAM,CAAE;AAACA,MAAAA,MAAM,EAAEA,MAAAA;KAAO,CACxD,CAEd,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AACN,EAAC;AAEM,IAAM8C,YAAY,GAAG;AACxBvD,EAAAA,IAAI,EAAE,QAAQ;AACdwD,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAExB,UAAU;AAClByB,EAAAA,IAAI,EAAJA,kBAAI;AACJC,EAAAA,UAAU,EAAE;AACRrB,IAAAA,IAAI,EAAE;AACFsB,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDpB,IAAAA,OAAO,EAAE;AACLmB,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNzB,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
@@ -34,21 +34,15 @@ var getAvatarContent = function getAvatarContent(_ref) {
34
34
  return /*#__PURE__*/React.createElement(Text, null, initials);
35
35
  };
36
36
  var getAriaLabel = function getAriaLabel(props) {
37
- var customText = props.customText,
38
- url = props.url,
37
+ var url = props.url,
39
38
  name = props.name,
40
39
  status = props.status,
41
40
  ariaLabelProp = props['aria-label'],
42
41
  role = props.role,
43
42
  statusDict = props.statusDict;
44
43
 
45
- // INFO: В этих сценариях aria-label не нужен
46
- if (customText || !role || role !== 'button') {
47
- return undefined;
48
- }
49
-
50
44
  // INFO: включаем aria-label чтобы озвучить что на изображении
51
- if (url) {
45
+ if (url && role && role === 'button') {
52
46
  var ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;
53
47
  return status ? "".concat(ariaLabel, ". ").concat(statusDict[status]) : ariaLabel;
54
48
  }
@@ -94,7 +88,7 @@ var avatarRoot = function avatarRoot(Root) {
94
88
  return getAriaLabel(_objectSpread2(_objectSpread2({}, props), {}, {
95
89
  statusDict: statusDict
96
90
  }));
97
- }, [name, url, rest.role, status, customText, statusDict, rest['aria-label']]);
91
+ }, [name, url, rest.role, status, statusDict, rest['aria-label']]);
98
92
  return /*#__PURE__*/React.createElement(Root, _extends({
99
93
  ref: ref,
100
94
  size: avatarSize,
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, ReactElement } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component, mergeConfig } from '../../engines';\nimport { cx } from '../../utils';\nimport { indicatorConfig, indicatorTokens } from '../Indicator';\n\nimport { classes, tokens } from './Avatar.tokens';\nimport { base, Wrapper, Image, StatusIcon, Text } from './Avatar.styles';\nimport { base as viewCSS } from './variations/_size/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { getInitialsForName } from './utils';\nimport type { AvatarProps, StatusDict } from './Avatar.types';\n\nconst StatusDictDefault = {\n active: 'Активен',\n inactive: 'Неактивен',\n};\n\nconst getAvatarContent = ({\n customText,\n url,\n initials,\n name,\n}: Omit<AvatarProps, 'size'> & { initials?: string }): ReactElement => {\n if (customText) {\n return <Text>{customText}</Text>;\n }\n\n if (url) {\n return <Image src={url} alt={name} />;\n }\n\n return <Text>{initials}</Text>;\n};\n\nconst getAriaLabel = (\n props: Pick<AvatarProps, 'url' | 'status' | 'role' | 'name' | 'customText' | 'aria-label'> & {\n statusDict: StatusDict;\n },\n) => {\n const { customText, url, name, status, 'aria-label': ariaLabelProp, role, statusDict } = props;\n\n // INFO: В этих сценариях aria-label не нужен\n if (customText || !role || role !== 'button') {\n return undefined;\n }\n\n // INFO: включаем aria-label чтобы озвучить что на изображении\n if (url) {\n const ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;\n\n return status ? `${ariaLabel}. ${statusDict[status]}` : ariaLabel;\n }\n\n return undefined;\n};\n\nconst mergedConfig = mergeConfig(indicatorConfig);\n\nconst Indicator: React.FunctionComponent<\n React.HTMLAttributes<HTMLDivElement> & { status: AvatarProps['status'] }\n> = component(mergedConfig) as never;\n\nconst StyledIndicator = styled(Indicator)`\n ${indicatorTokens.size}: var(${tokens.statusIconSize});\n ${indicatorTokens.color}: ${({ status }) =>\n status === 'active' ? `var(${tokens.statusOnlineColor})` : `var(${tokens.statusOfflineColor})`}\n`;\n\nexport const avatarRoot = (Root: RootProps<HTMLDivElement, AvatarProps>) => {\n return forwardRef<HTMLDivElement, AvatarProps>((props, ref) => {\n const {\n size: avatarSize,\n name,\n url,\n customText,\n status,\n className,\n focused = true,\n isScalable,\n statusDict = StatusDictDefault,\n ...rest\n } = props;\n\n const initials = useMemo(() => getInitialsForName(name), [name]);\n const ariaLabel = useMemo(\n () =>\n getAriaLabel({\n ...props,\n statusDict,\n }),\n [name, url, rest.role, status, customText, statusDict, rest['aria-label']],\n );\n\n return (\n <Root\n ref={ref}\n size={avatarSize}\n className={cx(classes.avatarItem, className)}\n aria-label={ariaLabel}\n focused={focused}\n {...rest}\n >\n <Wrapper isScalable={isScalable}>{getAvatarContent({ customText, url, initials, name })}</Wrapper>\n\n {status && (\n <StatusIcon>\n <StyledIndicator aria-label={statusDict[status]} status={status} />\n </StatusIcon>\n )}\n </Root>\n );\n });\n};\n\nexport const avatarConfig = {\n name: 'Avatar',\n tag: 'div',\n layout: avatarRoot,\n base,\n variations: {\n size: {\n css: viewCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n },\n};\n"],"names":["StatusDictDefault","active","inactive","getAvatarContent","_ref","customText","url","initials","name","React","createElement","Text","Image","src","alt","getAriaLabel","props","status","ariaLabelProp","role","statusDict","undefined","ariaLabel","trim","concat","mergedConfig","mergeConfig","indicatorConfig","Indicator","component","_exp","_exp5","_ref2","tokens","statusOnlineColor","statusOfflineColor","StyledIndicator","styled","class","propsAsIs","vars","avatarRoot","Root","forwardRef","ref","avatarSize","size","className","_props$focused","focused","isScalable","_props$statusDict","rest","_excluded","useMemo","getInitialsForName","_objectSpread","_extends","cx","classes","avatarItem","Wrapper","StatusIcon","avatarConfig","tag","layout","base","variations","css","viewCSS","focusedCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, ReactElement } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component, mergeConfig } from '../../engines';\nimport { cx } from '../../utils';\nimport { indicatorConfig, indicatorTokens } from '../Indicator';\n\nimport { classes, tokens } from './Avatar.tokens';\nimport { base, Wrapper, Image, StatusIcon, Text } from './Avatar.styles';\nimport { base as viewCSS } from './variations/_size/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { getInitialsForName } from './utils';\nimport type { AvatarProps, StatusDict } from './Avatar.types';\n\nconst StatusDictDefault = {\n active: 'Активен',\n inactive: 'Неактивен',\n};\n\nconst getAvatarContent = ({\n customText,\n url,\n initials,\n name,\n}: Omit<AvatarProps, 'size'> & { initials?: string }): ReactElement => {\n if (customText) {\n return <Text>{customText}</Text>;\n }\n\n if (url) {\n return <Image src={url} alt={name} />;\n }\n\n return <Text>{initials}</Text>;\n};\n\nconst getAriaLabel = (\n props: Pick<AvatarProps, 'url' | 'status' | 'role' | 'name' | 'aria-label'> & {\n statusDict: StatusDict;\n },\n) => {\n const { url, name, status, 'aria-label': ariaLabelProp, role, statusDict } = props;\n\n // INFO: включаем aria-label чтобы озвучить что на изображении\n if (url && role && role === 'button') {\n const ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;\n\n return status ? `${ariaLabel}. ${statusDict[status]}` : ariaLabel;\n }\n\n return undefined;\n};\n\nconst mergedConfig = mergeConfig(indicatorConfig);\n\nconst Indicator: React.FunctionComponent<\n React.HTMLAttributes<HTMLDivElement> & { status: AvatarProps['status'] }\n> = component(mergedConfig) as never;\n\nconst StyledIndicator = styled(Indicator)`\n ${indicatorTokens.size}: var(${tokens.statusIconSize});\n ${indicatorTokens.color}: ${({ status }) =>\n status === 'active' ? `var(${tokens.statusOnlineColor})` : `var(${tokens.statusOfflineColor})`}\n`;\n\nexport const avatarRoot = (Root: RootProps<HTMLDivElement, AvatarProps>) => {\n return forwardRef<HTMLDivElement, AvatarProps>((props, ref) => {\n const {\n size: avatarSize,\n name,\n url,\n customText,\n status,\n className,\n focused = true,\n isScalable,\n statusDict = StatusDictDefault,\n ...rest\n } = props;\n\n const initials = useMemo(() => getInitialsForName(name), [name]);\n const ariaLabel = useMemo(\n () =>\n getAriaLabel({\n ...props,\n statusDict,\n }),\n [name, url, rest.role, status, statusDict, rest['aria-label']],\n );\n\n return (\n <Root\n ref={ref}\n size={avatarSize}\n className={cx(classes.avatarItem, className)}\n aria-label={ariaLabel}\n focused={focused}\n {...rest}\n >\n <Wrapper isScalable={isScalable}>{getAvatarContent({ customText, url, initials, name })}</Wrapper>\n\n {status && (\n <StatusIcon>\n <StyledIndicator aria-label={statusDict[status]} status={status} />\n </StatusIcon>\n )}\n </Root>\n );\n });\n};\n\nexport const avatarConfig = {\n name: 'Avatar',\n tag: 'div',\n layout: avatarRoot,\n base,\n variations: {\n size: {\n css: viewCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n },\n};\n"],"names":["StatusDictDefault","active","inactive","getAvatarContent","_ref","customText","url","initials","name","React","createElement","Text","Image","src","alt","getAriaLabel","props","status","ariaLabelProp","role","statusDict","ariaLabel","trim","concat","undefined","mergedConfig","mergeConfig","indicatorConfig","Indicator","component","_exp","_exp5","_ref2","tokens","statusOnlineColor","statusOfflineColor","StyledIndicator","styled","class","propsAsIs","vars","avatarRoot","Root","forwardRef","ref","avatarSize","size","className","_props$focused","focused","isScalable","_props$statusDict","rest","_excluded","useMemo","getInitialsForName","_objectSpread","_extends","cx","classes","avatarItem","Wrapper","StatusIcon","avatarConfig","tag","layout","base","variations","css","viewCSS","focusedCSS","defaults"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.76.3-canary.1180.8720362393.0",
3
+ "version": "0.76.3-canary.1180.8732245904.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -102,5 +102,5 @@
102
102
  "react-popper": "2.3.0",
103
103
  "storeon": "3.1.5"
104
104
  },
105
- "gitHead": "9c34f3203baff549997bd41fe045e140ab5c4354"
105
+ "gitHead": "a6e0a9b3f42a33eddfe430d91b61c98517dd13a4"
106
106
  }
@@ -48,21 +48,15 @@ var getAvatarContent = function getAvatarContent(_ref) {
48
48
  return /*#__PURE__*/_react["default"].createElement(_Avatar2.Text, null, initials);
49
49
  };
50
50
  var getAriaLabel = function getAriaLabel(props) {
51
- var customText = props.customText,
52
- url = props.url,
51
+ var url = props.url,
53
52
  name = props.name,
54
53
  status = props.status,
55
54
  ariaLabelProp = props['aria-label'],
56
55
  role = props.role,
57
56
  statusDict = props.statusDict;
58
57
 
59
- // INFO: В этих сценариях aria-label не нужен
60
- if (customText || !role || role !== 'button') {
61
- return undefined;
62
- }
63
-
64
58
  // INFO: включаем aria-label чтобы озвучить что на изображении
65
- if (url) {
59
+ if (url && role && role === 'button') {
66
60
  var ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;
67
61
  return status ? "".concat(ariaLabel, ". ").concat(statusDict[status]) : ariaLabel;
68
62
  }
@@ -97,7 +91,7 @@ var avatarRoot = exports.avatarRoot = function avatarRoot(Root) {
97
91
  return getAriaLabel(_objectSpread(_objectSpread({}, props), {}, {
98
92
  statusDict: statusDict
99
93
  }));
100
- }, [name, url, rest.role, status, customText, statusDict, rest['aria-label']]);
94
+ }, [name, url, rest.role, status, statusDict, rest['aria-label']]);
101
95
  return /*#__PURE__*/_react["default"].createElement(Root, _extends({
102
96
  ref: ref,
103
97
  size: avatarSize,
@@ -39,21 +39,15 @@ var getAvatarContent = function getAvatarContent(_ref) {
39
39
  return /*#__PURE__*/React.createElement(Text, null, initials);
40
40
  };
41
41
  var getAriaLabel = function getAriaLabel(props) {
42
- var customText = props.customText,
43
- url = props.url,
42
+ var url = props.url,
44
43
  name = props.name,
45
44
  status = props.status,
46
45
  ariaLabelProp = props['aria-label'],
47
46
  role = props.role,
48
47
  statusDict = props.statusDict;
49
48
 
50
- // INFO: В этих сценариях aria-label не нужен
51
- if (customText || !role || role !== 'button') {
52
- return undefined;
53
- }
54
-
55
49
  // INFO: включаем aria-label чтобы озвучить что на изображении
56
- if (url) {
50
+ if (url && role && role === 'button') {
57
51
  var ariaLabel = !ariaLabelProp || ariaLabelProp.trim() === '' ? name : ariaLabelProp;
58
52
  return status ? "".concat(ariaLabel, ". ").concat(statusDict[status]) : ariaLabel;
59
53
  }
@@ -88,7 +82,7 @@ export var avatarRoot = function avatarRoot(Root) {
88
82
  return getAriaLabel(_objectSpread(_objectSpread({}, props), {}, {
89
83
  statusDict: statusDict
90
84
  }));
91
- }, [name, url, rest.role, status, customText, statusDict, rest['aria-label']]);
85
+ }, [name, url, rest.role, status, statusDict, rest['aria-label']]);
92
86
  return /*#__PURE__*/React.createElement(Root, _extends({
93
87
  ref: ref,
94
88
  size: avatarSize,
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AASlE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0D9D,eAAO,MAAM,UAAU,SAAU,UAAU,cAAc,EAAE,WAAW,CAAC;;;;;;;;;wCA4CtE,CAAC;AAEF,eAAO,MAAM,YAAY;;;mBA9CQ,UAAU,cAAc,EAAE,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;CA8DtE,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AASlE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqD9D,eAAO,MAAM,UAAU,SAAU,UAAU,cAAc,EAAE,WAAW,CAAC;;;;;;;;;wCA4CtE,CAAC;AAEF,eAAO,MAAM,YAAY;;;mBA9CQ,UAAU,cAAc,EAAE,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;CA8DtE,CAAC"}