@atlaskit/navigation-system 0.182.0 → 1.0.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 (790) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/components/skip-links/skip-links-container.js +25 -17
  3. package/dist/cjs/context/skip-links/skip-links-data-context.js +28 -10
  4. package/dist/cjs/context/skip-links/skip-links-provider.js +17 -6
  5. package/dist/cjs/ui/menu-item/menu-item.js +1 -1
  6. package/dist/cjs/ui/page-layout/root.js +11 -1
  7. package/dist/es2019/components/skip-links/skip-links-container.js +24 -16
  8. package/dist/es2019/context/skip-links/skip-links-data-context.js +25 -8
  9. package/dist/es2019/context/skip-links/skip-links-provider.js +17 -6
  10. package/dist/es2019/ui/menu-item/menu-item.js +1 -1
  11. package/dist/es2019/ui/page-layout/root.js +11 -1
  12. package/dist/esm/components/skip-links/skip-links-container.js +23 -15
  13. package/dist/esm/context/skip-links/skip-links-data-context.js +26 -9
  14. package/dist/esm/context/skip-links/skip-links-provider.js +16 -5
  15. package/dist/esm/ui/menu-item/menu-item.js +1 -1
  16. package/dist/esm/ui/page-layout/root.js +11 -1
  17. package/dist/types/components/skip-links/skip-links-container.d.ts +13 -8
  18. package/dist/types/context/skip-links/skip-links-data-context.d.ts +15 -1
  19. package/dist/types/context/skip-links/skip-links-provider.d.ts +9 -4
  20. package/dist/types-ts4.5/components/skip-links/skip-links-container.d.ts +13 -8
  21. package/dist/types-ts4.5/context/skip-links/skip-links-data-context.d.ts +15 -1
  22. package/dist/types-ts4.5/context/skip-links/skip-links-provider.d.ts +9 -4
  23. package/package.json +9 -10
  24. package/afm-cc/tsconfig.json +0 -78
  25. package/afm-dev-agents/tsconfig.json +0 -78
  26. package/afm-jira/tsconfig.json +0 -78
  27. package/afm-passionfruit/tsconfig.json +0 -78
  28. package/afm-post-office/tsconfig.json +0 -78
  29. package/afm-rovo-extension/tsconfig.json +0 -78
  30. package/afm-townsquare/tsconfig.json +0 -78
  31. package/afm-volt/tsconfig.json +0 -78
  32. package/build/tsconfig.json +0 -23
  33. package/docs/00-intro.tsx +0 -14
  34. package/examples/advanced-layout.tsx +0 -144
  35. package/examples/button-menu-item.tsx +0 -426
  36. package/examples/company-hub-mock.tsx +0 -219
  37. package/examples/composition.tsx +0 -424
  38. package/examples/confluence-mock.tsx +0 -381
  39. package/examples/constellation/common/mock-content.tsx +0 -39
  40. package/examples/constellation/common/mock-top-bar.tsx +0 -20
  41. package/examples/constellation/layout/custom-skip-links.tsx +0 -12
  42. package/examples/constellation/layout/custom-theming--parse-hex.tsx +0 -19
  43. package/examples/constellation/layout/custom-theming--parse-hsl.tsx +0 -22
  44. package/examples/constellation/layout/custom-theming--parse-rgb.tsx +0 -22
  45. package/examples/constellation/layout/custom-theming--parse-user-color.tsx +0 -22
  46. package/examples/constellation/layout/custom-theming--rgb-object.tsx +0 -21
  47. package/examples/constellation/layout/expand-side-nav.tsx +0 -17
  48. package/examples/constellation/layout/toggle-side-nav-keyboard-shortcut.tsx +0 -25
  49. package/examples/constellation/side-nav-items/actions-and-actions-on-hover.tsx +0 -153
  50. package/examples/constellation/side-nav-items/button-menu-item.tsx +0 -133
  51. package/examples/constellation/side-nav-items/common/global-app-icon-tile.tsx +0 -43
  52. package/examples/constellation/side-nav-items/common/mock-side-nav.tsx +0 -18
  53. package/examples/constellation/side-nav-items/container-avatar.tsx +0 -32
  54. package/examples/constellation/side-nav-items/elem-after.tsx +0 -60
  55. package/examples/constellation/side-nav-items/elem-before.tsx +0 -116
  56. package/examples/constellation/side-nav-items/expandable-menu-item-default-variant.tsx +0 -219
  57. package/examples/constellation/side-nav-items/expandable-menu-item-link-variant.tsx +0 -278
  58. package/examples/constellation/side-nav-items/flyout-menu-item.tsx +0 -156
  59. package/examples/constellation/side-nav-items/link-menu-item.tsx +0 -161
  60. package/examples/constellation/side-nav-items/menu-divider.tsx +0 -114
  61. package/examples/constellation/side-nav-items/menu-section.tsx +0 -177
  62. package/examples/constellation/side-nav-items/right-to-left.tsx +0 -144
  63. package/examples/constellation/side-nav-items/top-level-spacer.tsx +0 -82
  64. package/examples/constellation/side-nav-items/truncation.tsx +0 -58
  65. package/examples/constellation/top-nav-items/app-logo.tsx +0 -19
  66. package/examples/constellation/top-nav-items/custom-logo.tsx +0 -28
  67. package/examples/constellation/top-nav-items/custom-theming--buttons.tsx +0 -27
  68. package/examples/constellation/top-nav-items/custom-theming--logo.tsx +0 -27
  69. package/examples/constellation/top-nav-items/custom-theming--search.tsx +0 -28
  70. package/examples/constellation/top-nav-items/custom-title.tsx +0 -20
  71. package/examples/constellation/top-nav-items/end-item.tsx +0 -23
  72. package/examples/constellation/top-nav-items/top-nav-button.tsx +0 -34
  73. package/examples/constellation/top-nav-items/top-nav-end.tsx +0 -25
  74. package/examples/constellation/top-nav-items/top-nav-middle.tsx +0 -19
  75. package/examples/constellation/top-nav-items/top-nav-start.tsx +0 -31
  76. package/examples/drag-and-drop/jira/data.tsx +0 -320
  77. package/examples/drag-and-drop/jira/entry.tsx +0 -89
  78. package/examples/drag-and-drop/jira/filters/filter-move-modal.tsx +0 -171
  79. package/examples/drag-and-drop/jira/filters/filter-tree-utils.tsx +0 -134
  80. package/examples/drag-and-drop/jira/filters/filters-menu-item.tsx +0 -470
  81. package/examples/drag-and-drop/jira/for-you/for-you-menu-item.tsx +0 -74
  82. package/examples/drag-and-drop/jira/projects/project-tile.tsx +0 -37
  83. package/examples/drag-and-drop/jira/projects/project.tsx +0 -257
  84. package/examples/drag-and-drop/jira/projects/projects-menu-item.tsx +0 -120
  85. package/examples/drag-and-drop/jira/recent/recent-menu-item.tsx +0 -30
  86. package/examples/drag-and-drop/jira/reducer.tsx +0 -78
  87. package/examples/drag-and-drop/jira/registry.tsx +0 -52
  88. package/examples/drag-and-drop/jira/reorder-actions.tsx +0 -75
  89. package/examples/drag-and-drop/jira/shared-top-level-flyout.tsx +0 -144
  90. package/examples/drag-and-drop/jira/sidebar.tsx +0 -361
  91. package/examples/drag-and-drop/jira/starred/starred-menu-item.tsx +0 -29
  92. package/examples/drag-and-drop/jira/state-context.tsx +0 -34
  93. package/examples/drag-and-drop/jira/top-level-shared-more-menu.tsx +0 -99
  94. package/examples/drag-and-drop/sidebar-example-container.tsx +0 -38
  95. package/examples/drag-and-drop/simple.tsx +0 -653
  96. package/examples/drag-and-drop/standalone-jira-sidebar-centered.tsx +0 -27
  97. package/examples/drag-and-drop/standalone-jira-sidebar.tsx +0 -18
  98. package/examples/drag-and-drop-in-the-sidebar-flyout.tsx +0 -161
  99. package/examples/drag-and-drop-jira-scaling-vr.tsx +0 -25
  100. package/examples/drag-and-drop-jira-sidebar-centered.tsx +0 -1
  101. package/examples/drag-and-drop-jira-sidebar-standalone.tsx +0 -1
  102. package/examples/drag-and-drop-jira.tsx +0 -1
  103. package/examples/drag-and-drop.tsx +0 -1
  104. package/examples/expandable-menu-item.tsx +0 -775
  105. package/examples/flyout-menu-item-async-content.tsx +0 -118
  106. package/examples/flyout-menu-item-multiple.tsx +0 -180
  107. package/examples/flyout-menu-item.tsx +0 -269
  108. package/examples/images/200x20.png +0 -0
  109. package/examples/images/200x200.png +0 -0
  110. package/examples/images/20x20.png +0 -0
  111. package/examples/images/20x200.png +0 -0
  112. package/examples/images/cd.svg +0 -9
  113. package/examples/images/koala.png +0 -0
  114. package/examples/images/koala.svg +0 -9
  115. package/examples/images/money.svg +0 -9
  116. package/examples/images/science.svg +0 -20
  117. package/examples/interactive-layout.tsx +0 -286
  118. package/examples/layers-in-main.tsx +0 -294
  119. package/examples/legacy-var-testing.tsx +0 -173
  120. package/examples/link-menu-item.tsx +0 -383
  121. package/examples/main-content-border.tsx +0 -148
  122. package/examples/menu-item-avatar.tsx +0 -41
  123. package/examples/menu-item-conditional-tooltip.tsx +0 -304
  124. package/examples/menu-item-focus-ring-bleed.tsx +0 -50
  125. package/examples/menu-item-integration.tsx +0 -207
  126. package/examples/menu-item-narrow.tsx +0 -290
  127. package/examples/menu-item-scroll-into-view.tsx +0 -283
  128. package/examples/menu-items-deeply-nested.tsx +0 -330
  129. package/examples/menu-list.tsx +0 -62
  130. package/examples/menu-section.tsx +0 -78
  131. package/examples/page-layout-all-slots-banner-height-zero.tsx +0 -3
  132. package/examples/page-layout-all-slots-custom-sizes.tsx +0 -3
  133. package/examples/page-layout-all-slots-rtl.tsx +0 -3
  134. package/examples/page-layout-all-slots-scrollable.tsx +0 -3
  135. package/examples/page-layout-all-slots.tsx +0 -3
  136. package/examples/page-layout-aside-border.tsx +0 -149
  137. package/examples/page-layout-content-is-iframes.tsx +0 -3
  138. package/examples/page-layout-edge-case-absolute-positioned-collapsed-custom-sizes.tsx +0 -3
  139. package/examples/page-layout-edge-case-absolute-positioned-collapsed.tsx +0 -3
  140. package/examples/page-layout-edge-case-absolute-positioned-panel-visible.tsx +0 -3
  141. package/examples/page-layout-edge-case-absolute-positioned-resizable.tsx +0 -3
  142. package/examples/page-layout-edge-case-absolute-positioned.tsx +0 -3
  143. package/examples/page-layout-edge-case-using-legacy-vars.tsx +0 -3
  144. package/examples/page-layout-full-screen.tsx +0 -251
  145. package/examples/page-layout-implicit-rows.tsx +0 -33
  146. package/examples/page-layout-main-aside-scrollable.tsx +0 -3
  147. package/examples/page-layout-main-aside.tsx +0 -3
  148. package/examples/page-layout-panel-aside-default-widths.tsx +0 -241
  149. package/examples/page-layout-resizable-rtl.tsx +0 -3
  150. package/examples/page-layout-resizable.tsx +0 -3
  151. package/examples/page-layout-side-nav-collapse-shortcut.tsx +0 -47
  152. package/examples/page-layout-side-nav-content-scroll-with-sticky.tsx +0 -135
  153. package/examples/page-layout-side-nav-custom-width-greater-than-max.tsx +0 -3
  154. package/examples/page-layout-side-nav-custom-width-smaller-than-min.tsx +0 -3
  155. package/examples/page-layout-side-nav-main-aside-scrollable.tsx +0 -3
  156. package/examples/page-layout-side-nav-main-aside.tsx +0 -3
  157. package/examples/page-layout-side-nav-onboarding.tsx +0 -155
  158. package/examples/page-layout-side-nav-overflowing-children.tsx +0 -3
  159. package/examples/page-layout-side-nav-slots.tsx +0 -173
  160. package/examples/page-layout-side-nav-with-menu-items.tsx +0 -3
  161. package/examples/page-layout-top-bar-side-nav-main-aside-scrollable.tsx +0 -3
  162. package/examples/page-layout-top-bar-side-nav-main-aside.tsx +0 -3
  163. package/examples/page-layout-top-bar-side-nav-main-scrollable.tsx +0 -3
  164. package/examples/page-layout-top-bar-side-nav-main.tsx +0 -3
  165. package/examples/page-layout.tsx +0 -941
  166. package/examples/panel-splitter.tsx +0 -199
  167. package/examples/resizable-slots.tsx +0 -357
  168. package/examples/side-nav-flyout.tsx +0 -256
  169. package/examples/stand-alone-iframe.tsx +0 -23
  170. package/examples/temp-icons/app-switcher-legacy.tsx +0 -14
  171. package/examples/temp-icons/atlassian-intelligence.tsx +0 -14
  172. package/examples/temp-icons/help.tsx +0 -18
  173. package/examples/temp-icons/menu.tsx +0 -14
  174. package/examples/temp-icons/settings.tsx +0 -14
  175. package/examples/top-level-spacer.tsx +0 -55
  176. package/examples/top-nav-custom-profile-image.tsx +0 -71
  177. package/examples/top-nav-side-nav-collapsed.tsx +0 -74
  178. package/examples/top-nav-with-long-name.tsx +0 -63
  179. package/examples/top-nav-with-temp-nav-app-icon-app-logo.tsx +0 -65
  180. package/examples/top-nav-with-temp-nav-app-icon-custom-logo.tsx +0 -63
  181. package/examples/top-navigation-custom-logo.tsx +0 -108
  182. package/examples/top-navigation-stress.tsx +0 -244
  183. package/examples/top-navigation-themed-buttons.tsx +0 -63
  184. package/examples/top-navigation-theming-logged-out.tsx +0 -75
  185. package/examples/top-navigation-theming-with-picker.tsx +0 -128
  186. package/examples/top-navigation-theming.tsx +0 -197
  187. package/examples/top-navigation.tsx +0 -126
  188. package/examples/utils/example-utils.tsx +0 -14
  189. package/examples/utils/long-placeholder-content.tsx +0 -161
  190. package/examples/utils/mock-root.tsx +0 -19
  191. package/examples/utils/mock-search.tsx +0 -67
  192. package/src/__tests__/informational-vr-tests/__snapshots__/layering/layers-in-main-slot--desktop--platform-dst-nav4-layering-in-main-slot-fixes-false.png +0 -0
  193. package/src/__tests__/informational-vr-tests/__snapshots__/layering/layers-in-main-slot--desktop--platform-dst-nav4-layering-in-main-slot-fixes-true.png +0 -0
  194. package/src/__tests__/informational-vr-tests/__snapshots__/layering/layers-in-main-slot-short-viewport--desktop--platform-dst-nav4-layering-in-main-slot-fixes-false.png +0 -0
  195. package/src/__tests__/informational-vr-tests/__snapshots__/layering/layers-in-main-slot-short-viewport--desktop--platform-dst-nav4-layering-in-main-slot-fixes-true.png +0 -0
  196. package/src/__tests__/informational-vr-tests/__snapshots__/layering/side-nav-expanded-on-mobile--mobile.png +0 -0
  197. package/src/__tests__/informational-vr-tests/__snapshots__/layering/side-nav-expanded-on-mobile-without-panel--mobile.png +0 -0
  198. package/src/__tests__/informational-vr-tests/__snapshots__/menu-items-deeply-nested/side-nav-with-deeply-nested-menu-items---nested-menu-item-selected--default.png +0 -0
  199. package/src/__tests__/informational-vr-tests/__snapshots__/menu-items-deeply-nested/side-nav-with-deeply-nested-menu-items---scrolled-to-the-end--default.png +0 -0
  200. package/src/__tests__/informational-vr-tests/__snapshots__/menu-items-deeply-nested/side-nav-with-deeply-nested-menu-items--default.png +0 -0
  201. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop---hover-bug--desktop-chrome.png +0 -0
  202. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop---hover-bug--desktop-firefox.png +0 -0
  203. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop---hover-bug--desktop-webkit.png +0 -0
  204. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop--desktop-chrome.png +0 -0
  205. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop--desktop-firefox.png +0 -0
  206. package/src/__tests__/informational-vr-tests/__snapshots__/sidebar-drag-and-drop/sidebar-drag-and-drop--desktop-webkit.png +0 -0
  207. package/src/__tests__/informational-vr-tests/layering.vr.tsx +0 -76
  208. package/src/__tests__/informational-vr-tests/menu-items-deeply-nested.vr.tsx +0 -33
  209. package/src/__tests__/informational-vr-tests/sidebar-drag-and-drop.vr.tsx +0 -100
  210. package/src/__tests__/playwright/drag-and-drop-in-the-sidebar-flyout.spec.tsx +0 -235
  211. package/src/__tests__/playwright/expandable-menu-item.spec.tsx +0 -20
  212. package/src/__tests__/playwright/flyout-menu-item.spec.tsx +0 -22
  213. package/src/__tests__/playwright/legacy-vars.spec.tsx +0 -298
  214. package/src/__tests__/playwright/menu-item-in-sidebar-drag-and-drop.spec.tsx +0 -70
  215. package/src/__tests__/playwright/page-layout.spec.tsx +0 -23
  216. package/src/__tests__/playwright/panel.spec.tsx +0 -241
  217. package/src/__tests__/playwright/resizing.spec.tsx +0 -541
  218. package/src/__tests__/playwright/side-nav-flyout.spec.tsx +0 -223
  219. package/src/__tests__/playwright/side-nav-responsiveness.spec.tsx +0 -208
  220. package/src/__tests__/playwright/skip-links.spec.tsx +0 -111
  221. package/src/__tests__/playwright/top-nav-end.spec.tsx +0 -96
  222. package/src/__tests__/vr-tests/__snapshots__/a11y-scaling/app--desktop.png +0 -0
  223. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-no-panel-vr--desktop-large.png +0 -0
  224. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-no-panel-vr--desktop.png +0 -0
  225. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-no-panel-vr--mobile.png +0 -0
  226. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-scrolled-vr--desktop-large.png +0 -0
  227. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-scrolled-vr--desktop.png +0 -0
  228. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-scrolled-vr--mobile.png +0 -0
  229. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-vr--desktop-large-splitter.png +0 -0
  230. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-vr--desktop-large.png +0 -0
  231. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-vr--desktop.png +0 -0
  232. package/src/__tests__/vr-tests/__snapshots__/layering/scrollable-vr--mobile.png +0 -0
  233. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-no-panel-vr--desktop-large.png +0 -0
  234. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-no-panel-vr--desktop.png +0 -0
  235. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-no-panel-vr--mobile.png +0 -0
  236. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-vr--desktop-large.png +0 -0
  237. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-vr--desktop.png +0 -0
  238. package/src/__tests__/vr-tests/__snapshots__/layering/unscrollable-vr--mobile.png +0 -0
  239. package/src/__tests__/vr-tests/__snapshots__/skip-links/skip-links--light-mode.png +0 -0
  240. package/src/__tests__/vr-tests/a11y-scaling.vr.tsx +0 -12
  241. package/src/__tests__/vr-tests/layering.vr.tsx +0 -82
  242. package/src/__tests__/vr-tests/skip-links.vr.tsx +0 -14
  243. package/src/components/__tests__/unit/badge-container.test.tsx +0 -62
  244. package/src/components/__tests__/unit/list.test.tsx +0 -74
  245. package/src/components/badge-container.tsx +0 -72
  246. package/src/components/forward-ref-with-generic.tsx +0 -8
  247. package/src/components/list-item.tsx +0 -39
  248. package/src/components/list.tsx +0 -44
  249. package/src/components/skip-links/__tests__/unit/skip-links-container.test.tsx +0 -411
  250. package/src/components/skip-links/skip-link.tsx +0 -140
  251. package/src/components/skip-links/skip-links-container.tsx +0 -112
  252. package/src/context/skip-links/skip-links-context.tsx +0 -74
  253. package/src/context/skip-links/skip-links-data-context.tsx +0 -41
  254. package/src/context/skip-links/skip-links-provider.tsx +0 -74
  255. package/src/context/skip-links/types.tsx +0 -29
  256. package/src/context/top-nav-start/top-nav-start-context-provider.tsx +0 -26
  257. package/src/context/top-nav-start/top-nav-start-context.tsx +0 -21
  258. package/src/entry-points/experimental/color-utils/parse-hex.tsx +0 -1
  259. package/src/entry-points/experimental/color-utils/parse-hsl.tsx +0 -1
  260. package/src/entry-points/experimental/color-utils/parse-rgb.tsx +0 -1
  261. package/src/entry-points/experimental/color-utils/parse-user-color.tsx +0 -1
  262. package/src/entry-points/experimental/top-nav-button.tsx +0 -6
  263. package/src/entry-points/experimental/use-has-custom-theme.tsx +0 -1
  264. package/src/entry-points/experimental/use-legacy-search-theme.tsx +0 -1
  265. package/src/entry-points/layout/aside.tsx +0 -1
  266. package/src/entry-points/layout/banner.tsx +0 -1
  267. package/src/entry-points/layout/main.tsx +0 -7
  268. package/src/entry-points/layout/panel-splitter.tsx +0 -3
  269. package/src/entry-points/layout/panel.tsx +0 -1
  270. package/src/entry-points/layout/root.tsx +0 -1
  271. package/src/entry-points/layout/side-nav.tsx +0 -7
  272. package/src/entry-points/layout/skip-links.tsx +0 -2
  273. package/src/entry-points/layout/top-nav.tsx +0 -4
  274. package/src/entry-points/side-nav-items/button-menu-item.tsx +0 -3
  275. package/src/entry-points/side-nav-items/container-avatar.tsx +0 -1
  276. package/src/entry-points/side-nav-items/drag-and-drop/drag-preview.tsx +0 -1
  277. package/src/entry-points/side-nav-items/drag-and-drop/drop-indicator.tsx +0 -5
  278. package/src/entry-points/side-nav-items/drag-and-drop/group-drop-indicator.tsx +0 -1
  279. package/src/entry-points/side-nav-items/drag-and-drop/hitbox.tsx +0 -7
  280. package/src/entry-points/side-nav-items/drag-and-drop/use-menu-item-drag-and-drop.tsx +0 -4
  281. package/src/entry-points/side-nav-items/expandable-menu-item.tsx +0 -13
  282. package/src/entry-points/side-nav-items/flyout-menu-item.tsx +0 -13
  283. package/src/entry-points/side-nav-items/link-menu-item.tsx +0 -3
  284. package/src/entry-points/side-nav-items/menu-list-item.tsx +0 -1
  285. package/src/entry-points/side-nav-items/menu-list.tsx +0 -1
  286. package/src/entry-points/side-nav-items/menu-section.tsx +0 -3
  287. package/src/entry-points/side-nav-items/top-level-spacer.tsx +0 -1
  288. package/src/entry-points/top-nav-items/create-button.tsx +0 -1
  289. package/src/entry-points/top-nav-items/custom-title.tsx +0 -1
  290. package/src/entry-points/top-nav-items/help.tsx +0 -1
  291. package/src/entry-points/top-nav-items/index.tsx +0 -14
  292. package/src/entry-points/top-nav-items/log-in.tsx +0 -1
  293. package/src/entry-points/top-nav-items/notifications.tsx +0 -1
  294. package/src/entry-points/top-nav-items/profile.tsx +0 -1
  295. package/src/entry-points/top-nav-items/settings.tsx +0 -1
  296. package/src/index.tsx +0 -74
  297. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/flyout-menu-item-async-content/long-content-after-short-skeleton--default.png +0 -0
  298. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/flyout-menu-item-async-content/long-skeleton--default.png +0 -0
  299. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/flyout-menu-item-async-content/short-content-after-long-skeleton--default.png +0 -0
  300. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/flyout-menu-item-async-content/short-skeleton--default.png +0 -0
  301. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/button-menu-item---disabled---pressed--default.png +0 -0
  302. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/button-menu-item---pressed--default.png +0 -0
  303. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/expandable-menu-item---not-selectable---pressed--default.png +0 -0
  304. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/expandable-menu-item---selectable---pressed--default.png +0 -0
  305. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/expandable-menu-item---selected---pressed--default.png +0 -0
  306. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/flyout-menu-item---pressed--default.png +0 -0
  307. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/flyout-menu-item---selected---pressed--default.png +0 -0
  308. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/link-menu-item---pressed--default.png +0 -0
  309. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/link-menu-item---scroll-into-view-behavior--desktop-chrome.png +0 -0
  310. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/link-menu-item---scroll-into-view-behavior--desktop-firefox.png +0 -0
  311. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/link-menu-item---scroll-into-view-behavior--desktop-safari.png +0 -0
  312. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item/link-menu-item---selected---pressed--default.png +0 -0
  313. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-click-target---desktop-chrome.png +0 -0
  314. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-click-target---desktop-firefox.png +0 -0
  315. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-click-target---desktop-webkit.png +0 -0
  316. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-hover---desktop-chrome.png +0 -0
  317. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-hover---desktop-firefox.png +0 -0
  318. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-hover---desktop-webkit.png +0 -0
  319. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-too-far-back---desktop-chrome.png +0 -0
  320. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-too-far-back---desktop-firefox.png +0 -0
  321. package/src/ui/menu-item/__tests__/informational-vr-tests/__snapshots__/menu-item-increased-hitbox/increasing-hitbox-for-nested-items-too-far-back---desktop-webkit.png +0 -0
  322. package/src/ui/menu-item/__tests__/informational-vr-tests/flyout-menu-item-async-content.vr.tsx +0 -33
  323. package/src/ui/menu-item/__tests__/informational-vr-tests/menu-item-increased-hitbox.vr.tsx +0 -79
  324. package/src/ui/menu-item/__tests__/informational-vr-tests/menu-item.vr.tsx +0 -151
  325. package/src/ui/menu-item/__tests__/playwright/flyout-menu-item.spec.tsx +0 -38
  326. package/src/ui/menu-item/__tests__/playwright/scroll-into-view.spec.tsx +0 -91
  327. package/src/ui/menu-item/__tests__/unit/_util.tsx +0 -40
  328. package/src/ui/menu-item/__tests__/unit/expandable-menu-item.test.tsx +0 -1119
  329. package/src/ui/menu-item/__tests__/unit/flyout-menu-item.test.tsx +0 -545
  330. package/src/ui/menu-item/__tests__/unit/menu-item.test.tsx +0 -649
  331. package/src/ui/menu-item/__tests__/unit/top-level-spacer.test.tsx +0 -94
  332. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item--desktop-chrome.png +0 -0
  333. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item--desktop-webkit.png +0 -0
  334. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-combine--desktop-chrome.png +0 -0
  335. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-combine--desktop-webkit.png +0 -0
  336. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-reorder-after--desktop-chrome.png +0 -0
  337. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-reorder-after--desktop-webkit.png +0 -0
  338. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-reorder-before--desktop-chrome.png +0 -0
  339. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/button-menu-item-reorder-before--desktop-webkit.png +0 -0
  340. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-combine--desktop-chrome.png +0 -0
  341. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-combine--desktop-webkit.png +0 -0
  342. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-reorder-after--desktop-chrome.png +0 -0
  343. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-reorder-after--desktop-webkit.png +0 -0
  344. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-reorder-before--desktop-chrome.png +0 -0
  345. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-reorder-before--desktop-webkit.png +0 -0
  346. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-trigger--desktop-chrome.png +0 -0
  347. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/expandable-menu-item-trigger--desktop-webkit.png +0 -0
  348. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-combine--desktop-chrome.png +0 -0
  349. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-combine--desktop-webkit.png +0 -0
  350. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-reorder-after--desktop-chrome.png +0 -0
  351. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-reorder-after--desktop-webkit.png +0 -0
  352. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-reorder-before--desktop-chrome.png +0 -0
  353. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-reorder-before--desktop-webkit.png +0 -0
  354. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-trigger--desktop-chrome.png +0 -0
  355. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/flyout-menu-item-trigger--desktop-webkit.png +0 -0
  356. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item--desktop-chrome.png +0 -0
  357. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item--desktop-webkit.png +0 -0
  358. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-combine--desktop-chrome.png +0 -0
  359. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-combine--desktop-webkit.png +0 -0
  360. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-combine-blocked--desktop-chrome.png +0 -0
  361. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-combine-blocked--desktop-webkit.png +0 -0
  362. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-after--desktop-chrome.png +0 -0
  363. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-after--desktop-webkit.png +0 -0
  364. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-after-blocked--desktop-chrome.png +0 -0
  365. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-after-blocked--desktop-webkit.png +0 -0
  366. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-before--desktop-chrome.png +0 -0
  367. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-before--desktop-webkit.png +0 -0
  368. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-before-blocked--desktop-chrome.png +0 -0
  369. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/drag-and-drop/link-menu-item-reorder-before-blocked--desktop-webkit.png +0 -0
  370. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---action-focused--default.png +0 -0
  371. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---action-hovered--default.png +0 -0
  372. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---default-state--default.png +0 -0
  373. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---elembefore-focused--default.png +0 -0
  374. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---elembefore-hovered--default.png +0 -0
  375. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---menu-item-focused--default.png +0 -0
  376. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---custom-elembefore---menu-item-hovered--default.png +0 -0
  377. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---selected-with-dropdown-action-open--default.png +0 -0
  378. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---with-dropdown-action-open--default.png +0 -0
  379. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item---with-dropdown-action-open-and-hovered--default.png +0 -0
  380. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-collapsed-with-selected-child--default.png +0 -0
  381. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-expanded-with-actions-on-hover--default.png +0 -0
  382. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-expanded-with-actions-on-hover-and-elem-after--default.png +0 -0
  383. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-expanded-with-elem-after--default.png +0 -0
  384. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-nested--default.png +0 -0
  385. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-nested-rtl--default.png +0 -0
  386. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-selected--default.png +0 -0
  387. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-selected-with-icon--default.png +0 -0
  388. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions--default.png +0 -0
  389. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions-on-hover---hovered--default.png +0 -0
  390. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions-on-hover---selected-and-hovered--default.png +0 -0
  391. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions-on-hover--default.png +0 -0
  392. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions-on-hover-and-elem-after---hovered--default.png +0 -0
  393. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/expandable/expandable-menu-item-with-actions-on-hover-and-elem-after--default.png +0 -0
  394. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/a-flyout-menu-with-a-nested-popup-using-shouldrendertoparent---default.png +0 -0
  395. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/flyout-menu-item-default-open-example--default.png +0 -0
  396. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/flyout-menu-item-default-open-rtl--default.png +0 -0
  397. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/flyout-menu-item-default-open-selected-vr--default.png +0 -0
  398. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/flyout-menu-item-example--default.png +0 -0
  399. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/flyout-menu-item/flyout-menu-item-rtl--default.png +0 -0
  400. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled---hovered--desktop-chrome.png +0 -0
  401. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled---hovered--desktop-firefox.png +0 -0
  402. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled---hovered--desktop-webkit.png +0 -0
  403. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled--desktop-chrome.png +0 -0
  404. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled--desktop-firefox.png +0 -0
  405. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled--desktop-webkit.png +0 -0
  406. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled-with-actions--desktop-chrome.png +0 -0
  407. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled-with-actions--desktop-firefox.png +0 -0
  408. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---disabled-with-actions--desktop-webkit.png +0 -0
  409. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---with-dropdown-action-open--desktop-chrome.png +0 -0
  410. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---with-dropdown-action-open--desktop-firefox.png +0 -0
  411. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item---with-dropdown-action-open--desktop-webkit.png +0 -0
  412. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-example--desktop-chrome.png +0 -0
  413. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-example--desktop-firefox.png +0 -0
  414. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-example--desktop-webkit.png +0 -0
  415. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-rtlexample--desktop-chrome.png +0 -0
  416. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-rtlexample--desktop-firefox.png +0 -0
  417. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-rtlexample--desktop-webkit.png +0 -0
  418. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-focus--desktop-chrome.png +0 -0
  419. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-focus--desktop-firefox.png +0 -0
  420. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-focus--desktop-webkit.png +0 -0
  421. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-hover--desktop-chrome.png +0 -0
  422. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-hover--desktop-firefox.png +0 -0
  423. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-actions-on-hover-appearing-on-hover--desktop-webkit.png +0 -0
  424. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-elem-after-and-hovered--desktop-chrome.png +0 -0
  425. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-elem-after-and-hovered--desktop-firefox.png +0 -0
  426. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-elem-after-and-hovered--desktop-webkit.png +0 -0
  427. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-popup--desktop-chrome.png +0 -0
  428. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-popup--desktop-firefox.png +0 -0
  429. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/button-menu-item-with-popup--desktop-webkit.png +0 -0
  430. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item---with-dropdown-action-open--desktop-chrome.png +0 -0
  431. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item---with-dropdown-action-open--desktop-firefox.png +0 -0
  432. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item---with-dropdown-action-open--desktop-webkit.png +0 -0
  433. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-bleed--desktop-chrome.png +0 -0
  434. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-bleed--desktop-firefox.png +0 -0
  435. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-bleed--desktop-webkit.png +0 -0
  436. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-example--desktop-chrome.png +0 -0
  437. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-example--desktop-firefox.png +0 -0
  438. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-example--desktop-webkit.png +0 -0
  439. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-rtlexample--desktop-chrome.png +0 -0
  440. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-rtlexample--desktop-firefox.png +0 -0
  441. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-rtlexample--desktop-webkit.png +0 -0
  442. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-focus--desktop-chrome.png +0 -0
  443. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-focus--desktop-firefox.png +0 -0
  444. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-focus--desktop-webkit.png +0 -0
  445. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-hover--desktop-chrome.png +0 -0
  446. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-hover--desktop-firefox.png +0 -0
  447. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-actions-on-hover-appearing-on-hover--desktop-webkit.png +0 -0
  448. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-elem-after-and-hovered--desktop-chrome.png +0 -0
  449. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-elem-after-and-hovered--desktop-firefox.png +0 -0
  450. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/link-menu-item-with-elem-after-and-hovered--desktop-webkit.png +0 -0
  451. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-item-avatar-example--desktop-chrome.png +0 -0
  452. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-item-avatar-example--desktop-firefox.png +0 -0
  453. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-item-avatar-example--desktop-webkit.png +0 -0
  454. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-items-in-a-narrow-container--desktop-chrome.png +0 -0
  455. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-items-in-a-narrow-container--desktop-firefox.png +0 -0
  456. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item/menu-items-in-a-narrow-container--desktop-webkit.png +0 -0
  457. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-long---description-long---default.png +0 -0
  458. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-long---description-none---default.png +0 -0
  459. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-long---description-short---default.png +0 -0
  460. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-short---description-long---default.png +0 -0
  461. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-short---description-none---default.png +0 -0
  462. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item--content-short---description-short---default.png +0 -0
  463. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item-add-action-button--default.png +0 -0
  464. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/button-menu-item-with-tooltip-disabled--default.png +0 -0
  465. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/expandable-menu-item--content-long---default.png +0 -0
  466. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/expandable-menu-item--content-short---default.png +0 -0
  467. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/expandable-menu-item-with-tooltip-disabled--default.png +0 -0
  468. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/flyout-menu-item--content-long---default.png +0 -0
  469. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/flyout-menu-item--content-short---default.png +0 -0
  470. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/flyout-menu-item-with-tooltip-disabled--default.png +0 -0
  471. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-long---description-long---default.png +0 -0
  472. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-long---description-none---default.png +0 -0
  473. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-long---description-short---default.png +0 -0
  474. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-short---description-long---default.png +0 -0
  475. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-short---description-none---default.png +0 -0
  476. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item--content-short---description-short---default.png +0 -0
  477. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/link-menu-item-with-tooltip-disabled--default.png +0 -0
  478. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/menu-item-conditional-tooltip/menu-item-button-with-nested-children--default.png +0 -0
  479. package/src/ui/menu-item/__tests__/vr-tests/__snapshots__/top-level-spacer/top-level-spacer-example--default.png +0 -0
  480. package/src/ui/menu-item/__tests__/vr-tests/drag-and-drop.vr.tsx +0 -172
  481. package/src/ui/menu-item/__tests__/vr-tests/expandable.vr.tsx +0 -248
  482. package/src/ui/menu-item/__tests__/vr-tests/flyout-menu-item.vr.tsx +0 -46
  483. package/src/ui/menu-item/__tests__/vr-tests/menu-item-conditional-tooltip.vr.tsx +0 -312
  484. package/src/ui/menu-item/__tests__/vr-tests/menu-item.vr.tsx +0 -210
  485. package/src/ui/menu-item/__tests__/vr-tests/top-level-spacer.vr.tsx +0 -17
  486. package/src/ui/menu-item/button-menu-item.tsx +0 -87
  487. package/src/ui/menu-item/constants.tsx +0 -15
  488. package/src/ui/menu-item/container-avatar.tsx +0 -39
  489. package/src/ui/menu-item/drag-and-drop/drag-preview.tsx +0 -98
  490. package/src/ui/menu-item/drag-and-drop/drop-indicator.tsx +0 -11
  491. package/src/ui/menu-item/drag-and-drop/group-drop-indicator.tsx +0 -7
  492. package/src/ui/menu-item/drag-and-drop/hitbox.tsx +0 -13
  493. package/src/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.tsx +0 -243
  494. package/src/ui/menu-item/drag-handle.tsx +0 -42
  495. package/src/ui/menu-item/expandable-menu-item/expandable-menu-item-content.tsx +0 -84
  496. package/src/ui/menu-item/expandable-menu-item/expandable-menu-item-context.tsx +0 -61
  497. package/src/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.tsx +0 -9
  498. package/src/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.tsx +0 -334
  499. package/src/ui/menu-item/expandable-menu-item/expandable-menu-item.tsx +0 -114
  500. package/src/ui/menu-item/flyout-menu-item/flyout-menu-item-content.tsx +0 -188
  501. package/src/ui/menu-item/flyout-menu-item/flyout-menu-item-context.tsx +0 -19
  502. package/src/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.tsx +0 -124
  503. package/src/ui/menu-item/flyout-menu-item/flyout-menu-item.tsx +0 -98
  504. package/src/ui/menu-item/link-menu-item.tsx +0 -119
  505. package/src/ui/menu-item/menu-item-signals.tsx +0 -6
  506. package/src/ui/menu-item/menu-item.tsx +0 -848
  507. package/src/ui/menu-item/menu-list-item.tsx +0 -12
  508. package/src/ui/menu-item/menu-list.tsx +0 -12
  509. package/src/ui/menu-item/top-level-spacer.tsx +0 -49
  510. package/src/ui/menu-item/types.tsx +0 -181
  511. package/src/ui/menu-item/use-scroll-menu-item-into-view.tsx +0 -78
  512. package/src/ui/menu-section/__tests__/unit/menu-section.test.tsx +0 -96
  513. package/src/ui/menu-section/__tests__/vr-tests/__snapshots__/divider/divider--default.png +0 -0
  514. package/src/ui/menu-section/__tests__/vr-tests/__snapshots__/menu-section/menu-section-example--default.png +0 -0
  515. package/src/ui/menu-section/__tests__/vr-tests/divider.vr.tsx +0 -14
  516. package/src/ui/menu-section/__tests__/vr-tests/menu-section.vr.tsx +0 -14
  517. package/src/ui/menu-section/divider.tsx +0 -33
  518. package/src/ui/menu-section/menu-section-context.tsx +0 -15
  519. package/src/ui/menu-section/menu-section-heading.tsx +0 -43
  520. package/src/ui/menu-section/menu-section.tsx +0 -70
  521. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/page-layout/large-panel-default-width-on-mobile--desktop--platform-design-system-nav4-panel-mobile-width-fix-false.png +0 -0
  522. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/page-layout/large-panel-default-width-on-mobile--desktop--platform-design-system-nav4-panel-mobile-width-fix-true.png +0 -0
  523. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/page-layout/small-panel-default-width-on-mobile--desktop--platform-design-system-nav4-panel-mobile-width-fix-false.png +0 -0
  524. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/page-layout/small-panel-default-width-on-mobile--desktop--platform-design-system-nav4-panel-mobile-width-fix-true.png +0 -0
  525. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-false.png +0 -0
  526. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-true.png +0 -0
  527. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-false.png +0 -0
  528. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-true.png +0 -0
  529. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-flyout--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-false.png +0 -0
  530. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-flyout--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-true.png +0 -0
  531. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-flyout--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-false.png +0 -0
  532. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/above-md-breakpoint---side-nav-flyout--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-true.png +0 -0
  533. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/below-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-false.png +0 -0
  534. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/below-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-false-platform-design-system-nav4-sidenav-border-true.png +0 -0
  535. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/below-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-false.png +0 -0
  536. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/slot-borders/below-md-breakpoint---side-nav-expanded--default--platform-design-system-nav4-panel-default-border-true-platform-design-system-nav4-sidenav-border-true.png +0 -0
  537. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg---composition--firefox.png +0 -0
  538. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg---with-min-widths--firefox.png +0 -0
  539. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg--firefox.png +0 -0
  540. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md---composition--firefox.png +0 -0
  541. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md---with-min-widths--firefox.png +0 -0
  542. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md--firefox.png +0 -0
  543. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm---with-min-widths--firefox.png +0 -0
  544. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm--firefox.png +0 -0
  545. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl---composition--firefox.png +0 -0
  546. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl---with-min-widths--firefox.png +0 -0
  547. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl--firefox.png +0 -0
  548. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs---with-min-widths--firefox.png +0 -0
  549. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs--firefox.png +0 -0
  550. package/src/ui/page-layout/__tests__/informational-vr-tests/page-layout.vr.tsx +0 -53
  551. package/src/ui/page-layout/__tests__/informational-vr-tests/slot-borders.vr.tsx +0 -54
  552. package/src/ui/page-layout/__tests__/informational-vr-tests/top-nav.vr.tsx +0 -170
  553. package/src/ui/page-layout/__tests__/unit/_test-utils.tsx +0 -185
  554. package/src/ui/page-layout/__tests__/unit/aside.test.tsx +0 -21
  555. package/src/ui/page-layout/__tests__/unit/banner.test.tsx +0 -31
  556. package/src/ui/page-layout/__tests__/unit/get-width.test.tsx +0 -12
  557. package/src/ui/page-layout/__tests__/unit/hoist-utils.test.tsx +0 -85
  558. package/src/ui/page-layout/__tests__/unit/page-layout.test.tsx +0 -300
  559. package/src/ui/page-layout/__tests__/unit/panel-splitter-and-suspense.test.tsx +0 -43
  560. package/src/ui/page-layout/__tests__/unit/panel-splitter.test.tsx +0 -885
  561. package/src/ui/page-layout/__tests__/unit/panel.test.tsx +0 -63
  562. package/src/ui/page-layout/__tests__/unit/react-safety.test.tsx +0 -30
  563. package/src/ui/page-layout/__tests__/unit/resizing.test.tsx +0 -714
  564. package/src/ui/page-layout/__tests__/unit/side-nav-flyout.test.tsx +0 -1154
  565. package/src/ui/page-layout/__tests__/unit/side-nav.test.tsx +0 -771
  566. package/src/ui/page-layout/__tests__/unit/sticky-header.test.tsx +0 -43
  567. package/src/ui/page-layout/__tests__/unit/top-nav-end.test.tsx +0 -132
  568. package/src/ui/page-layout/__tests__/unit/top-nav.test.tsx +0 -28
  569. package/src/ui/page-layout/__tests__/unit/use-expand-side-nav.test.tsx +0 -278
  570. package/src/ui/page-layout/__tests__/unit/use-toggle-side-nav.test.tsx +0 -233
  571. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-disabled--desktop.png +0 -0
  572. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-disabled--mobile.png +0 -0
  573. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-disabled-side-nav-collapsed--desktop.png +0 -0
  574. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-disabled-side-nav-collapsed--mobile.png +0 -0
  575. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled--desktop.png +0 -0
  576. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled--mobile.png +0 -0
  577. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled-full-screen-mode--desktop.png +0 -0
  578. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled-full-screen-mode--mobile.png +0 -0
  579. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled-side-nav-collapsed--desktop.png +0 -0
  580. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/main-content-border/main-content-border---theming-enabled-side-nav-collapsed--mobile.png +0 -0
  581. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots--desktop.png +0 -0
  582. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots--mobile.png +0 -0
  583. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-banner-height-zero--desktop.png +0 -0
  584. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-banner-height-zero--mobile.png +0 -0
  585. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-custom-sizes--desktop.png +0 -0
  586. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-custom-sizes--mobile.png +0 -0
  587. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-rtl--desktop.png +0 -0
  588. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-rtl--mobile.png +0 -0
  589. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-scrollable--desktop.png +0 -0
  590. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/all-slots-scrollable--mobile.png +0 -0
  591. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/aside-composed-with-border--desktop.png +0 -0
  592. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/aside-composed-with-border--mobile.png +0 -0
  593. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned--desktop.png +0 -0
  594. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned--mobile.png +0 -0
  595. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-collapsed--desktop.png +0 -0
  596. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-collapsed--mobile.png +0 -0
  597. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-custom-sizes--desktop.png +0 -0
  598. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-custom-sizes--mobile.png +0 -0
  599. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-panel-visible--desktop.png +0 -0
  600. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-panel-visible--mobile.png +0 -0
  601. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-resizable--desktop.png +0 -0
  602. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-sibling-absolute-positioned-resizable--mobile.png +0 -0
  603. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-using-legacy-vars--desktop.png +0 -0
  604. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/edge-case-using-legacy-vars--mobile.png +0 -0
  605. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/main-aside--desktop.png +0 -0
  606. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/main-aside--mobile.png +0 -0
  607. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/main-aside-scrollable--desktop.png +0 -0
  608. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/main-aside-scrollable--mobile.png +0 -0
  609. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/page-layout-implicit-rows--desktop.png +0 -0
  610. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/page-layout-implicit-rows--mobile.png +0 -0
  611. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-and-aside---default-widths--desktop.png +0 -0
  612. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-and-aside---default-widths--mobile.png +0 -0
  613. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-and-aside---zero-widths--desktop.png +0 -0
  614. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-and-aside---zero-widths--mobile.png +0 -0
  615. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-default-background-color--desktop.png +0 -0
  616. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-default-background-color--mobile.png +0 -0
  617. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/panel-should-have-correct-width-when-there-is-no-sidenav-mounted--desktop.png +0 -0
  618. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/resizable--desktop.png +0 -0
  619. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-content-slot---scroll-with-sticky-child--desktop.png +0 -0
  620. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-custom-width-greater-than-max-width--desktop.png +0 -0
  621. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-custom-width-smaller-than-min-width--desktop.png +0 -0
  622. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-main-aside--desktop.png +0 -0
  623. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-main-aside--mobile.png +0 -0
  624. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-main-aside-scrollable--desktop.png +0 -0
  625. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-main-aside-scrollable--mobile.png +0 -0
  626. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-overflowing-children--desktop.png +0 -0
  627. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-slots--desktop.png +0 -0
  628. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-with-menu-items--desktop.png +0 -0
  629. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/side-nav-with-menu-items--mobile.png +0 -0
  630. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main--desktop.png +0 -0
  631. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main--mobile.png +0 -0
  632. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-aside--desktop.png +0 -0
  633. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-aside--mobile.png +0 -0
  634. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-aside-scrollable--desktop.png +0 -0
  635. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-aside-scrollable--mobile.png +0 -0
  636. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-scrollable--desktop.png +0 -0
  637. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/page-layout/top-bar-side-nav-main-scrollable--mobile.png +0 -0
  638. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/focused-panel-splitter-with-position-end--default.png +0 -0
  639. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/focused-panel-splitter-with-position-start--default.png +0 -0
  640. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/hovered-panel-splitter-with-position-end--default--platform-nav4-panel-splitter-keyboard-a11y-false.png +0 -0
  641. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/hovered-panel-splitter-with-position-end--default--platform-nav4-panel-splitter-keyboard-a11y-true.png +0 -0
  642. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/hovered-panel-splitter-with-position-start--default--platform-nav4-panel-splitter-keyboard-a11y-false.png +0 -0
  643. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/panel-splitter/hovered-panel-splitter-with-position-start--default--platform-nav4-panel-splitter-keyboard-a11y-true.png +0 -0
  644. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed--desktop.png +0 -0
  645. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed--mobile.png +0 -0
  646. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-toggle-button-hovered--desktop.png +0 -0
  647. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-toggle-button-hovered--mobile.png +0 -0
  648. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-with-open-child-layer--desktop.png +0 -0
  649. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-with-open-child-layer--mobile.png +0 -0
  650. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-with-open-child-layer-toggle-button-hovered--desktop.png +0 -0
  651. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-collapsed-with-open-child-layer-toggle-button-hovered--mobile.png +0 -0
  652. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded--desktop.png +0 -0
  653. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded--mobile.png +0 -0
  654. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-toggle-button-hovered--desktop.png +0 -0
  655. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-toggle-button-hovered--mobile.png +0 -0
  656. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-with-open-child-layer--desktop.png +0 -0
  657. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-with-open-child-layer--mobile.png +0 -0
  658. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-with-open-child-layer-toggle-button-hovered--desktop.png +0 -0
  659. package/src/ui/page-layout/__tests__/vr-tests/__snapshots__/side-nav-flyout/side-nav-default-expanded-with-open-child-layer-toggle-button-hovered--mobile.png +0 -0
  660. package/src/ui/page-layout/__tests__/vr-tests/main-content-border.vr.tsx +0 -47
  661. package/src/ui/page-layout/__tests__/vr-tests/page-layout.vr.tsx +0 -266
  662. package/src/ui/page-layout/__tests__/vr-tests/panel-splitter.vr.tsx +0 -72
  663. package/src/ui/page-layout/__tests__/vr-tests/side-nav-flyout.vr.tsx +0 -170
  664. package/src/ui/page-layout/aside.tsx +0 -210
  665. package/src/ui/page-layout/banner.tsx +0 -91
  666. package/src/ui/page-layout/constants.tsx +0 -56
  667. package/src/ui/page-layout/hoist-slot-sizes-context.tsx +0 -7
  668. package/src/ui/page-layout/hoist-utils.tsx +0 -64
  669. package/src/ui/page-layout/id-utils.tsx +0 -33
  670. package/src/ui/page-layout/main/main-sticky-header.tsx +0 -45
  671. package/src/ui/page-layout/main/main.tsx +0 -93
  672. package/src/ui/page-layout/panel-splitter/context.tsx +0 -60
  673. package/src/ui/page-layout/panel-splitter/convert-resize-bound-to-pixels.tsx +0 -20
  674. package/src/ui/page-layout/panel-splitter/get-percentage-within-pixel-bounds.tsx +0 -35
  675. package/src/ui/page-layout/panel-splitter/get-width.tsx +0 -33
  676. package/src/ui/page-layout/panel-splitter/keyboard-resize-manager.tsx +0 -89
  677. package/src/ui/page-layout/panel-splitter/panel-splitter.tsx +0 -560
  678. package/src/ui/page-layout/panel-splitter/provider.tsx +0 -66
  679. package/src/ui/page-layout/panel-splitter/types.tsx +0 -25
  680. package/src/ui/page-layout/panel.tsx +0 -308
  681. package/src/ui/page-layout/root.tsx +0 -162
  682. package/src/ui/page-layout/side-nav/element-context.tsx +0 -18
  683. package/src/ui/page-layout/side-nav/flyout-close-delay-ms.tsx +0 -12
  684. package/src/ui/page-layout/side-nav/side-nav-content.tsx +0 -57
  685. package/src/ui/page-layout/side-nav/side-nav-footer.tsx +0 -48
  686. package/src/ui/page-layout/side-nav/side-nav-header.tsx +0 -32
  687. package/src/ui/page-layout/side-nav/side-nav.tsx +0 -876
  688. package/src/ui/page-layout/side-nav/toggle-button-context.tsx +0 -21
  689. package/src/ui/page-layout/side-nav/toggle-button-provider.tsx +0 -28
  690. package/src/ui/page-layout/side-nav/toggle-button.tsx +0 -166
  691. package/src/ui/page-layout/side-nav/types.tsx +0 -18
  692. package/src/ui/page-layout/side-nav/use-expand-side-nav.tsx +0 -57
  693. package/src/ui/page-layout/side-nav/use-side-nav-visibility-callbacks.tsx +0 -75
  694. package/src/ui/page-layout/side-nav/use-side-nav-visibility.tsx +0 -43
  695. package/src/ui/page-layout/side-nav/use-toggle-side-nav.tsx +0 -47
  696. package/src/ui/page-layout/side-nav/visibility-context.tsx +0 -17
  697. package/src/ui/page-layout/side-nav/visibility-provider.tsx +0 -20
  698. package/src/ui/page-layout/top-nav/top-nav-end.tsx +0 -155
  699. package/src/ui/page-layout/top-nav/top-nav-middle.tsx +0 -90
  700. package/src/ui/page-layout/top-nav/top-nav-start.tsx +0 -82
  701. package/src/ui/page-layout/top-nav/top-nav.tsx +0 -127
  702. package/src/ui/page-layout/types.tsx +0 -20
  703. package/src/ui/page-layout/use-resizing-width-css-var-on-root-element.tsx +0 -70
  704. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/long-product-name-tooltip--default.png +0 -0
  705. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover---custom-theming--desktop.png +0 -0
  706. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover---custom-theming--mobile.png +0 -0
  707. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover--desktop.png +0 -0
  708. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover--mobile.png +0 -0
  709. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--desktop.png +0 -0
  710. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--mobile.png +0 -0
  711. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed--desktop.png +0 -0
  712. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed--mobile.png +0 -0
  713. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/responsive-menu-items--mobile.png +0 -0
  714. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/responsive-menu-items-on-click--mobile.png +0 -0
  715. package/src/ui/top-nav-items/__tests__/informational-vr-tests/top-navigation.vr.tsx +0 -120
  716. package/src/ui/top-nav-items/__tests__/playwright/theming.spec.tsx +0 -21
  717. package/src/ui/top-nav-items/__tests__/unit/chat-button.test.tsx +0 -40
  718. package/src/ui/top-nav-items/__tests__/unit/create-button.test.tsx +0 -34
  719. package/src/ui/top-nav-items/__tests__/unit/end-item.test.tsx +0 -43
  720. package/src/ui/top-nav-items/__tests__/unit/help.test.tsx +0 -101
  721. package/src/ui/top-nav-items/__tests__/unit/notifications.test.tsx +0 -63
  722. package/src/ui/top-nav-items/__tests__/unit/profile.test.tsx +0 -65
  723. package/src/ui/top-nav-items/__tests__/unit/settings.test.tsx +0 -51
  724. package/src/ui/top-nav-items/__tests__/unit/theming.test.tsx +0 -76
  725. package/src/ui/top-nav-items/__tests__/unit/top-nav-items.test.tsx +0 -181
  726. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/log-in-button--desktop.png +0 -0
  727. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/search-right-elem--default.png +0 -0
  728. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/theme-is-applied-with-an-hsl-color--desktop.png +0 -0
  729. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/theme-is-applied-with-an-rgb-color--desktop.png +0 -0
  730. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/theme-is-applied-with-customlogo--desktop.png +0 -0
  731. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-button-focus-state--default.png +0 -0
  732. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-button-hover-state--default.png +0 -0
  733. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-create-button-hover-state--desktop.png +0 -0
  734. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-link-button-focus-state--default.png +0 -0
  735. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-link-button-hover-state--default.png +0 -0
  736. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/themed-search-focus-state--default.png +0 -0
  737. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/theming-is-enabled--desktop.png +0 -0
  738. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-nav-custom-profile-image--default.png +0 -0
  739. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-nav-side-nav-collapsed--desktop.png +0 -0
  740. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-nav-side-nav-collapsed--mobile.png +0 -0
  741. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-example--desktop.png +0 -0
  742. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-example--mobile.png +0 -0
  743. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image200x200example--desktop.png +0 -0
  744. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image200x200example--mobile.png +0 -0
  745. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image200x20example--desktop.png +0 -0
  746. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image200x20example--mobile.png +0 -0
  747. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image20x200example--desktop.png +0 -0
  748. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image20x200example--mobile.png +0 -0
  749. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image20x20example--desktop.png +0 -0
  750. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-custom-logo-image20x20example--mobile.png +0 -0
  751. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-example--desktop.png +0 -0
  752. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-example--mobile.png +0 -0
  753. package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-with-a-large-search-input-in-focus-state--default.png +0 -0
  754. package/src/ui/top-nav-items/__tests__/vr-tests/top-navigation.vr.tsx +0 -160
  755. package/src/ui/top-nav-items/app-switcher.tsx +0 -81
  756. package/src/ui/top-nav-items/chat-button.tsx +0 -49
  757. package/src/ui/top-nav-items/create-button.tsx +0 -51
  758. package/src/ui/top-nav-items/custom-title.tsx +0 -83
  759. package/src/ui/top-nav-items/end-item.tsx +0 -120
  760. package/src/ui/top-nav-items/help.tsx +0 -69
  761. package/src/ui/top-nav-items/log-in.tsx +0 -66
  762. package/src/ui/top-nav-items/nav-logo/app-logo.tsx +0 -203
  763. package/src/ui/top-nav-items/nav-logo/custom-logo.tsx +0 -252
  764. package/src/ui/top-nav-items/nav-logo/logo-renderer.tsx +0 -66
  765. package/src/ui/top-nav-items/notifications.tsx +0 -67
  766. package/src/ui/top-nav-items/profile.tsx +0 -26
  767. package/src/ui/top-nav-items/search.tsx +0 -124
  768. package/src/ui/top-nav-items/settings.tsx +0 -16
  769. package/src/ui/top-nav-items/themed/__tests__/unit/button.test.tsx +0 -57
  770. package/src/ui/top-nav-items/themed/__tests__/unit/use-custom-theme.test.tsx +0 -43
  771. package/src/ui/top-nav-items/themed/button.tsx +0 -576
  772. package/src/ui/top-nav-items/themed/color-utils/__tests__/unit/hex.test.tsx +0 -131
  773. package/src/ui/top-nav-items/themed/color-utils/__tests__/unit/hsl.test.tsx +0 -117
  774. package/src/ui/top-nav-items/themed/color-utils/__tests__/unit/rgb.test.tsx +0 -88
  775. package/src/ui/top-nav-items/themed/color-utils/__tests__/unit/try-parse-user-color.test.tsx +0 -35
  776. package/src/ui/top-nav-items/themed/color-utils/formats/hex.tsx +0 -47
  777. package/src/ui/top-nav-items/themed/color-utils/formats/hsl.tsx +0 -112
  778. package/src/ui/top-nav-items/themed/color-utils/formats/rgb.tsx +0 -41
  779. package/src/ui/top-nav-items/themed/color-utils/index.tsx +0 -111
  780. package/src/ui/top-nav-items/themed/color-utils/parse-user-color.tsx +0 -31
  781. package/src/ui/top-nav-items/themed/color-utils/types.tsx +0 -6
  782. package/src/ui/top-nav-items/themed/get-custom-theme-styles.tsx +0 -186
  783. package/src/ui/top-nav-items/themed/has-custom-theme-context.tsx +0 -13
  784. package/src/ui/top-nav-items/themed/migration.tsx +0 -70
  785. package/src/ui/top-nav-items/themed/palette.tsx +0 -53
  786. package/src/ui/top-nav-items/themed/search.tsx +0 -70
  787. package/src/ui/top-nav-items/themed/use-custom-theme.tsx +0 -51
  788. package/tsconfig.app.json +0 -91
  789. package/tsconfig.dev.json +0 -175
  790. package/tsconfig.json +0 -20
@@ -1,876 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import {
6
- type CSSProperties,
7
- useCallback,
8
- useContext,
9
- useEffect,
10
- useMemo,
11
- useRef,
12
- useState,
13
- } from 'react';
14
-
15
- import { cssMap, jsx } from '@compiled/react';
16
- import { bind } from 'bind-event-listener';
17
- import { flushSync } from 'react-dom';
18
-
19
- import mergeRefs from '@atlaskit/ds-lib/merge-refs';
20
- import {
21
- OpenLayerObserverNamespaceProvider,
22
- useOpenLayerObserver,
23
- } from '@atlaskit/layering/experimental/open-layer-observer';
24
- import { fg } from '@atlaskit/platform-feature-flags';
25
- import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
26
- import { media } from '@atlaskit/primitives/responsive';
27
- import { token } from '@atlaskit/tokens';
28
-
29
- import { useSkipLinkInternal } from '../../../context/skip-links/skip-links-context';
30
- import { TopNavStartElement } from '../../../context/top-nav-start/top-nav-start-context';
31
- import {
32
- contentHeightWhenFixed,
33
- contentInsetBlockStart,
34
- localSlotLayers,
35
- sideNavLiveWidthVar,
36
- sideNavPanelSplitterId,
37
- sideNavVar,
38
- UNSAFE_sideNavLayoutVar,
39
- } from '../constants';
40
- import { DangerouslyHoistSlotSizes } from '../hoist-slot-sizes-context';
41
- import { DangerouslyHoistCssVarToDocumentRoot } from '../hoist-utils';
42
- import { useLayoutId } from '../id-utils';
43
- import { PanelSplitterProvider } from '../panel-splitter/provider';
44
- import type { ResizeBounds } from '../panel-splitter/types';
45
- import type { CommonSlotProps } from '../types';
46
- import { useResizingWidthCssVarOnRootElement } from '../use-resizing-width-css-var-on-root-element';
47
-
48
- import { useSideNavRef } from './element-context';
49
- import { sideNavFlyoutCloseDelayMs } from './flyout-close-delay-ms';
50
- import { SideNavToggleButtonElement } from './toggle-button-context';
51
- import { useExpandSideNav } from './use-expand-side-nav';
52
- import { useSideNavVisibility } from './use-side-nav-visibility';
53
- import {
54
- useSideNavVisibilityCallbacks,
55
- type VisibilityCallback,
56
- } from './use-side-nav-visibility-callbacks';
57
- import { useToggleSideNav } from './use-toggle-side-nav';
58
- import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
59
-
60
- const panelSplitterResizingVar = '--n_snvRsz';
61
-
62
- const widthResizeBounds: ResizeBounds = { min: '240px', max: '50vw' };
63
-
64
- function getResizeBounds() {
65
- return widthResizeBounds;
66
- }
67
-
68
- const openLayerObserverSideNavNamespace = 'side-nav';
69
-
70
- type FlyoutState =
71
- | { type: 'open' }
72
- | { type: 'is-dragging-from-flyout' }
73
- | { type: 'waiting-for-close'; abort: () => void }
74
- | { type: 'ready-to-close' }
75
- | { type: 'not-active' };
76
-
77
- const styles = cssMap({
78
- root: {
79
- backgroundColor: token('elevation.surface.overlay'),
80
- boxShadow: token('elevation.shadow.overlay'),
81
- boxSizing: 'border-box',
82
- gridArea: 'main / aside / aside / aside',
83
- // Height is set so it takes up all of the available viewport space minus top bar + banner.
84
- // Since the side nav is always rendered ontop of other grid items across all viewports height is
85
- // always set.
86
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values
87
- height: contentHeightWhenFixed,
88
- // This sets the sticky point to be just below top bar + banner. It's needed to ensure the stick
89
- // point is exactly where this element is rendered to with no wiggle room. Unfortunately the CSS
90
- // spec for sticky doesn't support "stick to where I'm initially rendered" so we need to tell it.
91
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values
92
- insetBlockStart: contentInsetBlockStart,
93
- position: 'sticky',
94
- // For mobile viewports, the side nav will take up 90% of the screen width, up to a maximum of 320px (the default SideNav width)
95
- width: 'min(90%, 320px)',
96
- // On small viewports the side nav is displayed above other slots so we create a stacking context.
97
- // We keep the side nav with a stacking context always so it is rendered above main content.
98
- // This comes with a caveat that main is rendered underneath the side nav content so for any
99
- // menu dialogs rendered with "shouldRenderToParent" they could be cut off unintentionally.
100
- // Unfortunately this is the best of bad solutions.
101
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
102
- zIndex: localSlotLayers.sideNav,
103
- '@media (min-width: 48rem)': {
104
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values
105
- width: `var(${panelSplitterResizingVar}, var(${sideNavVar}))`,
106
- },
107
- '@media (min-width: 64rem)': {
108
- backgroundColor: token('elevation.surface'),
109
- boxShadow: 'initial',
110
- gridArea: 'side-nav',
111
- },
112
- },
113
- oldBorder: {
114
- borderInlineEnd: `1px solid ${token('color.border')}`,
115
- },
116
- newBorder: {
117
- // Not required, but declaring explicitly because we really don't want a border at small sizes
118
- // Previously we had a transparent border to maintain width, but this unintentionally acted as padding
119
- borderInlineStart: 'none',
120
- borderInlineEnd: 'none',
121
- '@media (min-width: 64rem)': {
122
- // We only want the border to be visible when it is not an overlay
123
- borderInlineEnd: `1px solid ${token('color.border')}`,
124
- },
125
- },
126
- newBorderFlyoutOpen: {
127
- '@media (min-width: 64rem)': {
128
- // Hide the border for the flyout, because it has a shadow
129
- borderInlineEnd: 'none',
130
- },
131
- },
132
- flyoutOpen: {
133
- '@media (min-width: 64rem)': {
134
- // These styles are in a media query to override the `styles.root` media query styles
135
- backgroundColor: token('elevation.surface.overlay'),
136
- boxShadow: token('elevation.shadow.overlay'),
137
- gridArea: 'main',
138
- },
139
- /**
140
- * Disabling animations for Firefox, as it doesn't support animating the `display` property:
141
- * https://caniuse.com/mdn-css_properties_display_is_transitionable
142
- *
143
- * Additionally, it doesn't support the `@starting-style` rule:
144
- * https://bugzilla.mozilla.org/show_bug.cgi?id=1892191
145
- *
146
- * We are using `@supports` to target browsers that are not Firefox:
147
- * https://www.bram.us/2021/06/23/css-at-supports-rules-to-target-only-firefox-safari-chromium/#not-firefox
148
- *
149
- * Unfortunately we cannot use `@supports` to target the support of `transition-behavior: allow-discrete` specifically
150
- * for the `display` property. And `@supports at-rule(@starting-style)` is also not ready for browser use yet.
151
- */
152
- '@supports not (-moz-appearance: none)': {
153
- // Disabling animations if user has opted for reduced motion
154
- '@media (prefers-reduced-motion: no-preference)': {
155
- transitionProperty: 'transform, display',
156
- transitionDuration: '0.2s',
157
- transitionBehavior: 'allow-discrete',
158
-
159
- /**
160
- * Because we're transitioning from display: none, we need to define the
161
- * starting values for when the element is first displayed, so the
162
- * transition animation knows where to start from.
163
- */
164
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-selectors
165
- '@starting-style': {
166
- transform: 'translateX(-100%)',
167
- },
168
- },
169
- },
170
- },
171
- flyoutAnimateClosed: {
172
- display: 'none',
173
- '@media (min-width: 64rem)': {
174
- // These styles are in a media query to override the `styles.root` media query styles
175
- gridArea: 'main',
176
- },
177
- // Disabling animations for Firefox, as it doesn't support the close animation. See comment block in `styles.flyoutOpen` for more details.
178
- '@supports not (-moz-appearance: none)': {
179
- // Disabling animations if user has opted for reduced motion
180
- '@media (prefers-reduced-motion: no-preference)': {
181
- transitionProperty: 'transform, display',
182
- transitionDuration: '0.2s',
183
- transitionBehavior: 'allow-discrete',
184
- transform: 'translateX(-100%)',
185
- },
186
- },
187
- },
188
- flexContainer: {
189
- // This element controls the flex layout to position the slot elements correctly.
190
- height: '100%',
191
- display: 'flex',
192
- flexDirection: 'column',
193
- justifyContent: 'space-between',
194
- },
195
- hiddenMobileAndDesktop: {
196
- display: 'none',
197
- },
198
- hiddenMobileOnly: {
199
- display: 'none',
200
- '@media (min-width: 64rem)': {
201
- display: 'initial',
202
- },
203
- },
204
- hiddenDesktopOnly: {
205
- '@media (min-width: 64rem)': {
206
- display: 'none',
207
- },
208
- },
209
- });
210
-
211
- type SideNavProps = CommonSlotProps & {
212
- /**
213
- * The content of the layout area.
214
- * Should include side nav layout areas as required: `SideNavHeader`, `SideNavContent`, `SideNavFooter`.
215
- * Within these, you can use side nav menu items.
216
- */
217
- children: React.ReactNode;
218
- /**
219
- * The accessible name of the slot, announced by screen readers.
220
- */
221
- label?: string;
222
- /**
223
- * Whether the side nav should be collapsed by default __on desktop screens__.
224
- *
225
- * It is always collapsed by default for mobile screens.
226
- *
227
- * This value is used when the side nav is first mounted, but you should continuously update your
228
- * persisted state using the `onCollapse` and `onExpand` callbacks, to ensure it is up to date
229
- * when the app is reloaded.
230
- *
231
- * __Note:__ If using this prop, ensure that it is also provided to the `SideNavToggleButton`.
232
- * This is to ensure the state is in sync before post-SSR hydration.
233
- */
234
- defaultCollapsed?: boolean;
235
- /**
236
- * The default width of the side nav layout area.
237
- * It should be between the resize bounds - the minimum is 240px and the maximum is 50% of the viewport width.
238
- *
239
- * It is only used when the side nav is first mounted, but you should continuously update your
240
- * persisted state using the `onResizeEnd` callback of `PanelSplitter`, to ensure it is up to date
241
- * when the app is reloaded.
242
- */
243
- defaultWidth?: number;
244
- /**
245
- * Called when the side nav is expanded.
246
- */
247
- onExpand?: VisibilityCallback;
248
- /**
249
- * Called when the side nav is collapsed.
250
- */
251
- onCollapse?: VisibilityCallback;
252
- };
253
-
254
- /**
255
- * We need an additional component layer so we can wrap the side nav in a `OpenLayerObserver` and have access to the
256
- * context value.
257
- */
258
- function SideNavInternal({
259
- children,
260
- defaultCollapsed,
261
- defaultWidth = 320,
262
- testId,
263
- label = 'Sidebar',
264
- skipLinkLabel = label,
265
- onExpand,
266
- onCollapse,
267
- id: providedId,
268
- }: SideNavProps) {
269
- const id = useLayoutId({ providedId });
270
- const expandSideNav = useExpandSideNav();
271
- /**
272
- * Called after clicking on the side nav skip link, and ensures the side nav is expanded so that it is focusable.
273
- *
274
- * We need to update the DOM synchronously because `.focus()` is called synchronously after this state update.
275
- */
276
- const synchronouslyExpandSideNav = useCallback(() => {
277
- flushSync(() => {
278
- /**
279
- * Calling this unconditionally and relying on it to avoid no-op renders.
280
- *
281
- * We _could_ call it conditionally, but we'd be duplicating the screen size checks `expandSideNav` makes.
282
- */
283
- expandSideNav();
284
- });
285
- }, [expandSideNav]);
286
-
287
- useSkipLinkInternal({
288
- id,
289
- label: skipLinkLabel,
290
- onBeforeNavigate: synchronouslyExpandSideNav,
291
- });
292
-
293
- const sideNavState = useContext(SideNavVisibilityState);
294
- const setSideNavState = useContext(SetSideNavVisibilityState);
295
- const { isExpandedOnDesktop, isExpandedOnMobile } = useSideNavVisibility({
296
- defaultCollapsed,
297
- });
298
- // We are placing `defaultCollapsed` into a state container so we can have a stable reference to the initial value.
299
- // This is so we can use it in an effect _that only runs once_, after the initial render on the client,
300
- // to sync the side nav context (provided in `<Root>`) with the `defaultCollapsed` prop provided to `<SideNav>`.
301
- const [initialDefaultCollapsed] = useState(defaultCollapsed);
302
-
303
- const [width, setWidth] = useState(defaultWidth);
304
- const clampedWidth = `clamp(${widthResizeBounds.min}, ${width}px, ${widthResizeBounds.max})`;
305
- const dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
306
-
307
- const navRef = useRef<HTMLDivElement | null>(null);
308
- /**
309
- * Used to share the side nav element with the `Panel`,
310
- * which observes the side nav to determine its maximum width.
311
- */
312
- const sharedRef = useSideNavRef();
313
- const mergedRef = mergeRefs([navRef, sharedRef]);
314
-
315
- const toggleButtonElement = useContext(SideNavToggleButtonElement);
316
- const topNavStartElement = useContext(TopNavStartElement);
317
- const devTimeOnlyAttributes: Record<string, string | boolean> = {};
318
- const openLayerObserver = useOpenLayerObserver();
319
- const flyoutStateRef = useRef<FlyoutState>({ type: 'not-active' });
320
- const isFlyoutVisible = sideNavState?.flyout === 'open';
321
-
322
- const updateFlyoutState = useMemo(() => {
323
- function tryAbortPendingClose() {
324
- if (flyoutStateRef.current.type === 'waiting-for-close') {
325
- flyoutStateRef.current.abort();
326
- }
327
- }
328
-
329
- function open() {
330
- tryAbortPendingClose();
331
- flyoutStateRef.current = { type: 'open' };
332
- setSideNavState((currentState) => {
333
- if (currentState?.desktop === 'collapsed' && currentState?.flyout !== 'open') {
334
- return {
335
- desktop: currentState.desktop,
336
- mobile: currentState.mobile,
337
- flyout: 'open',
338
- };
339
- }
340
-
341
- return currentState;
342
- });
343
- }
344
-
345
- function close() {
346
- tryAbortPendingClose();
347
- flyoutStateRef.current = { type: 'not-active' };
348
- setSideNavState((currentState) => {
349
- if (currentState?.desktop === 'collapsed' && currentState?.flyout === 'open') {
350
- return {
351
- desktop: currentState.desktop,
352
- mobile: currentState.mobile,
353
- flyout: 'triggered-animate-close',
354
- };
355
- }
356
-
357
- return currentState;
358
- });
359
- }
360
-
361
- return function onAction(
362
- action:
363
- | 'open'
364
- | 'drag-from-flyout-started'
365
- | 'drag-from-flyout-finished'
366
- | 'waiting-for-close'
367
- | 'ready-to-close'
368
- | 'force-close',
369
- ) {
370
- if (action === 'drag-from-flyout-started') {
371
- open();
372
- flyoutStateRef.current = { type: 'is-dragging-from-flyout' };
373
- return;
374
- }
375
-
376
- if (action === 'drag-from-flyout-finished') {
377
- open();
378
- return;
379
- }
380
-
381
- // ignoring all actions until the drag is finished
382
- if (flyoutStateRef.current.type === 'is-dragging-from-flyout') {
383
- return;
384
- }
385
-
386
- if (action === 'open') {
387
- open();
388
- return;
389
- }
390
-
391
- if (action === 'waiting-for-close') {
392
- if (flyoutStateRef.current.type === 'waiting-for-close') {
393
- return;
394
- }
395
-
396
- // A timeout is used to close the flyout after a delay when the user mouses out of the flyout area, and to allow
397
- // us to cancel the close if the user mouses back in.
398
- const timeout = setTimeout(() => {
399
- updateFlyoutState('ready-to-close');
400
- }, sideNavFlyoutCloseDelayMs);
401
-
402
- flyoutStateRef.current = {
403
- type: 'waiting-for-close',
404
- abort() {
405
- clearTimeout(timeout);
406
- },
407
- };
408
-
409
- return;
410
- }
411
-
412
- if (action === 'ready-to-close') {
413
- // If there are no open layers, we can close the flyout.
414
- if (openLayerObserver.getCount({ namespace: openLayerObserverSideNavNamespace }) === 0) {
415
- close();
416
- return;
417
- }
418
-
419
- flyoutStateRef.current = { type: 'ready-to-close' };
420
- return;
421
- }
422
-
423
- if (action === 'force-close') {
424
- close();
425
- return;
426
- }
427
- };
428
- }, [openLayerObserver, setSideNavState]);
429
-
430
- const toggleVisibility = useToggleSideNav();
431
-
432
- useEffect(() => {
433
- // Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
434
- // after SSR hydration. This should only run once, after the initial render on the client.
435
- setSideNavState({
436
- desktop: initialDefaultCollapsed ? 'collapsed' : 'expanded',
437
- mobile: 'collapsed',
438
- flyout: 'closed',
439
- });
440
- }, [initialDefaultCollapsed, setSideNavState]);
441
-
442
- const handleExpand = useCallback<VisibilityCallback>(
443
- ({ screen }) => {
444
- onExpand?.({ screen });
445
-
446
- // When the side nav gets expanded, we close the flyout to reset it.
447
- // This prevents the flyout from staying open and ensures we are respecting the user's intent to expand.
448
- updateFlyoutState('force-close');
449
- },
450
- [onExpand, updateFlyoutState],
451
- );
452
-
453
- const handleCollapse = useCallback<VisibilityCallback>(
454
- ({ screen }) => {
455
- onCollapse?.({ screen });
456
-
457
- // When the side nav gets collapsed, we close the flyout to reset it.
458
- // This prevents the flyout from staying open and ensures we are respecting the user's intent to collapse.
459
- updateFlyoutState('force-close');
460
- },
461
- [onCollapse, updateFlyoutState],
462
- );
463
-
464
- useSideNavVisibilityCallbacks({
465
- onExpand: handleExpand,
466
- onCollapse: handleCollapse,
467
- isExpandedOnDesktop,
468
- isExpandedOnMobile,
469
- });
470
-
471
- useEffect(() => {
472
- const mediaQueryList = window.matchMedia('(min-width: 64rem)');
473
- return bind(mediaQueryList, {
474
- type: 'change',
475
- listener() {
476
- if (mediaQueryList.matches) {
477
- // We're transitioning from tablet to desktop viewport size.
478
- // We forcibly show the side nav if it was shown on mobile.
479
- if (isExpandedOnMobile && !isExpandedOnDesktop) {
480
- toggleVisibility();
481
- }
482
- }
483
- },
484
- });
485
- }, [toggleVisibility, isExpandedOnDesktop, isExpandedOnMobile]);
486
-
487
- /**
488
- * Close the mobile side nav if there is a click outside.
489
- *
490
- * Binding/unbinding on changes to `isExpandedOnMobile` instead of window size changes for simplicity.
491
- * If we listened to window size changes we'd need nested `bind()` calls.
492
- */
493
- useEffect(() => {
494
- if (!isExpandedOnMobile) {
495
- return;
496
- }
497
-
498
- /**
499
- * The expected URL fragment used by the side nav skip link.
500
- */
501
- const skipLinkUrlFragment = `#${id}`;
502
-
503
- return bind(window, {
504
- type: 'click',
505
- listener(event) {
506
- if (window.matchMedia('(min-width: 64rem)').matches) {
507
- // Clicks on desktop should do nothing
508
- return;
509
- }
510
-
511
- const sideNav = navRef.current;
512
- if (!sideNav || !(event.target instanceof Node)) {
513
- // Ignore if our element references are invalid
514
- return;
515
- }
516
-
517
- if (sideNav.contains(event.target)) {
518
- // Clicks inside the side nav should not close it
519
- return;
520
- }
521
-
522
- if (toggleButtonElement?.contains(event.target)) {
523
- // Clicks on the toggle button will already toggle the side nav,
524
- // so we need to ignore it or we end up doing a double toggle
525
- return;
526
- }
527
-
528
- if (
529
- event.target instanceof HTMLAnchorElement &&
530
- /**
531
- * Intentionally using `.getAttribute()` for simplicity to match exactly what we expect
532
- * for skip links.
533
- *
534
- * Alternatives considered:
535
- *
536
- * - Using `.href` returns a full URL, which would then require extra parsing.
537
- * - Using `.hash` could incorrectly capture `<a href="/another-page#skip-link-id>` so we'd need extra checks.
538
- *
539
- * This approach has an edge case of `<a href="/same-page#skip-link-id>` not being captured,
540
- * but we are okay with that trade-off.
541
- */
542
- event.target.getAttribute('href') === skipLinkUrlFragment
543
- ) {
544
- // This was a click on a link to the side nav, so we shouldn't try to collapse the SideNav.
545
- // It was most likely the skip link, although anyone can render a link with the ID.
546
- // In either case keeping the SideNav expanded makes sense.
547
- return;
548
- }
549
-
550
- toggleVisibility();
551
- },
552
- });
553
- }, [id, isExpandedOnMobile, toggleButtonElement, toggleVisibility]);
554
-
555
- useEffect(() => {
556
- if (!toggleButtonElement) {
557
- return;
558
- }
559
-
560
- return bind(toggleButtonElement, {
561
- type: 'mouseenter',
562
- listener() {
563
- // Only flyout the side nav if the user hovered while the side nav was collapsed
564
- if (isExpandedOnDesktop) {
565
- return;
566
- }
567
-
568
- // Only flyout the side nav on desktop viewports
569
- const { matches } = window.matchMedia('(min-width: 64rem)');
570
- if (matches) {
571
- updateFlyoutState('open');
572
- }
573
- },
574
- });
575
- }, [updateFlyoutState, toggleButtonElement, isExpandedOnDesktop]);
576
-
577
- useEffect(() => {
578
- if (!toggleButtonElement) {
579
- return;
580
- }
581
-
582
- return bind(toggleButtonElement, {
583
- type: 'mouseleave',
584
- listener() {
585
- // If the side nav is not in flyout mode, we don't need to do anything
586
- if (!isFlyoutVisible) {
587
- return;
588
- }
589
-
590
- updateFlyoutState('waiting-for-close');
591
- },
592
- });
593
- }, [isFlyoutVisible, toggleButtonElement, updateFlyoutState]);
594
-
595
- useEffect(() => {
596
- if (!navRef.current) {
597
- return;
598
- }
599
-
600
- return bind(navRef.current, {
601
- type: 'mouseenter',
602
- listener() {
603
- // If the side nav is not in flyout mode, we don't need to do anything
604
- if (isExpandedOnDesktop || !isFlyoutVisible) {
605
- return;
606
- }
607
-
608
- // The user mouses has moused back over the side nav
609
- updateFlyoutState('open');
610
- },
611
- });
612
- }, [isFlyoutVisible, updateFlyoutState, isExpandedOnDesktop]);
613
-
614
- useEffect(() => {
615
- if (!navRef.current) {
616
- return;
617
- }
618
-
619
- return bind(navRef.current, {
620
- type: 'mouseleave',
621
- listener() {
622
- // If the side nav is not in flyout mode, we don't need to do anything
623
- if (!isFlyoutVisible) {
624
- return;
625
- }
626
-
627
- updateFlyoutState('waiting-for-close');
628
- },
629
- });
630
- }, [isFlyoutVisible, updateFlyoutState]);
631
-
632
- useEffect(() => {
633
- const nav = navRef.current;
634
-
635
- if (!nav) {
636
- return;
637
- }
638
-
639
- if (!isFlyoutVisible) {
640
- return;
641
- }
642
-
643
- // Using a monitor rather than a drop target. Rationale:
644
- // - We are not creating a drop target for the users to drop on,
645
- // we are just interested in listening to events within an element
646
- // - We do not want to impact `location.{*}.dropTargets` in events
647
- return monitorForElements({
648
- canMonitor({ source }) {
649
- return nav.contains(source.element);
650
- },
651
- onGenerateDragPreview() {
652
- updateFlyoutState('drag-from-flyout-started');
653
- },
654
- onDrop({ location }) {
655
- // Always marking the drag and done
656
- updateFlyoutState('drag-from-flyout-finished');
657
-
658
- // If the user dropped outside of the flyout, we will close the flyout
659
- const underUsersPointer = document.elementFromPoint(
660
- location.current.input.clientX,
661
- location.current.input.clientY,
662
- );
663
-
664
- if (!nav.contains(underUsersPointer)) {
665
- updateFlyoutState('waiting-for-close');
666
- }
667
- },
668
- });
669
- }, [isFlyoutVisible, updateFlyoutState]);
670
-
671
- useEffect(() => {
672
- if (!topNavStartElement || !toggleButtonElement) {
673
- return;
674
- }
675
-
676
- return bind(topNavStartElement, {
677
- type: 'mouseover',
678
- listener(event) {
679
- // If the side nav is not in flyout mode, we don't need to do anything
680
- if (isExpandedOnDesktop || !isFlyoutVisible) {
681
- return;
682
- }
683
-
684
- if (event.target === topNavStartElement) {
685
- // The mouse is directly over the TopNavStart element, so cancel any pending flyout closes.
686
- updateFlyoutState('open');
687
- return;
688
- }
689
-
690
- if (event.target instanceof Element && toggleButtonElement.contains(event.target)) {
691
- // The mouse is over the toggle button or any of its children, so we don't want to close the flyout.
692
- // We also don't need to cancel any pending closes, as we have separate event listeners for the toggle button mouse events.
693
- return;
694
- }
695
-
696
- // The user has moused over a child element of the TopNavStart element that isn't the toggle button, e.g. the app switcher or nav logo,
697
- // so we should close the flyout (with a delay).
698
- updateFlyoutState('waiting-for-close');
699
- },
700
- });
701
- }, [
702
- topNavStartElement,
703
- isFlyoutVisible,
704
- toggleButtonElement,
705
- isExpandedOnDesktop,
706
- updateFlyoutState,
707
- ]);
708
-
709
- useEffect(() => {
710
- if (!topNavStartElement) {
711
- return;
712
- }
713
-
714
- return bind(topNavStartElement, {
715
- type: 'mouseleave',
716
- listener() {
717
- // If the side nav is not in flyout mode, we don't need to do anything
718
- if (!isFlyoutVisible) {
719
- return;
720
- }
721
-
722
- // The mouse has left the TopNavStart element, so we should close the flyout with a delay.
723
- updateFlyoutState('waiting-for-close');
724
- },
725
- });
726
- }, [topNavStartElement, isFlyoutVisible, updateFlyoutState]);
727
-
728
- useEffect(() => {
729
- // Close the flyout if there are no more layers open and the user is not mousing over the
730
- // flyout areas (side nav, TopNavStart element)
731
-
732
- return openLayerObserver.onChange(
733
- ({ count }) => {
734
- if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
735
- updateFlyoutState('force-close');
736
- }
737
- },
738
- { namespace: openLayerObserverSideNavNamespace },
739
- );
740
- }, [openLayerObserver, updateFlyoutState]);
741
-
742
- useEffect(() => {
743
- // Clear flyout close timer if being unmounted
744
- return function cleanupPendingFlyoutClose() {
745
- if (flyoutStateRef.current.type === 'waiting-for-close') {
746
- flyoutStateRef.current.abort();
747
- }
748
- };
749
- }, []);
750
-
751
- if (process.env.NODE_ENV !== 'production') {
752
- const visible: string[] = [];
753
- if (isExpandedOnMobile) {
754
- visible.push('small');
755
- }
756
- if (isExpandedOnDesktop) {
757
- visible.push('large');
758
- }
759
- if (isFlyoutVisible) {
760
- visible.push('flyout');
761
- }
762
- devTimeOnlyAttributes['data-visible'] = visible.length ? visible.join(',') : 'false';
763
- }
764
-
765
- useResizingWidthCssVarOnRootElement({
766
- isEnabled: true,
767
- cssVar: panelSplitterResizingVar,
768
- panelId: sideNavPanelSplitterId,
769
- });
770
-
771
- return (
772
- <nav
773
- id={id}
774
- {...devTimeOnlyAttributes}
775
- data-layout-slot
776
- aria-label={label}
777
- style={
778
- {
779
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/enforce-style-prop
780
- [sideNavVar]: clampedWidth,
781
- } as CSSProperties
782
- }
783
- ref={mergedRef}
784
- css={[
785
- styles.root,
786
- fg('platform_design_system_nav4_sidenav_border') ? styles.newBorder : styles.oldBorder,
787
- // We are explicitly using the `isExpandedOnDesktop` and `isExpandedOnMobile` values here to ensure we are displaying the
788
- // correct state during SSR render, as the context value would not have been set yet. These values are derived from the
789
- // component props (defaultCollapsed) if context hasn't been set yet.
790
- isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly,
791
- !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly,
792
- !isExpandedOnDesktop &&
793
- !isExpandedOnMobile &&
794
- !isFlyoutVisible &&
795
- styles.hiddenMobileAndDesktop,
796
- sideNavState?.flyout === 'open' && styles.flyoutOpen,
797
- sideNavState?.flyout === 'open' &&
798
- fg('platform_design_system_nav4_sidenav_border') &&
799
- styles.newBorderFlyoutOpen,
800
- sideNavState?.flyout === 'triggered-animate-close' && styles.flyoutAnimateClosed,
801
- ]}
802
- data-testid={testId}
803
- >
804
- {/**
805
- * This CSS var is used by the `Panel` slot to enforce its maximum width constraint.
806
- * When we remove the UNSAFE legacy usage, we can change this to `HoistCssVarToLocalGrid`
807
- */}
808
- <DangerouslyHoistCssVarToDocumentRoot
809
- variableName={sideNavLiveWidthVar}
810
- value="0px"
811
- mediaQuery={media.above.md}
812
- responsiveValue={
813
- isExpandedOnDesktop ? `var(${panelSplitterResizingVar}, ${clampedWidth})` : 0
814
- }
815
- />
816
- {dangerouslyHoistSlotSizes && (
817
- // ------ START UNSAFE STYLES ------
818
- // These styles are only needed for the UNSAFE legacy use case for Jira + Confluence.
819
- // When they aren't needed anymore we can delete them wholesale.
820
- <DangerouslyHoistCssVarToDocumentRoot
821
- variableName={UNSAFE_sideNavLayoutVar}
822
- value={`var(${sideNavLiveWidthVar})`}
823
- />
824
- // ------ END UNSAFE STYLES ------
825
- )}
826
- <PanelSplitterProvider
827
- panelId={sideNavPanelSplitterId}
828
- panelRef={navRef}
829
- panelWidth={width}
830
- onCompleteResize={setWidth}
831
- getResizeBounds={getResizeBounds}
832
- resizingCssVar={panelSplitterResizingVar}
833
- isEnabled={isExpandedOnDesktop && !isFlyoutVisible}
834
- >
835
- <div css={styles.flexContainer}>{children}</div>
836
- </PanelSplitterProvider>
837
- </nav>
838
- );
839
- }
840
-
841
- /**
842
- * The side navigation layout area. It will show on the left (inline start) of the screen.
843
- *
844
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
845
- * content within areas of the side nav.
846
- *
847
- * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
848
- */
849
- export function SideNav({
850
- children,
851
- defaultCollapsed,
852
- defaultWidth = 320,
853
- testId,
854
- label, // Default value is defined in `SideNavInternal`
855
- skipLinkLabel = label, // Default value is defined in `SideNavInternal`
856
- onExpand,
857
- onCollapse,
858
- id,
859
- }: SideNavProps) {
860
- return (
861
- <OpenLayerObserverNamespaceProvider namespace={openLayerObserverSideNavNamespace}>
862
- <SideNavInternal
863
- defaultCollapsed={defaultCollapsed}
864
- defaultWidth={defaultWidth}
865
- testId={testId}
866
- label={label}
867
- skipLinkLabel={skipLinkLabel}
868
- onExpand={onExpand}
869
- onCollapse={onCollapse}
870
- id={id}
871
- >
872
- {children}
873
- </SideNavInternal>
874
- </OpenLayerObserverNamespaceProvider>
875
- );
876
- }