@procore/core-react 12.45.0 → 12.46.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 (238) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +9 -9
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/ContactItem/ContactItem.styles.js +5 -5
  15. package/dist/Content/Content.styles.js +2 -2
  16. package/dist/DateInput/DateInput.styles.js +6 -6
  17. package/dist/DetailPage/DetailPage.styles.js +7 -7
  18. package/dist/Dropdown/Dropdown.styles.js +3 -3
  19. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  20. package/dist/Dropzone/Dropzone.js +1 -1
  21. package/dist/Dropzone/Dropzone.styles.js +9 -9
  22. package/dist/EmptyState/EmptyState.d.ts +3 -5
  23. package/dist/EmptyState/EmptyState.js.map +1 -1
  24. package/dist/EmptyState/EmptyState.styles.d.ts +2 -2
  25. package/dist/EmptyState/EmptyState.styles.js +10 -10
  26. package/dist/EmptyState/EmptyState.styles.js.map +1 -1
  27. package/dist/EmptyState/EmptyState.types.d.ts +11 -0
  28. package/dist/EmptyState/EmptyState.types.js.map +1 -1
  29. package/dist/Field/Field.styles.js +3 -3
  30. package/dist/FileList/FileList.styles.js +3 -3
  31. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  32. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  33. package/dist/FileSelect/FileSelect.styles.js +2 -2
  34. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  35. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  36. package/dist/FileSelect/GridSource/GridSource.js +1 -0
  37. package/dist/FileSelect/GridSource/GridSource.js.map +1 -1
  38. package/dist/FileSelect/GridSource/GridSource.styles.d.ts +2 -4
  39. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  40. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  41. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  42. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  43. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  44. package/dist/FileToken/FileToken.styles.js +6 -6
  45. package/dist/FilterToken/FilterToken.styles.js +5 -5
  46. package/dist/FlexList/FlexList.styles.js +1 -1
  47. package/dist/Form/Form.styles.js +13 -13
  48. package/dist/Form/StyledFormikForm.styles.js +2 -2
  49. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  50. package/dist/Grid/Grid.styles.js +2 -2
  51. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  52. package/dist/Input/Input.styles.js +1 -1
  53. package/dist/Link/Link.styles.js +1 -1
  54. package/dist/ListPage/ListPage.styles.js +8 -8
  55. package/dist/Loader/Loader.styles.js +2 -2
  56. package/dist/MenuImperative/MenuImperative.styles.js +11 -11
  57. package/dist/Modal/Modal.styles.js +13 -13
  58. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  59. package/dist/NextMenu/NextMenu.styles.js +3 -3
  60. package/dist/Notation/Notation.js +1 -1
  61. package/dist/NumberInput/NumberInput.styles.js +7 -7
  62. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  63. package/dist/PageLayout/PageLayout.styles.js +16 -16
  64. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  65. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  66. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  67. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  68. package/dist/Pagination/Pagination.styles.js +5 -5
  69. package/dist/Panel/Panel.styles.js +11 -11
  70. package/dist/Pill/Pill.styles.js +3 -3
  71. package/dist/PillSelect/PillSelect.styles.js +4 -4
  72. package/dist/Popover/Popover.styles.js +2 -2
  73. package/dist/Portal/Portal.styles.js +1 -1
  74. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  75. package/dist/RadioButton/RadioButton.styles.js +3 -3
  76. package/dist/Required/Required.styles.js +3 -3
  77. package/dist/Search/Search.styles.js +5 -5
  78. package/dist/Section/Section.styles.js +7 -7
  79. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  80. package/dist/Select/Select.styles.js +8 -8
  81. package/dist/Semantic/Semantic.styles.js +9 -9
  82. package/dist/Slider/Slider.styles.js +5 -5
  83. package/dist/Spinner/Spinner.styles.js +7 -7
  84. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  85. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  86. package/dist/SuperSelect/SuperSelect.styles.js +39 -39
  87. package/dist/Switch/Switch.styles.js +4 -4
  88. package/dist/Table/OverdueContext.d.ts +4 -0
  89. package/dist/Table/OverdueContext.js +10 -0
  90. package/dist/Table/OverdueContext.js.map +1 -0
  91. package/dist/Table/OverdueContext.types.d.ts +6 -0
  92. package/dist/Table/OverdueContext.types.js +2 -0
  93. package/dist/Table/OverdueContext.types.js.map +1 -0
  94. package/dist/Table/Table.js +58 -10
  95. package/dist/Table/Table.js.map +1 -1
  96. package/dist/Table/Table.styles.d.ts +9 -0
  97. package/dist/Table/Table.styles.js +52 -45
  98. package/dist/Table/Table.styles.js.map +1 -1
  99. package/dist/Table/Table.types.d.ts +7 -0
  100. package/dist/Table/Table.types.js.map +1 -1
  101. package/dist/TableShelf/TableShelf.styles.js +5 -5
  102. package/dist/Tabs/Tabs.styles.js +16 -16
  103. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  104. package/dist/TextArea/TextArea.styles.js +1 -1
  105. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  106. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  107. package/dist/ThumbnailGrid/ThumbnailGrid.d.ts +1 -1
  108. package/dist/ThumbnailGrid/ThumbnailGrid.js +14 -4
  109. package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
  110. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  111. package/dist/ThumbnailGrid/ThumbnailGrid.types.d.ts +34 -6
  112. package/dist/ThumbnailGrid/ThumbnailGrid.types.js.map +1 -1
  113. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  114. package/dist/Tile/Tile.styles.js +8 -8
  115. package/dist/Title/Title.styles.js +7 -7
  116. package/dist/Toast/Toast.styles.js +3 -3
  117. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  118. package/dist/Token/Token.js +20 -4
  119. package/dist/Token/Token.js.map +1 -1
  120. package/dist/Token/Token.styles.d.ts +2 -0
  121. package/dist/Token/Token.styles.js +14 -5
  122. package/dist/Token/Token.styles.js.map +1 -1
  123. package/dist/Token/Token.types.d.ts +3 -1
  124. package/dist/Token/Token.types.js.map +1 -1
  125. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  126. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  127. package/dist/Tooltip/Tooltip.js +23 -18
  128. package/dist/Tooltip/Tooltip.js.map +1 -1
  129. package/dist/Tooltip/Tooltip.styles.js +3 -3
  130. package/dist/Tree/Tree.js +1 -1
  131. package/dist/Tree/Tree.styles.js +10 -10
  132. package/dist/Typeahead/Typeahead.styles.js +3 -3
  133. package/dist/Typography/Typography.styles.js +1 -1
  134. package/dist/Typography/Typography.table.story.js +2 -2
  135. package/dist/_hooks/I18n.d.ts +49 -11
  136. package/dist/_locales/de-DE.json +2 -0
  137. package/dist/_locales/en-AU.json +2 -0
  138. package/dist/_locales/en-CA.json +2 -0
  139. package/dist/_locales/en-GB.json +2 -0
  140. package/dist/_locales/en.json +3 -1
  141. package/dist/_locales/es-ES.json +2 -0
  142. package/dist/_locales/es.json +2 -0
  143. package/dist/_locales/fr-CA.json +2 -0
  144. package/dist/_locales/fr-FR.json +2 -0
  145. package/dist/_locales/is-IS.json +2 -0
  146. package/dist/_locales/it-IT.json +3 -1
  147. package/dist/_locales/ja-JP.json +2 -0
  148. package/dist/_locales/nb-NO.json +6 -4
  149. package/dist/_locales/pl-PL.json +2 -0
  150. package/dist/_locales/pseudo.json +3 -1
  151. package/dist/_locales/pt-BR.json +2 -0
  152. package/dist/_locales/pt-PT.json +4 -2
  153. package/dist/_locales/th-TH.json +2 -0
  154. package/dist/_locales/zh-SG.json +2 -0
  155. package/dist/_locales/zh-TW.json +2 -0
  156. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  157. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  158. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
  159. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  160. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  161. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  162. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  163. package/dist/_typedoc/Box/Box.types.json +68 -68
  164. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  165. package/dist/_typedoc/Button/Button.types.json +14 -14
  166. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  167. package/dist/_typedoc/Card/Card.types.json +6 -6
  168. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  169. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  170. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  171. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  172. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  173. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  174. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  175. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  176. package/dist/_typedoc/EmptyState/EmptyState.types.json +39 -16
  177. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  178. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  179. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  180. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  181. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  182. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  183. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  184. package/dist/_typedoc/Form/Form.types.json +760 -760
  185. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  186. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  187. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  188. package/dist/_typedoc/Input/Input.types.json +2 -2
  189. package/dist/_typedoc/Link/Link.types.json +1 -1
  190. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  191. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  192. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
  193. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  194. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  195. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  196. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  197. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  198. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  199. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  200. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  201. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  202. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  203. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  204. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  205. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  206. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  207. package/dist/_typedoc/Required/Required.types.json +5 -5
  208. package/dist/_typedoc/Search/Search.types.json +18 -18
  209. package/dist/_typedoc/Section/Section.types.json +15 -15
  210. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  211. package/dist/_typedoc/Select/Select.types.json +67 -67
  212. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  213. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  214. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  215. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  216. package/dist/_typedoc/Table/Table.types.json +122 -102
  217. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  218. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  219. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  220. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  221. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  222. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  223. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  224. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  225. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  226. package/dist/_typedoc/Title/Title.types.json +1 -1
  227. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  228. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  229. package/dist/_typedoc/Token/Token.types.json +11 -11
  230. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  231. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  232. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  233. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  234. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  235. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  236. package/dist/_typedoc/_utils/types.json +3 -3
  237. package/dist/_typedoc/deprecations.json +1 -1
  238. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThumbnailGrid.js","names":["useFocusWithin","React","InfiniteLoader","Spinner","Tooltip","useI18nContext","mergeRefs","useGridNavigation","StyledCheckbox","StyledGroupCell","StyledGroupTitle","StyledSpinnerWrapper","StyledThumbnail","StyledThumbnailGrid","StyledVariableSizeGrid","noop","asyncNoop","Promise","resolve","titleHeight","titleTopPadding","thumbnailHeight","thumbnailWidh","defaultColumnsCount","gutterSize","columnWidth","gridLeftPadding","defaultGridWidth","defaultGridHeight","getId","item","id","getGridRows","_ref","items","groups","title","_ref$isFetching","isFetching","groupTitleFallback","_ref$columnsCount","columnsCount","splitToRows","reduce","acc","index","rowIndex","Math","floor","row","push","splitToGroupedRows","groupedRows","groupedThumbnails","_item$groupId","groupId","String","group","get","set","Map","map","_ref2","forEach","groupRows","length","_groups$find","groupTitleRow","find","_ref3","unshift","concat","_toConsumableArray","setGridTitle","rows","setLoadingIndicator","gridRows","gridRowsWithOptionalTitle","gridRowsWithOptionalLoadingIndicator","filterByGroupId","GroupCell","_ref4","children","style","props","_objectWithoutProperties","_excluded","createElement","_extends","_objectSpread","left","top","width","ThumbnailCell","_ref5","className","_excluded2","GridOuterContainer","forwardRef","ref","tabIndex","GridInnerContainer","_ref6","_excluded3","paddingLeft","ThumbnailGrid","_ref7","_ref7$selected","selected","_ref7$title","_ref7$gridWidth","gridWidth","_ref7$gridHeight","gridHeight","_ref7$onSelect","onSelect","_ref7$onDeselect","onDeselect","_ref7$disableSelectio","disableSelection","value","tooltip","_ref7$isFetching","_ref7$loadMoreItems","loadMoreItems","qa","_ref7$allowSelectAll","allowSelectAll","_ref7$onSelectAll","onSelectAll","_ref7$onDeselectAll","onDeselectAll","_ref7$onSelectAllGrou","onSelectAllGroup","_ref7$onDeselectAllGr","onDeselectAllGroup","_excluded4","gridContainerRef","useRef","I18n","gridContainer","current","gridRef","_React$useState","useState","_React$useState2","_slicedToArray","gridContainerWidth","setGridContainerWidth","_React$useState3","_React$useState4","setColumnsCount","gridInstance","_useFocusWithin","onFocusWithin","e","setIsGridFocused","onBlurWithin","focusWithinProps","useEffect","handleResize","offsetWidth","containerWidth","currentColumnsCount","window","addEventListener","removeEventListener","useMemo","t","isTitleRow","rowCells","isFetchingRow","isNonNavigableRow","rowHeights","titleRow","titleRowIsNotFirstGridRow","rowPadding","nonNavigableRowIndices","filter","_ref8","_ref9","navigationIndicesRows","cell","findIndex","getNumberOfNonNavigableRowsBefore","useCallback","getThumbnailNavigationIndex","cellIndex","thumbnailNavigationIndexToRowIndexMap","mappedRowCells","_","navIndex","_React$useState5","_React$useState6","isGridFocused","navigation","indicesRows","isThumbnailSelected","thumbnail","some","_ref0","toggle","itemsIds","selectedIds","isFullySelected","every","includes","isPartiallySelected","isGroupFullySelected","currentGroupItems","selectedGroupItems","isGroupPartiallySelected","onSelectAllChange","stopPropagation","onSelectAllGroupChange","onMouseDown","preventDefault","updateNavigationPosition","key","nativeEvent","shiftKey","down","up","right","onKeyDown","newPosition","scrollToItem","setIndicesRows","resetAfterRowIndex","grid","itemCount","isItemLoaded","threshold","_ref1","onItemsRendered","infiniteLoaderRef","height","rowCount","rowHeight","columnCount","innerElementType","overscanRowCount","_ref10","visibleRowStartIndex","visibleRowStopIndex","overscanRowStopIndex","overscanRowStartIndex","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","overflow","_ref11","_qa$thumbnail","columnIndex","cellData","isGlobalTitle","dataQa","onChangeCallback","isChecked","isIndeterminate","onChange","checked","indeterminate","weight","color","thumbnailNavigationIndex","isNavigationTarget","isFocused","isSelected","isDisabled","trigger","overlay","showKeys","call","focused","disabled","caption","name","src","label","hasCaptionPlaceholder","role","onClick","_ref12","_dataset","target","isCaptionTooltipClick","dataset","captionTooltip","setIndex","focus"],"sources":["../../src/ThumbnailGrid/ThumbnailGrid.tsx"],"sourcesContent":["import { useFocusWithin } from '@react-aria/interactions'\nimport React from 'react'\nimport type { GridChildComponentProps, VariableSizeGrid } from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { Spinner } from '../Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useGridNavigation } from './ThumbnailGrid.hooks'\nimport {\n StyledCheckbox,\n StyledGroupCell,\n StyledGroupTitle,\n StyledSpinnerWrapper,\n StyledThumbnail,\n StyledThumbnailGrid,\n StyledVariableSizeGrid,\n} from './ThumbnailGrid.styles'\nimport type {\n GridCellData,\n ThumbnailGridGroup,\n ThumbnailGridGroupTitle,\n ThumbnailGridItem,\n ThumbnailGridProps,\n} from './ThumbnailGrid.types'\n\ntype OnItemsRenderedProps = {\n visibleRowStartIndex: number\n visibleRowStopIndex: number\n overscanRowStopIndex: number\n overscanRowStartIndex: number\n}\n\nfunction noop() {}\n\nconst asyncNoop = () => Promise.resolve()\n\nconst titleHeight = 20\nconst titleTopPadding = 24\nconst thumbnailHeight = 138\nconst thumbnailWidh = 104\nconst defaultColumnsCount = 5\nconst gutterSize = 12\nconst columnWidth = thumbnailWidh + gutterSize\nconst gridLeftPadding = 24\nconst defaultGridWidth = gridLeftPadding + columnWidth * defaultColumnsCount\nconst defaultGridHeight = (thumbnailHeight + gutterSize) * 3\nconst getId = (item: ThumbnailGridItem) => item.id\n\nconst getGridRows = ({\n items,\n groups,\n title,\n isFetching = false,\n groupTitleFallback,\n columnsCount = defaultColumnsCount,\n}: {\n items: ThumbnailGridItem[]\n groups?: ThumbnailGridGroup[]\n title?: string\n isFetching: boolean\n groupTitleFallback: string\n columnsCount: number\n}) => {\n const splitToRows = (items: GridCellData[]) =>\n items.reduce((acc: GridCellData[][], item: GridCellData, index: number) => {\n const rowIndex = Math.floor(index / columnsCount)\n const row = (acc[rowIndex] = acc[rowIndex] || [])\n row.push(item)\n return acc\n }, [] as GridCellData[][])\n\n const splitToGroupedRows = (\n items: ThumbnailGridItem[],\n groups: ThumbnailGridGroup[]\n ) => {\n let groupedRows: GridCellData[][] = []\n\n const groupedThumbnails = items.reduce((acc, item) => {\n const groupId = item.groupId ?? String(item.groupId)\n const group = acc.get(groupId)\n if (group) {\n group.push(item)\n } else {\n acc.set(groupId, [item])\n }\n return acc\n }, new Map<string | number, GridCellData[]>(groups.map(({ id }) => [id, []])))\n\n groupedThumbnails.forEach((group, groupId) => {\n const groupRows = splitToRows(group)\n\n if (groupRows.length) {\n const groupTitleRow = [\n {\n title:\n groups.find(({ id }) => groupId === id)?.title ||\n groupTitleFallback,\n groupId,\n } as ThumbnailGridGroupTitle,\n ]\n groupRows.unshift(groupTitleRow)\n }\n\n groupedRows = [...groupedRows, ...groupRows]\n })\n\n return groupedRows\n }\n\n const setGridTitle = (rows: GridCellData[][]) => {\n if (title) {\n rows.unshift([{ title: title }])\n }\n return rows\n }\n\n const setLoadingIndicator = (rows: GridCellData[][]) => {\n if (isFetching) {\n rows.push([{ isFetching }])\n }\n return rows\n }\n\n const gridRows = groups\n ? splitToGroupedRows(items, groups)\n : splitToRows(items)\n\n const gridRowsWithOptionalTitle = setGridTitle(gridRows)\n const gridRowsWithOptionalLoadingIndicator = setLoadingIndicator(\n gridRowsWithOptionalTitle\n )\n\n return gridRowsWithOptionalLoadingIndicator\n}\n\nconst filterByGroupId = (item: ThumbnailGridItem, groupId: string) => {\n return String(item.groupId) === groupId\n}\n\nconst GroupCell = ({\n children,\n style,\n columnsCount,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { columnsCount: number }) => {\n return (\n <StyledGroupCell\n style={{\n ...style,\n left: (style?.left as number) + gridLeftPadding,\n top: (style?.top as number) + gutterSize,\n width: columnWidth * columnsCount,\n }}\n {...props}\n >\n {children}\n </StyledGroupCell>\n )\n}\n\nconst ThumbnailCell = ({\n children,\n className,\n style,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return (\n <div\n style={{\n ...style,\n left: (style?.left as number) + gridLeftPadding,\n top: (style?.top as number) + gutterSize,\n }}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n// See https://github.com/bvaughn/react-window/issues/130\nconst GridOuterContainer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((props, ref) => <div ref={ref} tabIndex={-1} {...props} />)\n\nconst GridInnerContainer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ style, ...props }, ref) => (\n <div\n ref={ref}\n tabIndex={-1}\n style={{\n ...style,\n paddingLeft: gridLeftPadding,\n width: (style?.width as number) + gridLeftPadding,\n }}\n {...props}\n />\n))\n\nexport const ThumbnailGrid = React.forwardRef<\n HTMLDivElement,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & ThumbnailGridProps\n>(\n (\n {\n items,\n selected = [],\n groups,\n title = '',\n gridWidth = defaultGridWidth,\n gridHeight = defaultGridHeight,\n onSelect = noop,\n onDeselect = noop,\n disableSelection = {\n value: false,\n tooltip: '',\n },\n isFetching = false,\n loadMoreItems = asyncNoop,\n qa,\n allowSelectAll = false,\n onSelectAll = noop,\n onDeselectAll = noop,\n onSelectAllGroup = noop,\n onDeselectAllGroup = noop,\n ...props\n },\n forwardRef\n ) => {\n const gridContainerRef = React.useRef<HTMLDivElement>(null)\n const I18n = useI18nContext()\n const gridContainer = gridContainerRef.current\n const gridRef = React.useRef<VariableSizeGrid | null>(null)\n const [gridContainerWidth, setGridContainerWidth] =\n React.useState<number>(gridWidth)\n const [columnsCount, setColumnsCount] =\n React.useState<number>(defaultColumnsCount)\n const gridInstance = gridRef.current\n let { focusWithinProps } = useFocusWithin({\n onFocusWithin: (e) => setIsGridFocused(true),\n onBlurWithin: (e) => setIsGridFocused(false),\n })\n\n React.useEffect(() => {\n const handleResize = () => {\n if (gridContainer?.offsetWidth) {\n const containerWidth = gridContainer.offsetWidth - gridLeftPadding\n const currentColumnsCount = Math.floor(containerWidth / columnWidth)\n setGridContainerWidth(containerWidth)\n setColumnsCount(currentColumnsCount || 1)\n }\n }\n\n handleResize() // Initial resize calculation\n\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [gridContainer])\n\n const rows = React.useMemo(\n () =>\n getGridRows({\n items,\n groups,\n isFetching,\n title,\n columnsCount,\n groupTitleFallback: I18n.t(\n 'core.fileExplorer.ungroupedThumbnailGridGroup'\n ),\n }),\n [items, groups, title, isFetching, columnsCount]\n )\n\n const isTitleRow = (rowCells: GridCellData[]): boolean =>\n 'title' in rowCells[0]\n\n const isFetchingRow = (rowCells: GridCellData[]): boolean =>\n 'isFetching' in rowCells[0]\n\n const isNonNavigableRow = (rowCells: GridCellData[]) =>\n isTitleRow(rowCells) || isFetchingRow(rowCells)\n\n const rowHeights = React.useMemo(() => {\n return rows.map((rowCells, index) => {\n const titleRow = isTitleRow(rowCells)\n const titleRowIsNotFirstGridRow = titleRow && index > 0\n const rowPadding =\n (titleRowIsNotFirstGridRow ? titleTopPadding : 0) + gutterSize\n\n if (titleRow) {\n return titleHeight + rowPadding\n } else {\n return thumbnailHeight + rowPadding\n }\n })\n }, [rows])\n\n const nonNavigableRowIndices = React.useMemo(\n () =>\n rows\n .map((rowCells, index) => ({\n index,\n isNonNavigableRow: isNonNavigableRow(rowCells),\n }))\n .filter(({ isNonNavigableRow }) => isNonNavigableRow)\n .map(({ index }) => index),\n [rows]\n )\n\n const navigationIndicesRows = React.useMemo(\n () =>\n rows\n .filter((rowCells) => !isNonNavigableRow(rowCells))\n .map((rowCells) =>\n rowCells.map((cell) =>\n items.findIndex(\n (item) => item.id === (cell as ThumbnailGridItem).id\n )\n )\n ),\n [rows, items]\n )\n\n const getNumberOfNonNavigableRowsBefore = React.useCallback(\n (rowIndex: number) =>\n nonNavigableRowIndices.filter((index) => rowIndex > index).length,\n [nonNavigableRowIndices]\n )\n\n const getThumbnailNavigationIndex = React.useCallback(\n (rowIndex: number, cellIndex: number) => {\n return navigationIndicesRows[\n rowIndex - getNumberOfNonNavigableRowsBefore(rowIndex)\n ][cellIndex]\n },\n [navigationIndicesRows, getNumberOfNonNavigableRowsBefore]\n )\n\n const thumbnailNavigationIndexToRowIndexMap = React.useMemo(\n () =>\n rows.reduce((acc, rowCells, rowIndex) => {\n if (isNonNavigableRow(rowCells)) return acc\n\n const mappedRowCells = rowCells.reduce((acc, _, cellIndex) => {\n const navIndex = String(\n getThumbnailNavigationIndex(rowIndex, cellIndex)\n )\n acc[navIndex] = rowIndex\n return acc\n }, {} as Record<string, number>)\n\n return { ...acc, ...mappedRowCells }\n }, {} as Record<string, number>),\n [rows, getThumbnailNavigationIndex]\n )\n\n const [isGridFocused, setIsGridFocused] = React.useState(false)\n\n const navigation = useGridNavigation({\n indicesRows: navigationIndicesRows,\n })\n\n const isThumbnailSelected = (thumbnail: ThumbnailGridItem) =>\n selected.some(({ id }) => thumbnail.id === id)\n\n const toggle = (thumbnail: ThumbnailGridItem) => {\n if (isThumbnailSelected(thumbnail)) {\n onDeselect(thumbnail)\n } else if (!disableSelection.value) {\n onSelect(thumbnail)\n }\n }\n\n const itemsIds = React.useMemo(() => items.map(getId), [items])\n const selectedIds = React.useMemo(() => selected.map(getId), [selected])\n\n const isFullySelected = React.useMemo(() => {\n return (\n itemsIds.length > 0 && itemsIds.every((id) => selectedIds.includes(id))\n )\n }, [selected, items])\n\n const isPartiallySelected = React.useMemo(() => {\n return (\n selectedIds.length > 0 &&\n !isFullySelected &&\n itemsIds.some((id) => selectedIds.includes(id))\n )\n }, [selected, isFullySelected])\n\n const isGroupFullySelected = (groupId: string) => {\n const currentGroupItems = items.filter((item) =>\n filterByGroupId(item, groupId)\n )\n const selectedGroupItems = selected.filter((item) =>\n filterByGroupId(item, groupId)\n )\n\n return (\n currentGroupItems.length > 0 &&\n currentGroupItems\n .map(getId)\n .every((id) => selectedGroupItems.map(getId).includes(id))\n )\n }\n\n const isGroupPartiallySelected = (groupId: string) => {\n const currentGroupItems = items.filter((item) =>\n filterByGroupId(item, groupId)\n )\n const selectedGroupItems = selected.filter((item) =>\n filterByGroupId(item, groupId)\n )\n\n return (\n selectedGroupItems.length > 0 &&\n !isGroupFullySelected(groupId) &&\n selectedGroupItems\n .map(getId)\n .some((id) => currentGroupItems.map(getId).includes(id))\n )\n }\n\n const onSelectAllChange = (e: React.FormEvent<HTMLInputElement>) => {\n e.stopPropagation()\n if (!isFullySelected) {\n onSelectAll?.()\n } else {\n onDeselectAll?.()\n }\n }\n\n const onSelectAllGroupChange = (\n e: React.FormEvent<HTMLInputElement>,\n groupId: string\n ) => {\n e.stopPropagation()\n if (!isGroupFullySelected(groupId)) {\n onSelectAllGroup?.(groupId)\n } else {\n onDeselectAllGroup?.(groupId)\n }\n }\n\n const onMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault()\n }\n\n const updateNavigationPosition = (\n e: React.KeyboardEvent<HTMLDivElement>\n ): number => {\n if (e.key === 'Tab' && e.nativeEvent.shiftKey) {\n e.preventDefault()\n return navigation.left(e)\n }\n switch (e.key) {\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n return navigation.down(e)\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n return navigation.up(e)\n case 'ArrowLeft':\n case 'Left':\n e.preventDefault()\n return navigation.left(e)\n case 'Tab':\n case 'ArrowRight':\n case 'Right':\n e.preventDefault()\n return navigation.right(e)\n default:\n return -1\n }\n }\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!isGridFocused) return\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n toggle(items[navigation.index])\n } else {\n const newPosition = updateNavigationPosition(e)\n\n if (newPosition !== -1) {\n gridInstance?.scrollToItem({\n rowIndex: thumbnailNavigationIndexToRowIndexMap[newPosition],\n })\n }\n }\n }\n\n React.useEffect(() => {\n navigation.setIndicesRows(navigationIndicesRows)\n }, [navigationIndicesRows, navigation])\n\n React.useEffect(() => {\n // VariableSizeGrid caches offsets and measurements for each row index for performance purposes.\n // Method below clears cached data and triggers recalucation when a new value of search filter recomposites grid structure.\n gridInstance?.resetAfterRowIndex(0)\n }, [items, gridInstance])\n\n return (\n <StyledThumbnailGrid\n {...props}\n {...focusWithinProps}\n ref={mergeRefs(forwardRef, gridContainerRef)}\n data-qa={qa?.grid}\n tabIndex={0}\n onMouseDown={onMouseDown}\n >\n <InfiniteLoader\n loadMoreItems={isFetching ? asyncNoop : loadMoreItems}\n itemCount={rows.length}\n isItemLoaded={(index) => index < rows.length - 1}\n threshold={0}\n >\n {({ onItemsRendered, ref: infiniteLoaderRef }) => (\n <StyledVariableSizeGrid\n width={gridContainerWidth}\n height={gridHeight}\n rowCount={rows.length}\n rowHeight={(index: number) => rowHeights[index]}\n columnCount={columnsCount}\n columnWidth={() => columnWidth}\n innerElementType={GridInnerContainer}\n overscanRowCount={2}\n onItemsRendered={({\n visibleRowStartIndex,\n visibleRowStopIndex,\n overscanRowStopIndex,\n overscanRowStartIndex,\n }: OnItemsRenderedProps) => {\n onItemsRendered({\n overscanStartIndex: overscanRowStartIndex,\n overscanStopIndex: overscanRowStopIndex,\n visibleStartIndex: visibleRowStartIndex,\n visibleStopIndex: visibleRowStopIndex,\n })\n }}\n ref={mergeRefs(gridRef, infiniteLoaderRef)}\n style={{ overflow: 'hidden' }}\n >\n {({ columnIndex, rowIndex, style }: GridChildComponentProps) => {\n const cellData = rows[rowIndex][columnIndex]\n\n if (!cellData) return null\n\n if ('title' in cellData) {\n const isGlobalTitle = rowIndex === 0\n const groupId = String(cellData?.groupId)\n const dataQa = isGlobalTitle\n ? 'global-select-all'\n : `group-${groupId}-select-all`\n\n const onChangeCallback = isGlobalTitle\n ? onSelectAllChange\n : (e: React.FormEvent<HTMLInputElement>) =>\n onSelectAllGroupChange(e, groupId)\n const isChecked = isGlobalTitle\n ? isFullySelected || isPartiallySelected\n : isGroupPartiallySelected(groupId) ||\n isGroupFullySelected(groupId)\n const isIndeterminate = isGlobalTitle\n ? isPartiallySelected\n : isGroupPartiallySelected(groupId)\n\n return (\n <GroupCell style={style} columnsCount={columnsCount}>\n {allowSelectAll ? (\n <StyledCheckbox\n data-qa={dataQa}\n onChange={onChangeCallback}\n checked={isChecked}\n indeterminate={isIndeterminate}\n >\n <StyledGroupTitle weight=\"bold\" color=\"gray15\">\n {cellData.title}\n </StyledGroupTitle>\n </StyledCheckbox>\n ) : (\n <StyledGroupTitle weight=\"bold\" color=\"gray15\">\n {cellData.title}\n </StyledGroupTitle>\n )}\n </GroupCell>\n )\n }\n if ('isFetching' in cellData) {\n return (\n <GroupCell style={style} columnsCount={columnsCount}>\n <StyledSpinnerWrapper>\n <Spinner />\n </StyledSpinnerWrapper>\n </GroupCell>\n )\n }\n\n const thumbnailNavigationIndex = getThumbnailNavigationIndex(\n rowIndex,\n columnIndex\n )\n const isNavigationTarget =\n navigation.index === thumbnailNavigationIndex\n const isFocused = isGridFocused && isNavigationTarget\n const isSelected = isThumbnailSelected(cellData)\n const isDisabled = disableSelection.value && !isSelected\n\n return (\n <ThumbnailCell style={style}>\n <Tooltip\n key={cellData.id}\n trigger={isDisabled ? 'hover' : 'none'}\n overlay={disableSelection.tooltip}\n showKeys={[]}\n >\n <StyledThumbnail\n data-thumbnail\n data-qa={qa?.thumbnail?.(cellData.id)}\n focused={isFocused}\n selected={isSelected}\n disabled={isDisabled}\n caption={cellData.name}\n src={cellData.src}\n label={cellData.label}\n hasCaptionPlaceholder\n role={'checkbox'}\n value={String(thumbnailNavigationIndex)}\n onKeyDown={onKeyDown}\n onChange={() => {\n toggle(cellData)\n }}\n onClick={({ target }: React.MouseEvent) => {\n const isCaptionTooltipClick = (target as HTMLElement)\n .dataset?.captionTooltip\n\n if (isCaptionTooltipClick) return\n\n navigation.setIndex(thumbnailNavigationIndex)\n toggle(cellData)\n gridContainer?.focus()\n }}\n />\n </Tooltip>\n </ThumbnailCell>\n )\n }}\n </StyledVariableSizeGrid>\n )}\n </InfiniteLoader>\n </StyledThumbnailGrid>\n )\n }\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThumbnailGrid.js","names":["useFocusWithin","React","InfiniteLoader","Spinner","Tooltip","useI18nContext","mergeRefs","useGridNavigation","StyledCheckbox","StyledGroupCell","StyledGroupTitle","StyledSpinnerWrapper","StyledThumbnail","StyledThumbnailGrid","StyledVariableSizeGrid","noop","asyncNoop","Promise","resolve","titleHeight","titleTopPadding","thumbnailHeight","thumbnailWidh","defaultColumnsCount","gutterSize","columnWidth","gridLeftPadding","defaultGridWidth","defaultGridHeight","getId","item","id","getGridRows","_ref","items","groups","title","_ref$isFetching","isFetching","groupTitleFallback","_ref$columnsCount","columnsCount","splitToRows","reduce","acc","index","rowIndex","Math","floor","row","push","splitToGroupedRows","groupedRows","groupedThumbnails","_item$groupId","groupId","String","group","get","set","Map","map","_ref2","forEach","groupRows","length","_groups$find","groupTitleRow","find","_ref3","unshift","concat","_toConsumableArray","setGridTitle","rows","setLoadingIndicator","gridRows","gridRowsWithOptionalTitle","gridRowsWithOptionalLoadingIndicator","filterByGroupId","GroupCell","_ref4","children","style","props","_objectWithoutProperties","_excluded","createElement","_extends","_objectSpread","left","top","width","ThumbnailCell","_ref5","className","_excluded2","GridOuterContainer","forwardRef","ref","tabIndex","GridInnerContainer","_ref6","_excluded3","paddingLeft","ThumbnailGrid","_ref7","_ref7$selected","selected","accessibleLabel","_ref7$gridWidth","gridWidth","_ref7$gridHeight","gridHeight","_ref7$onSelect","onSelect","_ref7$onDeselect","onDeselect","_ref7$disableSelectio","disableSelection","value","tooltip","_ref7$isFetching","_ref7$loadMoreItems","loadMoreItems","qa","_ref7$allowSelectAll","allowSelectAll","_ref7$onSelectAll","onSelectAll","_ref7$onDeselectAll","onDeselectAll","_ref7$onSelectAllGrou","onSelectAllGroup","_ref7$onDeselectAllGr","onDeselectAllGroup","_excluded4","globalTitleId","useId","hasGlobalTitle","Boolean","gridContainerRef","useRef","I18n","gridContainer","current","gridRef","_React$useState","useState","_React$useState2","_slicedToArray","gridContainerWidth","setGridContainerWidth","_React$useState3","_React$useState4","setColumnsCount","gridInstance","_useFocusWithin","onFocusWithin","e","setIsGridFocused","onBlurWithin","focusWithinProps","useEffect","handleResize","offsetWidth","containerWidth","currentColumnsCount","window","addEventListener","removeEventListener","useMemo","t","isTitleRow","rowCells","isFetchingRow","isNonNavigableRow","rowHeights","titleRow","titleRowIsNotFirstGridRow","rowPadding","nonNavigableRowIndices","filter","_ref8","_ref9","navigationIndicesRows","cell","findIndex","getNumberOfNonNavigableRowsBefore","useCallback","getThumbnailNavigationIndex","cellIndex","thumbnailNavigationIndexToRowIndexMap","mappedRowCells","_","navIndex","_React$useState5","_React$useState6","isGridFocused","navigation","indicesRows","isThumbnailSelected","thumbnail","some","_ref0","toggle","itemsIds","selectedIds","isFullySelected","every","includes","isPartiallySelected","isGroupFullySelected","currentGroupItems","selectedGroupItems","isGroupPartiallySelected","onSelectAllChange","stopPropagation","onSelectAllGroupChange","onMouseDown","preventDefault","updateNavigationPosition","key","nativeEvent","shiftKey","down","up","right","onKeyDown","newPosition","scrollToItem","setIndicesRows","resetAfterRowIndex","grid","role","itemCount","isItemLoaded","threshold","_ref1","onItemsRendered","infiniteLoaderRef","height","rowCount","rowHeight","columnCount","innerElementType","overscanRowCount","_ref10","visibleRowStartIndex","visibleRowStopIndex","overscanRowStopIndex","overscanRowStartIndex","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","overflow","_ref11","_qa$thumbnail","columnIndex","cellData","isGlobalTitle","isGlobalHeadingRow","dataQa","onChangeCallback","isChecked","isIndeterminate","onChange","checked","indeterminate","undefined","weight","color","thumbnailNavigationIndex","isNavigationTarget","isFocused","isSelected","isDisabled","trigger","overlay","showKeys","call","focused","disabled","caption","name","src","label","hasCaptionPlaceholder","onClick","_ref12","_dataset","target","isCaptionTooltipClick","dataset","captionTooltip","setIndex","focus"],"sources":["../../src/ThumbnailGrid/ThumbnailGrid.tsx"],"sourcesContent":["import { useFocusWithin } from '@react-aria/interactions'\nimport React from 'react'\nimport type { GridChildComponentProps, VariableSizeGrid } from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { Spinner } from '../Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useGridNavigation } from './ThumbnailGrid.hooks'\nimport {\n StyledCheckbox,\n StyledGroupCell,\n StyledGroupTitle,\n StyledSpinnerWrapper,\n StyledThumbnail,\n StyledThumbnailGrid,\n StyledVariableSizeGrid,\n} from './ThumbnailGrid.styles'\nimport type {\n GridCellData,\n ThumbnailGridGroup,\n ThumbnailGridGroupTitle,\n ThumbnailGridItem,\n ThumbnailGridProps,\n} from './ThumbnailGrid.types'\n\ntype OnItemsRenderedProps = {\n visibleRowStartIndex: number\n visibleRowStopIndex: number\n overscanRowStopIndex: number\n overscanRowStartIndex: number\n}\n\nfunction noop() {}\n\nconst asyncNoop = () => Promise.resolve()\n\nconst titleHeight = 20\nconst titleTopPadding = 24\nconst thumbnailHeight = 138\nconst thumbnailWidh = 104\nconst defaultColumnsCount = 5\nconst gutterSize = 12\nconst columnWidth = thumbnailWidh + gutterSize\nconst gridLeftPadding = 24\nconst defaultGridWidth = gridLeftPadding + columnWidth * defaultColumnsCount\nconst defaultGridHeight = (thumbnailHeight + gutterSize) * 3\nconst getId = (item: ThumbnailGridItem) => item.id\n\nconst getGridRows = ({\n items,\n groups,\n title,\n isFetching = false,\n groupTitleFallback,\n columnsCount = defaultColumnsCount,\n}: {\n items: ThumbnailGridItem[]\n groups?: ThumbnailGridGroup[]\n title?: string\n isFetching: boolean\n groupTitleFallback: string\n columnsCount: number\n}) => {\n const splitToRows = (items: GridCellData[]) =>\n items.reduce((acc: GridCellData[][], item: GridCellData, index: number) => {\n const rowIndex = Math.floor(index / columnsCount)\n const row = (acc[rowIndex] = acc[rowIndex] || [])\n row.push(item)\n return acc\n }, [] as GridCellData[][])\n\n const splitToGroupedRows = (\n items: ThumbnailGridItem[],\n groups: ThumbnailGridGroup[]\n ) => {\n let groupedRows: GridCellData[][] = []\n\n const groupedThumbnails = items.reduce((acc, item) => {\n const groupId = item.groupId ?? String(item.groupId)\n const group = acc.get(groupId)\n if (group) {\n group.push(item)\n } else {\n acc.set(groupId, [item])\n }\n return acc\n }, new Map<string | number, GridCellData[]>(groups.map(({ id }) => [id, []])))\n\n groupedThumbnails.forEach((group, groupId) => {\n const groupRows = splitToRows(group)\n\n if (groupRows.length) {\n const groupTitleRow = [\n {\n title:\n groups.find(({ id }) => groupId === id)?.title ||\n groupTitleFallback,\n groupId,\n } as ThumbnailGridGroupTitle,\n ]\n groupRows.unshift(groupTitleRow)\n }\n\n groupedRows = [...groupedRows, ...groupRows]\n })\n\n return groupedRows\n }\n\n const setGridTitle = (rows: GridCellData[][]) => {\n if (title) {\n rows.unshift([{ title: title }])\n }\n return rows\n }\n\n const setLoadingIndicator = (rows: GridCellData[][]) => {\n if (isFetching) {\n rows.push([{ isFetching }])\n }\n return rows\n }\n\n const gridRows = groups\n ? splitToGroupedRows(items, groups)\n : splitToRows(items)\n\n const gridRowsWithOptionalTitle = setGridTitle(gridRows)\n const gridRowsWithOptionalLoadingIndicator = setLoadingIndicator(\n gridRowsWithOptionalTitle\n )\n\n return gridRowsWithOptionalLoadingIndicator\n}\n\nconst filterByGroupId = (item: ThumbnailGridItem, groupId: string) => {\n return String(item.groupId) === groupId\n}\n\nconst GroupCell = ({\n children,\n style,\n columnsCount,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { columnsCount: number }) => {\n return (\n <StyledGroupCell\n style={{\n ...style,\n left: (style?.left as number) + gridLeftPadding,\n top: (style?.top as number) + gutterSize,\n width: columnWidth * columnsCount,\n }}\n {...props}\n >\n {children}\n </StyledGroupCell>\n )\n}\n\nconst ThumbnailCell = ({\n children,\n className,\n style,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return (\n <div\n style={{\n ...style,\n left: (style?.left as number) + gridLeftPadding,\n top: (style?.top as number) + gutterSize,\n }}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n// See https://github.com/bvaughn/react-window/issues/130\nconst GridOuterContainer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((props, ref) => <div ref={ref} tabIndex={-1} {...props} />)\n\nconst GridInnerContainer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ style, ...props }, ref) => (\n <div\n ref={ref}\n tabIndex={-1}\n style={{\n ...style,\n paddingLeft: gridLeftPadding,\n width: (style?.width as number) + gridLeftPadding,\n }}\n {...props}\n />\n))\n\nexport const ThumbnailGrid = React.forwardRef<\n HTMLDivElement,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & ThumbnailGridProps\n>(\n (\n {\n items,\n selected = [],\n groups,\n accessibleLabel,\n title,\n gridWidth = defaultGridWidth,\n gridHeight = defaultGridHeight,\n onSelect = noop,\n onDeselect = noop,\n disableSelection = {\n value: false,\n tooltip: '',\n },\n isFetching = false,\n loadMoreItems = asyncNoop,\n qa,\n allowSelectAll = false,\n onSelectAll = noop,\n onDeselectAll = noop,\n onSelectAllGroup = noop,\n onDeselectAllGroup = noop,\n ...props\n },\n forwardRef\n ) => {\n const globalTitleId = React.useId()\n const hasGlobalTitle = Boolean(title)\n const gridContainerRef = React.useRef<HTMLDivElement>(null)\n const I18n = useI18nContext()\n const gridContainer = gridContainerRef.current\n const gridRef = React.useRef<VariableSizeGrid | null>(null)\n const [gridContainerWidth, setGridContainerWidth] =\n React.useState<number>(gridWidth)\n const [columnsCount, setColumnsCount] =\n React.useState<number>(defaultColumnsCount)\n const gridInstance = gridRef.current\n let { focusWithinProps } = useFocusWithin({\n onFocusWithin: (e) => setIsGridFocused(true),\n onBlurWithin: (e) => setIsGridFocused(false),\n })\n\n React.useEffect(() => {\n const handleResize = () => {\n if (gridContainer?.offsetWidth) {\n const containerWidth = gridContainer.offsetWidth - gridLeftPadding\n const currentColumnsCount = Math.floor(containerWidth / columnWidth)\n setGridContainerWidth(containerWidth)\n setColumnsCount(currentColumnsCount || 1)\n }\n }\n\n handleResize() // Initial resize calculation\n\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [gridContainer])\n\n const rows = React.useMemo(\n () =>\n getGridRows({\n items,\n groups,\n isFetching,\n title,\n columnsCount,\n groupTitleFallback: I18n.t(\n 'core.fileExplorer.ungroupedThumbnailGridGroup'\n ),\n }),\n [items, groups, title, isFetching, columnsCount]\n )\n\n const isTitleRow = (rowCells: GridCellData[]): boolean =>\n 'title' in rowCells[0]\n\n const isFetchingRow = (rowCells: GridCellData[]): boolean =>\n 'isFetching' in rowCells[0]\n\n const isNonNavigableRow = (rowCells: GridCellData[]) =>\n isTitleRow(rowCells) || isFetchingRow(rowCells)\n\n const rowHeights = React.useMemo(() => {\n return rows.map((rowCells, index) => {\n const titleRow = isTitleRow(rowCells)\n const titleRowIsNotFirstGridRow = titleRow && index > 0\n const rowPadding =\n (titleRowIsNotFirstGridRow ? titleTopPadding : 0) + gutterSize\n\n if (titleRow) {\n return titleHeight + rowPadding\n } else {\n return thumbnailHeight + rowPadding\n }\n })\n }, [rows])\n\n const nonNavigableRowIndices = React.useMemo(\n () =>\n rows\n .map((rowCells, index) => ({\n index,\n isNonNavigableRow: isNonNavigableRow(rowCells),\n }))\n .filter(({ isNonNavigableRow }) => isNonNavigableRow)\n .map(({ index }) => index),\n [rows]\n )\n\n const navigationIndicesRows = React.useMemo(\n () =>\n rows\n .filter((rowCells) => !isNonNavigableRow(rowCells))\n .map((rowCells) =>\n rowCells.map((cell) =>\n items.findIndex(\n (item) => item.id === (cell as ThumbnailGridItem).id\n )\n )\n ),\n [rows, items]\n )\n\n const getNumberOfNonNavigableRowsBefore = React.useCallback(\n (rowIndex: number) =>\n nonNavigableRowIndices.filter((index) => rowIndex > index).length,\n [nonNavigableRowIndices]\n )\n\n const getThumbnailNavigationIndex = React.useCallback(\n (rowIndex: number, cellIndex: number) => {\n return navigationIndicesRows[\n rowIndex - getNumberOfNonNavigableRowsBefore(rowIndex)\n ][cellIndex]\n },\n [navigationIndicesRows, getNumberOfNonNavigableRowsBefore]\n )\n\n const thumbnailNavigationIndexToRowIndexMap = React.useMemo(\n () =>\n rows.reduce((acc, rowCells, rowIndex) => {\n if (isNonNavigableRow(rowCells)) return acc\n\n const mappedRowCells = rowCells.reduce((acc, _, cellIndex) => {\n const navIndex = String(\n getThumbnailNavigationIndex(rowIndex, cellIndex)\n )\n acc[navIndex] = rowIndex\n return acc\n }, {} as Record<string, number>)\n\n return { ...acc, ...mappedRowCells }\n }, {} as Record<string, number>),\n [rows, getThumbnailNavigationIndex]\n )\n\n const [isGridFocused, setIsGridFocused] = React.useState(false)\n\n const navigation = useGridNavigation({\n indicesRows: navigationIndicesRows,\n })\n\n const isThumbnailSelected = (thumbnail: ThumbnailGridItem) =>\n selected.some(({ id }) => thumbnail.id === id)\n\n const toggle = (thumbnail: ThumbnailGridItem) => {\n if (isThumbnailSelected(thumbnail)) {\n onDeselect(thumbnail)\n } else if (!disableSelection.value) {\n onSelect(thumbnail)\n }\n }\n\n const itemsIds = React.useMemo(() => items.map(getId), [items])\n const selectedIds = React.useMemo(() => selected.map(getId), [selected])\n\n const isFullySelected = React.useMemo(() => {\n return (\n itemsIds.length > 0 && itemsIds.every((id) => selectedIds.includes(id))\n )\n }, [selected, items])\n\n const isPartiallySelected = React.useMemo(() => {\n return (\n selectedIds.length > 0 &&\n !isFullySelected &&\n itemsIds.some((id) => selectedIds.includes(id))\n )\n }, [selected, isFullySelected])\n\n const isGroupFullySelected = (groupId: string) => {\n const currentGroupItems = items.filter((item) =>\n filterByGroupId(item, groupId)\n )\n const selectedGroupItems = selected.filter((item) =>\n filterByGroupId(item, groupId)\n )\n\n return (\n currentGroupItems.length > 0 &&\n currentGroupItems\n .map(getId)\n .every((id) => selectedGroupItems.map(getId).includes(id))\n )\n }\n\n const isGroupPartiallySelected = (groupId: string) => {\n const currentGroupItems = items.filter((item) =>\n filterByGroupId(item, groupId)\n )\n const selectedGroupItems = selected.filter((item) =>\n filterByGroupId(item, groupId)\n )\n\n return (\n selectedGroupItems.length > 0 &&\n !isGroupFullySelected(groupId) &&\n selectedGroupItems\n .map(getId)\n .some((id) => currentGroupItems.map(getId).includes(id))\n )\n }\n\n const onSelectAllChange = (e: React.FormEvent<HTMLInputElement>) => {\n e.stopPropagation()\n if (!isFullySelected) {\n onSelectAll?.()\n } else {\n onDeselectAll?.()\n }\n }\n\n const onSelectAllGroupChange = (\n e: React.FormEvent<HTMLInputElement>,\n groupId: string\n ) => {\n e.stopPropagation()\n if (!isGroupFullySelected(groupId)) {\n onSelectAllGroup?.(groupId)\n } else {\n onDeselectAllGroup?.(groupId)\n }\n }\n\n const onMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault()\n }\n\n const updateNavigationPosition = (\n e: React.KeyboardEvent<HTMLDivElement>\n ): number => {\n if (e.key === 'Tab' && e.nativeEvent.shiftKey) {\n e.preventDefault()\n return navigation.left(e)\n }\n switch (e.key) {\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n return navigation.down(e)\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n return navigation.up(e)\n case 'ArrowLeft':\n case 'Left':\n e.preventDefault()\n return navigation.left(e)\n case 'Tab':\n case 'ArrowRight':\n case 'Right':\n e.preventDefault()\n return navigation.right(e)\n default:\n return -1\n }\n }\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!isGridFocused) return\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n toggle(items[navigation.index])\n } else {\n const newPosition = updateNavigationPosition(e)\n\n if (newPosition !== -1) {\n gridInstance?.scrollToItem({\n rowIndex: thumbnailNavigationIndexToRowIndexMap[newPosition],\n })\n }\n }\n }\n\n React.useEffect(() => {\n navigation.setIndicesRows(navigationIndicesRows)\n }, [navigationIndicesRows, navigation])\n\n React.useEffect(() => {\n // VariableSizeGrid caches offsets and measurements for each row index for performance purposes.\n // Method below clears cached data and triggers recalucation when a new value of search filter recomposites grid structure.\n gridInstance?.resetAfterRowIndex(0)\n }, [items, gridInstance])\n\n return (\n <StyledThumbnailGrid\n {...props}\n {...focusWithinProps}\n ref={mergeRefs(forwardRef, gridContainerRef)}\n data-qa={qa?.grid}\n tabIndex={0}\n onMouseDown={onMouseDown}\n role=\"group\"\n {...(hasGlobalTitle\n ? { 'aria-labelledby': globalTitleId }\n : { 'aria-label': accessibleLabel })}\n >\n <InfiniteLoader\n loadMoreItems={isFetching ? asyncNoop : loadMoreItems}\n itemCount={rows.length}\n isItemLoaded={(index) => index < rows.length - 1}\n threshold={0}\n >\n {({ onItemsRendered, ref: infiniteLoaderRef }) => (\n <StyledVariableSizeGrid\n width={gridContainerWidth}\n height={gridHeight}\n rowCount={rows.length}\n rowHeight={(index: number) => rowHeights[index]}\n columnCount={columnsCount}\n columnWidth={() => columnWidth}\n innerElementType={GridInnerContainer}\n overscanRowCount={2}\n onItemsRendered={({\n visibleRowStartIndex,\n visibleRowStopIndex,\n overscanRowStopIndex,\n overscanRowStartIndex,\n }: OnItemsRenderedProps) => {\n onItemsRendered({\n overscanStartIndex: overscanRowStartIndex,\n overscanStopIndex: overscanRowStopIndex,\n visibleStartIndex: visibleRowStartIndex,\n visibleStopIndex: visibleRowStopIndex,\n })\n }}\n ref={mergeRefs(gridRef, infiniteLoaderRef)}\n style={{ overflow: 'hidden' }}\n >\n {({ columnIndex, rowIndex, style }: GridChildComponentProps) => {\n const cellData = rows[rowIndex][columnIndex]\n\n if (!cellData) return null\n\n if ('title' in cellData) {\n const isGlobalTitle = rowIndex === 0\n const isGlobalHeadingRow = !('groupId' in cellData)\n const groupId = String(cellData?.groupId)\n const dataQa = isGlobalTitle\n ? 'global-select-all'\n : `group-${groupId}-select-all`\n\n const onChangeCallback = isGlobalTitle\n ? onSelectAllChange\n : (e: React.FormEvent<HTMLInputElement>) =>\n onSelectAllGroupChange(e, groupId)\n const isChecked = isGlobalTitle\n ? isFullySelected || isPartiallySelected\n : isGroupPartiallySelected(groupId) ||\n isGroupFullySelected(groupId)\n const isIndeterminate = isGlobalTitle\n ? isPartiallySelected\n : isGroupPartiallySelected(groupId)\n\n return (\n <GroupCell style={style} columnsCount={columnsCount}>\n {allowSelectAll ? (\n <StyledCheckbox\n data-qa={dataQa}\n onChange={onChangeCallback}\n checked={isChecked}\n indeterminate={isIndeterminate}\n >\n <StyledGroupTitle\n id={isGlobalHeadingRow ? globalTitleId : undefined}\n weight=\"bold\"\n color=\"gray15\"\n >\n {cellData.title}\n </StyledGroupTitle>\n </StyledCheckbox>\n ) : (\n <StyledGroupTitle\n id={isGlobalHeadingRow ? globalTitleId : undefined}\n weight=\"bold\"\n color=\"gray15\"\n >\n {cellData.title}\n </StyledGroupTitle>\n )}\n </GroupCell>\n )\n }\n if ('isFetching' in cellData) {\n return (\n <GroupCell style={style} columnsCount={columnsCount}>\n <StyledSpinnerWrapper>\n <Spinner />\n </StyledSpinnerWrapper>\n </GroupCell>\n )\n }\n\n const thumbnailNavigationIndex = getThumbnailNavigationIndex(\n rowIndex,\n columnIndex\n )\n const isNavigationTarget =\n navigation.index === thumbnailNavigationIndex\n const isFocused = isGridFocused && isNavigationTarget\n const isSelected = isThumbnailSelected(cellData)\n const isDisabled = disableSelection.value && !isSelected\n\n return (\n <ThumbnailCell style={style}>\n <Tooltip\n key={cellData.id}\n trigger={isDisabled ? 'hover' : 'none'}\n overlay={disableSelection.tooltip}\n showKeys={[]}\n >\n <StyledThumbnail\n data-thumbnail\n data-qa={qa?.thumbnail?.(cellData.id)}\n focused={isFocused}\n selected={isSelected}\n disabled={isDisabled}\n caption={cellData.name}\n src={cellData.src}\n label={cellData.label}\n hasCaptionPlaceholder\n role={'checkbox'}\n value={String(thumbnailNavigationIndex)}\n onKeyDown={onKeyDown}\n onChange={() => {\n toggle(cellData)\n }}\n onClick={({ target }: React.MouseEvent) => {\n const isCaptionTooltipClick = (target as HTMLElement)\n .dataset?.captionTooltip\n\n if (isCaptionTooltipClick) return\n\n navigation.setIndex(thumbnailNavigationIndex)\n toggle(cellData)\n gridContainer?.focus()\n }}\n />\n </Tooltip>\n </ThumbnailCell>\n )\n }}\n </StyledVariableSizeGrid>\n )}\n </InfiniteLoader>\n </StyledThumbnailGrid>\n )\n }\n)\n"],"mappings":"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"}
@@ -7,31 +7,31 @@ import { getEllipsis } from '../_styles/mixins';
7
7
  import { spacing } from '../_styles/spacing';
8
8
  export var StyledCheckbox = /*#__PURE__*/styled(Checkbox).withConfig({
9
9
  displayName: "StyledCheckbox",
10
- componentId: "core-12_45_0__sc-1inrbm9-0"
10
+ componentId: "core-12_46_0__sc-1inrbm9-0"
11
11
  })(["input{z-index:2;}"]);
12
12
  export var StyledGroupCell = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledGroupCell",
14
- componentId: "core-12_45_0__sc-1inrbm9-1"
14
+ componentId: "core-12_46_0__sc-1inrbm9-1"
15
15
  })(["display:flex;align-items:flex-end;padding-bottom:", "px;"], spacing.md);
16
16
  export var StyledThumbnail = /*#__PURE__*/styled(Thumbnail).withConfig({
17
17
  displayName: "StyledThumbnail",
18
- componentId: "core-12_45_0__sc-1inrbm9-2"
18
+ componentId: "core-12_46_0__sc-1inrbm9-2"
19
19
  })(["display:inline-flex;&:focus{outline:none;}"]);
20
20
  // VariableSizeGrid has provided width and height as inline style, so to make it flexible and support responsive !important was added
21
21
  export var StyledVariableSizeGrid = /*#__PURE__*/styled(VariableSizeGrid).withConfig({
22
22
  displayName: "StyledVariableSizeGrid",
23
- componentId: "core-12_45_0__sc-1inrbm9-3"
23
+ componentId: "core-12_46_0__sc-1inrbm9-3"
24
24
  })(["height:100% !important;& > div{width:100% !important;}"]);
25
25
  export var StyledGroupTitle = /*#__PURE__*/styled(Typography).withConfig({
26
26
  displayName: "StyledGroupTitle",
27
- componentId: "core-12_45_0__sc-1inrbm9-4"
27
+ componentId: "core-12_46_0__sc-1inrbm9-4"
28
28
  })(["", ""], getEllipsis);
29
29
  export var StyledSpinnerWrapper = /*#__PURE__*/styled.div.withConfig({
30
30
  displayName: "StyledSpinnerWrapper",
31
- componentId: "core-12_45_0__sc-1inrbm9-5"
31
+ componentId: "core-12_46_0__sc-1inrbm9-5"
32
32
  })(["display:flex;justify-content:center;align-items:center;width:100%;height:100%;"]);
33
33
  export var StyledThumbnailGrid = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledThumbnailGrid",
35
- componentId: "core-12_45_0__sc-1inrbm9-6"
35
+ componentId: "core-12_46_0__sc-1inrbm9-6"
36
36
  })(["display:flex;flex-wrap:wrap;outline:none;"]);
37
37
  //# sourceMappingURL=ThumbnailGrid.styles.js.map
@@ -36,23 +36,50 @@ export interface QaTags {
36
36
  */
37
37
  thumbnail?: (id: string | number) => string;
38
38
  }
39
- export interface ThumbnailGridProps<T extends ThumbnailGridItem = ThumbnailGridItem> {
39
+ declare type ThumbnailGridLabelProps = {
40
40
  /**
41
+ * Accessible name for the grid, applied as `aria-label` on the root element.
42
+ * Use a short, content-specific description (e.g. "Project photos", "Attachments").
43
+ *
44
+ * @since 12.43.0
45
+ */
46
+ accessibleLabel: string;
47
+ /**
48
+ * Visible heading row for the whole grid. When provided, the root uses
49
+ * `aria-labelledby` pointing at this heading instead of `aria-label`.
50
+ *
41
51
  * @since 10.19.0
42
52
  */
43
- selected: T[];
53
+ title?: string;
54
+ } | {
44
55
  /**
56
+ * Accessible name for the grid, applied as `aria-label` on the root element.
57
+ * Use a short, content-specific description (e.g. "Project photos", "Attachments").
58
+ *
59
+ * @since 12.43.0
60
+ */
61
+ accessibleLabel?: never;
62
+ /**
63
+ * Visible heading row for the whole grid. When provided, the root uses
64
+ * `aria-labelledby` pointing at this heading instead of `aria-label`.
65
+ *
45
66
  * @since 10.19.0
46
67
  */
47
- items: T[];
68
+ title: string;
69
+ };
70
+ export declare type ThumbnailGridProps<T extends ThumbnailGridItem = ThumbnailGridItem> = ThumbnailGridLabelProps & {
48
71
  /**
49
72
  * @since 10.19.0
50
73
  */
51
- groups?: ThumbnailGridGroup[];
74
+ selected: T[];
52
75
  /**
53
76
  * @since 10.19.0
54
77
  */
55
- title?: string;
78
+ items: T[];
79
+ /**
80
+ * @since 10.19.0
81
+ */
82
+ groups?: ThumbnailGridGroup[];
56
83
  /**
57
84
  * @since 10.19.0
58
85
  */
@@ -108,7 +135,7 @@ export interface ThumbnailGridProps<T extends ThumbnailGridItem = ThumbnailGridI
108
135
  * @since 11.18.2
109
136
  */
110
137
  onDeselectAllGroup?: (groupId: string) => void;
111
- }
138
+ };
112
139
  export interface ThumbnailGridItem {
113
140
  /**
114
141
  * @since 10.19.0
@@ -131,3 +158,4 @@ export interface ThumbnailGridItem {
131
158
  */
132
159
  groupId?: string | number;
133
160
  }
161
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ThumbnailGrid.types.js","names":[],"sources":["../../src/ThumbnailGrid/ThumbnailGrid.types.ts"],"sourcesContent":["import type {\n ThumbnailProps,\n ThumbnailRoleType,\n} from '../Thumbnail/Thumbnail.types'\n\nexport interface ThumbnailGridGroup {\n /**\n * @since 10.19.0\n */\n id: string | number\n /**\n * @since 10.19.0\n */\n title: string\n}\n\nexport interface ThumbnailGridGroupTitle {\n /**\n * @since 11.18.2\n */\n title: string\n /**\n * @since 11.18.2\n */\n groupId?: string | number\n}\n\nexport interface LoaderGridItem {\n /**\n * @since 10.19.0\n */\n isFetching: boolean\n}\n\nexport type GridCellData =\n | ThumbnailGridItem\n | ThumbnailGridGroupTitle\n | LoaderGridItem\n\nexport interface QaTags {\n /**\n * @since 10.19.0\n */\n grid?: string\n /**\n * @since 10.19.0\n */\n thumbnail?: (id: string | number) => string\n}\n\nexport interface ThumbnailGridProps<\n T extends ThumbnailGridItem = ThumbnailGridItem\n> {\n /**\n * @since 10.19.0\n */\n selected: T[]\n /**\n * @since 10.19.0\n */\n items: T[]\n /**\n * @since 10.19.0\n */\n groups?: ThumbnailGridGroup[]\n /**\n * @since 10.19.0\n */\n title?: string\n /**\n * @since 10.19.0\n */\n gridWidth?: number\n /**\n * @since 10.19.0\n */\n gridHeight?: number\n /**\n * @since 10.19.0\n */\n onSelect?: (item: T) => void\n /**\n * @since 10.19.0\n */\n onDeselect?: (item: T) => void\n /**\n * @since 10.19.0\n */\n disableSelection?: {\n value: boolean\n tooltip: string\n }\n /**\n * @since 10.19.0\n */\n isFetching?: boolean\n /**\n * @since 10.19.0\n */\n loadMoreItems?: () => Promise<any>\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n /**\n * @since 11.18.2\n */\n allowSelectAll?: boolean\n /**\n * @since 11.18.2\n */\n onSelectAll?: () => void\n /**\n * @since 11.18.2\n */\n onDeselectAll?: () => void\n /**\n * @since 11.18.2\n */\n onSelectAllGroup?: (groupId: string) => void\n /**\n * @since 11.18.2\n */\n onDeselectAllGroup?: (groupId: string) => void\n}\n\nexport interface ThumbnailGridItem {\n /**\n * @since 10.19.0\n */\n id: string | number\n /**\n * @since 10.19.0\n */\n src?: ThumbnailProps<ThumbnailRoleType>['src']\n /**\n * @since 10.19.0\n */\n name?: ThumbnailProps<ThumbnailRoleType>['caption']\n /**\n * @since 10.19.0\n */\n label?: ThumbnailProps<ThumbnailRoleType>['label']\n /**\n * @since 10.19.0\n */\n groupId?: string | number\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ThumbnailGrid.types.js","names":[],"sources":["../../src/ThumbnailGrid/ThumbnailGrid.types.ts"],"sourcesContent":["import type {\n ThumbnailProps,\n ThumbnailRoleType,\n} from '../Thumbnail/Thumbnail.types'\n\nexport interface ThumbnailGridGroup {\n /**\n * @since 10.19.0\n */\n id: string | number\n /**\n * @since 10.19.0\n */\n title: string\n}\n\nexport interface ThumbnailGridGroupTitle {\n /**\n * @since 11.18.2\n */\n title: string\n /**\n * @since 11.18.2\n */\n groupId?: string | number\n}\n\nexport interface LoaderGridItem {\n /**\n * @since 10.19.0\n */\n isFetching: boolean\n}\n\nexport type GridCellData =\n | ThumbnailGridItem\n | ThumbnailGridGroupTitle\n | LoaderGridItem\n\nexport interface QaTags {\n /**\n * @since 10.19.0\n */\n grid?: string\n /**\n * @since 10.19.0\n */\n thumbnail?: (id: string | number) => string\n}\n\ntype ThumbnailGridLabelProps =\n | {\n /**\n * Accessible name for the grid, applied as `aria-label` on the root element.\n * Use a short, content-specific description (e.g. \"Project photos\", \"Attachments\").\n *\n * @since 12.43.0\n */\n accessibleLabel: string\n /**\n * Visible heading row for the whole grid. When provided, the root uses\n * `aria-labelledby` pointing at this heading instead of `aria-label`.\n *\n * @since 10.19.0\n */\n title?: string\n }\n | {\n /**\n * Accessible name for the grid, applied as `aria-label` on the root element.\n * Use a short, content-specific description (e.g. \"Project photos\", \"Attachments\").\n *\n * @since 12.43.0\n */\n accessibleLabel?: never\n /**\n * Visible heading row for the whole grid. When provided, the root uses\n * `aria-labelledby` pointing at this heading instead of `aria-label`.\n *\n * @since 10.19.0\n */\n title: string\n }\n\nexport type ThumbnailGridProps<\n T extends ThumbnailGridItem = ThumbnailGridItem\n> = ThumbnailGridLabelProps & {\n /**\n * @since 10.19.0\n */\n selected: T[]\n /**\n * @since 10.19.0\n */\n items: T[]\n /**\n * @since 10.19.0\n */\n groups?: ThumbnailGridGroup[]\n /**\n * @since 10.19.0\n */\n gridWidth?: number\n /**\n * @since 10.19.0\n */\n gridHeight?: number\n /**\n * @since 10.19.0\n */\n onSelect?: (item: T) => void\n /**\n * @since 10.19.0\n */\n onDeselect?: (item: T) => void\n /**\n * @since 10.19.0\n */\n disableSelection?: {\n value: boolean\n tooltip: string\n }\n /**\n * @since 10.19.0\n */\n isFetching?: boolean\n /**\n * @since 10.19.0\n */\n loadMoreItems?: () => Promise<any>\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n /**\n * @since 11.18.2\n */\n allowSelectAll?: boolean\n /**\n * @since 11.18.2\n */\n onSelectAll?: () => void\n /**\n * @since 11.18.2\n */\n onDeselectAll?: () => void\n /**\n * @since 11.18.2\n */\n onSelectAllGroup?: (groupId: string) => void\n /**\n * @since 11.18.2\n */\n onDeselectAllGroup?: (groupId: string) => void\n}\n\nexport interface ThumbnailGridItem {\n /**\n * @since 10.19.0\n */\n id: string | number\n /**\n * @since 10.19.0\n */\n src?: ThumbnailProps<ThumbnailRoleType>['src']\n /**\n * @since 10.19.0\n */\n name?: ThumbnailProps<ThumbnailRoleType>['caption']\n /**\n * @since 10.19.0\n */\n label?: ThumbnailProps<ThumbnailRoleType>['label']\n /**\n * @since 10.19.0\n */\n groupId?: string | number\n}\n"],"mappings":""}
@@ -9,19 +9,19 @@ import { colors } from '../_styles/colors';
9
9
  import { spacing } from '../_styles/spacing';
10
10
  export var StyledTieredSelect = /*#__PURE__*/styled(MenuImperative).withConfig({
11
11
  displayName: "StyledTieredSelect",
12
- componentId: "core-12_45_0__sc-e1ql06-0"
12
+ componentId: "core-12_46_0__sc-e1ql06-0"
13
13
  })(["align-items:stretch;max-height:40vh;"]);
14
14
  export var StyledTieredSelectIcon = /*#__PURE__*/styled(Flex).withConfig({
15
15
  displayName: "StyledTieredSelectIcon",
16
- componentId: "core-12_45_0__sc-e1ql06-1"
16
+ componentId: "core-12_46_0__sc-e1ql06-1"
17
17
  })(["height:24px;width:24px;"]);
18
18
  export var StyledTieredSelectArrowButton = /*#__PURE__*/styled(Button).withConfig({
19
19
  displayName: "StyledTieredSelectArrowButton",
20
- componentId: "core-12_45_0__sc-e1ql06-2"
20
+ componentId: "core-12_46_0__sc-e1ql06-2"
21
21
  })(["border:1px solid transparent;"]);
22
22
  export var StyledTieredSelectBreadcrumbs = /*#__PURE__*/styled(Breadcrumbs).withConfig({
23
23
  displayName: "StyledTieredSelectBreadcrumbs",
24
- componentId: "core-12_45_0__sc-e1ql06-3"
24
+ componentId: "core-12_46_0__sc-e1ql06-3"
25
25
  })(["background-color:", ";flex-wrap:wrap;margin-top:", "px;max-height:68px;overflow-y:auto;padding:", "px ", "px;", ""], colors.gray96, spacing.sm, spacing.xs, spacing.md, function (_ref) {
26
26
  var $nonInteractive = _ref.$nonInteractive;
27
27
  if ($nonInteractive) {
@@ -30,22 +30,22 @@ export var StyledTieredSelectBreadcrumbs = /*#__PURE__*/styled(Breadcrumbs).with
30
30
  });
31
31
  export var StyledTieredSelectHome = /*#__PURE__*/styled(Flex).withConfig({
32
32
  displayName: "StyledTieredSelectHome",
33
- componentId: "core-12_45_0__sc-e1ql06-4"
33
+ componentId: "core-12_46_0__sc-e1ql06-4"
34
34
  })(["height:20px;"]);
35
35
  export var StyledTieredSelectOption = /*#__PURE__*/styled(MenuImperative.Item).withConfig({
36
36
  displayName: "StyledTieredSelectOption",
37
- componentId: "core-12_45_0__sc-e1ql06-5"
37
+ componentId: "core-12_46_0__sc-e1ql06-5"
38
38
  })(["align-items:center;display:flex;justify-content:space-between;padding:2px ", "px;"], spacing.lg);
39
39
  export var StyledTieredSelectLoadingMore = /*#__PURE__*/styled(Flex).withConfig({
40
40
  displayName: "StyledTieredSelectLoadingMore",
41
- componentId: "core-12_45_0__sc-e1ql06-6"
41
+ componentId: "core-12_46_0__sc-e1ql06-6"
42
42
  })(["align-items:center;justify-content:center;padding:", "px ", "px 0px ", "px;"], spacing.xs, spacing.lg, spacing.lg);
43
43
  export var StyledTieredSelectOverlay = /*#__PURE__*/styled(Card).withConfig({
44
44
  displayName: "StyledTieredSelectOverlay",
45
- componentId: "core-12_45_0__sc-e1ql06-7"
45
+ componentId: "core-12_46_0__sc-e1ql06-7"
46
46
  })(["max-width:248px;min-width:inherit;"]);
47
47
  export var StyledTieredSelectSpinnerOverlay = /*#__PURE__*/styled(Spinner).withConfig({
48
48
  displayName: "StyledTieredSelectSpinnerOverlay",
49
- componentId: "core-12_45_0__sc-e1ql06-8"
49
+ componentId: "core-12_46_0__sc-e1ql06-8"
50
50
  })(["min-height:auto;"]);
51
51
  //# sourceMappingURL=TieredSelect.styles.js.map
@@ -44,7 +44,7 @@ var getTileStyles = function getTileStyles(_ref) {
44
44
  };
45
45
  export var StyledLinkTile = /*#__PURE__*/styled.a.withConfig({
46
46
  displayName: "StyledLinkTile",
47
- componentId: "core-12_45_0__sc-8q9p0n-0"
47
+ componentId: "core-12_46_0__sc-8q9p0n-0"
48
48
  })(["", " text-decoration:none;color:inherit;"], function (_ref2) {
49
49
  var $orientation = _ref2.$orientation;
50
50
  return getTileStyles({
@@ -54,7 +54,7 @@ export var StyledLinkTile = /*#__PURE__*/styled.a.withConfig({
54
54
  });
55
55
  export var StyledSelectableTile = /*#__PURE__*/styled.div.withConfig({
56
56
  displayName: "StyledSelectableTile",
57
- componentId: "core-12_45_0__sc-8q9p0n-1"
57
+ componentId: "core-12_46_0__sc-8q9p0n-1"
58
58
  })(["", ""], function (_ref3) {
59
59
  var $orientation = _ref3.$orientation,
60
60
  $selected = _ref3.$selected,
@@ -72,7 +72,7 @@ export var StyledSelectableTile = /*#__PURE__*/styled.div.withConfig({
72
72
  });
73
73
  export var StyledInteractableTile = /*#__PURE__*/styled.div.withConfig({
74
74
  displayName: "StyledInteractableTile",
75
- componentId: "core-12_45_0__sc-8q9p0n-2"
75
+ componentId: "core-12_46_0__sc-8q9p0n-2"
76
76
  })(["", ""], function (_ref4) {
77
77
  var $orientation = _ref4.$orientation;
78
78
  return getTileStyles({
@@ -81,26 +81,26 @@ export var StyledInteractableTile = /*#__PURE__*/styled.div.withConfig({
81
81
  });
82
82
  export var StyledFooter = /*#__PURE__*/styled.div.withConfig({
83
83
  displayName: "StyledFooter",
84
- componentId: "core-12_45_0__sc-8q9p0n-3"
84
+ componentId: "core-12_46_0__sc-8q9p0n-3"
85
85
  })(["grid-area:footer;padding:", "px;> ", "{flex-wrap:wrap-reverse;}"], spacing.lg, StyledActions);
86
86
  export var StyledTileContent = /*#__PURE__*/styled(StyledContent).withConfig({
87
87
  displayName: "StyledTileContent",
88
- componentId: "core-12_45_0__sc-8q9p0n-4"
88
+ componentId: "core-12_46_0__sc-8q9p0n-4"
89
89
  })(["grid-column-start:hero-start;grid-column-end:body-end;padding:", "px;+ ", "{padding-top:0;}> ", ",> ", " > ", ",> ", "{grid-column-gap:", "px;}"], spacing.lg, StyledFooter, SFormRow, SForm, SFormRow, SFormRow, spacing.md);
90
90
  export var StyledHeroMedia = /*#__PURE__*/styled.figure.withConfig({
91
91
  displayName: "StyledHeroMedia",
92
- componentId: "core-12_45_0__sc-8q9p0n-5"
92
+ componentId: "core-12_46_0__sc-8q9p0n-5"
93
93
  })(["grid-area:hero;margin:0;position:relative;overflow:hidden;font-size:0;> *{font-size:initial;}+ ", "{grid-area:body;}> video{background-color:", ";}> img,> picture > img{object-fit:cover;}", ""], StyledTileContent, colors.black, function (_ref5) {
94
94
  var $orientation = _ref5.$orientation;
95
95
  return $orientation === 'landscape' && !isIE11() ? css(["border-top-left-radius:inherit;border-bottom-left-radius:inherit;> *,> picture > img{height:100%;width:100%;position:absolute;}@media ", "{> picture > img,> img{width:auto;left:50%;transform:translate(-50%,0);}}"], mediaIE11Hack) : css(["min-height:156px;max-height:567px;border-top-left-radius:inherit;border-top-right-radius:inherit;> *,> picture > img{min-height:inherit;max-height:inherit;height:auto;width:100%;}"]);
96
96
  });
97
97
  export var StyledHeroOverlay = /*#__PURE__*/styled.div.withConfig({
98
98
  displayName: "StyledHeroOverlay",
99
- componentId: "core-12_45_0__sc-8q9p0n-6"
99
+ componentId: "core-12_46_0__sc-8q9p0n-6"
100
100
  })(["position:absolute;width:100%;height:100%;top:0;left:0;z-index:1;"]);
101
101
  export var StyledHeroText = /*#__PURE__*/styled.div.withConfig({
102
102
  displayName: "StyledHeroText",
103
- componentId: "core-12_45_0__sc-8q9p0n-7"
103
+ componentId: "core-12_46_0__sc-8q9p0n-7"
104
104
  })(["grid-area:hero;+ ", "{grid-area:body;}padding:", "px;border-radius:inherit;", ""], StyledTileContent, spacing.lg, function (_ref6) {
105
105
  var $orientation = _ref6.$orientation;
106
106
  return $orientation === 'landscape' ? css(["display:flex;flex-direction:column;justify-content:center;padding-right:0;"]) : css(["padding-bottom:0;"]);
@@ -5,36 +5,36 @@ import { Typography } from '../Typography/Typography';
5
5
  import { spacing } from '../_styles/spacing';
6
6
  export var StyledTitle = /*#__PURE__*/styled.div.withConfig({
7
7
  displayName: "StyledTitle",
8
- componentId: "core-12_45_0__sc-1t2ye1d-0"
8
+ componentId: "core-12_46_0__sc-1t2ye1d-0"
9
9
  })(["display:flex;align-items:flex-start;"]);
10
10
  export var StyledAssets = /*#__PURE__*/styled.div.withConfig({
11
11
  displayName: "StyledAssets",
12
- componentId: "core-12_45_0__sc-1t2ye1d-1"
12
+ componentId: "core-12_46_0__sc-1t2ye1d-1"
13
13
  })(["margin-right:", "px;", ""], spacing.md, function (_ref) {
14
14
  var alignment = _ref.alignment;
15
15
  return css(["align-self:", ";"], alignment);
16
16
  });
17
17
  export var StyledTitleContent = /*#__PURE__*/styled.div.withConfig({
18
18
  displayName: "StyledTitleContent",
19
- componentId: "core-12_45_0__sc-1t2ye1d-2"
19
+ componentId: "core-12_46_0__sc-1t2ye1d-2"
20
20
  })(["align-self:center;", ""], function (_ref2) {
21
21
  var $hasActions = _ref2.$hasActions;
22
22
  return $hasActions && css(["margin-right:", "px;"], spacing.lg);
23
23
  });
24
24
  export var StyledText = /*#__PURE__*/styled.span.withConfig({
25
25
  displayName: "StyledText",
26
- componentId: "core-12_45_0__sc-1t2ye1d-3"
26
+ componentId: "core-12_46_0__sc-1t2ye1d-3"
27
27
  })(["> h1,> h2,> h3{display:inline;}"]);
28
28
  export var StyledTitlePill = /*#__PURE__*/styled.span.withConfig({
29
29
  displayName: "StyledTitlePill",
30
- componentId: "core-12_45_0__sc-1t2ye1d-4"
30
+ componentId: "core-12_46_0__sc-1t2ye1d-4"
31
31
  })(["margin-left:", "px;", "{vertical-align:text-top;}"], spacing.sm, StyledPill);
32
32
  export var StyledTitleActions = /*#__PURE__*/styled(StyledActions).withConfig({
33
33
  displayName: "StyledTitleActions",
34
- componentId: "core-12_45_0__sc-1t2ye1d-5"
34
+ componentId: "core-12_46_0__sc-1t2ye1d-5"
35
35
  })(["margin-left:auto;"]);
36
36
  export var StyledSubtext = /*#__PURE__*/styled(Typography).withConfig({
37
37
  displayName: "StyledSubtext",
38
- componentId: "core-12_45_0__sc-1t2ye1d-6"
38
+ componentId: "core-12_46_0__sc-1t2ye1d-6"
39
39
  })(["display:block;margin-top:", "px;"], spacing.xs);
40
40
  //# sourceMappingURL=Title.styles.js.map
@@ -7,7 +7,7 @@ import { getShadow } from '../_styles/shadows';
7
7
  import { spacing } from '../_styles/spacing';
8
8
  export var StyledToast = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledToast",
10
- componentId: "core-12_45_0__sc-1l6lk2n-0"
10
+ componentId: "core-12_46_0__sc-1l6lk2n-0"
11
11
  })(["", " align-items:center;background-color:", ";border-radius:", "px;color:", ";display:flex;min-height:48px;padding:", "px ", "px;width:550px;"], getShadow(4, 'bottom'), function (_ref) {
12
12
  var $variant = _ref.$variant;
13
13
  return $variant === 'success' ? colors.green30 : colors.red50;
@@ -16,13 +16,13 @@ export var StyledToast = /*#__PURE__*/styled.div.withConfig({
16
16
  // $legacy is direct string inside Toast. Next is with subcomponents
17
17
  export var StyledToastText = /*#__PURE__*/styled.span.withConfig({
18
18
  displayName: "StyledToastText",
19
- componentId: "core-12_45_0__sc-1l6lk2n-1"
19
+ componentId: "core-12_46_0__sc-1l6lk2n-1"
20
20
  })(["", " font-weight:", ";overflow:hidden;", ""], getTypographyIntent('body'), typographyWeights.semibold, function (_ref2) {
21
21
  var $legacy = _ref2.$legacy;
22
22
  return $legacy ? "margin-left: ".concat(spacing.lg, "px;") : "padding: 0 ".concat(spacing.lg, "px;");
23
23
  });
24
24
  export var StyledToastButton = /*#__PURE__*/styled(Button).withConfig({
25
25
  displayName: "StyledToastButton",
26
- componentId: "core-12_45_0__sc-1l6lk2n-2"
26
+ componentId: "core-12_46_0__sc-1l6lk2n-2"
27
27
  })(["line-height:0;color:", ";padding:0;margin-left:auto;"], colors.white);
28
28
  //# sourceMappingURL=Toast.styles.js.map
@@ -3,7 +3,7 @@ import { Button } from '../Button/Button';
3
3
  import { colors } from '../_styles/colors';
4
4
  export var StyledToggleButton = /*#__PURE__*/styled(Button).withConfig({
5
5
  displayName: "StyledToggleButton",
6
- componentId: "core-12_45_0__sc-1x59fxi-0"
6
+ componentId: "core-12_46_0__sc-1x59fxi-0"
7
7
  })(["", ""], function (_ref) {
8
8
  var $selected = _ref.$selected;
9
9
  return $selected && css(["background-color:", ";color:", ";[data-icon-prop='true']{color:", ";}&:hover{background-color:", ";color:", ";}&:focus{background-color:", ";color:", ";}&:disabled{background-color:", ";color:", ";[data-icon-prop='true']{color:", ";}circle{stroke:", ";}}"], colors.blue96, colors.blue45, colors.blue50, colors.blue90, colors.blue45, colors.blue96, colors.blue45, colors.blue96, colors.blue70, colors.blue70, colors.blue50);
@@ -3,12 +3,13 @@ var _excluded = ["children", "disabled", "focused", "error", "variant"],
3
3
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
5
5
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
6
- import { Clear } from '@procore/core-icons';
6
+ import { Clear, Error as ErrorIcon } from '@procore/core-icons';
7
7
  import { useId } from '@react-aria/utils';
8
8
  import React from 'react';
9
+ import { Tooltip } from '../Tooltip';
9
10
  import { useI18nContext } from '../_hooks/I18n';
10
11
  import { addSubcomponents } from '../_utils/addSubcomponents';
11
- import { StyledLabel, StyledRemove, StyledToken } from './Token.styles';
12
+ import { StyledErrorButton, StyledErrorIcon, StyledLabel, StyledRemove, StyledToken } from './Token.styles';
12
13
  var TokenContext = /*#__PURE__*/React.createContext({
13
14
  labelId: '',
14
15
  removeId: '',
@@ -24,10 +25,13 @@ var Parent = /*#__PURE__*/React.forwardRef(function Token(_ref, ref) {
24
25
  error = _ref$error === void 0 ? false : _ref$error,
25
26
  variant = _ref.variant,
26
27
  props = _objectWithoutProperties(_ref, _excluded);
28
+ var i18n = useI18nContext();
27
29
  var labelId = useId();
28
30
  var removeId = useId();
29
31
  var isDisabled = disabled || variant === 'disabled';
30
32
  var isFocused = focused || variant === 'focused';
33
+ var hasError = Boolean(error);
34
+ var errorMessage = typeof error === 'string' ? error : undefined;
31
35
  return /*#__PURE__*/React.createElement(TokenContext.Provider, {
32
36
  value: {
33
37
  labelId: labelId,
@@ -40,8 +44,20 @@ var Parent = /*#__PURE__*/React.forwardRef(function Token(_ref, ref) {
40
44
  }, props, {
41
45
  $disabled: isDisabled,
42
46
  $focused: isFocused,
43
- $error: error
44
- }), children));
47
+ $error: hasError
48
+ }), hasError && (errorMessage ? /*#__PURE__*/React.createElement(Tooltip, {
49
+ overlay: errorMessage
50
+ }, /*#__PURE__*/React.createElement(StyledErrorButton, {
51
+ "aria-label": i18n.t('core.token.error'),
52
+ type: "button"
53
+ }, /*#__PURE__*/React.createElement(ErrorIcon, {
54
+ size: "sm"
55
+ }))) : /*#__PURE__*/React.createElement(StyledErrorIcon, {
56
+ "aria-label": i18n.t('core.token.error'),
57
+ role: "img"
58
+ }, /*#__PURE__*/React.createElement(ErrorIcon, {
59
+ size: "sm"
60
+ }))), children));
45
61
  });
46
62
  var Remove = /*#__PURE__*/React.forwardRef(function TokenRemove(props, ref) {
47
63
  var i18n = useI18nContext();