@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.
Files changed (286) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.js +2 -0
  5. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  6. package/dist/AvatarStack/AvatarStack.styles.js +8 -8
  7. package/dist/Badge/Badge.styles.js +2 -2
  8. package/dist/BadgePill/BadgePill.styles.js +4 -4
  9. package/dist/Banner/Banner.d.ts +1 -0
  10. package/dist/Banner/Banner.js +31 -14
  11. package/dist/Banner/Banner.js.map +1 -1
  12. package/dist/Banner/Banner.styles.d.ts +10 -0
  13. package/dist/Banner/Banner.styles.js +29 -12
  14. package/dist/Banner/Banner.styles.js.map +1 -1
  15. package/dist/Banner/Banner.types.d.ts +1 -1
  16. package/dist/Banner/Banner.types.js.map +1 -1
  17. package/dist/Banner/index.d.ts +1 -1
  18. package/dist/Banner/index.js +1 -1
  19. package/dist/Banner/index.js.map +1 -1
  20. package/dist/Box/Box.styles.js +1 -1
  21. package/dist/Breadcrumbs/Breadcrumbs.styles.js +7 -6
  22. package/dist/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
  23. package/dist/Button/Button.styles.js +5 -5
  24. package/dist/Calendar/Calendar.styles.js +10 -10
  25. package/dist/Card/Card.styles.js +1 -1
  26. package/dist/Checkbox/Checkbox.styles.js +6 -6
  27. package/dist/ContactItem/ContactItem.styles.js +5 -5
  28. package/dist/Content/Content.styles.js +2 -2
  29. package/dist/DateInput/DateInput.styles.js +6 -6
  30. package/dist/DetailPage/DetailPage.styles.js +11 -9
  31. package/dist/DetailPage/DetailPage.styles.js.map +1 -1
  32. package/dist/Dropdown/Dropdown.styles.js +3 -3
  33. package/dist/DropdownFlyout/DropdownFlyout.js +8 -0
  34. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  35. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  36. package/dist/Dropzone/Dropzone.js +1 -1
  37. package/dist/Dropzone/Dropzone.styles.js +9 -9
  38. package/dist/EmptyState/EmptyState.styles.js +6 -6
  39. package/dist/Field/Field.styles.js +3 -3
  40. package/dist/FileList/FileList.styles.js +3 -3
  41. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +17 -14
  42. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js.map +1 -1
  43. package/dist/FileSelect/FileExplorer/FileExplorerModal.js +4 -2
  44. package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
  45. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +5 -4
  46. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js.map +1 -1
  47. package/dist/FileSelect/FileSelect.styles.js +2 -2
  48. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  49. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  50. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  51. package/dist/FileSelect/LocalSource/LocalSource.styles.js +6 -5
  52. package/dist/FileSelect/LocalSource/LocalSource.styles.js.map +1 -1
  53. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  54. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +13 -11
  55. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js.map +1 -1
  56. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  57. package/dist/FileToken/FileToken.styles.js +6 -6
  58. package/dist/FilterToken/FilterToken.styles.js +5 -5
  59. package/dist/FlexList/FlexList.styles.js +1 -1
  60. package/dist/Form/Form.styles.js +13 -13
  61. package/dist/Form/StyledFormikForm.styles.js +2 -2
  62. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  63. package/dist/Grid/Grid.styles.js +2 -2
  64. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  65. package/dist/Input/Input.styles.js +1 -1
  66. package/dist/Link/Link.styles.js +1 -1
  67. package/dist/ListPage/ListPage.styles.js +12 -11
  68. package/dist/ListPage/ListPage.styles.js.map +1 -1
  69. package/dist/Loader/Loader.styles.js +2 -2
  70. package/dist/MenuImperative/MenuImperative.styles.js +11 -11
  71. package/dist/Modal/Modal.js +0 -2
  72. package/dist/Modal/Modal.js.map +1 -1
  73. package/dist/Modal/Modal.styles.js +44 -32
  74. package/dist/Modal/Modal.styles.js.map +1 -1
  75. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  76. package/dist/NextMenu/NextMenu.styles.js +3 -3
  77. package/dist/NextTile/NextTile.styles.js +5 -5
  78. package/dist/Notation/Notation.js +1 -1
  79. package/dist/NumberInput/NumberInput.styles.js +7 -7
  80. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  81. package/dist/OverlayTrigger/OverlayTrigger.js +12 -3
  82. package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
  83. package/dist/OverlayTrigger/OverlayTrigger.types.d.ts +14 -0
  84. package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
  85. package/dist/OverlayTrigger/a11yPresets.d.ts +19 -3
  86. package/dist/OverlayTrigger/a11yPresets.js +16 -6
  87. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  88. package/dist/PageLayout/PageLayout.js +15 -4
  89. package/dist/PageLayout/PageLayout.js.map +1 -1
  90. package/dist/PageLayout/PageLayout.styles.js +35 -34
  91. package/dist/PageLayout/PageLayout.styles.js.map +1 -1
  92. package/dist/PageLayout/PageLayout.types.d.ts +1 -0
  93. package/dist/PageLayout/PageLayout.types.js.map +1 -1
  94. package/dist/PageLayout/PageLayout.utils.d.ts +11 -0
  95. package/dist/PageLayout/PageLayout.utils.js +45 -0
  96. package/dist/PageLayout/PageLayout.utils.js.map +1 -1
  97. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js +2 -2
  98. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js.map +1 -1
  99. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.d.ts +5 -0
  100. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +9 -2
  101. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js.map +1 -1
  102. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  103. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  104. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  105. package/dist/Pagination/Pagination.styles.js +5 -5
  106. package/dist/Panel/Panel.styles.js +17 -16
  107. package/dist/Panel/Panel.styles.js.map +1 -1
  108. package/dist/Pill/Pill.styles.js +3 -3
  109. package/dist/PillSelect/PillSelect.styles.js +5 -5
  110. package/dist/Popover/Popover.js +6 -1
  111. package/dist/Popover/Popover.js.map +1 -1
  112. package/dist/Popover/Popover.styles.js +2 -2
  113. package/dist/Portal/Portal.styles.js +1 -1
  114. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  115. package/dist/RadioButton/RadioButton.styles.js +3 -3
  116. package/dist/Required/Required.styles.js +3 -3
  117. package/dist/Search/Search.styles.js +5 -5
  118. package/dist/Section/Section.styles.js +7 -7
  119. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  120. package/dist/Select/Select.js +5 -2
  121. package/dist/Select/Select.js.map +1 -1
  122. package/dist/Select/Select.styles.js +8 -8
  123. package/dist/Semantic/Semantic.styles.js +9 -9
  124. package/dist/Slider/Slider.styles.js +5 -5
  125. package/dist/Spinner/Spinner.styles.js +7 -7
  126. package/dist/SplitViewCard/SplitViewCard.styles.js +15 -13
  127. package/dist/SplitViewCard/SplitViewCard.styles.js.map +1 -1
  128. package/dist/SuperSelect/SuperSelect.js +8 -0
  129. package/dist/SuperSelect/SuperSelect.js.map +1 -1
  130. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  131. package/dist/SuperSelect/SuperSelect.styles.js +40 -40
  132. package/dist/SuperSelect/useSuperSelect.js +20 -4
  133. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  134. package/dist/Switch/Switch.styles.js +4 -4
  135. package/dist/Table/Table.js +63 -2
  136. package/dist/Table/Table.js.map +1 -1
  137. package/dist/Table/Table.styles.js +31 -30
  138. package/dist/Table/Table.styles.js.map +1 -1
  139. package/dist/TableShelf/TableShelf.styles.js +5 -5
  140. package/dist/Tabs/Tabs.js +11 -3
  141. package/dist/Tabs/Tabs.js.map +1 -1
  142. package/dist/Tabs/Tabs.styles.js +16 -16
  143. package/dist/Tearsheet/Tearsheet.js +4 -3
  144. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  145. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  146. package/dist/TextArea/TextArea.styles.js +1 -1
  147. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  148. package/dist/Thumbnail/Thumbnail.styles.d.ts +1 -0
  149. package/dist/Thumbnail/Thumbnail.styles.js +22 -22
  150. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  151. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  152. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  153. package/dist/Tile/Tile.styles.js +8 -8
  154. package/dist/Title/Title.styles.js +11 -9
  155. package/dist/Title/Title.styles.js.map +1 -1
  156. package/dist/Toast/Toast.styles.js +3 -3
  157. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  158. package/dist/Token/Token.styles.js +5 -5
  159. package/dist/ToolHeader/ToolHeader.styles.js +15 -10
  160. package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
  161. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  162. package/dist/Tooltip/Tooltip.js +7 -1
  163. package/dist/Tooltip/Tooltip.js.map +1 -1
  164. package/dist/Tooltip/Tooltip.styles.js +3 -3
  165. package/dist/Tree/Tree.js +1 -1
  166. package/dist/Tree/Tree.styles.js +10 -10
  167. package/dist/Typeahead/Typeahead.styles.js +4 -4
  168. package/dist/Typography/Typography.styles.js +1 -1
  169. package/dist/Typography/Typography.table.story.js +2 -2
  170. package/dist/_hooks/I18n.d.ts +33 -13
  171. package/dist/_hooks/I18n.js +2 -0
  172. package/dist/_hooks/I18n.js.map +1 -1
  173. package/dist/_locales/de-DE.json +1 -0
  174. package/dist/_locales/en-AU.json +1 -0
  175. package/dist/_locales/en-CA.json +1 -0
  176. package/dist/_locales/en-GB.json +1 -0
  177. package/dist/_locales/en.json +3 -1
  178. package/dist/_locales/es-ES.json +1 -0
  179. package/dist/_locales/es.json +1 -0
  180. package/dist/_locales/fr-CA.json +1 -0
  181. package/dist/_locales/fr-FR.json +1 -0
  182. package/dist/_locales/is-IS.json +1 -0
  183. package/dist/_locales/it-IT.json +1 -0
  184. package/dist/_locales/ja-JP.json +1 -0
  185. package/dist/_locales/nb-NO.json +2 -1
  186. package/dist/_locales/pl-PL.json +1 -0
  187. package/dist/_locales/pseudo.json +3 -1
  188. package/dist/_locales/pt-BR.json +1 -0
  189. package/dist/_locales/pt-PT.json +3 -2
  190. package/dist/_locales/th-TH.json +1 -0
  191. package/dist/_locales/zh-SG.json +1 -0
  192. package/dist/_locales/zh-TW.json +2 -1
  193. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  194. package/dist/_storyHelpers_/components/StoryGrid.js +5 -4
  195. package/dist/_storyHelpers_/components/StoryGrid.js.map +1 -1
  196. package/dist/_storyHelpers_/highZoom.d.ts +68 -0
  197. package/dist/_storyHelpers_/highZoom.js +72 -0
  198. package/dist/_storyHelpers_/highZoom.js.map +1 -0
  199. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +7 -7
  200. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  201. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  202. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  203. package/dist/_typedoc/Banner/Banner.types.json +18 -18
  204. package/dist/_typedoc/Box/Box.types.json +68 -68
  205. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +12 -12
  206. package/dist/_typedoc/Button/Button.types.json +14 -14
  207. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  208. package/dist/_typedoc/Card/Card.types.json +6 -6
  209. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  210. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  211. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  212. package/dist/_typedoc/DateSelect/DateSelect.types.json +17 -17
  213. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  214. package/dist/_typedoc/DetailPageTemplate/DetailPageTemplate.types.json +3 -3
  215. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  216. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +37 -37
  217. package/dist/_typedoc/Dropzone/Dropzone.types.json +50 -50
  218. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  219. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  220. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  221. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  222. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  223. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +17 -17
  224. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  225. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  226. package/dist/_typedoc/Form/Form.types.json +783 -783
  227. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  228. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  229. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +81 -81
  230. package/dist/_typedoc/Input/Input.types.json +2 -2
  231. package/dist/_typedoc/Link/Link.types.json +1 -1
  232. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  233. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  234. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +90 -90
  235. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  236. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +34 -34
  237. package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
  238. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  239. package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
  240. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +44 -33
  241. package/dist/_typedoc/PageLayout/PageLayout.types.json +42 -42
  242. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  243. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  244. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  245. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  246. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  247. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  248. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  249. package/dist/_typedoc/Required/Required.types.json +5 -5
  250. package/dist/_typedoc/Search/Search.types.json +18 -18
  251. package/dist/_typedoc/Section/Section.types.json +15 -15
  252. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  253. package/dist/_typedoc/Select/Select.types.json +67 -67
  254. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  255. package/dist/_typedoc/SettingsPageTemplate/SettingsPageTemplate.types.json +3 -3
  256. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  257. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  258. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  259. package/dist/_typedoc/Table/Table.types.json +108 -108
  260. package/dist/_typedoc/Tabs/Tablist.types.json +10 -10
  261. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  262. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  263. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  264. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  265. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  266. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  267. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  268. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  269. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  270. package/dist/_typedoc/Title/Title.types.json +1 -1
  271. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  272. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  273. package/dist/_typedoc/Token/Token.types.json +7 -7
  274. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  275. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  276. package/dist/_typedoc/ToolLandingPageTemplate/ToolLandingPageTemplate.types.json +2 -2
  277. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  278. package/dist/_typedoc/Tree/Tree.types.json +132 -132
  279. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  280. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  281. package/dist/_typedoc/_utils/types.json +3 -3
  282. package/dist/_typedoc/a11y-tips.json +1 -1
  283. package/package.json +2 -2
  284. package/dist/_hooks/ScrollLock.d.ts +0 -1
  285. package/dist/_hooks/ScrollLock.js +0 -31
  286. 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
- // usePreventScroll({
210
- // isDisabled: ariaModal ? !isOpen : true,
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":[]}