@procore/core-react 12.17.6 → 12.17.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babel.config.js +4 -1
- package/dist/AnchorNavigation/AnchorNavigation.js.map +1 -1
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/AnchorNavigation/AnchorNavigationProvider.js.map +1 -1
- package/dist/Avatar/Avatar.js +1 -2
- package/dist/Avatar/Avatar.js.map +1 -1
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.js.map +1 -1
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/Banner/Banner.js +36 -6
- package/dist/Banner/Banner.js.map +1 -1
- package/dist/Banner/Banner.styles.d.ts +1 -1
- package/dist/Banner/Banner.styles.js +15 -15
- package/dist/Banner/Banner.styles.js.map +1 -1
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.js.map +1 -1
- package/dist/Button/Button.styles.d.ts +1 -0
- package/dist/Button/Button.styles.js +7 -7
- package/dist/Button/Button.styles.js.map +1 -1
- package/dist/Button/Button.types.d.ts +4 -0
- package/dist/Button/Button.types.js.map +1 -1
- package/dist/Calendar/Calendar.js.map +1 -1
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.js.map +1 -1
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DateSelect/DateSelect.js.map +1 -1
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.hooks.js +1 -2
- package/dist/Dropzone/Dropzone.hooks.js.map +1 -1
- package/dist/Dropzone/Dropzone.js +7 -9
- package/dist/Dropzone/Dropzone.js.map +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.js +22 -3
- package/dist/EmptyState/EmptyState.js.map +1 -1
- package/dist/EmptyState/EmptyState.styles.d.ts +3 -0
- package/dist/EmptyState/EmptyState.styles.js +28 -19
- package/dist/EmptyState/EmptyState.styles.js.map +1 -1
- package/dist/EmptyState/EmptyState.types.d.ts +17 -0
- package/dist/EmptyState/EmptyState.types.js +7 -1
- package/dist/EmptyState/EmptyState.types.js.map +1 -1
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js.map +1 -1
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.js.map +1 -1
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.js.map +1 -1
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.js.map +1 -1
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.js.map +1 -1
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.js.map +1 -1
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.js.map +1 -1
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.js.map +1 -1
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileSelect/storyHelpers.js.map +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.js +22 -32
- package/dist/FilterToken/FilterToken.js.map +1 -1
- package/dist/FilterToken/FilterToken.styles.d.ts +5 -0
- package/dist/FilterToken/FilterToken.styles.js +18 -2
- package/dist/FilterToken/FilterToken.styles.js.map +1 -1
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.js +14 -14
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/Form/stories/util.js.map +1 -1
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/MenuImperative/sensors.js.map +1 -1
- package/dist/Modal/Modal.js.map +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.js.map +1 -1
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/Overlay.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
- package/dist/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.js.map +1 -1
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.js.map +1 -1
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +2 -2
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.d.ts +2 -0
- package/dist/ProgressBar/ProgressBar.js +2 -0
- package/dist/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/ProgressBar/ProgressBar.types.js.map +1 -1
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.js.map +1 -1
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.js +1 -2
- package/dist/Section/Section.js.map +1 -1
- package/dist/Section/Section.styles.js +7 -7
- package/dist/Section/Section.styles.js.map +1 -1
- package/dist/SegmentedController/SegmentedController.js.map +1 -1
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.context.js.map +1 -1
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +37 -37
- package/dist/SuperSelect/SuperSelect.utils.js +1 -2
- package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
- package/dist/SuperSelect/presets/contactsPreset.js.map +1 -1
- package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
- package/dist/SuperSelect/presets/pillPreset.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.js.map +1 -1
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.js.map +1 -1
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.js.map +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/Thumbnail/Thumbnail.utils.js +2 -3
- package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
- package/dist/Thumbnail/ThumbnailDocumentIcon.js +2 -3
- package/dist/Thumbnail/ThumbnailDocumentIcon.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredDropdown/TieredDropdown.js.map +1 -1
- package/dist/TieredSelect/LeafSelectionTieredSelect.js.map +1 -1
- package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
- package/dist/Tile/Tile.js.map +1 -1
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ActionIcon.types.example.js.map +1 -1
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.js.map +1 -1
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Tree/Tree.styles.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/FocusScopeOverride.js.map +1 -1
- package/dist/_hooks/Hotkey.js.map +1 -1
- package/dist/_hooks/TextEntry.js.map +1 -1
- package/dist/_hooks/Timer.js.map +1 -1
- package/dist/_hooks/Trigger.js.map +1 -1
- package/dist/_hooks/useFileUploader.js.map +1 -1
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +24 -16
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +9 -9
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +43 -39
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +29 -29
- package/dist/_typedoc/Dropzone/Dropzone.types.json +41 -41
- package/dist/_typedoc/EmptyState/EmptyState.types.json +43 -15
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +26 -26
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +741 -741
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +4 -4
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +37 -37
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +31 -31
- package/dist/_typedoc/PageLayout/PageLayout.types.json +29 -29
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +34 -30
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +19 -19
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +60 -60
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +12 -12
- package/dist/_typedoc/Switch/Switch.types.json +3 -3
- package/dist/_typedoc/Table/Table.types.json +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +48 -44
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- package/dist/_typedoc/Tile/Tile.types.json +30 -30
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +4 -4
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/dist/_typedoc/deprecations.json +1 -1
- package/dist/_utils/TinyMCE.js.map +1 -1
- package/dist/_utils/closeWithConfirm.js.map +1 -1
- package/dist/_utils/dateTime.js.map +1 -1
- package/dist/_utils/getAnchorPosition.js.map +1 -1
- package/package.json +2 -1
- package/tsconfig.prod.json +2 -1
- package/tsconfig.test.json +1 -1
package/babel.config.js
CHANGED
|
@@ -4,7 +4,10 @@ const namespace = `core-${version}`
|
|
|
4
4
|
|
|
5
5
|
if (process.env.BUNDLING) {
|
|
6
6
|
module.exports = {
|
|
7
|
-
ignore: [
|
|
7
|
+
ignore: [
|
|
8
|
+
/(.*)\.(coverage|stories|test|snap|figma)\.?(.*)?/,
|
|
9
|
+
'**/__tests__/**/*',
|
|
10
|
+
],
|
|
8
11
|
presets: [
|
|
9
12
|
['@babel/preset-env', { modules: false }],
|
|
10
13
|
'@babel/preset-react',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorNavigation.js","names":["React","StyledAnchor","StyledAnchorNavigation","StyledAnchorSection","Anchor","_ref","label","active","onClick","handleKeyDown","event","key","createElement","$active","onKeyDown","tabIndex","AnchorNavigation","forwardRef","_ref2","ref","sections","setActive","map","_ref3","id"],"sources":["../../src/AnchorNavigation/AnchorNavigation.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledAnchor,\n StyledAnchorNavigation,\n StyledAnchorSection,\n} from './AnchorNavigation.styles'\nimport type { AnchorNavigationSection } from './AnchorNavigation.types'\n\ntype AnchorNavigationProps = {\n sections: AnchorNavigationSection[]\n active: string\n setActive: (id: string) => void\n}\n\ntype AnchorProps = {\n label: string\n active: boolean\n onClick: () => void\n}\n\nconst Anchor = ({ label, active, onClick }: AnchorProps) => {\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick()\n }\n }\n return (\n <StyledAnchorSection\n $active={active}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n >\n <StyledAnchor aria-current={active} $active={active} tabIndex={0}>\n {label}\n </StyledAnchor>\n </StyledAnchorSection>\n )\n}\n\nexport const AnchorNavigation = React.forwardRef<\n HTMLUListElement,\n AnchorNavigationProps\n>(({ sections, active, setActive }, ref) => {\n return (\n <StyledAnchorNavigation ref={ref}>\n {sections.map(({ id, label }) => {\n return (\n <Anchor\n key={id}\n onClick={() => setActive(id)}\n active={active === id}\n label={label}\n />\n )\n })}\n </StyledAnchorNavigation>\n )\n})\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,QACd,2BAA2B;AAelC,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAgD;EAAA,IAA1CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EACtC,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAA0B,EAAK;IACpD,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,EAAE;MAC9CH,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EACD,oBACER,KAAA,CAAAY,aAAA,CAACT,mBAAmB;IAClBU,OAAO,EAAEN,MAAO;IAChBC,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAEL;EAAc,gBAEzBT,KAAA,CAAAY,aAAA,CAACX,YAAY;IAAC,gBAAcM,MAAO;IAACM,OAAO,EAAEN,MAAO;IAACQ,QAAQ,EAAE;EAAE,GAC9DT,KACW,CACK,CAAC;AAE1B,CAAC;AAED,OAAO,IAAMU,gBAAgB,gBAAGhB,KAAK,CAACiB,UAAU,CAG9C,UAAAC,KAAA,EAAkCC,GAAG,EAAK;EAAA,IAAvCC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IAAEb,MAAM,GAAAW,KAAA,CAANX,MAAM;IAAEc,SAAS,GAAAH,KAAA,CAATG,SAAS;EAC9B,oBACErB,KAAA,CAAAY,aAAA,CAACV,sBAAsB;IAACiB,GAAG,EAAEA;EAAI,GAC9BC,QAAQ,CAACE,GAAG,CAAC,UAAAC,KAAA,EAAmB;IAAA,IAAhBC,EAAE,GAAAD,KAAA,CAAFC,EAAE;MAAElB,KAAK,GAAAiB,KAAA,CAALjB,KAAK;IACxB,oBACEN,KAAA,CAAAY,aAAA,CAACR,MAAM;MACLO,GAAG,EAAEa,EAAG;MACRhB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AnchorNavigation.js","names":["React","StyledAnchor","StyledAnchorNavigation","StyledAnchorSection","Anchor","_ref","label","active","onClick","handleKeyDown","event","key","createElement","$active","onKeyDown","tabIndex","AnchorNavigation","forwardRef","_ref2","ref","sections","setActive","map","_ref3","id"],"sources":["../../src/AnchorNavigation/AnchorNavigation.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledAnchor,\n StyledAnchorNavigation,\n StyledAnchorSection,\n} from './AnchorNavigation.styles'\nimport type { AnchorNavigationSection } from './AnchorNavigation.types'\n\ntype AnchorNavigationProps = {\n sections: AnchorNavigationSection[]\n active: string\n setActive: (id: string) => void\n}\n\ntype AnchorProps = {\n label: string\n active: boolean\n onClick: () => void\n}\n\nconst Anchor = ({ label, active, onClick }: AnchorProps) => {\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick()\n }\n }\n return (\n <StyledAnchorSection\n $active={active}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n >\n <StyledAnchor aria-current={active} $active={active} tabIndex={0}>\n {label}\n </StyledAnchor>\n </StyledAnchorSection>\n )\n}\n\nexport const AnchorNavigation = React.forwardRef<\n HTMLUListElement,\n AnchorNavigationProps\n>(({ sections, active, setActive }, ref) => {\n return (\n <StyledAnchorNavigation ref={ref}>\n {sections.map(({ id, label }) => {\n return (\n <Anchor\n key={id}\n onClick={() => setActive(id)}\n active={active === id}\n label={label}\n />\n )\n })}\n </StyledAnchorNavigation>\n )\n})\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,QACd,2BAA2B;AAelC,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAgD;EAAA,IAA1CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EACtC,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAA0B,EAAK;IACpD,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,EAAE;MAC9CH,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EACD,oBACER,KAAA,CAAAY,aAAA,CAACT,mBAAmB;IAClBU,OAAO,EAAEN,MAAO;IAChBC,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAEL;EAAc,gBAEzBT,KAAA,CAAAY,aAAA,CAACX,YAAY;IAAC,gBAAcM,MAAO;IAACM,OAAO,EAAEN,MAAO;IAACQ,QAAQ,EAAE;EAAE,GAC9DT,KACW,CACK,CAAC;AAE1B,CAAC;AAED,OAAO,IAAMU,gBAAgB,gBAAGhB,KAAK,CAACiB,UAAU,CAG9C,UAAAC,KAAA,EAAkCC,GAAG,EAAK;EAAA,IAAvCC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IAAEb,MAAM,GAAAW,KAAA,CAANX,MAAM;IAAEc,SAAS,GAAAH,KAAA,CAATG,SAAS;EAC9B,oBACErB,KAAA,CAAAY,aAAA,CAACV,sBAAsB;IAACiB,GAAG,EAAEA;EAAI,GAC9BC,QAAQ,CAACE,GAAG,CAAC,UAAAC,KAAA,EAAmB;IAAA,IAAhBC,EAAE,GAAAD,KAAA,CAAFC,EAAE;MAAElB,KAAK,GAAAiB,KAAA,CAALjB,KAAK;IACxB,oBACEN,KAAA,CAAAY,aAAA,CAACR,MAAM;MACLO,GAAG,EAAEa,EAAG;MACRhB,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQa,SAAS,CAACG,EAAE,CAAC;MAAA,CAAC;MAC7BjB,MAAM,EAAEA,MAAM,KAAKiB,EAAG;MACtBlB,KAAK,EAAEA;IAAM,CACd,CAAC;EAEN,CAAC,CACqB,CAAC;AAE7B,CAAC,CAAC"}
|
|
@@ -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-
|
|
8
|
+
componentId: "core-12_17_8__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
|
+
componentId: "core-12_17_8__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 $active = _ref.$active;
|
|
15
15
|
return $active ? 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-
|
|
25
|
+
componentId: "core-12_17_8__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 $active = _ref4.$active;
|
|
28
28
|
return $active ? css(["font-weight:600;"]) : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorNavigationProvider.js","names":["throttle","React","AnchorNavigationContext","createContext","offset","sections","active","registerSection","unregisterSection","setActive","useAnchorNavigationContext","useContext","findScrollContainer","element","parent","parentElement","_window$getComputedSt","window","getComputedStyle","overflow","split","every","o","document","documentElement","getElementScrollPosition","scroller","y","el","offsetTop","offsetParent","AnchorNavigationProvider","_ref","children","_ref$offset","_React$useState","useState","_React$useState2","_slicedToArray","ref","useRef","blockScrollTimestamp","changeActive","id","_sections$find","_ref$current","current","find","section","scrollTo","top","behavior","Date","getTime","useEffect","onScroll","event","_ref$current2","now","length","scrollTop","scrollY","_sections$","selectedIndex","findIndex","item","selectedElement","Math","max","throttleScrollEvent","addEventListener","capture","passive","removeEventListener","cancel","label","_ref$current3","index","push","splice","createElement","Provider","value"],"sources":["../../src/AnchorNavigation/AnchorNavigationProvider.tsx"],"sourcesContent":["import throttle from 'lodash.throttle'\nimport React from 'react'\nimport type { AnchorNavigationElementSection } from './AnchorNavigation.types'\n\nexport const AnchorNavigationContext = React.createContext<{\n offset: number\n sections: AnchorNavigationElementSection[]\n active: string\n registerSection: (id: string, label: string, element: HTMLElement) => void\n unregisterSection: (id: string) => void\n setActive: (id: string, withScroll?: boolean) => void\n}>({\n offset: 0,\n sections: [],\n active: '',\n registerSection: () => {},\n unregisterSection: () => {},\n setActive: () => {},\n})\n\nexport const useAnchorNavigationContext = () =>\n React.useContext(AnchorNavigationContext)\n\ninterface AnchorNavigationProviderProps {\n offset?: number\n}\n\nfunction findScrollContainer(element: HTMLElement): HTMLElement {\n let parent = element.parentElement\n while (parent) {\n const { overflow } = window.getComputedStyle(parent)\n if (overflow.split(' ').every((o) => o === 'auto' || o === 'scroll')) {\n return parent\n }\n parent = parent.parentElement\n }\n\n return document.documentElement\n}\n\nfunction getElementScrollPosition(\n element: HTMLElement,\n scroller: HTMLElement | null\n): number {\n let y = 0\n let el: HTMLElement | null = element\n\n do {\n y += el.offsetTop\n el = el.offsetParent as HTMLElement | null\n } while (el && el !== scroller)\n\n return y\n}\n\nexport function AnchorNavigationProvider({\n children,\n offset = 0,\n}: React.PropsWithChildren<AnchorNavigationProviderProps>) {\n const [active, setActive] = React.useState('')\n const ref = React.useRef<{\n sections: AnchorNavigationElementSection[]\n blockScrollTimestamp: number\n scroller: HTMLElement | null\n }>({\n sections: [],\n blockScrollTimestamp: 0,\n scroller: null,\n })\n\n const changeActive = (id: string) => {\n const { sections, scroller } = ref.current\n setActive(id)\n\n const element = sections.find((section) => section.id === id)?.element\n\n if (element) {\n ;(scroller || window).scrollTo({\n top: getElementScrollPosition(element, scroller) - offset,\n behavior: 'smooth',\n })\n\n // Disable scroll listener to avoid changing active element\n ref.current.blockScrollTimestamp = new Date().getTime()\n }\n }\n\n React.useEffect(() => {\n const onScroll = (event?: Event) => {\n const { blockScrollTimestamp, sections, scroller } = ref.current\n const now = new Date().getTime()\n\n if (!sections.length) return\n\n // Disable scroll event when auto scrolling by clicking on the anchor\n if (now - blockScrollTimestamp < 200) {\n ref.current.blockScrollTimestamp = now\n return\n }\n\n const y =\n (scroller\n ? scroller.scrollTop\n : window.scrollY || document.documentElement.scrollTop) + offset\n\n // Before the first element\n if (getElementScrollPosition(sections[0].element, scroller) > y) {\n if (event) {\n setActive(sections[0]?.id)\n }\n return\n }\n\n // Get first element overflowing top, get the previous one\n const selectedIndex = sections.findIndex(\n (item) => getElementScrollPosition(item.element, scroller) > y\n )\n\n const selectedElement =\n selectedIndex === -1\n ? sections[sections.length - 1]\n : sections[Math.max(selectedIndex - 1, 0)]\n\n if (selectedElement) {\n setActive(selectedElement.id)\n }\n }\n\n const throttleScrollEvent = throttle(onScroll, 100)\n addEventListener('scroll', throttleScrollEvent, {\n capture: false,\n passive: true,\n })\n onScroll()\n\n return () => {\n removeEventListener('scroll', throttleScrollEvent, { capture: false })\n throttleScrollEvent.cancel()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const registerSection = (id: string, label: string, element: HTMLElement) => {\n if (!ref.current.scroller) {\n ref.current.scroller = findScrollContainer(element)\n }\n\n const { sections, scroller } = ref.current\n\n if (sections.find((section) => section.id === id)) {\n return\n }\n\n const y = getElementScrollPosition(element, scroller)\n const index = sections.findIndex(\n (section) => getElementScrollPosition(section.element, scroller) > y\n )\n\n if (index === -1) {\n sections.push({ id, label, element })\n } else {\n sections.splice(index, 0, { id, label, element })\n }\n\n if (sections.length === 1) {\n setActive(id)\n }\n }\n\n const unregisterSection = (id: string) => {\n const { sections } = ref.current\n const index = sections.findIndex((section) => section.id === id)\n if (index !== -1) {\n sections.splice(index, 1)\n }\n }\n\n return (\n <AnchorNavigationContext.Provider\n value={{\n offset,\n active,\n sections: ref.current.sections,\n setActive: changeActive,\n registerSection,\n unregisterSection,\n }}\n >\n {children}\n </AnchorNavigationContext.Provider>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnchorNavigationProvider.js","names":["throttle","React","AnchorNavigationContext","createContext","offset","sections","active","registerSection","unregisterSection","setActive","useAnchorNavigationContext","useContext","findScrollContainer","element","parent","parentElement","_window$getComputedSt","window","getComputedStyle","overflow","split","every","o","document","documentElement","getElementScrollPosition","scroller","y","el","offsetTop","offsetParent","AnchorNavigationProvider","_ref","children","_ref$offset","_React$useState","useState","_React$useState2","_slicedToArray","ref","useRef","blockScrollTimestamp","changeActive","id","_sections$find","_ref$current","current","find","section","scrollTo","top","behavior","Date","getTime","useEffect","onScroll","event","_ref$current2","now","length","scrollTop","scrollY","_sections$","selectedIndex","findIndex","item","selectedElement","Math","max","throttleScrollEvent","addEventListener","capture","passive","removeEventListener","cancel","label","_ref$current3","index","push","splice","createElement","Provider","value"],"sources":["../../src/AnchorNavigation/AnchorNavigationProvider.tsx"],"sourcesContent":["import throttle from 'lodash.throttle'\nimport React from 'react'\nimport type { AnchorNavigationElementSection } from './AnchorNavigation.types'\n\nexport const AnchorNavigationContext = React.createContext<{\n offset: number\n sections: AnchorNavigationElementSection[]\n active: string\n registerSection: (id: string, label: string, element: HTMLElement) => void\n unregisterSection: (id: string) => void\n setActive: (id: string, withScroll?: boolean) => void\n}>({\n offset: 0,\n sections: [],\n active: '',\n registerSection: () => {},\n unregisterSection: () => {},\n setActive: () => {},\n})\n\nexport const useAnchorNavigationContext = () =>\n React.useContext(AnchorNavigationContext)\n\ninterface AnchorNavigationProviderProps {\n offset?: number\n}\n\nfunction findScrollContainer(element: HTMLElement): HTMLElement {\n let parent = element.parentElement\n while (parent) {\n const { overflow } = window.getComputedStyle(parent)\n if (overflow.split(' ').every((o) => o === 'auto' || o === 'scroll')) {\n return parent\n }\n parent = parent.parentElement\n }\n\n return document.documentElement\n}\n\nfunction getElementScrollPosition(\n element: HTMLElement,\n scroller: HTMLElement | null\n): number {\n let y = 0\n let el: HTMLElement | null = element\n\n do {\n y += el.offsetTop\n el = el.offsetParent as HTMLElement | null\n } while (el && el !== scroller)\n\n return y\n}\n\nexport function AnchorNavigationProvider({\n children,\n offset = 0,\n}: React.PropsWithChildren<AnchorNavigationProviderProps>) {\n const [active, setActive] = React.useState('')\n const ref = React.useRef<{\n sections: AnchorNavigationElementSection[]\n blockScrollTimestamp: number\n scroller: HTMLElement | null\n }>({\n sections: [],\n blockScrollTimestamp: 0,\n scroller: null,\n })\n\n const changeActive = (id: string) => {\n const { sections, scroller } = ref.current\n setActive(id)\n\n const element = sections.find((section) => section.id === id)?.element\n\n if (element) {\n ;(scroller || window).scrollTo({\n top: getElementScrollPosition(element, scroller) - offset,\n behavior: 'smooth',\n })\n\n // Disable scroll listener to avoid changing active element\n ref.current.blockScrollTimestamp = new Date().getTime()\n }\n }\n\n React.useEffect(() => {\n const onScroll = (event?: Event) => {\n const { blockScrollTimestamp, sections, scroller } = ref.current\n const now = new Date().getTime()\n\n if (!sections.length) return\n\n // Disable scroll event when auto scrolling by clicking on the anchor\n if (now - blockScrollTimestamp < 200) {\n ref.current.blockScrollTimestamp = now\n return\n }\n\n const y =\n (scroller\n ? scroller.scrollTop\n : window.scrollY || document.documentElement.scrollTop) + offset\n\n // Before the first element\n if (getElementScrollPosition(sections[0].element, scroller) > y) {\n if (event) {\n setActive(sections[0]?.id)\n }\n return\n }\n\n // Get first element overflowing top, get the previous one\n const selectedIndex = sections.findIndex(\n (item) => getElementScrollPosition(item.element, scroller) > y\n )\n\n const selectedElement =\n selectedIndex === -1\n ? sections[sections.length - 1]\n : sections[Math.max(selectedIndex - 1, 0)]\n\n if (selectedElement) {\n setActive(selectedElement.id)\n }\n }\n\n const throttleScrollEvent = throttle(onScroll, 100)\n addEventListener('scroll', throttleScrollEvent, {\n capture: false,\n passive: true,\n })\n onScroll()\n\n return () => {\n removeEventListener('scroll', throttleScrollEvent, { capture: false })\n throttleScrollEvent.cancel()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const registerSection = (id: string, label: string, element: HTMLElement) => {\n if (!ref.current.scroller) {\n ref.current.scroller = findScrollContainer(element)\n }\n\n const { sections, scroller } = ref.current\n\n if (sections.find((section) => section.id === id)) {\n return\n }\n\n const y = getElementScrollPosition(element, scroller)\n const index = sections.findIndex(\n (section) => getElementScrollPosition(section.element, scroller) > y\n )\n\n if (index === -1) {\n sections.push({ id, label, element })\n } else {\n sections.splice(index, 0, { id, label, element })\n }\n\n if (sections.length === 1) {\n setActive(id)\n }\n }\n\n const unregisterSection = (id: string) => {\n const { sections } = ref.current\n const index = sections.findIndex((section) => section.id === id)\n if (index !== -1) {\n sections.splice(index, 1)\n }\n }\n\n return (\n <AnchorNavigationContext.Provider\n value={{\n offset,\n active,\n sections: ref.current.sections,\n setActive: changeActive,\n registerSection,\n unregisterSection,\n }}\n >\n {children}\n </AnchorNavigationContext.Provider>\n )\n}\n"],"mappings":"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"}
|
package/dist/Avatar/Avatar.js
CHANGED
|
@@ -16,7 +16,6 @@ import React from 'react';
|
|
|
16
16
|
import { addSubcomponents } from '../_utils/addSubcomponents';
|
|
17
17
|
import { StyledAvatarContainer, StyledAvatarOverlay, StyledIconContainer, StyledLabelContainer, StyledPortraitContainer } from './Avatar.styles';
|
|
18
18
|
function AvatarInner(_ref, ref) {
|
|
19
|
-
var _ref3, _ref4;
|
|
20
19
|
var as = _ref.as,
|
|
21
20
|
clickable = _ref.clickable,
|
|
22
21
|
disabled = _ref.disabled,
|
|
@@ -48,7 +47,7 @@ function AvatarInner(_ref, ref) {
|
|
|
48
47
|
var a11yProps = role === 'button' ? _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
49
48
|
as: as || 'div',
|
|
50
49
|
$clickable: !disabled
|
|
51
|
-
}) : role === 'link' ? (
|
|
50
|
+
}) : role === 'link' ? _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, 'aria-disabled', linkDisabled ? true : undefined), "as", as || 'a'), "$clickable", !linkDisabled), "href", linkDisabled ? undefined : href), "onBlur", onBlur), "onFocus", onFocus), "rel", rel), "role", 'link'), "target", target) : role === 'img' ? _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, 'aria-disabled', disabled ? true : undefined), "role", 'img'), "onBlur", onBlur), "onFocus", onFocus) : {
|
|
52
51
|
onBlur: onBlur,
|
|
53
52
|
onFocus: onFocus
|
|
54
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","names":["useButton","React","addSubcomponents","StyledAvatarContainer","StyledAvatarOverlay","StyledIconContainer","StyledLabelContainer","StyledPortraitContainer","AvatarInner","_ref","ref","_ref3","_ref4","as","clickable","disabled","href","size","children","onBlur","onFocus","rel","role","target","props","_objectWithoutProperties","_excluded","_ref2","onPress","_useButton","_objectSpread","elementType","isDisabled","type","buttonProps","linkDisabled","a11yProps","$clickable","_defineProperty","undefined","createElement","_extends","$disabled","$size","Children","only","Avatar_","forwardRef","NextAvatar_","Icon","_ref5","icon","_excluded2","Label","_ref6","_excluded3","Portrait","_ref7","imageUrl","_excluded4","$imageUrl","displayName","NextAvatar","Avatar"],"sources":["../../src/Avatar/Avatar.tsx"],"sourcesContent":["import { useButton } from '@react-aria/button'\nimport React from 'react'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport {\n StyledAvatarContainer,\n StyledAvatarOverlay,\n StyledIconContainer,\n StyledLabelContainer,\n StyledPortraitContainer,\n} from './Avatar.styles'\nimport type {\n AvatarIconProps,\n AvatarLabelProps,\n AvatarPortraitProps,\n AvatarProps,\n AvatarRef,\n AvatarRoles,\n AvatarRoleType,\n BaseAvatarProps,\n} from './Avatar.types'\n\nfunction AvatarInner(\n {\n as,\n clickable,\n disabled,\n // @ts-ignore link only\n href,\n size,\n children,\n onBlur,\n onFocus,\n // @ts-ignore link only\n rel,\n // @ts-ignore not on legacy\n role,\n // @ts-ignore link only\n target,\n ...props\n }: AvatarProps<AvatarRoleType>,\n ref: AvatarRef<AvatarRoleType>\n) {\n const { onPress } = props as AvatarProps<'button'>\n\n let { buttonProps } = useButton(\n {\n ...props,\n onBlur: onBlur as (e: React.FocusEvent) => void,\n onFocus: onFocus as (e: React.FocusEvent) => void,\n elementType: (as as any as string) === 'a' ? 'a' : 'div',\n href,\n isDisabled: disabled,\n onPress,\n rel,\n target,\n type: 'button',\n },\n ref as any // TODO fix\n )\n\n const linkDisabled = disabled || (role === 'link' && !href)\n\n const a11yProps =\n role === 'button'\n ? { ...buttonProps, as: as || 'div', $clickable: !disabled }\n : role === 'link'\n ? {\n ['aria-disabled']: linkDisabled ? true : undefined,\n as: as || 'a',\n $clickable: !linkDisabled,\n href: linkDisabled ? undefined : href,\n onBlur,\n onFocus,\n rel,\n role: 'link',\n target,\n }\n : role === 'img'\n ? {\n ['aria-disabled']: disabled ? true : undefined,\n role: 'img',\n onBlur,\n onFocus,\n }\n : { onBlur, onFocus }\n\n return (\n <StyledAvatarContainer\n ref={ref as any}\n $clickable={clickable}\n $disabled={disabled}\n $size={size}\n data-qa=\"core-avatar\"\n {...a11yProps}\n {...(props as any)} // TODO fix\n >\n {React.Children.only(children)}\n <StyledAvatarOverlay aria-hidden />\n </StyledAvatarContainer>\n )\n}\n\nconst Avatar_ = React.forwardRef(AvatarInner) as <Role extends AvatarRoles>(\n props:\n | AvatarProps<Role>\n // Legacy\n | (BaseAvatarProps & { ref?: React.ComponentPropsWithRef<'div'>['ref'] })\n) => ReturnType<typeof AvatarInner>\n\nconst NextAvatar_ = React.forwardRef(AvatarInner) as <Role extends AvatarRoles>(\n props: AvatarProps<Role>\n) => ReturnType<typeof AvatarInner>\n\nexport const Icon = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarIconProps\n>(function Icon({ icon, ...props }, ref) {\n return (\n <StyledIconContainer ref={ref} {...props}>\n {icon}\n </StyledIconContainer>\n )\n})\n\nexport const Label = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarLabelProps\n>(function Label({ children, ...props }, ref) {\n // Breaking change: Option to make aria-hidden since parent requires a label.\n // Can add in major once labelling is enforced\n return (\n <StyledLabelContainer ref={ref} {...props}>\n {children}\n </StyledLabelContainer>\n )\n})\n\nexport const Portrait = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarPortraitProps\n>(function Portrait({ imageUrl, ...props }, ref) {\n return (\n <StyledPortraitContainer ref={ref} $imageUrl={imageUrl} {...props}>\n <StyledAvatarOverlay />\n </StyledPortraitContainer>\n )\n})\n\n// @ts-ignore\nAvatar_.displayName = 'Avatar'\n\nIcon.displayName = 'Avatar.Icon'\n\nLabel.displayName = 'Avatar.Label'\n\nPortrait.displayName = 'Avatar.Portrait'\n\n// @ts-ignore\nNextAvatar_.displayName = 'Avatar'\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://stories.core.procore.com/?path=/story/core-react_demos-avatar--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar)\n\n @a11y Avatar's need a `aria-label` and can be enhanced with `role` for interaction. If decorative only, add `aria-hidden`. The inaccessible `clickable` prop is for UI only\n\n */\nexport const NextAvatar = addSubcomponents(\n {\n Icon,\n Label,\n Portrait,\n },\n NextAvatar_\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://stories.core.procore.com/?path=/story/core-react_demos-avatar--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar)\n\n @a11y Avatar's need a `aria-label` and can be enhanced with `role` for interaction. If decorative only, add `aria-hidden`. The inaccessible `clickable` prop is for UI only\n\n */\nexport const Avatar = addSubcomponents(\n {\n Icon,\n Label,\n Portrait,\n },\n Avatar_\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Avatar.js","names":["useButton","React","addSubcomponents","StyledAvatarContainer","StyledAvatarOverlay","StyledIconContainer","StyledLabelContainer","StyledPortraitContainer","AvatarInner","_ref","ref","as","clickable","disabled","href","size","children","onBlur","onFocus","rel","role","target","props","_objectWithoutProperties","_excluded","_ref2","onPress","_useButton","_objectSpread","elementType","isDisabled","type","buttonProps","linkDisabled","a11yProps","$clickable","_defineProperty","undefined","createElement","_extends","$disabled","$size","Children","only","Avatar_","forwardRef","NextAvatar_","Icon","_ref5","icon","_excluded2","Label","_ref6","_excluded3","Portrait","_ref7","imageUrl","_excluded4","$imageUrl","displayName","NextAvatar","Avatar"],"sources":["../../src/Avatar/Avatar.tsx"],"sourcesContent":["import { useButton } from '@react-aria/button'\nimport React from 'react'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport {\n StyledAvatarContainer,\n StyledAvatarOverlay,\n StyledIconContainer,\n StyledLabelContainer,\n StyledPortraitContainer,\n} from './Avatar.styles'\nimport type {\n AvatarIconProps,\n AvatarLabelProps,\n AvatarPortraitProps,\n AvatarProps,\n AvatarRef,\n AvatarRoles,\n AvatarRoleType,\n BaseAvatarProps,\n} from './Avatar.types'\n\nfunction AvatarInner(\n {\n as,\n clickable,\n disabled,\n // @ts-ignore link only\n href,\n size,\n children,\n onBlur,\n onFocus,\n // @ts-ignore link only\n rel,\n // @ts-ignore not on legacy\n role,\n // @ts-ignore link only\n target,\n ...props\n }: AvatarProps<AvatarRoleType>,\n ref: AvatarRef<AvatarRoleType>\n) {\n const { onPress } = props as AvatarProps<'button'>\n\n let { buttonProps } = useButton(\n {\n ...props,\n onBlur: onBlur as (e: React.FocusEvent) => void,\n onFocus: onFocus as (e: React.FocusEvent) => void,\n elementType: (as as any as string) === 'a' ? 'a' : 'div',\n href,\n isDisabled: disabled,\n onPress,\n rel,\n target,\n type: 'button',\n },\n ref as any // TODO fix\n )\n\n const linkDisabled = disabled || (role === 'link' && !href)\n\n const a11yProps =\n role === 'button'\n ? { ...buttonProps, as: as || 'div', $clickable: !disabled }\n : role === 'link'\n ? {\n ['aria-disabled']: linkDisabled ? true : undefined,\n as: as || 'a',\n $clickable: !linkDisabled,\n href: linkDisabled ? undefined : href,\n onBlur,\n onFocus,\n rel,\n role: 'link',\n target,\n }\n : role === 'img'\n ? {\n ['aria-disabled']: disabled ? true : undefined,\n role: 'img',\n onBlur,\n onFocus,\n }\n : { onBlur, onFocus }\n\n return (\n <StyledAvatarContainer\n ref={ref as any}\n $clickable={clickable}\n $disabled={disabled}\n $size={size}\n data-qa=\"core-avatar\"\n {...a11yProps}\n {...(props as any)} // TODO fix\n >\n {React.Children.only(children)}\n <StyledAvatarOverlay aria-hidden />\n </StyledAvatarContainer>\n )\n}\n\nconst Avatar_ = React.forwardRef(AvatarInner) as <Role extends AvatarRoles>(\n props:\n | AvatarProps<Role>\n // Legacy\n | (BaseAvatarProps & { ref?: React.ComponentPropsWithRef<'div'>['ref'] })\n) => ReturnType<typeof AvatarInner>\n\nconst NextAvatar_ = React.forwardRef(AvatarInner) as <Role extends AvatarRoles>(\n props: AvatarProps<Role>\n) => ReturnType<typeof AvatarInner>\n\nexport const Icon = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarIconProps\n>(function Icon({ icon, ...props }, ref) {\n return (\n <StyledIconContainer ref={ref} {...props}>\n {icon}\n </StyledIconContainer>\n )\n})\n\nexport const Label = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarLabelProps\n>(function Label({ children, ...props }, ref) {\n // Breaking change: Option to make aria-hidden since parent requires a label.\n // Can add in major once labelling is enforced\n return (\n <StyledLabelContainer ref={ref} {...props}>\n {children}\n </StyledLabelContainer>\n )\n})\n\nexport const Portrait = React.forwardRef<\n HTMLDivElement,\n DivAttributes & AvatarPortraitProps\n>(function Portrait({ imageUrl, ...props }, ref) {\n return (\n <StyledPortraitContainer ref={ref} $imageUrl={imageUrl} {...props}>\n <StyledAvatarOverlay />\n </StyledPortraitContainer>\n )\n})\n\n// @ts-ignore\nAvatar_.displayName = 'Avatar'\n\nIcon.displayName = 'Avatar.Icon'\n\nLabel.displayName = 'Avatar.Label'\n\nPortrait.displayName = 'Avatar.Portrait'\n\n// @ts-ignore\nNextAvatar_.displayName = 'Avatar'\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://stories.core.procore.com/?path=/story/core-react_demos-avatar--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar)\n\n @a11y Avatar's need a `aria-label` and can be enhanced with `role` for interaction. If decorative only, add `aria-hidden`. The inaccessible `clickable` prop is for UI only\n\n */\nexport const NextAvatar = addSubcomponents(\n {\n Icon,\n Label,\n Portrait,\n },\n NextAvatar_\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://stories.core.procore.com/?path=/story/core-react_demos-avatar--demo)\n\n @see [Design Guidelines](https://design.procore.com/avatar)\n\n @a11y Avatar's need a `aria-label` and can be enhanced with `role` for interaction. If decorative only, add `aria-hidden`. The inaccessible `clickable` prop is for UI only\n\n */\nexport const Avatar = addSubcomponents(\n {\n Icon,\n Label,\n Portrait,\n },\n Avatar_\n)\n"],"mappings":"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"}
|
|
@@ -28,26 +28,26 @@ var iconSize = {
|
|
|
28
28
|
};
|
|
29
29
|
export var StyledAvatarOverlay = /*#__PURE__*/styled.div.withConfig({
|
|
30
30
|
displayName: "StyledAvatarOverlay",
|
|
31
|
-
componentId: "core-
|
|
31
|
+
componentId: "core-12_17_8__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-
|
|
35
|
+
componentId: "core-12_17_8__sc-7q2ydl-1"
|
|
36
36
|
})(["display:inline-flex;"]);
|
|
37
37
|
export var StyledLabelContainer = /*#__PURE__*/styled.div.withConfig({
|
|
38
38
|
displayName: "StyledLabelContainer",
|
|
39
|
-
componentId: "core-
|
|
39
|
+
componentId: "core-12_17_8__sc-7q2ydl-2"
|
|
40
40
|
})(["text-transform:uppercase;"]);
|
|
41
41
|
export var StyledPortraitContainer = /*#__PURE__*/styled.div.withConfig({
|
|
42
42
|
displayName: "StyledPortraitContainer",
|
|
43
|
-
componentId: "core-
|
|
43
|
+
componentId: "core-12_17_8__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-
|
|
50
|
+
componentId: "core-12_17_8__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, getGapOutlineFocus, function (_ref2) {
|
|
52
52
|
var _ref2$$size = _ref2.$size,
|
|
53
53
|
$size = _ref2$$size === void 0 ? 'md' : _ref2$$size;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarStack.js","names":["Building","People","useId","React","forwardRef","useMemo","useState","Avatar","Button","ContactItem","Link","Modal","Popover","Typography","useI18nContext","colorsOrder","foldedItemsCap","restCountThreshold","visibleItemsCap","StyledAvatar","StyledContactItem","StyledContactItems","StyledModalBody","StyledViewAllWrapper","StyledWrapper","defaultPopoverTrigger","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","key","icon","disabled","Title","href","Description","AvatarContent","_ref3","avatarIcon","Portrait","Icon","Label","AvatarWithPopover","_ref4","colors","hasEnabledLink","avatarProps","role","tabIndex","trigger","overlay","Content","_extends","$color","get","FoldedAvatarStack","_ref5","onClickViewAll","title","I18n","overlayRef","useRef","restAvatarId","beforeHide","e","onClick","variant","t","onPress","ViewAllModal","_ref6","isOpen","onClose","labelId","open","Header","Footer","FooterButtons","defaultInitials","defaultGetImageUrl","getTransformedItems","_ref7","getInitials","getImageUrl","_objectSpread","_AvatarStack","_ref8","ref","_items","_ref8$size","_ref8$getInitials","_ref8$getImageUrl","props","_objectWithoutProperties","_excluded","_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 type { OverlayTriggerRef } from '../OverlayTrigger/OverlayTrigger.types'\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'\n\nconst defaultPopoverTrigger: TriggerVariant[] = ['hover', 'focus']\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 key={id}\n imageUrl={imageUrl}\n initials={initials}\n icon={getContactIcon(type)}\n disabled={inactive}\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}: {\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 imageUrl={imageUrl} />\n }\n\n if (avatarIcon) {\n return <Avatar.Icon icon={avatarIcon} />\n }\n\n if (initials) {\n return <Avatar.Label>{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 hasEnabledLink = item.linkUrl && !item.inactive\n const avatarProps = hasEnabledLink\n ? {\n role: 'link',\n href: item.linkUrl,\n }\n : {\n role: 'img',\n // Allow SR to open Popover as it cycles through. Keeps visual with audio.\n // The link or image is labelled, and focus does not enter the Popover.\n tabIndex: -1,\n }\n\n return (\n <Popover\n key={item.id}\n trigger={defaultPopoverTrigger}\n overlay={\n <Popover.Content>\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 {...avatarProps}\n aria-label={`${item.name}, ${item.description}`}\n disabled={item.inactive}\n size={size}\n $color={colors.get(item.id) as Color}\n >\n <AvatarContent\n imageUrl={item.imageUrl}\n initials={item.initials}\n type={item.type}\n size={size}\n />\n </StyledAvatar>\n </Popover>\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 overlayRef = React.useRef<OverlayTriggerRef>(null)\n const restAvatarId = useId()\n\n return (\n <Popover\n trigger={defaultPopoverTrigger}\n aria-labelledby={restAvatarId}\n overlayRef={overlayRef}\n beforeHide={(e) => {\n return e.type !== 'blur'\n }}\n overlay={\n <Popover.Content>\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 role=\"button\"\n onPress={onClickViewAll}\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 </Popover>\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\n return (\n <Modal\n role=\"dialog\"\n aria-labelledby={labelId}\n open={isOpen}\n onClose={onClose}\n >\n <Modal.Header onClose={onClose}>\n <span id={labelId}>\n {title} ({items.length})\n </span>\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":";;;;;;;;;;;;;;;;AAAA,SAASA,QAAQ,EAAEC,MAAM,QAAQ,qBAAqB;AACtD,SAASC,KAAK,QAAQ,mBAAmB;AACzC,OAAOC,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC5D,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,KAAK,QAAQ,UAAU;AAEhC,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,cAAc,QAAQ,gBAAgB;AAG/C,SACEC,WAAW,EACXC,cAAc,EACdC,kBAAkB,EAClBC,eAAe,QACV,yBAAyB;AAChC,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,EACfC,oBAAoB,EACpBC,aAAa,QACR,sBAAsB;AAW7B,IAAMC,qBAAuC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AAElE,OAAO,SAASC,iBAAiBA,CAA+BC,KAAa,EAAE;EAC7E,IAAIC,WAAmB,GAAG,EAAE;EAC5B,IAAIC,cAA6B,GAAG,IAAI;EACxC,IAAIC,eAAe,GAAG,KAAK;EAE3B,IAAMC,YAAY,GAChBJ,KAAK,CAACK,MAAM,GAAGd,eAAe,GAAGS,KAAK,CAACM,KAAK,CAAC,CAAC,EAAEf,eAAe,GAAG,CAAC,CAAC,GAAGS,KAAK;EAC9E,IAAMO,cAAc,GAAGP,KAAK,CAACK,MAAM,GAAGD,YAAY,CAACC,MAAM;EAEzD,IAAIE,cAAc,GAAG,CAAC,EAAE;IACtBN,WAAW,GAAGD,KAAK,CAACM,KAAK,CACvBF,YAAY,CAACC,MAAM,EACnBD,YAAY,CAACC,MAAM,GAAGhB,cACxB,CAAC;IAEDa,cAAc,GACZK,cAAc,GAAGjB,kBAAkB,MAAAkB,MAAA,CAC5BlB,kBAAkB,aAAAkB,MAAA,CACjBD,cAAc,CAAE;IAE1BJ,eAAe,GAAGI,cAAc,GAAGlB,cAAc;EACnD;EAEA,OAAO;IACLe,YAAY,EAAZA,YAAY;IACZH,WAAW,EAAXA,WAAW;IACXC,cAAc,EAAdA,cAAc;IACdC,eAAe,EAAfA;EACF,CAAC;AACH;AAEA,OAAO,SAASM,OAAOA,CAACC,IAAyB,EAAEC,IAAiB,EAAE;EACpE,QAAQD,IAAI;IACV,KAAK,SAAS;MACZ,oBAAOlC,KAAA,CAAAoC,aAAA,CAACvC,QAAQ;QAACsC,IAAI,EAAEA;MAAK,CAAE,CAAC;IAEjC,KAAK,OAAO;MACV,oBAAOnC,KAAA,CAAAoC,aAAA,CAACtC,MAAM;QAACqC,IAAI,EAAEA;MAAK,CAAE,CAAC;IAE/B,KAAK,MAAM;IACX;MACE,OAAO,IAAI;EACf;AACF;AAEA,SAASE,cAAcA,CAACH,IAAyB,EAAE;EACjD,OAAOD,OAAO,CAACC,IAAI,EAAE,IAAI,CAAC;AAC5B;AAEA,OAAO,SAASI,aAAaA,CAC3BJ,IAAyB,EACzBC,IAAqB,EACrB;EACA,IAAMI,UAAU,GAAGJ,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI;EAC9C,OAAOF,OAAO,CAACC,IAAI,EAAEK,UAAU,CAAC;AAClC;AAEA,OAAO,SAASC,aAAaA,CAACC,WAA8B,EAAE;EAC5D,OAAOA,WAAW,CAACC,MAAM,CACvB,UAAAC,IAAA,EAAiBC,IAAI,EAAK;IAAA,IAAvBC,GAAG,GAAAF,IAAA,CAAHE,GAAG;MAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACX,IAAIF,IAAI,CAACG,QAAQ,EAAE;MACjB,OAAO;QACLF,GAAG,EAAHA,GAAG;QACHC,KAAK,EAALA;MACF,CAAC;IACH;IAEA,IAAIF,IAAI,CAACI,QAAQ,EAAE;MACjBH,GAAG,CAACI,GAAG,CAACL,IAAI,CAACM,EAAE,EAAE,QAAQ,CAAC;MAE1B,OAAO;QACLL,GAAG,EAAHA,GAAG;QACHC,KAAK,EAALA;MACF,CAAC;IACH;IAEAD,GAAG,CAACI,GAAG,CAACL,IAAI,CAACM,EAAE,EAAEJ,KAAK,CAAC;IAEvB,IAAMK,iBAAiB,GAAGvC,WAAW,CAACwC,OAAO,CAACN,KAAK,CAAC;IACpD,IAAMO,cAAc,GAAG,CAACF,iBAAiB,GAAG,CAAC,IAAIvC,WAAW,CAACiB,MAAM;IACnE,OAAO;MACLgB,GAAG,EAAHA,GAAG;MACHC,KAAK,EAAEF,IAAI,CAACG,QAAQ,GAAGD,KAAK,GAAGlC,WAAW,CAACyC,cAAc;IAC3D,CAAC;EACH,CAAC,EACD;IACER,GAAG,EAAE,IAAIS,GAAG,CAA2B,CAAC;IACxCR,KAAK,EAAElC,WAAW,CAAC,CAAC;EACtB,CACF,CAAC,CAACiC,GAAG;AACP;AAEA,OAAO,SAASU,sBAAsBA,CAAAC,KAAA,EASlB;EAAA,IARlBN,EAAE,GAAAM,KAAA,CAAFN,EAAE;IACFhB,IAAI,GAAAsB,KAAA,CAAJtB,IAAI;IACJa,QAAQ,GAAAS,KAAA,CAART,QAAQ;IACRU,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACRT,QAAQ,GAAAQ,KAAA,CAARR,QAAQ;IACRU,IAAI,GAAAF,KAAA,CAAJE,IAAI;IACJC,OAAO,GAAAH,KAAA,CAAPG,OAAO;IACPC,WAAW,GAAAJ,KAAA,CAAXI,WAAW;EAEX,oBACE5D,KAAA,CAAAoC,aAAA,CAACnB,iBAAiB;IAChB4C,GAAG,EAAEX,EAAG;IACRH,QAAQ,EAAEA,QAAS;IACnBU,QAAQ,EAAEA,QAAS;IACnBK,IAAI,EAAEzB,cAAc,CAACH,IAAI,CAAE;IAC3B6B,QAAQ,EAAEf;EAAS,gBAEnBhD,KAAA,CAAAoC,aAAA,CAAC9B,WAAW,CAAC0D,KAAK,QACf,CAAChB,QAAQ,IAAIW,OAAO,gBAAG3D,KAAA,CAAAoC,aAAA,CAAC7B,IAAI;IAAC0D,IAAI,EAAEN;EAAQ,GAAED,IAAW,CAAC,GAAGA,IAC5C,CAAC,eACpB1D,KAAA,CAAAoC,aAAA,CAAC9B,WAAW,CAAC4D,WAAW,QACrBhC,IAAI,KAAK,OAAO,gBACflC,KAAA,CAAAoC,aAAA,CAAC1B,UAAU;IAACoC,KAAK,EAAC;EAAQ,GAAEc,WAAwB,CAAC,GAErDA,WAEqB,CACR,CAAC;AAExB;AAEA,OAAO,SAASO,aAAaA,CAAAC,KAAA,EAU1B;EAAA,IATDrB,QAAQ,GAAAqB,KAAA,CAARrB,QAAQ;IACRU,QAAQ,GAAAW,KAAA,CAARX,QAAQ;IACRvB,IAAI,GAAAkC,KAAA,CAAJlC,IAAI;IACJC,IAAI,GAAAiC,KAAA,CAAJjC,IAAI;EAOJ,IAAMkC,UAAU,GAAG/B,aAAa,CAACJ,IAAI,EAAEC,IAAI,CAAC;EAE5C,IAAIY,QAAQ,EAAE;IACZ,oBAAO/C,KAAA,CAAAoC,aAAA,CAAChC,MAAM,CAACkE,QAAQ;MAACvB,QAAQ,EAAEA;IAAS,CAAE,CAAC;EAChD;EAEA,IAAIsB,UAAU,EAAE;IACd,oBAAOrE,KAAA,CAAAoC,aAAA,CAAChC,MAAM,CAACmE,IAAI;MAACT,IAAI,EAAEO;IAAW,CAAE,CAAC;EAC1C;EAEA,IAAIZ,QAAQ,EAAE;IACZ,oBAAOzD,KAAA,CAAAoC,aAAA,CAAChC,MAAM,CAACoE,KAAK,QAAEf,QAAuB,CAAC;EAChD;EAEA,OAAO,IAAI;AACb;AAEA,SAASgB,iBAAiBA,CAAAC,KAAA,EAQvB;EAAA,IAPD9B,IAAI,GAAA8B,KAAA,CAAJ9B,IAAI;IACJT,IAAI,GAAAuC,KAAA,CAAJvC,IAAI;IACJwC,MAAM,GAAAD,KAAA,CAANC,MAAM;EAMN,IAAMC,cAAc,GAAGhC,IAAI,CAACe,OAAO,IAAI,CAACf,IAAI,CAACI,QAAQ;EACrD,IAAM6B,WAAW,GAAGD,cAAc,GAC9B;IACEE,IAAI,EAAE,MAAM;IACZb,IAAI,EAAErB,IAAI,CAACe;EACb,CAAC,GACD;IACEmB,IAAI,EAAE,KAAK;IACX;IACA;IACAC,QAAQ,EAAE,CAAC;EACb,CAAC;EAEL,oBACE/E,KAAA,CAAAoC,aAAA,CAAC3B,OAAO;IACNoD,GAAG,EAAEjB,IAAI,CAACM,EAAG;IACb8B,OAAO,EAAE1D,qBAAsB;IAC/B2D,OAAO,eACLjF,KAAA,CAAAoC,aAAA,CAAC3B,OAAO,CAACyE,OAAO,qBACdlF,KAAA,CAAAoC,aAAA,CAACmB,sBAAsB;MACrBL,EAAE,EAAEN,IAAI,CAACM,EAAG;MACZhB,IAAI,EAAEU,IAAI,CAACV,IAAK;MAChBa,QAAQ,EAAEH,IAAI,CAACG,QAAS;MACxBU,QAAQ,EAAEb,IAAI,CAACa,QAAS;MACxBT,QAAQ,EAAEJ,IAAI,CAACI,QAAS;MACxBU,IAAI,EAAEd,IAAI,CAACc,IAAK;MAChBC,OAAO,EAAEf,IAAI,CAACe,OAAQ;MACtBC,WAAW,EAAEhB,IAAI,CAACgB;IAAY,CAC/B,CACc;EAClB,gBAED5D,KAAA,CAAAoC,aAAA,CAACpB,YAAY,EAAAmE,QAAA,KACPN,WAAW;IACf,iBAAA7C,MAAA,CAAeY,IAAI,CAACc,IAAI,QAAA1B,MAAA,CAAKY,IAAI,CAACgB,WAAW,CAAG;IAChDG,QAAQ,EAAEnB,IAAI,CAACI,QAAS;IACxBb,IAAI,EAAEA,IAAK;IACXiD,MAAM,EAAET,MAAM,CAACU,GAAG,CAACzC,IAAI,CAACM,EAAE;EAAW,iBAErClD,KAAA,CAAAoC,aAAA,CAAC+B,aAAa;IACZpB,QAAQ,EAAEH,IAAI,CAACG,QAAS;IACxBU,QAAQ,EAAEb,IAAI,CAACa,QAAS;IACxBvB,IAAI,EAAEU,IAAI,CAACV,IAAK;IAChBC,IAAI,EAAEA;EAAK,CACZ,CACW,CACP,CAAC;AAEd;AAEA,OAAO,SAASmD,iBAAiBA,CAAAC,KAAA,EAOA;EAAA,IAN/B/D,KAAK,GAAA+D,KAAA,CAAL/D,KAAK;IACLgE,cAAc,GAAAD,KAAA,CAAdC,cAAc;IACdrD,IAAI,GAAAoD,KAAA,CAAJpD,IAAI;IACJT,cAAc,GAAA6D,KAAA,CAAd7D,cAAc;IACdC,eAAe,GAAA4D,KAAA,CAAf5D,eAAe;IACf8D,KAAK,GAAAF,KAAA,CAALE,KAAK;EAEL,IAAMC,IAAI,GAAG/E,cAAc,CAAC,CAAC;EAC7B,IAAMgF,UAAU,GAAG3F,KAAK,CAAC4F,MAAM,CAAoB,IAAI,CAAC;EACxD,IAAMC,YAAY,GAAG9F,KAAK,CAAC,CAAC;EAE5B,oBACEC,KAAA,CAAAoC,aAAA,CAAC3B,OAAO;IACNuE,OAAO,EAAE1D,qBAAsB;IAC/B,mBAAiBuE,YAAa;IAC9BF,UAAU,EAAEA,UAAW;IACvBG,UAAU,EAAE,SAAAA,WAACC,CAAC,EAAK;MACjB,OAAOA,CAAC,CAAC7D,IAAI,KAAK,MAAM;IAC1B,CAAE;IACF+C,OAAO,eACLjF,KAAA,CAAAoC,aAAA,CAAC3B,OAAO,CAACyE,OAAO,qBACdlF,KAAA,CAAAoC,aAAA,CAAClB,kBAAkB,QAChBM,KAAK,CAACqB,GAAG,CAAC,UAACD,IAAI;MAAA,oBACd5C,KAAA,CAAAoC,aAAA,CAACmB,sBAAsB;QACrBM,GAAG,EAAEjB,IAAI,CAACM,EAAG;QACbA,EAAE,EAAEN,IAAI,CAACM,EAAG;QACZhB,IAAI,EAAEU,IAAI,CAACV,IAAK;QAChBa,QAAQ,EAAEH,IAAI,CAACG,QAAS;QACxBU,QAAQ,EAAEb,IAAI,CAACa,QAAS;QACxBT,QAAQ,EAAEJ,IAAI,CAACI,QAAS;QACxBU,IAAI,EAAEd,IAAI,CAACc,IAAK;QAChBC,OAAO,EAAEf,IAAI,CAACe,OAAQ;QACtBC,WAAW,EAAEhB,IAAI,CAACgB;MAAY,CAC/B,CAAC;IAAA,CACH,CACiB,CAAC,EACpBjC,eAAe,iBACd3B,KAAA,CAAAoC,aAAA,CAAChB,oBAAoB,qBACnBpB,KAAA,CAAAoC,aAAA,CAAC/B,MAAM;MACL,WAAQ,0CAA0C;MAClD2F,OAAO,EAAER,cAAe;MACxBrD,IAAI,EAAC,IAAI;MACT8D,OAAO,EAAC;IAAW,GAElBP,IAAI,CAACQ,CAAC,CAAC,0BAA0B,CAC5B,CACY,CAET;EAClB,gBAEDlG,KAAA,CAAAoC,aAAA,CAACpB,YAAY;IACX8D,IAAI,EAAC,QAAQ;IACbqB,OAAO,EAAEX,cAAe;IACxBtC,EAAE,EAAE2C,YAAa;IACjB,iBAAA7D,MAAA,CAAeN,cAAc,QAAAM,MAAA,CAAKyD,KAAK,CAAG;IAC1C,WAAQ,kDAAkD;IAC1DtD,IAAI,EAAEA,IAAK;IACXiD,MAAM,EAAC;EAAQ,gBAEfpF,KAAA,CAAAoC,aAAA,CAAChC,MAAM,CAACoE,KAAK;IAAC;EAAW,gBACvBxE,KAAA,CAAAoC,aAAA,CAAC1B,UAAU;IAACoC,KAAK,EAAC;EAAO,GAAEpB,cAA2B,CAC1C,CACF,CACP,CAAC;AAEd;AAEA,OAAO,SAAS0E,YAAYA,CAAAC,KAAA,EAKA;EAAA,IAJ1BC,MAAM,GAAAD,KAAA,CAANC,MAAM;IACNC,OAAO,GAAAF,KAAA,CAAPE,OAAO;IACPd,KAAK,GAAAY,KAAA,CAALZ,KAAK;IACLjE,KAAK,GAAA6E,KAAA,CAAL7E,KAAK;EAEL,IAAMkE,IAAI,GAAG/E,cAAc,CAAC,CAAC;EAC7B,IAAM6F,OAAO,GAAGzG,KAAK,CAAC,CAAC;EAEvB,oBACEC,KAAA,CAAAoC,aAAA,CAAC5B,KAAK;IACJsE,IAAI,EAAC,QAAQ;IACb,mBAAiB0B,OAAQ;IACzBC,IAAI,EAAEH,MAAO;IACbC,OAAO,EAAEA;EAAQ,gBAEjBvG,KAAA,CAAAoC,aAAA,CAAC5B,KAAK,CAACkG,MAAM;IAACH,OAAO,EAAEA;EAAQ,gBAC7BvG,KAAA,CAAAoC,aAAA;IAAMc,EAAE,EAAEsD;EAAQ,GACff,KAAK,EAAC,IAAE,EAACjE,KAAK,CAACK,MAAM,EAAC,GACnB,CACM,CAAC,eACf7B,KAAA,CAAAoC,aAAA,CAACjB,eAAe,QACbK,KAAK,CAACqB,GAAG,CAAC,UAACD,IAAI;IAAA,oBACd5C,KAAA,CAAAoC,aAAA,CAACmB,sBAAsB;MACrBM,GAAG,EAAEjB,IAAI,CAACM,EAAG;MACbA,EAAE,EAAEN,IAAI,CAACM,EAAG;MACZhB,IAAI,EAAEU,IAAI,CAACV,IAAK;MAChBa,QAAQ,EAAEH,IAAI,CAACG,QAAS;MACxBU,QAAQ,EAAEb,IAAI,CAACa,QAAS;MACxBT,QAAQ,EAAEJ,IAAI,CAACI,QAAS;MACxBU,IAAI,EAAEd,IAAI,CAACc,IAAK;MAChBC,OAAO,EAAEf,IAAI,CAACe,OAAQ;MACtBC,WAAW,EAAEhB,IAAI,CAACgB;IAAY,CAC/B,CAAC;EAAA,CACH,CACc,CAAC,eAClB5D,KAAA,CAAAoC,aAAA,CAAC5B,KAAK,CAACmG,MAAM,qBACX3G,KAAA,CAAAoC,aAAA,CAAC5B,KAAK,CAACoG,aAAa,qBAClB5G,KAAA,CAAAoC,aAAA,CAAC/B,MAAM;IAAC2F,OAAO,EAAEO;EAAQ,GAAEb,IAAI,CAACQ,CAAC,CAAC,wBAAwB,CAAU,CACjD,CACT,CACT,CAAC;AAEZ;AAEA,OAAO,SAASW,eAAeA,CAA+BjE,IAAU,EAAE;EACxE,OAAOA,IAAI,CAACa,QAAQ;AACtB;AAEA,OAAO,SAASqD,kBAAkBA,CAA+BlE,IAAU,EAAE;EAC3E,OAAOA,IAAI,CAACG,QAAQ;AACtB;AAEA,OAAO,SAASgE,mBAAmBA,CAAAC,KAAA,EAQhC;EAAA,IAPDxF,KAAK,GAAAwF,KAAA,CAALxF,KAAK;IACLyF,WAAW,GAAAD,KAAA,CAAXC,WAAW;IACXC,WAAW,GAAAF,KAAA,CAAXE,WAAW;EAMX,OAAO1F,KAAK,CAACqB,GAAG,CAAC,UAACD,IAAI;IAAA,OAAAuE,aAAA,CAAAA,aAAA,KACjBvE,IAAI;MACPa,QAAQ,EAAEwD,WAAW,CAAErE,IAAI,CAAC;MAC5BG,QAAQ,EAAEmE,WAAW,CAAEtE,IAAI;IAAC;EAAA,CAC5B,CAAC;AACL;AAEA,IAAMwE,YAAY,GAAG,SAAfA,YAAYA,CAAAC,KAAA,EAUhBC,GAAuC,EACpC;EAAA,IATMC,MAAM,GAAAF,KAAA,CAAb7F,KAAK;IACLiE,KAAK,GAAA4B,KAAA,CAAL5B,KAAK;IAAA+B,UAAA,GAAAH,KAAA,CACLlF,IAAI;IAAJA,IAAI,GAAAqF,UAAA,cAAG,IAAI,GAAAA,UAAA;IAAAC,iBAAA,GAAAJ,KAAA,CACXJ,WAAW;IAAXA,WAAW,GAAAQ,iBAAA,cAAGZ,eAAe,GAAAY,iBAAA;IAAAC,iBAAA,GAAAL,KAAA,CAC7BH,WAAW;IAAXA,WAAW,GAAAQ,iBAAA,cAAGZ,kBAAkB,GAAAY,iBAAA;IAChClC,cAAc,GAAA6B,KAAA,CAAd7B,cAAc;IACXmC,KAAK,GAAAC,wBAAA,CAAAP,KAAA,EAAAQ,SAAA;EAIV,IAAAC,SAAA,GAAsC3H,QAAQ,CAAC,KAAK,CAAC;IAAA4H,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA9CG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;EAElC,IAAMvG,KAAK,GAAGtB,OAAO,CACnB;IAAA,OACE6G,mBAAmB,CAAC;MAClBvF,KAAK,EAAE+F,MAAM;MACbN,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA;IACF,CAAC,CAAC;EAAA,GACJ,CAACK,MAAM,CACT,CAAC;EAED,IAAAY,QAAA,GACEjI,OAAO,CAAC;MAAA,OAAMqB,iBAAiB,CAACC,KAAK,CAAC;IAAA,GAAE,CAACA,KAAK,CAAC,CAAC;IAD1CI,YAAY,GAAAuG,QAAA,CAAZvG,YAAY;IAAEH,WAAW,GAAA0G,QAAA,CAAX1G,WAAW;IAAEC,cAAc,GAAAyG,QAAA,CAAdzG,cAAc;IAAEC,eAAe,GAAAwG,QAAA,CAAfxG,eAAe;EAGlE,IAAMyG,kBAAkB,GAAGlI,OAAO,CAChC;IAAA,OAAMsC,aAAa,CAACZ,YAAY,CAAC;EAAA,GACjC,CAACA,YAAY,CACf,CAAC;EAED,oBACE5B,KAAA,CAAAoC,aAAA,QAAA+C,QAAA;IAAKmC,GAAG,EAAEA;EAAI,GAAKK,KAAK,GACrBhG,eAAe,IAAI,CAAC6D,cAAc,iBACjCxF,KAAA,CAAAoC,aAAA,CAACgE,YAAY;IACXE,MAAM,EAAE2B,WAAY;IACpB1B,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAM2B,cAAc,CAAC,KAAK,CAAC;IAAA,CAAC;IACrCzC,KAAK,EAAEA,KAAM;IACbjE,KAAK,EAAEA;EAAM,CACd,CACF,eACDxB,KAAA,CAAAoC,aAAA,CAACf,aAAa,QACXO,YAAY,CAACiB,GAAG,CAAC,UAACD,IAAI,EAAK;IAC1B,oBACE5C,KAAA,CAAAoC,aAAA,CAACqC,iBAAiB;MAChBE,MAAM,EAAEyD,kBAAmB;MAC3BxF,IAAI,EAAEA,IAAK;MACXiB,GAAG,KAAA7B,MAAA,CAAKY,IAAI,CAACc,IAAI,OAAA1B,MAAA,CAAIY,IAAI,CAACM,EAAE,CAAG;MAC/Bf,IAAI,EAAEA;IAAK,CACZ,CAAC;EAEN,CAAC,CAAC,EACDV,WAAW,CAACI,MAAM,GAAG,CAAC,iBACrB7B,KAAA,CAAAoC,aAAA,CAACkD,iBAAiB;IAChB5D,cAAc,EAAEA,cAAyB;IACzCC,eAAe,EAAEA,eAAgB;IACjCH,KAAK,EAAEC,WAAY;IACnB+D,cAAc,EAAEA,cAAc,IAAK;MAAA,OAAM0C,cAAc,CAAC,IAAI,CAAC;IAAA,CAAE;IAC/D/F,IAAI,EAAEA,IAAK;IACXsD,KAAK,EAAEA;EAAM,CACd,CAEU,CACZ,CAAC;AAEV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAM4C,WAAW,gBAAGpI,UAAU,CAACmH,YAAY,CAId;;AAEpC;AACAiB,WAAW,CAACC,WAAW,GAAG,aAAa"}
|
|
1
|
+
{"version":3,"file":"AvatarStack.js","names":["Building","People","useId","React","forwardRef","useMemo","useState","Avatar","Button","ContactItem","Link","Modal","Popover","Typography","useI18nContext","colorsOrder","foldedItemsCap","restCountThreshold","visibleItemsCap","StyledAvatar","StyledContactItem","StyledContactItems","StyledModalBody","StyledViewAllWrapper","StyledWrapper","defaultPopoverTrigger","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","key","icon","disabled","Title","href","Description","AvatarContent","_ref3","avatarIcon","Portrait","Icon","Label","AvatarWithPopover","_ref4","colors","hasEnabledLink","avatarProps","role","tabIndex","trigger","overlay","Content","_extends","$color","get","FoldedAvatarStack","_ref5","onClickViewAll","title","I18n","overlayRef","useRef","restAvatarId","beforeHide","e","onClick","variant","t","onPress","ViewAllModal","_ref6","isOpen","onClose","labelId","open","Header","Footer","FooterButtons","defaultInitials","defaultGetImageUrl","getTransformedItems","_ref7","getInitials","getImageUrl","_objectSpread","_AvatarStack","_ref8","ref","_items","_ref8$size","_ref8$getInitials","_ref8$getImageUrl","props","_objectWithoutProperties","_excluded","_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 type { OverlayTriggerRef } from '../OverlayTrigger/OverlayTrigger.types'\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'\n\nconst defaultPopoverTrigger: TriggerVariant[] = ['hover', 'focus']\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 key={id}\n imageUrl={imageUrl}\n initials={initials}\n icon={getContactIcon(type)}\n disabled={inactive}\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}: {\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 imageUrl={imageUrl} />\n }\n\n if (avatarIcon) {\n return <Avatar.Icon icon={avatarIcon} />\n }\n\n if (initials) {\n return <Avatar.Label>{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 hasEnabledLink = item.linkUrl && !item.inactive\n const avatarProps = hasEnabledLink\n ? {\n role: 'link',\n href: item.linkUrl,\n }\n : {\n role: 'img',\n // Allow SR to open Popover as it cycles through. Keeps visual with audio.\n // The link or image is labelled, and focus does not enter the Popover.\n tabIndex: -1,\n }\n\n return (\n <Popover\n key={item.id}\n trigger={defaultPopoverTrigger}\n overlay={\n <Popover.Content>\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 {...avatarProps}\n aria-label={`${item.name}, ${item.description}`}\n disabled={item.inactive}\n size={size}\n $color={colors.get(item.id) as Color}\n >\n <AvatarContent\n imageUrl={item.imageUrl}\n initials={item.initials}\n type={item.type}\n size={size}\n />\n </StyledAvatar>\n </Popover>\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 overlayRef = React.useRef<OverlayTriggerRef>(null)\n const restAvatarId = useId()\n\n return (\n <Popover\n trigger={defaultPopoverTrigger}\n aria-labelledby={restAvatarId}\n overlayRef={overlayRef}\n beforeHide={(e) => {\n return e.type !== 'blur'\n }}\n overlay={\n <Popover.Content>\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 role=\"button\"\n onPress={onClickViewAll}\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 </Popover>\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\n return (\n <Modal\n role=\"dialog\"\n aria-labelledby={labelId}\n open={isOpen}\n onClose={onClose}\n >\n <Modal.Header onClose={onClose}>\n <span id={labelId}>\n {title} ({items.length})\n </span>\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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"}
|
|
@@ -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-
|
|
10
|
+
componentId: "core-12_17_8__sc-ft72hu-0"
|
|
11
11
|
})(["border-color:", ";border-style:solid;border-width:1px;&:hover{z-index:1;}&[role='img']:focus{outline:none;}"], colors.white);
|
|
12
12
|
export var StyledAvatar = /*#__PURE__*/styled(StyledBaseAvatar).withConfig({
|
|
13
13
|
displayName: "StyledAvatar",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_17_8__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-
|
|
20
|
+
componentId: "core-12_17_8__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-
|
|
24
|
+
componentId: "core-12_17_8__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-
|
|
28
|
+
componentId: "core-12_17_8__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-
|
|
32
|
+
componentId: "core-12_17_8__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-
|
|
36
|
+
componentId: "core-12_17_8__sc-ft72hu-6"
|
|
37
37
|
})(["flex-shrink:0;"]);
|
|
38
38
|
//# sourceMappingURL=AvatarStack.styles.js.map
|
|
@@ -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-
|
|
4
|
+
componentId: "core-12_17_8__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-
|
|
8
|
+
componentId: "core-12_17_8__sc-rpertu-1"
|
|
9
9
|
})(["bottom:100%;position:absolute;right:0;transform:translateX(50%) translateY(50%);"]);
|
|
10
10
|
//# sourceMappingURL=Badge.styles.js.map
|
package/dist/Banner/Banner.js
CHANGED
|
@@ -24,15 +24,30 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
24
24
|
import { Clear, EllipsisVertical, Error, Info, Warning } from '@procore/core-icons/dist';
|
|
25
25
|
import { partition } from 'ramda';
|
|
26
26
|
import React from 'react';
|
|
27
|
-
import { Button } from '../Button
|
|
28
|
-
import { Card } from '../Card
|
|
27
|
+
import { Button } from '../Button';
|
|
28
|
+
import { Card } from '../Card';
|
|
29
|
+
import { Flex } from '../Flex';
|
|
29
30
|
import { Menu, useMenu } from '../Menu/Menu';
|
|
30
|
-
import { OverlayTrigger } from '../OverlayTrigger
|
|
31
|
+
import { OverlayTrigger } from '../OverlayTrigger';
|
|
31
32
|
import { useI18nContext } from '../_hooks/I18n';
|
|
32
33
|
import { OverflowObserver } from '../_hooks/OverflowObserver';
|
|
33
34
|
import { addSubcomponents } from '../_utils/addSubcomponents';
|
|
34
35
|
import { mergeRefs } from '../_utils/mergeRefs';
|
|
35
36
|
import { StyledAction, StyledActionsTrigger, StyledBannerContainer, StyledBody, StyledContent, StyledExpandableContent, StyledExpandableContentContainer, StyledIconContainer, StyledMiniBannerContainer, StyledTitle } from './Banner.styles';
|
|
37
|
+
var defaultIcons = {
|
|
38
|
+
error: /*#__PURE__*/React.createElement(Error, {
|
|
39
|
+
size: "lg"
|
|
40
|
+
}),
|
|
41
|
+
attention: /*#__PURE__*/React.createElement(Warning, {
|
|
42
|
+
size: "lg"
|
|
43
|
+
}),
|
|
44
|
+
info: /*#__PURE__*/React.createElement(Info, {
|
|
45
|
+
size: "lg"
|
|
46
|
+
}),
|
|
47
|
+
UNSAFE_attention_emphasized: /*#__PURE__*/React.createElement(Warning, {
|
|
48
|
+
size: "lg"
|
|
49
|
+
})
|
|
50
|
+
};
|
|
36
51
|
var Banner_ = /*#__PURE__*/React.forwardRef(function Banner(_ref, ref) {
|
|
37
52
|
var children = _ref.children,
|
|
38
53
|
variant = _ref.variant,
|
|
@@ -44,14 +59,30 @@ var Banner_ = /*#__PURE__*/React.forwardRef(function Banner(_ref, ref) {
|
|
|
44
59
|
expandableContentNodes = _ref3[0],
|
|
45
60
|
content = _ref3[1];
|
|
46
61
|
var isExpandable = expandableContentNodes.length !== 0;
|
|
62
|
+
var iconElement = React.useMemo(function () {
|
|
63
|
+
return React.Children.toArray(children).find(function (child) {
|
|
64
|
+
return /*#__PURE__*/React.isValidElement(child) && child.type === Icon;
|
|
65
|
+
});
|
|
66
|
+
}, [children]);
|
|
67
|
+
var hasCustomIcon = iconElement && iconElement.props.icon;
|
|
47
68
|
return /*#__PURE__*/React.createElement(StyledBannerContainer, _extends({
|
|
48
69
|
ref: ref,
|
|
49
70
|
$isExpandable: isExpandable,
|
|
50
71
|
variant: variant
|
|
51
72
|
}, props), isExpandable ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledExpandableContentContainer, {
|
|
52
73
|
justifyContent: "space-between",
|
|
53
|
-
alignItems: "center"
|
|
54
|
-
|
|
74
|
+
alignItems: "center",
|
|
75
|
+
gap: "lg"
|
|
76
|
+
}, !hasCustomIcon && /*#__PURE__*/React.createElement(Icon, {
|
|
77
|
+
icon: defaultIcons[variant]
|
|
78
|
+
}), content), expandableContentNodes) : /*#__PURE__*/React.createElement(Flex, {
|
|
79
|
+
justifyContent: "flex-start",
|
|
80
|
+
alignItems: "center",
|
|
81
|
+
gap: "lg",
|
|
82
|
+
grow: "1"
|
|
83
|
+
}, !hasCustomIcon && /*#__PURE__*/React.createElement(Icon, {
|
|
84
|
+
icon: defaultIcons[variant]
|
|
85
|
+
}), content));
|
|
55
86
|
});
|
|
56
87
|
var Content = /*#__PURE__*/React.forwardRef(function Content(_ref4, ref) {
|
|
57
88
|
var children = _ref4.children,
|
|
@@ -206,7 +237,6 @@ export var AttentionBanner = /*#__PURE__*/React.forwardRef(function AttentionBan
|
|
|
206
237
|
})
|
|
207
238
|
}), children);
|
|
208
239
|
});
|
|
209
|
-
|
|
210
240
|
/**
|
|
211
241
|
* @deprecated ActionBanner was renamed to AttentionBanner.
|
|
212
242
|
* @deprecatedSince 11.26.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","names":["Clear","EllipsisVertical","Error","Info","Warning","partition","React","Button","Card","Menu","useMenu","OverlayTrigger","useI18nContext","OverflowObserver","addSubcomponents","mergeRefs","StyledAction","StyledActionsTrigger","StyledBannerContainer","StyledBody","StyledContent","StyledExpandableContent","StyledExpandableContentContainer","StyledIconContainer","StyledMiniBannerContainer","StyledTitle","Banner_","forwardRef","Banner","_ref","ref","children","variant","props","_objectWithoutProperties","_excluded","_ref2","element","isValidElement","type","ExpandableContent","Children","toArray","_ref3","_slicedToArray","expandableContentNodes","content","isExpandable","length","createElement","_extends","$isExpandable","Fragment","justifyContent","alignItems","Content","_ref4","_excluded2","_ref5","_ref5$expanded","expanded","_ref5$expandableConte","expandableContentMaxHeight","_excluded3","containerRef","useRef","_ref6","overflowRef","isOverflowingY","onAnimationEnd","current","$isOverflowingY","$expandableContentMaxHeight","tabIndex","Title","_ref7","_excluded4","Body","_ref8","_excluded5","Action","_ref9","_excluded6","DropdownAction","_ref10","_excluded7","Item","item","Actions","_ref11","_excluded8","actionButtons","filter","overlay","node","focus","usingHook","isSelectable","_ref12","Options","map","_ref13","idx","actionButtonProps","key","placement","arrow","icon","Icon","_ref14","_excluded9","Dismiss","_ref15","_excluded10","I18n","t","ErrorBanner","_ref16","_excluded11","size","InfoBanner","_ref17","_excluded12","AttentionBanner","_ref18","_excluded13","ActionBanner","UNSAFE_MiniBanner","MiniBanner","_ref19","_ref19$variant","_excluded14","displayName"],"sources":["../../src/Banner/Banner.tsx"],"sourcesContent":["import {\n Clear,\n EllipsisVertical,\n Error,\n Info,\n Warning,\n} from '@procore/core-icons/dist'\nimport { partition } from 'ramda'\nimport React from 'react'\nimport { Button } from '../Button/Button'\nimport { Card } from '../Card/Card'\nimport { Menu, useMenu } from '../Menu/Menu'\nimport { OverlayTrigger } from '../OverlayTrigger/OverlayTrigger'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { OverflowObserver } from '../_hooks/OverflowObserver'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { ButtonAttributes, DivAttributes, Props } from '../_utils/types'\nimport {\n StyledAction,\n StyledActionsTrigger,\n StyledBannerContainer,\n StyledBody,\n StyledContent,\n StyledExpandableContent,\n StyledExpandableContentContainer,\n StyledIconContainer,\n StyledMiniBannerContainer,\n StyledTitle,\n} from './Banner.styles'\nimport type {\n BannerExpandableContentProps,\n BannerIconProps,\n BannerProps,\n BannerVariant,\n} from './Banner.types'\n\nconst Banner_ = React.forwardRef<HTMLDivElement, DivAttributes & BannerProps>(\n function Banner({ children, variant, ...props }, ref) {\n const [expandableContentNodes, content] = partition(\n (element: React.ReactNode) =>\n React.isValidElement(element) && element.type === ExpandableContent,\n React.Children.toArray(children)\n ) as [React.ReactElement[], React.ReactElement[]]\n\n const isExpandable = expandableContentNodes.length !== 0\n\n return (\n <StyledBannerContainer\n ref={ref}\n $isExpandable={isExpandable}\n variant={variant}\n {...props}\n >\n {isExpandable ? (\n <>\n <StyledExpandableContentContainer\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n {content}\n </StyledExpandableContentContainer>\n {expandableContentNodes}\n </>\n ) : (\n content\n )}\n </StyledBannerContainer>\n )\n }\n)\n\nconst Content = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Content({ children, ...props }, ref) {\n return (\n <StyledContent {...props} ref={ref}>\n {children}\n </StyledContent>\n )\n }\n)\n\nconst ExpandableContent = React.forwardRef<\n HTMLDivElement,\n DivAttributes & BannerExpandableContentProps\n>(function ExpandableContent(\n { children, expanded = false, expandableContentMaxHeight = 120, ...props },\n ref\n) {\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n return expanded ? (\n <OverflowObserver>\n {({ ref: overflowRef, isOverflowingY }) => (\n <StyledExpandableContent\n ref={mergeRefs(ref, containerRef)}\n data-qa=\"core-banner-expandable-content\"\n onAnimationEnd={() => overflowRef(containerRef.current)}\n $isOverflowingY={isOverflowingY}\n $expandableContentMaxHeight={expandableContentMaxHeight}\n {...props}\n {...(isOverflowingY && { tabIndex: 0 })}\n >\n {children}\n </StyledExpandableContent>\n )}\n </OverflowObserver>\n ) : null\n})\n\nconst Title = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Title({ children, ...props }, ref) {\n return (\n <StyledTitle {...props} ref={ref}>\n {children}\n </StyledTitle>\n )\n }\n)\n\nconst Body = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Body({ children, ...props }, ref) {\n return (\n <StyledBody {...props} ref={ref}>\n {children}\n </StyledBody>\n )\n }\n)\n\nconst Action = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Action({ children, ...props }, ref) {\n return (\n <StyledAction {...props} ref={ref}>\n {children}\n </StyledAction>\n )\n }\n)\n\nconst DropdownAction = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function DropdownAction({ children, ...props }, ref) {\n return (\n <Menu.Item ref={ref} item={null} {...(props as any)}>\n {children}\n </Menu.Item>\n )\n }\n)\n\nconst Actions = React.forwardRef<HTMLButtonElement, ButtonAttributes & Props>(\n function Actions({ children, ...props }, ref) {\n const actionButtons = React.Children.toArray(children).filter(\n (element: React.ReactNode) =>\n React.isValidElement(element) && element.type === Action\n ) as React.ReactElement[]\n\n return (\n <OverlayTrigger\n overlay={\n <Card>\n <Menu\n ref={(node) => node?.focus()}\n usingHook={useMenu({\n isSelectable: ({ type }) => type === DropdownAction,\n })}\n >\n <Menu.Options>\n {actionButtons.map(({ props: actionButtonProps }, idx) => (\n <DropdownAction key={idx} {...actionButtonProps} />\n ))}\n </Menu.Options>\n </Menu>\n </Card>\n }\n ref={ref}\n placement=\"bottom-right\"\n >\n <StyledActionsTrigger\n data-qa=\"core-banner-actions-trigger\"\n variant=\"tertiary\"\n arrow={false}\n icon={<EllipsisVertical />}\n {...props}\n />\n </OverlayTrigger>\n )\n }\n)\n\nconst Icon = React.forwardRef<HTMLDivElement, DivAttributes & BannerIconProps>(\n function Icon({ children, icon, ...props }, ref) {\n return (\n <StyledIconContainer ref={ref} aria-hidden=\"true\" {...props}>\n {icon}\n </StyledIconContainer>\n )\n }\n)\n\nconst Dismiss = React.forwardRef<HTMLButtonElement, ButtonAttributes & Props>(\n function Dismiss({ children, ...props }, ref) {\n const I18n = useI18nContext()\n\n return (\n <Button\n aria-label={I18n.t('core.banner.dismissAlert')}\n ref={ref}\n {...props}\n icon={<Clear />}\n variant=\"tertiary\"\n />\n )\n }\n)\n\nexport const ErrorBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function ErrorBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"error\" {...props}>\n <Icon icon={<Error size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n\nexport const InfoBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function InfoBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"info\" {...props}>\n <Icon icon={<Info size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n\n/**\n * @since 11.26.0\n */\nexport const AttentionBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function AttentionBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"attention\" {...props}>\n <Icon icon={<Warning size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n\n/**\n * @deprecated ActionBanner was renamed to AttentionBanner.\n * @deprecatedSince 11.26.0\n */\nexport const ActionBanner = AttentionBanner\n\nexport const UNSAFE_MiniBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props & { variant?: BannerVariant }\n>(function MiniBanner({ children, variant = 'info', ...props }, ref) {\n return (\n <StyledMiniBannerContainer ref={ref} variant={variant} {...props}>\n {children}\n </StyledMiniBannerContainer>\n )\n})\n\nBanner_.displayName = 'Banner'\n\nBody.displayName = 'Banner.Body'\n\nContent.displayName = 'Banner.Content'\n\nExpandableContent.displayName = 'Banner.ExpandableContent'\n\nTitle.displayName = 'Banner.Title'\n\nAction.displayName = 'Banner.Action'\n\nActions.displayName = 'Banner.Actions'\n\nDropdownAction.displayName = 'Banner.DropdownAction'\n\nIcon.displayName = 'Banner.Icon'\n\nDismiss.displayName = 'Banner.Dismiss'\n\nErrorBanner.displayName = 'ErrorBanner'\n\nInfoBanner.displayName = 'InfoBanner'\n\nAttentionBanner.displayName = 'AttentionBanner'\n\nActionBanner.displayName = 'ActionBanner'\n\nUNSAFE_MiniBanner.displayName = 'MiniBanner'\n\n/**\n\n\n We use banners to contextually convey complicated or supplemental information\n to a user. Depending on the type of banner, we can provide more information\n about a feature or page the user is on, an action the user needs to perform,\n or an error the user has encountered.\n\n Procore banners are informative and actionable. Always explain what the user\n needs to know (and in some cases, why they’re seeing the banner), and provide\n an actionable next step.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-banner--demo)\n\n @see [Design Guidelines](https://design.procore.com/banner)\n\n */\nexport const Banner = addSubcomponents(\n {\n Body,\n Content,\n ExpandableContent,\n Title,\n Action,\n Actions,\n Icon,\n Dismiss,\n },\n Banner_\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Banner.js","names":["Clear","EllipsisVertical","Error","Info","Warning","partition","React","Button","Card","Flex","Menu","useMenu","OverlayTrigger","useI18nContext","OverflowObserver","addSubcomponents","mergeRefs","StyledAction","StyledActionsTrigger","StyledBannerContainer","StyledBody","StyledContent","StyledExpandableContent","StyledExpandableContentContainer","StyledIconContainer","StyledMiniBannerContainer","StyledTitle","defaultIcons","error","createElement","size","attention","info","UNSAFE_attention_emphasized","Banner_","forwardRef","Banner","_ref","ref","children","variant","props","_objectWithoutProperties","_excluded","_ref2","element","isValidElement","type","ExpandableContent","Children","toArray","_ref3","_slicedToArray","expandableContentNodes","content","isExpandable","length","iconElement","useMemo","find","child","Icon","hasCustomIcon","icon","_extends","$isExpandable","Fragment","justifyContent","alignItems","gap","grow","Content","_ref4","_excluded2","_ref5","_ref5$expanded","expanded","_ref5$expandableConte","expandableContentMaxHeight","_excluded3","containerRef","useRef","_ref6","overflowRef","isOverflowingY","onAnimationEnd","current","$isOverflowingY","$expandableContentMaxHeight","tabIndex","Title","_ref7","_excluded4","Body","_ref8","_excluded5","Action","_ref9","_excluded6","DropdownAction","_ref10","_excluded7","Item","item","Actions","_ref11","_excluded8","actionButtons","filter","overlay","node","focus","usingHook","isSelectable","_ref12","Options","map","_ref13","idx","actionButtonProps","key","placement","arrow","_ref14","_excluded9","Dismiss","_ref15","_excluded10","I18n","t","ErrorBanner","_ref16","_excluded11","InfoBanner","_ref17","_excluded12","AttentionBanner","_ref18","_excluded13","ActionBanner","UNSAFE_MiniBanner","MiniBanner","_ref19","_ref19$variant","_excluded14","displayName"],"sources":["../../src/Banner/Banner.tsx"],"sourcesContent":["import {\n Clear,\n EllipsisVertical,\n Error,\n Info,\n Warning,\n} from '@procore/core-icons/dist'\nimport { partition } from 'ramda'\nimport React from 'react'\nimport { Button } from '../Button'\nimport { Card } from '../Card'\nimport { Flex } from '../Flex'\nimport { Menu, useMenu } from '../Menu/Menu'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { OverflowObserver } from '../_hooks/OverflowObserver'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { ButtonAttributes, DivAttributes, Props } from '../_utils/types'\nimport {\n StyledAction,\n StyledActionsTrigger,\n StyledBannerContainer,\n StyledBody,\n StyledContent,\n StyledExpandableContent,\n StyledExpandableContentContainer,\n StyledIconContainer,\n StyledMiniBannerContainer,\n StyledTitle,\n} from './Banner.styles'\nimport type {\n BannerExpandableContentProps,\n BannerIconProps,\n BannerProps,\n BannerVariant,\n} from './Banner.types'\n\nconst defaultIcons: Record<BannerVariant, React.ReactNode> = {\n error: <Error size=\"lg\" />,\n attention: <Warning size=\"lg\" />,\n info: <Info size=\"lg\" />,\n UNSAFE_attention_emphasized: <Warning size=\"lg\" />,\n}\n\nconst Banner_ = React.forwardRef<HTMLDivElement, DivAttributes & BannerProps>(\n function Banner({ children, variant, ...props }, ref) {\n const [expandableContentNodes, content] = partition(\n (element: React.ReactNode) =>\n React.isValidElement(element) && element.type === ExpandableContent,\n React.Children.toArray(children)\n ) as [React.ReactElement[], React.ReactElement[]]\n const isExpandable = expandableContentNodes.length !== 0\n\n const iconElement = React.useMemo(() => {\n return React.Children.toArray(children).find(\n (child) => React.isValidElement(child) && child.type === Icon\n ) as React.ReactElement<BannerIconProps> | undefined\n }, [children])\n\n const hasCustomIcon = iconElement && iconElement.props.icon\n\n return (\n <StyledBannerContainer\n ref={ref}\n $isExpandable={isExpandable}\n variant={variant}\n {...props}\n >\n {isExpandable ? (\n <>\n <StyledExpandableContentContainer\n justifyContent=\"space-between\"\n alignItems=\"center\"\n gap=\"lg\"\n >\n {!hasCustomIcon && <Icon icon={defaultIcons[variant]} />}\n {content}\n </StyledExpandableContentContainer>\n {expandableContentNodes}\n </>\n ) : (\n <Flex\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n gap=\"lg\"\n grow=\"1\"\n >\n {!hasCustomIcon && <Icon icon={defaultIcons[variant]} />}\n {content}\n </Flex>\n )}\n </StyledBannerContainer>\n )\n }\n)\n\nconst Content = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Content({ children, ...props }, ref) {\n return (\n <StyledContent {...props} ref={ref}>\n {children}\n </StyledContent>\n )\n }\n)\n\nconst ExpandableContent = React.forwardRef<\n HTMLDivElement,\n DivAttributes & BannerExpandableContentProps\n>(function ExpandableContent(\n { children, expanded = false, expandableContentMaxHeight = 120, ...props },\n ref\n) {\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n return expanded ? (\n <OverflowObserver>\n {({ ref: overflowRef, isOverflowingY }) => (\n <StyledExpandableContent\n ref={mergeRefs(ref, containerRef)}\n data-qa=\"core-banner-expandable-content\"\n onAnimationEnd={() => overflowRef(containerRef.current)}\n $isOverflowingY={isOverflowingY}\n $expandableContentMaxHeight={expandableContentMaxHeight}\n {...props}\n {...(isOverflowingY && { tabIndex: 0 })}\n >\n {children}\n </StyledExpandableContent>\n )}\n </OverflowObserver>\n ) : null\n})\n\nconst Title = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Title({ children, ...props }, ref) {\n return (\n <StyledTitle {...props} ref={ref}>\n {children}\n </StyledTitle>\n )\n }\n)\n\nconst Body = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Body({ children, ...props }, ref) {\n return (\n <StyledBody {...props} ref={ref}>\n {children}\n </StyledBody>\n )\n }\n)\n\nconst Action = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function Action({ children, ...props }, ref) {\n return (\n <StyledAction {...props} ref={ref}>\n {children}\n </StyledAction>\n )\n }\n)\n\nconst DropdownAction = React.forwardRef<HTMLDivElement, DivAttributes & Props>(\n function DropdownAction({ children, ...props }, ref) {\n return (\n <Menu.Item ref={ref} item={null} {...(props as any)}>\n {children}\n </Menu.Item>\n )\n }\n)\n\nconst Actions = React.forwardRef<HTMLButtonElement, ButtonAttributes & Props>(\n function Actions({ children, ...props }, ref) {\n const actionButtons = React.Children.toArray(children).filter(\n (element: React.ReactNode) =>\n React.isValidElement(element) && element.type === Action\n ) as React.ReactElement[]\n\n return (\n <OverlayTrigger\n overlay={\n <Card>\n <Menu\n ref={(node) => node?.focus()}\n usingHook={useMenu({\n isSelectable: ({ type }) => type === DropdownAction,\n })}\n >\n <Menu.Options>\n {actionButtons.map(({ props: actionButtonProps }, idx) => (\n <DropdownAction key={idx} {...actionButtonProps} />\n ))}\n </Menu.Options>\n </Menu>\n </Card>\n }\n ref={ref}\n placement=\"bottom-right\"\n >\n <StyledActionsTrigger\n data-qa=\"core-banner-actions-trigger\"\n variant=\"tertiary\"\n arrow={false}\n icon={<EllipsisVertical />}\n {...props}\n />\n </OverlayTrigger>\n )\n }\n)\n\nconst Icon = React.forwardRef<HTMLDivElement, DivAttributes & BannerIconProps>(\n function Icon({ children, icon, ...props }, ref) {\n return (\n <StyledIconContainer ref={ref} aria-hidden=\"true\" {...props}>\n {icon}\n </StyledIconContainer>\n )\n }\n)\n\nconst Dismiss = React.forwardRef<HTMLButtonElement, ButtonAttributes & Props>(\n function Dismiss({ children, ...props }, ref) {\n const I18n = useI18nContext()\n\n return (\n <Button\n aria-label={I18n.t('core.banner.dismissAlert')}\n ref={ref}\n {...props}\n icon={<Clear />}\n variant=\"tertiary\"\n />\n )\n }\n)\n\nexport const ErrorBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function ErrorBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"error\" {...props}>\n <Icon icon={<Error size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n\nexport const InfoBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function InfoBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"info\" {...props}>\n <Icon icon={<Info size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n\n/**\n * @since 11.26.0\n */\nexport const AttentionBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props\n>(function AttentionBanner({ children, ...props }, ref) {\n return (\n <Banner ref={ref} variant=\"attention\" {...props}>\n <Icon icon={<Warning size=\"lg\" />} />\n {children}\n </Banner>\n )\n})\n/**\n * @deprecated ActionBanner was renamed to AttentionBanner.\n * @deprecatedSince 11.26.0\n */\nexport const ActionBanner = AttentionBanner\n\nexport const UNSAFE_MiniBanner = React.forwardRef<\n HTMLDivElement,\n DivAttributes & Props & { variant?: BannerVariant }\n>(function MiniBanner({ children, variant = 'info', ...props }, ref) {\n return (\n <StyledMiniBannerContainer ref={ref} variant={variant} {...props}>\n {children}\n </StyledMiniBannerContainer>\n )\n})\n\nBanner_.displayName = 'Banner'\n\nBody.displayName = 'Banner.Body'\n\nContent.displayName = 'Banner.Content'\n\nExpandableContent.displayName = 'Banner.ExpandableContent'\n\nTitle.displayName = 'Banner.Title'\n\nAction.displayName = 'Banner.Action'\n\nActions.displayName = 'Banner.Actions'\n\nDropdownAction.displayName = 'Banner.DropdownAction'\n\nIcon.displayName = 'Banner.Icon'\n\nDismiss.displayName = 'Banner.Dismiss'\n\nErrorBanner.displayName = 'ErrorBanner'\n\nInfoBanner.displayName = 'InfoBanner'\n\nAttentionBanner.displayName = 'AttentionBanner'\n\nActionBanner.displayName = 'ActionBanner'\n\nUNSAFE_MiniBanner.displayName = 'MiniBanner'\n\n/**\n\n\n We use banners to contextually convey complicated or supplemental information\n to a user. Depending on the type of banner, we can provide more information\n about a feature or page the user is on, an action the user needs to perform,\n or an error the user has encountered.\n\n Procore banners are informative and actionable. Always explain what the user\n needs to know (and in some cases, why they’re seeing the banner), and provide\n an actionable next step.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-banner--demo)\n\n @see [Design Guidelines](https://design.procore.com/banner)\n\n */\nexport const Banner = addSubcomponents(\n {\n Body,\n Content,\n ExpandableContent,\n Title,\n Action,\n Actions,\n Icon,\n Dismiss,\n },\n Banner_\n)\n"],"mappings":"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"}
|