@procore/core-react 12.50.1 → 12.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +14 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +8 -8
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.d.ts +7 -5
- package/dist/Banner/Banner.js +146 -71
- package/dist/Banner/Banner.js.map +1 -1
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Banner/Banner.types.d.ts +16 -0
- package/dist/Banner/Banner.types.js.map +1 -1
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +15 -2
- package/dist/Breadcrumbs/Breadcrumbs.js +27 -4
- package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Breadcrumbs/Breadcrumbs.types.d.ts +9 -0
- package/dist/Breadcrumbs/Breadcrumbs.types.js.map +1 -1
- package/dist/Button/Button.styles.js +11 -12
- package/dist/Button/Button.styles.js.map +1 -1
- package/dist/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.helpers.d.ts +3 -0
- package/dist/DropdownFlyout/DropdownFlyout.helpers.js +30 -2
- package/dist/DropdownFlyout/DropdownFlyout.helpers.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.js +7 -1
- package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +7 -8
- package/dist/DropdownFlyout/DropdownFlyout.styles.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -0
- package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
- package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js +13 -1
- package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js.map +1 -1
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.d.ts +2 -2
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +3 -3
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +6 -6
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +13 -13
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- 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 +7 -0
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/Menu/Menu.types.d.ts +1 -0
- package/dist/Menu/Menu.types.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.d.ts +1 -0
- package/dist/MenuImperative/MenuImperative.styles.js +25 -22
- package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
- package/dist/MenuImperative/sensors.js +20 -4
- package/dist/MenuImperative/sensors.js.map +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +8 -8
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTile/NextTile.styles.js +5 -5
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/Overlay/useOverlay.d.ts +2 -1
- package/dist/Overlay/useOverlay.js +4 -2
- package/dist/Overlay/useOverlay.js.map +1 -1
- package/dist/PageLayout/PageLayout.js +4 -2
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.d.ts +0 -1
- package/dist/PageLayout/PageLayout.styles.js +18 -19
- package/dist/PageLayout/PageLayout.styles.js.map +1 -1
- package/dist/PageLayout/PageLayout.types.d.ts +11 -3
- package/dist/PageLayout/PageLayout.types.js.map +1 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- 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.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +8 -8
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.js +2 -0
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.styles.js +79 -76
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.js +1 -0
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +29 -29
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.js +2 -1
- package/dist/Tabs/Tabs.js.map +1 -1
- package/dist/Tabs/Tabs.styles.d.ts +1 -0
- package/dist/Tabs/Tabs.styles.js +29 -26
- package/dist/Tabs/Tabs.styles.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 +99 -37
- package/dist/Thumbnail/Thumbnail.js.map +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +23 -23
- package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
- package/dist/Thumbnail/Thumbnail.types.d.ts +1 -0
- package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- 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 +5 -5
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +46 -21
- package/dist/Tree/Tree.js.map +1 -1
- package/dist/Tree/Tree.styles.d.ts +1 -0
- package/dist/Tree/Tree.styles.js +17 -14
- package/dist/Tree/Tree.styles.js.map +1 -1
- package/dist/Tree/Tree.types.d.ts +10 -0
- package/dist/Tree/Tree.types.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.js +4 -4
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +57 -9
- package/dist/_locales/de-DE.json +1 -1
- package/dist/_locales/en-AU.json +1 -1
- package/dist/_locales/en-CA.json +1 -1
- package/dist/_locales/en-GB.json +1 -1
- package/dist/_locales/en.json +8 -2
- package/dist/_locales/es-ES.json +1 -1
- package/dist/_locales/fr-CA.json +1 -1
- package/dist/_locales/fr-FR.json +1 -1
- package/dist/_locales/is-IS.json +1 -1
- package/dist/_locales/ja-JP.json +2 -2
- package/dist/_locales/nb-NO.json +1 -1
- package/dist/_locales/pl-PL.json +1 -1
- package/dist/_locales/pseudo.json +8 -2
- package/dist/_locales/pt-PT.json +1 -1
- package/dist/_locales/th-TH.json +1 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.d.ts +8 -0
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.js +9 -0
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.js.map +1 -0
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +37 -15
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +32 -10
- package/dist/_typedoc/Button/Button.types.json +14 -14
- 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 +8 -8
- 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 +14 -14
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +41 -31
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- 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 +770 -770
- 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 +54 -54
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- 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 +84 -84
- package/dist/_typedoc/Modal/Modal.types.json +48 -48
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
- package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +58 -45
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +28 -28
- 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 +7 -7
- 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 +18 -18
- 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 +67 -67
- 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 +14 -14
- package/dist/_typedoc/Table/Table.types.json +105 -105
- package/dist/_typedoc/Tabs/Tabs.types.json +23 -23
- 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 +11 -11
- 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 +43 -43
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- 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 +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
- package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
- package/dist/_typedoc/Tree/Tree.types.json +118 -88
- 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/a11y-tips.json +1 -1
- package/dist/_utils/shadowDOM.d.ts +3 -0
- package/dist/_utils/shadowDOM.js +20 -0
- package/dist/_utils/shadowDOM.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
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","$variant","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","ExpandActionButton","_ref0","isExpanded","onExpandChange","_excluded7","I18n","label","t","onClick","DropdownAction","_ref1","_excluded8","Item","item","Actions","_ref10","_excluded9","actionButtons","filter","overlay","node","focus","usingHook","isSelectable","_ref11","Options","map","_ref12","idx","actionButtonProps","key","placement","arrow","_ref13","_excluded0","Dismiss","_ref14","_excluded1","ErrorBanner","_ref15","_excluded10","InfoBanner","_ref16","_excluded11","AttentionBanner","_ref17","_excluded12","ActionBanner","UNSAFE_MiniBanner","MiniBanner","_ref18","_ref18$variant","_excluded13","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 { 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 BannerExpandActionButtonProps,\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<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & 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 justifyContent=\"flex-start\" alignItems=\"center\" gap=\"lg\" grow=\"1\">\n {!hasCustomIcon && <Icon icon={defaultIcons[variant]} />}\n {content}\n </Flex>\n )}\n </StyledBannerContainer>\n )\n})\n\nconst Content = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & Props\n>(function Content({ children, ...props }, ref) {\n return (\n <StyledContent {...props} ref={ref}>\n {children}\n </StyledContent>\n )\n})\n\nconst ExpandableContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & 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<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function Title({ children, ...props }, ref) {\n return (\n <StyledTitle {...props} ref={ref}>\n {children}\n </StyledTitle>\n )\n})\n\nconst Body = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function Body({ children, ...props }, ref) {\n return (\n <StyledBody {...props} ref={ref}>\n {children}\n </StyledBody>\n )\n})\n\nconst Action = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function Action({ children, ...props }, ref) {\n return (\n <StyledAction {...props} ref={ref}>\n {children}\n </StyledAction>\n )\n})\n\nconst ExpandActionButton = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & BannerExpandActionButtonProps\n>(function ExpandActionButton(\n { isExpanded, onExpandChange, children, ...props },\n ref\n) {\n const I18n = useI18nContext()\n const label =\n children ??\n (isExpanded ? I18n.t('core.banner.collapse') : I18n.t('core.banner.expand'))\n\n return (\n <Button\n ref={ref}\n type=\"button\"\n aria-expanded={isExpanded}\n onClick={() => onExpandChange(!isExpanded)}\n {...props}\n >\n {label}\n </Button>\n )\n})\n\nconst DropdownAction = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\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\nconst Actions = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\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\nconst Icon = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & 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\nconst Dismiss = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\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\nexport const ErrorBanner = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\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 React.HTMLAttributes<HTMLDivElement>\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 React.HTMLAttributes<HTMLDivElement>\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 React.HTMLAttributes<HTMLDivElement> & { 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\nExpandActionButton.displayName = 'Banner.ExpandActionButton'\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 ExpandActionButton,\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","useId","partition","React","Button","Card","Flex","Menu","useMenu","OverlayTrigger","useI18nContext","OverflowObserver","addSubcomponents","mergeRefs","StyledAction","StyledActionsTrigger","StyledBannerContainer","StyledBody","StyledContent","StyledExpandableContent","StyledExpandableContentContainer","StyledIconContainer","StyledMiniBannerContainer","StyledTitle","BannerA11yContext","createContext","defaultIcons","error","createElement","size","attention","info","UNSAFE_attention_emphasized","getBannerA11yProps","_ref","hasLabelProvided","defaultAriaLabel","role","titleId","landmarkProps","Banner_","forwardRef","Banner","_ref2","ref","children","_ref2$role","variant","props","_objectWithoutProperties","_excluded","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setTitleId","_ref3","element","isValidElement","type","ExpandableContent","Children","toArray","_ref4","expandableContentNodes","content","isExpandable","length","iconElement","useMemo","find","child","Icon","hasCustomIcon","icon","defaultAriaLabelByVariant","t","_getBannerA11yProps","Boolean","a11yContextValue","Provider","value","_extends","$isExpandable","$variant","Fragment","justifyContent","alignItems","gap","grow","Content","_ref5","_excluded2","_ref6","_ref6$expanded","expanded","_ref6$expandableConte","expandableContentMaxHeight","_excluded3","containerRef","useRef","_ref7","overflowRef","isOverflowingY","onAnimationEnd","current","$isOverflowingY","$expandableContentMaxHeight","tabIndex","Title","_ref8","_props$id","_excluded4","generatedId","id","a11yContext","useContext","useEffect","undefined","Body","_ref9","_excluded5","Action","_ref0","_excluded6","ExpandActionButton","_ref1","isExpanded","onExpandChange","_excluded7","label","onClick","DropdownAction","_ref10","_excluded8","Item","item","Actions","_ref11","_excluded9","actionButtons","filter","overlay","node","focus","usingHook","isSelectable","_ref12","Options","map","_ref13","idx","actionButtonProps","key","placement","arrow","_ref14","_excluded0","Dismiss","_ref15","_excluded1","ErrorBanner","_ref16","_excluded10","InfoBanner","_ref17","_excluded11","AttentionBanner","_ref18","_excluded12","ActionBanner","UNSAFE_MiniBanner","MiniBanner","_ref19","_ref19$variant","_excluded13","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 { useId } from '@react-aria/utils'\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 { 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 BannerExpandActionButtonProps,\n BannerIconProps,\n BannerProps,\n BannerVariant,\n} from './Banner.types'\n\ninterface BannerA11yContextValue {\n setTitleId: (id: string | undefined) => void\n}\n\nconst BannerA11yContext = React.createContext<BannerA11yContextValue | null>(\n null\n)\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\ninterface BannerLabelingArgs {\n hasLabelProvided: boolean\n defaultAriaLabel: string\n role: React.AriaRole | undefined\n titleId: string | undefined\n}\n\ninterface BannerLabeledNodes {\n landmarkProps: Pick<\n React.HTMLAttributes<HTMLDivElement>,\n 'role' | 'aria-label' | 'aria-labelledby'\n >\n // liveRegionProps: Pick<React.HTMLAttributes<HTMLDivElement>, 'role'>\n}\n\nfunction getBannerA11yProps({\n hasLabelProvided,\n defaultAriaLabel,\n role,\n titleId,\n}: BannerLabelingArgs): BannerLabeledNodes {\n if (role !== 'region') {\n return {\n landmarkProps: { role },\n }\n }\n\n if (hasLabelProvided) {\n return {\n landmarkProps: { role: 'region' },\n }\n }\n\n if (titleId) {\n return {\n landmarkProps: {\n role: 'region',\n 'aria-labelledby': titleId,\n },\n }\n }\n\n return {\n landmarkProps: {\n role: 'region',\n 'aria-label': defaultAriaLabel,\n },\n }\n}\n\nconst Banner_ = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & BannerProps\n>(function Banner({ children, role = 'region', variant, ...props }, ref) {\n const I18n = useI18nContext()\n const [titleId, setTitleId] = React.useState<string>()\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 const defaultAriaLabelByVariant: Record<BannerVariant, string> = {\n error: I18n.t('core.banner.defaultLabels.error'),\n attention: I18n.t('core.banner.defaultLabels.attention'),\n info: I18n.t('core.banner.defaultLabels.info'),\n UNSAFE_attention_emphasized: I18n.t(\n 'core.banner.defaultLabels.unsafeAttentionEmphasized'\n ),\n }\n\n const { landmarkProps } = getBannerA11yProps({\n hasLabelProvided: Boolean(props['aria-label'] || props['aria-labelledby']),\n defaultAriaLabel: defaultAriaLabelByVariant[variant],\n role,\n titleId,\n })\n\n const a11yContextValue = React.useMemo(() => ({ setTitleId }), [setTitleId])\n\n return (\n <BannerA11yContext.Provider value={a11yContextValue}>\n <StyledBannerContainer\n ref={ref}\n $isExpandable={isExpandable}\n $variant={variant}\n {...landmarkProps}\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 </BannerA11yContext.Provider>\n )\n})\n\nconst Content = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & Props\n>(function Content({ children, ...props }, ref) {\n return (\n <StyledContent {...props} ref={ref}>\n {children}\n </StyledContent>\n )\n})\n\nconst ExpandableContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & 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<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n }\n>(function Title({ children, ...props }, ref) {\n const generatedId = useId()\n const titleId = props.id ?? generatedId\n const a11yContext = React.useContext(BannerA11yContext)\n\n React.useEffect(() => {\n a11yContext?.setTitleId(titleId)\n\n return () => a11yContext?.setTitleId(undefined)\n }, [a11yContext, titleId])\n\n return (\n <StyledTitle id={titleId} {...props} ref={ref}>\n {children}\n </StyledTitle>\n )\n})\n\nconst Body = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function Body({ children, ...props }, ref) {\n return (\n <StyledBody {...props} ref={ref}>\n {children}\n </StyledBody>\n )\n})\n\nconst Action = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function Action({ children, ...props }, ref) {\n return (\n <StyledAction {...props} ref={ref}>\n {children}\n </StyledAction>\n )\n})\n\nconst ExpandActionButton = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & BannerExpandActionButtonProps\n>(function ExpandActionButton(\n { isExpanded, onExpandChange, children, ...props },\n ref\n) {\n const I18n = useI18nContext()\n const label =\n children ??\n (isExpanded ? I18n.t('core.banner.collapse') : I18n.t('core.banner.expand'))\n\n return (\n <Button\n ref={ref}\n type=\"button\"\n aria-expanded={isExpanded}\n onClick={() => onExpandChange(!isExpanded)}\n {...props}\n >\n {label}\n </Button>\n )\n})\n\nconst DropdownAction = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\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\nconst Actions = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\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\nconst Icon = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & 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\nconst Dismiss = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\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\nexport const ErrorBanner = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & Omit<BannerProps, 'variant'>\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 React.HTMLAttributes<HTMLDivElement> & Omit<BannerProps, 'variant'>\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 React.HTMLAttributes<HTMLDivElement> & Omit<BannerProps, 'variant'>\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 React.HTMLAttributes<HTMLDivElement> & { 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\nExpandActionButton.displayName = 'Banner.ExpandActionButton'\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 ExpandActionButton,\n Actions,\n Icon,\n Dismiss,\n },\n Banner_\n)\n"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ var expandContent = function expandContent(maxHeight) {
|
|
|
39
39
|
};
|
|
40
40
|
export var StyledBannerContainer = /*#__PURE__*/styled.div.withConfig({
|
|
41
41
|
displayName: "StyledBannerContainer",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-12_52_0__sc-149wm7c-0"
|
|
43
43
|
})(["align-items:center;border-left:", "px solid;border-radius:", "px;color:", ";display:flex;justify-content:space-between;min-height:52px;padding:0 ", "px;", " ", " ", ""], bannerLeft, borderRadius.md, colors.gray15, spacing.lg, bannerShadow, function (_ref) {
|
|
44
44
|
var $variant = _ref.$variant;
|
|
45
45
|
var _bannerVariantColors$ = bannerVariantColors[$variant],
|
|
@@ -52,15 +52,15 @@ export var StyledBannerContainer = /*#__PURE__*/styled.div.withConfig({
|
|
|
52
52
|
});
|
|
53
53
|
export var StyledContent = /*#__PURE__*/styled.div.withConfig({
|
|
54
54
|
displayName: "StyledContent",
|
|
55
|
-
componentId: "core-
|
|
55
|
+
componentId: "core-12_52_0__sc-149wm7c-1"
|
|
56
56
|
})(["align-self:center;margin:", "px ", "px ", "px 0;width:100%;"], spacing.sm, spacing.lg, spacing.sm);
|
|
57
57
|
export var StyledExpandableContentContainer = /*#__PURE__*/styled(Flex).withConfig({
|
|
58
58
|
displayName: "StyledExpandableContentContainer",
|
|
59
|
-
componentId: "core-
|
|
59
|
+
componentId: "core-12_52_0__sc-149wm7c-2"
|
|
60
60
|
})(["color:", ";min-height:52px;padding:0 ", "px;position:relative;z-index:1;", ""], colors.gray15, spacing.lg, bannerShadow);
|
|
61
61
|
export var StyledExpandableContent = /*#__PURE__*/styled(Flex).withConfig({
|
|
62
62
|
displayName: "StyledExpandableContent",
|
|
63
|
-
componentId: "core-
|
|
63
|
+
componentId: "core-12_52_0__sc-149wm7c-3"
|
|
64
64
|
})(["animation-duration:450ms;animation-fill-mode:forwards;animation-timing-function:ease-out;background-color:", ";box-sizing:border-box;font-size:14px;font-weight:500;letter-spacing:0.25px;line-height:20px;overflow-y:auto;padding:0 ", "px;position:relative;z-index:0;", " ", ""], colors.white, spacing.xl * 2 + spacing.sm, function (_ref3) {
|
|
65
65
|
var $isOverflowingY = _ref3.$isOverflowingY;
|
|
66
66
|
return $isOverflowingY && focusable;
|
|
@@ -70,23 +70,23 @@ export var StyledExpandableContent = /*#__PURE__*/styled(Flex).withConfig({
|
|
|
70
70
|
});
|
|
71
71
|
export var StyledTitle = /*#__PURE__*/styled.div.withConfig({
|
|
72
72
|
displayName: "StyledTitle",
|
|
73
|
-
componentId: "core-
|
|
73
|
+
componentId: "core-12_52_0__sc-149wm7c-4"
|
|
74
74
|
})(["", " color:", ";font-weight:", ";"], getTypographyIntent('body'), colors.gray15, typographyWeights.semibold);
|
|
75
75
|
export var StyledBody = /*#__PURE__*/styled.div.withConfig({
|
|
76
76
|
displayName: "StyledBody",
|
|
77
|
-
componentId: "core-
|
|
77
|
+
componentId: "core-12_52_0__sc-149wm7c-5"
|
|
78
78
|
})(["", " color:", ";"], getTypographyIntent('body'), colors.gray15);
|
|
79
79
|
export var StyledIconContainer = /*#__PURE__*/styled.div.withConfig({
|
|
80
80
|
displayName: "StyledIconContainer",
|
|
81
|
-
componentId: "core-
|
|
81
|
+
componentId: "core-12_52_0__sc-149wm7c-6"
|
|
82
82
|
})(["flex:0 0 auto;margin:", "px 0;"], spacing.lg);
|
|
83
83
|
export var StyledActionsTrigger = /*#__PURE__*/styled(DropdownButton).withConfig({
|
|
84
84
|
displayName: "StyledActionsTrigger",
|
|
85
|
-
componentId: "core-
|
|
85
|
+
componentId: "core-12_52_0__sc-149wm7c-7"
|
|
86
86
|
})(["flex-shrink:0;& + ", ",& + ", "{margin-left:-", "px;}"], StyledButton, StyledLinkButton, spacing.sm);
|
|
87
87
|
export var StyledAction = /*#__PURE__*/styled.div.withConfig({
|
|
88
88
|
displayName: "StyledAction",
|
|
89
|
-
componentId: "core-
|
|
89
|
+
componentId: "core-12_52_0__sc-149wm7c-8"
|
|
90
90
|
})(["margin:", "px 0 ", "px -", "px;& + ", ",& + ", ",& + ", "{margin-left:-", "px;}", ",", "{background:rgba(0,0,0,0.05);color:", ";&:hover{background:", ";color:", ";}}"], spacing.sm, spacing.sm, spacing.sm, StyledButton, StyledLinkButton, StyledActionsTrigger, spacing.sm, StyledButton, StyledLinkButton, colors.gray15, colors.gray85, colors.gray15);
|
|
91
91
|
function getMiniBannerIconColor(_ref5) {
|
|
92
92
|
var variant = _ref5.variant;
|
|
@@ -94,6 +94,6 @@ function getMiniBannerIconColor(_ref5) {
|
|
|
94
94
|
}
|
|
95
95
|
export var StyledMiniBannerContainer = /*#__PURE__*/styled.div.withConfig({
|
|
96
96
|
displayName: "StyledMiniBannerContainer",
|
|
97
|
-
componentId: "core-
|
|
97
|
+
componentId: "core-12_52_0__sc-149wm7c-9"
|
|
98
98
|
})(["align-items:center;background-color:", ";display:flex;justify-content:space-between;padding:0 ", "px;", " ", " & ", "{margin:", "px;}"], colors.gray96, spacing.md, getTypographyIntent('small'), getMiniBannerIconColor, StyledContent, spacing.sm);
|
|
99
99
|
//# sourceMappingURL=Banner.styles.js.map
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
import type { Props } from '../_utils/types';
|
|
3
3
|
export declare type BannerVariant = 'attention' | 'error' | 'info' | 'UNSAFE_attention_emphasized';
|
|
4
4
|
export interface BannerProps extends Props {
|
|
5
|
+
/**
|
|
6
|
+
* @a11y Useful when no `Banner.Title` is present. Prefer a brief visible labels.
|
|
7
|
+
*/
|
|
8
|
+
'aria-label'?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Sets the banner's role. Is it present on load or does it appear during a workflow?
|
|
11
|
+
*
|
|
12
|
+
* @a11y Banners can act as landmarks or live regions. Roles:
|
|
13
|
+
* - `region` (default) a landmark already present and persists or is dismissed. `Banner.Title` provides the label.
|
|
14
|
+
* - `alert` for urgent, time-sensitive messages that should announce immediately.
|
|
15
|
+
* - `status` for non-urgent live updates that will be announced.
|
|
16
|
+
* - `none` Regular presentation
|
|
17
|
+
*
|
|
18
|
+
* @since 12.49.0
|
|
19
|
+
*/
|
|
20
|
+
role?: React.AriaRole;
|
|
5
21
|
/**
|
|
6
22
|
* Sets the banner's variant.
|
|
7
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.types.js","names":[],"sources":["../../src/Banner/Banner.types.ts"],"sourcesContent":["import type { Props } from '../_utils/types'\n\nexport type BannerVariant =\n | 'attention'\n | 'error'\n | 'info'\n | 'UNSAFE_attention_emphasized'\n\nexport interface BannerProps extends Props {\n /**\n * Sets the banner's variant.\n *\n * @since 10.19.0\n */\n variant: BannerVariant\n}\n\nexport interface BannerIconProps extends Props {\n /**\n * @since 10.19.0\n */\n icon: React.ReactNode\n}\n\nexport interface BannerExpandableContentProps extends Props {\n /**\n * Expands banner content\n * @since 10.19.0\n */\n expanded: boolean\n /**\n * Max height for the expanded content pane. (Optional)\n * Defaults to 120.\n *\n * @since 11.5.*\n */\n expandableContentMaxHeight?: number\n}\n\nexport interface BannerExpandActionButtonProps {\n /** Whether the expandable content is currently expanded */\n isExpanded: boolean\n /** Called when the user toggles expand/collapse; receives the new expanded value. Use with any state (useState, useReducer, URL, etc.). */\n onExpandChange: (expanded: boolean) => void\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Banner.types.js","names":[],"sources":["../../src/Banner/Banner.types.ts"],"sourcesContent":["import type { Props } from '../_utils/types'\n\nexport type BannerVariant =\n | 'attention'\n | 'error'\n | 'info'\n | 'UNSAFE_attention_emphasized'\n\nexport interface BannerProps extends Props {\n /**\n * @a11y Useful when no `Banner.Title` is present. Prefer a brief visible labels.\n */\n 'aria-label'?: string\n /**\n * Sets the banner's role. Is it present on load or does it appear during a workflow?\n *\n * @a11y Banners can act as landmarks or live regions. Roles:\n * - `region` (default) a landmark already present and persists or is dismissed. `Banner.Title` provides the label.\n * - `alert` for urgent, time-sensitive messages that should announce immediately.\n * - `status` for non-urgent live updates that will be announced.\n * - `none` Regular presentation\n *\n * @since 12.49.0\n */\n role?: React.AriaRole\n /**\n * Sets the banner's variant.\n *\n * @since 10.19.0\n */\n variant: BannerVariant\n}\n\nexport interface BannerIconProps extends Props {\n /**\n * @since 10.19.0\n */\n icon: React.ReactNode\n}\n\nexport interface BannerExpandableContentProps extends Props {\n /**\n * Expands banner content\n * @since 10.19.0\n */\n expanded: boolean\n /**\n * Max height for the expanded content pane. (Optional)\n * Defaults to 120.\n *\n * @since 11.5.*\n */\n expandableContentMaxHeight?: number\n}\n\nexport interface BannerExpandActionButtonProps {\n /** Whether the expandable content is currently expanded */\n isExpanded: boolean\n /** Called when the user toggles expand/collapse; receives the new expanded value. Use with any state (useState, useReducer, URL, etc.). */\n onExpandChange: (expanded: boolean) => void\n}\n"],"mappings":""}
|
package/dist/Box/Box.styles.js
CHANGED
|
@@ -21,7 +21,7 @@ function sizeToPx(size) {
|
|
|
21
21
|
}
|
|
22
22
|
export var StyledBox = /*#__PURE__*/styled.div.withConfig({
|
|
23
23
|
displayName: "StyledBox",
|
|
24
|
-
componentId: "core-
|
|
24
|
+
componentId: "core-12_52_0__sc-fgsy0p-0"
|
|
25
25
|
})(["", " ", ""], function (_ref) {
|
|
26
26
|
var as = _ref.as;
|
|
27
27
|
if (as === 'ol' || as === 'ul') {
|
|
@@ -31,8 +31,21 @@ AFTER:
|
|
|
31
31
|
</Breadcrumbs>
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
@a11y Use `variant="list"` for semantic `ol`, `li` elements in addition to `nav`.
|
|
35
|
-
|
|
34
|
+
@a11y Required Use `variant="list"` for semantic `ol`, `li` elements in addition to `nav`.
|
|
35
|
+
|
|
36
|
+
When multiple breadcrumbs are in view, it is recommended each have an `aria-label` or `aria-labelledby`.
|
|
37
|
+
When breadcrumbs are rendered inside specialized containers (for example `Panel`, `Modal`,
|
|
38
|
+
`Tearsheet`) set `aria-labelledby` to the container heading id and provide a stable `id` on
|
|
39
|
+
`Breadcrumbs`. This allows self-reference label chaining so the final accessible name includes
|
|
40
|
+
both the container context and the breadcrumb label.
|
|
41
|
+
|
|
42
|
+
Example:
|
|
43
|
+
```
|
|
44
|
+
<Breadcrumbs aria-labelledby="panel-title" variant="list">
|
|
45
|
+
...
|
|
46
|
+
</Breadcrumbs>
|
|
47
|
+
<H2 id="panel-title">Panel Title</H2>
|
|
48
|
+
```
|
|
36
49
|
|
|
37
50
|
@example
|
|
38
51
|
<Breadcrumbs variant="list">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["children", "variant"],
|
|
2
|
+
var _excluded = ["children", "variant", "id", "aria-label", "aria-labelledby"],
|
|
3
3
|
_excluded2 = ["variant"],
|
|
4
4
|
_excluded3 = ["isLast"];
|
|
5
5
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
@@ -11,6 +11,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
11
11
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
12
12
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
13
13
|
import { ChevronRight } from '@procore/core-icons';
|
|
14
|
+
import { useId } from '@react-aria/utils';
|
|
14
15
|
import React from 'react';
|
|
15
16
|
import { useI18nContext } from '../_hooks/I18n';
|
|
16
17
|
import { addSubcomponents } from '../_utils/addSubcomponents';
|
|
@@ -23,8 +24,15 @@ var Breadcrumbs_ = /*#__PURE__*/React.forwardRef(function Breadcrumbs(_ref, ref)
|
|
|
23
24
|
var children = _ref.children,
|
|
24
25
|
_ref$variant = _ref.variant,
|
|
25
26
|
variant = _ref$variant === void 0 ? BreadcrumbVariants.LEGACY : _ref$variant,
|
|
27
|
+
providedId = _ref.id,
|
|
28
|
+
providedAriaLabel = _ref['aria-label'],
|
|
29
|
+
providedAriaLabelledBy = _ref['aria-labelledby'],
|
|
26
30
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
27
31
|
var i18n = useI18nContext();
|
|
32
|
+
var generatedId = useId();
|
|
33
|
+
var selfLabelId = providedId || (providedAriaLabelledBy ? generatedId : undefined);
|
|
34
|
+
var ariaLabel = providedAriaLabel !== null && providedAriaLabel !== void 0 ? providedAriaLabel : i18n.t('core.breadcrumbs.label');
|
|
35
|
+
var ariaLabelledBy = providedAriaLabelledBy ? "".concat(providedAriaLabelledBy, " ").concat(selfLabelId) : undefined;
|
|
28
36
|
var childrenArray = React.Children.toArray(children);
|
|
29
37
|
var isLegacy = variant === BreadcrumbVariants.LEGACY;
|
|
30
38
|
var navigationList = childrenArray.filter(function (child) {
|
|
@@ -43,7 +51,9 @@ var Breadcrumbs_ = /*#__PURE__*/React.forwardRef(function Breadcrumbs(_ref, ref)
|
|
|
43
51
|
}, /*#__PURE__*/React.cloneElement(child, cloneProps), isLegacy && !isLast ? separator : /*#__PURE__*/React.createElement(React.Fragment, null));
|
|
44
52
|
});
|
|
45
53
|
return /*#__PURE__*/React.createElement(StyledContainer, _extends({
|
|
46
|
-
|
|
54
|
+
id: selfLabelId,
|
|
55
|
+
"aria-label": ariaLabel,
|
|
56
|
+
"aria-labelledby": ariaLabelledBy
|
|
47
57
|
}, props, {
|
|
48
58
|
ref: ref
|
|
49
59
|
}), !isLegacy ? /*#__PURE__*/React.createElement(StyledList, null, navigationList) : navigationList);
|
|
@@ -106,8 +116,21 @@ AFTER:
|
|
|
106
116
|
</Breadcrumbs>
|
|
107
117
|
```
|
|
108
118
|
|
|
109
|
-
@a11y Use `variant="list"` for semantic `ol`, `li` elements in addition to `nav`.
|
|
110
|
-
|
|
119
|
+
@a11y Required Use `variant="list"` for semantic `ol`, `li` elements in addition to `nav`.
|
|
120
|
+
|
|
121
|
+
When multiple breadcrumbs are in view, it is recommended each have an `aria-label` or `aria-labelledby`.
|
|
122
|
+
When breadcrumbs are rendered inside specialized containers (for example `Panel`, `Modal`,
|
|
123
|
+
`Tearsheet`) set `aria-labelledby` to the container heading id and provide a stable `id` on
|
|
124
|
+
`Breadcrumbs`. This allows self-reference label chaining so the final accessible name includes
|
|
125
|
+
both the container context and the breadcrumb label.
|
|
126
|
+
|
|
127
|
+
Example:
|
|
128
|
+
```
|
|
129
|
+
<Breadcrumbs aria-labelledby="panel-title" variant="list">
|
|
130
|
+
...
|
|
131
|
+
</Breadcrumbs>
|
|
132
|
+
<H2 id="panel-title">Panel Title</H2>
|
|
133
|
+
```
|
|
111
134
|
|
|
112
135
|
@example
|
|
113
136
|
<Breadcrumbs variant="list">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","names":["ChevronRight","React","useI18nContext","addSubcomponents","StyledContainer","StyledCrumb","StyledList","StyledSeparator","BreadcrumbVariants","separator","createElement","Breadcrumbs_","forwardRef","Breadcrumbs","_ref","ref","children","_ref$variant","variant","LEGACY","props","_objectWithoutProperties","_excluded","i18n","childrenArray","Children","toArray","isLegacy","navigationList","filter","child","map","i","isLast","length","aria","active","undefined","cloneProps","_objectSpread","Fragment","key","concat","cloneElement","_extends","t","Crumb","_ref2","_ref2$variant","_excluded2","childrenWithAriaAttrs","isValidElement","showSeparator","hasOwnProperty","crumbProps","_excluded3","as","displayName"],"sources":["../../src/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { ChevronRight } from '@procore/core-icons'\nimport type { ForwardedRef } from 'react'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledContainer,\n StyledCrumb,\n StyledList,\n StyledSeparator,\n} from './Breadcrumbs.styles'\nimport type { BreadcrumbCrumbProps, BreadcrumbProps } from './Breadcrumbs.types'\nimport { BreadcrumbVariants } from './Breadcrumbs.types'\n\nconst separator = (\n <StyledSeparator aria-hidden={true}>\n <ChevronRight />\n </StyledSeparator>\n)\n\nconst Breadcrumbs_ = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLDivElement> & BreadcrumbProps\n>(function Breadcrumbs(\n { children, variant = BreadcrumbVariants.LEGACY, ...props },\n ref\n) {\n const i18n = useI18nContext()\n const childrenArray = React.Children.toArray(children)\n const isLegacy = variant === BreadcrumbVariants.LEGACY\n\n const navigationList = childrenArray\n .filter((child) => child)\n .map((child, i) => {\n const isLast = i === childrenArray.length - 1\n const aria = {\n 'aria-current': (child as React.ReactElement).props.active || undefined,\n }\n const cloneProps = isLegacy\n ? aria\n : {\n ...aria,\n isLast,\n variant,\n }\n\n return (\n <React.Fragment key={`separator-${i}`}>\n {React.cloneElement(child as React.ReactElement, cloneProps)}\n {isLegacy && !isLast ? separator : <></>}\n </React.Fragment>\n )\n })\n return (\n <StyledContainer\n aria-label={i18n.t('core.breadcrumbs.label')}\n {...props}\n ref={ref}\n >\n {!isLegacy ? <StyledList>{navigationList}</StyledList> : navigationList}\n </StyledContainer>\n )\n})\n\ntype NavCrumbProps = React.LiHTMLAttributes<HTMLLIElement> &\n BreadcrumbCrumbProps\ntype LegacyCrumbProps = React.HTMLAttributes<HTMLDivElement> &\n BreadcrumbCrumbProps\n\nexport const Crumb = React.forwardRef<\n HTMLLIElement | HTMLDivElement,\n NavCrumbProps | LegacyCrumbProps\n>(function Crumb({ variant = BreadcrumbVariants.LEGACY, ...props }, ref) {\n const childrenWithAriaAttrs = React.Children.toArray(props.children)\n .filter((child) => child)\n .map((child) => {\n if (React.isValidElement<{ 'aria-current'?: boolean }>(child)) {\n return React.cloneElement(child, {\n 'aria-current': props.active || undefined,\n })\n } else {\n return child\n }\n })\n const isLegacy = variant === BreadcrumbVariants.LEGACY\n const showSeparator =\n !isLegacy && props.hasOwnProperty('isLast') && !props.isLast\n const { isLast, ...crumbProps } = props\n return (\n <StyledCrumb\n as={isLegacy ? 'div' : 'li'}\n {...(crumbProps as NavCrumbProps)}\n ref={ref as ForwardedRef<HTMLLIElement>}\n >\n {childrenWithAriaAttrs}\n {showSeparator ? separator : <></>}\n </StyledCrumb>\n )\n})\n\nBreadcrumbs_.displayName = 'Breadcrumbs'\n\nCrumb.displayName = 'Breadcrumbs.Crumb'\n\n// * @codemod npx ...\n// * @deprecatedSince 12.x.x\n/**\n * @description We use breadcrumbs to provide navigational information to the user on every\n * tool’s child page in Procore. The last element is the active view.\n *\n * __Important!__ Prior versions support placing an anchor element in-between `Breadcrumbs` and\n * `Breadcrumbs.Crumb` elements; going forward anchor elements must be inside `Breadcrumbs.Crumb`.\n *\n * Additionally __set `variant=\"list\"` to enable list markup__, it will eventually be the default\n * but requires users to place hyperlinks inside the `Breadcrumbs.Crumb` (`li`) to be proper HTML.\n\nBEFORE:\n```\n<Breadcrumbs>\n <a href=\"#\">\n <Breadcrumbs.Crumb>Deprecated</Breadcrumbs.Crumb>\n </a>\n</Breadcrumbs>\n```\n\nAFTER:\n```\n<Breadcrumbs variant=\"list\">\n <Breadcrumbs.Crumb>\n <a href=\"#\">Standard</a>\n </Breadcrumbs.Crumb>\n</Breadcrumbs>\n```\n\n @a11y Use `variant=\"list\"` for semantic `ol`, `li` elements in addition to `nav`. When multiple\n breadcrumbs are in view, it is recommended each have an `aria-label` or `aria-labelledby`.\n\n @example\n <Breadcrumbs variant=\"list\">\n <Breadcrumbs.Crumb>\n <a href=\"#\">List Items</a>\n </Breadcrumbs.Crumb>\n <Breadcrumbs.Crumb active>\n Current Item\n <Breadcrumbs.Crumb>\n </Breadcrumbs>\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-breadcrumbs--demo)\n\n @see [Design Guidelines](https://design.procore.com/breadcrumb)\n\n */\nexport const Breadcrumbs = addSubcomponents(\n {\n Crumb,\n },\n Breadcrumbs_\n)\n"],"mappings":";;;;;;;;;;;;AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAElD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SACEC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,eAAe,QACV,sBAAsB;AAE7B,SAASC,kBAAkB,QAAQ,qBAAqB;AAExD,IAAMC,SAAS,gBACbR,KAAA,CAAAS,aAAA,CAACH,eAAe;EAAC,eAAa;AAAK,gBACjCN,KAAA,CAAAS,aAAA,CAACV,YAAY,MAAE,CACA,CAClB;AAED,IAAMW,YAAY,gBAAGV,KAAK,CAACW,UAAU,CAGnC,SAASC,WAAWA,CAAAC,IAAA,EAEpBC,GAAG,EACH;EAAA,IAFEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,YAAA,GAAAH,IAAA,CAAEI,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAGT,kBAAkB,CAACW,MAAM,GAAAF,YAAA;IAAKG,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAGzD,IAAMC,IAAI,GAAGrB,cAAc,CAAC,CAAC;EAC7B,IAAMsB,aAAa,GAAGvB,KAAK,CAACwB,QAAQ,CAACC,OAAO,CAACV,QAAQ,CAAC;EACtD,IAAMW,QAAQ,GAAGT,OAAO,KAAKV,kBAAkB,CAACW,MAAM;EAEtD,IAAMS,cAAc,GAAGJ,aAAa,CACjCK,MAAM,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK;EAAA,EAAC,CACxBC,GAAG,CAAC,UAACD,KAAK,EAAEE,CAAC,EAAK;IACjB,IAAMC,MAAM,GAAGD,CAAC,KAAKR,aAAa,CAACU,MAAM,GAAG,CAAC;IAC7C,IAAMC,IAAI,GAAG;MACX,cAAc,EAAGL,KAAK,CAAwBV,KAAK,CAACgB,MAAM,IAAIC;IAChE,CAAC;IACD,IAAMC,UAAU,GAAGX,QAAQ,GACvBQ,IAAI,GAAAI,aAAA,CAAAA,aAAA,KAECJ,IAAI;MACPF,MAAM,EAANA,MAAM;MACNf,OAAO,EAAPA;IAAO,EACR;IAEL,oBACEjB,KAAA,CAAAS,aAAA,CAACT,KAAK,CAACuC,QAAQ;MAACC,GAAG,eAAAC,MAAA,CAAeV,CAAC;IAAG,gBACnC/B,KAAK,CAAC0C,YAAY,CAACb,KAAK,EAAwBQ,UAAU,CAAC,EAC3DX,QAAQ,IAAI,CAACM,MAAM,GAAGxB,SAAS,gBAAGR,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAuC,QAAA,MAAI,CACzB,CAAC;EAErB,CAAC,CAAC;EACJ,oBACEvC,KAAA,CAAAS,aAAA,CAACN,eAAe,EAAAwC,QAAA;IACd,cAAYrB,IAAI,CAACsB,CAAC,CAAC,wBAAwB;EAAE,GACzCzB,KAAK;IACTL,GAAG,EAAEA;EAAI,IAER,CAACY,QAAQ,gBAAG1B,KAAA,CAAAS,aAAA,CAACJ,UAAU,QAAEsB,cAA2B,CAAC,GAAGA,cAC1C,CAAC;AAEtB,CAAC,CAAC;AAOF,OAAO,IAAMkB,KAAK,gBAAG7C,KAAK,CAACW,UAAU,CAGnC,SAASkC,KAAKA,CAAAC,KAAA,EAAoDhC,GAAG,EAAE;EAAA,IAAAiC,aAAA,GAAAD,KAAA,CAAtD7B,OAAO;IAAPA,OAAO,GAAA8B,aAAA,cAAGxC,kBAAkB,CAACW,MAAM,GAAA6B,aAAA;IAAK5B,KAAK,GAAAC,wBAAA,CAAA0B,KAAA,EAAAE,UAAA;EAC9D,IAAMC,qBAAqB,GAAGjD,KAAK,CAACwB,QAAQ,CAACC,OAAO,CAACN,KAAK,CAACJ,QAAQ,CAAC,CACjEa,MAAM,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK;EAAA,EAAC,CACxBC,GAAG,CAAC,UAACD,KAAK,EAAK;IACd,kBAAI7B,KAAK,CAACkD,cAAc,CAA+BrB,KAAK,CAAC,EAAE;MAC7D,oBAAO7B,KAAK,CAAC0C,YAAY,CAACb,KAAK,EAAE;QAC/B,cAAc,EAAEV,KAAK,CAACgB,MAAM,IAAIC;MAClC,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,OAAOP,KAAK;IACd;EACF,CAAC,CAAC;EACJ,IAAMH,QAAQ,GAAGT,OAAO,KAAKV,kBAAkB,CAACW,MAAM;EACtD,IAAMiC,aAAa,GACjB,CAACzB,QAAQ,IAAIP,KAAK,CAACiC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAACjC,KAAK,CAACa,MAAM;EAC9D,IAAQA,MAAM,GAAoBb,KAAK,CAA/Ba,MAAM;IAAKqB,UAAU,GAAAjC,wBAAA,CAAKD,KAAK,EAAAmC,UAAA;EACvC,oBACEtD,KAAA,CAAAS,aAAA,CAACL,WAAW,EAAAuC,QAAA;IACVY,EAAE,EAAE7B,QAAQ,GAAG,KAAK,GAAG;EAAK,GACvB2B,UAAU;IACfvC,GAAG,EAAEA;EAAmC,IAEvCmC,qBAAqB,EACrBE,aAAa,GAAG3C,SAAS,gBAAGR,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAuC,QAAA,MAAI,CACtB,CAAC;AAElB,CAAC,CAAC;AAEF7B,YAAY,CAAC8C,WAAW,GAAG,aAAa;AAExCX,KAAK,CAACW,WAAW,GAAG,mBAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAM5C,WAAW,GAAGV,gBAAgB,CACzC;EACE2C,KAAK,EAALA;AACF,CAAC,EACDnC,YACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","names":["ChevronRight","useId","React","useI18nContext","addSubcomponents","StyledContainer","StyledCrumb","StyledList","StyledSeparator","BreadcrumbVariants","separator","createElement","Breadcrumbs_","forwardRef","Breadcrumbs","_ref","ref","children","_ref$variant","variant","LEGACY","providedId","id","providedAriaLabel","providedAriaLabelledBy","props","_objectWithoutProperties","_excluded","i18n","generatedId","selfLabelId","undefined","ariaLabel","t","ariaLabelledBy","concat","childrenArray","Children","toArray","isLegacy","navigationList","filter","child","map","i","isLast","length","aria","active","cloneProps","_objectSpread","Fragment","key","cloneElement","_extends","Crumb","_ref2","_ref2$variant","_excluded2","childrenWithAriaAttrs","isValidElement","showSeparator","hasOwnProperty","crumbProps","_excluded3","as","displayName"],"sources":["../../src/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { ChevronRight } from '@procore/core-icons'\nimport { useId } from '@react-aria/utils'\nimport type { ForwardedRef } from 'react'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledContainer,\n StyledCrumb,\n StyledList,\n StyledSeparator,\n} from './Breadcrumbs.styles'\nimport type { BreadcrumbCrumbProps, BreadcrumbProps } from './Breadcrumbs.types'\nimport { BreadcrumbVariants } from './Breadcrumbs.types'\n\nconst separator = (\n <StyledSeparator aria-hidden={true}>\n <ChevronRight />\n </StyledSeparator>\n)\n\nconst Breadcrumbs_ = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLDivElement> & BreadcrumbProps\n>(function Breadcrumbs(\n {\n children,\n variant = BreadcrumbVariants.LEGACY,\n id: providedId,\n 'aria-label': providedAriaLabel,\n 'aria-labelledby': providedAriaLabelledBy,\n ...props\n },\n ref\n) {\n const i18n = useI18nContext()\n const generatedId = useId()\n const selfLabelId =\n providedId || (providedAriaLabelledBy ? generatedId : undefined)\n const ariaLabel = providedAriaLabel ?? i18n.t('core.breadcrumbs.label')\n const ariaLabelledBy = providedAriaLabelledBy\n ? `${providedAriaLabelledBy} ${selfLabelId}`\n : undefined\n const childrenArray = React.Children.toArray(children)\n const isLegacy = variant === BreadcrumbVariants.LEGACY\n\n const navigationList = childrenArray\n .filter((child) => child)\n .map((child, i) => {\n const isLast = i === childrenArray.length - 1\n const aria = {\n 'aria-current': (child as React.ReactElement).props.active || undefined,\n }\n const cloneProps = isLegacy\n ? aria\n : {\n ...aria,\n isLast,\n variant,\n }\n\n return (\n <React.Fragment key={`separator-${i}`}>\n {React.cloneElement(child as React.ReactElement, cloneProps)}\n {isLegacy && !isLast ? separator : <></>}\n </React.Fragment>\n )\n })\n return (\n <StyledContainer\n id={selfLabelId}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n {...props}\n ref={ref}\n >\n {!isLegacy ? <StyledList>{navigationList}</StyledList> : navigationList}\n </StyledContainer>\n )\n})\n\ntype NavCrumbProps = React.LiHTMLAttributes<HTMLLIElement> &\n BreadcrumbCrumbProps\ntype LegacyCrumbProps = React.HTMLAttributes<HTMLDivElement> &\n BreadcrumbCrumbProps\n\nexport const Crumb = React.forwardRef<\n HTMLLIElement | HTMLDivElement,\n NavCrumbProps | LegacyCrumbProps\n>(function Crumb({ variant = BreadcrumbVariants.LEGACY, ...props }, ref) {\n const childrenWithAriaAttrs = React.Children.toArray(props.children)\n .filter((child) => child)\n .map((child) => {\n if (React.isValidElement<{ 'aria-current'?: boolean }>(child)) {\n return React.cloneElement(child, {\n 'aria-current': props.active || undefined,\n })\n } else {\n return child\n }\n })\n const isLegacy = variant === BreadcrumbVariants.LEGACY\n const showSeparator =\n !isLegacy && props.hasOwnProperty('isLast') && !props.isLast\n const { isLast, ...crumbProps } = props\n return (\n <StyledCrumb\n as={isLegacy ? 'div' : 'li'}\n {...(crumbProps as NavCrumbProps)}\n ref={ref as ForwardedRef<HTMLLIElement>}\n >\n {childrenWithAriaAttrs}\n {showSeparator ? separator : <></>}\n </StyledCrumb>\n )\n})\n\nBreadcrumbs_.displayName = 'Breadcrumbs'\n\nCrumb.displayName = 'Breadcrumbs.Crumb'\n\n// * @codemod npx ...\n// * @deprecatedSince 12.x.x\n/**\n * @description We use breadcrumbs to provide navigational information to the user on every\n * tool’s child page in Procore. The last element is the active view.\n *\n * __Important!__ Prior versions support placing an anchor element in-between `Breadcrumbs` and\n * `Breadcrumbs.Crumb` elements; going forward anchor elements must be inside `Breadcrumbs.Crumb`.\n *\n * Additionally __set `variant=\"list\"` to enable list markup__, it will eventually be the default\n * but requires users to place hyperlinks inside the `Breadcrumbs.Crumb` (`li`) to be proper HTML.\n\nBEFORE:\n```\n<Breadcrumbs>\n <a href=\"#\">\n <Breadcrumbs.Crumb>Deprecated</Breadcrumbs.Crumb>\n </a>\n</Breadcrumbs>\n```\n\nAFTER:\n```\n<Breadcrumbs variant=\"list\">\n <Breadcrumbs.Crumb>\n <a href=\"#\">Standard</a>\n </Breadcrumbs.Crumb>\n</Breadcrumbs>\n```\n\n @a11y Required Use `variant=\"list\"` for semantic `ol`, `li` elements in addition to `nav`.\n\n When multiple breadcrumbs are in view, it is recommended each have an `aria-label` or `aria-labelledby`.\n When breadcrumbs are rendered inside specialized containers (for example `Panel`, `Modal`,\n `Tearsheet`) set `aria-labelledby` to the container heading id and provide a stable `id` on\n `Breadcrumbs`. This allows self-reference label chaining so the final accessible name includes\n both the container context and the breadcrumb label.\n\n Example:\n ```\n <Breadcrumbs aria-labelledby=\"panel-title\" variant=\"list\">\n ...\n </Breadcrumbs>\n <H2 id=\"panel-title\">Panel Title</H2>\n ```\n\n @example\n <Breadcrumbs variant=\"list\">\n <Breadcrumbs.Crumb>\n <a href=\"#\">List Items</a>\n </Breadcrumbs.Crumb>\n <Breadcrumbs.Crumb active>\n Current Item\n <Breadcrumbs.Crumb>\n </Breadcrumbs>\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-breadcrumbs--demo)\n\n @see [Design Guidelines](https://design.procore.com/breadcrumb)\n\n */\nexport const Breadcrumbs = addSubcomponents(\n {\n Crumb,\n },\n Breadcrumbs_\n)\n"],"mappings":"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"}
|
|
@@ -4,19 +4,19 @@ import { colors } from '../_styles/colors';
|
|
|
4
4
|
import { spacing } from '../_styles/spacing';
|
|
5
5
|
export var StyledContainer = /*#__PURE__*/styled.nav.withConfig({
|
|
6
6
|
displayName: "StyledContainer",
|
|
7
|
-
componentId: "core-
|
|
7
|
+
componentId: "core-12_52_0__sc-1q6nqfz-0"
|
|
8
8
|
})(["color:", ";display:flex;align-items:center;a,a:hover{display:inline-flex;text-decoration:none;}"], colors.gray50);
|
|
9
9
|
export var StyledList = /*#__PURE__*/styled.ol.withConfig({
|
|
10
10
|
displayName: "StyledList",
|
|
11
|
-
componentId: "core-
|
|
11
|
+
componentId: "core-12_52_0__sc-1q6nqfz-1"
|
|
12
12
|
})(["display:flex;margin:0;padding-left:0;"]);
|
|
13
13
|
export var StyledSeparator = /*#__PURE__*/styled.div.withConfig({
|
|
14
14
|
displayName: "StyledSeparator",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_52_0__sc-1q6nqfz-2"
|
|
16
16
|
})(["align-items:center;display:inline-flex;justify-content:center;margin:0px ", "px;"], spacing.xs);
|
|
17
17
|
export var StyledCrumb = /*#__PURE__*/styled.li.withConfig({
|
|
18
18
|
displayName: "StyledCrumb",
|
|
19
|
-
componentId: "core-
|
|
19
|
+
componentId: "core-12_52_0__sc-1q6nqfz-3"
|
|
20
20
|
})(["", " align-items:center;color:", ";display:inline-flex;min-height:24px;text-decoration:none;&:hover{cursor:", ";text-decoration:", ";}> a{color:", ";", "}", ""], getTypographyIntent('body'), colors.gray45, function (_ref) {
|
|
21
21
|
var active = _ref.active;
|
|
22
22
|
return active ? 'default' : 'pointer';
|
|
@@ -12,6 +12,15 @@ export declare enum BreadcrumbVariants {
|
|
|
12
12
|
LEGACY = "legacy"
|
|
13
13
|
}
|
|
14
14
|
export interface BreadcrumbProps extends Props {
|
|
15
|
+
/**
|
|
16
|
+
* @a11y Required when multiple breadcrumb navs are present on a single page. Reference the h2 or h3.
|
|
17
|
+
* Chains the provided id with the breadcrumbs's internal label 'Breadcrumbs' to read them together.
|
|
18
|
+
*/
|
|
19
|
+
'aria-labelledby'?: string;
|
|
20
|
+
/**
|
|
21
|
+
* @defaultValue "Breadcrumbs"
|
|
22
|
+
*/
|
|
23
|
+
'aria-label'?: string;
|
|
15
24
|
/**
|
|
16
25
|
* @a11y Set `variant="list"` to enable `ol` and `li` semantic markup with the crumbs. Add the hyperlinks **inside** each crumb as children.
|
|
17
26
|
* @description Enables the next version of semantic breacrumbs. Set `variant="list"` and add the hyperlinks **inside** each crumb as children.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.types.js","names":["BreadcrumbVariants"],"sources":["../../src/Breadcrumbs/Breadcrumbs.types.ts"],"sourcesContent":["import type { Props } from '../_utils/types'\n\n/**\n * @deprecated The `list` variant describes the change better, `ol` `li`. The component always renders a `nav`.\n *\n * BEFORE variant=\"nav\"\n * AFTER variant=\"list\"\n * @deprecatedSince 11.33.0\n * @since 11.6.0\n */\nexport enum BreadcrumbVariants {\n NAV = 'nav',\n LEGACY = 'legacy',\n}\n\nexport interface BreadcrumbProps extends Props {\n /**\n * @a11y Set `variant=\"list\"` to enable `ol` and `li` semantic markup with the crumbs. Add the hyperlinks **inside** each crumb as children.\n * @description Enables the next version of semantic breacrumbs. Set `variant=\"list\"` and add the hyperlinks **inside** each crumb as children.\n *\n * BEFORE undefined | variant=\"nav\", anchors outside crumb\n *\n * AFTER variant=\"list\", anchors inside crumb\n * @since 11.33.0\n */\n variant?: BreadcrumbVariants | 'list'\n}\n\nexport interface BreadcrumbCrumbProps extends Props {\n /**\n * @since 10.19.0\n */\n active?: boolean\n /**\n * @since 11.6.0\n */\n isLast?: boolean\n /**\n * @deprecated Handled by parent prop. Use `Breadcrumb variant=\"list\"` with anchors INSIDE `Breadcumb.Crumb`.\n * @since 11.6.0\n */\n variant?: BreadcrumbVariants\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA"}
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.types.js","names":["BreadcrumbVariants"],"sources":["../../src/Breadcrumbs/Breadcrumbs.types.ts"],"sourcesContent":["import type { Props } from '../_utils/types'\n\n/**\n * @deprecated The `list` variant describes the change better, `ol` `li`. The component always renders a `nav`.\n *\n * BEFORE variant=\"nav\"\n * AFTER variant=\"list\"\n * @deprecatedSince 11.33.0\n * @since 11.6.0\n */\nexport enum BreadcrumbVariants {\n NAV = 'nav',\n LEGACY = 'legacy',\n}\n\nexport interface BreadcrumbProps extends Props {\n /**\n * @a11y Required when multiple breadcrumb navs are present on a single page. Reference the h2 or h3.\n * Chains the provided id with the breadcrumbs's internal label 'Breadcrumbs' to read them together.\n */\n 'aria-labelledby'?: string\n /**\n * @defaultValue \"Breadcrumbs\"\n */\n 'aria-label'?: string\n /**\n * @a11y Set `variant=\"list\"` to enable `ol` and `li` semantic markup with the crumbs. Add the hyperlinks **inside** each crumb as children.\n * @description Enables the next version of semantic breacrumbs. Set `variant=\"list\"` and add the hyperlinks **inside** each crumb as children.\n *\n * BEFORE undefined | variant=\"nav\", anchors outside crumb\n *\n * AFTER variant=\"list\", anchors inside crumb\n * @since 11.33.0\n */\n variant?: BreadcrumbVariants | 'list'\n}\n\nexport interface BreadcrumbCrumbProps extends Props {\n /**\n * @since 10.19.0\n */\n active?: boolean\n /**\n * @since 11.6.0\n */\n isLast?: boolean\n /**\n * @deprecated Handled by parent prop. Use `Breadcrumb variant=\"list\"` with anchors INSIDE `Breadcumb.Crumb`.\n * @since 11.6.0\n */\n variant?: BreadcrumbVariants\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA"}
|
|
@@ -5,7 +5,6 @@ import { getTypographyIntent, typographyWeights } from '../Typography';
|
|
|
5
5
|
import { borderRadius } from '../_styles/borderRadius';
|
|
6
6
|
import { colors } from '../_styles/colors';
|
|
7
7
|
import { mediaIE11Hack } from '../_styles/media';
|
|
8
|
-
import { focusable } from '../_styles/mixins';
|
|
9
8
|
import { spacing } from '../_styles/spacing';
|
|
10
9
|
var heights = {
|
|
11
10
|
sm: 24,
|
|
@@ -25,8 +24,8 @@ var typographySizes = {
|
|
|
25
24
|
};
|
|
26
25
|
var buttonTextColors = {
|
|
27
26
|
primary: {
|
|
28
|
-
main: colors.white,
|
|
29
|
-
disabled: colors.white
|
|
27
|
+
main: "var(--core-button-primary-text-color, ".concat(colors.white, ")"),
|
|
28
|
+
disabled: "var(--core-button-primary-disabled-text-color, ".concat(colors.white, ")")
|
|
30
29
|
},
|
|
31
30
|
secondary: {
|
|
32
31
|
main: colors.gray15,
|
|
@@ -47,9 +46,9 @@ var buttonTextColors = {
|
|
|
47
46
|
};
|
|
48
47
|
var buttonBGColors = {
|
|
49
48
|
primary: {
|
|
50
|
-
main: colors.orange50,
|
|
51
|
-
hover: colors.orange45,
|
|
52
|
-
disabled: colors.orange85
|
|
49
|
+
main: "var(--core-button-primary-background-color, ".concat(colors.orange50, ")"),
|
|
50
|
+
hover: "var(--core-button-primary-hover-background-color, ".concat(colors.orange45, ")"),
|
|
51
|
+
disabled: "var(--core-button-primary-disabled-background-color, ".concat(colors.orange85, ")")
|
|
53
52
|
},
|
|
54
53
|
secondary: {
|
|
55
54
|
main: colors.gray90,
|
|
@@ -93,11 +92,11 @@ function getColors(loading, variant) {
|
|
|
93
92
|
}
|
|
94
93
|
export var StyledContent = /*#__PURE__*/styled.span.withConfig({
|
|
95
94
|
displayName: "StyledContent",
|
|
96
|
-
componentId: "core-
|
|
95
|
+
componentId: "core-12_52_0__sc-c5bhwh-0"
|
|
97
96
|
})(["align-items:center;display:flex;overflow:hidden;"]);
|
|
98
97
|
export var StyledSpinner = /*#__PURE__*/styled(Spinner).withConfig({
|
|
99
98
|
displayName: "StyledSpinner",
|
|
100
|
-
componentId: "core-
|
|
99
|
+
componentId: "core-12_52_0__sc-c5bhwh-1"
|
|
101
100
|
})(["box-sizing:border-box;display:none;position:absolute;transform:translateZ(0);@media ", "{left:50%;top:50%;", "}"], mediaIE11Hack, function (_ref) {
|
|
102
101
|
var size = _ref.size;
|
|
103
102
|
var margin = -1 * (spinnerDimensions[size !== null && size !== void 0 ? size : defaultSpinnerSize] / 2);
|
|
@@ -105,14 +104,14 @@ export var StyledSpinner = /*#__PURE__*/styled(Spinner).withConfig({
|
|
|
105
104
|
});
|
|
106
105
|
export var StyledLabel = /*#__PURE__*/styled.span.withConfig({
|
|
107
106
|
displayName: "StyledLabel",
|
|
108
|
-
componentId: "core-
|
|
107
|
+
componentId: "core-12_52_0__sc-c5bhwh-2"
|
|
109
108
|
})(["overflow:hidden;padding:0 6px;text-overflow:ellipsis;white-space:nowrap;& + span{padding-left:0;}"]);
|
|
110
109
|
export function getButtonStyles(block, disabled, loading, size, variant) {
|
|
111
|
-
return css(["", " ", "
|
|
110
|
+
return css(["", " &.focus,&:focus{outline:2px solid ", ";outline-offset:var(--core-button-focus-outline-offset,-1px);}", " ", " align-items:center;border-radius:", "px;border:0;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;flex-shrink:0;font-family:inherit;font-weight:", ";height:", "px;justify-content:center;margin:0;overflow:hidden;padding:0 ", "px;position:relative;pointer-events:", ";text-overflow:ellipsis;user-select:", ";vertical-align:middle;white-space:nowrap;width:", ";[data-icon-prop='true']{pointer-events:none;height:", "px;width:", "px;}", ""], getTypographyIntent(typographySizes[size]), colors.blue40, variant === 'UNSAFE_helixNav' && css(["&.focus,&:focus{outline:none;box-shadow:0 0 0 2px ", ";}"], colors.blue70), getColors(loading, variant), borderRadius.md, typographyWeights.semibold, heights[size], paddingX[size], disabled || loading ? 'none' : 'inherit', disabled || loading ? 'none' : 'inherit', block && '100%', size === 'sm' ? 16 : 24, size === 'sm' ? 16 : 24, loading && css(["", "{pointer-events:none;visibility:hidden;}", "{display:block;}"], StyledContent, StyledSpinner));
|
|
112
111
|
}
|
|
113
112
|
export var StyledButton = /*#__PURE__*/styled.button.withConfig({
|
|
114
113
|
displayName: "StyledButton",
|
|
115
|
-
componentId: "core-
|
|
114
|
+
componentId: "core-12_52_0__sc-c5bhwh-3"
|
|
116
115
|
})(["", ""], function (_ref2) {
|
|
117
116
|
var $block = _ref2.$block,
|
|
118
117
|
disabled = _ref2.disabled,
|
|
@@ -123,7 +122,7 @@ export var StyledButton = /*#__PURE__*/styled.button.withConfig({
|
|
|
123
122
|
});
|
|
124
123
|
export var StyledLinkButton = /*#__PURE__*/styled.a.withConfig({
|
|
125
124
|
displayName: "StyledLinkButton",
|
|
126
|
-
componentId: "core-
|
|
125
|
+
componentId: "core-12_52_0__sc-c5bhwh-4"
|
|
127
126
|
})(["&,&:hover{text-decoration:none;}", ""], function (_ref3) {
|
|
128
127
|
var $block = _ref3.$block,
|
|
129
128
|
$disabled = _ref3.$disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.styles.js","names":["styled","css","defaultSpinnerSize","Spinner","spinnerDimensions","getTypographyIntent","typographyWeights","borderRadius","colors","mediaIE11Hack","focusable","spacing","heights","sm","md","lg","paddingX","xs","typographySizes","buttonTextColors","primary","main","white","disabled","secondary","gray15","gray70","tertiary","tertiaryContrast","blue45","UNSAFE_helixNav","gray40","buttonBGColors","orange50","hover","orange45","orange85","gray90","gray85","gray94","gray50","getBGColor","variant","console","error","concat","getTextColor","getColors","loading","StyledContent","span","withConfig","displayName","componentId","StyledSpinner","_ref","size","margin","StyledLabel","getButtonStyles","block","blue70","semibold","StyledButton","button","_ref2","$block","$loading","$size","$variant","StyledLinkButton","a","_ref3","$disabled"],"sources":["../../src/Button/Button.styles.ts"],"sourcesContent":["import type React from 'react'\nimport styled, { css } from 'styled-components'\nimport { defaultSpinnerSize, Spinner } from '../Spinner/Spinner'\nimport { spinnerDimensions } from '../Spinner/Spinner.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport type { Intent } from '../Typography/Typography.types'\nimport { borderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { mediaIE11Hack } from '../_styles/media'\nimport { focusable } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\nimport type {\n ButtonSizes,\n ButtonVariant,\n LinkButtonProps,\n SizingObject,\n} from './Button.types'\n\nconst heights: SizingObject = {\n sm: 24,\n md: 36,\n lg: 48,\n}\n\nconst paddingX: SizingObject = {\n sm: spacing.xs,\n md: 6, // TODO one-off\n lg: spacing.md,\n}\n\nconst typographySizes: { [key in ButtonSizes]: Intent } = {\n sm: 'small',\n md: 'body',\n lg: 'h3',\n}\n\nconst buttonTextColors: {\n [key in ButtonVariant]: { main: string; disabled: string }\n} = {\n primary: {\n main: colors.white,\n disabled: colors.white,\n },\n secondary: {\n main: colors.gray15,\n disabled: colors.gray70,\n },\n tertiary: {\n main: colors.gray15,\n disabled: colors.gray70,\n },\n tertiaryContrast: {\n main: colors.blue45,\n disabled: colors.blue45,\n },\n UNSAFE_helixNav: {\n main: colors.white,\n disabled: colors.gray40,\n },\n}\n\nconst buttonBGColors: {\n [key in ButtonVariant]: {\n main: string\n hover: string\n disabled: string\n }\n} = {\n primary: {\n main: colors.orange50,\n hover: colors.orange45,\n disabled: colors.orange85,\n },\n secondary: {\n main: colors.gray90,\n hover: colors.gray85,\n disabled: colors.gray94,\n },\n tertiary: {\n main: 'transparent',\n hover: colors.gray90,\n disabled: 'transparent',\n },\n tertiaryContrast: {\n main: 'transparent',\n hover: 'white',\n disabled: 'transparent',\n },\n UNSAFE_helixNav: {\n main: 'transparent',\n hover: colors.gray50,\n disabled: 'transparent',\n },\n}\n\nexport function getBGColor(variant: ButtonVariant) {\n const colors = buttonBGColors[variant]\n if (!colors) {\n console.error(\n `@procore/core-react: Using invalid Button variant ${variant}. Please update, falling back to primary.`\n )\n return buttonBGColors.primary\n }\n return colors\n}\n\nexport function getTextColor(variant: ButtonVariant) {\n const colors = buttonTextColors[variant]\n if (!colors) {\n console.error(\n `@procore/core-react: Using invalid Button variant ${variant}. Please update, falling back to primary.`\n )\n return buttonTextColors.primary\n }\n return colors\n}\n\nfunction getColors(loading: boolean, variant: ButtonVariant) {\n return css`\n background: ${loading\n ? getBGColor(variant).hover\n : getBGColor(variant).main};\n\n color: ${getTextColor(variant).main};\n\n &.active,\n &:active,\n &.focus,\n &:focus,\n &.hover,\n &:hover {\n background: ${getBGColor(variant).hover};\n color: ${getTextColor(variant).main};\n }\n\n &:disabled,\n &[aria-disabled='true'] {\n background: ${loading\n ? getBGColor(variant).hover\n : getBGColor(variant).disabled};\n color: ${getTextColor(variant).disabled};\n }\n `\n}\n\nexport const StyledContent = styled.span`\n align-items: center;\n display: flex;\n overflow: hidden;\n`\n\nexport const StyledSpinner = styled(Spinner)`\n box-sizing: border-box;\n display: none;\n position: absolute;\n transform: translateZ(0);\n\n @media ${mediaIE11Hack} {\n left: 50%;\n top: 50%;\n ${({ size }) => {\n const margin = -1 * (spinnerDimensions[size ?? defaultSpinnerSize] / 2)\n return css`\n margin-left: ${margin}px;\n margin-top: ${margin}px;\n `\n }}\n }\n`\n\nexport const StyledLabel = styled.span`\n overflow: hidden;\n padding: 0 6px; // TODO one-off\n text-overflow: ellipsis;\n white-space: nowrap;\n\n & + span {\n padding-left: 0;\n }\n`\n\ninterface StyledButtonProps {\n disabled: boolean\n $block: boolean\n $loading: boolean\n $size: ButtonSizes\n $variant: ButtonVariant\n}\n\nexport function getButtonStyles(\n block: boolean,\n disabled: boolean,\n loading: boolean,\n size: ButtonSizes,\n variant: ButtonVariant\n) {\n return css`\n ${getTypographyIntent(typographySizes[size])}\n\n ${focusable}\n\n /**\n TODO: This might be a new pattern for focus states,\n but leaving it just here for now\n */\n ${variant === 'UNSAFE_helixNav' &&\n css`\n &.focus,\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ${colors.blue70};\n }\n `}\n\n ${getColors(loading, variant)}\n\n align-items: center;\n border-radius: ${borderRadius.md}px;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: inline-flex;\n flex-direction: row;\n flex-shrink: 0;\n font-family: inherit;\n font-weight: ${typographyWeights.semibold};\n height: ${heights[size]}px;\n justify-content: center;\n margin: 0;\n overflow: hidden;\n padding: 0 ${paddingX[size]}px;\n position: relative;\n pointer-events: ${disabled || loading ? 'none' : 'inherit'};\n text-overflow: ellipsis;\n user-select: ${disabled || loading ? 'none' : 'inherit'};\n vertical-align: middle;\n white-space: nowrap;\n width: ${block && '100%'};\n\n [data-icon-prop='true'] {\n pointer-events: none;\n height: ${size === 'sm' ? 16 : 24}px;\n width: ${size === 'sm' ? 16 : 24}px;\n }\n\n ${loading &&\n css`\n ${StyledContent} {\n pointer-events: none;\n visibility: hidden;\n }\n\n ${StyledSpinner} {\n display: block;\n }\n `}\n `\n}\n\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${({ $block, disabled, $loading, $size, $variant }) =>\n getButtonStyles($block, disabled, $loading, $size, $variant)}\n`\n\ninterface StyledLinkButtonProps\n extends Pick<StyledButtonProps, '$block' | '$size' | '$variant'> {\n as?: LinkButtonProps['as']\n children?: React.ReactNode\n href?: string\n $disabled: boolean\n ref?: React.RefCallback<HTMLAnchorElement>\n}\n\nexport const StyledLinkButton = styled.a<StyledLinkButtonProps>`\n &,\n &:hover {\n text-decoration: none;\n }\n\n ${({ $block, $disabled, $size, $variant }) =>\n getButtonStyles($block, $disabled, false, $size, $variant)}\n`\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.styles.js","names":["styled","css","defaultSpinnerSize","Spinner","spinnerDimensions","getTypographyIntent","typographyWeights","borderRadius","colors","mediaIE11Hack","spacing","heights","sm","md","lg","paddingX","xs","typographySizes","buttonTextColors","primary","main","concat","white","disabled","secondary","gray15","gray70","tertiary","tertiaryContrast","blue45","UNSAFE_helixNav","gray40","buttonBGColors","orange50","hover","orange45","orange85","gray90","gray85","gray94","gray50","getBGColor","variant","console","error","getTextColor","getColors","loading","StyledContent","span","withConfig","displayName","componentId","StyledSpinner","_ref","size","margin","StyledLabel","getButtonStyles","block","blue40","blue70","semibold","StyledButton","button","_ref2","$block","$loading","$size","$variant","StyledLinkButton","a","_ref3","$disabled"],"sources":["../../src/Button/Button.styles.ts"],"sourcesContent":["import type React from 'react'\nimport styled, { css } from 'styled-components'\nimport { defaultSpinnerSize, Spinner } from '../Spinner/Spinner'\nimport { spinnerDimensions } from '../Spinner/Spinner.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport type { Intent } from '../Typography/Typography.types'\nimport { borderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { mediaIE11Hack } from '../_styles/media'\nimport { spacing } from '../_styles/spacing'\nimport type {\n ButtonSizes,\n ButtonVariant,\n LinkButtonProps,\n SizingObject,\n} from './Button.types'\n\nconst heights: SizingObject = {\n sm: 24,\n md: 36,\n lg: 48,\n}\n\nconst paddingX: SizingObject = {\n sm: spacing.xs,\n md: 6, // TODO one-off\n lg: spacing.md,\n}\n\nconst typographySizes: { [key in ButtonSizes]: Intent } = {\n sm: 'small',\n md: 'body',\n lg: 'h3',\n}\n\nconst buttonTextColors: {\n [key in ButtonVariant]: { main: string; disabled: string }\n} = {\n primary: {\n main: `var(--core-button-primary-text-color, ${colors.white})`,\n disabled: `var(--core-button-primary-disabled-text-color, ${colors.white})`,\n },\n secondary: {\n main: colors.gray15,\n disabled: colors.gray70,\n },\n tertiary: {\n main: colors.gray15,\n disabled: colors.gray70,\n },\n tertiaryContrast: {\n main: colors.blue45,\n disabled: colors.blue45,\n },\n UNSAFE_helixNav: {\n main: colors.white,\n disabled: colors.gray40,\n },\n}\n\nconst buttonBGColors: {\n [key in ButtonVariant]: {\n main: string\n hover: string\n disabled: string\n }\n} = {\n primary: {\n main: `var(--core-button-primary-background-color, ${colors.orange50})`,\n hover: `var(--core-button-primary-hover-background-color, ${colors.orange45})`,\n disabled: `var(--core-button-primary-disabled-background-color, ${colors.orange85})`,\n },\n secondary: {\n main: colors.gray90,\n hover: colors.gray85,\n disabled: colors.gray94,\n },\n tertiary: {\n main: 'transparent',\n hover: colors.gray90,\n disabled: 'transparent',\n },\n tertiaryContrast: {\n main: 'transparent',\n hover: 'white',\n disabled: 'transparent',\n },\n UNSAFE_helixNav: {\n main: 'transparent',\n hover: colors.gray50,\n disabled: 'transparent',\n },\n}\n\nexport function getBGColor(variant: ButtonVariant) {\n const colors = buttonBGColors[variant]\n if (!colors) {\n console.error(\n `@procore/core-react: Using invalid Button variant ${variant}. Please update, falling back to primary.`\n )\n return buttonBGColors.primary\n }\n return colors\n}\n\nexport function getTextColor(variant: ButtonVariant) {\n const colors = buttonTextColors[variant]\n if (!colors) {\n console.error(\n `@procore/core-react: Using invalid Button variant ${variant}. Please update, falling back to primary.`\n )\n return buttonTextColors.primary\n }\n return colors\n}\n\nfunction getColors(loading: boolean, variant: ButtonVariant) {\n return css`\n background: ${loading\n ? getBGColor(variant).hover\n : getBGColor(variant).main};\n\n color: ${getTextColor(variant).main};\n\n &.active,\n &:active,\n &.focus,\n &:focus,\n &.hover,\n &:hover {\n background: ${getBGColor(variant).hover};\n color: ${getTextColor(variant).main};\n }\n\n &:disabled,\n &[aria-disabled='true'] {\n background: ${loading\n ? getBGColor(variant).hover\n : getBGColor(variant).disabled};\n color: ${getTextColor(variant).disabled};\n }\n `\n}\n\nexport const StyledContent = styled.span`\n align-items: center;\n display: flex;\n overflow: hidden;\n`\n\nexport const StyledSpinner = styled(Spinner)`\n box-sizing: border-box;\n display: none;\n position: absolute;\n transform: translateZ(0);\n\n @media ${mediaIE11Hack} {\n left: 50%;\n top: 50%;\n ${({ size }) => {\n const margin = -1 * (spinnerDimensions[size ?? defaultSpinnerSize] / 2)\n return css`\n margin-left: ${margin}px;\n margin-top: ${margin}px;\n `\n }}\n }\n`\n\nexport const StyledLabel = styled.span`\n overflow: hidden;\n padding: 0 6px; // TODO one-off\n text-overflow: ellipsis;\n white-space: nowrap;\n\n & + span {\n padding-left: 0;\n }\n`\n\ninterface StyledButtonProps {\n disabled: boolean\n $block: boolean\n $loading: boolean\n $size: ButtonSizes\n $variant: ButtonVariant\n}\n\nexport function getButtonStyles(\n block: boolean,\n disabled: boolean,\n loading: boolean,\n size: ButtonSizes,\n variant: ButtonVariant\n) {\n return css`\n ${getTypographyIntent(typographySizes[size])}\n\n &.focus,\n &:focus {\n outline: 2px solid ${colors.blue40};\n outline-offset: var(--core-button-focus-outline-offset, -1px);\n }\n\n /**\n TODO: This might be a new pattern for focus states,\n but leaving it just here for now\n */\n ${variant === 'UNSAFE_helixNav' &&\n css`\n &.focus,\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ${colors.blue70};\n }\n `}\n\n ${getColors(loading, variant)}\n\n align-items: center;\n border-radius: ${borderRadius.md}px;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: inline-flex;\n flex-direction: row;\n flex-shrink: 0;\n font-family: inherit;\n font-weight: ${typographyWeights.semibold};\n height: ${heights[size]}px;\n justify-content: center;\n margin: 0;\n overflow: hidden;\n padding: 0 ${paddingX[size]}px;\n position: relative;\n pointer-events: ${disabled || loading ? 'none' : 'inherit'};\n text-overflow: ellipsis;\n user-select: ${disabled || loading ? 'none' : 'inherit'};\n vertical-align: middle;\n white-space: nowrap;\n width: ${block && '100%'};\n\n [data-icon-prop='true'] {\n pointer-events: none;\n height: ${size === 'sm' ? 16 : 24}px;\n width: ${size === 'sm' ? 16 : 24}px;\n }\n\n ${loading &&\n css`\n ${StyledContent} {\n pointer-events: none;\n visibility: hidden;\n }\n\n ${StyledSpinner} {\n display: block;\n }\n `}\n `\n}\n\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${({ $block, disabled, $loading, $size, $variant }) =>\n getButtonStyles($block, disabled, $loading, $size, $variant)}\n`\n\ninterface StyledLinkButtonProps\n extends Pick<StyledButtonProps, '$block' | '$size' | '$variant'> {\n as?: LinkButtonProps['as']\n children?: React.ReactNode\n href?: string\n $disabled: boolean\n ref?: React.RefCallback<HTMLAnchorElement>\n}\n\nexport const StyledLinkButton = styled.a<StyledLinkButtonProps>`\n &,\n &:hover {\n text-decoration: none;\n }\n\n ${({ $block, $disabled, $size, $variant }) =>\n getButtonStyles($block, $disabled, false, $size, $variant)}\n`\n"],"mappings":"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"}
|