@atlaskit/navigation-system 7.3.0 → 8.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 (347) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/constellation/layout/custom-theming.mdx +1 -1
  3. package/dist/cjs/context/skip-links/skip-links-context.js +2 -54
  4. package/dist/cjs/context/skip-links/use-skip-link-internal.js +45 -0
  5. package/dist/cjs/context/skip-links/use-skip-link.js +17 -0
  6. package/dist/cjs/context/top-nav-start/top-nav-start-attach-ref.js +10 -0
  7. package/dist/cjs/context/top-nav-start/top-nav-start-context-provider.js +4 -3
  8. package/dist/cjs/context/top-nav-start/top-nav-start-element.js +8 -0
  9. package/dist/cjs/entry-points/experimental/top-nav-button.js +8 -5
  10. package/dist/cjs/entry-points/layout/skip-links.js +4 -4
  11. package/dist/cjs/ui/page-layout/aside.js +6 -6
  12. package/dist/cjs/ui/page-layout/banner.js +8 -7
  13. package/dist/cjs/ui/page-layout/{hoist-utils.js → dangerously-hoist-css-var-to-document-root.js} +6 -25
  14. package/dist/cjs/ui/page-layout/hoist-css-var-to-local-grid.js +22 -0
  15. package/dist/cjs/ui/page-layout/main/main.js +4 -4
  16. package/dist/cjs/ui/page-layout/panel-splitter/get-pixel-width.js +13 -0
  17. package/dist/cjs/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +1 -12
  18. package/dist/cjs/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +10 -0
  19. package/dist/cjs/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +1 -9
  20. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter-context.js +14 -0
  21. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +7 -0
  22. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +17 -19
  23. package/dist/cjs/ui/page-layout/panel-splitter/provider.js +2 -2
  24. package/dist/cjs/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +4 -3
  25. package/dist/cjs/ui/page-layout/panel.js +8 -8
  26. package/dist/cjs/ui/page-layout/ribbon.js +4 -4
  27. package/dist/cjs/ui/page-layout/root.js +3 -3
  28. package/dist/cjs/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +3 -25
  29. package/dist/cjs/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +16 -0
  30. package/dist/cjs/ui/page-layout/side-nav/set-side-nav-visibility-state.js +10 -0
  31. package/dist/cjs/ui/page-layout/side-nav/{element-context.js → side-nav-element-provider.js} +2 -14
  32. package/dist/cjs/ui/page-layout/side-nav/side-nav-ref-context.js +10 -0
  33. package/dist/cjs/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +10 -0
  34. package/dist/cjs/ui/page-layout/side-nav/side-nav-toggle-button-element.js +12 -0
  35. package/dist/cjs/ui/page-layout/side-nav/side-nav-visibility-state.js +12 -0
  36. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +19 -18
  37. package/dist/cjs/ui/page-layout/side-nav/toggle-button-provider.js +4 -3
  38. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +8 -8
  39. package/dist/cjs/ui/page-layout/side-nav/use-expand-side-nav.js +2 -2
  40. package/dist/cjs/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +15 -0
  41. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-ref.js +16 -0
  42. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +2 -2
  43. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-visibility.js +2 -2
  44. package/dist/cjs/ui/page-layout/side-nav/use-toggle-side-nav.js +2 -2
  45. package/dist/cjs/ui/page-layout/side-nav/visibility-provider.js +4 -3
  46. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +2 -2
  47. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +5 -5
  48. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +17 -15
  49. package/dist/cjs/ui/page-layout/{id-utils.js → use-layout-id.js} +2 -14
  50. package/dist/cjs/ui/page-layout/use-resizing-width-css-var-on-root-element.js +2 -2
  51. package/dist/cjs/ui/page-layout/use-skip-link-id.js +17 -0
  52. package/dist/cjs/ui/top-nav-items/app-switcher.js +2 -2
  53. package/dist/cjs/ui/top-nav-items/chat-button.js +2 -2
  54. package/dist/cjs/ui/top-nav-items/create-button.js +2 -2
  55. package/dist/cjs/ui/top-nav-items/end-item.js +2 -2
  56. package/dist/cjs/ui/top-nav-items/log-in.js +2 -2
  57. package/dist/cjs/ui/top-nav-items/search.js +2 -2
  58. package/dist/cjs/ui/top-nav-items/themed/button.js +12 -358
  59. package/dist/cjs/ui/top-nav-items/themed/get-custom-theme-styles.js +10 -10
  60. package/dist/cjs/ui/top-nav-items/themed/get-primitives-spread-props.js +39 -0
  61. package/dist/cjs/ui/top-nav-items/themed/icon-button.js +21 -0
  62. package/dist/cjs/ui/top-nav-items/themed/link-button.js +21 -0
  63. package/dist/cjs/ui/top-nav-items/themed/link-icon-button.js +21 -0
  64. package/dist/cjs/ui/top-nav-items/themed/palette-rgba.js +20 -0
  65. package/dist/cjs/ui/top-nav-items/themed/palette.js +1 -21
  66. package/dist/cjs/ui/top-nav-items/themed/search.js +1 -2
  67. package/dist/cjs/ui/top-nav-items/themed/{button.compiled.css → themed-anchor.compiled.css} +0 -1
  68. package/dist/cjs/ui/top-nav-items/themed/themed-anchor.js +76 -0
  69. package/dist/cjs/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  70. package/dist/cjs/ui/top-nav-items/themed/themed-button.js +40 -0
  71. package/dist/cjs/ui/top-nav-items/themed/themed-icon-button.js +85 -0
  72. package/dist/cjs/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  73. package/dist/cjs/ui/top-nav-items/themed/themed-link-button.js +45 -0
  74. package/dist/cjs/ui/top-nav-items/themed/themed-link-icon-button.js +83 -0
  75. package/dist/{esm/ui/top-nav-items/themed/button.compiled.css → cjs/ui/top-nav-items/themed/themed-pressable.compiled.css} +0 -1
  76. package/dist/cjs/ui/top-nav-items/themed/themed-pressable.js +64 -0
  77. package/dist/cjs/ui/top-nav-items/themed/types.js +5 -0
  78. package/dist/cjs/ui/top-nav-items/themed/use-custom-theme-new.js +53 -0
  79. package/dist/cjs/ui/top-nav-items/themed/use-custom-theme.js +0 -41
  80. package/dist/es2019/context/skip-links/skip-links-context.js +2 -54
  81. package/dist/es2019/context/skip-links/use-skip-link-internal.js +41 -0
  82. package/dist/es2019/context/skip-links/use-skip-link.js +12 -0
  83. package/dist/es2019/context/top-nav-start/top-nav-start-attach-ref.js +3 -0
  84. package/dist/es2019/context/top-nav-start/top-nav-start-context-provider.js +2 -1
  85. package/dist/es2019/context/top-nav-start/top-nav-start-element.js +2 -0
  86. package/dist/es2019/entry-points/experimental/top-nav-button.js +4 -1
  87. package/dist/es2019/entry-points/layout/skip-links.js +2 -2
  88. package/dist/es2019/ui/page-layout/aside.js +3 -3
  89. package/dist/es2019/ui/page-layout/banner.js +4 -3
  90. package/dist/es2019/ui/page-layout/{hoist-utils.js → dangerously-hoist-css-var-to-document-root.js} +0 -19
  91. package/dist/es2019/ui/page-layout/hoist-css-var-to-local-grid.js +15 -0
  92. package/dist/es2019/ui/page-layout/main/main.js +2 -2
  93. package/dist/es2019/ui/page-layout/panel-splitter/get-pixel-width.js +7 -0
  94. package/dist/es2019/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +0 -11
  95. package/dist/es2019/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +4 -0
  96. package/dist/es2019/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +0 -8
  97. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter-context.js +9 -0
  98. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +1 -0
  99. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +12 -13
  100. package/dist/es2019/ui/page-layout/panel-splitter/provider.js +1 -1
  101. package/dist/es2019/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -1
  102. package/dist/es2019/ui/page-layout/panel.js +4 -4
  103. package/dist/es2019/ui/page-layout/ribbon.js +2 -2
  104. package/dist/es2019/ui/page-layout/root.js +2 -2
  105. package/dist/es2019/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +2 -22
  106. package/dist/es2019/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +10 -0
  107. package/dist/es2019/ui/page-layout/side-nav/set-side-nav-visibility-state.js +3 -0
  108. package/dist/es2019/ui/page-layout/side-nav/side-nav-element-provider.js +10 -0
  109. package/dist/es2019/ui/page-layout/side-nav/side-nav-ref-context.js +4 -0
  110. package/dist/es2019/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +3 -0
  111. package/dist/es2019/ui/page-layout/side-nav/side-nav-toggle-button-element.js +7 -0
  112. package/dist/es2019/ui/page-layout/side-nav/{visibility-context.js → side-nav-visibility-state.js} +1 -7
  113. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +9 -8
  114. package/dist/es2019/ui/page-layout/side-nav/toggle-button-provider.js +2 -1
  115. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +4 -4
  116. package/dist/es2019/ui/page-layout/side-nav/use-expand-side-nav.js +1 -1
  117. package/dist/es2019/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +10 -0
  118. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-ref.js +11 -0
  119. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  120. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-visibility.js +1 -1
  121. package/dist/es2019/ui/page-layout/side-nav/use-toggle-side-nav.js +1 -1
  122. package/dist/es2019/ui/page-layout/side-nav/visibility-provider.js +2 -2
  123. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +1 -1
  124. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +2 -2
  125. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +11 -8
  126. package/dist/es2019/ui/page-layout/use-layout-id.js +15 -0
  127. package/dist/es2019/ui/page-layout/use-resizing-width-css-var-on-root-element.js +1 -1
  128. package/dist/es2019/ui/page-layout/{id-utils.js → use-skip-link-id.js} +0 -14
  129. package/dist/es2019/ui/top-nav-items/app-switcher.js +1 -1
  130. package/dist/es2019/ui/top-nav-items/chat-button.js +1 -1
  131. package/dist/es2019/ui/top-nav-items/create-button.js +1 -1
  132. package/dist/es2019/ui/top-nav-items/end-item.js +1 -1
  133. package/dist/es2019/ui/top-nav-items/log-in.js +1 -1
  134. package/dist/es2019/ui/top-nav-items/search.js +1 -1
  135. package/dist/es2019/ui/top-nav-items/themed/button.js +11 -347
  136. package/dist/es2019/ui/top-nav-items/themed/get-custom-theme-styles.js +28 -28
  137. package/dist/es2019/ui/top-nav-items/themed/get-primitives-spread-props.js +31 -0
  138. package/dist/es2019/ui/top-nav-items/themed/icon-button.js +12 -0
  139. package/dist/es2019/ui/top-nav-items/themed/link-button.js +12 -0
  140. package/dist/es2019/ui/top-nav-items/themed/link-icon-button.js +12 -0
  141. package/dist/es2019/ui/top-nav-items/themed/palette-rgba.js +14 -0
  142. package/dist/es2019/ui/top-nav-items/themed/palette.js +0 -20
  143. package/dist/es2019/ui/top-nav-items/themed/search.js +1 -2
  144. package/dist/es2019/ui/top-nav-items/themed/{button.compiled.css → themed-anchor.compiled.css} +0 -1
  145. package/dist/es2019/ui/top-nav-items/themed/themed-anchor.js +66 -0
  146. package/dist/es2019/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  147. package/dist/es2019/ui/top-nav-items/themed/themed-button.js +30 -0
  148. package/dist/es2019/ui/top-nav-items/themed/themed-icon-button.js +72 -0
  149. package/dist/es2019/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  150. package/dist/es2019/ui/top-nav-items/themed/themed-link-button.js +37 -0
  151. package/dist/es2019/ui/top-nav-items/themed/themed-link-icon-button.js +73 -0
  152. package/dist/es2019/ui/top-nav-items/themed/themed-pressable.compiled.css +68 -0
  153. package/dist/es2019/ui/top-nav-items/themed/themed-pressable.js +52 -0
  154. package/dist/es2019/ui/top-nav-items/themed/types.js +1 -0
  155. package/dist/es2019/ui/top-nav-items/themed/use-custom-theme-new.js +45 -0
  156. package/dist/es2019/ui/top-nav-items/themed/use-custom-theme.js +0 -38
  157. package/dist/esm/context/skip-links/skip-links-context.js +2 -54
  158. package/dist/esm/context/skip-links/use-skip-link-internal.js +39 -0
  159. package/dist/esm/context/skip-links/use-skip-link.js +12 -0
  160. package/dist/esm/context/top-nav-start/top-nav-start-attach-ref.js +3 -0
  161. package/dist/esm/context/top-nav-start/top-nav-start-context-provider.js +2 -1
  162. package/dist/esm/context/top-nav-start/top-nav-start-element.js +2 -0
  163. package/dist/esm/entry-points/experimental/top-nav-button.js +4 -1
  164. package/dist/esm/entry-points/layout/skip-links.js +2 -2
  165. package/dist/esm/ui/page-layout/aside.js +3 -3
  166. package/dist/esm/ui/page-layout/banner.js +4 -3
  167. package/dist/esm/ui/page-layout/dangerously-hoist-css-var-to-document-root.js +31 -0
  168. package/dist/esm/ui/page-layout/hoist-css-var-to-local-grid.js +16 -0
  169. package/dist/esm/ui/page-layout/main/main.js +2 -2
  170. package/dist/esm/ui/page-layout/panel-splitter/get-pixel-width.js +7 -0
  171. package/dist/esm/ui/page-layout/panel-splitter/{get-width.js → get-width-from-drag-location.js} +0 -11
  172. package/dist/esm/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.js +4 -0
  173. package/dist/esm/ui/page-layout/panel-splitter/{context.js → on-double-click-context.js} +0 -8
  174. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter-context.js +9 -0
  175. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.js +1 -0
  176. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +9 -10
  177. package/dist/esm/ui/page-layout/panel-splitter/provider.js +1 -1
  178. package/dist/esm/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -1
  179. package/dist/esm/ui/page-layout/panel.js +4 -4
  180. package/dist/esm/ui/page-layout/ribbon.js +2 -2
  181. package/dist/esm/ui/page-layout/root.js +2 -2
  182. package/dist/esm/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.js +2 -21
  183. package/dist/esm/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.js +9 -0
  184. package/dist/esm/ui/page-layout/side-nav/set-side-nav-visibility-state.js +3 -0
  185. package/dist/esm/ui/page-layout/side-nav/side-nav-element-provider.js +9 -0
  186. package/dist/esm/ui/page-layout/side-nav/side-nav-ref-context.js +4 -0
  187. package/dist/esm/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.js +3 -0
  188. package/dist/esm/ui/page-layout/side-nav/side-nav-toggle-button-element.js +7 -0
  189. package/dist/esm/ui/page-layout/side-nav/{visibility-context.js → side-nav-visibility-state.js} +1 -7
  190. package/dist/esm/ui/page-layout/side-nav/side-nav.js +9 -8
  191. package/dist/esm/ui/page-layout/side-nav/toggle-button-provider.js +2 -1
  192. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +4 -4
  193. package/dist/esm/ui/page-layout/side-nav/use-expand-side-nav.js +1 -1
  194. package/dist/esm/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.js +10 -0
  195. package/dist/esm/ui/page-layout/side-nav/use-side-nav-ref.js +11 -0
  196. package/dist/esm/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  197. package/dist/esm/ui/page-layout/side-nav/use-side-nav-visibility.js +1 -1
  198. package/dist/esm/ui/page-layout/side-nav/use-toggle-side-nav.js +1 -1
  199. package/dist/esm/ui/page-layout/side-nav/visibility-provider.js +2 -2
  200. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +1 -1
  201. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +2 -2
  202. package/dist/esm/ui/page-layout/top-nav/top-nav.js +11 -8
  203. package/dist/esm/ui/page-layout/{id-utils.js → use-layout-id.js} +1 -12
  204. package/dist/esm/ui/page-layout/use-resizing-width-css-var-on-root-element.js +1 -1
  205. package/dist/esm/ui/page-layout/use-skip-link-id.js +12 -0
  206. package/dist/esm/ui/top-nav-items/app-switcher.js +1 -1
  207. package/dist/esm/ui/top-nav-items/chat-button.js +1 -1
  208. package/dist/esm/ui/top-nav-items/create-button.js +1 -1
  209. package/dist/esm/ui/top-nav-items/end-item.js +1 -1
  210. package/dist/esm/ui/top-nav-items/log-in.js +1 -1
  211. package/dist/esm/ui/top-nav-items/search.js +1 -1
  212. package/dist/esm/ui/top-nav-items/themed/button.js +11 -358
  213. package/dist/esm/ui/top-nav-items/themed/get-custom-theme-styles.js +9 -9
  214. package/dist/esm/ui/top-nav-items/themed/get-primitives-spread-props.js +32 -0
  215. package/dist/esm/ui/top-nav-items/themed/icon-button.js +12 -0
  216. package/dist/esm/ui/top-nav-items/themed/link-button.js +12 -0
  217. package/dist/esm/ui/top-nav-items/themed/link-icon-button.js +12 -0
  218. package/dist/esm/ui/top-nav-items/themed/palette-rgba.js +14 -0
  219. package/dist/esm/ui/top-nav-items/themed/palette.js +0 -20
  220. package/dist/esm/ui/top-nav-items/themed/search.js +1 -2
  221. package/dist/esm/ui/top-nav-items/themed/themed-anchor.compiled.css +68 -0
  222. package/dist/esm/ui/top-nav-items/themed/themed-anchor.js +69 -0
  223. package/dist/esm/ui/top-nav-items/themed/themed-button.compiled.css +2 -0
  224. package/dist/esm/ui/top-nav-items/themed/themed-button.js +31 -0
  225. package/dist/esm/ui/top-nav-items/themed/themed-icon-button.js +76 -0
  226. package/dist/esm/ui/top-nav-items/themed/themed-link-button.compiled.css +2 -0
  227. package/dist/esm/ui/top-nav-items/themed/themed-link-button.js +38 -0
  228. package/dist/esm/ui/top-nav-items/themed/themed-link-icon-button.js +77 -0
  229. package/dist/esm/ui/top-nav-items/themed/themed-pressable.compiled.css +68 -0
  230. package/dist/esm/ui/top-nav-items/themed/themed-pressable.js +55 -0
  231. package/dist/esm/ui/top-nav-items/themed/types.js +1 -0
  232. package/dist/esm/ui/top-nav-items/themed/use-custom-theme-new.js +46 -0
  233. package/dist/esm/ui/top-nav-items/themed/use-custom-theme.js +0 -39
  234. package/dist/types/context/skip-links/skip-links-context.d.ts +0 -27
  235. package/dist/types/context/skip-links/use-skip-link-internal.d.ts +10 -0
  236. package/dist/types/context/skip-links/use-skip-link.d.ts +18 -0
  237. package/dist/types/context/top-nav-start/top-nav-start-attach-ref.d.ts +1 -0
  238. package/dist/types/context/top-nav-start/top-nav-start-element.d.ts +1 -0
  239. package/dist/types/entry-points/experimental/top-nav-button.d.ts +4 -1
  240. package/dist/types/entry-points/layout/skip-links.d.ts +2 -2
  241. package/dist/types/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +8 -0
  242. 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
  243. package/dist/types/ui/page-layout/panel-splitter/get-pixel-width.d.ts +4 -0
  244. package/dist/types/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +8 -0
  245. package/dist/types/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.d.ts +9 -0
  246. package/dist/types/ui/page-layout/panel-splitter/on-double-click-context.d.ts +8 -0
  247. 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
  248. package/dist/types/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.d.ts +1 -0
  249. package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -10
  250. package/dist/types/ui/page-layout/panel-splitter/provider.d.ts +1 -1
  251. package/dist/types/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.d.ts +6 -11
  252. package/dist/types/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.d.ts +5 -0
  253. package/dist/types/ui/page-layout/side-nav/set-side-nav-visibility-state.d.ts +3 -0
  254. package/dist/types/ui/page-layout/side-nav/side-nav-element-provider.d.ts +4 -0
  255. package/dist/types/ui/page-layout/side-nav/side-nav-ref-context.d.ts +2 -0
  256. package/dist/types/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.d.ts +1 -0
  257. package/dist/types/ui/page-layout/side-nav/side-nav-toggle-button-element.d.ts +5 -0
  258. 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
  259. package/dist/types/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.d.ts +5 -0
  260. 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
  261. package/dist/types/ui/page-layout/top-nav/top-nav.d.ts +3 -4
  262. package/dist/{types-ts4.5/ui/page-layout/id-utils.d.ts → types/ui/page-layout/use-layout-id.d.ts} +0 -5
  263. package/dist/types/ui/page-layout/use-skip-link-id.d.ts +5 -0
  264. package/dist/types/ui/top-nav-items/themed/button.d.ts +5 -126
  265. package/dist/types/ui/top-nav-items/themed/get-primitives-spread-props.d.ts +16 -0
  266. package/dist/types/ui/top-nav-items/themed/icon-button.d.ts +7 -0
  267. package/dist/types/ui/top-nav-items/themed/link-button.d.ts +3 -0
  268. package/dist/types/ui/top-nav-items/themed/link-icon-button.d.ts +7 -0
  269. package/dist/types/ui/top-nav-items/themed/palette-rgba.d.ts +14 -0
  270. package/dist/types/ui/top-nav-items/themed/palette.d.ts +0 -20
  271. package/dist/types/ui/top-nav-items/themed/themed-anchor.d.ts +32 -0
  272. package/dist/types/ui/top-nav-items/themed/themed-button.d.ts +10 -0
  273. package/dist/types/ui/top-nav-items/themed/themed-icon-button.d.ts +10 -0
  274. package/dist/types/ui/top-nav-items/themed/themed-link-button.d.ts +16 -0
  275. package/dist/types/ui/top-nav-items/themed/themed-link-icon-button.d.ts +13 -0
  276. package/dist/types/ui/top-nav-items/themed/themed-pressable.d.ts +18 -0
  277. package/dist/types/ui/top-nav-items/themed/types.d.ts +54 -0
  278. package/dist/types/ui/top-nav-items/themed/use-custom-theme-new.d.ts +20 -0
  279. package/dist/types/ui/top-nav-items/themed/use-custom-theme.d.ts +0 -11
  280. package/dist/types-ts4.5/context/skip-links/skip-links-context.d.ts +0 -27
  281. package/dist/types-ts4.5/context/skip-links/use-skip-link-internal.d.ts +10 -0
  282. package/dist/types-ts4.5/context/skip-links/use-skip-link.d.ts +18 -0
  283. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-attach-ref.d.ts +1 -0
  284. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-element.d.ts +1 -0
  285. package/dist/types-ts4.5/entry-points/experimental/top-nav-button.d.ts +4 -1
  286. package/dist/types-ts4.5/entry-points/layout/skip-links.d.ts +2 -2
  287. package/dist/types-ts4.5/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +8 -0
  288. 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
  289. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-pixel-width.d.ts +4 -0
  290. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +8 -0
  291. package/dist/types-ts4.5/ui/page-layout/panel-splitter/is-panel-splitter-drag-data.d.ts +9 -0
  292. package/dist/types-ts4.5/ui/page-layout/panel-splitter/on-double-click-context.d.ts +8 -0
  293. 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
  294. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter-drag-symbol.d.ts +1 -0
  295. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -10
  296. package/dist/types-ts4.5/ui/page-layout/panel-splitter/provider.d.ts +1 -1
  297. package/dist/types-ts4.5/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-context.d.ts +6 -11
  298. package/dist/types-ts4.5/ui/page-layout/side-nav/is-side-nav-shortcut-enabled-provider.d.ts +5 -0
  299. package/dist/types-ts4.5/ui/page-layout/side-nav/set-side-nav-visibility-state.d.ts +3 -0
  300. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-element-provider.d.ts +4 -0
  301. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-ref-context.d.ts +2 -0
  302. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-toggle-button-attach-ref.d.ts +1 -0
  303. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-toggle-button-element.d.ts +5 -0
  304. 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
  305. package/dist/types-ts4.5/ui/page-layout/side-nav/use-is-side-nav-shortcut-enabled.d.ts +5 -0
  306. 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
  307. package/dist/types-ts4.5/ui/page-layout/top-nav/top-nav.d.ts +3 -4
  308. package/dist/{types/ui/page-layout/id-utils.d.ts → types-ts4.5/ui/page-layout/use-layout-id.d.ts} +0 -5
  309. package/dist/types-ts4.5/ui/page-layout/use-skip-link-id.d.ts +5 -0
  310. package/dist/types-ts4.5/ui/top-nav-items/themed/button.d.ts +5 -126
  311. package/dist/types-ts4.5/ui/top-nav-items/themed/get-primitives-spread-props.d.ts +16 -0
  312. package/dist/types-ts4.5/ui/top-nav-items/themed/icon-button.d.ts +7 -0
  313. package/dist/types-ts4.5/ui/top-nav-items/themed/link-button.d.ts +3 -0
  314. package/dist/types-ts4.5/ui/top-nav-items/themed/link-icon-button.d.ts +7 -0
  315. package/dist/types-ts4.5/ui/top-nav-items/themed/palette-rgba.d.ts +14 -0
  316. package/dist/types-ts4.5/ui/top-nav-items/themed/palette.d.ts +0 -20
  317. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-anchor.d.ts +32 -0
  318. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-button.d.ts +10 -0
  319. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-icon-button.d.ts +10 -0
  320. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-link-button.d.ts +16 -0
  321. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-link-icon-button.d.ts +13 -0
  322. package/dist/types-ts4.5/ui/top-nav-items/themed/themed-pressable.d.ts +18 -0
  323. package/dist/types-ts4.5/ui/top-nav-items/themed/types.d.ts +54 -0
  324. package/dist/types-ts4.5/ui/top-nav-items/themed/use-custom-theme-new.d.ts +20 -0
  325. package/dist/types-ts4.5/ui/top-nav-items/themed/use-custom-theme.d.ts +0 -11
  326. package/package.json +13 -13
  327. package/dist/cjs/context/top-nav-start/top-nav-start-context.js +0 -26
  328. package/dist/cjs/ui/page-layout/side-nav/toggle-button-context.js +0 -26
  329. package/dist/cjs/ui/page-layout/side-nav/visibility-context.js +0 -19
  330. package/dist/cjs/ui/top-nav-items/themed/migration.js +0 -53
  331. package/dist/es2019/context/top-nav-start/top-nav-start-context.js +0 -20
  332. package/dist/es2019/ui/page-layout/side-nav/element-context.js +0 -21
  333. package/dist/es2019/ui/page-layout/side-nav/toggle-button-context.js +0 -19
  334. package/dist/es2019/ui/top-nav-items/themed/migration.js +0 -45
  335. package/dist/esm/context/top-nav-start/top-nav-start-context.js +0 -20
  336. package/dist/esm/ui/page-layout/hoist-utils.js +0 -51
  337. package/dist/esm/ui/page-layout/side-nav/element-context.js +0 -20
  338. package/dist/esm/ui/page-layout/side-nav/toggle-button-context.js +0 -19
  339. package/dist/esm/ui/top-nav-items/themed/migration.js +0 -45
  340. package/dist/types/context/top-nav-start/top-nav-start-context.d.ts +0 -16
  341. package/dist/types/ui/page-layout/panel-splitter/get-width.d.ts +0 -16
  342. package/dist/types/ui/page-layout/side-nav/toggle-button-context.d.ts +0 -16
  343. package/dist/types/ui/top-nav-items/themed/migration.d.ts +0 -10
  344. package/dist/types-ts4.5/context/top-nav-start/top-nav-start-context.d.ts +0 -16
  345. package/dist/types-ts4.5/ui/page-layout/panel-splitter/get-width.d.ts +0 -16
  346. package/dist/types-ts4.5/ui/page-layout/side-nav/toggle-button-context.d.ts +0 -16
  347. package/dist/types-ts4.5/ui/top-nav-items/themed/migration.d.ts +0 -10
@@ -3,7 +3,7 @@ import { bind } from 'bind-event-listener';
3
3
  import useStableRef from '@atlaskit/ds-lib/use-stable-ref';
4
4
  import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
5
5
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
6
- import { useIsSideNavShortcutEnabled } from './is-side-nav-shortcut-enabled-context';
6
+ import { useIsSideNavShortcutEnabled } from './use-is-side-nav-shortcut-enabled';
7
7
  import { useToggleSideNav } from './use-toggle-side-nav';
8
8
 
9
9
  /**
@@ -1,5 +1,5 @@
1
1
  import { useContext } from 'react';
2
- import { SideNavVisibilityState } from './visibility-context';
2
+ import { SideNavVisibilityState } from './side-nav-visibility-state';
3
3
  /**
4
4
  * This hook is intended to be used internally within the `@atlaskit/navigation-system` package.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useContext } from 'react';
2
- import { SetSideNavVisibilityState } from './visibility-context';
2
+ import { SetSideNavVisibilityState } from './set-side-nav-visibility-state';
3
3
  /**
4
4
  * __useToggleSideNav__
5
5
  *
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { useState } from 'react';
3
- import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
4
-
3
+ import { SetSideNavVisibilityState } from './set-side-nav-visibility-state';
4
+ import { SideNavVisibilityState } from './side-nav-visibility-state';
5
5
  /**
6
6
  * Manages the side nav visibility state and provides the context.
7
7
  */
@@ -13,7 +13,7 @@ import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/comp
13
13
  import { List } from '../../../components/list';
14
14
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
15
15
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
16
- import { IconButton } from '../../top-nav-items/themed/migration';
16
+ import { IconButton } from '../../top-nav-items/themed/icon-button';
17
17
  import { openLayerObserverTopNavEndNamespace } from '../constants';
18
18
  var containerStyles = {
19
19
  root: "_yyhy11wp _1e0c1txw _1bahh9n0 _1ul9zwfg _1d2y1ris _glte1ris _15rip2n4 _1gs5usvi _ndwch9n0",
@@ -7,13 +7,13 @@ import useStableRef from '@atlaskit/ds-lib/use-stable-ref';
7
7
  import { OpenLayerObserverNamespaceProvider } from '@atlaskit/layering/experimental/open-layer-observer';
8
8
  import { fg } from '@atlaskit/platform-feature-flags';
9
9
  import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
10
- import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
10
+ import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-attach-ref';
11
11
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
12
12
  import { useHasCustomTheme } from '../../top-nav-items/themed/has-custom-theme-context';
13
13
  import { HasDefaultBackgroundColorContext } from '../../top-nav-items/themed/has-default-background-color-context';
14
14
  import { openLayerObserverTopNavStartNamespace } from '../constants';
15
+ import { SideNavVisibilityState } from '../side-nav/side-nav-visibility-state';
15
16
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
16
- import { SideNavVisibilityState } from '../side-nav/visibility-context';
17
17
 
18
18
  /**
19
19
  * Firefox does support these reorder animations, but only partially enabling layout animations would look odd.
@@ -5,16 +5,19 @@ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useContext } from 'react';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
8
- import { useSkipLink } from '../../../context/skip-links/skip-links-context';
8
+ import { useSkipLink } from '../../../context/skip-links/use-skip-link';
9
9
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
10
10
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
11
11
  import { HasDefaultBackgroundColorContext } from '../../top-nav-items/themed/has-default-background-color-context';
12
- import { useCustomTheme, useCustomThemeNew } from '../../top-nav-items/themed/use-custom-theme';
12
+ import { useCustomTheme } from '../../top-nav-items/themed/use-custom-theme';
13
+ import { useCustomThemeNew } from '../../top-nav-items/themed/use-custom-theme-new';
13
14
  import { bannerMountedVar, localSlotLayers, sideNavLiveWidthVar, topNavMountedVar, UNSAFE_topNavVar } from '../constants';
15
+ import { DangerouslyHoistCssVarToDocumentRoot } from '../dangerously-hoist-css-var-to-document-root';
16
+ import { HoistCssVarToLocalGrid } from '../hoist-css-var-to-local-grid';
14
17
  import { DangerouslyHoistSlotSizes } from '../hoist-slot-sizes-context';
15
- import { DangerouslyHoistCssVarToDocumentRoot, HoistCssVarToLocalGrid } from '../hoist-utils';
16
- import { useLayoutId } from '../id-utils';
17
18
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
19
+ import { useLayoutId } from '../use-layout-id';
20
+
18
21
  /**
19
22
  * Styles for the container for the top nav items.
20
23
  *
@@ -40,7 +43,7 @@ function TopNavOld(_ref) {
40
43
  skipLinkLabel = _ref$skipLinkLabel === void 0 ? 'Top Bar' : _ref$skipLinkLabel,
41
44
  testId = _ref.testId,
42
45
  providedId = _ref.id,
43
- UNSAFE_theme = _ref.UNSAFE_theme;
46
+ customThemeConfig = _ref.customTheme;
44
47
  var isFhsEnabled = useIsFhsEnabled();
45
48
  var dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
46
49
  var id = useLayoutId({
@@ -49,7 +52,7 @@ function TopNavOld(_ref) {
49
52
  useSkipLink(id, skipLinkLabel);
50
53
  var hasIncreasedDefaultHeight = isFhsEnabled && fg('platform_dst_nav4_top_nav_increase_height');
51
54
  var height = heightProp !== null && heightProp !== void 0 ? heightProp : hasIncreasedDefaultHeight ? 56 : 48;
52
- var customTheme = useCustomTheme(UNSAFE_theme);
55
+ var customTheme = useCustomTheme(customThemeConfig);
53
56
  var _useSideNavVisibility = useSideNavVisibility(),
54
57
  isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
55
58
  return /*#__PURE__*/React.createElement(HasCustomThemeContext.Provider, {
@@ -89,7 +92,7 @@ function TopNavNew(_ref2) {
89
92
  skipLinkLabel = _ref2$skipLinkLabel === void 0 ? 'Top Bar' : _ref2$skipLinkLabel,
90
93
  testId = _ref2.testId,
91
94
  providedId = _ref2.id,
92
- UNSAFE_theme = _ref2.UNSAFE_theme;
95
+ customThemeConfig = _ref2.customTheme;
93
96
  var isFhsEnabled = useIsFhsEnabled();
94
97
  var dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
95
98
  var id = useLayoutId({
@@ -98,7 +101,7 @@ function TopNavNew(_ref2) {
98
101
  useSkipLink(id, skipLinkLabel);
99
102
  var hasIncreasedDefaultHeight = isFhsEnabled && fg('platform_dst_nav4_top_nav_increase_height');
100
103
  var height = heightProp !== null && heightProp !== void 0 ? heightProp : hasIncreasedDefaultHeight ? 56 : 48;
101
- var customTheme = useCustomThemeNew(UNSAFE_theme);
104
+ var customTheme = useCustomThemeNew(customThemeConfig);
102
105
  var hasDefaultBackground = customTheme.isEnabled ? customTheme.hasDefaultBackground : true;
103
106
  var _useSideNavVisibility2 = useSideNavVisibility(),
104
107
  isExpandedOnDesktop = _useSideNavVisibility2.isExpandedOnDesktop;
@@ -1,15 +1,4 @@
1
- import { useId } from '@atlaskit/ds-lib/use-id';
2
-
3
- // Exposing a hook as a convenience for consumers, so they don't need to import
4
- // from ds-lib themselves.
5
- /**
6
- * Returns a unique ID for use by layout elements and skip links.
7
- * You can use this for custom skip links.
8
- */
9
- export function useSkipLinkId() {
10
- var uniqueId = useId();
11
- return uniqueId;
12
- }
1
+ import { useSkipLinkId } from './use-skip-link-id';
13
2
 
14
3
  /**
15
4
  * Returns an ID for use by the layout element and skip links.
@@ -1,7 +1,7 @@
1
1
  import { useEffect } from 'react';
2
2
  import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
3
3
  import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
4
- import { isPanelSplitterDragData } from './panel-splitter/panel-splitter';
4
+ import { isPanelSplitterDragData } from './panel-splitter/is-panel-splitter-drag-data';
5
5
 
6
6
  /**
7
7
  * Monitors resizing on the panel splitter with the provided `panelId`
@@ -0,0 +1,12 @@
1
+ import { useId } from '@atlaskit/ds-lib/use-id';
2
+
3
+ // Exposing a hook as a convenience for consumers, so they don't need to import
4
+ // from ds-lib themselves.
5
+ /**
6
+ * Returns a unique ID for use by layout elements and skip links.
7
+ * You can use this for custom skip links.
8
+ */
9
+ export function useSkipLinkId() {
10
+ var uniqueId = useId();
11
+ return uniqueId;
12
+ }
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import AppSwitcherIcon from '@atlaskit/icon/core/app-switcher';
3
- import { IconButton } from './themed/migration';
3
+ import { IconButton } from './themed/icon-button';
4
4
  var toggleButtonTooltipOptions = {
5
5
  // We're disabling pointer events on the tooltip to prevent it from blocking mouse events, so that the side nav flyout stays open
6
6
  // when moving the mouse from the top bar to the side nav.
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import ChatIcon from '@atlaskit/icon/core/ai-chat';
3
3
  import { ListItem } from '../../components/list-item';
4
- import { Button } from './themed/migration';
4
+ import { Button } from './themed/button';
5
5
 
6
6
  /**
7
7
  * __Chat button__
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import AddIcon from '@atlaskit/icon/core/add';
3
- import { Button } from './themed/migration';
3
+ import { Button } from './themed/button';
4
4
  /**
5
5
  * __Create button__
6
6
  *
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef, Fragment } from 'react';
2
2
  import { ListItem } from '../../components/list-item';
3
- import { IconButton } from './themed/migration';
3
+ import { IconButton } from './themed/icon-button';
4
4
  /**
5
5
  * __EndItem__
6
6
  *
@@ -1,7 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import LogInIcon from '@atlaskit/icon/core/log-in';
3
3
  import { ListItem } from '../../components/list-item';
4
- import { LinkIconButton } from './themed/migration';
4
+ import { LinkIconButton } from './themed/link-icon-button';
5
5
  /**
6
6
  * __Log in__
7
7
  *
@@ -7,7 +7,7 @@ import SearchIcon from '@atlaskit/icon/core/search';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
8
  import { Pressable, Show, Text } from '@atlaskit/primitives/compiled';
9
9
  import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
10
- import { IconButton } from './themed/migration';
10
+ import { IconButton } from './themed/icon-button';
11
11
  var styles = {
12
12
  root: "_2rko12b0 _1rjcze3t _18zr12x7 _yv0e1mfv _4cvr1h6o _bfhk1j9a _vchhusvi _80om1kdv _1e0cglyw _4t3izwfg _p12f1kvu _1bsb1osq _irr3l4ek _1di6r01l _114b11p5",
13
13
  rootT26Shape: "_2rko1qi0",
@@ -1,361 +1,14 @@
1
- /* button.tsx generated by @compiled/babel-plugin v0.39.1 */
2
1
  import _extends from "@babel/runtime/helpers/extends";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["style", "xcss", "backgroundColor", "padding", "paddingBlock", "paddingBlockStart", "paddingBlockEnd", "paddingInline", "paddingInlineStart", "paddingInlineEnd"],
5
- _excluded2 = ["appearance", "shape", "isSelected", "isDisabled"],
6
- _excluded3 = ["appearance", "shape", "isSelected", "isDisabled"],
7
- _excluded4 = ["iconBefore", "children"],
8
- _excluded5 = ["iconBefore", "children"],
9
- _excluded6 = ["icon", "label", "tooltip"],
10
- _excluded7 = ["icon", "label", "tooltip"];
11
- import "./button.compiled.css";
12
- import { ax, ix } from "@compiled/react/runtime";
13
2
  import React, { forwardRef } from 'react';
14
- import { cx } from '@compiled/react';
15
- import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
16
- import mergeRefs from '@atlaskit/ds-lib/merge-refs';
17
- import { fg } from '@atlaskit/platform-feature-flags';
18
- import { Anchor, Pressable } from '@atlaskit/primitives/compiled';
19
- import Tooltip from '@atlaskit/tooltip';
20
- import VisuallyHidden from '@atlaskit/visually-hidden';
21
- import IconRenderer from '../icon-renderer';
22
-
23
- /**
24
- * Props from primitives that we explicitly ignore and remove from spread props,
25
- * because they apply styles.
26
- *
27
- * `css` / `className` are not here because primitives don't support them.
28
- *
29
- * See `packages/design-system/primitives/src/components/anchor.tsx` and `packages/design-system/primitives/src/components/pressable.tsx`
30
- * for where these are defined. These shouldn't change very often as the direction is `xcss` over individual props.
31
- */
32
-
33
- /**
34
- * Returns the spread props to pass through to underlying primitive components.
35
- *
36
- * It removes the props which apply styles.
37
- */
38
- // eslint-disable no-unused-vars
39
- function getPrimitiveSpreadProps(_ref) {
40
- var style = _ref.style,
41
- xcss = _ref.xcss,
42
- backgroundColor = _ref.backgroundColor,
43
- padding = _ref.padding,
44
- paddingBlock = _ref.paddingBlock,
45
- paddingBlockStart = _ref.paddingBlockStart,
46
- paddingBlockEnd = _ref.paddingBlockEnd,
47
- paddingInline = _ref.paddingInline,
48
- paddingInlineStart = _ref.paddingInlineStart,
49
- paddingInlineEnd = _ref.paddingInlineEnd,
50
- props = _objectWithoutProperties(_ref, _excluded);
51
- return props;
52
- }
53
- // eslint-enable no-unused-vars
54
-
55
- /**
56
- * Props present in underlying primitives but we want to override,
57
- * so we don't want to inherit their definitions
58
- */
59
-
60
- /**
61
- * Props that are common between link buttons.
62
- */
63
-
64
- /**
65
- * Props shared by `Button` and `IconButton`
66
- */
67
-
68
- export var themedButtonBackground = '--ds-top-bar-button-background';
69
- export var themedButtonBackgroundHovered = '--ds-top-bar-button-background-hovered';
70
- export var themedButtonBackgroundPressed = '--ds-top-bar-button-background-pressed';
71
- export var themedButtonBorder = '--ds-top-bar-button-border';
72
- export var themedButtonPrimaryText = '--ds-top-bar-button-primary-text';
73
- export var themedButtonPrimaryBackground = '--ds-top-bar-button-primary-background';
74
- export var themedButtonPrimaryBackgroundHovered = '--ds-top-bar-button-primary-background-hovered';
75
- export var themedButtonPrimaryBackgroundPressed = '--ds-top-bar-button-primary-background-pressed';
76
- export var themedButtonSelectedText = '--ds-top-bar-button-selected-text';
77
- export var themedButtonSelectedBackground = '--ds-top-bar-button-selected-background';
78
- export var themedButtonSelectedBackgroundHovered = '--ds-top-bar-button-selected-background-hovered';
79
- export var themedButtonSelectedBackgroundPressed = '--ds-top-bar-button-selected-background-pressed';
80
- export var themedButtonSelectedBorder = '--ds-top-bar-button-selected-border';
81
- export var themedButtonDisabledText = '--ds-top-bar-button-disabled-text';
82
- export var themedButtonDisabledBackground = '--ds-top-bar-button-disabled-background';
83
- var styles = {
84
- root: "_zulp12x7 _11c8fhey _2rkofajl _v5649dqc _4bfu1r31 _1hmsglyw _ajmmnqa1 _1rjcze3t _1e0c1txw _4cvr1h6o _1bah1h6o _4t3i5r7u _kqswh2mm _1nrm1r31 _1a3b1r31 _9oik1r31 _c2waglyw _4fprglyw _1bnxglyw _1iohnqa1 _5goinqa1 _jf4cnqa1",
85
- rootT26Shape: "_2rko1qi0",
86
- border: "_14mj1kw7 _9v7aze3t _1tv3nqa1 _39yqe4h9 _aetrb3bt _18postnw",
87
- selected: "_11q71qds _syazw5ct _8l3m15jn _f8pjw5ct _1053w5ct _19lcjrv1 _30l3w5ct _j6xtnh62 _9h8hw5ct",
88
- disabled: "_11q71c9b _syaz1i3i _8l3m1j28 _f8pj1i3i _10531i3i _19lc1c9b _30l31i3i _j6xt1c9b _9h8h1i3i"
89
- };
90
- var shapeStyles = {
91
- default: "_18zrutpp",
92
- square: "_18zrze3t _1bsb5r7u _vwz4idpf"
93
- };
94
- var appearanceStyles = {
95
- default: "_11q7pkxg _syaz1r31 _8l3maykr _f8pj1r31 _10531r31 _19lc1rps _30l31r31 _j6xtqtgh _9h8h1r31",
96
- subtle: "_11q7pkxg _syaz1r31 _f8pj1r31 _10531r31 _19lc1rps _30l31r31 _j6xtqtgh _9h8h1r31",
97
- primary: "_11q7esko _syaz15o7 _f8pj15o7 _105315o7 _19lcp6hf _30l315o7 _j6xt5sko _9h8h15o7"
98
- };
99
-
100
- /**
101
- * Props shared by `ThemedPressable` and `ThemedAnchor`
102
- */
103
-
104
- /**
105
- * Intentionally an almost-duplicate of `ThemedAnchor` - make sure to update both.
106
- *
107
- * See `ThemedAnchor` for more context.
108
- */
109
- var ThemedPressable = /*#__PURE__*/forwardRef(function ThemedPressable(_ref2, ref) {
110
- var _ref2$appearance = _ref2.appearance,
111
- appearance = _ref2$appearance === void 0 ? 'default' : _ref2$appearance,
112
- _ref2$shape = _ref2.shape,
113
- shape = _ref2$shape === void 0 ? 'default' : _ref2$shape,
114
- isSelected = _ref2.isSelected,
115
- isDisabled = _ref2.isDisabled,
116
- props = _objectWithoutProperties(_ref2, _excluded2);
117
- var hasBorder = appearance === 'default' || isSelected;
118
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, getPrimitiveSpreadProps(props), {
119
- ref: ref,
120
- type: "button"
121
- /**
122
- * We are using some style values that are outside of the strict
123
- * `@atlaskit/css` types.
124
- */
125
- // @ts-expect-error
126
- // eslint-disable-next-line @compiled/no-suppress-xcss
127
- ,
128
- xcss: cx(styles.root, fg('platform-dst-shape-theme-default') && styles.rootT26Shape, shapeStyles[shape], hasBorder && styles.border, appearanceStyles[appearance], isSelected && styles.selected, isDisabled && styles.disabled),
129
- isDisabled: isDisabled
130
- }));
131
- });
132
- function ThemedAnchorFn(_ref3, ref) {
133
- var _ref3$appearance = _ref3.appearance,
134
- appearance = _ref3$appearance === void 0 ? 'default' : _ref3$appearance,
135
- _ref3$shape = _ref3.shape,
136
- shape = _ref3$shape === void 0 ? 'default' : _ref3$shape,
137
- isSelected = _ref3.isSelected,
138
- isDisabled = _ref3.isDisabled,
139
- props = _objectWithoutProperties(_ref3, _excluded3);
140
- var hasBorder = appearance === 'default' || isSelected;
141
- return /*#__PURE__*/React.createElement(Anchor, _extends({}, getPrimitiveSpreadProps(props), {
3
+ import AkButton from '@atlaskit/button/new';
4
+ import { useHasCustomTheme } from './has-custom-theme-context';
5
+ import { ThemedButton } from './themed-button';
6
+ // Explicitly typed to use only the themed button API,
7
+ // which is a subset of the normal button API
8
+ export var Button = /*#__PURE__*/forwardRef(function (props, ref) {
9
+ var hasCustomTheme = useHasCustomTheme();
10
+ var Component = hasCustomTheme ? ThemedButton : AkButton;
11
+ return /*#__PURE__*/React.createElement(Component, _extends({
142
12
  ref: ref
143
- /**
144
- * We are using some style values that are outside of the strict
145
- * `@atlaskit/css` types.
146
- */
147
- // @ts-expect-error
148
- // eslint-disable-next-line @compiled/no-suppress-xcss
149
- ,
150
- xcss: cx(styles.root, fg('platform-dst-shape-theme-default') && styles.rootT26Shape, shapeStyles[shape], hasBorder && styles.border, appearanceStyles[appearance], isSelected && styles.selected, isDisabled && styles.disabled)
151
- }));
152
- }
153
- /**
154
- * Intentionally an almost-duplicate of `ThemedPressable` - make sure to update both.
155
- *
156
- * More 'clever' solutions were tried but I couldn't get them working in an acceptable state.
157
- *
158
- * Polymorphism had many typing issues and required sacrificing type safety.
159
- *
160
- * Render props had problems passing down styles through `xcss` to the `children` function.
161
- */
162
- var ThemedAnchor = forwardRefWithGeneric(ThemedAnchorFn);
163
- var textButtonStyles = {
164
- iconBefore: "_vwz4idpf",
165
- text: "_k48p1wq8"
166
- };
167
-
168
- /**
169
- * Props shared by `Button` and `LinkButton`
170
- */
171
-
172
- /**
173
- * __Themed button__
174
- *
175
- * A themed button for the top bar.
176
- */
177
- export var ThemedButton = /*#__PURE__*/forwardRef(function ThemedButton(_ref4, ref) {
178
- var IconBefore = _ref4.iconBefore,
179
- children = _ref4.children,
180
- props = _objectWithoutProperties(_ref4, _excluded4);
181
- return /*#__PURE__*/React.createElement(ThemedPressable, _extends({}, props, {
182
- ref: ref
183
- }), IconBefore && /*#__PURE__*/React.createElement("span", {
184
- className: ax([textButtonStyles.iconBefore])
185
- }, fg('platform_themed_button_use_icon_renderer') ? /*#__PURE__*/React.createElement(IconRenderer, {
186
- icon: IconBefore
187
- }) : /*#__PURE__*/React.createElement(IconBefore, {
188
- label: "",
189
- color: "currentColor"
190
- })), /*#__PURE__*/React.createElement("span", {
191
- className: ax([textButtonStyles.text])
192
- }, children));
193
- });
194
- function ThemedLinkButtonFn(_ref5, ref) {
195
- var IconBefore = _ref5.iconBefore,
196
- children = _ref5.children,
197
- props = _objectWithoutProperties(_ref5, _excluded5);
198
- return (
199
- /*#__PURE__*/
200
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
201
- React.createElement(ThemedAnchor, _extends({}, props, {
202
- ref: ref
203
- }), IconBefore && /*#__PURE__*/React.createElement("span", {
204
- className: ax([textButtonStyles.iconBefore])
205
- }, /*#__PURE__*/React.createElement(IconBefore, {
206
- label: "",
207
- color: "currentColor"
208
- })), /*#__PURE__*/React.createElement("span", {
209
- className: ax([textButtonStyles.text])
210
- }, children))
211
- );
212
- }
213
- /**
214
- * __Themed link button__
215
- *
216
- * A themed link button for the top bar.
217
- */
218
- export var ThemedLinkButton = forwardRefWithGeneric(ThemedLinkButtonFn);
219
-
220
- /**
221
- * Props shared by `ThemedIconButtonProps` and `ThemedLinkIconButton`
222
- */
223
-
224
- /**
225
- * __Themed icon button__
226
- *
227
- * A themed icon button for the top bar.
228
- */
229
- export var ThemedIconButton = /*#__PURE__*/forwardRef(function ThemedIconButton(_ref6, ref) {
230
- var _tooltip$content;
231
- var Icon = _ref6.icon,
232
- label = _ref6.label,
233
- tooltip = _ref6.tooltip,
234
- props = _objectWithoutProperties(_ref6, _excluded6);
235
- return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltip, {
236
- content: (_tooltip$content = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content !== void 0 ? _tooltip$content : label
237
- }), function (triggerProps) {
238
- return (
239
- /*#__PURE__*/
240
- /**
241
- * The `aria-describedby` from `triggerProps` is intentionally not passed down,
242
- * because it would cause double announcements with the `VisuallyHidden` label.
243
- *
244
- * The `@atlaskit/button` IconButton uses the same approach.
245
- */
246
- React.createElement(ThemedPressable, _extends({}, props, {
247
- shape: "square",
248
- ref: mergeRefs([ref, triggerProps.ref]),
249
- onClick: function onClick(event, analyticsEvent) {
250
- var _props$onClick, _triggerProps$onClick;
251
- (_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event, analyticsEvent);
252
- triggerProps === null || triggerProps === void 0 || (_triggerProps$onClick = triggerProps.onClick) === null || _triggerProps$onClick === void 0 || _triggerProps$onClick.call(triggerProps, event);
253
- },
254
- onMouseOver: function onMouseOver(e) {
255
- var _triggerProps$onMouse, _props$onMouseOver;
256
- (_triggerProps$onMouse = triggerProps.onMouseOver) === null || _triggerProps$onMouse === void 0 || _triggerProps$onMouse.call(triggerProps, e);
257
- (_props$onMouseOver = props.onMouseOver) === null || _props$onMouseOver === void 0 || _props$onMouseOver.call(props, e);
258
- },
259
- onMouseOut: function onMouseOut(e) {
260
- var _triggerProps$onMouse2, _props$onMouseOut;
261
- (_triggerProps$onMouse2 = triggerProps.onMouseOut) === null || _triggerProps$onMouse2 === void 0 || _triggerProps$onMouse2.call(triggerProps, e);
262
- (_props$onMouseOut = props.onMouseOut) === null || _props$onMouseOut === void 0 || _props$onMouseOut.call(props, e);
263
- },
264
- onMouseMove: function onMouseMove(e) {
265
- var _triggerProps$onMouse3, _props$onMouseMove;
266
- (_triggerProps$onMouse3 = triggerProps.onMouseMove) === null || _triggerProps$onMouse3 === void 0 || _triggerProps$onMouse3.call(triggerProps, e);
267
- (_props$onMouseMove = props.onMouseMove) === null || _props$onMouseMove === void 0 || _props$onMouseMove.call(props, e);
268
- },
269
- onMouseDown: function onMouseDown(e) {
270
- var _triggerProps$onMouse4, _props$onMouseDown;
271
- (_triggerProps$onMouse4 = triggerProps.onMouseDown) === null || _triggerProps$onMouse4 === void 0 || _triggerProps$onMouse4.call(triggerProps, e);
272
- (_props$onMouseDown = props.onMouseDown) === null || _props$onMouseDown === void 0 || _props$onMouseDown.call(props, e);
273
- },
274
- onFocus: function onFocus(e) {
275
- var _triggerProps$onFocus, _props$onFocus;
276
- (_triggerProps$onFocus = triggerProps.onFocus) === null || _triggerProps$onFocus === void 0 || _triggerProps$onFocus.call(triggerProps, e);
277
- (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, e);
278
- },
279
- onBlur: function onBlur(e) {
280
- var _triggerProps$onBlur, _props$onBlur;
281
- (_triggerProps$onBlur = triggerProps.onBlur) === null || _triggerProps$onBlur === void 0 || _triggerProps$onBlur.call(triggerProps, e);
282
- (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, e);
283
- }
284
- }), fg('platform_themed_button_use_icon_renderer') ? /*#__PURE__*/React.createElement(IconRenderer, {
285
- icon: Icon
286
- }) : /*#__PURE__*/React.createElement(Icon, {
287
- label: "",
288
- color: "currentColor"
289
- }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label))
290
- );
291
- });
292
- });
293
- function ThemedLinkIconButtonFn(_ref7, ref) {
294
- var _tooltip$content2;
295
- var Icon = _ref7.icon,
296
- label = _ref7.label,
297
- tooltip = _ref7.tooltip,
298
- props = _objectWithoutProperties(_ref7, _excluded7);
299
- return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltip, {
300
- content: (_tooltip$content2 = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content2 !== void 0 ? _tooltip$content2 : label
301
- }), function (triggerProps) {
302
- return (
303
- /*#__PURE__*/
304
- /**
305
- * The `aria-describedby` from `triggerProps` is intentionally not passed down,
306
- * because it would cause double announcements with the `VisuallyHidden` label.
307
- *
308
- * The `@atlaskit/button` IconButton uses the same approach.
309
- */
310
- React.createElement(ThemedAnchor, _extends({}, props, {
311
- shape: "square",
312
- ref: mergeRefs([ref, triggerProps.ref]),
313
- onClick: function onClick(event, analyticsEvent) {
314
- var _props$onClick2, _triggerProps$onClick2;
315
- (_props$onClick2 = props.onClick) === null || _props$onClick2 === void 0 || _props$onClick2.call(props, event, analyticsEvent);
316
- triggerProps === null || triggerProps === void 0 || (_triggerProps$onClick2 = triggerProps.onClick) === null || _triggerProps$onClick2 === void 0 || _triggerProps$onClick2.call(triggerProps, event);
317
- },
318
- onMouseOver: function onMouseOver(e) {
319
- var _triggerProps$onMouse5, _props$onMouseOver2;
320
- (_triggerProps$onMouse5 = triggerProps.onMouseOver) === null || _triggerProps$onMouse5 === void 0 || _triggerProps$onMouse5.call(triggerProps, e);
321
- (_props$onMouseOver2 = props.onMouseOver) === null || _props$onMouseOver2 === void 0 || _props$onMouseOver2.call(props, e);
322
- },
323
- onMouseOut: function onMouseOut(e) {
324
- var _triggerProps$onMouse6, _props$onMouseOut2;
325
- (_triggerProps$onMouse6 = triggerProps.onMouseOut) === null || _triggerProps$onMouse6 === void 0 || _triggerProps$onMouse6.call(triggerProps, e);
326
- (_props$onMouseOut2 = props.onMouseOut) === null || _props$onMouseOut2 === void 0 || _props$onMouseOut2.call(props, e);
327
- },
328
- onMouseMove: function onMouseMove(e) {
329
- var _triggerProps$onMouse7, _props$onMouseMove2;
330
- (_triggerProps$onMouse7 = triggerProps.onMouseMove) === null || _triggerProps$onMouse7 === void 0 || _triggerProps$onMouse7.call(triggerProps, e);
331
- (_props$onMouseMove2 = props.onMouseMove) === null || _props$onMouseMove2 === void 0 || _props$onMouseMove2.call(props, e);
332
- },
333
- onMouseDown: function onMouseDown(e) {
334
- var _triggerProps$onMouse8, _props$onMouseDown2;
335
- (_triggerProps$onMouse8 = triggerProps.onMouseDown) === null || _triggerProps$onMouse8 === void 0 || _triggerProps$onMouse8.call(triggerProps, e);
336
- (_props$onMouseDown2 = props.onMouseDown) === null || _props$onMouseDown2 === void 0 || _props$onMouseDown2.call(props, e);
337
- },
338
- onFocus: function onFocus(e) {
339
- var _triggerProps$onFocus2, _props$onFocus2;
340
- (_triggerProps$onFocus2 = triggerProps.onFocus) === null || _triggerProps$onFocus2 === void 0 || _triggerProps$onFocus2.call(triggerProps, e);
341
- (_props$onFocus2 = props.onFocus) === null || _props$onFocus2 === void 0 || _props$onFocus2.call(props, e);
342
- },
343
- onBlur: function onBlur(e) {
344
- var _triggerProps$onBlur2, _props$onBlur2;
345
- (_triggerProps$onBlur2 = triggerProps.onBlur) === null || _triggerProps$onBlur2 === void 0 || _triggerProps$onBlur2.call(triggerProps, e);
346
- (_props$onBlur2 = props.onBlur) === null || _props$onBlur2 === void 0 || _props$onBlur2.call(props, e);
347
- }
348
- }), /*#__PURE__*/React.createElement(Icon, {
349
- label: "",
350
- color: "currentColor"
351
- }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label))
352
- );
353
- });
354
- }
355
-
356
- /**
357
- * __Themed link icon button__
358
- *
359
- * A themed link icon button for the top bar.
360
- */
361
- export var ThemedLinkIconButton = forwardRefWithGeneric(ThemedLinkIconButtonFn);
13
+ }, props));
14
+ });