@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
@@ -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
  *
@@ -39,7 +42,7 @@ function TopNavOld({
39
42
  skipLinkLabel = 'Top Bar',
40
43
  testId,
41
44
  id: providedId,
42
- UNSAFE_theme
45
+ customTheme: customThemeConfig
43
46
  }) {
44
47
  const isFhsEnabled = useIsFhsEnabled();
45
48
  const dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
@@ -49,7 +52,7 @@ function TopNavOld({
49
52
  useSkipLink(id, skipLinkLabel);
50
53
  const hasIncreasedDefaultHeight = isFhsEnabled && fg('platform_dst_nav4_top_nav_increase_height');
51
54
  const height = heightProp !== null && heightProp !== void 0 ? heightProp : hasIncreasedDefaultHeight ? 56 : 48;
52
- const customTheme = useCustomTheme(UNSAFE_theme);
55
+ const customTheme = useCustomTheme(customThemeConfig);
53
56
  const {
54
57
  isExpandedOnDesktop
55
58
  } = useSideNavVisibility();
@@ -89,7 +92,7 @@ function TopNavNew({
89
92
  skipLinkLabel = 'Top Bar',
90
93
  testId,
91
94
  id: providedId,
92
- UNSAFE_theme
95
+ customTheme: customThemeConfig
93
96
  }) {
94
97
  const isFhsEnabled = useIsFhsEnabled();
95
98
  const dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
@@ -99,7 +102,7 @@ function TopNavNew({
99
102
  useSkipLink(id, skipLinkLabel);
100
103
  const hasIncreasedDefaultHeight = isFhsEnabled && fg('platform_dst_nav4_top_nav_increase_height');
101
104
  const height = heightProp !== null && heightProp !== void 0 ? heightProp : hasIncreasedDefaultHeight ? 56 : 48;
102
- const customTheme = useCustomThemeNew(UNSAFE_theme);
105
+ const customTheme = useCustomThemeNew(customThemeConfig);
103
106
  const hasDefaultBackground = customTheme.isEnabled ? customTheme.hasDefaultBackground : true;
104
107
  const {
105
108
  isExpandedOnDesktop
@@ -0,0 +1,15 @@
1
+ import { useSkipLinkId } from './use-skip-link-id';
2
+
3
+ /**
4
+ * Returns an ID for use by the layout element and skip links.
5
+ *
6
+ * If the consumer has already provided an ID, it will be used instead.
7
+ * Otherwise, a unique ID will be returned.
8
+ */
9
+ export function useLayoutId({
10
+ providedId
11
+ } = {}) {
12
+ const uniqueId = useSkipLinkId();
13
+ const id = providedId ? providedId : uniqueId;
14
+ return id;
15
+ }
@@ -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`
@@ -9,18 +9,4 @@ import { useId } from '@atlaskit/ds-lib/use-id';
9
9
  export function useSkipLinkId() {
10
10
  const uniqueId = useId();
11
11
  return uniqueId;
12
- }
13
-
14
- /**
15
- * Returns an ID for use by the layout element and skip links.
16
- *
17
- * If the consumer has already provided an ID, it will be used instead.
18
- * Otherwise, a unique ID will be returned.
19
- */
20
- export function useLayoutId({
21
- providedId
22
- } = {}) {
23
- const uniqueId = useSkipLinkId();
24
- const id = providedId ? providedId : uniqueId;
25
- return id;
26
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
  const 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
  const styles = {
12
12
  root: "_2rko12b0 _1rjcze3t _18zr12x7 _yv0e1mfv _4cvr1h6o _bfhk1j9a _vchhusvi _80om1kdv _1e0cglyw _4t3izwfg _p12f1kvu _1bsb1osq _irr3l4ek _1di6r01l _114b11p5",
13
13
  rootT26Shape: "_2rko1qi0",
@@ -1,350 +1,14 @@
1
- /* button.tsx generated by @compiled/babel-plugin v0.39.1 */
2
1
  import _extends from "@babel/runtime/helpers/extends";
3
- import "./button.compiled.css";
4
- import { ax, ix } from "@compiled/react/runtime";
5
2
  import React, { forwardRef } from 'react';
6
- import { cx } from '@compiled/react';
7
- import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
8
- import mergeRefs from '@atlaskit/ds-lib/merge-refs';
9
- import { fg } from '@atlaskit/platform-feature-flags';
10
- import { Anchor, Pressable } from '@atlaskit/primitives/compiled';
11
- import Tooltip from '@atlaskit/tooltip';
12
- import VisuallyHidden from '@atlaskit/visually-hidden';
13
- import IconRenderer from '../icon-renderer';
14
-
15
- /**
16
- * Props from primitives that we explicitly ignore and remove from spread props,
17
- * because they apply styles.
18
- *
19
- * `css` / `className` are not here because primitives don't support them.
20
- *
21
- * See `packages/design-system/primitives/src/components/anchor.tsx` and `packages/design-system/primitives/src/components/pressable.tsx`
22
- * for where these are defined. These shouldn't change very often as the direction is `xcss` over individual props.
23
- */
24
-
25
- /**
26
- * Returns the spread props to pass through to underlying primitive components.
27
- *
28
- * It removes the props which apply styles.
29
- */
30
- // eslint-disable no-unused-vars
31
- function getPrimitiveSpreadProps({
32
- style,
33
- xcss,
34
- backgroundColor,
35
- padding,
36
- paddingBlock,
37
- paddingBlockStart,
38
- paddingBlockEnd,
39
- paddingInline,
40
- paddingInlineStart,
41
- paddingInlineEnd,
42
- ...props
43
- }) {
44
- return props;
45
- }
46
- // eslint-enable no-unused-vars
47
-
48
- /**
49
- * Props present in underlying primitives but we want to override,
50
- * so we don't want to inherit their definitions
51
- */
52
-
53
- /**
54
- * Props that are common between link buttons.
55
- */
56
-
57
- /**
58
- * Props shared by `Button` and `IconButton`
59
- */
60
-
61
- export const themedButtonBackground = '--ds-top-bar-button-background';
62
- export const themedButtonBackgroundHovered = '--ds-top-bar-button-background-hovered';
63
- export const themedButtonBackgroundPressed = '--ds-top-bar-button-background-pressed';
64
- export const themedButtonBorder = '--ds-top-bar-button-border';
65
- export const themedButtonPrimaryText = '--ds-top-bar-button-primary-text';
66
- export const themedButtonPrimaryBackground = '--ds-top-bar-button-primary-background';
67
- export const themedButtonPrimaryBackgroundHovered = '--ds-top-bar-button-primary-background-hovered';
68
- export const themedButtonPrimaryBackgroundPressed = '--ds-top-bar-button-primary-background-pressed';
69
- export const themedButtonSelectedText = '--ds-top-bar-button-selected-text';
70
- export const themedButtonSelectedBackground = '--ds-top-bar-button-selected-background';
71
- export const themedButtonSelectedBackgroundHovered = '--ds-top-bar-button-selected-background-hovered';
72
- export const themedButtonSelectedBackgroundPressed = '--ds-top-bar-button-selected-background-pressed';
73
- export const themedButtonSelectedBorder = '--ds-top-bar-button-selected-border';
74
- export const themedButtonDisabledText = '--ds-top-bar-button-disabled-text';
75
- export const themedButtonDisabledBackground = '--ds-top-bar-button-disabled-background';
76
- const styles = {
77
- root: "_zulp12x7 _11c8fhey _2rkofajl _v5649dqc _4bfu1r31 _1hmsglyw _ajmmnqa1 _1rjcze3t _1e0c1txw _4cvr1h6o _1bah1h6o _4t3i5r7u _kqswh2mm _1nrm1r31 _1a3b1r31 _9oik1r31 _c2waglyw _4fprglyw _1bnxglyw _1iohnqa1 _5goinqa1 _jf4cnqa1",
78
- rootT26Shape: "_2rko1qi0",
79
- border: "_14mj1kw7 _9v7aze3t _1tv3nqa1 _39yqe4h9 _aetrb3bt _18postnw",
80
- selected: "_11q71qds _syazw5ct _8l3m15jn _f8pjw5ct _1053w5ct _19lcjrv1 _30l3w5ct _j6xtnh62 _9h8hw5ct",
81
- disabled: "_11q71c9b _syaz1i3i _8l3m1j28 _f8pj1i3i _10531i3i _19lc1c9b _30l31i3i _j6xt1c9b _9h8h1i3i"
82
- };
83
- const shapeStyles = {
84
- default: "_18zrutpp",
85
- square: "_18zrze3t _1bsb5r7u _vwz4idpf"
86
- };
87
- const appearanceStyles = {
88
- default: "_11q7pkxg _syaz1r31 _8l3maykr _f8pj1r31 _10531r31 _19lc1rps _30l31r31 _j6xtqtgh _9h8h1r31",
89
- subtle: "_11q7pkxg _syaz1r31 _f8pj1r31 _10531r31 _19lc1rps _30l31r31 _j6xtqtgh _9h8h1r31",
90
- primary: "_11q7esko _syaz15o7 _f8pj15o7 _105315o7 _19lcp6hf _30l315o7 _j6xt5sko _9h8h15o7"
91
- };
92
-
93
- /**
94
- * Props shared by `ThemedPressable` and `ThemedAnchor`
95
- */
96
-
97
- /**
98
- * Intentionally an almost-duplicate of `ThemedAnchor` - make sure to update both.
99
- *
100
- * See `ThemedAnchor` for more context.
101
- */
102
- const ThemedPressable = /*#__PURE__*/forwardRef(function ThemedPressable({
103
- appearance = 'default',
104
- shape = 'default',
105
- isSelected,
106
- isDisabled,
107
- ...props
108
- }, ref) {
109
- const hasBorder = appearance === 'default' || isSelected;
110
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, getPrimitiveSpreadProps(props), {
111
- ref: ref,
112
- type: "button"
113
- /**
114
- * We are using some style values that are outside of the strict
115
- * `@atlaskit/css` types.
116
- */
117
- // @ts-expect-error
118
- // eslint-disable-next-line @compiled/no-suppress-xcss
119
- ,
120
- 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),
121
- isDisabled: isDisabled
122
- }));
123
- });
124
- function ThemedAnchorFn({
125
- appearance = 'default',
126
- shape = 'default',
127
- isSelected,
128
- isDisabled,
129
- ...props
130
- }, ref) {
131
- const hasBorder = appearance === 'default' || isSelected;
132
- 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 const Button = /*#__PURE__*/forwardRef((props, ref) => {
9
+ const hasCustomTheme = useHasCustomTheme();
10
+ const Component = hasCustomTheme ? ThemedButton : AkButton;
11
+ return /*#__PURE__*/React.createElement(Component, _extends({
133
12
  ref: ref
134
- /**
135
- * We are using some style values that are outside of the strict
136
- * `@atlaskit/css` types.
137
- */
138
- // @ts-expect-error
139
- // eslint-disable-next-line @compiled/no-suppress-xcss
140
- ,
141
- 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)
142
- }));
143
- }
144
- /**
145
- * Intentionally an almost-duplicate of `ThemedPressable` - make sure to update both.
146
- *
147
- * More 'clever' solutions were tried but I couldn't get them working in an acceptable state.
148
- *
149
- * Polymorphism had many typing issues and required sacrificing type safety.
150
- *
151
- * Render props had problems passing down styles through `xcss` to the `children` function.
152
- */
153
- const ThemedAnchor = forwardRefWithGeneric(ThemedAnchorFn);
154
- const textButtonStyles = {
155
- iconBefore: "_vwz4idpf",
156
- text: "_k48p1wq8"
157
- };
158
-
159
- /**
160
- * Props shared by `Button` and `LinkButton`
161
- */
162
-
163
- /**
164
- * __Themed button__
165
- *
166
- * A themed button for the top bar.
167
- */
168
- export const ThemedButton = /*#__PURE__*/forwardRef(function ThemedButton({
169
- iconBefore: IconBefore,
170
- children,
171
- ...props
172
- }, ref) {
173
- return /*#__PURE__*/React.createElement(ThemedPressable, _extends({}, props, {
174
- ref: ref
175
- }), IconBefore && /*#__PURE__*/React.createElement("span", {
176
- className: ax([textButtonStyles.iconBefore])
177
- }, fg('platform_themed_button_use_icon_renderer') ? /*#__PURE__*/React.createElement(IconRenderer, {
178
- icon: IconBefore
179
- }) : /*#__PURE__*/React.createElement(IconBefore, {
180
- label: "",
181
- color: "currentColor"
182
- })), /*#__PURE__*/React.createElement("span", {
183
- className: ax([textButtonStyles.text])
184
- }, children));
185
- });
186
- function ThemedLinkButtonFn({
187
- iconBefore: IconBefore,
188
- children,
189
- ...props
190
- }, ref) {
191
- return (
192
- /*#__PURE__*/
193
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
194
- React.createElement(ThemedAnchor, _extends({}, props, {
195
- ref: ref
196
- }), IconBefore && /*#__PURE__*/React.createElement("span", {
197
- className: ax([textButtonStyles.iconBefore])
198
- }, /*#__PURE__*/React.createElement(IconBefore, {
199
- label: "",
200
- color: "currentColor"
201
- })), /*#__PURE__*/React.createElement("span", {
202
- className: ax([textButtonStyles.text])
203
- }, children))
204
- );
205
- }
206
- /**
207
- * __Themed link button__
208
- *
209
- * A themed link button for the top bar.
210
- */
211
- export const ThemedLinkButton = forwardRefWithGeneric(ThemedLinkButtonFn);
212
-
213
- /**
214
- * Props shared by `ThemedIconButtonProps` and `ThemedLinkIconButton`
215
- */
216
-
217
- /**
218
- * __Themed icon button__
219
- *
220
- * A themed icon button for the top bar.
221
- */
222
- export const ThemedIconButton = /*#__PURE__*/forwardRef(function ThemedIconButton({
223
- icon: Icon,
224
- label,
225
- tooltip,
226
- ...props
227
- }, ref) {
228
- var _tooltip$content;
229
- return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltip, {
230
- content: (_tooltip$content = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content !== void 0 ? _tooltip$content : label
231
- }), triggerProps =>
232
- /*#__PURE__*/
233
- /**
234
- * The `aria-describedby` from `triggerProps` is intentionally not passed down,
235
- * because it would cause double announcements with the `VisuallyHidden` label.
236
- *
237
- * The `@atlaskit/button` IconButton uses the same approach.
238
- */
239
- React.createElement(ThemedPressable, _extends({}, props, {
240
- shape: "square",
241
- ref: mergeRefs([ref, triggerProps.ref]),
242
- onClick: (event, analyticsEvent) => {
243
- var _props$onClick, _triggerProps$onClick;
244
- (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props, event, analyticsEvent);
245
- triggerProps === null || triggerProps === void 0 ? void 0 : (_triggerProps$onClick = triggerProps.onClick) === null || _triggerProps$onClick === void 0 ? void 0 : _triggerProps$onClick.call(triggerProps, event);
246
- },
247
- onMouseOver: e => {
248
- var _triggerProps$onMouse, _props$onMouseOver;
249
- (_triggerProps$onMouse = triggerProps.onMouseOver) === null || _triggerProps$onMouse === void 0 ? void 0 : _triggerProps$onMouse.call(triggerProps, e);
250
- (_props$onMouseOver = props.onMouseOver) === null || _props$onMouseOver === void 0 ? void 0 : _props$onMouseOver.call(props, e);
251
- },
252
- onMouseOut: e => {
253
- var _triggerProps$onMouse2, _props$onMouseOut;
254
- (_triggerProps$onMouse2 = triggerProps.onMouseOut) === null || _triggerProps$onMouse2 === void 0 ? void 0 : _triggerProps$onMouse2.call(triggerProps, e);
255
- (_props$onMouseOut = props.onMouseOut) === null || _props$onMouseOut === void 0 ? void 0 : _props$onMouseOut.call(props, e);
256
- },
257
- onMouseMove: e => {
258
- var _triggerProps$onMouse3, _props$onMouseMove;
259
- (_triggerProps$onMouse3 = triggerProps.onMouseMove) === null || _triggerProps$onMouse3 === void 0 ? void 0 : _triggerProps$onMouse3.call(triggerProps, e);
260
- (_props$onMouseMove = props.onMouseMove) === null || _props$onMouseMove === void 0 ? void 0 : _props$onMouseMove.call(props, e);
261
- },
262
- onMouseDown: e => {
263
- var _triggerProps$onMouse4, _props$onMouseDown;
264
- (_triggerProps$onMouse4 = triggerProps.onMouseDown) === null || _triggerProps$onMouse4 === void 0 ? void 0 : _triggerProps$onMouse4.call(triggerProps, e);
265
- (_props$onMouseDown = props.onMouseDown) === null || _props$onMouseDown === void 0 ? void 0 : _props$onMouseDown.call(props, e);
266
- },
267
- onFocus: e => {
268
- var _triggerProps$onFocus, _props$onFocus;
269
- (_triggerProps$onFocus = triggerProps.onFocus) === null || _triggerProps$onFocus === void 0 ? void 0 : _triggerProps$onFocus.call(triggerProps, e);
270
- (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 ? void 0 : _props$onFocus.call(props, e);
271
- },
272
- onBlur: e => {
273
- var _triggerProps$onBlur, _props$onBlur;
274
- (_triggerProps$onBlur = triggerProps.onBlur) === null || _triggerProps$onBlur === void 0 ? void 0 : _triggerProps$onBlur.call(triggerProps, e);
275
- (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 ? void 0 : _props$onBlur.call(props, e);
276
- }
277
- }), fg('platform_themed_button_use_icon_renderer') ? /*#__PURE__*/React.createElement(IconRenderer, {
278
- icon: Icon
279
- }) : /*#__PURE__*/React.createElement(Icon, {
280
- label: "",
281
- color: "currentColor"
282
- }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label)));
283
- });
284
- function ThemedLinkIconButtonFn({
285
- icon: Icon,
286
- label,
287
- tooltip,
288
- ...props
289
- }, ref) {
290
- var _tooltip$content2;
291
- return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltip, {
292
- content: (_tooltip$content2 = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content2 !== void 0 ? _tooltip$content2 : label
293
- }), triggerProps =>
294
- /*#__PURE__*/
295
- /**
296
- * The `aria-describedby` from `triggerProps` is intentionally not passed down,
297
- * because it would cause double announcements with the `VisuallyHidden` label.
298
- *
299
- * The `@atlaskit/button` IconButton uses the same approach.
300
- */
301
- React.createElement(ThemedAnchor, _extends({}, props, {
302
- shape: "square",
303
- ref: mergeRefs([ref, triggerProps.ref]),
304
- onClick: (event, analyticsEvent) => {
305
- var _props$onClick2, _triggerProps$onClick2;
306
- (_props$onClick2 = props.onClick) === null || _props$onClick2 === void 0 ? void 0 : _props$onClick2.call(props, event, analyticsEvent);
307
- triggerProps === null || triggerProps === void 0 ? void 0 : (_triggerProps$onClick2 = triggerProps.onClick) === null || _triggerProps$onClick2 === void 0 ? void 0 : _triggerProps$onClick2.call(triggerProps, event);
308
- },
309
- onMouseOver: e => {
310
- var _triggerProps$onMouse5, _props$onMouseOver2;
311
- (_triggerProps$onMouse5 = triggerProps.onMouseOver) === null || _triggerProps$onMouse5 === void 0 ? void 0 : _triggerProps$onMouse5.call(triggerProps, e);
312
- (_props$onMouseOver2 = props.onMouseOver) === null || _props$onMouseOver2 === void 0 ? void 0 : _props$onMouseOver2.call(props, e);
313
- },
314
- onMouseOut: e => {
315
- var _triggerProps$onMouse6, _props$onMouseOut2;
316
- (_triggerProps$onMouse6 = triggerProps.onMouseOut) === null || _triggerProps$onMouse6 === void 0 ? void 0 : _triggerProps$onMouse6.call(triggerProps, e);
317
- (_props$onMouseOut2 = props.onMouseOut) === null || _props$onMouseOut2 === void 0 ? void 0 : _props$onMouseOut2.call(props, e);
318
- },
319
- onMouseMove: e => {
320
- var _triggerProps$onMouse7, _props$onMouseMove2;
321
- (_triggerProps$onMouse7 = triggerProps.onMouseMove) === null || _triggerProps$onMouse7 === void 0 ? void 0 : _triggerProps$onMouse7.call(triggerProps, e);
322
- (_props$onMouseMove2 = props.onMouseMove) === null || _props$onMouseMove2 === void 0 ? void 0 : _props$onMouseMove2.call(props, e);
323
- },
324
- onMouseDown: e => {
325
- var _triggerProps$onMouse8, _props$onMouseDown2;
326
- (_triggerProps$onMouse8 = triggerProps.onMouseDown) === null || _triggerProps$onMouse8 === void 0 ? void 0 : _triggerProps$onMouse8.call(triggerProps, e);
327
- (_props$onMouseDown2 = props.onMouseDown) === null || _props$onMouseDown2 === void 0 ? void 0 : _props$onMouseDown2.call(props, e);
328
- },
329
- onFocus: e => {
330
- var _triggerProps$onFocus2, _props$onFocus2;
331
- (_triggerProps$onFocus2 = triggerProps.onFocus) === null || _triggerProps$onFocus2 === void 0 ? void 0 : _triggerProps$onFocus2.call(triggerProps, e);
332
- (_props$onFocus2 = props.onFocus) === null || _props$onFocus2 === void 0 ? void 0 : _props$onFocus2.call(props, e);
333
- },
334
- onBlur: e => {
335
- var _triggerProps$onBlur2, _props$onBlur2;
336
- (_triggerProps$onBlur2 = triggerProps.onBlur) === null || _triggerProps$onBlur2 === void 0 ? void 0 : _triggerProps$onBlur2.call(triggerProps, e);
337
- (_props$onBlur2 = props.onBlur) === null || _props$onBlur2 === void 0 ? void 0 : _props$onBlur2.call(props, e);
338
- }
339
- }), /*#__PURE__*/React.createElement(Icon, {
340
- label: "",
341
- color: "currentColor"
342
- }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label)));
343
- }
344
-
345
- /**
346
- * __Themed link icon button__
347
- *
348
- * A themed link icon button for the top bar.
349
- */
350
- export const ThemedLinkIconButton = forwardRefWithGeneric(ThemedLinkIconButtonFn);
13
+ }, props));
14
+ });
@@ -1,8 +1,8 @@
1
1
  import { themedLogoIcon, themedLogoText } from '../nav-logo/logo-renderer';
2
- import { themedButtonBackground, themedButtonBackgroundHovered, themedButtonBackgroundPressed, themedButtonBorder, themedButtonDisabledBackground, themedButtonDisabledText, themedButtonPrimaryBackground, themedButtonPrimaryBackgroundHovered, themedButtonPrimaryBackgroundPressed, themedButtonPrimaryText, themedButtonSelectedBackground, themedButtonSelectedBackgroundHovered, themedButtonSelectedBackgroundPressed, themedButtonSelectedBorder, themedButtonSelectedText } from './button';
3
2
  import { getColorMode, getTextColor, isLight, simpleAlphaComposite } from './color-utils';
4
3
  import { parseHex } from './color-utils/formats/hex';
5
- import { palette, paletteRgba } from './palette';
4
+ import { palette } from './palette';
5
+ import { paletteRgba } from './palette-rgba';
6
6
  import { themedSearchBorder, themedSearchBorderFocused } from './search';
7
7
 
8
8
  /**
@@ -35,32 +35,32 @@ function toRGBAString({
35
35
  // Values here are not final
36
36
  const buttonStyles = {
37
37
  light: {
38
- [themedButtonBackground]: 'transparent',
39
- [themedButtonBackgroundHovered]: palette.Neutral200A,
40
- [themedButtonBackgroundPressed]: palette.Neutral300A,
41
- [themedButtonBorder]: palette.Neutral300A,
42
- [themedButtonSelectedBackground]: palette.Neutral300A,
43
- [themedButtonSelectedBackgroundHovered]: palette.Neutral400A,
44
- [themedButtonSelectedBackgroundPressed]: palette.Neutral500A,
45
- [themedButtonDisabledText]: palette.Neutral400A,
46
- [themedButtonDisabledBackground]: palette.Neutral100A
38
+ ['--ds-top-bar-button-background']: 'transparent',
39
+ ['--ds-top-bar-button-background-hovered']: palette.Neutral200A,
40
+ ['--ds-top-bar-button-background-pressed']: palette.Neutral300A,
41
+ ['--ds-top-bar-button-border']: palette.Neutral300A,
42
+ ['--ds-top-bar-button-selected-background']: palette.Neutral300A,
43
+ ['--ds-top-bar-button-selected-background-hovered']: palette.Neutral400A,
44
+ ['--ds-top-bar-button-selected-background-pressed']: palette.Neutral500A,
45
+ ['--ds-top-bar-button-disabled-text']: palette.Neutral400A,
46
+ ['--ds-top-bar-button-disabled-background']: palette.Neutral100A
47
47
  },
48
48
  dark: {
49
- [themedButtonBackground]: 'transparent',
50
- [themedButtonBackgroundHovered]: palette.DarkNeutral200A,
51
- [themedButtonBackgroundPressed]: palette.DarkNeutral300A,
52
- [themedButtonBorder]: palette.DarkNeutral300A,
53
- [themedButtonSelectedBackground]: palette.DarkNeutral300A,
54
- [themedButtonSelectedBackgroundHovered]: palette.DarkNeutral400A,
55
- [themedButtonSelectedBackgroundPressed]: palette.DarkNeutral500A,
56
- [themedButtonDisabledText]: palette.DarkNeutral400A,
57
- [themedButtonDisabledBackground]: palette.DarkNeutral100A
49
+ ['--ds-top-bar-button-background']: 'transparent',
50
+ ['--ds-top-bar-button-background-hovered']: palette.DarkNeutral200A,
51
+ ['--ds-top-bar-button-background-pressed']: palette.DarkNeutral300A,
52
+ ['--ds-top-bar-button-border']: palette.DarkNeutral300A,
53
+ ['--ds-top-bar-button-selected-background']: palette.DarkNeutral300A,
54
+ ['--ds-top-bar-button-selected-background-hovered']: palette.DarkNeutral400A,
55
+ ['--ds-top-bar-button-selected-background-pressed']: palette.DarkNeutral500A,
56
+ ['--ds-top-bar-button-disabled-text']: palette.DarkNeutral400A,
57
+ ['--ds-top-bar-button-disabled-background']: palette.DarkNeutral100A
58
58
  }
59
59
  };
60
60
  const logoStyles = {
61
61
  light: {
62
- [themedLogoIcon]: palette.DarkNeutral0,
63
- [themedLogoText]: palette.DarkNeutral0
62
+ ['--ds-top-bar-logo-icon']: palette.DarkNeutral0,
63
+ ['--ds-top-bar-logo-text']: palette.DarkNeutral0
64
64
  },
65
65
  dark: {
66
66
  [themedLogoIcon]: palette.Neutral0,
@@ -111,16 +111,16 @@ export function getCustomThemeStyles({
111
111
  * except the text color which can sometimes differ because we're
112
112
  * now following WCAG
113
113
  */
114
- [themedButtonPrimaryBackground]: toRGBString(highlightRgb),
115
- [themedButtonPrimaryBackgroundHovered]: toRGBAString({
114
+ ['--ds-top-bar-button-primary-background']: toRGBString(highlightRgb),
115
+ ['--ds-top-bar-button-primary-background-hovered']: toRGBAString({
116
116
  ...highlightRgb,
117
117
  a: 0.8
118
118
  }),
119
- [themedButtonPrimaryBackgroundPressed]: toRGBAString({
119
+ ['--ds-top-bar-button-primary-background-pressed']: toRGBAString({
120
120
  ...highlightRgb,
121
121
  a: 0.65
122
122
  }),
123
- [themedButtonPrimaryText]: highlightTextColor.hex
123
+ ['--ds-top-bar-button-primary-text']: highlightTextColor.hex
124
124
  };
125
125
  }
126
126
 
@@ -151,8 +151,8 @@ function getSelectedStyles({
151
151
  foreground: foregroundColor
152
152
  });
153
153
  return {
154
- [themedButtonSelectedText]: getTextColor(blendedBackground).hex,
154
+ ['--ds-top-bar-button-selected-text']: getTextColor(blendedBackground).hex,
155
155
  // Border colors are chosen to match the text, while remaining in the palette
156
- [themedButtonSelectedBorder]: isLight(blendedBackground) ? palette.Neutral1100 : palette.DarkNeutral1100
156
+ ['--ds-top-bar-button-selected-border']: isLight(blendedBackground) ? palette.Neutral1100 : palette.DarkNeutral1100
157
157
  };
158
158
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Props from primitives that we explicitly ignore and remove from spread props,
3
+ * because they apply styles.
4
+ *
5
+ * `css` / `className` are not here because primitives don't support them.
6
+ *
7
+ * See `packages/design-system/primitives/src/components/anchor.tsx` and `packages/design-system/primitives/src/components/pressable.tsx`
8
+ * for where these are defined. These shouldn't change very often as the direction is `xcss` over individual props.
9
+ */
10
+
11
+ /**
12
+ * Returns the spread props to pass through to underlying primitive components.
13
+ *
14
+ * It removes the props which apply styles.
15
+ */
16
+ // eslint-disable no-unused-vars
17
+ export function getPrimitiveSpreadProps({
18
+ style,
19
+ xcss,
20
+ backgroundColor,
21
+ padding,
22
+ paddingBlock,
23
+ paddingBlockStart,
24
+ paddingBlockEnd,
25
+ paddingInline,
26
+ paddingInlineStart,
27
+ paddingInlineEnd,
28
+ ...props
29
+ }) {
30
+ return props;
31
+ }