@procore/core-react 12.40.0 → 12.42.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 (265) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.d.ts +1 -1
  5. package/dist/AvatarStack/AvatarStack.js +29 -6
  6. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  7. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  8. package/dist/AvatarStack/AvatarStack.types.d.ts +7 -0
  9. package/dist/AvatarStack/AvatarStack.types.js.map +1 -1
  10. package/dist/Badge/Badge.styles.js +2 -2
  11. package/dist/BadgePill/BadgePill.styles.js +4 -4
  12. package/dist/Banner/Banner.styles.js +10 -10
  13. package/dist/Box/Box.styles.js +1 -1
  14. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  15. package/dist/Button/Button.styles.js +5 -5
  16. package/dist/Calendar/Calendar.styles.js +9 -9
  17. package/dist/Card/Card.styles.js +1 -1
  18. package/dist/Checkbox/Checkbox.styles.js +6 -6
  19. package/dist/ContactItem/ContactItem.js +7 -3
  20. package/dist/ContactItem/ContactItem.js.map +1 -1
  21. package/dist/ContactItem/ContactItem.styles.js +5 -5
  22. package/dist/Content/Content.styles.js +2 -2
  23. package/dist/DateInput/DateInput.styles.js +6 -6
  24. package/dist/DetailPage/DetailPage.styles.js +7 -7
  25. package/dist/Dropdown/Dropdown.styles.js +3 -3
  26. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  27. package/dist/Dropzone/Dropzone.js +1 -1
  28. package/dist/Dropzone/Dropzone.styles.js +10 -10
  29. package/dist/Dropzone/Dropzone.styles.js.map +1 -1
  30. package/dist/EmptyState/EmptyState.styles.js +6 -6
  31. package/dist/Field/Field.styles.js +3 -3
  32. package/dist/FileList/FileList.styles.js +3 -3
  33. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  34. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  35. package/dist/FileSelect/FileSelect.d.ts +8 -15
  36. package/dist/FileSelect/FileSelect.js +8 -15
  37. package/dist/FileSelect/FileSelect.js.map +1 -1
  38. package/dist/FileSelect/FileSelect.styles.js +2 -2
  39. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  40. package/dist/FileSelect/FileTokenList/FileTokenList.d.ts +8 -0
  41. package/dist/FileSelect/FileTokenList/FileTokenList.js +9 -0
  42. package/dist/FileSelect/FileTokenList/FileTokenList.js.map +1 -1
  43. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  44. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  45. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  46. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  47. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  48. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  49. package/dist/FileToken/FileToken.styles.js +6 -6
  50. package/dist/FilterToken/FilterToken.styles.js +5 -5
  51. package/dist/FlexList/FlexList.styles.js +1 -1
  52. package/dist/Form/Form.styles.js +13 -13
  53. package/dist/Form/StyledFormikForm.styles.js +2 -2
  54. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  55. package/dist/Grid/Grid.styles.js +2 -2
  56. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  57. package/dist/Input/Input.styles.js +1 -1
  58. package/dist/Link/Link.styles.js +1 -1
  59. package/dist/ListPage/ListPage.styles.js +8 -8
  60. package/dist/Loader/Loader.styles.js +2 -2
  61. package/dist/MenuImperative/MenuImperative.d.ts +1 -1
  62. package/dist/MenuImperative/MenuImperative.js +126 -34
  63. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  64. package/dist/MenuImperative/MenuImperative.styles.js +15 -15
  65. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  66. package/dist/MenuImperative/MenuImperative.types.d.ts +36 -0
  67. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  68. package/dist/MenuImperative/sensors.d.ts +6 -3
  69. package/dist/MenuImperative/sensors.js +42 -34
  70. package/dist/MenuImperative/sensors.js.map +1 -1
  71. package/dist/Modal/Modal.d.ts +4 -0
  72. package/dist/Modal/Modal.js +23 -13
  73. package/dist/Modal/Modal.js.map +1 -1
  74. package/dist/Modal/Modal.styles.js +13 -13
  75. package/dist/Modal/Modal.types.d.ts +28 -5
  76. package/dist/Modal/Modal.types.js.map +1 -1
  77. package/dist/Modal/index.d.ts +1 -1
  78. package/dist/Modal/index.js.map +1 -1
  79. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  80. package/dist/NextMenu/NextMenu.styles.js +3 -3
  81. package/dist/Notation/Notation.js +1 -1
  82. package/dist/NumberInput/NumberInput.styles.js +7 -7
  83. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  84. package/dist/OverlayTrigger/a11yPresets.d.ts +17 -24
  85. package/dist/OverlayTrigger/a11yPresets.js +29 -27
  86. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  87. package/dist/PageLayout/PageLayout.styles.js +16 -16
  88. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  89. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  90. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  91. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  92. package/dist/Pagination/Pagination.styles.js +5 -5
  93. package/dist/Panel/Panel.styles.js +11 -11
  94. package/dist/Pill/Pill.styles.js +3 -3
  95. package/dist/PillSelect/PillSelect.d.ts +2 -1
  96. package/dist/PillSelect/PillSelect.js +59 -41
  97. package/dist/PillSelect/PillSelect.js.map +1 -1
  98. package/dist/PillSelect/PillSelect.styles.js +4 -4
  99. package/dist/Popover/Popover.styles.js +2 -2
  100. package/dist/Portal/Portal.styles.js +1 -1
  101. package/dist/ProgressBar/ProgressBar.styles.js +4 -4
  102. package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
  103. package/dist/RadioButton/RadioButton.styles.js +3 -3
  104. package/dist/Required/Required.styles.js +3 -3
  105. package/dist/Search/Search.styles.js +5 -5
  106. package/dist/Section/Section.js +0 -1
  107. package/dist/Section/Section.js.map +1 -1
  108. package/dist/Section/Section.styles.js +7 -7
  109. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  110. package/dist/Select/Select.d.ts +2 -0
  111. package/dist/Select/Select.js +108 -79
  112. package/dist/Select/Select.js.map +1 -1
  113. package/dist/Select/Select.styles.js +8 -8
  114. package/dist/Semantic/Semantic.styles.js +9 -9
  115. package/dist/Slider/Slider.styles.js +5 -5
  116. package/dist/Spinner/Spinner.styles.js +7 -7
  117. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  118. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  119. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  120. package/dist/SuperSelect/useSuperSelect.js +2 -2
  121. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  122. package/dist/Switch/Switch.styles.js +4 -4
  123. package/dist/Table/Table.styles.js +28 -28
  124. package/dist/Table/Table.types.d.ts +5 -2
  125. package/dist/Table/Table.types.js.map +1 -1
  126. package/dist/TableShelf/TableShelf.styles.js +5 -5
  127. package/dist/Tabs/Tabs.styles.js +15 -15
  128. package/dist/Tearsheet/Tearsheet.js +1 -1
  129. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  130. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  131. package/dist/Tearsheet/storybook/PageLayoutDemo.js +1 -0
  132. package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
  133. package/dist/TextArea/TextArea.styles.js +1 -1
  134. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  135. package/dist/Thumbnail/Thumbnail.js +126 -46
  136. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  137. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  138. package/dist/Thumbnail/Thumbnail.types.d.ts +12 -0
  139. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  140. package/dist/Thumbnail/Thumbnail.utils.d.ts +2 -0
  141. package/dist/Thumbnail/Thumbnail.utils.js +6 -0
  142. package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
  143. package/dist/Thumbnail/ThumbnailCaption.js +45 -52
  144. package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
  145. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  146. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  147. package/dist/Tile/Tile.styles.js +8 -8
  148. package/dist/Title/Title.styles.js +7 -7
  149. package/dist/Toast/Toast.styles.js +3 -3
  150. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  151. package/dist/Token/Token.styles.js +3 -3
  152. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  153. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  154. package/dist/Tooltip/Tooltip.styles.js +3 -3
  155. package/dist/Tree/Tree.js +1 -1
  156. package/dist/Tree/Tree.styles.js +10 -10
  157. package/dist/Typeahead/Typeahead.styles.js +3 -3
  158. package/dist/Typography/Typography.styles.js +1 -1
  159. package/dist/Typography/Typography.table.story.js +2 -2
  160. package/dist/_hooks/I18n.d.ts +22 -153
  161. package/dist/_locales/de-DE.json +1 -10
  162. package/dist/_locales/en-AU.json +1 -10
  163. package/dist/_locales/en-CA.json +1 -10
  164. package/dist/_locales/en-GB.json +1 -10
  165. package/dist/_locales/en.json +13 -2
  166. package/dist/_locales/es-ES.json +1 -10
  167. package/dist/_locales/es.json +1 -10
  168. package/dist/_locales/fr-CA.json +1 -10
  169. package/dist/_locales/fr-FR.json +1 -10
  170. package/dist/_locales/is-IS.json +1 -10
  171. package/dist/_locales/it-IT.json +1 -10
  172. package/dist/_locales/ja-JP.json +1 -10
  173. package/dist/_locales/pl-PL.json +1 -10
  174. package/dist/_locales/pseudo.json +13 -2
  175. package/dist/_locales/pt-BR.json +1 -10
  176. package/dist/_locales/pt-PT.json +2 -11
  177. package/dist/_locales/th-TH.json +1 -10
  178. package/dist/_locales/zh-SG.json +1 -10
  179. package/dist/_locales/zh-TW.json +1 -10
  180. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  181. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  182. package/dist/_styles/colors.js +1 -3
  183. package/dist/_styles/colors.js.map +1 -1
  184. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  185. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  186. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +34 -24
  187. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  188. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  189. package/dist/_typedoc/Box/Box.types.json +68 -68
  190. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  191. package/dist/_typedoc/Button/Button.types.json +13 -13
  192. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  193. package/dist/_typedoc/Card/Card.types.json +6 -6
  194. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  195. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  196. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  197. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  198. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  199. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  200. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  201. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  202. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  203. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  204. package/dist/_typedoc/FileSelect/FileSelect.json +3 -3
  205. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  206. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  207. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  208. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  209. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  210. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  211. package/dist/_typedoc/Form/Form.types.json +760 -760
  212. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  213. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  214. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  215. package/dist/_typedoc/Input/Input.types.json +2 -2
  216. package/dist/_typedoc/Link/Link.types.json +1 -1
  217. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  218. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  219. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +147 -77
  220. package/dist/_typedoc/Modal/Modal.types.json +96 -68
  221. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  222. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  223. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  224. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  225. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  226. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  227. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  228. package/dist/_typedoc/Panel/Panel.types.json +27 -27
  229. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  230. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  231. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  232. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  233. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  234. package/dist/_typedoc/Required/Required.types.json +5 -5
  235. package/dist/_typedoc/Search/Search.types.json +18 -18
  236. package/dist/_typedoc/Section/Section.types.json +15 -15
  237. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  238. package/dist/_typedoc/Select/Select.types.json +67 -67
  239. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  240. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  241. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  242. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  243. package/dist/_typedoc/Table/Table.types.json +102 -102
  244. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  245. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  246. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  247. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  248. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  249. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  250. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  251. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  252. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  253. package/dist/_typedoc/Title/Title.types.json +1 -1
  254. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  255. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  256. package/dist/_typedoc/Token/Token.types.json +7 -7
  257. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  258. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  259. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  260. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  261. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  262. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  263. package/dist/_typedoc/_utils/types.json +3 -3
  264. package/dist/_typedoc/deprecations.json +1 -1
  265. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # Change Log
2
2
 
3
+ ## 12.42.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 1b008b9: Update `Modal` documentation for accessibility. `Modal onClose howToClose` should be used to centralize close management, adding Esc Key support, and dialog role. Continue to use `Modal.Heading` to link the dialog to the semantic heading.
8
+ - Deprecate `onClickOverlay` prop on `Modal`. Use `Modal onClose howToClose={['scrim']}` instead.
9
+ - Deprecate `onClose` prop on `Modal.Header`. Use `Modal onClose howToClose={['x']}` instead.
10
+ - Update `ConfirmModal` to support `role="dialog"` or `"alertdialog"` and `aria-modal`. You should opt-in to one of the roles.
11
+ - `ConfirmModal` add support for both `ModalOnClose` and the legacy `MouseEvent<HTMLButtonElement>` callback
12
+ - Export `ModalOnClose` type from `core-react`
13
+ - Fix, removed duplicate id from `Modal.Header` and `Modal.Heading`
14
+
15
+ - bcd3b67: Enhance MenuImperative drag and drop accessibility to support keyboard navigation experience. Space Key picks up the item to drag.
16
+
17
+ ### Patch Changes
18
+
19
+ - 88b6bd2: SuperSeclect change aria-haspopup for trigger and overlay role to listbox
20
+ - b1578df: removing color experiment, not being used
21
+ - 1e79569: Updating ContactItem screenreader context by removing need to read avatar which is copied info of text next to it
22
+ - 91c1198: [ProgressBar] adding in border to progress bar styles for accessibility, using first color to pass 3.5:1 contrast ratio
23
+
24
+ ## 12.41.0
25
+
26
+ ### Minor Changes
27
+
28
+ - 9bdd705: Show overflow tooltips on keyboard focus for `Select` and `PillSelect` components
29
+ - 0e6fc2f: `Thumbnail`: keyboard-accessible caption tooltip and focusable non-checkbox variants
30
+ - **Caption tooltip:** The overflow tooltip for the caption now opens when the user hovers or focuses the whole Thumbnail (not only the caption). The tooltip is still shown only when the caption is overflowing. Tooltip logic is lifted to the Thumbnail level and wrapped in a shared `ThumbnailCaptionTooltip` component.
31
+ - **Focusability:** Base and Figure Thumbnails (and their Placeholder variants) are now focusable (`tabIndex={0}`) with `role="group"` and `aria-label` (from label + caption) so keyboard users can tab to them and trigger the caption tooltip on focus. Checkbox Thumbnails are unchanged (focus remains on the hidden input).
32
+
33
+ ### Patch Changes
34
+
35
+ - 8747be1: Add `&&` specificity boost to `StyledUploadButton` in `Dropzone` to prevent cross-MFE styled-components cascade conflicts
36
+ - 4de4e0c: Remove unneeded tabstop from `Section` component
37
+ - ee7d85a: `AvatarStack`: Prevent popover from opening when an avatar is dimmed(disabled).
38
+ Restore focus to the view-more ("+N") trigger when the View All modal is closed (e.g. via Escape) for keyboard accessibility.
39
+ - 80bb8c8: Deprecate `FileSelect` and `FileTokenList`. Migrate to the connected version.
40
+ - 453bce7: Deprecate the `shelf` prop on `Table.Container`. This pattern is not accessible and we do not have a migration path.
41
+
3
42
  ## 12.40.0
4
43
 
5
44
  ### Minor Changes
@@ -5,11 +5,11 @@ import { getEllipsis } from '../_styles/mixins';
5
5
  import { spacing } from '../_styles/spacing';
6
6
  export var StyledAnchorNavigation = /*#__PURE__*/styled.ul.withConfig({
7
7
  displayName: "StyledAnchorNavigation",
8
- componentId: "core-12_40_0__sc-aacdj4-0"
8
+ componentId: "core-12_42_0__sc-aacdj4-0"
9
9
  })(["max-width:200px;margin:0;padding-inline-start:0;"]);
10
10
  export var StyledAnchorSection = /*#__PURE__*/styled.li.withConfig({
11
11
  displayName: "StyledAnchorSection",
12
- componentId: "core-12_40_0__sc-aacdj4-1"
12
+ componentId: "core-12_42_0__sc-aacdj4-1"
13
13
  })(["display:flex;cursor:pointer;border-left:", "px solid ", ";background-color:", ";border-top-right-radius:4px;border-bottom-right-radius:4px;:hover{border-left:", "px solid ", ";background-color:", ";}"], spacing.xs, function (_ref) {
14
14
  var $selected = _ref.$selected;
15
15
  return $selected ? colors.gray15 : colors.gray90;
@@ -22,7 +22,7 @@ export var StyledAnchorSection = /*#__PURE__*/styled.li.withConfig({
22
22
  }, colors.gray90);
23
23
  export var StyledAnchor = /*#__PURE__*/styled.a.withConfig({
24
24
  displayName: "StyledAnchor",
25
- componentId: "core-12_40_0__sc-aacdj4-2"
25
+ componentId: "core-12_42_0__sc-aacdj4-2"
26
26
  })(["width:100%;padding:6px ", "px;", " ", ";", " :focus-visible{box-shadow:inset 0 0 0 2px ", ";outline:none;}"], spacing.sm, getTypographyIntent('body'), function (_ref4) {
27
27
  var $selected = _ref4.$selected;
28
28
  return $selected ? css(["font-weight:600;"]) : '';
@@ -28,26 +28,26 @@ var iconSize = {
28
28
  };
29
29
  export var StyledAvatarOverlay = /*#__PURE__*/styled.div.withConfig({
30
30
  displayName: "StyledAvatarOverlay",
31
- componentId: "core-12_40_0__sc-7q2ydl-0"
31
+ componentId: "core-12_42_0__sc-7q2ydl-0"
32
32
  })(["width:100%;height:100%;position:absolute;top:0;left:0;border-radius:100%;opacity:0;"]);
33
33
  export var StyledIconContainer = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledIconContainer",
35
- componentId: "core-12_40_0__sc-7q2ydl-1"
35
+ componentId: "core-12_42_0__sc-7q2ydl-1"
36
36
  })(["display:inline-flex;"]);
37
37
  export var StyledLabelContainer = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledLabelContainer",
39
- componentId: "core-12_40_0__sc-7q2ydl-2"
39
+ componentId: "core-12_42_0__sc-7q2ydl-2"
40
40
  })(["text-transform:uppercase;"]);
41
41
  export var StyledPortraitContainer = /*#__PURE__*/styled.div.withConfig({
42
42
  displayName: "StyledPortraitContainer",
43
- componentId: "core-12_40_0__sc-7q2ydl-3"
43
+ componentId: "core-12_42_0__sc-7q2ydl-3"
44
44
  })(["background-color:", ";background-position:center;background-repeat:no-repeat;background-size:cover;height:100%;width:100%;", ""], colors.white, function (_ref) {
45
45
  var $imageUrl = _ref.$imageUrl;
46
46
  return css(["background-image:url(", ");"], $imageUrl);
47
47
  });
48
48
  export var StyledAvatarContainer = /*#__PURE__*/styled.div.withConfig({
49
49
  displayName: "StyledAvatarContainer",
50
- componentId: "core-12_40_0__sc-7q2ydl-4"
50
+ componentId: "core-12_42_0__sc-7q2ydl-4"
51
51
  })(["display:inline-flex;justify-content:center;align-items:center;border-radius:100%;overflow:hidden;position:relative;cursor:default;color:", ";background-color:", ";text-decoration:none;a:has(> &){text-decoration:none;}&:focus{", "}a:focus:has(> &){", " border-radius:100%;}", " ", ";"], colors.white, colors.gray30, getGapOutlineFocus('outside'), getGapOutlineFocus('outside'), function (_ref2) {
52
52
  var _ref2$$size = _ref2.$size,
53
53
  $size = _ref2$$size === void 0 ? 'md' : _ref2$$size;
@@ -17,7 +17,7 @@ export declare function AvatarContent({ imageUrl, initials, type, size, ...props
17
17
  type: AvatarStackItem['type'];
18
18
  size: AvatarStackSize;
19
19
  }): React.JSX.Element | null;
20
- export declare function FoldedAvatarStack<Item extends AvatarStackItem>({ items, onClickViewAll, size, restCountLabel, isViewAllNeeded, title, }: FoldedAvatarStackProps<Item>): React.JSX.Element;
20
+ export declare function FoldedAvatarStack<Item extends AvatarStackItem>({ items, onClickViewAll, size, restCountLabel, isViewAllNeeded, title, viewMoreTriggerRef, }: FoldedAvatarStackProps<Item>): React.JSX.Element;
21
21
  export declare function ViewAllModal<Item extends AvatarStackItem>({ isOpen, onClose, title, items, }: ViewAllModalProps<Item>): React.JSX.Element;
22
22
  export declare function defaultInitials<Item extends AvatarStackItem>(item: Item): string;
23
23
  export declare function defaultGetImageUrl<Item extends AvatarStackItem>(item: Item): string;
@@ -23,10 +23,11 @@ import { Button } from '../Button';
23
23
  import { ContactItem } from '../ContactItem';
24
24
  import { Link } from '../Link';
25
25
  import { Modal } from '../Modal';
26
- import { OverlayTrigger } from '../OverlayTrigger/OverlayTrigger';
26
+ import { OverlayTrigger } from '../OverlayTrigger';
27
27
  import { Popover } from '../Popover';
28
28
  import { Typography } from '../Typography';
29
29
  import { useI18nContext } from '../_hooks/I18n';
30
+ import { mergeRefs } from '../_utils/mergeRefs';
30
31
  import { colorsOrder, foldedItemsCap, restCountThreshold, visibleItemsCap } from './AvatarStack.constants';
31
32
  import { StyledAvatar, StyledContactItem, StyledContactItems, StyledModalBody, StyledViewAllWrapper, StyledWrapper } from './AvatarStack.styles';
32
33
  import { useAvatarPopover } from './useAvatarPopover';
@@ -160,7 +161,7 @@ function AvatarWithPopover(_ref4) {
160
161
  }),
161
162
  triggerRef = _useAvatarPopover.triggerRef,
162
163
  popoverContentRef = _useAvatarPopover.popoverContentRef,
163
- beforeShow = _useAvatarPopover.beforeShow,
164
+ _beforeShow = _useAvatarPopover.beforeShow,
164
165
  beforeHide = _useAvatarPopover.beforeHide,
165
166
  afterHide = _useAvatarPopover.afterHide;
166
167
  return /*#__PURE__*/React.createElement(OverlayTrigger, {
@@ -173,7 +174,10 @@ function AvatarWithPopover(_ref4) {
173
174
  arrow: true,
174
175
  trackAriaExpanded: true,
175
176
  placement: "top",
176
- beforeShow: beforeShow,
177
+ beforeShow: function beforeShow(e) {
178
+ if (item.inactive) return false;
179
+ return _beforeShow(e);
180
+ },
177
181
  beforeHide: beforeHide,
178
182
  afterHide: afterHide,
179
183
  overlay: /*#__PURE__*/React.createElement(Popover.Content, {
@@ -209,7 +213,8 @@ export function FoldedAvatarStack(_ref5) {
209
213
  size = _ref5.size,
210
214
  restCountLabel = _ref5.restCountLabel,
211
215
  isViewAllNeeded = _ref5.isViewAllNeeded,
212
- title = _ref5.title;
216
+ title = _ref5.title,
217
+ viewMoreTriggerRef = _ref5.viewMoreTriggerRef;
213
218
  var I18n = useI18nContext();
214
219
  var restAvatarId = useId();
215
220
  var _useAvatarPopover2 = useAvatarPopover({
@@ -256,8 +261,9 @@ export function FoldedAvatarStack(_ref5) {
256
261
  variant: "secondary"
257
262
  }, I18n.t('core.avatarStack.viewAll'))))
258
263
  }, /*#__PURE__*/React.createElement(StyledAvatar, {
259
- ref: triggerRef,
264
+ ref: viewMoreTriggerRef ? mergeRefs(triggerRef, viewMoreTriggerRef) : triggerRef,
260
265
  role: "button",
266
+ tabIndex: 0,
261
267
  id: restAvatarId,
262
268
  "aria-label": "".concat(restCountLabel, ", ").concat(title),
263
269
  "data-qa": "core-avatar-stack-folded-avatars-popover-trigger",
@@ -319,6 +325,7 @@ export function getTransformedItems(_ref7) {
319
325
  });
320
326
  });
321
327
  }
328
+ var MODAL_CLOSE_FOCUS_DELAY_MS = 350;
322
329
  var _AvatarStack = function _AvatarStack(_ref8, ref) {
323
330
  var _items = _ref8.items,
324
331
  title = _ref8.title,
@@ -334,6 +341,21 @@ var _AvatarStack = function _AvatarStack(_ref8, ref) {
334
341
  _useState2 = _slicedToArray(_useState, 2),
335
342
  isModalOpen = _useState2[0],
336
343
  setIsModalOpen = _useState2[1];
344
+ var viewMoreTriggerRef = React.useRef(null);
345
+ var wasModalOpenRef = React.useRef(false);
346
+ React.useEffect(function () {
347
+ if (wasModalOpenRef.current && !isModalOpen) {
348
+ var id = setTimeout(function () {
349
+ var _viewMoreTriggerRef$c;
350
+ (_viewMoreTriggerRef$c = viewMoreTriggerRef.current) === null || _viewMoreTriggerRef$c === void 0 ? void 0 : _viewMoreTriggerRef$c.focus();
351
+ }, MODAL_CLOSE_FOCUS_DELAY_MS);
352
+ wasModalOpenRef.current = false;
353
+ return function () {
354
+ return clearTimeout(id);
355
+ };
356
+ }
357
+ wasModalOpenRef.current = isModalOpen;
358
+ }, [isModalOpen]);
337
359
  var items = useMemo(function () {
338
360
  return getTransformedItems({
339
361
  items: _items,
@@ -375,7 +397,8 @@ var _AvatarStack = function _AvatarStack(_ref8, ref) {
375
397
  return setIsModalOpen(true);
376
398
  },
377
399
  size: size,
378
- title: title
400
+ title: title,
401
+ viewMoreTriggerRef: !onClickViewAll ? viewMoreTriggerRef : undefined
379
402
  })));
380
403
  };
381
404
 
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarStack.js","names":["Building","People","useId","React","forwardRef","useMemo","useState","Avatar","Button","ContactItem","Link","Modal","OverlayTrigger","Popover","Typography","useI18nContext","colorsOrder","foldedItemsCap","restCountThreshold","visibleItemsCap","StyledAvatar","StyledContactItem","StyledContactItems","StyledModalBody","StyledViewAllWrapper","StyledWrapper","useAvatarPopover","OVERLAY_WRAPPER_SELECTOR","FOCUSABLE_SELECTOR","POPOVER_TRIGGER","POPOVER_SHOW_KEYS","POPOVER_HIDE_KEYS","overlay","target","getOverflowValues","items","foldedItems","restCountLabel","isViewAllNeeded","visibleItems","length","slice","restItemsCount","concat","getIcon","type","size","createElement","getContactIcon","getAvatarIcon","avatarSize","getColorOrder","avatarItems","reduce","_ref","item","map","color","imageUrl","inactive","set","id","currentColorIndex","indexOf","nextColorIndex","Map","AvatarStackContactItem","_ref2","initials","name","linkUrl","description","disabled","icon","key","Title","href","Description","AvatarContent","_ref3","props","_objectWithoutProperties","_excluded","avatarIcon","Portrait","_extends","Icon","Label","AvatarWithPopover","_ref4","colors","_useAvatarPopover","focusableSelector","overlayWrapperSelector","triggerRef","popoverContentRef","beforeShow","beforeHide","afterHide","trigger","showKeys","hideKeys","restoreFocusOnHide","shrinkOverlay","arrow","trackAriaExpanded","placement","Content","ref","role","$color","get","FoldedAvatarStack","_ref5","onClickViewAll","title","I18n","restAvatarId","_useAvatarPopover2","onClick","variant","t","ViewAllModal","_ref6","isOpen","onClose","labelId","text","open","Header","Heading","Footer","FooterButtons","defaultInitials","defaultGetImageUrl","getTransformedItems","_ref7","getInitials","getImageUrl","_objectSpread","_AvatarStack","_ref8","_items","_ref8$size","_ref8$getInitials","_ref8$getImageUrl","_excluded2","_useState","_useState2","_slicedToArray","isModalOpen","setIsModalOpen","_useMemo","visibleItemsColors","AvatarStack","displayName"],"sources":["../../src/AvatarStack/AvatarStack.tsx"],"sourcesContent":["import { Building, People } from '@procore/core-icons'\nimport { useId } from '@react-aria/utils'\nimport React, { forwardRef, useMemo, useState } from 'react'\nimport { Avatar } from '../Avatar'\nimport { Button } from '../Button'\nimport { ContactItem } from '../ContactItem'\nimport { Link } from '../Link'\nimport { Modal } from '../Modal'\nimport { OverlayTrigger } from '../OverlayTrigger/OverlayTrigger'\nimport { Popover } from '../Popover'\nimport { Typography } from '../Typography'\nimport { useI18nContext } from '../_hooks/I18n'\nimport type { TriggerVariant } from '../_hooks/Trigger'\nimport type { Color } from '../_styles/colors'\nimport {\n colorsOrder,\n foldedItemsCap,\n restCountThreshold,\n visibleItemsCap,\n} from './AvatarStack.constants'\nimport {\n StyledAvatar,\n StyledContactItem,\n StyledContactItems,\n StyledModalBody,\n StyledViewAllWrapper,\n StyledWrapper,\n} from './AvatarStack.styles'\nimport type {\n AvatarStackItem,\n AvatarStackItemId,\n AvatarStackItemType,\n AvatarStackProps,\n AvatarStackSize,\n FoldedAvatarStackProps,\n ViewAllModalProps,\n} from './AvatarStack.types'\nimport { useAvatarPopover } from './useAvatarPopover'\n\nconst OVERLAY_WRAPPER_SELECTOR =\n '[data-qa=\"core-overlay-trigger-overlay-wrapper\"]'\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nconst POPOVER_TRIGGER = ['hover', 'focus'] as TriggerVariant[]\n\nconst POPOVER_SHOW_KEYS = ['Enter', ' ']\n\nconst POPOVER_HIDE_KEYS = {\n overlay: ['Escape', 'Esc'],\n target: ['Escape', 'Esc'],\n}\n\nexport function getOverflowValues<Item extends AvatarStackItem>(items: Item[]) {\n let foldedItems: Item[] = []\n let restCountLabel: string | null = null\n let isViewAllNeeded = false\n\n const visibleItems =\n items.length > visibleItemsCap ? items.slice(0, visibleItemsCap - 1) : items\n const restItemsCount = items.length - visibleItems.length\n\n if (restItemsCount > 0) {\n foldedItems = items.slice(\n visibleItems.length,\n visibleItems.length + foldedItemsCap\n )\n\n restCountLabel =\n restItemsCount > restCountThreshold\n ? `${restCountThreshold}+`\n : `+${restItemsCount}`\n\n isViewAllNeeded = restItemsCount > foldedItemsCap\n }\n\n return {\n visibleItems,\n foldedItems,\n restCountLabel,\n isViewAllNeeded,\n }\n}\n\nexport function getIcon(type: AvatarStackItemType, size: 'md' | 'sm') {\n switch (type) {\n case 'company':\n return <Building size={size} />\n\n case 'group':\n return <People size={size} />\n\n case 'user':\n default:\n return null\n }\n}\n\nfunction getContactIcon(type: AvatarStackItemType) {\n return getIcon(type, 'md')\n}\n\nexport function getAvatarIcon(\n type: AvatarStackItemType,\n size: AvatarStackSize\n) {\n const avatarSize = size === 'lg' ? 'md' : 'sm'\n return getIcon(type, avatarSize)\n}\n\nexport function getColorOrder(avatarItems: AvatarStackItem[]) {\n return avatarItems.reduce(\n ({ map, color }, item) => {\n if (item.imageUrl) {\n return {\n map,\n color,\n }\n }\n\n if (item.inactive) {\n map.set(item.id, 'gray70')\n\n return {\n map,\n color,\n }\n }\n\n map.set(item.id, color)\n\n const currentColorIndex = colorsOrder.indexOf(color)\n const nextColorIndex = (currentColorIndex + 1) % colorsOrder.length\n return {\n map,\n color: item.imageUrl ? color : colorsOrder[nextColorIndex],\n }\n },\n {\n map: new Map<AvatarStackItemId, Color>(),\n color: colorsOrder[0],\n }\n ).map\n}\n\nexport function AvatarStackContactItem({\n id,\n type,\n imageUrl,\n initials,\n inactive,\n name,\n linkUrl,\n description,\n}: AvatarStackItem) {\n return (\n <StyledContactItem\n disabled={inactive}\n icon={getContactIcon(type)}\n imageUrl={imageUrl}\n initials={initials}\n key={id}\n >\n <ContactItem.Title>\n {!inactive && linkUrl ? <Link href={linkUrl}>{name}</Link> : name}\n </ContactItem.Title>\n <ContactItem.Description>\n {type === 'group' ? (\n <Typography color=\"gray15\">{description}</Typography>\n ) : (\n description\n )}\n </ContactItem.Description>\n </StyledContactItem>\n )\n}\n\nexport function AvatarContent({\n imageUrl,\n initials,\n type,\n size,\n ...props\n}: {\n imageUrl?: AvatarStackItem['imageUrl']\n initials: AvatarStackItem['initials']\n type: AvatarStackItem['type']\n size: AvatarStackSize\n}) {\n const avatarIcon = getAvatarIcon(type, size)\n\n if (imageUrl) {\n return <Avatar.Portrait {...props} imageUrl={imageUrl} />\n }\n\n if (avatarIcon) {\n return <Avatar.Icon {...props} icon={avatarIcon} />\n }\n\n if (initials) {\n return <Avatar.Label {...props}>{initials}</Avatar.Label>\n }\n\n return null\n}\n\nfunction AvatarWithPopover<Item extends AvatarStackItem>({\n item,\n size,\n colors,\n}: {\n item: Item\n size: AvatarStackSize\n colors: Map<AvatarStackItemId, Color>\n}) {\n const { triggerRef, popoverContentRef, beforeShow, beforeHide, afterHide } =\n useAvatarPopover({\n focusableSelector: FOCUSABLE_SELECTOR,\n overlayWrapperSelector: OVERLAY_WRAPPER_SELECTOR,\n })\n\n return (\n <OverlayTrigger\n key={item.id}\n trigger={POPOVER_TRIGGER}\n showKeys={POPOVER_SHOW_KEYS}\n hideKeys={POPOVER_HIDE_KEYS}\n restoreFocusOnHide={false}\n shrinkOverlay\n arrow\n trackAriaExpanded\n placement=\"top\"\n beforeShow={beforeShow}\n beforeHide={beforeHide}\n afterHide={afterHide}\n overlay={\n <Popover.Content ref={popoverContentRef} placement=\"top\">\n <AvatarStackContactItem\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n </Popover.Content>\n }\n >\n <StyledAvatar\n ref={triggerRef}\n role=\"button\"\n $color={colors.get(item.id) as Color}\n aria-label={`${item.name}, ${item.description}`}\n disabled={item.inactive}\n size={size}\n >\n <AvatarContent\n imageUrl={item.imageUrl}\n initials={item.initials}\n type={item.type}\n size={size}\n />\n </StyledAvatar>\n </OverlayTrigger>\n )\n}\n\nexport function FoldedAvatarStack<Item extends AvatarStackItem>({\n items,\n onClickViewAll,\n size,\n restCountLabel,\n isViewAllNeeded,\n title,\n}: FoldedAvatarStackProps<Item>) {\n const I18n = useI18nContext()\n const restAvatarId = useId()\n const { triggerRef, popoverContentRef, beforeShow, beforeHide, afterHide } =\n useAvatarPopover({\n focusableSelector: FOCUSABLE_SELECTOR,\n overlayWrapperSelector: OVERLAY_WRAPPER_SELECTOR,\n })\n\n return (\n <OverlayTrigger\n aria-labelledby={restAvatarId}\n trigger={POPOVER_TRIGGER}\n showKeys={POPOVER_SHOW_KEYS}\n hideKeys={POPOVER_HIDE_KEYS}\n restoreFocusOnHide={false}\n shrinkOverlay\n arrow\n trackAriaExpanded\n placement=\"top\"\n beforeShow={beforeShow}\n beforeHide={beforeHide}\n afterHide={afterHide}\n overlay={\n <Popover.Content ref={popoverContentRef} placement=\"top\">\n <StyledContactItems>\n {items.map((item) => (\n <AvatarStackContactItem\n key={item.id}\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n ))}\n </StyledContactItems>\n {isViewAllNeeded && (\n <StyledViewAllWrapper>\n <Button\n data-qa=\"core-avatar-stack-view-all-modal-trigger\"\n onClick={onClickViewAll}\n size=\"sm\"\n variant=\"secondary\"\n >\n {I18n.t('core.avatarStack.viewAll')}\n </Button>\n </StyledViewAllWrapper>\n )}\n </Popover.Content>\n }\n >\n <StyledAvatar\n ref={triggerRef}\n role=\"button\"\n id={restAvatarId}\n aria-label={`${restCountLabel}, ${title}`}\n data-qa=\"core-avatar-stack-folded-avatars-popover-trigger\"\n size={size}\n $color=\"gray85\"\n >\n <Avatar.Label aria-hidden>\n <Typography color=\"black\">{restCountLabel}</Typography>\n </Avatar.Label>\n </StyledAvatar>\n </OverlayTrigger>\n )\n}\n\nexport function ViewAllModal<Item extends AvatarStackItem>({\n isOpen,\n onClose,\n title,\n items,\n}: ViewAllModalProps<Item>) {\n const I18n = useI18nContext()\n const labelId = useId()\n const text = `${title} (${items.length})`\n\n return (\n <Modal\n role=\"dialog\"\n aria-labelledby={labelId}\n open={isOpen}\n onClose={onClose}\n >\n <Modal.Header onClose={onClose}>\n <Modal.Heading id={labelId}>{text}</Modal.Heading>\n </Modal.Header>\n <StyledModalBody>\n {items.map((item) => (\n <AvatarStackContactItem\n key={item.id}\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n ))}\n </StyledModalBody>\n <Modal.Footer>\n <Modal.FooterButtons>\n <Button onClick={onClose}>{I18n.t('core.avatarStack.close')}</Button>\n </Modal.FooterButtons>\n </Modal.Footer>\n </Modal>\n )\n}\n\nexport function defaultInitials<Item extends AvatarStackItem>(item: Item) {\n return item.initials as string\n}\n\nexport function defaultGetImageUrl<Item extends AvatarStackItem>(item: Item) {\n return item.imageUrl as string\n}\n\nexport function getTransformedItems<Item extends AvatarStackItem>({\n items,\n getInitials,\n getImageUrl,\n}: {\n items: Item[]\n getInitials: AvatarStackProps<Item>['getInitials']\n getImageUrl: AvatarStackProps<Item>['getImageUrl']\n}) {\n return items.map((item) => ({\n ...item,\n initials: getInitials!(item),\n imageUrl: getImageUrl!(item),\n }))\n}\n\nconst _AvatarStack = <Item extends AvatarStackItem>(\n {\n items: _items,\n title,\n size = 'lg',\n getInitials = defaultInitials,\n getImageUrl = defaultGetImageUrl,\n onClickViewAll,\n ...props\n }: AvatarStackProps<Item>,\n ref: React.ForwardedRef<HTMLDivElement>\n) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const items = useMemo(\n () =>\n getTransformedItems({\n items: _items,\n getInitials,\n getImageUrl,\n }),\n [_items]\n )\n\n const { visibleItems, foldedItems, restCountLabel, isViewAllNeeded } =\n useMemo(() => getOverflowValues(items), [items])\n\n const visibleItemsColors = useMemo(\n () => getColorOrder(visibleItems),\n [visibleItems]\n )\n\n return (\n <div ref={ref} {...props}>\n {isViewAllNeeded && !onClickViewAll && (\n <ViewAllModal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n title={title}\n items={items}\n />\n )}\n <StyledWrapper>\n {visibleItems.map((item) => {\n return (\n <AvatarWithPopover\n colors={visibleItemsColors}\n item={item}\n key={`${item.name}_${item.id}`}\n size={size}\n />\n )\n })}\n {foldedItems.length > 0 && (\n <FoldedAvatarStack\n restCountLabel={restCountLabel as string}\n isViewAllNeeded={isViewAllNeeded}\n items={foldedItems}\n onClickViewAll={onClickViewAll || (() => setIsModalOpen(true))}\n size={size}\n title={title}\n />\n )}\n </StyledWrapper>\n </div>\n )\n}\n\n/**\n\n We use avatars to visually represent our users, places, and things in the app.\n These can be in the form of rich media or representative illustrations.\n\n @since 10.19.0\n\n @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-avatarstack--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar-stack)\n */\nexport const AvatarStack = forwardRef(_AvatarStack) as <\n Item extends AvatarStackItem\n>(\n props: AvatarStackProps<Item> & { ref?: React.ForwardedRef<HTMLDivElement> }\n) => ReturnType<typeof _AvatarStack>\n\n// @ts-ignore\nAvatarStack.displayName = 'AvatarStack'\n"],"mappings":"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"}
1
+ {"version":3,"file":"AvatarStack.js","names":["Building","People","useId","React","forwardRef","useMemo","useState","Avatar","Button","ContactItem","Link","Modal","OverlayTrigger","Popover","Typography","useI18nContext","mergeRefs","colorsOrder","foldedItemsCap","restCountThreshold","visibleItemsCap","StyledAvatar","StyledContactItem","StyledContactItems","StyledModalBody","StyledViewAllWrapper","StyledWrapper","useAvatarPopover","OVERLAY_WRAPPER_SELECTOR","FOCUSABLE_SELECTOR","POPOVER_TRIGGER","POPOVER_SHOW_KEYS","POPOVER_HIDE_KEYS","overlay","target","getOverflowValues","items","foldedItems","restCountLabel","isViewAllNeeded","visibleItems","length","slice","restItemsCount","concat","getIcon","type","size","createElement","getContactIcon","getAvatarIcon","avatarSize","getColorOrder","avatarItems","reduce","_ref","item","map","color","imageUrl","inactive","set","id","currentColorIndex","indexOf","nextColorIndex","Map","AvatarStackContactItem","_ref2","initials","name","linkUrl","description","disabled","icon","key","Title","href","Description","AvatarContent","_ref3","props","_objectWithoutProperties","_excluded","avatarIcon","Portrait","_extends","Icon","Label","AvatarWithPopover","_ref4","colors","_useAvatarPopover","focusableSelector","overlayWrapperSelector","triggerRef","popoverContentRef","beforeShow","beforeHide","afterHide","trigger","showKeys","hideKeys","restoreFocusOnHide","shrinkOverlay","arrow","trackAriaExpanded","placement","e","Content","ref","role","$color","get","FoldedAvatarStack","_ref5","onClickViewAll","title","viewMoreTriggerRef","I18n","restAvatarId","_useAvatarPopover2","onClick","variant","t","tabIndex","ViewAllModal","_ref6","isOpen","onClose","labelId","text","open","Header","Heading","Footer","FooterButtons","defaultInitials","defaultGetImageUrl","getTransformedItems","_ref7","getInitials","getImageUrl","_objectSpread","MODAL_CLOSE_FOCUS_DELAY_MS","_AvatarStack","_ref8","_items","_ref8$size","_ref8$getInitials","_ref8$getImageUrl","_excluded2","_useState","_useState2","_slicedToArray","isModalOpen","setIsModalOpen","useRef","wasModalOpenRef","useEffect","current","setTimeout","_viewMoreTriggerRef$c","focus","clearTimeout","_useMemo","visibleItemsColors","undefined","AvatarStack","displayName"],"sources":["../../src/AvatarStack/AvatarStack.tsx"],"sourcesContent":["import { Building, People } from '@procore/core-icons'\nimport { useId } from '@react-aria/utils'\nimport React, { forwardRef, useMemo, useState } from 'react'\nimport { Avatar } from '../Avatar'\nimport { Button } from '../Button'\nimport { ContactItem } from '../ContactItem'\nimport { Link } from '../Link'\nimport { Modal } from '../Modal'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { Popover } from '../Popover'\nimport { Typography } from '../Typography'\nimport { useI18nContext } from '../_hooks/I18n'\nimport type { TriggerVariant } from '../_hooks/Trigger'\nimport type { Color } from '../_styles/colors'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n colorsOrder,\n foldedItemsCap,\n restCountThreshold,\n visibleItemsCap,\n} from './AvatarStack.constants'\nimport {\n StyledAvatar,\n StyledContactItem,\n StyledContactItems,\n StyledModalBody,\n StyledViewAllWrapper,\n StyledWrapper,\n} from './AvatarStack.styles'\nimport type {\n AvatarStackItem,\n AvatarStackItemId,\n AvatarStackItemType,\n AvatarStackProps,\n AvatarStackSize,\n FoldedAvatarStackProps,\n ViewAllModalProps,\n} from './AvatarStack.types'\nimport { useAvatarPopover } from './useAvatarPopover'\n\nconst OVERLAY_WRAPPER_SELECTOR =\n '[data-qa=\"core-overlay-trigger-overlay-wrapper\"]'\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nconst POPOVER_TRIGGER = ['hover', 'focus'] as TriggerVariant[]\n\nconst POPOVER_SHOW_KEYS = ['Enter', ' ']\n\nconst POPOVER_HIDE_KEYS = {\n overlay: ['Escape', 'Esc'],\n target: ['Escape', 'Esc'],\n}\n\nexport function getOverflowValues<Item extends AvatarStackItem>(items: Item[]) {\n let foldedItems: Item[] = []\n let restCountLabel: string | null = null\n let isViewAllNeeded = false\n\n const visibleItems =\n items.length > visibleItemsCap ? items.slice(0, visibleItemsCap - 1) : items\n const restItemsCount = items.length - visibleItems.length\n\n if (restItemsCount > 0) {\n foldedItems = items.slice(\n visibleItems.length,\n visibleItems.length + foldedItemsCap\n )\n\n restCountLabel =\n restItemsCount > restCountThreshold\n ? `${restCountThreshold}+`\n : `+${restItemsCount}`\n\n isViewAllNeeded = restItemsCount > foldedItemsCap\n }\n\n return {\n visibleItems,\n foldedItems,\n restCountLabel,\n isViewAllNeeded,\n }\n}\n\nexport function getIcon(type: AvatarStackItemType, size: 'md' | 'sm') {\n switch (type) {\n case 'company':\n return <Building size={size} />\n\n case 'group':\n return <People size={size} />\n\n case 'user':\n default:\n return null\n }\n}\n\nfunction getContactIcon(type: AvatarStackItemType) {\n return getIcon(type, 'md')\n}\n\nexport function getAvatarIcon(\n type: AvatarStackItemType,\n size: AvatarStackSize\n) {\n const avatarSize = size === 'lg' ? 'md' : 'sm'\n return getIcon(type, avatarSize)\n}\n\nexport function getColorOrder(avatarItems: AvatarStackItem[]) {\n return avatarItems.reduce(\n ({ map, color }, item) => {\n if (item.imageUrl) {\n return {\n map,\n color,\n }\n }\n\n if (item.inactive) {\n map.set(item.id, 'gray70')\n\n return {\n map,\n color,\n }\n }\n\n map.set(item.id, color)\n\n const currentColorIndex = colorsOrder.indexOf(color)\n const nextColorIndex = (currentColorIndex + 1) % colorsOrder.length\n return {\n map,\n color: item.imageUrl ? color : colorsOrder[nextColorIndex],\n }\n },\n {\n map: new Map<AvatarStackItemId, Color>(),\n color: colorsOrder[0],\n }\n ).map\n}\n\nexport function AvatarStackContactItem({\n id,\n type,\n imageUrl,\n initials,\n inactive,\n name,\n linkUrl,\n description,\n}: AvatarStackItem) {\n return (\n <StyledContactItem\n disabled={inactive}\n icon={getContactIcon(type)}\n imageUrl={imageUrl}\n initials={initials}\n key={id}\n >\n <ContactItem.Title>\n {!inactive && linkUrl ? <Link href={linkUrl}>{name}</Link> : name}\n </ContactItem.Title>\n <ContactItem.Description>\n {type === 'group' ? (\n <Typography color=\"gray15\">{description}</Typography>\n ) : (\n description\n )}\n </ContactItem.Description>\n </StyledContactItem>\n )\n}\n\nexport function AvatarContent({\n imageUrl,\n initials,\n type,\n size,\n ...props\n}: {\n imageUrl?: AvatarStackItem['imageUrl']\n initials: AvatarStackItem['initials']\n type: AvatarStackItem['type']\n size: AvatarStackSize\n}) {\n const avatarIcon = getAvatarIcon(type, size)\n\n if (imageUrl) {\n return <Avatar.Portrait {...props} imageUrl={imageUrl} />\n }\n\n if (avatarIcon) {\n return <Avatar.Icon {...props} icon={avatarIcon} />\n }\n\n if (initials) {\n return <Avatar.Label {...props}>{initials}</Avatar.Label>\n }\n\n return null\n}\n\nfunction AvatarWithPopover<Item extends AvatarStackItem>({\n item,\n size,\n colors,\n}: {\n item: Item\n size: AvatarStackSize\n colors: Map<AvatarStackItemId, Color>\n}) {\n const { triggerRef, popoverContentRef, beforeShow, beforeHide, afterHide } =\n useAvatarPopover({\n focusableSelector: FOCUSABLE_SELECTOR,\n overlayWrapperSelector: OVERLAY_WRAPPER_SELECTOR,\n })\n\n return (\n <OverlayTrigger\n key={item.id}\n trigger={POPOVER_TRIGGER}\n showKeys={POPOVER_SHOW_KEYS}\n hideKeys={POPOVER_HIDE_KEYS}\n restoreFocusOnHide={false}\n shrinkOverlay\n arrow\n trackAriaExpanded\n placement=\"top\"\n beforeShow={(e) => {\n if (item.inactive) return false\n return beforeShow(e)\n }}\n beforeHide={beforeHide}\n afterHide={afterHide}\n overlay={\n <Popover.Content ref={popoverContentRef} placement=\"top\">\n <AvatarStackContactItem\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n </Popover.Content>\n }\n >\n <StyledAvatar\n ref={triggerRef}\n role=\"button\"\n $color={colors.get(item.id) as Color}\n aria-label={`${item.name}, ${item.description}`}\n disabled={item.inactive}\n size={size}\n >\n <AvatarContent\n imageUrl={item.imageUrl}\n initials={item.initials}\n type={item.type}\n size={size}\n />\n </StyledAvatar>\n </OverlayTrigger>\n )\n}\n\nexport function FoldedAvatarStack<Item extends AvatarStackItem>({\n items,\n onClickViewAll,\n size,\n restCountLabel,\n isViewAllNeeded,\n title,\n viewMoreTriggerRef,\n}: FoldedAvatarStackProps<Item>) {\n const I18n = useI18nContext()\n const restAvatarId = useId()\n const { triggerRef, popoverContentRef, beforeShow, beforeHide, afterHide } =\n useAvatarPopover({\n focusableSelector: FOCUSABLE_SELECTOR,\n overlayWrapperSelector: OVERLAY_WRAPPER_SELECTOR,\n })\n\n return (\n <OverlayTrigger\n aria-labelledby={restAvatarId}\n trigger={POPOVER_TRIGGER}\n showKeys={POPOVER_SHOW_KEYS}\n hideKeys={POPOVER_HIDE_KEYS}\n restoreFocusOnHide={false}\n shrinkOverlay\n arrow\n trackAriaExpanded\n placement=\"top\"\n beforeShow={beforeShow}\n beforeHide={beforeHide}\n afterHide={afterHide}\n overlay={\n <Popover.Content ref={popoverContentRef} placement=\"top\">\n <StyledContactItems>\n {items.map((item) => (\n <AvatarStackContactItem\n key={item.id}\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n ))}\n </StyledContactItems>\n {isViewAllNeeded && (\n <StyledViewAllWrapper>\n <Button\n data-qa=\"core-avatar-stack-view-all-modal-trigger\"\n onClick={onClickViewAll}\n size=\"sm\"\n variant=\"secondary\"\n >\n {I18n.t('core.avatarStack.viewAll')}\n </Button>\n </StyledViewAllWrapper>\n )}\n </Popover.Content>\n }\n >\n <StyledAvatar\n ref={\n viewMoreTriggerRef\n ? mergeRefs(triggerRef, viewMoreTriggerRef)\n : triggerRef\n }\n role=\"button\"\n tabIndex={0}\n id={restAvatarId}\n aria-label={`${restCountLabel}, ${title}`}\n data-qa=\"core-avatar-stack-folded-avatars-popover-trigger\"\n size={size}\n $color=\"gray85\"\n >\n <Avatar.Label aria-hidden>\n <Typography color=\"black\">{restCountLabel}</Typography>\n </Avatar.Label>\n </StyledAvatar>\n </OverlayTrigger>\n )\n}\n\nexport function ViewAllModal<Item extends AvatarStackItem>({\n isOpen,\n onClose,\n title,\n items,\n}: ViewAllModalProps<Item>) {\n const I18n = useI18nContext()\n const labelId = useId()\n const text = `${title} (${items.length})`\n\n return (\n <Modal\n role=\"dialog\"\n aria-labelledby={labelId}\n open={isOpen}\n onClose={onClose}\n >\n <Modal.Header onClose={onClose}>\n <Modal.Heading id={labelId}>{text}</Modal.Heading>\n </Modal.Header>\n <StyledModalBody>\n {items.map((item) => (\n <AvatarStackContactItem\n key={item.id}\n id={item.id}\n type={item.type}\n imageUrl={item.imageUrl}\n initials={item.initials}\n inactive={item.inactive}\n name={item.name}\n linkUrl={item.linkUrl}\n description={item.description}\n />\n ))}\n </StyledModalBody>\n <Modal.Footer>\n <Modal.FooterButtons>\n <Button onClick={onClose}>{I18n.t('core.avatarStack.close')}</Button>\n </Modal.FooterButtons>\n </Modal.Footer>\n </Modal>\n )\n}\n\nexport function defaultInitials<Item extends AvatarStackItem>(item: Item) {\n return item.initials as string\n}\n\nexport function defaultGetImageUrl<Item extends AvatarStackItem>(item: Item) {\n return item.imageUrl as string\n}\n\nexport function getTransformedItems<Item extends AvatarStackItem>({\n items,\n getInitials,\n getImageUrl,\n}: {\n items: Item[]\n getInitials: AvatarStackProps<Item>['getInitials']\n getImageUrl: AvatarStackProps<Item>['getImageUrl']\n}) {\n return items.map((item) => ({\n ...item,\n initials: getInitials!(item),\n imageUrl: getImageUrl!(item),\n }))\n}\n\nconst MODAL_CLOSE_FOCUS_DELAY_MS = 350\n\nconst _AvatarStack = <Item extends AvatarStackItem>(\n {\n items: _items,\n title,\n size = 'lg',\n getInitials = defaultInitials,\n getImageUrl = defaultGetImageUrl,\n onClickViewAll,\n ...props\n }: AvatarStackProps<Item>,\n ref: React.ForwardedRef<HTMLDivElement>\n) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const viewMoreTriggerRef = React.useRef<HTMLDivElement>(null)\n const wasModalOpenRef = React.useRef(false)\n\n React.useEffect(() => {\n if (wasModalOpenRef.current && !isModalOpen) {\n const id = setTimeout(() => {\n viewMoreTriggerRef.current?.focus()\n }, MODAL_CLOSE_FOCUS_DELAY_MS)\n wasModalOpenRef.current = false\n return () => clearTimeout(id)\n }\n wasModalOpenRef.current = isModalOpen\n }, [isModalOpen])\n\n const items = useMemo(\n () =>\n getTransformedItems({\n items: _items,\n getInitials,\n getImageUrl,\n }),\n [_items]\n )\n\n const { visibleItems, foldedItems, restCountLabel, isViewAllNeeded } =\n useMemo(() => getOverflowValues(items), [items])\n\n const visibleItemsColors = useMemo(\n () => getColorOrder(visibleItems),\n [visibleItems]\n )\n\n return (\n <div ref={ref} {...props}>\n {isViewAllNeeded && !onClickViewAll && (\n <ViewAllModal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n title={title}\n items={items}\n />\n )}\n <StyledWrapper>\n {visibleItems.map((item) => {\n return (\n <AvatarWithPopover\n colors={visibleItemsColors}\n item={item}\n key={`${item.name}_${item.id}`}\n size={size}\n />\n )\n })}\n {foldedItems.length > 0 && (\n <FoldedAvatarStack\n restCountLabel={restCountLabel as string}\n isViewAllNeeded={isViewAllNeeded}\n items={foldedItems}\n onClickViewAll={onClickViewAll || (() => setIsModalOpen(true))}\n size={size}\n title={title}\n viewMoreTriggerRef={\n !onClickViewAll ? viewMoreTriggerRef : undefined\n }\n />\n )}\n </StyledWrapper>\n </div>\n )\n}\n\n/**\n\n We use avatars to visually represent our users, places, and things in the app.\n These can be in the form of rich media or representative illustrations.\n\n @since 10.19.0\n\n @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-avatarstack--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar-stack)\n */\nexport const AvatarStack = forwardRef(_AvatarStack) as <\n Item extends AvatarStackItem\n>(\n props: AvatarStackProps<Item> & { ref?: React.ForwardedRef<HTMLDivElement> }\n) => ReturnType<typeof _AvatarStack>\n\n// @ts-ignore\nAvatarStack.displayName = 'AvatarStack'\n"],"mappings":"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"}
@@ -7,32 +7,32 @@ import { spacing } from '../_styles/spacing';
7
7
  var maxModalWidth = 528;
8
8
  var StyledBaseAvatar = /*#__PURE__*/styled(Avatar).withConfig({
9
9
  displayName: "StyledBaseAvatar",
10
- componentId: "core-12_40_0__sc-ft72hu-0"
10
+ componentId: "core-12_42_0__sc-ft72hu-0"
11
11
  })(["border-color:", ";border-style:solid;border-width:1px;&:hover{z-index:1;}"], colors.white);
12
12
  export var StyledAvatar = /*#__PURE__*/styled(StyledBaseAvatar).withConfig({
13
13
  displayName: "StyledAvatar",
14
- componentId: "core-12_40_0__sc-ft72hu-1"
14
+ componentId: "core-12_42_0__sc-ft72hu-1"
15
15
  })(["background-color:", ";"], function (props) {
16
16
  return colors[props.$color];
17
17
  });
18
18
  export var StyledContactItems = /*#__PURE__*/styled.div.withConfig({
19
19
  displayName: "StyledContactItems",
20
- componentId: "core-12_40_0__sc-ft72hu-2"
20
+ componentId: "core-12_42_0__sc-ft72hu-2"
21
21
  })(["padding-top:", "px;padding-bottom:", "px;padding-left:", "px;"], spacing.sm, spacing.sm, spacing.xs);
22
22
  export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
23
23
  displayName: "StyledWrapper",
24
- componentId: "core-12_40_0__sc-ft72hu-3"
24
+ componentId: "core-12_42_0__sc-ft72hu-3"
25
25
  })(["display:flex;", " + ", "{margin-left:-", "px;}"], StyledAvatar, StyledAvatar, spacing.sm);
26
26
  export var StyledViewAllWrapper = /*#__PURE__*/styled.div.withConfig({
27
27
  displayName: "StyledViewAllWrapper",
28
- componentId: "core-12_40_0__sc-ft72hu-4"
28
+ componentId: "core-12_42_0__sc-ft72hu-4"
29
29
  })(["display:flex;margin-left:", "px;margin-bottom:", "px;"], spacing.md, spacing.lg);
30
30
  export var StyledModalBody = /*#__PURE__*/styled(Modal.Body).withConfig({
31
31
  displayName: "StyledModalBody",
32
- componentId: "core-12_40_0__sc-ft72hu-5"
32
+ componentId: "core-12_42_0__sc-ft72hu-5"
33
33
  })(["max-width:", "px;"], maxModalWidth);
34
34
  export var StyledContactItem = /*#__PURE__*/styled(ContactItem).withConfig({
35
35
  displayName: "StyledContactItem",
36
- componentId: "core-12_40_0__sc-ft72hu-6"
36
+ componentId: "core-12_42_0__sc-ft72hu-6"
37
37
  })(["flex-shrink:0;"]);
38
38
  //# sourceMappingURL=AvatarStack.styles.js.map
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare type AvatarStackItemId = string | number;
2
3
  export declare type AvatarStackItemType = 'company' | 'user' | 'group';
3
4
  export interface AvatarStackItem {
@@ -103,6 +104,12 @@ export interface FoldedAvatarStackProps<Item extends AvatarStackItem> {
103
104
  * @since 11.13.0
104
105
  */
105
106
  title: string;
107
+ /**
108
+ * Optional ref for the view-more ("+N") trigger. Used to restore focus when
109
+ * closing the View All modal (e.g. after Escape) for keyboard accessibility.
110
+ * since 12.39.0
111
+ */
112
+ viewMoreTriggerRef?: React.RefObject<HTMLDivElement | null>;
106
113
  }
107
114
  export interface ViewAllModalProps<Item extends AvatarStackItem> {
108
115
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarStack.types.js","names":[],"sources":["../../src/AvatarStack/AvatarStack.types.ts"],"sourcesContent":["export type AvatarStackItemId = string | number\n\nexport type AvatarStackItemType = 'company' | 'user' | 'group'\n\nexport interface AvatarStackItem {\n /**\n * Avatar ID\n * @since 10.19.0\n */\n id: AvatarStackItemId\n /**\n * Avatar name\n * @since 10.19.0\n */\n name: string\n /**\n * Avatar type\n * @since 10.19.0\n */\n type: AvatarStackItemType\n /**\n * Avatar description\n * @since 10.19.0\n */\n description?: string\n /**\n * Avatar image URL\n * @since 10.19.0\n */\n imageUrl?: string\n /**\n * Avatar link URL\n * @since 10.19.0\n */\n linkUrl?: string\n /**\n * Avatar initials\n * @since 10.19.0\n */\n initials?: string\n /**\n * Avatar inactive state\n * @defaultValue false\n * @since 10.19.0\n */\n inactive?: boolean\n}\n\nexport type AvatarStackSize = 'sm' | 'md' | 'lg'\n\nexport interface AvatarStackProps<\n Item extends AvatarStackItem = AvatarStackItem\n> {\n /**\n * Avatar stack items\n * @since 10.22.0\n */\n items: Item[]\n /**\n * Avatar item imageURL getter\n * @since 10.22.0\n */\n getImageUrl?: (item: Item) => string\n /**\n * Avatar item initials getter\n * @since 10.22.0\n */\n getInitials?: (item: Item) => string\n /**\n * Avatar stack title\n * @since 10.19.0\n */\n title: string\n\n /**\n * Avatar stack size\n * @defaultValue lg\n * @since 10.19.0\n */\n size?: AvatarStackSize\n\n /**\n * The callback to run when user clicks on view all button.\n * If provided, the modal with all items will not be shown.\n * @since 12.12.0\n */\n onClickViewAll?: () => void\n}\n\nexport interface FoldedAvatarStackProps<Item extends AvatarStackItem> {\n /**\n * @since 10.22.0\n */\n items: Item[]\n /**\n * @since 10.19.0\n */\n onClickViewAll: () => void\n /**\n * @since 10.19.0\n */\n size: AvatarStackSize\n /**\n * @since 10.19.0\n */\n restCountLabel: string\n /**\n * @since 10.19.0\n */\n isViewAllNeeded: boolean\n /**\n * @since 11.13.0\n */\n title: string\n}\n\nexport interface ViewAllModalProps<Item extends AvatarStackItem> {\n /**\n * @since 10.22.0\n */\n items: Item[]\n /**\n * @since 10.19.0\n */\n onClose: () => void\n /**\n * @since 10.19.0\n */\n isOpen: boolean\n /**\n * @since 10.19.0\n */\n title: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"AvatarStack.types.js","names":[],"sources":["../../src/AvatarStack/AvatarStack.types.ts"],"sourcesContent":["export type AvatarStackItemId = string | number\n\nexport type AvatarStackItemType = 'company' | 'user' | 'group'\n\nexport interface AvatarStackItem {\n /**\n * Avatar ID\n * @since 10.19.0\n */\n id: AvatarStackItemId\n /**\n * Avatar name\n * @since 10.19.0\n */\n name: string\n /**\n * Avatar type\n * @since 10.19.0\n */\n type: AvatarStackItemType\n /**\n * Avatar description\n * @since 10.19.0\n */\n description?: string\n /**\n * Avatar image URL\n * @since 10.19.0\n */\n imageUrl?: string\n /**\n * Avatar link URL\n * @since 10.19.0\n */\n linkUrl?: string\n /**\n * Avatar initials\n * @since 10.19.0\n */\n initials?: string\n /**\n * Avatar inactive state\n * @defaultValue false\n * @since 10.19.0\n */\n inactive?: boolean\n}\n\nexport type AvatarStackSize = 'sm' | 'md' | 'lg'\n\nexport interface AvatarStackProps<\n Item extends AvatarStackItem = AvatarStackItem\n> {\n /**\n * Avatar stack items\n * @since 10.22.0\n */\n items: Item[]\n /**\n * Avatar item imageURL getter\n * @since 10.22.0\n */\n getImageUrl?: (item: Item) => string\n /**\n * Avatar item initials getter\n * @since 10.22.0\n */\n getInitials?: (item: Item) => string\n /**\n * Avatar stack title\n * @since 10.19.0\n */\n title: string\n\n /**\n * Avatar stack size\n * @defaultValue lg\n * @since 10.19.0\n */\n size?: AvatarStackSize\n\n /**\n * The callback to run when user clicks on view all button.\n * If provided, the modal with all items will not be shown.\n * @since 12.12.0\n */\n onClickViewAll?: () => void\n}\n\nexport interface FoldedAvatarStackProps<Item extends AvatarStackItem> {\n /**\n * @since 10.22.0\n */\n items: Item[]\n /**\n * @since 10.19.0\n */\n onClickViewAll: () => void\n /**\n * @since 10.19.0\n */\n size: AvatarStackSize\n /**\n * @since 10.19.0\n */\n restCountLabel: string\n /**\n * @since 10.19.0\n */\n isViewAllNeeded: boolean\n /**\n * @since 11.13.0\n */\n title: string\n /**\n * Optional ref for the view-more (\"+N\") trigger. Used to restore focus when\n * closing the View All modal (e.g. after Escape) for keyboard accessibility.\n * since 12.39.0\n */\n viewMoreTriggerRef?: React.RefObject<HTMLDivElement | null>\n}\n\nexport interface ViewAllModalProps<Item extends AvatarStackItem> {\n /**\n * @since 10.22.0\n */\n items: Item[]\n /**\n * @since 10.19.0\n */\n onClose: () => void\n /**\n * @since 10.19.0\n */\n isOpen: boolean\n /**\n * @since 10.19.0\n */\n title: string\n}\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  import styled from 'styled-components';
2
2
  export var StyledBadge = /*#__PURE__*/styled.div.withConfig({
3
3
  displayName: "StyledBadge",
4
- componentId: "core-12_40_0__sc-rpertu-0"
4
+ componentId: "core-12_42_0__sc-rpertu-0"
5
5
  })(["display:inline-block;position:relative;"]);
6
6
  export var StyledBadgeLabel = /*#__PURE__*/styled.span.withConfig({
7
7
  displayName: "StyledBadgeLabel",
8
- componentId: "core-12_40_0__sc-rpertu-1"
8
+ componentId: "core-12_42_0__sc-rpertu-1"
9
9
  })(["bottom:100%;position:absolute;right:0;transform:translateX(50%) translateY(50%);"]);
10
10
  //# sourceMappingURL=Badge.styles.js.map
@@ -3,11 +3,11 @@ import { getTypographyIntent } from '../Typography';
3
3
  import { colors } from '../_styles/colors';
4
4
  export var StyledBadgeContainer = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "StyledBadgeContainer",
6
- componentId: "core-12_40_0__sc-s2n9gd-0"
6
+ componentId: "core-12_42_0__sc-s2n9gd-0"
7
7
  })(["display:inline-flex;position:relative;"]);
8
8
  export var StyledBadgeContent = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledBadgeContent",
10
- componentId: "core-12_40_0__sc-s2n9gd-1"
10
+ componentId: "core-12_42_0__sc-s2n9gd-1"
11
11
  })(["position:relative;", " ", " pointer-events:none;user-select:none;"], function (_ref) {
12
12
  var $overlapping = _ref.$overlapping,
13
13
  _ref$$xOffset = _ref.$xOffset,
@@ -20,13 +20,13 @@ export var StyledBadgeContent = /*#__PURE__*/styled.div.withConfig({
20
20
  });
21
21
  export var StyledBadgeDotIndicator = /*#__PURE__*/styled.div.withConfig({
22
22
  displayName: "StyledBadgeDotIndicator",
23
- componentId: "core-12_40_0__sc-s2n9gd-2"
23
+ componentId: "core-12_42_0__sc-s2n9gd-2"
24
24
  })(["width:6px;height:6px;border-radius:50%;background-color:", ";"], colors.orange50);
25
25
  var oneDigitStyles = "\n border-radius: 50%;\n padding: 2px;\n min-width: 21.5px;\n min-height: 21.5px;\n";
26
26
  var multiDigitStyles = "\n border-radius: 10px;\n padding: 2px 8px;\n";
27
27
  export var StyledBadgeCounter = /*#__PURE__*/styled.div.withConfig({
28
28
  displayName: "StyledBadgeCounter",
29
- componentId: "core-12_40_0__sc-s2n9gd-3"
29
+ componentId: "core-12_42_0__sc-s2n9gd-3"
30
30
  })(["display:inline-flex;justify-content:center;align-items:center;color:", ";background-color:", ";", " ", ""], colors.white, colors.orange50, getTypographyIntent('small'), function (props) {
31
31
  return props.$oneDigit ? oneDigitStyles : multiDigitStyles;
32
32
  });
@@ -39,7 +39,7 @@ var expandContent = function expandContent(maxHeight) {
39
39
  };
40
40
  export var StyledBannerContainer = /*#__PURE__*/styled.div.withConfig({
41
41
  displayName: "StyledBannerContainer",
42
- componentId: "core-12_40_0__sc-149wm7c-0"
42
+ componentId: "core-12_42_0__sc-149wm7c-0"
43
43
  })(["align-items:center;border-left:", "px solid;border-radius:", "px;color:", ";display:flex;justify-content:space-between;min-height:52px;padding:0 ", "px;", " ", " ", ""], bannerLeft, borderRadius.md, colors.gray15, spacing.lg, bannerShadow, function (_ref) {
44
44
  var $variant = _ref.$variant;
45
45
  var _bannerVariantColors$ = bannerVariantColors[$variant],
@@ -52,15 +52,15 @@ export var StyledBannerContainer = /*#__PURE__*/styled.div.withConfig({
52
52
  });
53
53
  export var StyledContent = /*#__PURE__*/styled.div.withConfig({
54
54
  displayName: "StyledContent",
55
- componentId: "core-12_40_0__sc-149wm7c-1"
55
+ componentId: "core-12_42_0__sc-149wm7c-1"
56
56
  })(["align-self:center;margin:", "px ", "px ", "px 0;width:100%;"], spacing.sm, spacing.lg, spacing.sm);
57
57
  export var StyledExpandableContentContainer = /*#__PURE__*/styled(Flex).withConfig({
58
58
  displayName: "StyledExpandableContentContainer",
59
- componentId: "core-12_40_0__sc-149wm7c-2"
59
+ componentId: "core-12_42_0__sc-149wm7c-2"
60
60
  })(["color:", ";min-height:52px;padding:0 ", "px;position:relative;z-index:1;", ""], colors.gray15, spacing.lg, bannerShadow);
61
61
  export var StyledExpandableContent = /*#__PURE__*/styled(Flex).withConfig({
62
62
  displayName: "StyledExpandableContent",
63
- componentId: "core-12_40_0__sc-149wm7c-3"
63
+ componentId: "core-12_42_0__sc-149wm7c-3"
64
64
  })(["animation-duration:450ms;animation-fill-mode:forwards;animation-timing-function:ease-out;background-color:", ";box-sizing:border-box;font-size:14px;font-weight:500;letter-spacing:0.25px;line-height:20px;overflow-y:auto;padding:0 ", "px;position:relative;z-index:0;", " ", ""], colors.white, spacing.xl * 2 + spacing.sm, function (_ref3) {
65
65
  var $isOverflowingY = _ref3.$isOverflowingY;
66
66
  return $isOverflowingY && focusable;
@@ -70,23 +70,23 @@ export var StyledExpandableContent = /*#__PURE__*/styled(Flex).withConfig({
70
70
  });
71
71
  export var StyledTitle = /*#__PURE__*/styled.div.withConfig({
72
72
  displayName: "StyledTitle",
73
- componentId: "core-12_40_0__sc-149wm7c-4"
73
+ componentId: "core-12_42_0__sc-149wm7c-4"
74
74
  })(["", " color:", ";font-weight:", ";"], getTypographyIntent('body'), colors.gray15, typographyWeights.semibold);
75
75
  export var StyledBody = /*#__PURE__*/styled.div.withConfig({
76
76
  displayName: "StyledBody",
77
- componentId: "core-12_40_0__sc-149wm7c-5"
77
+ componentId: "core-12_42_0__sc-149wm7c-5"
78
78
  })(["", " color:", ";"], getTypographyIntent('body'), colors.gray15);
79
79
  export var StyledIconContainer = /*#__PURE__*/styled.div.withConfig({
80
80
  displayName: "StyledIconContainer",
81
- componentId: "core-12_40_0__sc-149wm7c-6"
81
+ componentId: "core-12_42_0__sc-149wm7c-6"
82
82
  })(["flex:0 0 auto;margin:", "px 0;"], spacing.lg);
83
83
  export var StyledActionsTrigger = /*#__PURE__*/styled(DropdownButton).withConfig({
84
84
  displayName: "StyledActionsTrigger",
85
- componentId: "core-12_40_0__sc-149wm7c-7"
85
+ componentId: "core-12_42_0__sc-149wm7c-7"
86
86
  })(["flex-shrink:0;& + ", ",& + ", "{margin-left:-", "px;}"], StyledButton, StyledLinkButton, spacing.sm);
87
87
  export var StyledAction = /*#__PURE__*/styled.div.withConfig({
88
88
  displayName: "StyledAction",
89
- componentId: "core-12_40_0__sc-149wm7c-8"
89
+ componentId: "core-12_42_0__sc-149wm7c-8"
90
90
  })(["margin:", "px 0 ", "px -", "px;& + ", ",& + ", ",& + ", "{margin-left:-", "px;}", ",", "{background:rgba(0,0,0,0.05);color:", ";&:hover{background:", ";color:", ";}}"], spacing.sm, spacing.sm, spacing.sm, StyledButton, StyledLinkButton, StyledActionsTrigger, spacing.sm, StyledButton, StyledLinkButton, colors.gray15, colors.gray85, colors.gray15);
91
91
  function getMiniBannerIconColor(_ref5) {
92
92
  var variant = _ref5.variant;
@@ -94,6 +94,6 @@ function getMiniBannerIconColor(_ref5) {
94
94
  }
95
95
  export var StyledMiniBannerContainer = /*#__PURE__*/styled.div.withConfig({
96
96
  displayName: "StyledMiniBannerContainer",
97
- componentId: "core-12_40_0__sc-149wm7c-9"
97
+ componentId: "core-12_42_0__sc-149wm7c-9"
98
98
  })(["align-items:center;background-color:", ";display:flex;justify-content:space-between;padding:0 ", "px;", " ", " & ", "{margin:", "px;}"], colors.gray96, spacing.md, getTypographyIntent('small'), getMiniBannerIconColor, StyledContent, spacing.sm);
99
99
  //# sourceMappingURL=Banner.styles.js.map
@@ -21,7 +21,7 @@ function sizeToPx(size) {
21
21
  }
22
22
  export var StyledBox = /*#__PURE__*/styled.div.withConfig({
23
23
  displayName: "StyledBox",
24
- componentId: "core-12_40_0__sc-fgsy0p-0"
24
+ componentId: "core-12_42_0__sc-fgsy0p-0"
25
25
  })(["", " ", ""], function (_ref) {
26
26
  var as = _ref.as;
27
27
  if (as === 'ol' || as === 'ul') {
@@ -4,19 +4,19 @@ import { colors } from '../_styles/colors';
4
4
  import { spacing } from '../_styles/spacing';
5
5
  export var StyledContainer = /*#__PURE__*/styled.nav.withConfig({
6
6
  displayName: "StyledContainer",
7
- componentId: "core-12_40_0__sc-1q6nqfz-0"
7
+ componentId: "core-12_42_0__sc-1q6nqfz-0"
8
8
  })(["color:", ";display:flex;align-items:center;a,a:hover{display:inline-flex;text-decoration:none;}"], colors.gray50);
9
9
  export var StyledList = /*#__PURE__*/styled.ol.withConfig({
10
10
  displayName: "StyledList",
11
- componentId: "core-12_40_0__sc-1q6nqfz-1"
11
+ componentId: "core-12_42_0__sc-1q6nqfz-1"
12
12
  })(["display:flex;margin:0;padding-left:0;"]);
13
13
  export var StyledSeparator = /*#__PURE__*/styled.div.withConfig({
14
14
  displayName: "StyledSeparator",
15
- componentId: "core-12_40_0__sc-1q6nqfz-2"
15
+ componentId: "core-12_42_0__sc-1q6nqfz-2"
16
16
  })(["align-items:center;display:inline-flex;justify-content:center;margin:0px ", "px;"], spacing.xs);
17
17
  export var StyledCrumb = /*#__PURE__*/styled.li.withConfig({
18
18
  displayName: "StyledCrumb",
19
- componentId: "core-12_40_0__sc-1q6nqfz-3"
19
+ componentId: "core-12_42_0__sc-1q6nqfz-3"
20
20
  })(["", " align-items:center;color:", ";display:inline-flex;min-height:24px;text-decoration:none;&:hover{cursor:", ";text-decoration:", ";}> a{color:", ";", "}", ""], getTypographyIntent('body'), colors.gray45, function (_ref) {
21
21
  var active = _ref.active;
22
22
  return active ? 'default' : 'pointer';
@@ -93,11 +93,11 @@ function getColors(loading, variant) {
93
93
  }
94
94
  export var StyledContent = /*#__PURE__*/styled.span.withConfig({
95
95
  displayName: "StyledContent",
96
- componentId: "core-12_40_0__sc-c5bhwh-0"
96
+ componentId: "core-12_42_0__sc-c5bhwh-0"
97
97
  })(["align-items:center;display:flex;overflow:hidden;"]);
98
98
  export var StyledSpinner = /*#__PURE__*/styled(Spinner).withConfig({
99
99
  displayName: "StyledSpinner",
100
- componentId: "core-12_40_0__sc-c5bhwh-1"
100
+ componentId: "core-12_42_0__sc-c5bhwh-1"
101
101
  })(["box-sizing:border-box;display:none;position:absolute;transform:translateZ(0);@media ", "{left:50%;top:50%;", "}"], mediaIE11Hack, function (_ref) {
102
102
  var size = _ref.size;
103
103
  var margin = -1 * (spinnerDimensions[size !== null && size !== void 0 ? size : defaultSpinnerSize] / 2);
@@ -105,14 +105,14 @@ export var StyledSpinner = /*#__PURE__*/styled(Spinner).withConfig({
105
105
  });
106
106
  export var StyledLabel = /*#__PURE__*/styled.span.withConfig({
107
107
  displayName: "StyledLabel",
108
- componentId: "core-12_40_0__sc-c5bhwh-2"
108
+ componentId: "core-12_42_0__sc-c5bhwh-2"
109
109
  })(["overflow:hidden;padding:0 6px;text-overflow:ellipsis;white-space:nowrap;& + span{padding-left:0;}"]);
110
110
  export function getButtonStyles(block, disabled, loading, size, variant) {
111
111
  return css(["", " ", " ", " ", " align-items:center;border-radius:", "px;border:0;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;flex-shrink:0;font-family:inherit;font-weight:", ";height:", "px;justify-content:center;margin:0;overflow:hidden;padding:0 ", "px;position:relative;pointer-events:", ";text-overflow:ellipsis;user-select:", ";vertical-align:middle;white-space:nowrap;width:", ";[data-icon-prop='true']{pointer-events:none;height:", "px;width:", "px;}", ""], getTypographyIntent(typographySizes[size]), focusable, variant === 'UNSAFE_helixNav' && css(["&.focus,&:focus{outline:none;box-shadow:0 0 0 2px ", ";}"], colors.blue70), getColors(loading, variant), borderRadius.md, typographyWeights.semibold, heights[size], paddingX[size], disabled || loading ? 'none' : 'inherit', disabled || loading ? 'none' : 'inherit', block && '100%', size === 'sm' ? 16 : 24, size === 'sm' ? 16 : 24, loading && css(["", "{pointer-events:none;visibility:hidden;}", "{display:block;}"], StyledContent, StyledSpinner));
112
112
  }
113
113
  export var StyledButton = /*#__PURE__*/styled.button.withConfig({
114
114
  displayName: "StyledButton",
115
- componentId: "core-12_40_0__sc-c5bhwh-3"
115
+ componentId: "core-12_42_0__sc-c5bhwh-3"
116
116
  })(["", ""], function (_ref2) {
117
117
  var $block = _ref2.$block,
118
118
  disabled = _ref2.disabled,
@@ -123,7 +123,7 @@ export var StyledButton = /*#__PURE__*/styled.button.withConfig({
123
123
  });
124
124
  export var StyledLinkButton = /*#__PURE__*/styled.a.withConfig({
125
125
  displayName: "StyledLinkButton",
126
- componentId: "core-12_40_0__sc-c5bhwh-4"
126
+ componentId: "core-12_42_0__sc-c5bhwh-4"
127
127
  })(["&,&:hover{text-decoration:none;}", ""], function (_ref3) {
128
128
  var $block = _ref3.$block,
129
129
  $disabled = _ref3.$disabled,