@atlaskit/side-nav-items 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +11 -0
  3. package/README.md +5 -0
  4. package/button-menu-item/package.json +17 -0
  5. package/container-avatar/package.json +17 -0
  6. package/dist/cjs/entry-points/button-menu-item.js +19 -0
  7. package/dist/cjs/entry-points/container-avatar.js +12 -0
  8. package/dist/cjs/entry-points/drag-and-drop/drag-handle.js +12 -0
  9. package/dist/cjs/entry-points/drag-and-drop/drag-preview.js +12 -0
  10. package/dist/cjs/entry-points/drag-and-drop/drop-indicator.js +12 -0
  11. package/dist/cjs/entry-points/drag-and-drop/group-drop-indicator.js +12 -0
  12. package/dist/cjs/entry-points/drag-and-drop/hitbox.js +18 -0
  13. package/dist/cjs/entry-points/drag-and-drop/use-menu-item-drag-and-drop.js +12 -0
  14. package/dist/cjs/entry-points/expandable-menu-item.js +33 -0
  15. package/dist/cjs/entry-points/flyout-menu-item.js +54 -0
  16. package/dist/cjs/entry-points/link-menu-item.js +19 -0
  17. package/dist/cjs/entry-points/menu-list-item.js +12 -0
  18. package/dist/cjs/entry-points/menu-list.js +12 -0
  19. package/dist/cjs/entry-points/menu-section.js +26 -0
  20. package/dist/cjs/entry-points/top-level-spacer.js +12 -0
  21. package/dist/cjs/index.js +5 -0
  22. package/dist/cjs/ui/menu-item/button-menu-item.js +66 -0
  23. package/dist/cjs/ui/menu-item/constants.js +21 -0
  24. package/dist/cjs/ui/menu-item/container-avatar.compiled.css +4 -0
  25. package/dist/cjs/ui/menu-item/container-avatar.js +34 -0
  26. package/dist/cjs/ui/menu-item/drag-and-drop/drag-preview.compiled.css +9 -0
  27. package/dist/cjs/ui/menu-item/drag-and-drop/drag-preview.js +65 -0
  28. package/dist/cjs/ui/menu-item/drag-and-drop/drop-indicator.js +12 -0
  29. package/dist/cjs/ui/menu-item/drag-and-drop/group-drop-indicator.js +12 -0
  30. package/dist/cjs/ui/menu-item/drag-and-drop/hitbox.js +18 -0
  31. package/dist/cjs/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +202 -0
  32. package/dist/cjs/ui/menu-item/drag-handle/drag-handle.compiled.css +9 -0
  33. package/dist/cjs/ui/menu-item/drag-handle/drag-handle.js +28 -0
  34. package/dist/cjs/ui/menu-item/drag-handle/lazy-drag-handle.js +20 -0
  35. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-content.compiled.css +2 -0
  36. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +50 -0
  37. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-context.js +64 -0
  38. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.js +14 -0
  39. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +14 -0
  40. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +150 -0
  41. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item.compiled.css +1 -0
  42. package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item.js +69 -0
  43. package/dist/cjs/ui/menu-item/flyout-menu-item/close-button.js +33 -0
  44. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-body.compiled.css +11 -0
  45. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-body.js +38 -0
  46. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-footer.compiled.css +5 -0
  47. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-footer.js +29 -0
  48. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-header.compiled.css +11 -0
  49. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-header.js +54 -0
  50. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-content.compiled.css +8 -0
  51. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +223 -0
  52. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-context.js +58 -0
  53. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.compiled.css +2 -0
  54. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +68 -0
  55. package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item.js +76 -0
  56. package/dist/cjs/ui/menu-item/link-menu-item.compiled.css +1 -0
  57. package/dist/cjs/ui/menu-item/link-menu-item.js +81 -0
  58. package/dist/cjs/ui/menu-item/list-item.js +30 -0
  59. package/dist/cjs/ui/menu-item/list.js +40 -0
  60. package/dist/cjs/ui/menu-item/menu-item-signals.js +11 -0
  61. package/dist/cjs/ui/menu-item/menu-item.compiled.css +101 -0
  62. package/dist/cjs/ui/menu-item/menu-item.js +394 -0
  63. package/dist/cjs/ui/menu-item/menu-list-item.js +18 -0
  64. package/dist/cjs/ui/menu-item/menu-list.js +14 -0
  65. package/dist/cjs/ui/menu-item/top-level-spacer.compiled.css +1 -0
  66. package/dist/cjs/ui/menu-item/top-level-spacer.js +46 -0
  67. package/dist/cjs/ui/menu-item/types.js +5 -0
  68. package/dist/cjs/ui/menu-item/use-scroll-menu-item-into-view.js +70 -0
  69. package/dist/cjs/ui/menu-section/divider.compiled.css +4 -0
  70. package/dist/cjs/ui/menu-section/divider.js +32 -0
  71. package/dist/cjs/ui/menu-section/menu-section-context.js +19 -0
  72. package/dist/cjs/ui/menu-section/menu-section-heading.compiled.css +4 -0
  73. package/dist/cjs/ui/menu-section/menu-section-heading.js +30 -0
  74. package/dist/cjs/ui/menu-section/menu-section.js +49 -0
  75. package/dist/es2019/entry-points/button-menu-item.js +2 -0
  76. package/dist/es2019/entry-points/container-avatar.js +1 -0
  77. package/dist/es2019/entry-points/drag-and-drop/drag-handle.js +1 -0
  78. package/dist/es2019/entry-points/drag-and-drop/drag-preview.js +1 -0
  79. package/dist/es2019/entry-points/drag-and-drop/drop-indicator.js +1 -0
  80. package/dist/es2019/entry-points/drag-and-drop/group-drop-indicator.js +1 -0
  81. package/dist/es2019/entry-points/drag-and-drop/hitbox.js +1 -0
  82. package/dist/es2019/entry-points/drag-and-drop/use-menu-item-drag-and-drop.js +1 -0
  83. package/dist/es2019/entry-points/expandable-menu-item.js +4 -0
  84. package/dist/es2019/entry-points/flyout-menu-item.js +7 -0
  85. package/dist/es2019/entry-points/link-menu-item.js +2 -0
  86. package/dist/es2019/entry-points/menu-list-item.js +1 -0
  87. package/dist/es2019/entry-points/menu-list.js +1 -0
  88. package/dist/es2019/entry-points/menu-section.js +3 -0
  89. package/dist/es2019/entry-points/top-level-spacer.js +1 -0
  90. package/dist/es2019/index.js +3 -0
  91. package/dist/es2019/ui/menu-item/button-menu-item.js +59 -0
  92. package/dist/es2019/ui/menu-item/constants.js +15 -0
  93. package/dist/es2019/ui/menu-item/container-avatar.compiled.css +4 -0
  94. package/dist/es2019/ui/menu-item/container-avatar.js +25 -0
  95. package/dist/es2019/ui/menu-item/drag-and-drop/drag-preview.compiled.css +9 -0
  96. package/dist/es2019/ui/menu-item/drag-and-drop/drag-preview.js +60 -0
  97. package/dist/es2019/ui/menu-item/drag-and-drop/drop-indicator.js +7 -0
  98. package/dist/es2019/ui/menu-item/drag-and-drop/group-drop-indicator.js +7 -0
  99. package/dist/es2019/ui/menu-item/drag-and-drop/hitbox.js +7 -0
  100. package/dist/es2019/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +192 -0
  101. package/dist/es2019/ui/menu-item/drag-handle/drag-handle.compiled.css +9 -0
  102. package/dist/es2019/ui/menu-item/drag-handle/drag-handle.js +19 -0
  103. package/dist/es2019/ui/menu-item/drag-handle/lazy-drag-handle.js +9 -0
  104. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-content.compiled.css +2 -0
  105. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +43 -0
  106. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-context.js +53 -0
  107. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.js +9 -0
  108. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +14 -0
  109. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +141 -0
  110. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item.compiled.css +1 -0
  111. package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item.js +54 -0
  112. package/dist/es2019/ui/menu-item/flyout-menu-item/close-button.js +25 -0
  113. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-body.compiled.css +11 -0
  114. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-body.js +33 -0
  115. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-footer.compiled.css +5 -0
  116. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-footer.js +24 -0
  117. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-header.compiled.css +11 -0
  118. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-header.js +47 -0
  119. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-content.compiled.css +8 -0
  120. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +211 -0
  121. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-context.js +45 -0
  122. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.compiled.css +2 -0
  123. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +57 -0
  124. package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item.js +61 -0
  125. package/dist/es2019/ui/menu-item/link-menu-item.compiled.css +1 -0
  126. package/dist/es2019/ui/menu-item/link-menu-item.js +73 -0
  127. package/dist/es2019/ui/menu-item/list-item.js +23 -0
  128. package/dist/es2019/ui/menu-item/list.js +33 -0
  129. package/dist/es2019/ui/menu-item/menu-item-signals.js +5 -0
  130. package/dist/es2019/ui/menu-item/menu-item.compiled.css +101 -0
  131. package/dist/es2019/ui/menu-item/menu-item.js +383 -0
  132. package/dist/es2019/ui/menu-item/menu-list-item.js +12 -0
  133. package/dist/es2019/ui/menu-item/menu-list.js +9 -0
  134. package/dist/es2019/ui/menu-item/top-level-spacer.compiled.css +1 -0
  135. package/dist/es2019/ui/menu-item/top-level-spacer.js +38 -0
  136. package/dist/es2019/ui/menu-item/types.js +1 -0
  137. package/dist/es2019/ui/menu-item/use-scroll-menu-item-into-view.js +64 -0
  138. package/dist/es2019/ui/menu-section/divider.compiled.css +4 -0
  139. package/dist/es2019/ui/menu-section/divider.js +22 -0
  140. package/dist/es2019/ui/menu-section/menu-section-context.js +13 -0
  141. package/dist/es2019/ui/menu-section/menu-section-heading.compiled.css +4 -0
  142. package/dist/es2019/ui/menu-section/menu-section-heading.js +23 -0
  143. package/dist/es2019/ui/menu-section/menu-section.js +42 -0
  144. package/dist/esm/entry-points/button-menu-item.js +2 -0
  145. package/dist/esm/entry-points/container-avatar.js +1 -0
  146. package/dist/esm/entry-points/drag-and-drop/drag-handle.js +1 -0
  147. package/dist/esm/entry-points/drag-and-drop/drag-preview.js +1 -0
  148. package/dist/esm/entry-points/drag-and-drop/drop-indicator.js +1 -0
  149. package/dist/esm/entry-points/drag-and-drop/group-drop-indicator.js +1 -0
  150. package/dist/esm/entry-points/drag-and-drop/hitbox.js +1 -0
  151. package/dist/esm/entry-points/drag-and-drop/use-menu-item-drag-and-drop.js +1 -0
  152. package/dist/esm/entry-points/expandable-menu-item.js +4 -0
  153. package/dist/esm/entry-points/flyout-menu-item.js +7 -0
  154. package/dist/esm/entry-points/link-menu-item.js +2 -0
  155. package/dist/esm/entry-points/menu-list-item.js +1 -0
  156. package/dist/esm/entry-points/menu-list.js +1 -0
  157. package/dist/esm/entry-points/menu-section.js +3 -0
  158. package/dist/esm/entry-points/top-level-spacer.js +1 -0
  159. package/dist/esm/index.js +3 -0
  160. package/dist/esm/ui/menu-item/button-menu-item.js +58 -0
  161. package/dist/esm/ui/menu-item/constants.js +15 -0
  162. package/dist/esm/ui/menu-item/container-avatar.compiled.css +4 -0
  163. package/dist/esm/ui/menu-item/container-avatar.js +26 -0
  164. package/dist/esm/ui/menu-item/drag-and-drop/drag-preview.compiled.css +9 -0
  165. package/dist/esm/ui/menu-item/drag-and-drop/drag-preview.js +58 -0
  166. package/dist/esm/ui/menu-item/drag-and-drop/drop-indicator.js +7 -0
  167. package/dist/esm/ui/menu-item/drag-and-drop/group-drop-indicator.js +7 -0
  168. package/dist/esm/ui/menu-item/drag-and-drop/hitbox.js +7 -0
  169. package/dist/esm/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +193 -0
  170. package/dist/esm/ui/menu-item/drag-handle/drag-handle.compiled.css +9 -0
  171. package/dist/esm/ui/menu-item/drag-handle/drag-handle.js +19 -0
  172. package/dist/esm/ui/menu-item/drag-handle/lazy-drag-handle.js +11 -0
  173. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-content.compiled.css +2 -0
  174. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +42 -0
  175. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-context.js +57 -0
  176. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.js +9 -0
  177. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +14 -0
  178. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +141 -0
  179. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item.compiled.css +1 -0
  180. package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item.js +60 -0
  181. package/dist/esm/ui/menu-item/flyout-menu-item/close-button.js +26 -0
  182. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-body.compiled.css +11 -0
  183. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-body.js +31 -0
  184. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-footer.compiled.css +5 -0
  185. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-footer.js +22 -0
  186. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-header.compiled.css +11 -0
  187. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-header.js +45 -0
  188. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-content.compiled.css +8 -0
  189. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +214 -0
  190. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-context.js +51 -0
  191. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.compiled.css +2 -0
  192. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +59 -0
  193. package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item.js +67 -0
  194. package/dist/esm/ui/menu-item/link-menu-item.compiled.css +1 -0
  195. package/dist/esm/ui/menu-item/link-menu-item.js +72 -0
  196. package/dist/esm/ui/menu-item/list-item.js +22 -0
  197. package/dist/esm/ui/menu-item/list.js +32 -0
  198. package/dist/esm/ui/menu-item/menu-item-signals.js +5 -0
  199. package/dist/esm/ui/menu-item/menu-item.compiled.css +101 -0
  200. package/dist/esm/ui/menu-item/menu-item.js +385 -0
  201. package/dist/esm/ui/menu-item/menu-list-item.js +12 -0
  202. package/dist/esm/ui/menu-item/menu-list.js +9 -0
  203. package/dist/esm/ui/menu-item/top-level-spacer.compiled.css +1 -0
  204. package/dist/esm/ui/menu-item/top-level-spacer.js +38 -0
  205. package/dist/esm/ui/menu-item/types.js +1 -0
  206. package/dist/esm/ui/menu-item/use-scroll-menu-item-into-view.js +63 -0
  207. package/dist/esm/ui/menu-section/divider.compiled.css +4 -0
  208. package/dist/esm/ui/menu-section/divider.js +24 -0
  209. package/dist/esm/ui/menu-section/menu-section-context.js +13 -0
  210. package/dist/esm/ui/menu-section/menu-section-heading.compiled.css +4 -0
  211. package/dist/esm/ui/menu-section/menu-section-heading.js +22 -0
  212. package/dist/esm/ui/menu-section/menu-section.js +42 -0
  213. package/dist/types/entry-points/button-menu-item.d.ts +3 -0
  214. package/dist/types/entry-points/container-avatar.d.ts +1 -0
  215. package/dist/types/entry-points/drag-and-drop/drag-handle.d.ts +1 -0
  216. package/dist/types/entry-points/drag-and-drop/drag-preview.d.ts +1 -0
  217. package/dist/types/entry-points/drag-and-drop/drop-indicator.d.ts +1 -0
  218. package/dist/types/entry-points/drag-and-drop/group-drop-indicator.d.ts +1 -0
  219. package/dist/types/entry-points/drag-and-drop/hitbox.d.ts +1 -0
  220. package/dist/types/entry-points/drag-and-drop/use-menu-item-drag-and-drop.d.ts +1 -0
  221. package/dist/types/entry-points/expandable-menu-item.d.ts +4 -0
  222. package/dist/types/entry-points/flyout-menu-item.d.ts +7 -0
  223. package/dist/types/entry-points/link-menu-item.d.ts +3 -0
  224. package/dist/types/entry-points/menu-list-item.d.ts +1 -0
  225. package/dist/types/entry-points/menu-list.d.ts +1 -0
  226. package/dist/types/entry-points/menu-section.d.ts +3 -0
  227. package/dist/types/entry-points/top-level-spacer.d.ts +1 -0
  228. package/dist/types/index.d.ts +1 -0
  229. package/dist/types/ui/menu-item/button-menu-item.d.ts +42 -0
  230. package/dist/types/ui/menu-item/constants.d.ts +15 -0
  231. package/dist/types/ui/menu-item/container-avatar.d.ts +18 -0
  232. package/dist/types/ui/menu-item/drag-and-drop/drag-preview.d.ts +24 -0
  233. package/dist/types/ui/menu-item/drag-and-drop/drop-indicator.d.ts +6 -0
  234. package/dist/types/ui/menu-item/drag-and-drop/group-drop-indicator.d.ts +6 -0
  235. package/dist/types/ui/menu-item/drag-and-drop/hitbox.d.ts +6 -0
  236. package/dist/types/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.d.ts +62 -0
  237. package/dist/types/ui/menu-item/drag-handle/drag-handle.d.ts +6 -0
  238. package/dist/types/ui/menu-item/drag-handle/lazy-drag-handle.d.ts +4 -0
  239. package/dist/types/ui/menu-item/expandable-menu-item/expandable-menu-item-content.d.ts +17 -0
  240. package/dist/types/ui/menu-item/expandable-menu-item/expandable-menu-item-context.d.ts +36 -0
  241. package/dist/types/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.d.ts +4 -0
  242. package/dist/types/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.d.ts +65 -0
  243. package/dist/types/ui/menu-item/expandable-menu-item/expandable-menu-item.d.ts +65 -0
  244. package/dist/types/ui/menu-item/flyout-menu-item/close-button.d.ts +34 -0
  245. package/dist/types/ui/menu-item/flyout-menu-item/flyout-body.d.ts +38 -0
  246. package/dist/types/ui/menu-item/flyout-menu-item/flyout-footer.d.ts +25 -0
  247. package/dist/types/ui/menu-item/flyout-menu-item/flyout-header.d.ts +35 -0
  248. package/dist/types/ui/menu-item/flyout-menu-item/flyout-menu-item-content.d.ts +39 -0
  249. package/dist/types/ui/menu-item/flyout-menu-item/flyout-menu-item-context.d.ts +38 -0
  250. package/dist/types/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.d.ts +46 -0
  251. package/dist/types/ui/menu-item/flyout-menu-item/flyout-menu-item.d.ts +52 -0
  252. package/dist/types/ui/menu-item/link-menu-item.d.ts +22 -0
  253. package/dist/types/ui/menu-item/list-item.d.ts +27 -0
  254. package/dist/types/ui/menu-item/list.d.ts +28 -0
  255. package/dist/types/ui/menu-item/menu-item-signals.d.ts +6 -0
  256. package/dist/types/ui/menu-item/menu-item.d.ts +51 -0
  257. package/dist/types/ui/menu-item/menu-list-item.d.ts +11 -0
  258. package/dist/types/ui/menu-item/menu-list.d.ts +8 -0
  259. package/dist/types/ui/menu-item/top-level-spacer.d.ts +20 -0
  260. package/dist/types/ui/menu-item/types.d.ts +164 -0
  261. package/dist/types/ui/menu-item/use-scroll-menu-item-into-view.d.ts +12 -0
  262. package/dist/types/ui/menu-section/divider.d.ts +6 -0
  263. package/dist/types/ui/menu-section/menu-section-context.d.ts +6 -0
  264. package/dist/types/ui/menu-section/menu-section-heading.d.ts +16 -0
  265. package/dist/types/ui/menu-section/menu-section.d.ts +41 -0
  266. package/dist/types-ts4.5/entry-points/button-menu-item.d.ts +3 -0
  267. package/dist/types-ts4.5/entry-points/container-avatar.d.ts +1 -0
  268. package/dist/types-ts4.5/entry-points/drag-and-drop/drag-handle.d.ts +1 -0
  269. package/dist/types-ts4.5/entry-points/drag-and-drop/drag-preview.d.ts +1 -0
  270. package/dist/types-ts4.5/entry-points/drag-and-drop/drop-indicator.d.ts +1 -0
  271. package/dist/types-ts4.5/entry-points/drag-and-drop/group-drop-indicator.d.ts +1 -0
  272. package/dist/types-ts4.5/entry-points/drag-and-drop/hitbox.d.ts +1 -0
  273. package/dist/types-ts4.5/entry-points/drag-and-drop/use-menu-item-drag-and-drop.d.ts +1 -0
  274. package/dist/types-ts4.5/entry-points/expandable-menu-item.d.ts +4 -0
  275. package/dist/types-ts4.5/entry-points/flyout-menu-item.d.ts +7 -0
  276. package/dist/types-ts4.5/entry-points/link-menu-item.d.ts +3 -0
  277. package/dist/types-ts4.5/entry-points/menu-list-item.d.ts +1 -0
  278. package/dist/types-ts4.5/entry-points/menu-list.d.ts +1 -0
  279. package/dist/types-ts4.5/entry-points/menu-section.d.ts +3 -0
  280. package/dist/types-ts4.5/entry-points/top-level-spacer.d.ts +1 -0
  281. package/dist/types-ts4.5/index.d.ts +1 -0
  282. package/dist/types-ts4.5/ui/menu-item/button-menu-item.d.ts +42 -0
  283. package/dist/types-ts4.5/ui/menu-item/constants.d.ts +15 -0
  284. package/dist/types-ts4.5/ui/menu-item/container-avatar.d.ts +18 -0
  285. package/dist/types-ts4.5/ui/menu-item/drag-and-drop/drag-preview.d.ts +24 -0
  286. package/dist/types-ts4.5/ui/menu-item/drag-and-drop/drop-indicator.d.ts +6 -0
  287. package/dist/types-ts4.5/ui/menu-item/drag-and-drop/group-drop-indicator.d.ts +6 -0
  288. package/dist/types-ts4.5/ui/menu-item/drag-and-drop/hitbox.d.ts +6 -0
  289. package/dist/types-ts4.5/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.d.ts +62 -0
  290. package/dist/types-ts4.5/ui/menu-item/drag-handle/drag-handle.d.ts +6 -0
  291. package/dist/types-ts4.5/ui/menu-item/drag-handle/lazy-drag-handle.d.ts +4 -0
  292. package/dist/types-ts4.5/ui/menu-item/expandable-menu-item/expandable-menu-item-content.d.ts +17 -0
  293. package/dist/types-ts4.5/ui/menu-item/expandable-menu-item/expandable-menu-item-context.d.ts +36 -0
  294. package/dist/types-ts4.5/ui/menu-item/expandable-menu-item/expandable-menu-item-level-context.d.ts +4 -0
  295. package/dist/types-ts4.5/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.d.ts +65 -0
  296. package/dist/types-ts4.5/ui/menu-item/expandable-menu-item/expandable-menu-item.d.ts +65 -0
  297. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/close-button.d.ts +34 -0
  298. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-body.d.ts +38 -0
  299. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-footer.d.ts +25 -0
  300. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-header.d.ts +35 -0
  301. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-menu-item-content.d.ts +39 -0
  302. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-menu-item-context.d.ts +38 -0
  303. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.d.ts +46 -0
  304. package/dist/types-ts4.5/ui/menu-item/flyout-menu-item/flyout-menu-item.d.ts +52 -0
  305. package/dist/types-ts4.5/ui/menu-item/link-menu-item.d.ts +22 -0
  306. package/dist/types-ts4.5/ui/menu-item/list-item.d.ts +27 -0
  307. package/dist/types-ts4.5/ui/menu-item/list.d.ts +28 -0
  308. package/dist/types-ts4.5/ui/menu-item/menu-item-signals.d.ts +6 -0
  309. package/dist/types-ts4.5/ui/menu-item/menu-item.d.ts +51 -0
  310. package/dist/types-ts4.5/ui/menu-item/menu-list-item.d.ts +11 -0
  311. package/dist/types-ts4.5/ui/menu-item/menu-list.d.ts +8 -0
  312. package/dist/types-ts4.5/ui/menu-item/top-level-spacer.d.ts +20 -0
  313. package/dist/types-ts4.5/ui/menu-item/types.d.ts +164 -0
  314. package/dist/types-ts4.5/ui/menu-item/use-scroll-menu-item-into-view.d.ts +12 -0
  315. package/dist/types-ts4.5/ui/menu-section/divider.d.ts +6 -0
  316. package/dist/types-ts4.5/ui/menu-section/menu-section-context.d.ts +6 -0
  317. package/dist/types-ts4.5/ui/menu-section/menu-section-heading.d.ts +16 -0
  318. package/dist/types-ts4.5/ui/menu-section/menu-section.d.ts +41 -0
  319. package/drag-and-drop/drag-handle/package.json +17 -0
  320. package/drag-and-drop/drag-preview/package.json +17 -0
  321. package/drag-and-drop/drop-indicator/package.json +17 -0
  322. package/drag-and-drop/group-drop-indicator/package.json +17 -0
  323. package/drag-and-drop/hitbox/package.json +17 -0
  324. package/drag-and-drop/use-menu-item-drag-and-drop/package.json +17 -0
  325. package/expandable-menu-item/package.json +17 -0
  326. package/flyout-menu-item/package.json +17 -0
  327. package/link-menu-item/package.json +17 -0
  328. package/menu-list/package.json +17 -0
  329. package/menu-list-item/package.json +17 -0
  330. package/menu-section/package.json +17 -0
  331. package/package.json +121 -0
  332. package/top-level-spacer/package.json +17 -0
@@ -0,0 +1,11 @@
1
+
2
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
3
+ ._zulppxbi{gap:var(--ds-space-200,1pc)}._1bah1yb4{justify-content:space-between}
4
+ ._1bsb1osq{width:100%}
5
+ ._1e0c1txw{display:flex}
6
+ ._2lx21bp4{flex-direction:column}
7
+ ._2lx21sbv{flex-direction:row-reverse}
8
+ ._4cvr1h6o{align-items:center}
9
+ ._85i512x7{padding-block-end:var(--ds-space-075,6px)}
10
+ ._bozg1b66{padding-inline-start:var(--ds-space-050,4px)}
11
+ ._bozgv77o{padding-inline-start:var(--ds-space-025,2px)}
@@ -0,0 +1,47 @@
1
+ /* flyout-header.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./flyout-header.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React, { useCallback, useContext } from 'react';
5
+ import Heading from '@atlaskit/heading';
6
+ import { Flex } from '@atlaskit/primitives/compiled';
7
+ import { CloseButton } from './close-button';
8
+ import { OnCloseContext, useTitleId } from './flyout-menu-item-context';
9
+ const headerStyles = {
10
+ root: "_zulp12x7 _bozg1b66 _85i512x7 _1e0c1txw _2lx21bp4",
11
+ flex: "_zulppxbi _1bah1yb4 _2lx21sbv _4cvr1h6o _1bsb1osq _bozgv77o"
12
+ };
13
+ /**
14
+ * __FlyoutHeader__
15
+ *
16
+ * The header section of a flyout menu. This component displays the title, and
17
+ * close button, as well as any other provided actions relevant to the menu.
18
+ * This component should be placed first within the FlyoutMenuItemContent.
19
+ */
20
+ export const FlyoutHeader = props => {
21
+ const {
22
+ children,
23
+ testId,
24
+ title,
25
+ closeButtonLabel
26
+ } = props;
27
+ const id = useTitleId();
28
+ const onCloseRef = useContext(OnCloseContext);
29
+ const handleClose = useCallback(event => {
30
+ var _onCloseRef$current;
31
+ (_onCloseRef$current = onCloseRef.current) === null || _onCloseRef$current === void 0 ? void 0 : _onCloseRef$current.call(onCloseRef, event, 'close-button');
32
+ }, [onCloseRef]);
33
+ return /*#__PURE__*/React.createElement("div", {
34
+ "data-testid": testId,
35
+ className: ax([headerStyles.root])
36
+ }, /*#__PURE__*/React.createElement(Flex, {
37
+ xcss: headerStyles.flex
38
+ }, /*#__PURE__*/React.createElement(CloseButton, {
39
+ label: closeButtonLabel,
40
+ onClick: handleClose,
41
+ testId: testId && `${testId}--close-button`
42
+ }), /*#__PURE__*/React.createElement(Heading, {
43
+ size: "xsmall",
44
+ as: "h2",
45
+ id: id
46
+ }, title)), children);
47
+ };
@@ -0,0 +1,8 @@
1
+ ._1e0c1txw{display:flex}
2
+ ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
3
+ ._2lx21bp4{flex-direction:column}
4
+ ._4t3i1osq{height:100%}
5
+ ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
6
+ ._bozgu2gc{padding-inline-start:var(--ds-space-100,8px)}
7
+ ._y4tiu2gc{padding-inline-end:var(--ds-space-100,8px)}
8
+ @media (min-width:48rem){._14b51kdj{width:25pc}}
@@ -0,0 +1,211 @@
1
+ /* flyout-menu-item-content.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./flyout-menu-item-content.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React, { forwardRef, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from 'react';
5
+ import { useAnalyticsEvents } from '@atlaskit/analytics-next';
6
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
7
+ import { fg } from '@atlaskit/platform-feature-flags';
8
+ import { PopupContent } from '@atlaskit/popup/experimental';
9
+ import { OnCloseContext, SetIsOpenContext, TitleIdContextProvider } from './flyout-menu-item-context';
10
+ /**
11
+ * The vertical offset in px to ensure the flyout container does not exceed the bounds of
12
+ * the window. This matches the padding of the content container, and it's position within
13
+ * the viewport.
14
+ *
15
+ * - FlyoutMenuItemContent: paddingBlock: token('space.100'); – 8px top, 8px bottom
16
+ * - Position: 5px top, 5px bottom
17
+ *
18
+ * Total vertical padding:
19
+ * (8px [content top] + 8px [content bottom]) +
20
+ * (5px [position top] + 5px [position bottom]) = 26px
21
+ */
22
+ const FLYOUT_MENU_VERTICAL_OFFSET_PX = 26;
23
+
24
+ /**
25
+ * The maximum height of the flyout menu in pixels, following the Confluence standard maximum
26
+ * height of 760px.
27
+ */
28
+ const FLYOUT_MENU_MAX_HEIGHT_PX = 760;
29
+ const flyoutMenuItemContentStyles = {
30
+ root: "_1q51u2gc _85i5u2gc _bozgu2gc _y4tiu2gc _14b51kdj"
31
+ };
32
+ const flyoutMenuItemContentContainerStyles = {
33
+ container: "_1e0c1txw _4t3i1osq _2lx21bp4"
34
+ };
35
+ /**
36
+ * __FlyoutMenuItemContent__
37
+ *
38
+ * The content that appears when the flyout menu is open.
39
+ */
40
+ export const FlyoutMenuItemContent = /*#__PURE__*/forwardRef(({
41
+ children,
42
+ containerTestId,
43
+ onClose,
44
+ autoFocus,
45
+ maxHeight = FLYOUT_MENU_MAX_HEIGHT_PX
46
+ }, forwardedRef) => {
47
+ const setIsOpen = useContext(SetIsOpenContext);
48
+ const onCloseRef = useContext(OnCloseContext);
49
+ const {
50
+ createAnalyticsEvent
51
+ } = useAnalyticsEvents();
52
+
53
+ // The source of the close is not accessible to the consumer, it is determined within the
54
+ // handleClose function, or passed in as a parameter in FlyoutMenuItemTrigger (outside-click),
55
+ // or FlyoutHeader (close-button).
56
+ const handleClose = useCallback((event, source) => {
57
+ if (fg("platform_dst_nav4_flyout_menu_slots_close_button")) {
58
+ // Use the passed source if provided, otherwise determine from event
59
+ let determinedSource = source || 'other';
60
+ if (!source) {
61
+ if (event instanceof KeyboardEvent) {
62
+ const keyboardEvent = event;
63
+ if (keyboardEvent.key === 'Escape' || keyboardEvent.key === 'Esc') {
64
+ determinedSource = 'escape-key';
65
+ }
66
+ } else if (event instanceof MouseEvent) {
67
+ if (event && 'type' in event && event.type === 'click') {
68
+ determinedSource = 'outside-click';
69
+ }
70
+ }
71
+ }
72
+
73
+ // When flyout menu is closed, fire analytics event
74
+ const navigationAnalyticsEvent = createAnalyticsEvent({
75
+ source: 'sideNav',
76
+ actionSubject: 'flyoutMenu',
77
+ action: 'closed',
78
+ attributes: {
79
+ closeSource: determinedSource
80
+ }
81
+ });
82
+ navigationAnalyticsEvent.fire('navigation');
83
+ }
84
+ onClose === null || onClose === void 0 ? void 0 : onClose();
85
+ setIsOpen(false);
86
+ }, [setIsOpen, onClose, createAnalyticsEvent]);
87
+
88
+ // Register handleClose in the ref to allow the FlyoutMenuItemTrigger to access it
89
+ useEffect(() => {
90
+ onCloseRef.current = handleClose;
91
+ }, [handleClose, onCloseRef]);
92
+ const titleId = useId();
93
+ const computedMaxHeight = useMemo(() => `min(
94
+ calc(100vh - ${FLYOUT_MENU_VERTICAL_OFFSET_PX}px),
95
+ ${maxHeight}px
96
+ )`, [maxHeight]);
97
+ return /*#__PURE__*/React.createElement(PopupContent, {
98
+ appearance: "UNSAFE_modal-below-sm",
99
+ onClose: handleClose,
100
+ placement: "right-start"
101
+ // Using a capture event listener so that we are more resilient against
102
+ // code that stops events. We _really_ want to close the flyout whenever
103
+ // user user clicks outside the flyout content
104
+ ,
105
+ shouldUseCaptureOnOutsideClick: true,
106
+ shouldFitViewport: true,
107
+ testId: containerTestId,
108
+ xcss: flyoutMenuItemContentStyles.root,
109
+ autoFocus: autoFocus,
110
+ role: fg("platform_dst_nav4_flyout_menu_slots_close_button") ? "dialog" : undefined,
111
+ titleId: fg("platform_dst_nav4_flyout_menu_slots_close_button") ? titleId : undefined
112
+ /**
113
+ * Disabling GPU acceleration removes the use of `transform` by popper.js for this popup.
114
+ *
115
+ * This allows makers to use popups with `shouldRenderToParent` inside the flyout.
116
+ *
117
+ * Without this, the `transform` makes the flyout the containing element for fixed positioning.
118
+ * Because the flyout is also a scroll container then any nested, layered element is unable to
119
+ * escape the flyout.
120
+ *
121
+ * Disabling the `transform` is the simplest way to resolve this layering issue,
122
+ * and should have negligible performance impacts, because the flyout menus should rarely
123
+ * need to be repositioned.
124
+ */,
125
+ shouldDisableGpuAcceleration: true,
126
+ shouldRenderToParent: fg('platform_dst_nav4_flyoutmenuitem_render_to_parent')
127
+ }, ({
128
+ update
129
+ }) => /*#__PURE__*/React.createElement(UpdatePopperOnContentResize, {
130
+ ref: forwardedRef,
131
+ update: update
132
+ }, fg("platform_dst_nav4_flyout_menu_slots_close_button") ? /*#__PURE__*/React.createElement(TitleIdContextProvider, {
133
+ value: titleId
134
+ }, /*#__PURE__*/React.createElement("div", {
135
+ style: {
136
+ maxHeight: computedMaxHeight
137
+ },
138
+ "data-testid": containerTestId ? `${containerTestId}--container` : undefined,
139
+ className: ax([flyoutMenuItemContentContainerStyles.container])
140
+ }, children)) : children));
141
+ });
142
+ function createResizeObserver(update) {
143
+ return new ResizeObserver(update);
144
+ }
145
+
146
+ /**
147
+ * Will call the Popper.js `update()` method to recalculate positioning, when the flyout menu changes size.
148
+ * This is the size of the scroll container, NOT the scroll content.
149
+ *
150
+ * We could potentially bake this into `@atlaskit/popup` or `@atlaskit/popper` but there are a few
151
+ * reasons to keep it scoped to flyout menus for now:
152
+ *
153
+ * 1. It's easier to unwind
154
+ * 2. We've only had bug reports for flyout menus
155
+ * 3. Popup exposes the `update` function so consumers can already do this themselves if necessary
156
+ * 4. Flyout menus are a lot more restricted to other popups, it might not make sense more generally
157
+ */
158
+ const UpdatePopperOnContentResize = /*#__PURE__*/forwardRef(({
159
+ update,
160
+ children
161
+ }, forwardedRef) => {
162
+ /**
163
+ * Storing our `update` function in a ref so that we have a stable reference to it.
164
+ * We need this because our `ResizeObserver` callback cannot be changed after creating it.
165
+ */
166
+ const updateRef = useRef(update);
167
+ useEffect(() => {
168
+ updateRef.current = update;
169
+ }, [update]);
170
+
171
+ /**
172
+ * Stable function that calls the latest `update` function by calling it through the stable ref.
173
+ */
174
+ const triggerUpdate = useCallback(() => {
175
+ var _updateRef$current;
176
+ (_updateRef$current = updateRef.current) === null || _updateRef$current === void 0 ? void 0 : _updateRef$current.call(updateRef);
177
+ }, []);
178
+ const [resizeObserver] = useState(() => createResizeObserver(triggerUpdate));
179
+
180
+ /**
181
+ * This is a callback ref that will update which `HTMLElement` we are observing,
182
+ * if or when the underlying `HTMLElement` changes or unmounts.
183
+ */
184
+ const observeCallbackRef = useCallback(element => {
185
+ /**
186
+ * Unobserves all observed elements.
187
+ * Allows us to cleanup without needing to store a reference to the previous element.
188
+ */
189
+ resizeObserver.disconnect();
190
+ if (!element) {
191
+ return;
192
+ }
193
+ resizeObserver.observe(element);
194
+ }, [resizeObserver]);
195
+
196
+ /**
197
+ * We need to memoize the ref otherwise `triggerUpdate` is repeatedly called.
198
+ *
199
+ * This stems from ResizeObserver firing once after calling `.observe()` even if there
200
+ * was no resize.
201
+ *
202
+ * Without memoizing the ref, the update causes a rerender, which causes the ref to
203
+ * get recreated, which triggers an update and so on in a loop.
204
+ */
205
+ const ref = useMemo(() => {
206
+ return mergeRefs([forwardedRef, observeCallbackRef]);
207
+ }, [forwardedRef, observeCallbackRef]);
208
+ return /*#__PURE__*/React.createElement("div", {
209
+ ref: ref
210
+ }, children);
211
+ });
@@ -0,0 +1,45 @@
1
+ import { createContext, useContext } from 'react';
2
+ import noop from '@atlaskit/ds-lib/noop';
3
+ /**
4
+ * __Is open context__
5
+ *
6
+ * A context for storing the isOpen value of the FlyoutMenuItem.
7
+ */
8
+ export const IsOpenContext = /*#__PURE__*/createContext(false);
9
+
10
+ /**
11
+ * __Set is open context__
12
+ *
13
+ * A context for storing a function that sets isOpen value of the FlyoutMenuItem.
14
+ */
15
+ export const SetIsOpenContext = /*#__PURE__*/createContext(noop);
16
+ export const useFlyoutMenuOpen = () => useContext(IsOpenContext);
17
+ export const useSetFlyoutMenuOpen = () => useContext(SetIsOpenContext);
18
+
19
+ /**
20
+ * __On close context__
21
+ *
22
+ * A context for storing a ref to the onClose handler with source information.This
23
+ * is used by FlyoutMenuItemContent, FlyoutMenuItemTrigger and FlyoutHeader to store
24
+ * the on close function and source information for closing the flyout menu.
25
+ */
26
+ export const OnCloseContext = /*#__PURE__*/createContext({
27
+ current: null
28
+ });
29
+
30
+ /**
31
+ * __Title id context__
32
+ *
33
+ * A context for storing the title id of the FlyoutMenuItem that is displayed in
34
+ * FlyoutHeader, and used as the aria-labelledby on the FlyoutMenuItemContent
35
+ * container.
36
+ */
37
+ export const TitleIdContext = /*#__PURE__*/createContext(undefined);
38
+ export const useTitleId = () => useContext(TitleIdContext);
39
+
40
+ /**
41
+ * __Title id provider__
42
+ *
43
+ * A context provider for supplying the title id to the FlyoutHeader.
44
+ */
45
+ export const TitleIdContextProvider = TitleIdContext.Provider;
@@ -0,0 +1,2 @@
1
+ ._18zr12x7{padding-inline:var(--ds-space-075,6px)}
2
+ [dir=rtl] ._1tz3r0mg{transform:scaleX(-1)}
@@ -0,0 +1,57 @@
1
+ /* flyout-menu-item-trigger.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./flyout-menu-item-trigger.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { forwardRef } from 'react';
6
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
7
+ import ChevronRightIcon from '@atlaskit/icon/core/chevron-right';
8
+ import { PopupTrigger } from '@atlaskit/popup/experimental';
9
+ import { MenuItemBase } from '../menu-item';
10
+ const elemAfterStyles = {
11
+ root: "_18zr12x7 _1tz3r0mg"
12
+ };
13
+ /**
14
+ * __FlyoutMenuItemTrigger__
15
+ *
16
+ * The button that toggles the flyout menu.
17
+ */
18
+ export const FlyoutMenuItemTrigger = /*#__PURE__*/forwardRef(({
19
+ children,
20
+ elemBefore,
21
+ onClick,
22
+ isSelected,
23
+ interactionName,
24
+ testId,
25
+ isContentTooltipDisabled,
26
+ visualContentRef,
27
+ isDragging,
28
+ hasDragIndicator,
29
+ dropIndicator
30
+ }, forwardedRef) => /*#__PURE__*/React.createElement(PopupTrigger, null, ({
31
+ ref,
32
+ 'aria-controls': ariaControls,
33
+ 'aria-expanded': ariaExpanded,
34
+ 'aria-haspopup': ariaHasPopup
35
+ }) => /*#__PURE__*/React.createElement(MenuItemBase, {
36
+ testId: testId,
37
+ ref: mergeRefs([ref, forwardedRef]),
38
+ visualContentRef: visualContentRef,
39
+ elemBefore: elemBefore,
40
+ elemAfter: /*#__PURE__*/React.createElement("div", {
41
+ className: ax([elemAfterStyles.root])
42
+ }, /*#__PURE__*/React.createElement(ChevronRightIcon, {
43
+ label: "",
44
+ color: "currentColor",
45
+ size: "small"
46
+ })),
47
+ onClick: onClick,
48
+ ariaControls: ariaControls,
49
+ ariaExpanded: ariaExpanded,
50
+ ariaHasPopup: ariaHasPopup,
51
+ interactionName: interactionName,
52
+ isContentTooltipDisabled: isContentTooltipDisabled,
53
+ isSelected: isSelected,
54
+ isDragging: isDragging,
55
+ hasDragIndicator: hasDragIndicator,
56
+ dropIndicator: dropIndicator
57
+ }, children)));
@@ -0,0 +1,61 @@
1
+ import React, { forwardRef, useEffect } from 'react';
2
+ import useControlled from '@atlaskit/ds-lib/use-controlled';
3
+ import usePreviousValue from '@atlaskit/ds-lib/use-previous-value';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
5
+ import { Popup } from '@atlaskit/popup/experimental';
6
+ import { MenuListItem } from '../menu-list-item';
7
+ import { IsOpenContext, SetIsOpenContext } from './flyout-menu-item-context';
8
+ /**
9
+ * __FlyoutMenuItem__
10
+ *
11
+ * Displays content in a flyout menu, triggered by a button.
12
+ *
13
+ * The top-level component that contains the trigger and content of a flyout menu.
14
+ *
15
+ * Usage example:
16
+ * ```tsx
17
+ * <FlyoutMenuItem>
18
+ * <FlyoutMenuItemTrigger>Trigger</FlyoutMenuItemTrigger>
19
+ * <FlyoutMenuItemContent>
20
+ * <MenuList>
21
+ * <ButtonMenuItem>Item 1</ButtonMenuItem>
22
+ * <ButtonMenuItem>Item 2</ButtonMenuItem>
23
+ * </MenuList>
24
+ * </FlyoutMenuItemContent>
25
+ * </FlyoutMenuItem>
26
+ * ```
27
+ */
28
+ export const FlyoutMenuItem = /*#__PURE__*/forwardRef(({
29
+ children,
30
+ id,
31
+ isOpen: isOpenControlled,
32
+ isDefaultOpen = false,
33
+ onOpenChange
34
+ }, forwardedRef) => {
35
+ const [isOpen, setIsOpen] = useControlled(isOpenControlled, () => isDefaultOpen);
36
+ const previousIsOpen = usePreviousValue(isOpen);
37
+ useEffect(() => {
38
+ if (previousIsOpen === undefined || previousIsOpen === isOpen) {
39
+ /**
40
+ * The previous value is `undefined` on initialization, so if it is `undefined` then the value hasn't changed.
41
+ *
42
+ * The previous value can be equal to the current one if the component re-renders due to something else changing.
43
+ *
44
+ * In both cases the value hasn't changed and we don't want to notify consumers.
45
+ */
46
+ return;
47
+ }
48
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpen);
49
+ }, [isOpen, onOpenChange, previousIsOpen]);
50
+ return /*#__PURE__*/React.createElement(IsOpenContext.Provider, {
51
+ value: isOpen
52
+ }, /*#__PURE__*/React.createElement(SetIsOpenContext.Provider, {
53
+ value: setIsOpen
54
+ }, /*#__PURE__*/React.createElement(MenuListItem, {
55
+ ref: forwardedRef
56
+ }, /*#__PURE__*/React.createElement(Popup, {
57
+ id: id,
58
+ isOpen: isOpen,
59
+ role: fg('platform_dst_nav4_flyout_menu_slots_close_button') ? 'dialog' : undefined
60
+ }, children))));
61
+ });
@@ -0,0 +1 @@
1
+ ._10m98stt{scroll-margin-inline:750pt}
@@ -0,0 +1,73 @@
1
+ /* link-menu-item.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./link-menu-item.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { useMemo, useRef } from 'react';
6
+ import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
7
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
8
+ import { ListItem } from './list-item';
9
+ import { MenuItemBase } from './menu-item';
10
+ import { useScrollMenuItemIntoView } from './use-scroll-menu-item-into-view';
11
+ const listItemStyles = {
12
+ root: "_10m98stt"
13
+ };
14
+ const LinkMenuItemNoRef = ({
15
+ testId,
16
+ actions,
17
+ children,
18
+ description,
19
+ elemAfter,
20
+ elemBefore,
21
+ href,
22
+ target,
23
+ actionsOnHover,
24
+ isSelected,
25
+ onClick,
26
+ interactionName,
27
+ isContentTooltipDisabled,
28
+ visualContentRef,
29
+ listItemRef,
30
+ isDragging,
31
+ hasDragIndicator,
32
+ dropIndicator
33
+ }, forwardedRef) => {
34
+ const itemRef = useRef(null);
35
+ useScrollMenuItemIntoView({
36
+ elementRef: itemRef,
37
+ isSelected: isSelected !== null && isSelected !== void 0 ? isSelected : false
38
+ });
39
+ const ref = useMemo(() => {
40
+ return mergeRefs([itemRef, listItemRef !== null && listItemRef !== void 0 ? listItemRef : null]);
41
+ }, [itemRef, listItemRef]);
42
+ return /*#__PURE__*/React.createElement(ListItem, {
43
+ ref: ref,
44
+ xcss: listItemStyles.root
45
+ }, /*#__PURE__*/React.createElement(MenuItemBase, {
46
+ testId: testId,
47
+ description: description,
48
+ actions: actions,
49
+ elemAfter: elemAfter
50
+ // TODO Always use "open in new window" icon when `openInNewWindow` prop is true
51
+ ,
52
+ elemBefore: elemBefore,
53
+ href: href,
54
+ target: target,
55
+ actionsOnHover: actionsOnHover,
56
+ isSelected: isSelected,
57
+ onClick: onClick,
58
+ ref: forwardedRef,
59
+ visualContentRef: visualContentRef,
60
+ interactionName: interactionName,
61
+ isContentTooltipDisabled: isContentTooltipDisabled,
62
+ isDragging: isDragging,
63
+ hasDragIndicator: hasDragIndicator,
64
+ dropIndicator: dropIndicator
65
+ }, children));
66
+ };
67
+
68
+ /**
69
+ * LinkMenuItem
70
+ *
71
+ * A menu item link. It should be used within a `ul`.
72
+ */
73
+ export const LinkMenuItem = forwardRefWithGeneric(LinkMenuItemNoRef);
@@ -0,0 +1,23 @@
1
+ /* list-item.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import * as React from 'react';
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import { forwardRef } from 'react';
5
+ function _ListItem({
6
+ children,
7
+ testId,
8
+ xcss
9
+ }, ref) {
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ role: "listitem",
12
+ ref: ref,
13
+ className: xcss,
14
+ "data-testid": testId
15
+ }, children);
16
+ }
17
+
18
+ /**
19
+ * __List item__
20
+ *
21
+ * A [list item](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li) with visual styles removed.
22
+ */
23
+ export const ListItem = /*#__PURE__*/forwardRef(_ListItem);
@@ -0,0 +1,33 @@
1
+ /* list.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import * as React from 'react';
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import { forwardRef } from 'react';
5
+ function _List({
6
+ children,
7
+ testId,
8
+ xcss
9
+ }, forwardedRef) {
10
+ return (
11
+ /*#__PURE__*/
12
+ /**
13
+ * We are using `role="list"` instead of a `ul` element to enable more flexible
14
+ * composition. By using ARIA roles we can validly have elements between a list
15
+ * and list items, as long as those in-between elements have no semantics.
16
+ */
17
+ React.createElement("div", {
18
+ role: "list",
19
+ ref: forwardedRef,
20
+ className: xcss,
21
+ "data-testid": testId
22
+ }, children)
23
+ );
24
+ }
25
+
26
+ /**
27
+ * __List__
28
+ *
29
+ * A an element with the role of `list` for semantically grouping list items.
30
+ *
31
+ * This is the internal primitive used by other external components in the navigation system.
32
+ */
33
+ export const List = /*#__PURE__*/forwardRef(_List);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A symbol to collapse the `elemBefore` slot.
3
+ * This should be placed in the `elemBefore` prop of supported menu items.
4
+ */
5
+ export const COLLAPSE_ELEM_BEFORE = Symbol('collapse-elem-before');