@atlaskit/navigation-system 7.3.0 → 8.1.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 (359) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/constellation/layout/custom-theming.mdx +1 -1
  3. package/dist/cjs/components/skip-links/skip-link.compiled.css +2 -1
  4. package/dist/cjs/components/skip-links/skip-link.js +4 -2
  5. package/dist/cjs/components/skip-links/skip-links-container.compiled.css +7 -2
  6. package/dist/cjs/components/skip-links/skip-links-container.js +14 -6
  7. package/dist/cjs/context/skip-links/skip-links-context.js +2 -54
  8. package/dist/cjs/context/skip-links/use-skip-link-internal.js +45 -0
  9. package/dist/cjs/context/skip-links/use-skip-link.js +17 -0
  10. package/dist/cjs/context/top-nav-start/top-nav-start-attach-ref.js +10 -0
  11. package/dist/cjs/context/top-nav-start/top-nav-start-context-provider.js +4 -3
  12. package/dist/cjs/context/top-nav-start/top-nav-start-element.js +8 -0
  13. package/dist/cjs/entry-points/experimental/top-nav-button.js +8 -5
  14. package/dist/cjs/entry-points/layout/skip-links.js +4 -4
  15. package/dist/cjs/ui/page-layout/aside.js +10 -7
  16. package/dist/cjs/ui/page-layout/banner.js +12 -8
  17. package/dist/cjs/ui/page-layout/{hoist-utils.js → dangerously-hoist-css-var-to-document-root.js} +6 -25
  18. package/dist/cjs/ui/page-layout/hoist-css-var-to-local-grid.js +22 -0
  19. package/dist/cjs/ui/page-layout/main/main.js +6 -5
  20. package/dist/cjs/ui/page-layout/panel-splitter/get-pixel-width.js +13 -0
  21. package/dist/cjs/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +1 -12
  22. package/dist/cjs/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +10 -0
  23. package/dist/cjs/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +1 -9
  24. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter-context.js +14 -0
  25. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +7 -0
  26. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +17 -19
  27. package/dist/cjs/ui/page-layout/panel-splitter/provider.js +2 -2
  28. package/dist/cjs/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +4 -3
  29. package/dist/cjs/ui/page-layout/panel.js +12 -9
  30. package/dist/cjs/ui/page-layout/ribbon.js +4 -4
  31. package/dist/cjs/ui/page-layout/root.js +7 -6
  32. package/dist/cjs/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +3 -25
  33. package/dist/cjs/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +16 -0
  34. package/dist/cjs/ui/page-layout/side-nav/set-side-nav-visibility-state.js +10 -0
  35. package/dist/cjs/ui/page-layout/side-nav/{element-context.js → side-nav-element-provider.js} +2 -14
  36. package/dist/cjs/ui/page-layout/side-nav/side-nav-ref-context.js +10 -0
  37. package/dist/cjs/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +10 -0
  38. package/dist/cjs/ui/page-layout/side-nav/side-nav-toggle-button-element.js +12 -0
  39. package/dist/cjs/ui/page-layout/side-nav/side-nav-visibility-state.js +12 -0
  40. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +19 -18
  41. package/dist/cjs/ui/page-layout/side-nav/toggle-button-provider.js +4 -3
  42. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +8 -8
  43. package/dist/cjs/ui/page-layout/side-nav/use-expand-side-nav.js +2 -2
  44. package/dist/cjs/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +15 -0
  45. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-ref.js +16 -0
  46. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +2 -2
  47. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-visibility.js +2 -2
  48. package/dist/cjs/ui/page-layout/side-nav/use-toggle-side-nav.js +2 -2
  49. package/dist/cjs/ui/page-layout/side-nav/visibility-provider.js +4 -3
  50. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +2 -2
  51. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +5 -5
  52. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +25 -15
  53. package/dist/cjs/ui/page-layout/{id-utils.js → use-layout-id.js} +2 -14
  54. package/dist/cjs/ui/page-layout/use-resizing-width-css-var-on-root-element.js +2 -2
  55. package/dist/cjs/ui/page-layout/use-skip-link-id.js +17 -0
  56. package/dist/cjs/ui/top-nav-items/app-switcher.js +2 -2
  57. package/dist/cjs/ui/top-nav-items/chat-button.js +2 -2
  58. package/dist/cjs/ui/top-nav-items/create-button.js +2 -2
  59. package/dist/cjs/ui/top-nav-items/end-item.js +2 -2
  60. package/dist/cjs/ui/top-nav-items/log-in.js +2 -2
  61. package/dist/cjs/ui/top-nav-items/search.js +2 -2
  62. package/dist/cjs/ui/top-nav-items/themed/button.js +12 -358
  63. package/dist/cjs/ui/top-nav-items/themed/get-custom-theme-styles.js +10 -10
  64. package/dist/cjs/ui/top-nav-items/themed/get-primitives-spread-props.js +39 -0
  65. package/dist/cjs/ui/top-nav-items/themed/icon-button.js +21 -0
  66. package/dist/cjs/ui/top-nav-items/themed/link-button.js +21 -0
  67. package/dist/cjs/ui/top-nav-items/themed/link-icon-button.js +21 -0
  68. package/dist/cjs/ui/top-nav-items/themed/palette-rgba.js +20 -0
  69. package/dist/cjs/ui/top-nav-items/themed/palette.js +1 -21
  70. package/dist/cjs/ui/top-nav-items/themed/search.js +1 -2
  71. package/dist/cjs/ui/top-nav-items/themed/{button.compiled.css → themed-anchor.compiled.css} +0 -1
  72. package/dist/cjs/ui/top-nav-items/themed/themed-anchor.js +76 -0
  73. package/dist/cjs/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  74. package/dist/cjs/ui/top-nav-items/themed/themed-button.js +40 -0
  75. package/dist/cjs/ui/top-nav-items/themed/themed-icon-button.js +85 -0
  76. package/dist/cjs/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  77. package/dist/cjs/ui/top-nav-items/themed/themed-link-button.js +45 -0
  78. package/dist/cjs/ui/top-nav-items/themed/themed-link-icon-button.js +83 -0
  79. package/dist/{esm/ui/top-nav-items/themed/button.compiled.css → cjs/ui/top-nav-items/themed/themed-pressable.compiled.css} +0 -1
  80. package/dist/cjs/ui/top-nav-items/themed/themed-pressable.js +64 -0
  81. package/dist/cjs/ui/top-nav-items/themed/types.js +5 -0
  82. package/dist/cjs/ui/top-nav-items/themed/use-custom-theme-new.js +53 -0
  83. package/dist/cjs/ui/top-nav-items/themed/use-custom-theme.js +0 -41
  84. package/dist/es2019/components/skip-links/skip-link.compiled.css +2 -1
  85. package/dist/es2019/components/skip-links/skip-link.js +4 -2
  86. package/dist/es2019/components/skip-links/skip-links-container.compiled.css +7 -2
  87. package/dist/es2019/components/skip-links/skip-links-container.js +14 -6
  88. package/dist/es2019/context/skip-links/skip-links-context.js +2 -54
  89. package/dist/es2019/context/skip-links/use-skip-link-internal.js +41 -0
  90. package/dist/es2019/context/skip-links/use-skip-link.js +12 -0
  91. package/dist/es2019/context/top-nav-start/top-nav-start-attach-ref.js +3 -0
  92. package/dist/es2019/context/top-nav-start/top-nav-start-context-provider.js +2 -1
  93. package/dist/es2019/context/top-nav-start/top-nav-start-element.js +2 -0
  94. package/dist/es2019/entry-points/experimental/top-nav-button.js +4 -1
  95. package/dist/es2019/entry-points/layout/skip-links.js +2 -2
  96. package/dist/es2019/ui/page-layout/aside.js +7 -4
  97. package/dist/es2019/ui/page-layout/banner.js +8 -4
  98. package/dist/es2019/ui/page-layout/{hoist-utils.js → dangerously-hoist-css-var-to-document-root.js} +0 -19
  99. package/dist/es2019/ui/page-layout/hoist-css-var-to-local-grid.js +15 -0
  100. package/dist/es2019/ui/page-layout/main/main.js +4 -3
  101. package/dist/es2019/ui/page-layout/panel-splitter/get-pixel-width.js +7 -0
  102. package/dist/es2019/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +0 -11
  103. package/dist/es2019/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +4 -0
  104. package/dist/es2019/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +0 -8
  105. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter-context.js +9 -0
  106. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +1 -0
  107. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +12 -13
  108. package/dist/es2019/ui/page-layout/panel-splitter/provider.js +1 -1
  109. package/dist/es2019/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -1
  110. package/dist/es2019/ui/page-layout/panel.js +8 -5
  111. package/dist/es2019/ui/page-layout/ribbon.js +2 -2
  112. package/dist/es2019/ui/page-layout/root.js +6 -4
  113. package/dist/es2019/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +2 -22
  114. package/dist/es2019/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +10 -0
  115. package/dist/es2019/ui/page-layout/side-nav/set-side-nav-visibility-state.js +3 -0
  116. package/dist/es2019/ui/page-layout/side-nav/side-nav-element-provider.js +10 -0
  117. package/dist/es2019/ui/page-layout/side-nav/side-nav-ref-context.js +4 -0
  118. package/dist/es2019/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +3 -0
  119. package/dist/es2019/ui/page-layout/side-nav/side-nav-toggle-button-element.js +7 -0
  120. package/dist/es2019/ui/page-layout/side-nav/{visibility-context.js → side-nav-visibility-state.js} +1 -7
  121. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +9 -8
  122. package/dist/es2019/ui/page-layout/side-nav/toggle-button-provider.js +2 -1
  123. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +4 -4
  124. package/dist/es2019/ui/page-layout/side-nav/use-expand-side-nav.js +1 -1
  125. package/dist/es2019/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +10 -0
  126. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-ref.js +11 -0
  127. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  128. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-visibility.js +1 -1
  129. package/dist/es2019/ui/page-layout/side-nav/use-toggle-side-nav.js +1 -1
  130. package/dist/es2019/ui/page-layout/side-nav/visibility-provider.js +2 -2
  131. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +1 -1
  132. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +2 -2
  133. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +21 -10
  134. package/dist/es2019/ui/page-layout/use-layout-id.js +15 -0
  135. package/dist/es2019/ui/page-layout/use-resizing-width-css-var-on-root-element.js +1 -1
  136. package/dist/es2019/ui/page-layout/{id-utils.js → use-skip-link-id.js} +0 -14
  137. package/dist/es2019/ui/top-nav-items/app-switcher.js +1 -1
  138. package/dist/es2019/ui/top-nav-items/chat-button.js +1 -1
  139. package/dist/es2019/ui/top-nav-items/create-button.js +1 -1
  140. package/dist/es2019/ui/top-nav-items/end-item.js +1 -1
  141. package/dist/es2019/ui/top-nav-items/log-in.js +1 -1
  142. package/dist/es2019/ui/top-nav-items/search.js +1 -1
  143. package/dist/es2019/ui/top-nav-items/themed/button.js +11 -347
  144. package/dist/es2019/ui/top-nav-items/themed/get-custom-theme-styles.js +28 -28
  145. package/dist/es2019/ui/top-nav-items/themed/get-primitives-spread-props.js +31 -0
  146. package/dist/es2019/ui/top-nav-items/themed/icon-button.js +12 -0
  147. package/dist/es2019/ui/top-nav-items/themed/link-button.js +12 -0
  148. package/dist/es2019/ui/top-nav-items/themed/link-icon-button.js +12 -0
  149. package/dist/es2019/ui/top-nav-items/themed/palette-rgba.js +14 -0
  150. package/dist/es2019/ui/top-nav-items/themed/palette.js +0 -20
  151. package/dist/es2019/ui/top-nav-items/themed/search.js +1 -2
  152. package/dist/es2019/ui/top-nav-items/themed/{button.compiled.css → themed-anchor.compiled.css} +0 -1
  153. package/dist/es2019/ui/top-nav-items/themed/themed-anchor.js +66 -0
  154. package/dist/es2019/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  155. package/dist/es2019/ui/top-nav-items/themed/themed-button.js +30 -0
  156. package/dist/es2019/ui/top-nav-items/themed/themed-icon-button.js +72 -0
  157. package/dist/es2019/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  158. package/dist/es2019/ui/top-nav-items/themed/themed-link-button.js +37 -0
  159. package/dist/es2019/ui/top-nav-items/themed/themed-link-icon-button.js +73 -0
  160. package/dist/es2019/ui/top-nav-items/themed/themed-pressable.compiled.css +68 -0
  161. package/dist/es2019/ui/top-nav-items/themed/themed-pressable.js +52 -0
  162. package/dist/es2019/ui/top-nav-items/themed/types.js +1 -0
  163. package/dist/es2019/ui/top-nav-items/themed/use-custom-theme-new.js +45 -0
  164. package/dist/es2019/ui/top-nav-items/themed/use-custom-theme.js +0 -38
  165. package/dist/esm/components/skip-links/skip-link.compiled.css +2 -1
  166. package/dist/esm/components/skip-links/skip-link.js +4 -2
  167. package/dist/esm/components/skip-links/skip-links-container.compiled.css +7 -2
  168. package/dist/esm/components/skip-links/skip-links-container.js +14 -6
  169. package/dist/esm/context/skip-links/skip-links-context.js +2 -54
  170. package/dist/esm/context/skip-links/use-skip-link-internal.js +39 -0
  171. package/dist/esm/context/skip-links/use-skip-link.js +12 -0
  172. package/dist/esm/context/top-nav-start/top-nav-start-attach-ref.js +3 -0
  173. package/dist/esm/context/top-nav-start/top-nav-start-context-provider.js +2 -1
  174. package/dist/esm/context/top-nav-start/top-nav-start-element.js +2 -0
  175. package/dist/esm/entry-points/experimental/top-nav-button.js +4 -1
  176. package/dist/esm/entry-points/layout/skip-links.js +2 -2
  177. package/dist/esm/ui/page-layout/aside.js +7 -4
  178. package/dist/esm/ui/page-layout/banner.js +8 -4
  179. package/dist/esm/ui/page-layout/dangerously-hoist-css-var-to-document-root.js +31 -0
  180. package/dist/esm/ui/page-layout/hoist-css-var-to-local-grid.js +16 -0
  181. package/dist/esm/ui/page-layout/main/main.js +4 -3
  182. package/dist/esm/ui/page-layout/panel-splitter/get-pixel-width.js +7 -0
  183. package/dist/esm/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +0 -11
  184. package/dist/esm/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +4 -0
  185. package/dist/esm/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +0 -8
  186. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter-context.js +9 -0
  187. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +1 -0
  188. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +9 -10
  189. package/dist/esm/ui/page-layout/panel-splitter/provider.js +1 -1
  190. package/dist/esm/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -1
  191. package/dist/esm/ui/page-layout/panel.js +8 -5
  192. package/dist/esm/ui/page-layout/ribbon.js +2 -2
  193. package/dist/esm/ui/page-layout/root.js +6 -5
  194. package/dist/esm/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +2 -21
  195. package/dist/esm/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +9 -0
  196. package/dist/esm/ui/page-layout/side-nav/set-side-nav-visibility-state.js +3 -0
  197. package/dist/esm/ui/page-layout/side-nav/side-nav-element-provider.js +9 -0
  198. package/dist/esm/ui/page-layout/side-nav/side-nav-ref-context.js +4 -0
  199. package/dist/esm/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +3 -0
  200. package/dist/esm/ui/page-layout/side-nav/side-nav-toggle-button-element.js +7 -0
  201. package/dist/esm/ui/page-layout/side-nav/{visibility-context.js → side-nav-visibility-state.js} +1 -7
  202. package/dist/esm/ui/page-layout/side-nav/side-nav.js +9 -8
  203. package/dist/esm/ui/page-layout/side-nav/toggle-button-provider.js +2 -1
  204. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +4 -4
  205. package/dist/esm/ui/page-layout/side-nav/use-expand-side-nav.js +1 -1
  206. package/dist/esm/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +10 -0
  207. package/dist/esm/ui/page-layout/side-nav/use-side-nav-ref.js +11 -0
  208. package/dist/esm/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  209. package/dist/esm/ui/page-layout/side-nav/use-side-nav-visibility.js +1 -1
  210. package/dist/esm/ui/page-layout/side-nav/use-toggle-side-nav.js +1 -1
  211. package/dist/esm/ui/page-layout/side-nav/visibility-provider.js +2 -2
  212. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +1 -1
  213. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +2 -2
  214. package/dist/esm/ui/page-layout/top-nav/top-nav.js +21 -10
  215. package/dist/esm/ui/page-layout/{id-utils.js → use-layout-id.js} +1 -12
  216. package/dist/esm/ui/page-layout/use-resizing-width-css-var-on-root-element.js +1 -1
  217. package/dist/esm/ui/page-layout/use-skip-link-id.js +12 -0
  218. package/dist/esm/ui/top-nav-items/app-switcher.js +1 -1
  219. package/dist/esm/ui/top-nav-items/chat-button.js +1 -1
  220. package/dist/esm/ui/top-nav-items/create-button.js +1 -1
  221. package/dist/esm/ui/top-nav-items/end-item.js +1 -1
  222. package/dist/esm/ui/top-nav-items/log-in.js +1 -1
  223. package/dist/esm/ui/top-nav-items/search.js +1 -1
  224. package/dist/esm/ui/top-nav-items/themed/button.js +11 -358
  225. package/dist/esm/ui/top-nav-items/themed/get-custom-theme-styles.js +9 -9
  226. package/dist/esm/ui/top-nav-items/themed/get-primitives-spread-props.js +32 -0
  227. package/dist/esm/ui/top-nav-items/themed/icon-button.js +12 -0
  228. package/dist/esm/ui/top-nav-items/themed/link-button.js +12 -0
  229. package/dist/esm/ui/top-nav-items/themed/link-icon-button.js +12 -0
  230. package/dist/esm/ui/top-nav-items/themed/palette-rgba.js +14 -0
  231. package/dist/esm/ui/top-nav-items/themed/palette.js +0 -20
  232. package/dist/esm/ui/top-nav-items/themed/search.js +1 -2
  233. package/dist/esm/ui/top-nav-items/themed/themed-anchor.compiled.css +68 -0
  234. package/dist/esm/ui/top-nav-items/themed/themed-anchor.js +69 -0
  235. package/dist/esm/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  236. package/dist/esm/ui/top-nav-items/themed/themed-button.js +31 -0
  237. package/dist/esm/ui/top-nav-items/themed/themed-icon-button.js +76 -0
  238. package/dist/esm/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  239. package/dist/esm/ui/top-nav-items/themed/themed-link-button.js +38 -0
  240. package/dist/esm/ui/top-nav-items/themed/themed-link-icon-button.js +77 -0
  241. package/dist/esm/ui/top-nav-items/themed/themed-pressable.compiled.css +68 -0
  242. package/dist/esm/ui/top-nav-items/themed/themed-pressable.js +55 -0
  243. package/dist/esm/ui/top-nav-items/themed/types.js +1 -0
  244. package/dist/esm/ui/top-nav-items/themed/use-custom-theme-new.js +46 -0
  245. package/dist/esm/ui/top-nav-items/themed/use-custom-theme.js +0 -39
  246. package/dist/types/context/skip-links/skip-links-context.d.ts +0 -27
  247. package/dist/types/context/skip-links/use-skip-link-internal.d.ts +10 -0
  248. package/dist/types/context/skip-links/use-skip-link.d.ts +18 -0
  249. package/dist/types/context/top-nav-start/top-nav-start-attach-ref.d.ts +1 -0
  250. package/dist/types/context/top-nav-start/top-nav-start-element.d.ts +1 -0
  251. package/dist/types/entry-points/experimental/top-nav-button.d.ts +4 -1
  252. package/dist/types/entry-points/layout/skip-links.d.ts +2 -2
  253. package/dist/types/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +8 -0
  254. package/dist/{types-ts4.5/ui/page-layout/hoist-utils.d.ts → types/ui/page-layout/hoist-css-var-to-local-grid.d.ts} +0 -11
  255. package/dist/types/ui/page-layout/panel-splitter/get-pixel-width.d.ts +4 -0
  256. package/dist/types/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +8 -0
  257. package/dist/types/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.d.ts +9 -0
  258. package/dist/types/ui/page-layout/panel-splitter/on-double-click-context.d.ts +8 -0
  259. package/dist/{types-ts4.5/ui/page-layout/panel-splitter/context.d.ts → types/ui/page-layout/panel-splitter/panel-splitter-context.d.ts} +0 -8
  260. package/dist/types/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.d.ts +1 -0
  261. package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -10
  262. package/dist/types/ui/page-layout/panel-splitter/provider.d.ts +1 -1
  263. package/dist/types/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.d.ts +6 -11
  264. package/dist/types/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.d.ts +5 -0
  265. package/dist/types/ui/page-layout/side-nav/set-side-nav-visibility-state.d.ts +3 -0
  266. package/dist/types/ui/page-layout/side-nav/side-nav-element-provider.d.ts +4 -0
  267. package/dist/types/ui/page-layout/side-nav/side-nav-ref-context.d.ts +2 -0
  268. package/dist/types/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.d.ts +1 -0
  269. package/dist/types/ui/page-layout/side-nav/side-nav-toggle-button-element.d.ts +5 -0
  270. package/dist/{types-ts4.5/ui/page-layout/side-nav/visibility-context.d.ts → types/ui/page-layout/side-nav/side-nav-visibility-state.d.ts} +0 -5
  271. package/dist/types/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.d.ts +5 -0
  272. package/dist/{types-ts4.5/ui/page-layout/side-nav/element-context.d.ts → types/ui/page-layout/side-nav/use-side-nav-ref.d.ts} +1 -4
  273. package/dist/types/ui/page-layout/top-nav/top-nav.d.ts +3 -4
  274. package/dist/{types-ts4.5/ui/page-layout/id-utils.d.ts → types/ui/page-layout/use-layout-id.d.ts} +0 -5
  275. package/dist/types/ui/page-layout/use-skip-link-id.d.ts +5 -0
  276. package/dist/types/ui/top-nav-items/themed/button.d.ts +5 -126
  277. package/dist/types/ui/top-nav-items/themed/get-primitives-spread-props.d.ts +16 -0
  278. package/dist/types/ui/top-nav-items/themed/icon-button.d.ts +7 -0
  279. package/dist/types/ui/top-nav-items/themed/link-button.d.ts +3 -0
  280. package/dist/types/ui/top-nav-items/themed/link-icon-button.d.ts +7 -0
  281. package/dist/types/ui/top-nav-items/themed/palette-rgba.d.ts +14 -0
  282. package/dist/types/ui/top-nav-items/themed/palette.d.ts +0 -20
  283. package/dist/types/ui/top-nav-items/themed/themed-anchor.d.ts +32 -0
  284. package/dist/types/ui/top-nav-items/themed/themed-button.d.ts +10 -0
  285. package/dist/types/ui/top-nav-items/themed/themed-icon-button.d.ts +10 -0
  286. package/dist/types/ui/top-nav-items/themed/themed-link-button.d.ts +16 -0
  287. package/dist/types/ui/top-nav-items/themed/themed-link-icon-button.d.ts +13 -0
  288. package/dist/types/ui/top-nav-items/themed/themed-pressable.d.ts +18 -0
  289. package/dist/types/ui/top-nav-items/themed/types.d.ts +54 -0
  290. package/dist/types/ui/top-nav-items/themed/use-custom-theme-new.d.ts +20 -0
  291. package/dist/types/ui/top-nav-items/themed/use-custom-theme.d.ts +0 -11
  292. package/dist/types-ts4.5/context/skip-links/skip-links-context.d.ts +0 -27
  293. package/dist/types-ts4.5/context/skip-links/use-skip-link-internal.d.ts +10 -0
  294. package/dist/types-ts4.5/context/skip-links/use-skip-link.d.ts +18 -0
  295. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-attach-ref.d.ts +1 -0
  296. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-element.d.ts +1 -0
  297. package/dist/types-ts4.5/entry-points/experimental/top-nav-button.d.ts +4 -1
  298. package/dist/types-ts4.5/entry-points/layout/skip-links.d.ts +2 -2
  299. package/dist/types-ts4.5/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +8 -0
  300. package/dist/{types/ui/page-layout/hoist-utils.d.ts → types-ts4.5/ui/page-layout/hoist-css-var-to-local-grid.d.ts} +0 -11
  301. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-pixel-width.d.ts +4 -0
  302. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +8 -0
  303. package/dist/types-ts4.5/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.d.ts +9 -0
  304. package/dist/types-ts4.5/ui/page-layout/panel-splitter/on-double-click-context.d.ts +8 -0
  305. package/dist/{types/ui/page-layout/panel-splitter/context.d.ts → types-ts4.5/ui/page-layout/panel-splitter/panel-splitter-context.d.ts} +0 -8
  306. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.d.ts +1 -0
  307. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -10
  308. package/dist/types-ts4.5/ui/page-layout/panel-splitter/provider.d.ts +1 -1
  309. package/dist/types-ts4.5/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.d.ts +6 -11
  310. package/dist/types-ts4.5/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.d.ts +5 -0
  311. package/dist/types-ts4.5/ui/page-layout/side-nav/set-side-nav-visibility-state.d.ts +3 -0
  312. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-element-provider.d.ts +4 -0
  313. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-ref-context.d.ts +2 -0
  314. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.d.ts +1 -0
  315. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-toggle-button-element.d.ts +5 -0
  316. package/dist/{types/ui/page-layout/side-nav/visibility-context.d.ts → types-ts4.5/ui/page-layout/side-nav/side-nav-visibility-state.d.ts} +0 -5
  317. package/dist/types-ts4.5/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.d.ts +5 -0
  318. package/dist/{types/ui/page-layout/side-nav/element-context.d.ts → types-ts4.5/ui/page-layout/side-nav/use-side-nav-ref.d.ts} +1 -4
  319. package/dist/types-ts4.5/ui/page-layout/top-nav/top-nav.d.ts +3 -4
  320. package/dist/{types/ui/page-layout/id-utils.d.ts → types-ts4.5/ui/page-layout/use-layout-id.d.ts} +0 -5
  321. package/dist/types-ts4.5/ui/page-layout/use-skip-link-id.d.ts +5 -0
  322. package/dist/types-ts4.5/ui/top-nav-items/themed/button.d.ts +5 -126
  323. package/dist/types-ts4.5/ui/top-nav-items/themed/get-primitives-spread-props.d.ts +16 -0
  324. package/dist/types-ts4.5/ui/top-nav-items/themed/icon-button.d.ts +7 -0
  325. package/dist/types-ts4.5/ui/top-nav-items/themed/link-button.d.ts +3 -0
  326. package/dist/types-ts4.5/ui/top-nav-items/themed/link-icon-button.d.ts +7 -0
  327. package/dist/types-ts4.5/ui/top-nav-items/themed/palette-rgba.d.ts +14 -0
  328. package/dist/types-ts4.5/ui/top-nav-items/themed/palette.d.ts +0 -20
  329. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-anchor.d.ts +32 -0
  330. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-button.d.ts +10 -0
  331. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-icon-button.d.ts +10 -0
  332. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-link-button.d.ts +16 -0
  333. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-link-icon-button.d.ts +13 -0
  334. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-pressable.d.ts +18 -0
  335. package/dist/types-ts4.5/ui/top-nav-items/themed/types.d.ts +54 -0
  336. package/dist/types-ts4.5/ui/top-nav-items/themed/use-custom-theme-new.d.ts +20 -0
  337. package/dist/types-ts4.5/ui/top-nav-items/themed/use-custom-theme.d.ts +0 -11
  338. package/package.json +19 -16
  339. package/dist/cjs/context/top-nav-start/top-nav-start-context.js +0 -26
  340. package/dist/cjs/ui/page-layout/side-nav/toggle-button-context.js +0 -26
  341. package/dist/cjs/ui/page-layout/side-nav/visibility-context.js +0 -19
  342. package/dist/cjs/ui/top-nav-items/themed/migration.js +0 -53
  343. package/dist/es2019/context/top-nav-start/top-nav-start-context.js +0 -20
  344. package/dist/es2019/ui/page-layout/side-nav/element-context.js +0 -21
  345. package/dist/es2019/ui/page-layout/side-nav/toggle-button-context.js +0 -19
  346. package/dist/es2019/ui/top-nav-items/themed/migration.js +0 -45
  347. package/dist/esm/context/top-nav-start/top-nav-start-context.js +0 -20
  348. package/dist/esm/ui/page-layout/hoist-utils.js +0 -51
  349. package/dist/esm/ui/page-layout/side-nav/element-context.js +0 -20
  350. package/dist/esm/ui/page-layout/side-nav/toggle-button-context.js +0 -19
  351. package/dist/esm/ui/top-nav-items/themed/migration.js +0 -45
  352. package/dist/types/context/top-nav-start/top-nav-start-context.d.ts +0 -16
  353. package/dist/types/ui/page-layout/panel-splitter/get-width.d.ts +0 -16
  354. package/dist/types/ui/page-layout/side-nav/toggle-button-context.d.ts +0 -16
  355. package/dist/types/ui/top-nav-items/themed/migration.d.ts +0 -10
  356. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-context.d.ts +0 -16
  357. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-width.d.ts +0 -16
  358. package/dist/types-ts4.5/ui/page-layout/side-nav/toggle-button-context.d.ts +0 -16
  359. package/dist/types-ts4.5/ui/top-nav-items/themed/migration.d.ts +0 -10
@@ -1,4 +1,4 @@
1
- import { createContext, useContext, useEffect } from 'react';
1
+ import { createContext } from 'react';
2
2
  import noop from '@atlaskit/ds-lib/noop';
3
3
  /**
4
4
  * Provides a way to register and unregister skip links
@@ -6,56 +6,4 @@ import noop from '@atlaskit/ds-lib/noop';
6
6
  export const SkipLinksContext = /*#__PURE__*/createContext({
7
7
  registerSkipLink: noop,
8
8
  unregisterSkipLink: noop
9
- });
10
- const useSkipLinks = () => useContext(SkipLinksContext);
11
-
12
- /**
13
- * Internal-only hook for registering skip links.
14
- *
15
- * `useSkipLink` is the public API wrapper of this.
16
- *
17
- * This private version exists for us to support `onBeforeNavigate` for the side nav use case,
18
- * where we might need to expand it before moving focus, without having to support `onBeforeNavigate` publicly.
19
- */
20
- export const useSkipLinkInternal = ({
21
- id,
22
- label,
23
- listIndex,
24
- onBeforeNavigate,
25
- isHidden
26
- }) => {
27
- const {
28
- registerSkipLink,
29
- unregisterSkipLink
30
- } = useSkipLinks();
31
- useEffect(() => {
32
- if (isHidden) {
33
- /**
34
- * Skip links are hidden for slots with 0 height or width.
35
- * They should not be registered.
36
- */
37
- return;
38
- }
39
- registerSkipLink({
40
- id,
41
- label,
42
- listIndex,
43
- onBeforeNavigate,
44
- isHidden
45
- });
46
- return () => {
47
- unregisterSkipLink(id);
48
- };
49
- }, [id, isHidden, label, listIndex, onBeforeNavigate, registerSkipLink, unregisterSkipLink]);
50
- };
51
-
52
- /**
53
- * Call `useSkipLink` to register a skip link for important elements on the page.
54
- */
55
- export const useSkipLink = (id, label, listIndex) => {
56
- useSkipLinkInternal({
57
- id,
58
- label,
59
- listIndex
60
- });
61
- };
9
+ });
@@ -0,0 +1,41 @@
1
+ import { useContext, useEffect } from 'react';
2
+ import { SkipLinksContext } from './skip-links-context';
3
+ /**
4
+ * Internal-only hook for registering skip links.
5
+ *
6
+ * `useSkipLink` is the public API wrapper of this.
7
+ *
8
+ * This private version exists for us to support `onBeforeNavigate` for the side nav use case,
9
+ * where we might need to expand it before moving focus, without having to support `onBeforeNavigate` publicly.
10
+ */
11
+ export const useSkipLinkInternal = ({
12
+ id,
13
+ label,
14
+ listIndex,
15
+ onBeforeNavigate,
16
+ isHidden
17
+ }) => {
18
+ const {
19
+ registerSkipLink,
20
+ unregisterSkipLink
21
+ } = useContext(SkipLinksContext);
22
+ useEffect(() => {
23
+ if (isHidden) {
24
+ /**
25
+ * Skip links are hidden for slots with 0 height or width.
26
+ * They should not be registered.
27
+ */
28
+ return;
29
+ }
30
+ registerSkipLink({
31
+ id,
32
+ label,
33
+ listIndex,
34
+ onBeforeNavigate,
35
+ isHidden
36
+ });
37
+ return () => {
38
+ unregisterSkipLink(id);
39
+ };
40
+ }, [id, isHidden, label, listIndex, onBeforeNavigate, registerSkipLink, unregisterSkipLink]);
41
+ };
@@ -0,0 +1,12 @@
1
+ import { useSkipLinkInternal } from './use-skip-link-internal';
2
+
3
+ /**
4
+ * Call `useSkipLink` to register a skip link for important elements on the page.
5
+ */
6
+ export const useSkipLink = (id, label, listIndex) => {
7
+ useSkipLinkInternal({
8
+ id,
9
+ label,
10
+ listIndex
11
+ });
12
+ };
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ import __noop from '@atlaskit/ds-lib/noop';
3
+ export const TopNavStartAttachRef = /*#__PURE__*/createContext(__noop);
@@ -1,5 +1,6 @@
1
1
  import React, { useState } from 'react';
2
- import { TopNavStartAttachRef, TopNavStartElement } from './top-nav-start-context';
2
+ import { TopNavStartAttachRef } from './top-nav-start-attach-ref';
3
+ import { TopNavStartElement } from './top-nav-start-element';
3
4
 
4
5
  /**
5
6
  * Provider for the TopNavStart container element contexts.
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export const TopNavStartElement = /*#__PURE__*/createContext(null);
@@ -1 +1,4 @@
1
- export { Button as TopNavButton, LinkButton as TopNavLinkButton, IconButton as TopNavIconButton, LinkIconButton as TopNavLinkIconButton } from '../../ui/top-nav-items/themed/migration';
1
+ export { Button as TopNavButton } from '../../ui/top-nav-items/themed/button';
2
+ export { LinkButton as TopNavLinkButton } from '../../ui/top-nav-items/themed/link-button';
3
+ export { IconButton as TopNavIconButton } from '../../ui/top-nav-items/themed/icon-button';
4
+ export { LinkIconButton as TopNavLinkIconButton } from '../../ui/top-nav-items/themed/link-icon-button';
@@ -1,2 +1,2 @@
1
- export { useSkipLinkId } from '../../ui/page-layout/id-utils';
2
- export { useSkipLink } from '../../context/skip-links/skip-links-context';
1
+ export { useSkipLinkId } from '../../ui/page-layout/use-skip-link-id';
2
+ export { useSkipLink } from '../../context/skip-links/use-skip-link';
@@ -4,13 +4,14 @@ import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useContext, useEffect, useRef, useState } from 'react';
6
6
  import usePreviousValue from '@atlaskit/ds-lib/use-previous-value';
7
+ import { fg } from '@atlaskit/platform-feature-flags';
7
8
  import { media } from '@atlaskit/primitives/responsive';
8
- import { useSkipLinkInternal } from '../../context/skip-links/skip-links-context';
9
+ import { useSkipLinkInternal } from '../../context/skip-links/use-skip-link-internal';
9
10
  import { asidePanelSplitterId, asideVar, contentHeightWhenFixed, contentInsetBlockStart, UNSAFE_asideLayoutVar } from './constants';
11
+ import { DangerouslyHoistCssVarToDocumentRoot } from './dangerously-hoist-css-var-to-document-root';
10
12
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
11
- import { DangerouslyHoistCssVarToDocumentRoot } from './hoist-utils';
12
- import { useLayoutId } from './id-utils';
13
13
  import { PanelSplitterProvider } from './panel-splitter/provider';
14
+ import { useLayoutId } from './use-layout-id';
14
15
  import { useResizingWidthCssVarOnRootElement } from './use-resizing-width-css-var-on-root-element';
15
16
  import { useSafeDefaultWidth } from './use-safe-default-width';
16
17
  const panelSplitterResizingVar = '--n_asdRsz';
@@ -76,11 +77,13 @@ export function Aside({
76
77
  * Don't show the skip link if the slot has 0 width.
77
78
  *
78
79
  * Remove `isHidden` usage after https://jplat.atlassian.net/browse/BLU-3951
80
+ *
81
+ * TODO: when cleaning up 'platform_dst_nav4_skip_link_a11y_1' remove this call entirely
79
82
  */
80
83
  useSkipLinkInternal({
81
84
  id,
82
85
  label: skipLinkLabel,
83
- isHidden: defaultWidth === 0
86
+ isHidden: defaultWidth === 0 || fg('platform_dst_nav4_skip_link_a11y_1')
84
87
  });
85
88
  const ref = useRef(null);
86
89
  const [width, setWidth] = useState(defaultWidth);
@@ -3,12 +3,14 @@ import "./banner.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useContext } from 'react';
6
- import { useSkipLinkInternal } from '../../context/skip-links/skip-links-context';
6
+ import { fg } from '@atlaskit/platform-feature-flags';
7
+ import { useSkipLinkInternal } from '../../context/skip-links/use-skip-link-internal';
7
8
  import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
8
9
  import { bannerMountedVar, localSlotLayers, UNSAFE_bannerVar } from './constants';
10
+ import { DangerouslyHoistCssVarToDocumentRoot } from './dangerously-hoist-css-var-to-document-root';
11
+ import { HoistCssVarToLocalGrid } from './hoist-css-var-to-local-grid';
9
12
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
10
- import { DangerouslyHoistCssVarToDocumentRoot, HoistCssVarToLocalGrid } from './hoist-utils';
11
- import { useLayoutId } from './id-utils';
13
+ import { useLayoutId } from './use-layout-id';
12
14
  const styles = {
13
15
  root: "_nd5ldkfm _1reo15vq _18m915vq _4t3iutvi _152tidpf _kqsw1if8 _1pbyegat",
14
16
  fullHeightSidebar: "_1pby11wp"
@@ -36,11 +38,13 @@ export function Banner({
36
38
 
37
39
  /**
38
40
  * Don't show the skip link if the slot has 0 height.
41
+ *
42
+ * TODO: when cleaning up 'platform_dst_nav4_skip_link_a11y_1' remove this call entirely
39
43
  */
40
44
  useSkipLinkInternal({
41
45
  id,
42
46
  label: skipLinkLabel,
43
- isHidden: height === 0
47
+ isHidden: height === 0 || fg('platform_dst_nav4_skip_link_a11y_1')
44
48
  });
45
49
  return /*#__PURE__*/React.createElement("div", {
46
50
  id: id,
@@ -1,24 +1,5 @@
1
1
  import React from 'react';
2
- import { gridRootId } from './root';
3
-
4
- /**
5
- * This is not ideal and shouldn't be used by anything outside of `<Banner>` and `<TopNav>`.
6
- *
7
- * This makes the other page layout elements aware that the banner and top bar have been mounted, provides them
8
- * with their heights. This is needed to power the stick points of page layout elements like SideNav and Panel.
9
- *
10
- * We should clean this up once we have a better solution, such as moving the size props for banner and top bar into `Root`.
11
- */
12
- export const HoistCssVarToLocalGrid = ({
13
- variableName,
14
- value
15
- }) => /*#__PURE__*/React.createElement("style", null, `#${gridRootId} { ${variableName}: ${value}px }`);
16
2
  const getCssStringValue = value => typeof value === 'number' ? `${value}px` : value;
17
-
18
- /**
19
- * Hoists CSS variables to the document root. This is support the legacy edge case of monolith pages being injected as a
20
- * sibling to the page layout, as opposed to within the `Main` slot.
21
- */
22
3
  export const DangerouslyHoistCssVarToDocumentRoot = ({
23
4
  variableName,
24
5
  value,
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { gridRootId } from './root';
3
+
4
+ /**
5
+ * This is not ideal and shouldn't be used by anything outside of `<Banner>` and `<TopNav>`.
6
+ *
7
+ * This makes the other page layout elements aware that the banner and top bar have been mounted, provides them
8
+ * with their heights. This is needed to power the stick points of page layout elements like SideNav and Panel.
9
+ *
10
+ * We should clean this up once we have a better solution, such as moving the size props for banner and top bar into `Root`.
11
+ */
12
+ export const HoistCssVarToLocalGrid = ({
13
+ variableName,
14
+ value
15
+ }) => /*#__PURE__*/React.createElement("style", null, `#${gridRootId} { ${variableName}: ${value}px }`);
@@ -3,9 +3,10 @@ import "./main.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { Fragment } from 'react';
6
- import { useSkipLink } from '../../../context/skip-links/skip-links-context';
6
+ import { fg } from '@atlaskit/platform-feature-flags';
7
+ import { useSkipLink } from '../../../context/skip-links/use-skip-link';
7
8
  import { contentHeightWhenFixed, contentInsetBlockStart } from '../constants';
8
- import { useLayoutId } from '../id-utils';
9
+ import { useLayoutId } from '../use-layout-id';
9
10
  const mainElementStyles = {
10
11
  root: "_nd5l1gzg _1reo1wug _18m91wug _19121cl4 _152timx3 _qwfh1wug _165teqxy _13wn1if8"
11
12
  };
@@ -16,7 +17,7 @@ const mainElementStyles = {
16
17
  export function Main({
17
18
  children,
18
19
  xcss,
19
- skipLinkLabel = 'Main Content',
20
+ skipLinkLabel = fg('platform_dst_nav4_skip_link_a11y_1') ? 'Main content' : 'Main Content',
20
21
  testId,
21
22
  id: providedId
22
23
  }) {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns the computed width of an element in pixels.
3
+ */
4
+ export const getPixelWidth = element => {
5
+ // Always returns an integer. Returns 0 if element is hidden / removed.
6
+ return element.offsetWidth;
7
+ };
@@ -1,7 +1,3 @@
1
- /**
2
- * ⚠️ Note: We are using the initial client location captured from the mousedown event, not from the dragstart event.
3
- * Some browser extensions can cause the client locations (e.g. clientX) in the `dragstart` event to incorrectly return 0.
4
- */
5
1
  export const getWidthFromDragLocation = ({
6
2
  initialWidth,
7
3
  location,
@@ -20,11 +16,4 @@ export const getWidthFromDragLocation = ({
20
16
  // Resize line is positioned at the inline-start (left) of the element.
21
17
  // If the direction is left-to-right, the width will decrease when the mouse is moved to the right, and vice versa.
22
18
  return direction === 'ltr' ? initialWidth - diffX : initialWidth + diffX;
23
- };
24
- /**
25
- * Returns the computed width of an element in pixels.
26
- */
27
- export const getPixelWidth = element => {
28
- // Always returns an integer. Returns 0 if element is hidden / removed.
29
- return element.offsetWidth;
30
19
  };
@@ -0,0 +1,4 @@
1
+ import { panelSplitterDragDataSymbol } from './panel-splitter-drag-symbol';
2
+ export function isPanelSplitterDragData(data) {
3
+ return data[panelSplitterDragDataSymbol] === true;
4
+ }
@@ -1,13 +1,5 @@
1
1
  import { createContext } from 'react';
2
2
 
3
- // Disabling the rule to allow for `Type` suffix, to differentiate from the Context object.
4
- // eslint-disable-next-line @repo/internal/react/consistent-types-definitions
5
-
6
- /**
7
- * Context for the panel splitter. Only internally exported.
8
- */
9
- export const PanelSplitterContext = /*#__PURE__*/createContext(null);
10
-
11
3
  /**
12
4
  * Context for the panel splitter's double click handler. Only internally exported.
13
5
  *
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ // Disabling the rule to allow for `Type` suffix, to differentiate from the Context object.
4
+ // eslint-disable-next-line @repo/internal/react/consistent-types-definitions
5
+
6
+ /**
7
+ * Context for the panel splitter. Only internally exported.
8
+ */
9
+ export const PanelSplitterContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1 @@
1
+ export const panelSplitterDragDataSymbol = Symbol('panel-splitter-drag-data');
@@ -21,11 +21,21 @@ import TooltipContainer from '@atlaskit/tooltip/TooltipContainer';
21
21
  import VisuallyHidden from '@atlaskit/visually-hidden';
22
22
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
23
23
  import { contentInsetBlockStart } from '../constants';
24
- import { OnDoubleClickContext, PanelSplitterContext } from './context';
25
24
  import { convertResizeBoundToPixels } from './convert-resize-bound-to-pixels';
26
25
  import { getPercentageWithinPixelBounds } from './get-percentage-within-pixel-bounds';
27
- import { getPixelWidth, getWidthFromDragLocation } from './get-width';
26
+ import { getPixelWidth } from './get-pixel-width';
27
+ import { getWidthFromDragLocation } from './get-width-from-drag-location';
28
+ import { isPanelSplitterDragData } from './is-panel-splitter-drag-data';
28
29
  import { createKeyboardResizeManager } from './keyboard-resize-manager';
30
+ import { OnDoubleClickContext } from './on-double-click-context';
31
+ import { PanelSplitterContext } from './panel-splitter-context';
32
+ import { panelSplitterDragDataSymbol } from './panel-splitter-drag-symbol';
33
+ function signPanelSplitterDragData(data) {
34
+ return {
35
+ ...data,
36
+ [panelSplitterDragDataSymbol]: true
37
+ };
38
+ }
29
39
  const containerStyles = {
30
40
  root: "_12ji1r31 _1qu2glyw _12y31o36 _1e0cglyw _kqswstnw _u7coidpf _152tidpf _1pbykb7n _181n1ule",
31
41
  positionEnd: "_rjxpftgi",
@@ -43,13 +53,6 @@ const lineStyles = {
43
53
  const tooltipStyles = {
44
54
  root: "_ahbq196n _1bsb1ris"
45
55
  };
46
- const panelSplitterDragDataSymbol = Symbol('panel-splitter-drag-data');
47
- function signPanelSplitterDragData(data) {
48
- return {
49
- ...data,
50
- [panelSplitterDragDataSymbol]: true
51
- };
52
- }
53
56
  const PanelSplitterTooltip = /*#__PURE__*/forwardRef(({
54
57
  children,
55
58
  className,
@@ -119,9 +122,6 @@ const MaybeTooltip = ({
119
122
  }
120
123
  return children;
121
124
  };
122
- export function isPanelSplitterDragData(data) {
123
- return data[panelSplitterDragDataSymbol] === true;
124
- }
125
125
  function getTextDirection(element) {
126
126
  const {
127
127
  direction
@@ -402,7 +402,6 @@ const PortaledPanelSplitter = ({
402
402
  className: ax([lineStyles.root])
403
403
  })))), portal);
404
404
  };
405
-
406
405
  /**
407
406
  * _PanelSplitter_
408
407
  *
@@ -1,5 +1,5 @@
1
1
  import React, { Fragment, useMemo, useRef } from 'react';
2
- import { PanelSplitterContext } from './context';
2
+ import { PanelSplitterContext } from './panel-splitter-context';
3
3
  /**
4
4
  * Provides the context required for the panel splitter to work within a page layout slot.
5
5
  *
@@ -4,8 +4,9 @@ import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer
4
4
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
5
5
  import { openLayerObserverSideNavNamespace, openLayerObserverTopNavEndNamespace, openLayerObserverTopNavMiddleNamespace, openLayerObserverTopNavStartNamespace, sideNavPanelSplitterId } from '../constants';
6
6
  import { useToggleSideNav } from '../side-nav/use-toggle-side-nav';
7
- import { OnDoubleClickContext, PanelSplitterContext } from './context';
7
+ import { OnDoubleClickContext } from './on-double-click-context';
8
8
  import { PanelSplitter } from './panel-splitter';
9
+ import { PanelSplitterContext } from './panel-splitter-context';
9
10
 
10
11
  /**
11
12
  * Namespaces to check for open layers that would interfere with the panel splitter.
@@ -3,14 +3,15 @@ import "./panel.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useCallback, useContext, useEffect, useRef, useState } from 'react';
6
+ import { fg } from '@atlaskit/platform-feature-flags';
6
7
  import { media } from '@atlaskit/primitives/responsive';
7
- import { useSkipLinkInternal } from '../../context/skip-links/skip-links-context';
8
+ import { useSkipLinkInternal } from '../../context/skip-links/use-skip-link-internal';
8
9
  import { contentHeightWhenFixed, contentInsetBlockStart, localSlotLayers, panelPanelSplitterId, panelVar, sideNavLiveWidthVar, UNSAFE_panelLayoutVar } from './constants';
10
+ import { DangerouslyHoistCssVarToDocumentRoot } from './dangerously-hoist-css-var-to-document-root';
9
11
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
10
- import { DangerouslyHoistCssVarToDocumentRoot } from './hoist-utils';
11
- import { useLayoutId } from './id-utils';
12
12
  import { PanelSplitterProvider } from './panel-splitter/provider';
13
- import { useSideNavRef } from './side-nav/element-context';
13
+ import { useSideNavRef } from './side-nav/use-side-nav-ref';
14
+ import { useLayoutId } from './use-layout-id';
14
15
  import { useResizingWidthCssVarOnRootElement } from './use-resizing-width-css-var-on-root-element';
15
16
  import { useSafeDefaultWidth } from './use-safe-default-width';
16
17
  const panelSplitterResizingVar = '--n_pnlRsz';
@@ -61,11 +62,13 @@ export function Panel({
61
62
  * Don't show the skip link if the slot has 0 width.
62
63
  *
63
64
  * Remove `isHidden` usage after https://jplat.atlassian.net/browse/BLU-3951
65
+ *
66
+ * TODO: when cleaning up 'platform_dst_nav4_skip_link_a11y_1' remove this call entirely
64
67
  */
65
68
  useSkipLinkInternal({
66
69
  id,
67
70
  label: skipLinkLabel,
68
- isHidden: defaultWidth === 0
71
+ isHidden: defaultWidth === 0 || fg('platform_dst_nav4_skip_link_a11y_1')
69
72
  });
70
73
  const ref = useRef(null);
71
74
  const [width, setWidth] = useState(defaultWidth);
@@ -5,9 +5,9 @@ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useContext } from 'react';
6
6
  import { media } from '@atlaskit/primitives/responsive';
7
7
  import { localSlotLayers, UNSAFE_ribbonVar } from './constants';
8
+ import { DangerouslyHoistCssVarToDocumentRoot } from './dangerously-hoist-css-var-to-document-root';
8
9
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
9
- import { DangerouslyHoistCssVarToDocumentRoot } from './hoist-utils';
10
- import { useLayoutId } from './id-utils';
10
+ import { useLayoutId } from './use-layout-id';
11
11
  const styles = {
12
12
  root: "_nd5l1c99 _1reo15vq _18m915vq _4t3i1osq _152tidpf _kqsw1if8 _vchhusvi _1pbyegat _1e0cglyw _dm2518uv"
13
13
  };
@@ -3,11 +3,12 @@ import "./root.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { useEffect, useRef } from 'react';
5
5
  import { OpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
6
+ import { fg } from '@atlaskit/platform-feature-flags';
6
7
  import { SkipLinksProvider } from '../../context/skip-links/skip-links-provider';
7
8
  import { TopNavStartProvider } from '../../context/top-nav-start/top-nav-start-context-provider';
8
9
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
9
- import { SideNavElementProvider } from './side-nav/element-context';
10
- import { IsSideNavShortcutEnabledProvider } from './side-nav/is-side-nav-shortcut-enabled-context';
10
+ import { IsSideNavShortcutEnabledProvider } from './side-nav/is-side-nav-shortcut-enabled-provider';
11
+ import { SideNavElementProvider } from './side-nav/side-nav-element-provider';
11
12
  import { SideNavToggleButtonProvider } from './side-nav/toggle-button-provider';
12
13
  import { SideNavVisibilityProvider } from './side-nav/visibility-provider';
13
14
 
@@ -25,11 +26,12 @@ export function Root({
25
26
  children,
26
27
  xcss,
27
28
  UNSAFE_dangerouslyHoistSlotSizes = false,
28
- skipLinksLabel = 'Skip to:',
29
+ skipLinksLabel,
29
30
  testId,
30
31
  defaultSideNavCollapsed,
31
32
  isSideNavShortcutEnabled = false
32
33
  }) {
34
+ const resolvedSkipLinksLabel = skipLinksLabel !== null && skipLinksLabel !== void 0 ? skipLinksLabel : fg('platform_dst_nav4_skip_link_a11y_1') ? 'Skip to' : 'Skip to:';
33
35
  const ref = useRef(null);
34
36
  useEffect(() => {
35
37
  if (process.env.NODE_ENV !== 'production') {
@@ -60,7 +62,7 @@ This message will not be displayed in production.
60
62
  }, /*#__PURE__*/React.createElement(TopNavStartProvider, null, /*#__PURE__*/React.createElement(OpenLayerObserver, null, /*#__PURE__*/React.createElement(DangerouslyHoistSlotSizes.Provider, {
61
63
  value: UNSAFE_dangerouslyHoistSlotSizes
62
64
  }, /*#__PURE__*/React.createElement(SkipLinksProvider, {
63
- label: skipLinksLabel,
65
+ label: resolvedSkipLinksLabel,
64
66
  testId: testId
65
67
  }, /*#__PURE__*/React.createElement("div", {
66
68
  ref: ref,
@@ -1,4 +1,4 @@
1
- import React, { createContext, useContext } from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
3
  /**
4
4
  * Context for whether the side nav toggle shortcut is enabled.
@@ -6,24 +6,4 @@ import React, { createContext, useContext } from 'react';
6
6
  * Used to share the `isSideNavShortcutEnabled` prop value from `Root` with other components,
7
7
  * so the visual keyboard shortcut in tooltips can be conditionally displayed.
8
8
  */
9
- const IsSideNavShortcutEnabledContext = /*#__PURE__*/createContext(false);
10
-
11
- /**
12
- * Provider for the `IsSideNavShortcutEnabledContext`.
13
- */
14
- export function IsSideNavShortcutEnabledProvider({
15
- children,
16
- isSideNavShortcutEnabled
17
- }) {
18
- return /*#__PURE__*/React.createElement(IsSideNavShortcutEnabledContext.Provider, {
19
- value: isSideNavShortcutEnabled
20
- }, children);
21
- }
22
-
23
- /**
24
- * Returns the value of the `isSideNavShortcutEnabled` prop from the `Root` component, which
25
- * is shared through context.
26
- */
27
- export function useIsSideNavShortcutEnabled() {
28
- return useContext(IsSideNavShortcutEnabledContext);
29
- }
9
+ export const IsSideNavShortcutEnabledContext = /*#__PURE__*/createContext(false);
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { IsSideNavShortcutEnabledContext } from './is-side-nav-shortcut-enabled-context';
3
+ export function IsSideNavShortcutEnabledProvider({
4
+ children,
5
+ isSideNavShortcutEnabled
6
+ }) {
7
+ return /*#__PURE__*/React.createElement(IsSideNavShortcutEnabledContext.Provider, {
8
+ value: isSideNavShortcutEnabled
9
+ }, children);
10
+ }
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ import __noop from '@atlaskit/ds-lib/noop';
3
+ export const SetSideNavVisibilityState = /*#__PURE__*/createContext(__noop);
@@ -0,0 +1,10 @@
1
+ import React, { useRef } from 'react';
2
+ import { SideNavRefContext } from './side-nav-ref-context';
3
+ export function SideNavElementProvider({
4
+ children
5
+ }) {
6
+ const sideNavRef = useRef(null);
7
+ return /*#__PURE__*/React.createElement(SideNavRefContext.Provider, {
8
+ value: sideNavRef
9
+ }, children);
10
+ }
@@ -0,0 +1,4 @@
1
+ import { createContext } from 'react';
2
+ export const SideNavRefContext = /*#__PURE__*/createContext({
3
+ current: null
4
+ });
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ import __noop from '@atlaskit/ds-lib/noop';
3
+ export const SideNavToggleButtonAttachRef = /*#__PURE__*/createContext(__noop);
@@ -0,0 +1,7 @@
1
+ import { createContext } from 'react';
2
+
3
+ /**
4
+ * Context for the side nav toggle button element.
5
+ * Used to power the side nav flyout by allowing the side nav to bind event listeners to the button element.
6
+ */
7
+ export const SideNavToggleButtonElement = /*#__PURE__*/createContext(null);
@@ -1,12 +1,6 @@
1
1
  import { createContext } from 'react';
2
- import __noop from '@atlaskit/ds-lib/noop';
3
2
  /**
4
3
  * Context for the visibility of the side nav.
5
4
  * State is initialised as null. This is used when the value has not been set yet - which is important to know for SSR.
6
5
  */
7
- export const SideNavVisibilityState = /*#__PURE__*/createContext(null);
8
-
9
- /**
10
- * Sets the visibility of the side nav.
11
- */
12
- export const SetSideNavVisibilityState = /*#__PURE__*/createContext(__noop);
6
+ export const SideNavVisibilityState = /*#__PURE__*/createContext(null);