@procore/core-react 12.53.4 → 12.54.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/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.js +2 -0
- package/dist/AvatarStack/AvatarStack.js.map +1 -1
- 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 +1 -0
- package/dist/Banner/Banner.js +31 -14
- package/dist/Banner/Banner.js.map +1 -1
- package/dist/Banner/Banner.styles.d.ts +10 -0
- package/dist/Banner/Banner.styles.js +29 -12
- package/dist/Banner/Banner.styles.js.map +1 -1
- package/dist/Banner/Banner.types.d.ts +1 -1
- package/dist/Banner/Banner.types.js.map +1 -1
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js +1 -1
- package/dist/Banner/index.js.map +1 -1
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +7 -6
- package/dist/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +10 -10
- 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 +11 -9
- package/dist/DetailPage/DetailPage.styles.js.map +1 -1
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.js +8 -0
- package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- 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 +17 -14
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js.map +1 -1
- package/dist/FileSelect/FileExplorer/FileExplorerModal.js +4 -2
- package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +5 -4
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js.map +1 -1
- 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 +6 -5
- package/dist/FileSelect/LocalSource/LocalSource.styles.js.map +1 -1
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +13 -11
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js.map +1 -1
- 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 +12 -11
- package/dist/ListPage/ListPage.styles.js.map +1 -1
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +11 -11
- package/dist/Modal/Modal.js +0 -2
- package/dist/Modal/Modal.js.map +1 -1
- package/dist/Modal/Modal.styles.js +44 -32
- package/dist/Modal/Modal.styles.js.map +1 -1
- 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/OverlayTrigger/OverlayTrigger.js +12 -3
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.types.d.ts +14 -0
- package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
- package/dist/OverlayTrigger/a11yPresets.d.ts +19 -3
- package/dist/OverlayTrigger/a11yPresets.js +16 -6
- package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
- package/dist/PageLayout/PageLayout.js +15 -4
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.js +35 -34
- package/dist/PageLayout/PageLayout.styles.js.map +1 -1
- package/dist/PageLayout/PageLayout.types.d.ts +1 -0
- package/dist/PageLayout/PageLayout.types.js.map +1 -1
- package/dist/PageLayout/PageLayout.utils.d.ts +11 -0
- package/dist/PageLayout/PageLayout.utils.js +45 -0
- package/dist/PageLayout/PageLayout.utils.js.map +1 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js +2 -2
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js.map +1 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.d.ts +5 -0
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +9 -2
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js.map +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 +17 -16
- package/dist/Panel/Panel.styles.js.map +1 -1
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +5 -5
- package/dist/Popover/Popover.js +6 -1
- package/dist/Popover/Popover.js.map +1 -1
- 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.js +5 -2
- package/dist/Select/Select.js.map +1 -1
- 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 +15 -13
- package/dist/SplitViewCard/SplitViewCard.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.js +8 -0
- package/dist/SuperSelect/SuperSelect.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +40 -40
- package/dist/SuperSelect/useSuperSelect.js +20 -4
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.js +63 -2
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/Table.styles.js +31 -30
- package/dist/Table/Table.styles.js.map +1 -1
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.js +11 -3
- package/dist/Tabs/Tabs.js.map +1 -1
- package/dist/Tabs/Tabs.styles.js +16 -16
- package/dist/Tearsheet/Tearsheet.js +4 -3
- package/dist/Tearsheet/Tearsheet.js.map +1 -1
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.d.ts +1 -0
- package/dist/Thumbnail/Thumbnail.styles.js +22 -22
- package/dist/Thumbnail/Thumbnail.styles.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 +11 -9
- package/dist/Title/Title.styles.js.map +1 -1
- 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 +15 -10
- package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.js +7 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- 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 +33 -13
- package/dist/_hooks/I18n.js +2 -0
- package/dist/_hooks/I18n.js.map +1 -1
- package/dist/_locales/de-DE.json +1 -0
- package/dist/_locales/en-AU.json +1 -0
- package/dist/_locales/en-CA.json +1 -0
- package/dist/_locales/en-GB.json +1 -0
- package/dist/_locales/en.json +3 -1
- package/dist/_locales/es-ES.json +1 -0
- package/dist/_locales/es.json +1 -0
- package/dist/_locales/fr-CA.json +1 -0
- package/dist/_locales/fr-FR.json +1 -0
- package/dist/_locales/is-IS.json +1 -0
- package/dist/_locales/it-IT.json +1 -0
- package/dist/_locales/ja-JP.json +1 -0
- package/dist/_locales/nb-NO.json +2 -1
- package/dist/_locales/pl-PL.json +1 -0
- package/dist/_locales/pseudo.json +3 -1
- package/dist/_locales/pt-BR.json +1 -0
- package/dist/_locales/pt-PT.json +3 -2
- package/dist/_locales/th-TH.json +1 -0
- package/dist/_locales/zh-SG.json +1 -0
- package/dist/_locales/zh-TW.json +2 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +5 -4
- package/dist/_storyHelpers_/components/StoryGrid.js.map +1 -1
- package/dist/_storyHelpers_/highZoom.d.ts +68 -0
- package/dist/_storyHelpers_/highZoom.js +72 -0
- package/dist/_storyHelpers_/highZoom.js.map +1 -0
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +7 -7
- 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 +18 -18
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +12 -12
- 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 +17 -17
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/DetailPageTemplate/DetailPageTemplate.types.json +3 -3
- package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +37 -37
- package/dist/_typedoc/Dropzone/Dropzone.types.json +50 -50
- 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 +17 -17
- 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 +783 -783
- 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 +81 -81
- 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 +90 -90
- package/dist/_typedoc/Modal/Modal.types.json +48 -48
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +34 -34
- 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 +44 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +42 -42
- 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/SettingsPageTemplate/SettingsPageTemplate.types.json +3 -3
- 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 +108 -108
- package/dist/_typedoc/Tabs/Tablist.types.json +10 -10
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +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/ToolLandingPageTemplate/ToolLandingPageTemplate.types.json +2 -2
- package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
- package/dist/_typedoc/Tree/Tree.types.json +132 -132
- 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/package.json +2 -2
- package/dist/_hooks/ScrollLock.d.ts +0 -1
- package/dist/_hooks/ScrollLock.js +0 -31
- package/dist/_hooks/ScrollLock.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayTrigger.types.js","names":[],"sources":["../../src/OverlayTrigger/OverlayTrigger.types.ts"],"sourcesContent":["import type { OverlayProps } from '../Overlay/Overlay'\nimport type { PortalProps } from '../Portal/Portal.types'\nimport type { BeforeCallback } from '../_hooks/DelayedCallback'\nimport type { TriggerRenderProps } from '../_hooks/Trigger'\nimport type { VisibilityConfig } from '../_hooks/Visibility'\n\nexport type OverlayTriggerRole =\n | 'dialog'\n | 'menu'\n | 'listbox'\n | 'tooltip'\n | 'none'\n\nexport type PickedOverlayProps = Pick<\n OverlayProps,\n 'canFlip' | 'padding' | 'placement' | 'shrinkOverlay' | 'arrow'\n>\n\nexport type PickedTriggerProps = Pick<\n TriggerRenderProps,\n 'children' | 'trigger'\n>\n\nexport type PickedTriggerRenderProps = Pick<TriggerRenderProps, 'children'>\n\nexport type PickedVisibilityProps = Pick<\n VisibilityConfig,\n 'afterHide' | 'afterShow' | 'initialIsVisible'\n>\n\nexport interface OverlayTriggerProps\n extends PickedOverlayProps,\n PickedTriggerProps,\n PickedTriggerRenderProps,\n PickedVisibilityProps,\n Pick<PortalProps, 'container'> {\n ['aria-describedby']?: string\n ['aria-details']?: string\n ['aria-label']?: string\n ['aria-labelledby']?: string\n /**\n * Boolean to enable code to apply aria-expanded to the source element\n * @since 12.24.0\n */\n trackAriaExpanded?: boolean\n /**\n * The callback to run before the overlay is hidden. Returning\n * `false` will prevent hiding.\n * ```\n * (e: event) => boolean | Promise | undefined\n * ```\n * @since 10.19.0\n */\n beforeHide?: BeforeCallback\n /**\n * The callback to run before the overlay is shown. Returning\n * `false` will prevent showing.\n * ```\n * (e: event) => boolean | Promise | undefined\n * ```\n * @since 10.19.0\n */\n beforeShow?: BeforeCallback\n\n /**\n * Additional refs to check for clickOutside behavior\n * @since 10.19.0\n */\n clickOutsideIgnoreRefs?: React.RefObject<HTMLElement>[]\n\n /**\n * The delay when hiding the overlay\n * @since 10.19.0\n */\n hideDelay?: number\n\n /**\n * Keys to hide the overlay when the overlay is focused\n * @a11y OverlayTrigger by default closes on tab. To remove tab from closing\n * and have only Esc keys, set \"containFocus\" to true, or opt-in to a full dialog role.\n * @since 10.19.0\n */\n hideKeys?: {\n overlay: string[]\n target: string[]\n }\n overlay: React.ReactNode\n\n /**\n * Restore focus to the target after the overlay is hidden.\n * 'core-react' will use internal logic to restore focus,\n * 'react-aria-focus-scope' will use 'FocusScope' component from '@react-aria',\n * true will use both.\n * @default true\n * @since 10.19.0\n */\n restoreFocusOnHide?: boolean | 'core-react' | 'react-aria-focus-scope'\n\n /**\n * The delay when showing the overlay\n * @since 10.19.0\n */\n showDelay?: number\n\n /**\n * Keys to show the overlay when the target is focused\n * @since 10.19.0\n */\n showKeys?: string[]\n\n /**\n * Toggles overlay visibility\n * @since 11.2.0\n */\n overlayRef?: React.Ref<OverlayTriggerRef>\n\n /**\n * Accessibility props.\n * @a11y May opionate \"autoFocus\" and \"containFocus\"\n * @since 11.2.0\n */\n role?: OverlayTriggerRole\n\n /**\n * Whether to auto focus the first focusable element in the overlay on mount.\n * True by default for role \"dialog\"\n * @since 11.5.0\n */\n autoFocus?: boolean\n\n /**\n * Whether to contain focus inside the overlay, so users cannot move focus outside, for example in a modal dialog.\n * True by default for role \"dialog\"\n * @since 11.5.0\n * */\n containFocus?: boolean\n\n /**\n * By default, role and id are applied to wrapper. But has knowledge of\n * Set to true, if you want OverlayTrigger to place them on your overlay component.\n *\n * @default false\n * @since 11.5.0\n */\n passA11yPropsToOverlay?: boolean\n /**\n * Optional id for the overlay element.\n * Useful when the parent component needs a stable id\n * to link the trigger (aria-controls) with the overlay (e.g. listbox).\n *\n * @since 12.36.1\n */\n overlayId?: string\n}\n\nexport interface OverlayTriggerRef {\n /**\n * Show visibility\n * @since 11.2.0\n */\n show: () => void\n /**\n * Hide overlay\n * @since 11.2.0\n */\n hide: () => void\n}\n\n/**\n * @deprecatedSince 11.2.0\n * @deprecated To be replaced by OverlayTriggerProps#overlayRef in future release\n */\nexport type DeprecatedOverlayTriggerRef = HTMLElement\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OverlayTrigger.types.js","names":[],"sources":["../../src/OverlayTrigger/OverlayTrigger.types.ts"],"sourcesContent":["import type { OverlayProps } from '../Overlay/Overlay'\nimport type { PortalProps } from '../Portal/Portal.types'\nimport type { BeforeCallback } from '../_hooks/DelayedCallback'\nimport type { TriggerRenderProps } from '../_hooks/Trigger'\nimport type { VisibilityConfig } from '../_hooks/Visibility'\n\nexport type OverlayTriggerRole =\n | 'dialog'\n | 'menu'\n | 'listbox'\n | 'tooltip'\n | 'none'\n\nexport type PickedOverlayProps = Pick<\n OverlayProps,\n 'canFlip' | 'padding' | 'placement' | 'shrinkOverlay' | 'arrow'\n>\n\nexport type PickedTriggerProps = Pick<\n TriggerRenderProps,\n 'children' | 'trigger'\n>\n\nexport type PickedTriggerRenderProps = Pick<TriggerRenderProps, 'children'>\n\nexport type PickedVisibilityProps = Pick<\n VisibilityConfig,\n 'afterHide' | 'afterShow' | 'initialIsVisible'\n>\n\nexport interface OverlayTriggerProps\n extends PickedOverlayProps,\n PickedTriggerProps,\n PickedTriggerRenderProps,\n PickedVisibilityProps,\n Pick<PortalProps, 'container'> {\n ['aria-describedby']?: string\n ['aria-details']?: string\n ['aria-label']?: string\n ['aria-labelledby']?: string\n /**\n * Boolean to enable code to apply aria-expanded to the source element\n * @since 12.24.0\n */\n trackAriaExpanded?: boolean\n /**\n * The callback to run before the overlay is hidden. Returning\n * `false` will prevent hiding.\n * ```\n * (e: event) => boolean | Promise | undefined\n * ```\n * @since 10.19.0\n */\n beforeHide?: BeforeCallback\n /**\n * The callback to run before the overlay is shown. Returning\n * `false` will prevent showing.\n * ```\n * (e: event) => boolean | Promise | undefined\n * ```\n * @since 10.19.0\n */\n beforeShow?: BeforeCallback\n\n /**\n * Additional refs to check for clickOutside behavior\n * @since 10.19.0\n */\n clickOutsideIgnoreRefs?: React.RefObject<HTMLElement>[]\n\n /**\n * The delay when hiding the overlay\n * @since 10.19.0\n */\n hideDelay?: number\n\n /**\n * Keys to hide the overlay when the overlay is focused\n * @a11y OverlayTrigger by default closes on tab. To remove tab from closing\n * and have only Esc keys, set \"containFocus\" to true, or opt-in to a full dialog role.\n * @since 10.19.0\n */\n hideKeys?: {\n overlay: string[]\n target: string[]\n }\n overlay: React.ReactNode\n\n /**\n * Restore focus to the target after the overlay is hidden.\n * 'core-react' will use internal logic to restore focus,\n * 'react-aria-focus-scope' will use 'FocusScope' component from '@react-aria',\n * true will use both.\n * @default true\n * @since 10.19.0\n */\n restoreFocusOnHide?: boolean | 'core-react' | 'react-aria-focus-scope'\n\n /**\n * The delay when showing the overlay\n * @since 10.19.0\n */\n showDelay?: number\n\n /**\n * Keys to show the overlay when the target is focused\n * @since 10.19.0\n */\n showKeys?: string[]\n\n /**\n * Toggles overlay visibility\n * @since 11.2.0\n */\n overlayRef?: React.Ref<OverlayTriggerRef>\n\n /**\n * Accessibility props.\n * @a11y May opionate \"autoFocus\" and \"containFocus\"\n * @since 11.2.0\n */\n role?: OverlayTriggerRole\n\n /**\n * Whether to auto focus the first focusable element in the overlay on mount.\n * True by default for role \"dialog\"\n * @since 11.5.0\n */\n autoFocus?: boolean\n\n /**\n * Whether to contain focus inside the overlay, so users cannot move focus outside, for example in a modal dialog.\n * True by default for role \"dialog\"\n * @since 11.5.0\n * */\n containFocus?: boolean\n\n /**\n * By default, role and id are applied to wrapper. But has knowledge of\n * Set to true, if you want OverlayTrigger to place them on your overlay component.\n *\n * @default false\n * @since 11.5.0\n */\n passA11yPropsToOverlay?: boolean\n /**\n * Optional id for the overlay element.\n * Useful when the parent component needs a stable id\n * to link the trigger (aria-controls) with the overlay (e.g. listbox).\n *\n * @since 12.36.1\n */\n overlayId?: string\n\n /**\n * When true, locks background scroll (on the document body) while the\n * overlay is visible, following the React Aria overlay pattern. This\n * keeps the overlay from overflowing constrained containers or lagging\n * behind on scroll, since the page itself cannot scroll while it is open.\n *\n * Defaults to true, since most overlays (dropdowns, menus, pickers,\n * flyouts) benefit from this. Set to false for overlays that are not\n * dropdown-like, for example hover/focus-triggered tooltips and popovers,\n * where locking background scroll would be unexpected.\n * @default true\n * @since 12.54.0\n */\n scrollLock?: boolean\n}\n\nexport interface OverlayTriggerRef {\n /**\n * Show visibility\n * @since 11.2.0\n */\n show: () => void\n /**\n * Hide overlay\n * @since 11.2.0\n */\n hide: () => void\n}\n\n/**\n * @deprecatedSince 11.2.0\n * @deprecated To be replaced by OverlayTriggerProps#overlayRef in future release\n */\nexport type DeprecatedOverlayTriggerRef = HTMLElement\n"],"mappings":"","ignoreList":[]}
|
|
@@ -36,7 +36,15 @@ type ModalDialogConfig = DialogBase & {
|
|
|
36
36
|
*/
|
|
37
37
|
'aria-modal': true;
|
|
38
38
|
};
|
|
39
|
-
type ModalDialogLikeConfig = NonModalDialogConfig | ModalDialogConfig
|
|
39
|
+
type ModalDialogLikeConfig = (NonModalDialogConfig | ModalDialogConfig) & {
|
|
40
|
+
/**
|
|
41
|
+
* Whether background scroll should be locked while this dialog-like
|
|
42
|
+
* overlay is open, using React Aria's `usePreventScroll`.
|
|
43
|
+
* @default the `isOpen` value
|
|
44
|
+
* @since 12.54.0
|
|
45
|
+
*/
|
|
46
|
+
scrollLock?: boolean;
|
|
47
|
+
};
|
|
40
48
|
type OverlayTriggerA11yConfig = LabelConfig & {
|
|
41
49
|
/**
|
|
42
50
|
* Assure `aria-hidden` is not applied. A code side-effect
|
|
@@ -50,6 +58,14 @@ type OverlayTriggerA11yConfig = LabelConfig & {
|
|
|
50
58
|
canPropOverlayUp: boolean;
|
|
51
59
|
isOpen: boolean;
|
|
52
60
|
role?: OverlayTriggerRole;
|
|
61
|
+
/**
|
|
62
|
+
* Whether background scroll should be locked while the overlay is open.
|
|
63
|
+
* Combined with `isOpen` internally, so the lock only ever engages while
|
|
64
|
+
* both this is true and the overlay is actually visible.
|
|
65
|
+
* @default true
|
|
66
|
+
* @since 12.54.0
|
|
67
|
+
*/
|
|
68
|
+
scrollLock?: boolean;
|
|
53
69
|
};
|
|
54
70
|
/**
|
|
55
71
|
* Manages labelling for an element and the other DOM. Defaults an ID for `aria-labelledby` usage.
|
|
@@ -169,7 +185,7 @@ export declare function useLabelledPopup({ 'aria-describedby': ariaDescribedby,
|
|
|
169
185
|
* Modal dialogs are when content is displayed and the user's interaction is limited to only that section until it is dismissed.
|
|
170
186
|
* [MDN aria modal](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-modal).
|
|
171
187
|
*/
|
|
172
|
-
export declare function useModalDialogLike({ 'aria-describedby': ariaDescribedby, 'aria-details': ariaDetails, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, 'aria-modal': ariaModal, id, isOpen, role, }: ModalDialogLikeConfig): {
|
|
188
|
+
export declare function useModalDialogLike({ 'aria-describedby': ariaDescribedby, 'aria-details': ariaDetails, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, 'aria-modal': ariaModal, id, isOpen, role, scrollLock, }: ModalDialogLikeConfig): {
|
|
173
189
|
dialogProps: {
|
|
174
190
|
id: string | undefined;
|
|
175
191
|
role: "dialog" | "alertdialog";
|
|
@@ -195,7 +211,7 @@ export declare function useModalDialogLike({ 'aria-describedby': ariaDescribedby
|
|
|
195
211
|
* outside of the element (like by portals) will get `aria-hidden=true`
|
|
196
212
|
* to replace the `aria-modal=true` `inert` nature.
|
|
197
213
|
* @see useModalDialogLike */
|
|
198
|
-
export declare function useOverlayTriggerA11y({ alwaysAriaVisible, 'aria-describedby': ariaDescribedby, 'aria-details': ariaDetails, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, canPropOverlayUp, id: id_, isOpen, role, }: OverlayTriggerA11yConfig): {
|
|
214
|
+
export declare function useOverlayTriggerA11y({ alwaysAriaVisible, 'aria-describedby': ariaDescribedby, 'aria-details': ariaDetails, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, canPropOverlayUp, id: id_, isOpen, role, scrollLock, }: OverlayTriggerA11yConfig): {
|
|
199
215
|
focusScopeProps: {
|
|
200
216
|
autoFocus?: boolean;
|
|
201
217
|
contain?: boolean;
|
|
@@ -4,6 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
import { usePreventScroll } from '@react-aria/overlays';
|
|
7
8
|
import { useId, useLabels } from '@react-aria/utils';
|
|
8
9
|
var emptyObj = {};
|
|
9
10
|
var returnEmpty = function returnEmpty() {
|
|
@@ -189,7 +190,9 @@ export function useModalDialogLike(_ref7) {
|
|
|
189
190
|
id = _ref7.id,
|
|
190
191
|
isOpen = _ref7.isOpen,
|
|
191
192
|
_ref7$role = _ref7.role,
|
|
192
|
-
role = _ref7$role === void 0 ? 'dialog' : _ref7$role
|
|
193
|
+
role = _ref7$role === void 0 ? 'dialog' : _ref7$role,
|
|
194
|
+
_ref7$scrollLock = _ref7.scrollLock,
|
|
195
|
+
scrollLock = _ref7$scrollLock === void 0 ? isOpen : _ref7$scrollLock;
|
|
193
196
|
var _useLabelled2 = useLabelled({
|
|
194
197
|
'aria-describedby': ariaDescribedby,
|
|
195
198
|
'aria-details': ariaDetails,
|
|
@@ -206,9 +209,13 @@ export function useModalDialogLike(_ref7) {
|
|
|
206
209
|
tabIndex: -1
|
|
207
210
|
});
|
|
208
211
|
|
|
209
|
-
//
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
+
// Locks background scroll (UXI-2599) while this dialog-like overlay is
|
|
213
|
+
// open. `usePreventScroll` reference-counts across simultaneous calls, so
|
|
214
|
+
// nested/parallel overlays (e.g. a Select open inside a Modal) coordinate
|
|
215
|
+
// correctly through a single shared lock.
|
|
216
|
+
usePreventScroll({
|
|
217
|
+
isDisabled: !scrollLock
|
|
218
|
+
});
|
|
212
219
|
|
|
213
220
|
// Fills aria-modal=true
|
|
214
221
|
// import { ariaHideOutside } from '@react-aria/overlays'
|
|
@@ -245,7 +252,9 @@ export function useOverlayTriggerA11y(_ref8) {
|
|
|
245
252
|
canPropOverlayUp = _ref8.canPropOverlayUp,
|
|
246
253
|
id_ = _ref8.id,
|
|
247
254
|
isOpen = _ref8.isOpen,
|
|
248
|
-
role = _ref8.role
|
|
255
|
+
role = _ref8.role,
|
|
256
|
+
_ref8$scrollLock = _ref8.scrollLock,
|
|
257
|
+
scrollLock = _ref8$scrollLock === void 0 ? true : _ref8$scrollLock;
|
|
249
258
|
if (
|
|
250
259
|
// @ts-expect-error Checking for invalid usage
|
|
251
260
|
role === 'alertdialog') {
|
|
@@ -276,7 +285,8 @@ export function useOverlayTriggerA11y(_ref8) {
|
|
|
276
285
|
'aria-modal': undefined,
|
|
277
286
|
// OverlayTrigger only supports non-modal dialogs
|
|
278
287
|
id: id,
|
|
279
|
-
isOpen: isOpen
|
|
288
|
+
isOpen: isOpen,
|
|
289
|
+
scrollLock: scrollLock && isOpen
|
|
280
290
|
}),
|
|
281
291
|
dialogProps = _useModalDialogLike.dialogProps,
|
|
282
292
|
labelProps = _useModalDialogLike.labelProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11yPresets.js","names":["useId","useLabels","emptyObj","returnEmpty","a11yPresets","haspopup","getOverlayProps","_ref","role","overlayId","id","getTriggerProps","_ref2","isVisible","undefined","tooltip","_ref3","_ref4","getA11yPreset","useLabelled","props","_ref5","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","ariaLabelOnly","labelledId","widgetId","fieldProps","descriptionProps","labelProps","widgetProps","_objectSpread","useLabelledPopup","_ref6","_getA11yPreset$getTri","_getA11yPreset","_getA11yPreset$getOve","_getA11yPreset2","id_","isOpen","_ref6$type","type","popupRole","popupId_","popupId","presetArgs","triggerProps","call","overlayProps","_useLabelled","popupProps","useModalDialogLike","_ref7","ariaModal","_ref7$role","_useLabelled2","dialogProps","tabIndex","focusScopeProps","autoFocus","contain","restoreFocus","useOverlayTriggerA11y","_ref8","alwaysAriaVisible","canPropOverlayUp","console","error","isDialog","_getA11yPreset3","overlayA11yProps","wrapperA11yProps","_useModalDialogLike","portalProps","wrapperFinalProps","focusScopeFinalProps","wrapperProps"],"sources":["../../src/OverlayTrigger/a11yPresets.ts"],"sourcesContent":["import { useId, useLabels } from '@react-aria/utils'\nimport type { AriaAttributes } from 'react'\nimport type { OverlayTriggerRole } from './OverlayTrigger.types'\n\nconst emptyObj = {}\nconst returnEmpty: GetA11yProps = () => ({})\n\ntype GetA11yProps = (props: {\n role: OverlayTriggerRole\n isVisible: boolean\n overlayId: string\n}) => AriaAttributes & { id?: string }\n\nconst a11yPresets: Record<\n 'tooltip' | 'haspopup',\n {\n getOverlayProps: GetA11yProps\n getTriggerProps: GetA11yProps\n }\n> = {\n haspopup: {\n getOverlayProps: ({ role, overlayId }) => ({\n id: overlayId,\n role,\n }),\n getTriggerProps: ({ role, isVisible, overlayId }) => ({\n 'aria-expanded': isVisible,\n 'aria-controls': isVisible ? overlayId : undefined,\n 'aria-haspopup': role as 'dialog' | 'listbox' | 'menu',\n }),\n },\n tooltip: {\n getOverlayProps: ({ overlayId }) => ({\n role: 'tooltip',\n id: overlayId,\n }),\n getTriggerProps: ({ isVisible, overlayId }) => ({\n 'aria-describedby': isVisible ? overlayId : undefined,\n // 'aria-expanded': isVisible,\n }),\n },\n}\n\nexport function getA11yPreset(role?: OverlayTriggerRole | 'alertdialog') {\n switch (role) {\n case 'alertdialog':\n case 'dialog':\n case 'listbox':\n case 'menu':\n return a11yPresets.haspopup\n case 'tooltip':\n return a11yPresets.tooltip\n case 'none':\n return {\n getOverlayProps: (() => ({ role: 'none' })) as GetA11yProps,\n getTriggerProps: returnEmpty,\n }\n default:\n return {\n getOverlayProps: returnEmpty,\n getTriggerProps: returnEmpty,\n }\n }\n}\n\ntype LabelConfig = {\n 'aria-describedby'?: string\n 'aria-details'?: string\n 'aria-labelledby'?: string\n 'aria-label'?: string\n /**\n * ID for the widget itself\n */\n id?: string\n}\n\ntype DialogBase = LabelConfig & {\n isOpen: boolean\n role?: 'dialog' | 'alertdialog'\n}\n\ntype NonModalDialogConfig = DialogBase & {\n 'aria-modal'?: never | false\n}\n\ntype ModalDialogConfig = DialogBase & {\n /**\n * @a11y This will add `aria-modal={true}` and rely on browsers to\n * handle making outside content inert.\n * @default false\n */\n 'aria-modal': true\n // ref: React.RefObject<HTMLElement>\n}\n\ntype ModalDialogLikeConfig = NonModalDialogConfig | ModalDialogConfig\n\ntype OverlayTriggerA11yConfig = LabelConfig & {\n /**\n * Assure `aria-hidden` is not applied. A code side-effect\n * from `ariaHideOutside` hiding everthing outside the scope.\n */\n alwaysAriaVisible?: boolean\n /**\n * When properties should be passed to the overlay UI itself,\n * and not the wrapper element.\n */\n canPropOverlayUp: boolean\n isOpen: boolean\n role?: OverlayTriggerRole\n}\n\n/**\n * Manages labelling for an element and the other DOM. Defaults an ID for `aria-labelledby` usage.\n *\n * When `aria-label` and `aria-labelledby` both exist, it combines them into `aria-labelledby` for a screen reader chain.\n * @link [W3 naming with aria-labelledby](https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/#naming_with_aria-labelledby)\n */\nexport function useLabelled(props?: LabelConfig) {\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n } = props || (emptyObj as LabelConfig)\n const ariaLabelOnly = ariaLabel && !ariaLabelledby\n\n // Generate an ID. We want to use this unless they are using only aria-label\n const labelledId = useId(ariaLabelledby)\n\n // Merges aria-label and aria-labelledby into aria-labelledby when both exist\n const widgetId = useId(id)\n let fieldProps = useLabels({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelOnly ? undefined : labelledId,\n id: widgetId,\n })\n\n return {\n descriptionProps: { id: ariaDescribedby },\n labelProps: { id: ariaLabelOnly ? undefined : labelledId },\n widgetProps: {\n ...fieldProps,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n },\n }\n}\n\n/**\n * Cover the label links for the trigger (button), the popup element (dialog), and the popup element title (heading).\n * Similar to [React Aria useOverlayTrigger](https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/overlays/src/useOverlayTrigger.ts)\n * but with element title support.\n * @link [MDN aria-haspopup](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup)\n */\nexport function useLabelledPopup({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id: id_,\n isOpen,\n type = 'button',\n popupRole,\n popupId: popupId_,\n}: LabelConfig & {\n isOpen: boolean\n popupId?: string\n type?: 'button' | 'combobox' // Role? Not used. Show concept that popups manage 2 roles\n popupRole: 'dialog' | 'menu' | 'listbox'\n}) {\n /** Web spec default for aria-haspopup=true is menu, unless element has role combobox, which have an implicit aria-haspopup value of listbox. */\n // const popupRole = popupRole_ || type === 'combobox' ? 'listbox' : 'menu'\n const id = useId(id_)\n const popupId = useId(popupId_)\n\n const presetArgs = {\n isVisible: isOpen,\n role: popupRole,\n overlayId: popupId,\n }\n\n const triggerProps = getA11yPreset(popupRole).getTriggerProps?.(presetArgs)\n const overlayProps = getA11yPreset(popupRole).getOverlayProps?.(presetArgs)\n\n const { labelProps, widgetProps } = useLabelled({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n })\n\n return {\n labelProps,\n popupProps: { role: popupRole, ...widgetProps, ...overlayProps },\n triggerProps,\n }\n}\n\n/**\n * For dialog experiences:\n * - Has role dialog and aria linked title props\n * - Focus management props to work with FocusScope\n *\n * For modal dialog experiences (full screen locked experiences):\n * - what dialog above does\n * - adds aria-modal=\"true\"\n * - this hook does not determine where to mount or how many modals are open\n *\n * For either experiences, you still MUST support a way to close by mouse and keyboard.\n *\n * Using `aria-modal`, you need to keep additional overlay content inside, so\n * portals must be smart enough to know where other overlays\n * like tooltips or toasts should go to remain visible to screen readers (inside the aria-modal).\n *\n * Setting aria-modal=\"true\" tells assistive technologies to let the user know the ability to interact with,\n * or access other content on the page requires the modal dialog to be closed or otherwise lose focus.\n * Modal dialogs are when content is displayed and the user's interaction is limited to only that section until it is dismissed.\n * [MDN aria modal](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-modal).\n */\nexport function useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n 'aria-modal': ariaModal,\n id,\n isOpen,\n role = 'dialog',\n}: ModalDialogLikeConfig) {\n const { labelProps, widgetProps } = useLabelled({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n })\n\n const dialogProps = {\n 'aria-modal': ariaModal,\n ...widgetProps,\n id,\n role,\n tabIndex: -1,\n }\n\n // usePreventScroll({\n // isDisabled: ariaModal ? !isOpen : true,\n // })\n\n // Fills aria-modal=true\n // import { ariaHideOutside } from '@react-aria/overlays'\n // React.useLayoutEffect(() => {\n // if (isModal && isOpen && ref.current) {\n // // Could add additional visible element refs here\n // return ariaHideOutside([ref.current])\n // }\n // }, [isModal, isOpen, ref])\n\n return {\n dialogProps,\n labelProps,\n focusScopeProps: {\n autoFocus: true,\n contain: true,\n restoreFocus: true,\n },\n }\n}\n\n/**\n * Takes many roles and determines props necessary for DOM/components.\n * **Side effect of role=\"dialog\"**, current and any content added later\n * outside of the element (like by portals) will get `aria-hidden=true`\n * to replace the `aria-modal=true` `inert` nature.\n * @see useModalDialogLike */\nexport function useOverlayTriggerA11y({\n alwaysAriaVisible,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n // can we remove this? have it role based? be optional?\n canPropOverlayUp,\n id: id_,\n isOpen,\n role,\n}: OverlayTriggerA11yConfig) {\n if (\n // @ts-expect-error Checking for invalid usage\n role === 'alertdialog'\n ) {\n console.error(\n '@procore/core-react: useOverlayTriggerA11y role alertdialog is not supported because it requires aria-modal to be true. This is intended for non-modal dialogs.'\n )\n }\n const isDialog = role === 'dialog'\n\n const id = useId(id_)\n\n const { getTriggerProps, getOverlayProps } = getA11yPreset(role)\n\n const triggerProps = getTriggerProps?.({\n isVisible: isOpen,\n role: role!,\n overlayId: id,\n })\n\n const overlayA11yProps = getOverlayProps?.({\n isVisible: isOpen,\n role: role!,\n overlayId: id,\n })\n\n const wrapperA11yProps = !canPropOverlayUp ? overlayA11yProps : emptyObj\n const overlayProps = canPropOverlayUp ? overlayA11yProps : emptyObj\n\n const { dialogProps, labelProps, focusScopeProps } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n 'aria-modal': undefined, // OverlayTrigger only supports non-modal dialogs\n id,\n isOpen,\n })\n\n /** This is a code side-effect from ariaHideOutside hiding everthing */\n const portalProps =\n role === 'tooltip' || alwaysAriaVisible // || !role\n ? { 'data-react-aria-top-layer': true, 'data-live-announcer': true }\n : emptyObj\n\n /**\n * If it is a dialog, we can merge the dialog props with any haspopup props\n */\n const wrapperFinalProps = isDialog\n ? {\n ...wrapperA11yProps,\n ...dialogProps,\n }\n : wrapperA11yProps\n\n /**\n * If it is a dialog, we have opinions on `FocusScope` props.\n */\n const focusScopeFinalProps = isDialog\n ? focusScopeProps\n : (emptyObj as {\n autoFocus?: boolean\n contain?: boolean\n restoreFocus?: boolean\n })\n\n return {\n focusScopeProps: focusScopeFinalProps,\n labelProps,\n overlayProps,\n portalProps,\n triggerProps,\n wrapperProps: wrapperFinalProps,\n }\n}\n\n// WIP Example combobox\n// function useCombox({\n// controls,\n// isOpen = false,\n// }: {\n// controls: 'dialog' | 'menu' | 'listbox'\n// isOpen: boolean\n// }) {\n// const { labelProps, popupProps, triggerProps } = useLabelledPopup({\n// role: controls,\n// type: 'combobox',\n// isOpen,\n// })\n// dispatch between elements.\n// NOTE combobox has two labels, that could be different\n// one for the trigger input (typically the form label)\n// second for the thing it controls (listbox, dialog)\n// - label id=1\n// - input role='combobox' aria-labelledby=1\n// - div role={controls} aria-label\n// Also, any icon only buttons like clear or open should have a\n// label and -1 tabindex. No nested interactive roles.\n// }\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"a11yPresets.js","names":["usePreventScroll","useId","useLabels","emptyObj","returnEmpty","a11yPresets","haspopup","getOverlayProps","_ref","role","overlayId","id","getTriggerProps","_ref2","isVisible","undefined","tooltip","_ref3","_ref4","getA11yPreset","useLabelled","props","_ref5","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","ariaLabelOnly","labelledId","widgetId","fieldProps","descriptionProps","labelProps","widgetProps","_objectSpread","useLabelledPopup","_ref6","_getA11yPreset$getTri","_getA11yPreset","_getA11yPreset$getOve","_getA11yPreset2","id_","isOpen","_ref6$type","type","popupRole","popupId_","popupId","presetArgs","triggerProps","call","overlayProps","_useLabelled","popupProps","useModalDialogLike","_ref7","ariaModal","_ref7$role","_ref7$scrollLock","scrollLock","_useLabelled2","dialogProps","tabIndex","isDisabled","focusScopeProps","autoFocus","contain","restoreFocus","useOverlayTriggerA11y","_ref8","alwaysAriaVisible","canPropOverlayUp","_ref8$scrollLock","console","error","isDialog","_getA11yPreset3","overlayA11yProps","wrapperA11yProps","_useModalDialogLike","portalProps","wrapperFinalProps","focusScopeFinalProps","wrapperProps"],"sources":["../../src/OverlayTrigger/a11yPresets.ts"],"sourcesContent":["import { usePreventScroll } from '@react-aria/overlays'\nimport { useId, useLabels } from '@react-aria/utils'\nimport type { AriaAttributes } from 'react'\nimport type { OverlayTriggerRole } from './OverlayTrigger.types'\n\nconst emptyObj = {}\nconst returnEmpty: GetA11yProps = () => ({})\n\ntype GetA11yProps = (props: {\n role: OverlayTriggerRole\n isVisible: boolean\n overlayId: string\n}) => AriaAttributes & { id?: string }\n\nconst a11yPresets: Record<\n 'tooltip' | 'haspopup',\n {\n getOverlayProps: GetA11yProps\n getTriggerProps: GetA11yProps\n }\n> = {\n haspopup: {\n getOverlayProps: ({ role, overlayId }) => ({\n id: overlayId,\n role,\n }),\n getTriggerProps: ({ role, isVisible, overlayId }) => ({\n 'aria-expanded': isVisible,\n 'aria-controls': isVisible ? overlayId : undefined,\n 'aria-haspopup': role as 'dialog' | 'listbox' | 'menu',\n }),\n },\n tooltip: {\n getOverlayProps: ({ overlayId }) => ({\n role: 'tooltip',\n id: overlayId,\n }),\n getTriggerProps: ({ isVisible, overlayId }) => ({\n 'aria-describedby': isVisible ? overlayId : undefined,\n // 'aria-expanded': isVisible,\n }),\n },\n}\n\nexport function getA11yPreset(role?: OverlayTriggerRole | 'alertdialog') {\n switch (role) {\n case 'alertdialog':\n case 'dialog':\n case 'listbox':\n case 'menu':\n return a11yPresets.haspopup\n case 'tooltip':\n return a11yPresets.tooltip\n case 'none':\n return {\n getOverlayProps: (() => ({ role: 'none' })) as GetA11yProps,\n getTriggerProps: returnEmpty,\n }\n default:\n return {\n getOverlayProps: returnEmpty,\n getTriggerProps: returnEmpty,\n }\n }\n}\n\ntype LabelConfig = {\n 'aria-describedby'?: string\n 'aria-details'?: string\n 'aria-labelledby'?: string\n 'aria-label'?: string\n /**\n * ID for the widget itself\n */\n id?: string\n}\n\ntype DialogBase = LabelConfig & {\n isOpen: boolean\n role?: 'dialog' | 'alertdialog'\n}\n\ntype NonModalDialogConfig = DialogBase & {\n 'aria-modal'?: never | false\n}\n\ntype ModalDialogConfig = DialogBase & {\n /**\n * @a11y This will add `aria-modal={true}` and rely on browsers to\n * handle making outside content inert.\n * @default false\n */\n 'aria-modal': true\n // ref: React.RefObject<HTMLElement>\n}\n\ntype ModalDialogLikeConfig = (NonModalDialogConfig | ModalDialogConfig) & {\n /**\n * Whether background scroll should be locked while this dialog-like\n * overlay is open, using React Aria's `usePreventScroll`.\n * @default the `isOpen` value\n * @since 12.54.0\n */\n scrollLock?: boolean\n}\n\ntype OverlayTriggerA11yConfig = LabelConfig & {\n /**\n * Assure `aria-hidden` is not applied. A code side-effect\n * from `ariaHideOutside` hiding everthing outside the scope.\n */\n alwaysAriaVisible?: boolean\n /**\n * When properties should be passed to the overlay UI itself,\n * and not the wrapper element.\n */\n canPropOverlayUp: boolean\n isOpen: boolean\n role?: OverlayTriggerRole\n /**\n * Whether background scroll should be locked while the overlay is open.\n * Combined with `isOpen` internally, so the lock only ever engages while\n * both this is true and the overlay is actually visible.\n * @default true\n * @since 12.54.0\n */\n scrollLock?: boolean\n}\n\n/**\n * Manages labelling for an element and the other DOM. Defaults an ID for `aria-labelledby` usage.\n *\n * When `aria-label` and `aria-labelledby` both exist, it combines them into `aria-labelledby` for a screen reader chain.\n * @link [W3 naming with aria-labelledby](https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/#naming_with_aria-labelledby)\n */\nexport function useLabelled(props?: LabelConfig) {\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n } = props || (emptyObj as LabelConfig)\n const ariaLabelOnly = ariaLabel && !ariaLabelledby\n\n // Generate an ID. We want to use this unless they are using only aria-label\n const labelledId = useId(ariaLabelledby)\n\n // Merges aria-label and aria-labelledby into aria-labelledby when both exist\n const widgetId = useId(id)\n let fieldProps = useLabels({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelOnly ? undefined : labelledId,\n id: widgetId,\n })\n\n return {\n descriptionProps: { id: ariaDescribedby },\n labelProps: { id: ariaLabelOnly ? undefined : labelledId },\n widgetProps: {\n ...fieldProps,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n },\n }\n}\n\n/**\n * Cover the label links for the trigger (button), the popup element (dialog), and the popup element title (heading).\n * Similar to [React Aria useOverlayTrigger](https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/overlays/src/useOverlayTrigger.ts)\n * but with element title support.\n * @link [MDN aria-haspopup](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup)\n */\nexport function useLabelledPopup({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id: id_,\n isOpen,\n type = 'button',\n popupRole,\n popupId: popupId_,\n}: LabelConfig & {\n isOpen: boolean\n popupId?: string\n type?: 'button' | 'combobox' // Role? Not used. Show concept that popups manage 2 roles\n popupRole: 'dialog' | 'menu' | 'listbox'\n}) {\n /** Web spec default for aria-haspopup=true is menu, unless element has role combobox, which have an implicit aria-haspopup value of listbox. */\n // const popupRole = popupRole_ || type === 'combobox' ? 'listbox' : 'menu'\n const id = useId(id_)\n const popupId = useId(popupId_)\n\n const presetArgs = {\n isVisible: isOpen,\n role: popupRole,\n overlayId: popupId,\n }\n\n const triggerProps = getA11yPreset(popupRole).getTriggerProps?.(presetArgs)\n const overlayProps = getA11yPreset(popupRole).getOverlayProps?.(presetArgs)\n\n const { labelProps, widgetProps } = useLabelled({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n })\n\n return {\n labelProps,\n popupProps: { role: popupRole, ...widgetProps, ...overlayProps },\n triggerProps,\n }\n}\n\n/**\n * For dialog experiences:\n * - Has role dialog and aria linked title props\n * - Focus management props to work with FocusScope\n *\n * For modal dialog experiences (full screen locked experiences):\n * - what dialog above does\n * - adds aria-modal=\"true\"\n * - this hook does not determine where to mount or how many modals are open\n *\n * For either experiences, you still MUST support a way to close by mouse and keyboard.\n *\n * Using `aria-modal`, you need to keep additional overlay content inside, so\n * portals must be smart enough to know where other overlays\n * like tooltips or toasts should go to remain visible to screen readers (inside the aria-modal).\n *\n * Setting aria-modal=\"true\" tells assistive technologies to let the user know the ability to interact with,\n * or access other content on the page requires the modal dialog to be closed or otherwise lose focus.\n * Modal dialogs are when content is displayed and the user's interaction is limited to only that section until it is dismissed.\n * [MDN aria modal](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-modal).\n */\nexport function useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n 'aria-modal': ariaModal,\n id,\n isOpen,\n role = 'dialog',\n scrollLock = isOpen,\n}: ModalDialogLikeConfig) {\n const { labelProps, widgetProps } = useLabelled({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n })\n\n const dialogProps = {\n 'aria-modal': ariaModal,\n ...widgetProps,\n id,\n role,\n tabIndex: -1,\n }\n\n // Locks background scroll (UXI-2599) while this dialog-like overlay is\n // open. `usePreventScroll` reference-counts across simultaneous calls, so\n // nested/parallel overlays (e.g. a Select open inside a Modal) coordinate\n // correctly through a single shared lock.\n usePreventScroll({\n isDisabled: !scrollLock,\n })\n\n // Fills aria-modal=true\n // import { ariaHideOutside } from '@react-aria/overlays'\n // React.useLayoutEffect(() => {\n // if (isModal && isOpen && ref.current) {\n // // Could add additional visible element refs here\n // return ariaHideOutside([ref.current])\n // }\n // }, [isModal, isOpen, ref])\n\n return {\n dialogProps,\n labelProps,\n focusScopeProps: {\n autoFocus: true,\n contain: true,\n restoreFocus: true,\n },\n }\n}\n\n/**\n * Takes many roles and determines props necessary for DOM/components.\n * **Side effect of role=\"dialog\"**, current and any content added later\n * outside of the element (like by portals) will get `aria-hidden=true`\n * to replace the `aria-modal=true` `inert` nature.\n * @see useModalDialogLike */\nexport function useOverlayTriggerA11y({\n alwaysAriaVisible,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n // can we remove this? have it role based? be optional?\n canPropOverlayUp,\n id: id_,\n isOpen,\n role,\n scrollLock = true,\n}: OverlayTriggerA11yConfig) {\n if (\n // @ts-expect-error Checking for invalid usage\n role === 'alertdialog'\n ) {\n console.error(\n '@procore/core-react: useOverlayTriggerA11y role alertdialog is not supported because it requires aria-modal to be true. This is intended for non-modal dialogs.'\n )\n }\n const isDialog = role === 'dialog'\n\n const id = useId(id_)\n\n const { getTriggerProps, getOverlayProps } = getA11yPreset(role)\n\n const triggerProps = getTriggerProps?.({\n isVisible: isOpen,\n role: role!,\n overlayId: id,\n })\n\n const overlayA11yProps = getOverlayProps?.({\n isVisible: isOpen,\n role: role!,\n overlayId: id,\n })\n\n const wrapperA11yProps = !canPropOverlayUp ? overlayA11yProps : emptyObj\n const overlayProps = canPropOverlayUp ? overlayA11yProps : emptyObj\n\n const { dialogProps, labelProps, focusScopeProps } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n 'aria-modal': undefined, // OverlayTrigger only supports non-modal dialogs\n id,\n isOpen,\n scrollLock: scrollLock && isOpen,\n })\n\n /** This is a code side-effect from ariaHideOutside hiding everthing */\n const portalProps =\n role === 'tooltip' || alwaysAriaVisible // || !role\n ? { 'data-react-aria-top-layer': true, 'data-live-announcer': true }\n : emptyObj\n\n /**\n * If it is a dialog, we can merge the dialog props with any haspopup props\n */\n const wrapperFinalProps = isDialog\n ? {\n ...wrapperA11yProps,\n ...dialogProps,\n }\n : wrapperA11yProps\n\n /**\n * If it is a dialog, we have opinions on `FocusScope` props.\n */\n const focusScopeFinalProps = isDialog\n ? focusScopeProps\n : (emptyObj as {\n autoFocus?: boolean\n contain?: boolean\n restoreFocus?: boolean\n })\n\n return {\n focusScopeProps: focusScopeFinalProps,\n labelProps,\n overlayProps,\n portalProps,\n triggerProps,\n wrapperProps: wrapperFinalProps,\n }\n}\n\n// WIP Example combobox\n// function useCombox({\n// controls,\n// isOpen = false,\n// }: {\n// controls: 'dialog' | 'menu' | 'listbox'\n// isOpen: boolean\n// }) {\n// const { labelProps, popupProps, triggerProps } = useLabelledPopup({\n// role: controls,\n// type: 'combobox',\n// isOpen,\n// })\n// dispatch between elements.\n// NOTE combobox has two labels, that could be different\n// one for the trigger input (typically the form label)\n// second for the thing it controls (listbox, dialog)\n// - label id=1\n// - input role='combobox' aria-labelledby=1\n// - div role={controls} aria-label\n// Also, any icon only buttons like clear or open should have a\n// label and -1 tabindex. No nested interactive roles.\n// }\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
23
23
|
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; }
|
|
24
24
|
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; }
|
|
25
25
|
import { FocusScope } from '@react-aria/focus';
|
|
26
|
+
import { usePreventScroll } from '@react-aria/overlays';
|
|
26
27
|
import throttle from 'lodash.throttle';
|
|
27
28
|
import React from 'react';
|
|
28
29
|
import { AnchorNavigation } from '../AnchorNavigation/AnchorNavigation';
|
|
@@ -37,7 +38,7 @@ import { addSubcomponents } from '../_utils/addSubcomponents';
|
|
|
37
38
|
import { mergeRefs } from '../_utils/mergeRefs';
|
|
38
39
|
import { pageLayoutRootDataAttr } from './PageLayout.constants';
|
|
39
40
|
import { animationDuration, StyledAside, StyledAsideFluidContainer, StyledAsidePanel, StyledBody, StyledContent, StyledFooter, StyledNavigation, StyledPageBanner, StyledPageBreadcrumbs, StyledPageContainer, StyledPageHeader, StyledPageMain, StyledPageTabs, StyledPageTitle } from './PageLayout.styles';
|
|
40
|
-
import { getBottomOffsetForFooterUseCase, getGlobalBottomOffset, getGlobalTopOffset, getIsIntersectingVertically, getRightOffset, wait } from './PageLayout.utils';
|
|
41
|
+
import { getBottomOffsetForFooterUseCase, getGlobalBottomOffset, getGlobalTopOffset, getIsIntersectingVertically, getRightOffset, useIsUsingSmallScreen, wait } from './PageLayout.utils';
|
|
41
42
|
var defaultAsideIsOpen = false;
|
|
42
43
|
export var PageContext = /*#__PURE__*/React.createContext({
|
|
43
44
|
bodyRef: /*#__PURE__*/React.createRef(),
|
|
@@ -240,6 +241,11 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
240
241
|
containerRef = _React$useContext7.containerRef;
|
|
241
242
|
var innerRef = React.useRef(null);
|
|
242
243
|
var panelRef = React.useRef(null);
|
|
244
|
+
|
|
245
|
+
// Small screens: the aside overlays the page, so focus is managed like in a dialog
|
|
246
|
+
var isOverlay = useIsUsingSmallScreen();
|
|
247
|
+
var isOverlayRef = React.useRef(isOverlay);
|
|
248
|
+
isOverlayRef.current = isOverlay;
|
|
243
249
|
var prevIsOpenRef = React.useRef((_ref6 = controlledIsOpen !== null && controlledIsOpen !== void 0 ? controlledIsOpen : contextIsOpen) !== null && _ref6 !== void 0 ? _ref6 : false);
|
|
244
250
|
var _React$useState3 = React.useState(null),
|
|
245
251
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
@@ -304,7 +310,7 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
304
310
|
return wait(animationDuration.panel);
|
|
305
311
|
case 2:
|
|
306
312
|
setAnimationStatus('open');
|
|
307
|
-
if (focusOnOpen && isRealOpenTransition) {
|
|
313
|
+
if ((focusOnOpen || isOverlayRef.current) && isRealOpenTransition) {
|
|
308
314
|
(_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 || _panelRef$current.focus();
|
|
309
315
|
}
|
|
310
316
|
return _context.a(2);
|
|
@@ -362,6 +368,11 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
362
368
|
useUpdateEffect(calculateOffsets, [contextIsOpen, animationStatus]);
|
|
363
369
|
var asideOpen = ['open', 'opening'].includes(animationStatus);
|
|
364
370
|
var asideClosed = ['closed', 'closing'].includes(animationStatus);
|
|
371
|
+
|
|
372
|
+
// The page must not scroll behind the overlaid aside
|
|
373
|
+
usePreventScroll({
|
|
374
|
+
isDisabled: !(isOverlay && asideOpen)
|
|
375
|
+
});
|
|
365
376
|
return isOpen ? /*#__PURE__*/React.createElement(StyledAside, _extends({}, props, {
|
|
366
377
|
$open: asideOpen,
|
|
367
378
|
$closed: asideClosed,
|
|
@@ -370,8 +381,8 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
370
381
|
$open: asideOpen,
|
|
371
382
|
$closed: asideClosed
|
|
372
383
|
}, /*#__PURE__*/React.createElement(FocusScope, {
|
|
373
|
-
contain: containFocus,
|
|
374
|
-
restoreFocus: restoreFocusOnClose
|
|
384
|
+
contain: containFocus || isOverlay,
|
|
385
|
+
restoreFocus: restoreFocusOnClose || isOverlay
|
|
375
386
|
}, /*#__PURE__*/React.createElement(StyledAsidePanel, {
|
|
376
387
|
ref: panelRef,
|
|
377
388
|
tabIndex: -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.js","names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","next","push","isArray","_extends","assign","hasOwnProperty","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","FocusScope","throttle","React","AnchorNavigation","useAnchorNavigationContext","Grid","BaseGrid","Required","TearsheetContext","useResize","useScroll","useUpdateEffect","addSubcomponents","mergeRefs","pageLayoutRootDataAttr","animationDuration","StyledAside","StyledAsideFluidContainer","StyledAsidePanel","StyledBody","StyledContent","StyledFooter","StyledNavigation","StyledPageBanner","StyledPageBreadcrumbs","StyledPageContainer","StyledPageHeader","StyledPageMain","StyledPageTabs","StyledPageTitle","getBottomOffsetForFooterUseCase","getGlobalBottomOffset","getGlobalTopOffset","getIsIntersectingVertically","getRightOffset","wait","defaultAsideIsOpen","PageContext","createContext","bodyRef","createRef","footerRef","containerRef","navigationRef","fillHeight","aside","open","close","isOpen","_ref","gutterX","props","_excluded","createElement","Row","Column","Col","PageHeader","forwardRef","_ref2","ref","transparent","_excluded2","$transparent","PageBody","_ref3","children","_ref3$required","required","_excluded3","_React$useContext","useContext","navigation","content","Children","forEach","child","isValidElement","type","PageBodyNavigation","showLabel","_ref4","_props$sections$lengt","_props$sections","_props$sections2","_props$selected","_props$onSelect","_ref4$minSections","minSections","_excluded4","_React$useContext2","_useAnchorNavigationC","sections","selected","onSelect","sectionsLength","PageFooter","_React$useContext3","_React$useContext4","addListener","_React$useState","useState","_React$useState2","isIntersectingWithBody","setIsIntersectingWithBody","calculateIntersections","current","useEffect","_bodyRef$current","tabWasPressed","onActiveElementChange","document","activeElement","scrollIntoView","onKeyDown","code","setTimeout","addEventListener","_bodyRef$current2","removeEventListener","onScroll","onResize","$isAsideOpen","$hasShadow","PageAside","_ref5","_ref6","controlledIsOpen","_ref5$focusOnOpen","focusOnOpen","_ref5$restoreFocusOnC","restoreFocusOnClose","_ref5$containFocus","containFocus","_excluded5","_React$useContext5","_React$useContext5$as","contextIsOpen","_React$useContext6","tearsheetPlacement","placement","addTearsheetListener","_React$useContext7","innerRef","useRef","panelRef","prevIsOpenRef","_React$useState3","_React$useState4","topOffset","setTopOffset","_React$useState5","_React$useState6","bottomOffset","setBottomOffset","_React$useState7","_React$useState8","rightOffset","setRightOffset","initialIsOpen","_React$useState9","_React$useState0","animationStatus","setAnimationStatus","_React$useState1","_React$useState10","setIsOpen","throttledToggle","useCallback","panel","trailing","_callee","wasOpen","isRealOpenTransition","_panelRef$current","_context","focus","calculateOffsets","calculateHorizontalOffsets","calculateVerticalOffsets","globalTopOffset","globalBottomOffset","asideOpen","includes","asideClosed","$open","$closed","contain","restoreFocus","tabIndex","$offsetTop","$rightOffset","$minusHeight","$closing","$opening","$altAnimation","PageContainer","_ref8","_excluded6","_React$useState11","_React$useState12","isAsideOpen","setIsAsideOpen","openAside","closeAside","Provider","$fillHeight","PageMain","_ref9","flex","_excluded7","_React$useContext8","_React$useContext9","shouldFlex","attrs","_defineProperty","$flex","$tearsheetPlacement","PageBreadcrumbs","PageBanner","PageTitle","PageTabs","Page","Header","Banner","Breadcrumbs","Title","Tabs","Footer","Body","Main","Aside"],"sources":["../../src/PageLayout/PageLayout.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus'\nimport throttle from 'lodash.throttle'\nimport React from 'react'\nimport { AnchorNavigation } from '../AnchorNavigation/AnchorNavigation'\nimport { useAnchorNavigationContext } from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid as BaseGrid } from '../Grid/Grid'\nimport type { GridProps } from '../Grid/Grid.types'\nimport { Required } from '../Required'\nimport { TearsheetContext } from '../Tearsheet/Tearsheet'\nimport { useResize } from '../_hooks/Resize'\nimport { useScroll } from '../_hooks/Scroll'\nimport { useUpdateEffect } from '../_hooks/useUpdateEffect'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Props } from '../_utils/types'\nimport { pageLayoutRootDataAttr } from './PageLayout.constants'\nimport {\n animationDuration,\n StyledAside,\n StyledAsideFluidContainer,\n StyledAsidePanel,\n StyledBody,\n StyledContent,\n StyledFooter,\n StyledNavigation,\n StyledPageBanner,\n StyledPageBreadcrumbs,\n StyledPageContainer,\n StyledPageHeader,\n StyledPageMain,\n StyledPageTabs,\n StyledPageTitle,\n} from './PageLayout.styles'\nimport type {\n PageAsideAnimationStatus,\n PageAsideProps,\n PageBodyNavigationProps,\n PageBodyProps,\n PageFooterProps,\n PageHeaderProps,\n PageMainProps,\n PageProps,\n} from './PageLayout.types'\nimport {\n getBottomOffsetForFooterUseCase,\n getGlobalBottomOffset,\n getGlobalTopOffset,\n getIsIntersectingVertically,\n getRightOffset,\n wait,\n} from './PageLayout.utils'\n\nconst defaultAsideIsOpen = false\n\nexport const PageContext = React.createContext<{\n bodyRef: React.RefObject<HTMLDivElement>\n footerRef: React.RefObject<HTMLDivElement>\n containerRef: React.RefObject<HTMLDivElement>\n navigationRef: React.RefObject<HTMLUListElement>\n fillHeight: boolean\n aside: {\n open: () => Promise<void>\n close: () => Promise<void>\n isOpen: boolean\n }\n}>({\n bodyRef: React.createRef(),\n footerRef: React.createRef(),\n containerRef: React.createRef(),\n navigationRef: React.createRef(),\n fillHeight: false,\n aside: {\n open: () => Promise.resolve(),\n close: () => Promise.resolve(),\n isOpen: defaultAsideIsOpen,\n },\n})\n\n// for some reason this does not appear in the deprecated in typedoc generated json, but Page.Row does\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid`, `Page.Row`, `Page.Column`\n *\n * AFTER `Grid` `Grid.Row` `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Grid = ({ gutterX, ...props }: GridProps) => {\n return <BaseGrid gutterX={gutterX ?? 'lg'} {...props} />\n}\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\nexport const Row = BaseGrid.Row\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Column = BaseGrid.Col\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n function PageHeader({ transparent, ...props }, ref) {\n return <StyledPageHeader $transparent={transparent} {...props} ref={ref} />\n }\n)\n\nconst PageBody = React.forwardRef<HTMLDivElement, PageBodyProps>(\n function PageBody({ children, required = false, ...props }, ref) {\n const { bodyRef } = React.useContext(PageContext)\n\n let navigation\n let content: React.ReactElement[] = []\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return\n if (child.type === PageBodyNavigation) {\n navigation = child\n } else {\n content.push(child)\n }\n })\n if (!navigation) {\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n {required && <Required showLabel />}\n {children}\n </StyledBody>\n )\n }\n\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n <StyledNavigation>{navigation}</StyledNavigation>\n <StyledContent>{content}</StyledContent>\n </StyledBody>\n )\n }\n)\n\nexport const PageBodyNavigation = React.forwardRef<\n HTMLUListElement,\n PageBodyNavigationProps\n>(({ minSections = 2, ...props }, ref) => {\n const { navigationRef } = React.useContext(PageContext)\n const { sections, selected, onSelect } = useAnchorNavigationContext()\n const sectionsLength = props.sections?.length ?? sections.length\n\n if (sectionsLength < minSections) {\n return null\n }\n\n return (\n <AnchorNavigation\n sections={props.sections ?? sections}\n selected={props.selected ?? selected}\n onSelect={props.onSelect ?? onSelect}\n ref={mergeRefs(ref, navigationRef)}\n {...props}\n />\n )\n})\n\nconst PageFooter = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function PageFooter(props, ref) {\n const { bodyRef, footerRef, aside } = React.useContext(PageContext)\n const { addListener } = React.useContext(TearsheetContext)\n\n const [isIntersectingWithBody, setIsIntersectingWithBody] =\n React.useState(false)\n\n function calculateIntersections() {\n if (!footerRef.current || !bodyRef.current) {\n return\n }\n setIsIntersectingWithBody(\n getIsIntersectingVertically(bodyRef.current, footerRef.current)\n )\n }\n\n React.useEffect(() => {\n let tabWasPressed = false\n const onActiveElementChange = () => {\n if (\n tabWasPressed &&\n footerRef.current &&\n document.activeElement &&\n getIsIntersectingVertically(\n document.activeElement as HTMLElement,\n footerRef.current\n )\n ) {\n document.activeElement.scrollIntoView()\n }\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Tab') {\n tabWasPressed = true\n // setTimeout is added to the end of async queue\n // after all already attached eventListeners\n // `tabWasPressed` marked as `false` after all events\n // which can be triggered by pressing Tab\n setTimeout(() => {\n tabWasPressed = false\n }, 0)\n }\n }\n\n bodyRef.current?.addEventListener('focusin', onActiveElementChange)\n document.addEventListener('keydown', onKeyDown, true)\n\n return () => {\n bodyRef.current?.removeEventListener('focusin', onActiveElementChange)\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [])\n\n React.useEffect(() => addListener('scroll', calculateIntersections), [])\n\n React.useEffect(calculateIntersections, [])\n\n useScroll({ onScroll: calculateIntersections })\n\n useResize({ onResize: calculateIntersections })\n\n return (\n <StyledFooter\n {...props}\n $isAsideOpen={aside.isOpen}\n $hasShadow={isIntersectingWithBody}\n data-sticky={isIntersectingWithBody ? 'sticky' : ''}\n ref={mergeRefs(ref, footerRef)}\n />\n )\n }\n)\n\nconst PageAside = React.forwardRef<HTMLDivElement, PageAsideProps>(\n function PageAside(\n {\n children,\n open: controlledIsOpen,\n focusOnOpen = false,\n restoreFocusOnClose = false,\n containFocus = false,\n ...props\n },\n ref\n ) {\n const {\n aside: { isOpen: contextIsOpen, open, close },\n fillHeight,\n } = React.useContext(PageContext)\n\n const { placement: tearsheetPlacement, addListener: addTearsheetListener } =\n React.useContext(TearsheetContext)\n const { footerRef, containerRef } = React.useContext(PageContext)\n\n const innerRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n const prevIsOpenRef = React.useRef<boolean>(\n controlledIsOpen ?? contextIsOpen ?? false\n )\n\n const [topOffset, setTopOffset] = React.useState<null | number>(null)\n const [bottomOffset, setBottomOffset] = React.useState(0)\n const [rightOffset, setRightOffset] = React.useState(0)\n\n const initialIsOpen = controlledIsOpen ?? contextIsOpen\n const [animationStatus, setAnimationStatus] =\n React.useState<PageAsideAnimationStatus>(\n initialIsOpen ? 'open' : 'closed'\n )\n const [isOpen, setIsOpen] = React.useState(initialIsOpen)\n\n const throttledToggle = React.useCallback(\n throttle(\n (isOpen) => {\n if (isOpen) {\n open()\n } else {\n close()\n }\n },\n // wait just a little longer than the animation duration to avoid odd blinking\n animationDuration.panel + 100,\n { trailing: true }\n ),\n []\n )\n\n React.useEffect(() => {\n throttledToggle(controlledIsOpen)\n }, [controlledIsOpen, throttledToggle])\n\n React.useEffect(() => {\n setIsOpen(contextIsOpen)\n }, [])\n\n useUpdateEffect(() => {\n ;(async () => {\n const wasOpen = prevIsOpenRef.current\n prevIsOpenRef.current = contextIsOpen\n\n if (contextIsOpen) {\n const isRealOpenTransition = !wasOpen\n setIsOpen(true)\n\n // allow browsers to recalculate the layout\n await wait(0)\n\n setAnimationStatus('opening')\n await wait(animationDuration.panel)\n setAnimationStatus('open')\n\n if (focusOnOpen && isRealOpenTransition) {\n panelRef.current?.focus()\n }\n return\n }\n\n setAnimationStatus('closing')\n await wait(animationDuration.panel)\n setAnimationStatus('closed')\n setIsOpen(false)\n })()\n }, [contextIsOpen, focusOnOpen])\n\n function calculateOffsets() {\n calculateHorizontalOffsets()\n calculateVerticalOffsets()\n }\n\n function calculateHorizontalOffsets() {\n if (!containerRef.current) {\n return\n }\n\n setRightOffset(getRightOffset(containerRef.current))\n }\n\n function calculateVerticalOffsets() {\n if (!innerRef.current || !containerRef.current) {\n return\n }\n\n const globalTopOffset = getGlobalTopOffset(containerRef.current)\n setTopOffset(globalTopOffset)\n\n const globalBottomOffset = getGlobalBottomOffset(containerRef.current)\n setBottomOffset(globalBottomOffset)\n\n if (!footerRef.current) {\n return\n }\n\n const bottomOffset = getBottomOffsetForFooterUseCase(\n footerRef.current,\n globalBottomOffset\n )\n if (bottomOffset !== null) {\n setBottomOffset(bottomOffset)\n }\n }\n\n useScroll({ onScroll: calculateOffsets })\n\n useResize({ onResize: calculateOffsets })\n\n React.useEffect(() => {\n if (tearsheetPlacement) {\n return addTearsheetListener('afterShow', calculateOffsets)\n }\n\n calculateOffsets()\n }, [])\n\n useUpdateEffect(calculateOffsets, [contextIsOpen, animationStatus])\n\n const asideOpen = ['open', 'opening'].includes(animationStatus)\n const asideClosed = ['closed', 'closing'].includes(animationStatus)\n\n return isOpen ? (\n <StyledAside\n {...props}\n $open={asideOpen}\n $closed={asideClosed}\n ref={mergeRefs(ref, innerRef, calculateOffsets)}\n >\n <StyledAsideFluidContainer $open={asideOpen} $closed={asideClosed}>\n <FocusScope contain={containFocus} restoreFocus={restoreFocusOnClose}>\n <StyledAsidePanel\n ref={panelRef}\n tabIndex={-1}\n $offsetTop={topOffset}\n $rightOffset={rightOffset}\n $minusHeight={(topOffset ?? 0) + bottomOffset}\n $closing={animationStatus === 'closing'}\n $opening={animationStatus === 'opening'}\n $closed={animationStatus === 'closed'}\n $altAnimation={tearsheetPlacement === 'left'}\n >\n {children}\n </StyledAsidePanel>\n </FocusScope>\n </StyledAsideFluidContainer>\n </StyledAside>\n ) : null\n }\n)\n\nconst PageContainer = React.forwardRef<HTMLDivElement, PageProps>(\n function PageContainer({ fillHeight, ...props }, ref) {\n const [isAsideOpen, setIsAsideOpen] = React.useState(defaultAsideIsOpen)\n\n const openAside = () => {\n setIsAsideOpen(true)\n return wait(animationDuration.panel)\n }\n const closeAside = () => {\n setIsAsideOpen(false)\n return wait(animationDuration.panel)\n }\n\n const containerRef = React.useRef<HTMLDivElement>(null)\n const bodyRef = React.useRef<HTMLDivElement>(null)\n const navigationRef = React.useRef<HTMLUListElement>(null)\n const footerRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PageContext.Provider\n value={{\n bodyRef,\n footerRef,\n containerRef,\n navigationRef,\n fillHeight: !!fillHeight,\n aside: {\n open: openAside,\n close: closeAside,\n isOpen: isAsideOpen,\n },\n }}\n >\n <StyledPageContainer\n data-core-react=\"page\"\n $fillHeight={fillHeight}\n {...props}\n ref={mergeRefs(ref, containerRef)}\n />\n </PageContext.Provider>\n )\n }\n)\n\nconst PageMain = React.forwardRef<HTMLDivElement, PageMainProps>(\n function PageMain({ flex, ...props }, ref) {\n const { placement: tearsheetPlacement } = React.useContext(TearsheetContext)\n const { fillHeight } = React.useContext(PageContext)\n const shouldFlex = fillHeight || flex\n const attrs = { [pageLayoutRootDataAttr]: true }\n return (\n <Grid gutterX=\"lg\">\n <StyledPageMain\n {...props}\n {...attrs}\n ref={ref}\n $flex={shouldFlex}\n $fillHeight={fillHeight}\n $tearsheetPlacement={tearsheetPlacement}\n />\n </Grid>\n )\n }\n)\n\nconst PageBreadcrumbs = React.forwardRef<HTMLDivElement, Props>(\n function PageBreadcrumbs(props, ref) {\n return <StyledPageBreadcrumbs ref={ref} {...props} />\n }\n)\n\nconst PageBanner = React.forwardRef<HTMLDivElement, Props>(function PageBanner(\n props,\n ref\n) {\n return <StyledPageBanner ref={ref} {...props} />\n})\n\nconst PageTitle = React.forwardRef<HTMLDivElement, Props>(function PageTitle(\n props,\n ref\n) {\n return <StyledPageTitle ref={ref} {...props} />\n})\n\nconst PageTabs = React.forwardRef<HTMLDivElement, Props>(function PageTabs(\n props,\n ref\n) {\n return <StyledPageTabs ref={ref} {...props} />\n})\n\nGrid.displayName = 'Page.Grid'\nPageHeader.displayName = 'Page.Header'\nPageBanner.displayName = 'Page.Banner'\nPageBreadcrumbs.displayName = 'Page.Breadcrumbs'\nPageTitle.displayName = 'Page.Title'\nPageTabs.displayName = 'Page.Tabs'\nPageBody.displayName = 'Page.Body'\nPageFooter.displayName = 'Page.Footer'\nPageAside.displayName = 'Page.Aside'\nPageContainer.displayName = 'Page'\nPageMain.displayName = 'Page.Main'\n\n/**\n Building block elements for layout that should be used to build a common skeleton of a page.\n - Page\n - Page.Main\n - Page.Header\n - Page.Breadcrumbs\n - Breadcrumbs\n - Page.Banner\n - Banner\n - Page.Title\n - Title or H1\n - Page.Tabs\n - Tabs\n - Page.Body\n - Page.Footer\n - Page.Aside\nOther helpers, such as Page.Grid, Page.Row and Page.Column are thin wrappers over Grid components and share the same API.\n */\nexport const Page = addSubcomponents(\n {\n Header: PageHeader,\n Banner: PageBanner,\n Breadcrumbs: PageBreadcrumbs,\n Title: PageTitle,\n Tabs: PageTabs,\n Footer: PageFooter,\n Body: PageBody,\n Main: PageMain,\n Aside: PageAside,\n\n // Grid utilities\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid` AFTER `Grid` (or `Grid gutterX=\"lg\"`)\n * @deprecatedSince 12\n */\n Grid,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\n Column,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\n Row,\n },\n PageContainer\n)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PageLayout.js","names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","next","push","isArray","_extends","assign","hasOwnProperty","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","FocusScope","usePreventScroll","throttle","React","AnchorNavigation","useAnchorNavigationContext","Grid","BaseGrid","Required","TearsheetContext","useResize","useScroll","useUpdateEffect","addSubcomponents","mergeRefs","pageLayoutRootDataAttr","animationDuration","StyledAside","StyledAsideFluidContainer","StyledAsidePanel","StyledBody","StyledContent","StyledFooter","StyledNavigation","StyledPageBanner","StyledPageBreadcrumbs","StyledPageContainer","StyledPageHeader","StyledPageMain","StyledPageTabs","StyledPageTitle","getBottomOffsetForFooterUseCase","getGlobalBottomOffset","getGlobalTopOffset","getIsIntersectingVertically","getRightOffset","useIsUsingSmallScreen","wait","defaultAsideIsOpen","PageContext","createContext","bodyRef","createRef","footerRef","containerRef","navigationRef","fillHeight","aside","open","close","isOpen","_ref","gutterX","props","_excluded","createElement","Row","Column","Col","PageHeader","forwardRef","_ref2","ref","transparent","_excluded2","$transparent","PageBody","_ref3","children","_ref3$required","required","_excluded3","_React$useContext","useContext","navigation","content","Children","forEach","child","isValidElement","type","PageBodyNavigation","showLabel","_ref4","_props$sections$lengt","_props$sections","_props$sections2","_props$selected","_props$onSelect","_ref4$minSections","minSections","_excluded4","_React$useContext2","_useAnchorNavigationC","sections","selected","onSelect","sectionsLength","PageFooter","_React$useContext3","_React$useContext4","addListener","_React$useState","useState","_React$useState2","isIntersectingWithBody","setIsIntersectingWithBody","calculateIntersections","current","useEffect","_bodyRef$current","tabWasPressed","onActiveElementChange","document","activeElement","scrollIntoView","onKeyDown","code","setTimeout","addEventListener","_bodyRef$current2","removeEventListener","onScroll","onResize","$isAsideOpen","$hasShadow","PageAside","_ref5","_ref6","controlledIsOpen","_ref5$focusOnOpen","focusOnOpen","_ref5$restoreFocusOnC","restoreFocusOnClose","_ref5$containFocus","containFocus","_excluded5","_React$useContext5","_React$useContext5$as","contextIsOpen","_React$useContext6","tearsheetPlacement","placement","addTearsheetListener","_React$useContext7","innerRef","useRef","panelRef","isOverlay","isOverlayRef","prevIsOpenRef","_React$useState3","_React$useState4","topOffset","setTopOffset","_React$useState5","_React$useState6","bottomOffset","setBottomOffset","_React$useState7","_React$useState8","rightOffset","setRightOffset","initialIsOpen","_React$useState9","_React$useState0","animationStatus","setAnimationStatus","_React$useState1","_React$useState10","setIsOpen","throttledToggle","useCallback","panel","trailing","_callee","wasOpen","isRealOpenTransition","_panelRef$current","_context","focus","calculateOffsets","calculateHorizontalOffsets","calculateVerticalOffsets","globalTopOffset","globalBottomOffset","asideOpen","includes","asideClosed","isDisabled","$open","$closed","contain","restoreFocus","tabIndex","$offsetTop","$rightOffset","$minusHeight","$closing","$opening","$altAnimation","PageContainer","_ref8","_excluded6","_React$useState11","_React$useState12","isAsideOpen","setIsAsideOpen","openAside","closeAside","Provider","$fillHeight","PageMain","_ref9","flex","_excluded7","_React$useContext8","_React$useContext9","shouldFlex","attrs","_defineProperty","$flex","$tearsheetPlacement","PageBreadcrumbs","PageBanner","PageTitle","PageTabs","Page","Header","Banner","Breadcrumbs","Title","Tabs","Footer","Body","Main","Aside"],"sources":["../../src/PageLayout/PageLayout.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus'\nimport { usePreventScroll } from '@react-aria/overlays'\nimport throttle from 'lodash.throttle'\nimport React from 'react'\nimport { AnchorNavigation } from '../AnchorNavigation/AnchorNavigation'\nimport { useAnchorNavigationContext } from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid as BaseGrid } from '../Grid/Grid'\nimport type { GridProps } from '../Grid/Grid.types'\nimport { Required } from '../Required'\nimport { TearsheetContext } from '../Tearsheet/Tearsheet'\nimport { useResize } from '../_hooks/Resize'\nimport { useScroll } from '../_hooks/Scroll'\nimport { useUpdateEffect } from '../_hooks/useUpdateEffect'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Props } from '../_utils/types'\nimport { pageLayoutRootDataAttr } from './PageLayout.constants'\nimport {\n animationDuration,\n StyledAside,\n StyledAsideFluidContainer,\n StyledAsidePanel,\n StyledBody,\n StyledContent,\n StyledFooter,\n StyledNavigation,\n StyledPageBanner,\n StyledPageBreadcrumbs,\n StyledPageContainer,\n StyledPageHeader,\n StyledPageMain,\n StyledPageTabs,\n StyledPageTitle,\n} from './PageLayout.styles'\nimport type {\n PageAsideAnimationStatus,\n PageAsideProps,\n PageBodyNavigationProps,\n PageBodyProps,\n PageFooterProps,\n PageHeaderProps,\n PageMainProps,\n PageProps,\n} from './PageLayout.types'\nimport {\n getBottomOffsetForFooterUseCase,\n getGlobalBottomOffset,\n getGlobalTopOffset,\n getIsIntersectingVertically,\n getRightOffset,\n useIsUsingSmallScreen,\n wait,\n} from './PageLayout.utils'\n\nconst defaultAsideIsOpen = false\n\nexport const PageContext = React.createContext<{\n bodyRef: React.RefObject<HTMLDivElement>\n footerRef: React.RefObject<HTMLDivElement>\n containerRef: React.RefObject<HTMLDivElement>\n navigationRef: React.RefObject<HTMLUListElement>\n fillHeight: boolean\n aside: {\n open: () => Promise<void>\n close: () => Promise<void>\n isOpen: boolean\n }\n}>({\n bodyRef: React.createRef(),\n footerRef: React.createRef(),\n containerRef: React.createRef(),\n navigationRef: React.createRef(),\n fillHeight: false,\n aside: {\n open: () => Promise.resolve(),\n close: () => Promise.resolve(),\n isOpen: defaultAsideIsOpen,\n },\n})\n\n// for some reason this does not appear in the deprecated in typedoc generated json, but Page.Row does\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid`, `Page.Row`, `Page.Column`\n *\n * AFTER `Grid` `Grid.Row` `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Grid = ({ gutterX, ...props }: GridProps) => {\n return <BaseGrid gutterX={gutterX ?? 'lg'} {...props} />\n}\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\nexport const Row = BaseGrid.Row\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Column = BaseGrid.Col\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n function PageHeader({ transparent, ...props }, ref) {\n return <StyledPageHeader $transparent={transparent} {...props} ref={ref} />\n }\n)\n\nconst PageBody = React.forwardRef<HTMLDivElement, PageBodyProps>(\n function PageBody({ children, required = false, ...props }, ref) {\n const { bodyRef } = React.useContext(PageContext)\n\n let navigation\n let content: React.ReactElement[] = []\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return\n if (child.type === PageBodyNavigation) {\n navigation = child\n } else {\n content.push(child)\n }\n })\n if (!navigation) {\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n {required && <Required showLabel />}\n {children}\n </StyledBody>\n )\n }\n\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n <StyledNavigation>{navigation}</StyledNavigation>\n <StyledContent>{content}</StyledContent>\n </StyledBody>\n )\n }\n)\n\nexport const PageBodyNavigation = React.forwardRef<\n HTMLUListElement,\n PageBodyNavigationProps\n>(({ minSections = 2, ...props }, ref) => {\n const { navigationRef } = React.useContext(PageContext)\n const { sections, selected, onSelect } = useAnchorNavigationContext()\n const sectionsLength = props.sections?.length ?? sections.length\n\n if (sectionsLength < minSections) {\n return null\n }\n\n return (\n <AnchorNavigation\n sections={props.sections ?? sections}\n selected={props.selected ?? selected}\n onSelect={props.onSelect ?? onSelect}\n ref={mergeRefs(ref, navigationRef)}\n {...props}\n />\n )\n})\n\nconst PageFooter = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function PageFooter(props, ref) {\n const { bodyRef, footerRef, aside } = React.useContext(PageContext)\n const { addListener } = React.useContext(TearsheetContext)\n\n const [isIntersectingWithBody, setIsIntersectingWithBody] =\n React.useState(false)\n\n function calculateIntersections() {\n if (!footerRef.current || !bodyRef.current) {\n return\n }\n setIsIntersectingWithBody(\n getIsIntersectingVertically(bodyRef.current, footerRef.current)\n )\n }\n\n React.useEffect(() => {\n let tabWasPressed = false\n const onActiveElementChange = () => {\n if (\n tabWasPressed &&\n footerRef.current &&\n document.activeElement &&\n getIsIntersectingVertically(\n document.activeElement as HTMLElement,\n footerRef.current\n )\n ) {\n document.activeElement.scrollIntoView()\n }\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Tab') {\n tabWasPressed = true\n // setTimeout is added to the end of async queue\n // after all already attached eventListeners\n // `tabWasPressed` marked as `false` after all events\n // which can be triggered by pressing Tab\n setTimeout(() => {\n tabWasPressed = false\n }, 0)\n }\n }\n\n bodyRef.current?.addEventListener('focusin', onActiveElementChange)\n document.addEventListener('keydown', onKeyDown, true)\n\n return () => {\n bodyRef.current?.removeEventListener('focusin', onActiveElementChange)\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [])\n\n React.useEffect(() => addListener('scroll', calculateIntersections), [])\n\n React.useEffect(calculateIntersections, [])\n\n useScroll({ onScroll: calculateIntersections })\n\n useResize({ onResize: calculateIntersections })\n\n return (\n <StyledFooter\n {...props}\n $isAsideOpen={aside.isOpen}\n $hasShadow={isIntersectingWithBody}\n data-sticky={isIntersectingWithBody ? 'sticky' : ''}\n ref={mergeRefs(ref, footerRef)}\n />\n )\n }\n)\n\nconst PageAside = React.forwardRef<HTMLDivElement, PageAsideProps>(\n function PageAside(\n {\n children,\n open: controlledIsOpen,\n focusOnOpen = false,\n restoreFocusOnClose = false,\n containFocus = false,\n ...props\n },\n ref\n ) {\n const {\n aside: { isOpen: contextIsOpen, open, close },\n fillHeight,\n } = React.useContext(PageContext)\n\n const { placement: tearsheetPlacement, addListener: addTearsheetListener } =\n React.useContext(TearsheetContext)\n const { footerRef, containerRef } = React.useContext(PageContext)\n\n const innerRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n // Small screens: the aside overlays the page, so focus is managed like in a dialog\n const isOverlay = useIsUsingSmallScreen()\n const isOverlayRef = React.useRef(isOverlay)\n isOverlayRef.current = isOverlay\n\n const prevIsOpenRef = React.useRef<boolean>(\n controlledIsOpen ?? contextIsOpen ?? false\n )\n\n const [topOffset, setTopOffset] = React.useState<null | number>(null)\n const [bottomOffset, setBottomOffset] = React.useState(0)\n const [rightOffset, setRightOffset] = React.useState(0)\n\n const initialIsOpen = controlledIsOpen ?? contextIsOpen\n const [animationStatus, setAnimationStatus] =\n React.useState<PageAsideAnimationStatus>(\n initialIsOpen ? 'open' : 'closed'\n )\n const [isOpen, setIsOpen] = React.useState(initialIsOpen)\n\n const throttledToggle = React.useCallback(\n throttle(\n (isOpen) => {\n if (isOpen) {\n open()\n } else {\n close()\n }\n },\n // wait just a little longer than the animation duration to avoid odd blinking\n animationDuration.panel + 100,\n { trailing: true }\n ),\n []\n )\n\n React.useEffect(() => {\n throttledToggle(controlledIsOpen)\n }, [controlledIsOpen, throttledToggle])\n\n React.useEffect(() => {\n setIsOpen(contextIsOpen)\n }, [])\n\n useUpdateEffect(() => {\n ;(async () => {\n const wasOpen = prevIsOpenRef.current\n prevIsOpenRef.current = contextIsOpen\n\n if (contextIsOpen) {\n const isRealOpenTransition = !wasOpen\n setIsOpen(true)\n\n // allow browsers to recalculate the layout\n await wait(0)\n\n setAnimationStatus('opening')\n await wait(animationDuration.panel)\n setAnimationStatus('open')\n\n if ((focusOnOpen || isOverlayRef.current) && isRealOpenTransition) {\n panelRef.current?.focus()\n }\n return\n }\n\n setAnimationStatus('closing')\n await wait(animationDuration.panel)\n setAnimationStatus('closed')\n setIsOpen(false)\n })()\n }, [contextIsOpen, focusOnOpen])\n\n function calculateOffsets() {\n calculateHorizontalOffsets()\n calculateVerticalOffsets()\n }\n\n function calculateHorizontalOffsets() {\n if (!containerRef.current) {\n return\n }\n\n setRightOffset(getRightOffset(containerRef.current))\n }\n\n function calculateVerticalOffsets() {\n if (!innerRef.current || !containerRef.current) {\n return\n }\n\n const globalTopOffset = getGlobalTopOffset(containerRef.current)\n setTopOffset(globalTopOffset)\n\n const globalBottomOffset = getGlobalBottomOffset(containerRef.current)\n setBottomOffset(globalBottomOffset)\n\n if (!footerRef.current) {\n return\n }\n\n const bottomOffset = getBottomOffsetForFooterUseCase(\n footerRef.current,\n globalBottomOffset\n )\n if (bottomOffset !== null) {\n setBottomOffset(bottomOffset)\n }\n }\n\n useScroll({ onScroll: calculateOffsets })\n\n useResize({ onResize: calculateOffsets })\n\n React.useEffect(() => {\n if (tearsheetPlacement) {\n return addTearsheetListener('afterShow', calculateOffsets)\n }\n\n calculateOffsets()\n }, [])\n\n useUpdateEffect(calculateOffsets, [contextIsOpen, animationStatus])\n\n const asideOpen = ['open', 'opening'].includes(animationStatus)\n const asideClosed = ['closed', 'closing'].includes(animationStatus)\n\n // The page must not scroll behind the overlaid aside\n usePreventScroll({ isDisabled: !(isOverlay && asideOpen) })\n\n return isOpen ? (\n <StyledAside\n {...props}\n $open={asideOpen}\n $closed={asideClosed}\n ref={mergeRefs(ref, innerRef, calculateOffsets)}\n >\n <StyledAsideFluidContainer $open={asideOpen} $closed={asideClosed}>\n <FocusScope\n contain={containFocus || isOverlay}\n restoreFocus={restoreFocusOnClose || isOverlay}\n >\n <StyledAsidePanel\n ref={panelRef}\n tabIndex={-1}\n $offsetTop={topOffset}\n $rightOffset={rightOffset}\n $minusHeight={(topOffset ?? 0) + bottomOffset}\n $closing={animationStatus === 'closing'}\n $opening={animationStatus === 'opening'}\n $closed={animationStatus === 'closed'}\n $altAnimation={tearsheetPlacement === 'left'}\n >\n {children}\n </StyledAsidePanel>\n </FocusScope>\n </StyledAsideFluidContainer>\n </StyledAside>\n ) : null\n }\n)\n\nconst PageContainer = React.forwardRef<HTMLDivElement, PageProps>(\n function PageContainer({ fillHeight, ...props }, ref) {\n const [isAsideOpen, setIsAsideOpen] = React.useState(defaultAsideIsOpen)\n\n const openAside = () => {\n setIsAsideOpen(true)\n return wait(animationDuration.panel)\n }\n const closeAside = () => {\n setIsAsideOpen(false)\n return wait(animationDuration.panel)\n }\n\n const containerRef = React.useRef<HTMLDivElement>(null)\n const bodyRef = React.useRef<HTMLDivElement>(null)\n const navigationRef = React.useRef<HTMLUListElement>(null)\n const footerRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PageContext.Provider\n value={{\n bodyRef,\n footerRef,\n containerRef,\n navigationRef,\n fillHeight: !!fillHeight,\n aside: {\n open: openAside,\n close: closeAside,\n isOpen: isAsideOpen,\n },\n }}\n >\n <StyledPageContainer\n data-core-react=\"page\"\n $fillHeight={fillHeight}\n {...props}\n ref={mergeRefs(ref, containerRef)}\n />\n </PageContext.Provider>\n )\n }\n)\n\nconst PageMain = React.forwardRef<HTMLDivElement, PageMainProps>(\n function PageMain({ flex, ...props }, ref) {\n const { placement: tearsheetPlacement } = React.useContext(TearsheetContext)\n const { fillHeight } = React.useContext(PageContext)\n const shouldFlex = fillHeight || flex\n const attrs = { [pageLayoutRootDataAttr]: true }\n return (\n <Grid gutterX=\"lg\">\n <StyledPageMain\n {...props}\n {...attrs}\n ref={ref}\n $flex={shouldFlex}\n $fillHeight={fillHeight}\n $tearsheetPlacement={tearsheetPlacement}\n />\n </Grid>\n )\n }\n)\n\nconst PageBreadcrumbs = React.forwardRef<HTMLDivElement, Props>(\n function PageBreadcrumbs(props, ref) {\n return <StyledPageBreadcrumbs ref={ref} {...props} />\n }\n)\n\nconst PageBanner = React.forwardRef<HTMLDivElement, Props>(function PageBanner(\n props,\n ref\n) {\n return <StyledPageBanner ref={ref} {...props} />\n})\n\nconst PageTitle = React.forwardRef<HTMLDivElement, Props>(function PageTitle(\n props,\n ref\n) {\n return <StyledPageTitle ref={ref} {...props} />\n})\n\nconst PageTabs = React.forwardRef<HTMLDivElement, Props>(function PageTabs(\n props,\n ref\n) {\n return <StyledPageTabs ref={ref} {...props} />\n})\n\nGrid.displayName = 'Page.Grid'\nPageHeader.displayName = 'Page.Header'\nPageBanner.displayName = 'Page.Banner'\nPageBreadcrumbs.displayName = 'Page.Breadcrumbs'\nPageTitle.displayName = 'Page.Title'\nPageTabs.displayName = 'Page.Tabs'\nPageBody.displayName = 'Page.Body'\nPageFooter.displayName = 'Page.Footer'\nPageAside.displayName = 'Page.Aside'\nPageContainer.displayName = 'Page'\nPageMain.displayName = 'Page.Main'\n\n/**\n Building block elements for layout that should be used to build a common skeleton of a page.\n - Page\n - Page.Main\n - Page.Header\n - Page.Breadcrumbs\n - Breadcrumbs\n - Page.Banner\n - Banner\n - Page.Title\n - Title or H1\n - Page.Tabs\n - Tabs\n - Page.Body\n - Page.Footer\n - Page.Aside\nOther helpers, such as Page.Grid, Page.Row and Page.Column are thin wrappers over Grid components and share the same API.\n */\nexport const Page = addSubcomponents(\n {\n Header: PageHeader,\n Banner: PageBanner,\n Breadcrumbs: PageBreadcrumbs,\n Title: PageTitle,\n Tabs: PageTabs,\n Footer: PageFooter,\n Body: PageBody,\n Main: PageMain,\n Aside: PageAside,\n\n // Grid utilities\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid` AFTER `Grid` (or `Grid gutterX=\"lg\"`)\n * @deprecatedSince 12\n */\n Grid,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\n Column,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\n Row,\n },\n PageContainer\n)\n"],"mappings":"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","ignoreList":[]}
|