@fluentui/react-avatar 9.4.9 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.json +161 -1
  2. package/CHANGELOG.md +43 -2
  3. package/dist/index.d.ts +7 -1
  4. package/lib/components/Avatar/Avatar.js +3 -6
  5. package/lib/components/Avatar/Avatar.js.map +1 -1
  6. package/lib/components/Avatar/Avatar.types.js.map +1 -1
  7. package/lib/components/Avatar/index.js +1 -1
  8. package/lib/components/Avatar/index.js.map +1 -1
  9. package/lib/components/Avatar/renderAvatar.js +4 -4
  10. package/lib/components/Avatar/renderAvatar.js.map +1 -1
  11. package/lib/components/Avatar/useAvatar.js +2 -1
  12. package/lib/components/Avatar/useAvatar.js.map +1 -1
  13. package/lib/components/Avatar/useAvatarStyles.styles.js +584 -0
  14. package/lib/components/Avatar/useAvatarStyles.styles.js.map +1 -0
  15. package/lib/components/AvatarGroup/AvatarGroup.js +3 -6
  16. package/lib/components/AvatarGroup/AvatarGroup.js.map +1 -1
  17. package/lib/components/AvatarGroup/index.js +1 -1
  18. package/lib/components/AvatarGroup/index.js.map +1 -1
  19. package/lib/components/AvatarGroup/renderAvatarGroup.js +5 -5
  20. package/lib/components/AvatarGroup/renderAvatarGroup.js.map +1 -1
  21. package/lib/components/AvatarGroup/{useAvatarGroupStyles.js → useAvatarGroupStyles.styles.js} +2 -2
  22. package/lib/components/AvatarGroup/useAvatarGroupStyles.styles.js.map +1 -0
  23. package/lib/components/AvatarGroupItem/AvatarGroupItem.js +3 -6
  24. package/lib/components/AvatarGroupItem/AvatarGroupItem.js.map +1 -1
  25. package/lib/components/AvatarGroupItem/index.js +1 -1
  26. package/lib/components/AvatarGroupItem/index.js.map +1 -1
  27. package/lib/components/AvatarGroupItem/renderAvatarGroupItem.js +4 -4
  28. package/lib/components/AvatarGroupItem/renderAvatarGroupItem.js.map +1 -1
  29. package/lib/components/AvatarGroupItem/{useAvatarGroupItemStyles.js → useAvatarGroupItemStyles.styles.js} +1 -1
  30. package/lib/components/AvatarGroupItem/useAvatarGroupItemStyles.styles.js.map +1 -0
  31. package/lib/components/AvatarGroupPopover/AvatarGroupPopover.js +3 -6
  32. package/lib/components/AvatarGroupPopover/AvatarGroupPopover.js.map +1 -1
  33. package/lib/components/AvatarGroupPopover/index.js +1 -1
  34. package/lib/components/AvatarGroupPopover/index.js.map +1 -1
  35. package/lib/components/AvatarGroupPopover/renderAvatarGroupPopover.js +6 -6
  36. package/lib/components/AvatarGroupPopover/renderAvatarGroupPopover.js.map +1 -1
  37. package/lib/components/AvatarGroupPopover/{useAvatarGroupPopoverStyles.js → useAvatarGroupPopoverStyles.styles.js} +10 -11
  38. package/lib/components/AvatarGroupPopover/useAvatarGroupPopoverStyles.styles.js.map +1 -0
  39. package/lib/contexts/AvatarContext.js.map +1 -1
  40. package/lib/index.js.map +1 -1
  41. package/lib/utils/getInitials.js +1 -1
  42. package/lib/utils/getInitials.js.map +1 -1
  43. package/lib-commonjs/components/Avatar/Avatar.js +3 -4
  44. package/lib-commonjs/components/Avatar/Avatar.js.map +1 -1
  45. package/lib-commonjs/components/Avatar/index.js +1 -1
  46. package/lib-commonjs/components/Avatar/index.js.map +1 -1
  47. package/lib-commonjs/components/Avatar/renderAvatar.js +4 -5
  48. package/lib-commonjs/components/Avatar/renderAvatar.js.map +1 -1
  49. package/lib-commonjs/components/Avatar/useAvatar.js +2 -2
  50. package/lib-commonjs/components/Avatar/useAvatar.js.map +1 -1
  51. package/lib-commonjs/components/Avatar/{useAvatarStyles.js → useAvatarStyles.styles.js} +295 -285
  52. package/lib-commonjs/components/Avatar/useAvatarStyles.styles.js.map +1 -0
  53. package/lib-commonjs/components/AvatarGroup/AvatarGroup.js +3 -4
  54. package/lib-commonjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  55. package/lib-commonjs/components/AvatarGroup/index.js +1 -1
  56. package/lib-commonjs/components/AvatarGroup/index.js.map +1 -1
  57. package/lib-commonjs/components/AvatarGroup/renderAvatarGroup.js +5 -6
  58. package/lib-commonjs/components/AvatarGroup/renderAvatarGroup.js.map +1 -1
  59. package/lib-commonjs/components/AvatarGroup/{useAvatarGroupStyles.js → useAvatarGroupStyles.styles.js} +4 -4
  60. package/lib-commonjs/components/AvatarGroup/useAvatarGroupStyles.styles.js.map +1 -0
  61. package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.js +3 -4
  62. package/lib-commonjs/components/AvatarGroupItem/AvatarGroupItem.js.map +1 -1
  63. package/lib-commonjs/components/AvatarGroupItem/index.js +1 -1
  64. package/lib-commonjs/components/AvatarGroupItem/index.js.map +1 -1
  65. package/lib-commonjs/components/AvatarGroupItem/renderAvatarGroupItem.js +4 -5
  66. package/lib-commonjs/components/AvatarGroupItem/renderAvatarGroupItem.js.map +1 -1
  67. package/lib-commonjs/components/AvatarGroupItem/{useAvatarGroupItemStyles.js → useAvatarGroupItemStyles.styles.js} +2 -2
  68. package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItemStyles.styles.js.map +1 -0
  69. package/lib-commonjs/components/AvatarGroupPopover/AvatarGroupPopover.js +3 -4
  70. package/lib-commonjs/components/AvatarGroupPopover/AvatarGroupPopover.js.map +1 -1
  71. package/lib-commonjs/components/AvatarGroupPopover/index.js +1 -1
  72. package/lib-commonjs/components/AvatarGroupPopover/index.js.map +1 -1
  73. package/lib-commonjs/components/AvatarGroupPopover/renderAvatarGroupPopover.js +6 -7
  74. package/lib-commonjs/components/AvatarGroupPopover/renderAvatarGroupPopover.js.map +1 -1
  75. package/lib-commonjs/components/AvatarGroupPopover/{useAvatarGroupPopoverStyles.js → useAvatarGroupPopoverStyles.styles.js} +15 -17
  76. package/lib-commonjs/components/AvatarGroupPopover/useAvatarGroupPopoverStyles.styles.js.map +1 -0
  77. package/lib-commonjs/utils/getInitials.js +1 -2
  78. package/lib-commonjs/utils/getInitials.js.map +1 -1
  79. package/package.json +11 -10
  80. package/.swcrc +0 -30
  81. package/lib/components/Avatar/useAvatarStyles.js +0 -493
  82. package/lib/components/Avatar/useAvatarStyles.js.map +0 -1
  83. package/lib/components/AvatarGroup/useAvatarGroupStyles.js.map +0 -1
  84. package/lib/components/AvatarGroupItem/useAvatarGroupItemStyles.js.map +0 -1
  85. package/lib/components/AvatarGroupPopover/useAvatarGroupPopoverStyles.js.map +0 -1
  86. package/lib-commonjs/components/Avatar/useAvatarStyles.js.map +0 -1
  87. package/lib-commonjs/components/AvatarGroup/useAvatarGroupStyles.js.map +0 -1
  88. package/lib-commonjs/components/AvatarGroupItem/useAvatarGroupItemStyles.js.map +0 -1
  89. package/lib-commonjs/components/AvatarGroupPopover/useAvatarGroupPopoverStyles.js.map +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ /** @jsxRuntime classic */ /** @jsx createElement */ "use strict";
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "renderAvatar_unstable", {
6
6
  enumerable: true,
7
7
  get: ()=>renderAvatar_unstable
8
8
  });
9
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
9
+ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
11
10
  const _reactUtilities = require("@fluentui/react-utilities");
12
11
  const renderAvatar_unstable = (state)=>{
13
- const { slots , slotProps } = (0, _reactUtilities.getSlots)(state);
14
- return /*#__PURE__*/ _react.createElement(slots.root, slotProps.root, slots.initials && /*#__PURE__*/ _react.createElement(slots.initials, slotProps.initials), slots.icon && /*#__PURE__*/ _react.createElement(slots.icon, slotProps.icon), slots.image && /*#__PURE__*/ _react.createElement(slots.image, slotProps.image), slots.badge && /*#__PURE__*/ _react.createElement(slots.badge, slotProps.badge), state.activeAriaLabelElement);
12
+ const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
13
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, slots.initials && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.initials, slotProps.initials), slots.icon && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.icon, slotProps.icon), slots.image && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.image, slotProps.image), slots.badge && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.badge, slotProps.badge), state.activeAriaLabelElement);
15
14
  }; //# sourceMappingURL=renderAvatar.js.map
16
15
 
17
16
  //# sourceMappingURL=renderAvatar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/Avatar/renderAvatar.js"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nexport const renderAvatar_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n return /*#__PURE__*/React.createElement(slots.root, slotProps.root, slots.initials && /*#__PURE__*/React.createElement(slots.initials, slotProps.initials), slots.icon && /*#__PURE__*/React.createElement(slots.icon, slotProps.icon), slots.image && /*#__PURE__*/React.createElement(slots.image, slotProps.image), slots.badge && /*#__PURE__*/React.createElement(slots.badge, slotProps.badge), state.activeAriaLabelElement);\n};\n//# sourceMappingURL=renderAvatar.js.map"],"names":["renderAvatar_unstable","state","slots","slotProps","getSlots","React","createElement","root","initials","icon","image","badge","activeAriaLabelElement"],"mappings":";;;;+BAEaA;;aAAAA;;;6DAFU;gCACE;AAClB,MAAMA,wBAAwBC,CAAAA,QAAS;IAC5C,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACH;IACb,OAAO,WAAW,GAAEI,OAAMC,aAAa,CAACJ,MAAMK,IAAI,EAAEJ,UAAUI,IAAI,EAAEL,MAAMM,QAAQ,IAAI,WAAW,GAAEH,OAAMC,aAAa,CAACJ,MAAMM,QAAQ,EAAEL,UAAUK,QAAQ,GAAGN,MAAMO,IAAI,IAAI,WAAW,GAAEJ,OAAMC,aAAa,CAACJ,MAAMO,IAAI,EAAEN,UAAUM,IAAI,GAAGP,MAAMQ,KAAK,IAAI,WAAW,GAAEL,OAAMC,aAAa,CAACJ,MAAMQ,KAAK,EAAEP,UAAUO,KAAK,GAAGR,MAAMS,KAAK,IAAI,WAAW,GAAEN,OAAMC,aAAa,CAACJ,MAAMS,KAAK,EAAER,UAAUQ,KAAK,GAAGV,MAAMW,sBAAsB;AACpa,GACA,wCAAwC"}
1
+ {"version":3,"sources":["../../../lib/components/Avatar/renderAvatar.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nexport const renderAvatar_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(slots.root, slotProps.root, slots.initials && /*#__PURE__*/createElement(slots.initials, slotProps.initials), slots.icon && /*#__PURE__*/createElement(slots.icon, slotProps.icon), slots.image && /*#__PURE__*/createElement(slots.image, slotProps.image), slots.badge && /*#__PURE__*/createElement(slots.badge, slotProps.badge), state.activeAriaLabelElement);\n};\n//# sourceMappingURL=renderAvatar.js.map"],"names":["renderAvatar_unstable","state","slots","slotProps","getSlotsNext","createElement","root","initials","icon","image","badge","activeAriaLabelElement"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAErCA;;aAAAA;;iCAFqE;gCACrD;AACtB,MAAMA,wBAAwBC,CAAAA,QAAS;IAC5C,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACH;IACjB,OAAO,WAAW,GAAEI,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI,EAAEJ,MAAMK,QAAQ,IAAI,WAAW,GAAEF,IAAAA,8BAAa,EAACH,MAAMK,QAAQ,EAAEJ,UAAUI,QAAQ,GAAGL,MAAMM,IAAI,IAAI,WAAW,GAAEH,IAAAA,8BAAa,EAACH,MAAMM,IAAI,EAAEL,UAAUK,IAAI,GAAGN,MAAMO,KAAK,IAAI,WAAW,GAAEJ,IAAAA,8BAAa,EAACH,MAAMO,KAAK,EAAEN,UAAUM,KAAK,GAAGP,MAAMQ,KAAK,IAAI,WAAW,GAAEL,IAAAA,8BAAa,EAACH,MAAMQ,KAAK,EAAEP,UAAUO,KAAK,GAAGT,MAAMU,sBAAsB;AACtY,GACA,wCAAwC"}
@@ -26,8 +26,8 @@ const DEFAULT_STRINGS = {
26
26
  };
27
27
  const useAvatar_unstable = (props, ref)=>{
28
28
  const { dir } = (0, _reactSharedContexts.useFluent_unstable)();
29
- const { size: contextSize } = (0, _avatarContext.useAvatarContext)();
30
- const { name , size =contextSize !== null && contextSize !== void 0 ? contextSize : 32 , shape ='circular' , active ='unset' , activeAppearance ='ring' , idForColor } = props;
29
+ const { shape: contextShape , size: contextSize } = (0, _avatarContext.useAvatarContext)();
30
+ const { name , size =contextSize !== null && contextSize !== void 0 ? contextSize : 32 , shape =contextShape !== null && contextShape !== void 0 ? contextShape : 'circular' , active ='unset' , activeAppearance ='ring' , idForColor } = props;
31
31
  let { color ='neutral' } = props;
32
32
  // Resolve 'colorful' to a specific color name
33
33
  if (color === 'colorful') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/Avatar/useAvatar.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, mergeCallbacks, resolveShorthand, useId } from '@fluentui/react-utilities';\nimport { getInitials } from '../../utils/index';\nimport { PersonRegular } from '@fluentui/react-icons';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useAvatarContext } from '../../contexts/AvatarContext';\nexport const DEFAULT_STRINGS = {\n active: 'active',\n inactive: 'inactive'\n};\nexport const useAvatar_unstable = (props, ref) => {\n const {\n dir\n } = useFluent();\n const {\n size: contextSize\n } = useAvatarContext();\n const {\n name,\n size = contextSize !== null && contextSize !== void 0 ? contextSize : 32,\n shape = 'circular',\n active = 'unset',\n activeAppearance = 'ring',\n idForColor\n } = props;\n let {\n color = 'neutral'\n } = props;\n // Resolve 'colorful' to a specific color name\n if (color === 'colorful') {\n var _ref;\n color = avatarColors[getHashCode((_ref = idForColor !== null && idForColor !== void 0 ? idForColor : name) !== null && _ref !== void 0 ? _ref : '') % avatarColors.length];\n }\n const baseId = useId('avatar-');\n const root = getNativeElementProps('span', {\n role: 'img',\n id: baseId,\n // aria-label and/or aria-labelledby are resolved below\n ...props,\n ref\n }, /* excludedPropNames: */['name']);\n const [imageHidden, setImageHidden] = React.useState(undefined);\n const image = resolveShorthand(props.image, {\n defaultProps: {\n alt: '',\n role: 'presentation',\n 'aria-hidden': true,\n hidden: imageHidden\n }\n });\n // Hide the image if it fails to load and restore it on a successful load\n if (image) {\n image.onError = mergeCallbacks(image.onError, () => setImageHidden(true));\n image.onLoad = mergeCallbacks(image.onLoad, () => setImageHidden(undefined));\n }\n // Resolve the initials slot, defaulted to getInitials.\n let initials = resolveShorthand(props.initials, {\n required: true,\n defaultProps: {\n children: getInitials(name, dir === 'rtl', {\n firstInitialOnly: size <= 16\n }),\n id: baseId + '__initials'\n }\n });\n // Don't render the initials slot if it's empty\n if (!(initials === null || initials === void 0 ? void 0 : initials.children)) {\n initials = undefined;\n }\n // Render the icon slot *only if* there aren't any initials or image to display\n let icon = undefined;\n if (!initials && (!image || imageHidden)) {\n icon = resolveShorthand(props.icon, {\n required: true,\n defaultProps: {\n children: /*#__PURE__*/React.createElement(PersonRegular, null),\n 'aria-hidden': true\n }\n });\n }\n const badge = resolveShorthand(props.badge, {\n defaultProps: {\n size: getBadgeSize(size),\n id: baseId + '__badge'\n }\n });\n let activeAriaLabelElement;\n // Resolve aria-label and/or aria-labelledby if not provided by the user\n if (!root['aria-label'] && !root['aria-labelledby']) {\n if (name) {\n root['aria-label'] = name;\n // Include the badge in labelledby if it exists\n if (badge) {\n root['aria-labelledby'] = root.id + ' ' + badge.id;\n }\n } else if (initials) {\n // root's aria-label should be the name, but fall back to being labelledby the initials if name is missing\n root['aria-labelledby'] = initials.id + (badge ? ' ' + badge.id : '');\n }\n // Add the active state to the aria label\n if (active === 'active' || active === 'inactive') {\n const activeText = DEFAULT_STRINGS[active];\n if (root['aria-labelledby']) {\n // If using aria-labelledby, render a hidden span and append it to the labelledby\n const activeId = baseId + '__active';\n root['aria-labelledby'] += ' ' + activeId;\n activeAriaLabelElement = /*#__PURE__*/React.createElement(\"span\", {\n hidden: true,\n id: activeId\n }, activeText);\n } else if (root['aria-label']) {\n // Otherwise, just append it to the aria-label\n root['aria-label'] += ' ' + activeText;\n }\n }\n }\n return {\n size,\n shape,\n active,\n activeAppearance,\n activeAriaLabelElement,\n color,\n components: {\n root: 'span',\n initials: 'span',\n icon: 'span',\n image: 'img',\n badge: PresenceBadge\n },\n root,\n initials,\n icon,\n image,\n badge\n };\n};\nconst getBadgeSize = size => {\n if (size >= 96) {\n return 'extra-large';\n } else if (size >= 64) {\n return 'large';\n } else if (size >= 56) {\n return 'medium';\n } else if (size >= 40) {\n return 'small';\n } else if (size >= 28) {\n return 'extra-small';\n } else {\n return 'tiny';\n }\n};\nconst avatarColors = ['dark-red', 'cranberry', 'red', 'pumpkin', 'peach', 'marigold', 'gold', 'brass', 'brown', 'forest', 'seafoam', 'dark-green', 'light-teal', 'teal', 'steel', 'blue', 'royal-blue', 'cornflower', 'navy', 'lavender', 'purple', 'grape', 'lilac', 'pink', 'magenta', 'plum', 'beige', 'mink', 'platinum', 'anchor'];\nconst getHashCode = str => {\n let hashCode = 0;\n for (let len = str.length - 1; len >= 0; len--) {\n const ch = str.charCodeAt(len);\n const shift = len % 8;\n hashCode ^= (ch << shift) + (ch >> 8 - shift); // eslint-disable-line no-bitwise\n }\n\n return hashCode;\n};\n//# sourceMappingURL=useAvatar.js.map"],"names":["DEFAULT_STRINGS","useAvatar_unstable","active","inactive","props","ref","dir","useFluent","size","contextSize","useAvatarContext","name","shape","activeAppearance","idForColor","color","_ref","avatarColors","getHashCode","length","baseId","useId","root","getNativeElementProps","role","id","imageHidden","setImageHidden","React","useState","undefined","image","resolveShorthand","defaultProps","alt","hidden","onError","mergeCallbacks","onLoad","initials","required","children","getInitials","firstInitialOnly","icon","createElement","PersonRegular","badge","getBadgeSize","activeAriaLabelElement","activeText","activeId","components","PresenceBadge","str","hashCode","len","ch","charCodeAt","shift"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../lib/components/Avatar/useAvatar.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, mergeCallbacks, resolveShorthand, useId } from '@fluentui/react-utilities';\nimport { getInitials } from '../../utils/index';\nimport { PersonRegular } from '@fluentui/react-icons';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useAvatarContext } from '../../contexts/AvatarContext';\nexport const DEFAULT_STRINGS = {\n active: 'active',\n inactive: 'inactive'\n};\nexport const useAvatar_unstable = (props, ref) => {\n const {\n dir\n } = useFluent();\n const {\n shape: contextShape,\n size: contextSize\n } = useAvatarContext();\n const {\n name,\n size = contextSize !== null && contextSize !== void 0 ? contextSize : 32,\n shape = contextShape !== null && contextShape !== void 0 ? contextShape : 'circular',\n active = 'unset',\n activeAppearance = 'ring',\n idForColor\n } = props;\n let {\n color = 'neutral'\n } = props;\n // Resolve 'colorful' to a specific color name\n if (color === 'colorful') {\n var _ref;\n color = avatarColors[getHashCode((_ref = idForColor !== null && idForColor !== void 0 ? idForColor : name) !== null && _ref !== void 0 ? _ref : '') % avatarColors.length];\n }\n const baseId = useId('avatar-');\n const root = getNativeElementProps('span', {\n role: 'img',\n id: baseId,\n // aria-label and/or aria-labelledby are resolved below\n ...props,\n ref\n }, /* excludedPropNames: */['name']);\n const [imageHidden, setImageHidden] = React.useState(undefined);\n const image = resolveShorthand(props.image, {\n defaultProps: {\n alt: '',\n role: 'presentation',\n 'aria-hidden': true,\n hidden: imageHidden\n }\n });\n // Hide the image if it fails to load and restore it on a successful load\n if (image) {\n image.onError = mergeCallbacks(image.onError, () => setImageHidden(true));\n image.onLoad = mergeCallbacks(image.onLoad, () => setImageHidden(undefined));\n }\n // Resolve the initials slot, defaulted to getInitials.\n let initials = resolveShorthand(props.initials, {\n required: true,\n defaultProps: {\n children: getInitials(name, dir === 'rtl', {\n firstInitialOnly: size <= 16\n }),\n id: baseId + '__initials'\n }\n });\n // Don't render the initials slot if it's empty\n if (!(initials === null || initials === void 0 ? void 0 : initials.children)) {\n initials = undefined;\n }\n // Render the icon slot *only if* there aren't any initials or image to display\n let icon = undefined;\n if (!initials && (!image || imageHidden)) {\n icon = resolveShorthand(props.icon, {\n required: true,\n defaultProps: {\n children: /*#__PURE__*/React.createElement(PersonRegular, null),\n 'aria-hidden': true\n }\n });\n }\n const badge = resolveShorthand(props.badge, {\n defaultProps: {\n size: getBadgeSize(size),\n id: baseId + '__badge'\n }\n });\n let activeAriaLabelElement;\n // Resolve aria-label and/or aria-labelledby if not provided by the user\n if (!root['aria-label'] && !root['aria-labelledby']) {\n if (name) {\n root['aria-label'] = name;\n // Include the badge in labelledby if it exists\n if (badge) {\n root['aria-labelledby'] = root.id + ' ' + badge.id;\n }\n } else if (initials) {\n // root's aria-label should be the name, but fall back to being labelledby the initials if name is missing\n root['aria-labelledby'] = initials.id + (badge ? ' ' + badge.id : '');\n }\n // Add the active state to the aria label\n if (active === 'active' || active === 'inactive') {\n const activeText = DEFAULT_STRINGS[active];\n if (root['aria-labelledby']) {\n // If using aria-labelledby, render a hidden span and append it to the labelledby\n const activeId = baseId + '__active';\n root['aria-labelledby'] += ' ' + activeId;\n activeAriaLabelElement = /*#__PURE__*/React.createElement(\"span\", {\n hidden: true,\n id: activeId\n }, activeText);\n } else if (root['aria-label']) {\n // Otherwise, just append it to the aria-label\n root['aria-label'] += ' ' + activeText;\n }\n }\n }\n return {\n size,\n shape,\n active,\n activeAppearance,\n activeAriaLabelElement,\n color,\n components: {\n root: 'span',\n initials: 'span',\n icon: 'span',\n image: 'img',\n badge: PresenceBadge\n },\n root,\n initials,\n icon,\n image,\n badge\n };\n};\nconst getBadgeSize = size => {\n if (size >= 96) {\n return 'extra-large';\n } else if (size >= 64) {\n return 'large';\n } else if (size >= 56) {\n return 'medium';\n } else if (size >= 40) {\n return 'small';\n } else if (size >= 28) {\n return 'extra-small';\n } else {\n return 'tiny';\n }\n};\nconst avatarColors = ['dark-red', 'cranberry', 'red', 'pumpkin', 'peach', 'marigold', 'gold', 'brass', 'brown', 'forest', 'seafoam', 'dark-green', 'light-teal', 'teal', 'steel', 'blue', 'royal-blue', 'cornflower', 'navy', 'lavender', 'purple', 'grape', 'lilac', 'pink', 'magenta', 'plum', 'beige', 'mink', 'platinum', 'anchor'];\nconst getHashCode = str => {\n let hashCode = 0;\n for (let len = str.length - 1; len >= 0; len--) {\n const ch = str.charCodeAt(len);\n const shift = len % 8;\n hashCode ^= (ch << shift) + (ch >> 8 - shift); // eslint-disable-line no-bitwise\n }\n\n return hashCode;\n};\n//# sourceMappingURL=useAvatar.js.map"],"names":["DEFAULT_STRINGS","useAvatar_unstable","active","inactive","props","ref","dir","useFluent","shape","contextShape","size","contextSize","useAvatarContext","name","activeAppearance","idForColor","color","_ref","avatarColors","getHashCode","length","baseId","useId","root","getNativeElementProps","role","id","imageHidden","setImageHidden","React","useState","undefined","image","resolveShorthand","defaultProps","alt","hidden","onError","mergeCallbacks","onLoad","initials","required","children","getInitials","firstInitialOnly","icon","createElement","PersonRegular","badge","getBadgeSize","activeAriaLabelElement","activeText","activeId","components","PresenceBadge","str","hashCode","len","ch","charCodeAt","shift"],"mappings":"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"}