@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,57 @@
1
+ import { createContext, useContext } from 'react';
2
+ import invariant from 'tiny-invariant';
3
+ import { ExpandableMenuItemLevelContext } from './expandable-menu-item-level-context';
4
+ /**
5
+ * Whether all ancestor menu items of the current menu item are expanded. Used to know if the current menu item is
6
+ * shown within the menu item tree.
7
+ */
8
+ export var AreAllAncestorsExpandedContext = /*#__PURE__*/createContext(null);
9
+
10
+ /**
11
+ * A context for storing the isExpanded value of the ExpandableMenuItem.
12
+ */
13
+ export var IsExpandedContext = /*#__PURE__*/createContext(null);
14
+
15
+ /**
16
+ * A context for storing a function that sets isExpanded value of the ExpandableMenuItem.
17
+ */
18
+ export var SetIsExpandedContext = /*#__PURE__*/createContext(null);
19
+
20
+ /**
21
+ * A context for storing a function that triggers when isExpanded value of the ExpandableMenuItem is changed.
22
+ */
23
+ export var OnExpansionToggleContext = /*#__PURE__*/createContext(null);
24
+
25
+ /**
26
+ * A context for storing the level value of the ExpandableMenuItem.
27
+ */
28
+ export var LevelContext = ExpandableMenuItemLevelContext;
29
+ export var useIsExpanded = function useIsExpanded() {
30
+ var context = useContext(IsExpandedContext);
31
+ invariant(context !== null, 'useIsExpanded must be used within an ExpandableMenuItem');
32
+ return context;
33
+ };
34
+ export var useSetIsExpanded = function useSetIsExpanded() {
35
+ var context = useContext(SetIsExpandedContext);
36
+ invariant(context !== null, 'useSetIsExpanded must be used within an ExpandableMenuItem');
37
+ return context;
38
+ };
39
+ export var useOnExpansionToggle = function useOnExpansionToggle() {
40
+ return useContext(OnExpansionToggleContext);
41
+ };
42
+ export var useLevel = function useLevel() {
43
+ return useContext(LevelContext);
44
+ };
45
+
46
+ /**
47
+ * Whether all ancestor menu items of the current menu item are expanded. Used to know if the current menu item is
48
+ * shown within the menu item tree.
49
+ *
50
+ * It works by combining (using &&) all the expansion states of the current menu item's ancestors.
51
+ *
52
+ * Using `true` as the fallback for cases when the menu item does not have ancestors.
53
+ */
54
+ export var useAreAllAncestorsExpanded = function useAreAllAncestorsExpanded() {
55
+ var _useContext;
56
+ return (_useContext = useContext(AreAllAncestorsExpandedContext)) !== null && _useContext !== void 0 ? _useContext : true;
57
+ };
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ // Note: this context value is in a seperate file as it is consumed
4
+ // by our drag and drop drag preview
5
+
6
+ /**
7
+ * A context for storing the level value of the ExpandableMenuItem.
8
+ */
9
+ export var ExpandableMenuItemLevelContext = /*#__PURE__*/createContext(0);
@@ -0,0 +1,14 @@
1
+ ._12xsglyw:has(:focus-visible){--expandable-provided-elembefore-display:none}
2
+ ._165n1bgi{--expandable-provided-elembefore-display:contents}
3
+ ._165nglyw{--expandable-provided-elembefore-display:none}
4
+ ._1e0c1xb2{display:var(--expandable-provided-elembefore-display)}
5
+ ._1e0ciw0t{display:var(--expandable-chevron-display)}
6
+ ._1hl9glyw:has([aria-expanded=true][aria-haspopup=true]){--expandable-provided-elembefore-display:none}
7
+ ._1mmi1txw{--expandable-chevron-display:flex}
8
+ ._1mmiglyw{--expandable-chevron-display:none}
9
+ ._b31z1txw:has(:focus-visible){--expandable-chevron-display:flex}
10
+ ._syazxl6c{color:var(--ds-icon-selected,#1868db)}
11
+ ._v9u71txw:has([aria-expanded=true][aria-haspopup=true]){--expandable-chevron-display:flex}
12
+ [dir=rtl] ._1tz3r0mg{transform:scaleX(-1)}
13
+ ._1vnl1txw:hover{--expandable-chevron-display:flex}
14
+ ._p8btglyw:hover{--expandable-provided-elembefore-display:none}
@@ -0,0 +1,141 @@
1
+ /* expandable-menu-item-trigger.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import "./expandable-menu-item-trigger.compiled.css";
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import React, { useCallback, useId, useRef } from 'react';
6
+ import { IconButton } from '@atlaskit/button/new';
7
+ import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
8
+ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
9
+ import ChevronRightIcon from '@atlaskit/icon/core/chevron-right';
10
+ import { MenuItemBase, nestedOpenPopupCSSSelector } from '../menu-item';
11
+ import { useScrollMenuItemIntoView } from '../use-scroll-menu-item-into-view';
12
+ import { useIsExpanded, useOnExpansionToggle, useSetIsExpanded } from './expandable-menu-item-context';
13
+ // Widening type to `string` to side-step Compiled cssMap typescript warnings with unknown properties
14
+ var chevronDisplayCssVar = '--expandable-chevron-display';
15
+ var providedElemBeforeDisplayCssVar = '--expandable-provided-elembefore-display';
16
+ var wrapperStyles = {
17
+ root: "_1mmi1txw _165nglyw",
18
+ showProvidedElemBefore: "_1mmiglyw _165n1bgi _v9u71txw _1hl9glyw _b31z1txw _1vnl1txw _12xsglyw _p8btglyw"
19
+ };
20
+ var iconStyles = {
21
+ chevron: "_1e0ciw0t _1tz3r0mg",
22
+ providedElemBefore: "_1e0c1xb2",
23
+ providedElemBeforeSelected: "_syazxl6c"
24
+ };
25
+ var ExpandableMenuItemIcon = function ExpandableMenuItemIcon(_ref) {
26
+ var iconProps = _ref.iconProps,
27
+ isExpanded = _ref.isExpanded,
28
+ isSelected = _ref.isSelected,
29
+ providedElemBefore = _ref.providedElemBefore;
30
+ var ChevronIcon = isExpanded ? ChevronDownIcon : ChevronRightIcon;
31
+ var chevronElem = /*#__PURE__*/React.createElement(ChevronIcon, _extends({}, iconProps, {
32
+ label: "",
33
+ color: isSelected ? "var(--ds-icon-selected, #1868DB)" : undefined,
34
+ size: "small"
35
+ }));
36
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
37
+ className: ax([iconStyles.chevron])
38
+ }, chevronElem), providedElemBefore && /*#__PURE__*/React.createElement("div", {
39
+ className: ax([iconStyles.providedElemBefore, isSelected && iconStyles.providedElemBeforeSelected])
40
+ }, providedElemBefore));
41
+ };
42
+ /**
43
+ * __ExpandableMenuItemTrigger__
44
+ *
45
+ * The trigger component for an `ExpandableMenuItem`. Interacting with it will expand or collapse the expandable.
46
+ */
47
+ export var ExpandableMenuItemTrigger = forwardRefWithGeneric(function (_ref2, forwardedRef) {
48
+ var actions = _ref2.actions,
49
+ isSelected = _ref2.isSelected,
50
+ href = _ref2.href,
51
+ providedElemBefore = _ref2.elemBefore,
52
+ elemAfter = _ref2.elemAfter,
53
+ actionsOnHover = _ref2.actionsOnHover,
54
+ onClick = _ref2.onClick,
55
+ children = _ref2.children,
56
+ testId = _ref2.testId,
57
+ interactionName = _ref2.interactionName,
58
+ isContentTooltipDisabled = _ref2.isContentTooltipDisabled,
59
+ visualContentRef = _ref2.visualContentRef,
60
+ isDragging = _ref2.isDragging,
61
+ hasDragIndicator = _ref2.hasDragIndicator,
62
+ dropIndicator = _ref2.dropIndicator;
63
+ var id = useId();
64
+ var onExpansionToggle = useOnExpansionToggle();
65
+ var isExpanded = useIsExpanded();
66
+ var setIsExpanded = useSetIsExpanded();
67
+ var itemRef = useRef(null);
68
+ var handleIconClick = useCallback(function () {
69
+ onExpansionToggle === null || onExpansionToggle === void 0 || onExpansionToggle(!isExpanded);
70
+ setIsExpanded(!isExpanded);
71
+ }, [isExpanded, onExpansionToggle, setIsExpanded]);
72
+ var handleMenuContentClick = useCallback(function (event, analyticsEvent) {
73
+ var newValue = !isExpanded;
74
+ onClick === null || onClick === void 0 || onClick(event, analyticsEvent, {
75
+ isExpanded: newValue
76
+ });
77
+ onExpansionToggle === null || onExpansionToggle === void 0 || onExpansionToggle(newValue);
78
+ setIsExpanded(newValue);
79
+ }, [onClick, onExpansionToggle, isExpanded, setIsExpanded]);
80
+ var isSelectable = typeof href !== 'undefined';
81
+ useScrollMenuItemIntoView({
82
+ elementRef: itemRef,
83
+ isSelected: Boolean(isSelectable && isSelected)
84
+ });
85
+
86
+ // Wrapped in an IconButton if the expandable menu item trigger is selectable
87
+ var elemBefore = isSelectable ? /*#__PURE__*/React.createElement(IconButton, {
88
+ icon: function icon(iconProps) {
89
+ return /*#__PURE__*/React.createElement(ExpandableMenuItemIcon, {
90
+ iconProps: iconProps,
91
+ isExpanded: isExpanded,
92
+ isSelected: isSelected,
93
+ providedElemBefore: providedElemBefore
94
+ });
95
+ },
96
+ "aria-expanded": isExpanded
97
+ // We are labelling the icon button using the containing menu item's content, to provide context to
98
+ // screen readers on what will actually be expanded or collapsed. Screen readers will also use the
99
+ // `aria-expanded` attribute to indicate the expanded state of the menu item.
100
+ // We are not using the `aria-label` attribute here as it is not supported by the `IconButton` component.
101
+ ,
102
+ "aria-labelledby": id
103
+ // IconButton requires a label prop, however it will not be used by screen readers as we are setting
104
+ // `aria-labelledby`, which will be used instead.
105
+ ,
106
+ label: "",
107
+ appearance: "subtle",
108
+ spacing: "compact",
109
+ onClick: handleIconClick,
110
+ interactionName: interactionName,
111
+ testId: testId ? "".concat(testId, "--elem-before-button") : undefined
112
+ }) : /*#__PURE__*/React.createElement(ExpandableMenuItemIcon, {
113
+ isExpanded: isExpanded,
114
+ isSelected: isSelected,
115
+ providedElemBefore: providedElemBefore
116
+ });
117
+
118
+ // For expandable menu items, we shouldn't wrap in a `li` here. The `li` is instead at a higher level (`ExpandableMenuItem`), grouping the expandable menu item trigger and its content
119
+ return /*#__PURE__*/React.createElement("div", {
120
+ ref: itemRef,
121
+ className: ax([wrapperStyles.root, providedElemBefore && wrapperStyles.showProvidedElemBefore])
122
+ }, /*#__PURE__*/React.createElement(MenuItemBase, {
123
+ id: id,
124
+ actions: actions,
125
+ actionsOnHover: actionsOnHover,
126
+ elemBefore: elemBefore,
127
+ ariaExpanded: isExpanded,
128
+ elemAfter: elemAfter,
129
+ href: href,
130
+ isSelected: isSelected,
131
+ onClick: handleMenuContentClick,
132
+ ref: forwardedRef,
133
+ visualContentRef: visualContentRef,
134
+ testId: testId,
135
+ interactionName: interactionName,
136
+ isContentTooltipDisabled: isContentTooltipDisabled,
137
+ isDragging: isDragging,
138
+ hasDragIndicator: hasDragIndicator,
139
+ dropIndicator: dropIndicator
140
+ }, children));
141
+ });
@@ -0,0 +1 @@
1
+ ._kqswh2mm{position:relative}
@@ -0,0 +1,60 @@
1
+ /* expandable-menu-item.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import "./expandable-menu-item.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
+ import { forwardRef } from 'react';
7
+ import useControlled from '@atlaskit/ds-lib/use-controlled';
8
+ import { MenuListItem } from '../menu-list-item';
9
+ import { IsExpandedContext, OnExpansionToggleContext, SetIsExpandedContext } from './expandable-menu-item-context';
10
+ var relativeStyles = {
11
+ root: "_kqswh2mm"
12
+ };
13
+
14
+ /**
15
+ * __ExpandableMenuItem__
16
+ *
17
+ * A composable component for nested menu items that can be revealed and hidden by interacting witih the parent menu item.
18
+ *
19
+ * Follows the [disclosure pattern](https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/).
20
+ *
21
+ * Should be used with `ExpandableMenuItemTrigger` as the parent menu item, and children menu items should be wrapped in a `ExpandableMenuItemContent`.
22
+ *
23
+ * Usage example:
24
+ * ```jsx
25
+ * <ExpandableMenuItem>
26
+ * <ExpandableMenuItemTrigger>Parent menu item</ExpandableMenuItemTrigger>
27
+ * <ExpandableMenuItemContent>
28
+ * <ButtonMenuItem>Item 1</ButtonMenuItem>
29
+ * <ButtonMenuItem>Item 2</ButtonMenuItem>
30
+ * </ExpandableMenuItemContent>
31
+ * </ExpandableMenuItem>
32
+ * ```
33
+ */
34
+ export var ExpandableMenuItem = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
35
+ var isExpandedControlled = _ref.isExpanded,
36
+ _ref$isDefaultExpande = _ref.isDefaultExpanded,
37
+ isDefaultExpanded = _ref$isDefaultExpande === void 0 ? false : _ref$isDefaultExpande,
38
+ onExpansionToggle = _ref.onExpansionToggle,
39
+ children = _ref.children,
40
+ dropIndicator = _ref.dropIndicator,
41
+ testId = _ref.testId;
42
+ var _useControlled = useControlled(isExpandedControlled, function () {
43
+ return isDefaultExpanded;
44
+ }),
45
+ _useControlled2 = _slicedToArray(_useControlled, 2),
46
+ isExpanded = _useControlled2[0],
47
+ setIsExpanded = _useControlled2[1];
48
+ return /*#__PURE__*/React.createElement(IsExpandedContext.Provider, {
49
+ value: isExpanded
50
+ }, /*#__PURE__*/React.createElement(SetIsExpandedContext.Provider, {
51
+ value: setIsExpanded
52
+ }, /*#__PURE__*/React.createElement(OnExpansionToggleContext.Provider, {
53
+ value: onExpansionToggle !== null && onExpansionToggle !== void 0 ? onExpansionToggle : null
54
+ }, /*#__PURE__*/React.createElement(MenuListItem, {
55
+ ref: forwardedRef,
56
+ testId: testId
57
+ }, /*#__PURE__*/React.createElement("div", {
58
+ className: ax([dropIndicator && relativeStyles.root])
59
+ }, children, dropIndicator)))));
60
+ });
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { IconButton } from "@atlaskit/button/new";
3
+ import CrossIcon from "@atlaskit/icon/core/cross";
4
+ /**
5
+ * __Close button__
6
+ *
7
+ * The close button is to be used for flyout menu item headers to ensure that
8
+ * all users have an accessible and obvious way to close the flyout menu.
9
+ *
10
+ * Ensure that the close button renders first in the DOM to make sure that
11
+ * users will encounter all elements of the flyout menu, including everything
12
+ * within the flyout menu header. This can be done using a `Flex` primitive as
13
+ * the custom header's container with a flex direction of `row-reverse`.
14
+ */
15
+ export var CloseButton = function CloseButton(_ref) {
16
+ var label = _ref.label,
17
+ onClick = _ref.onClick,
18
+ testId = _ref.testId;
19
+ return /*#__PURE__*/React.createElement(IconButton, {
20
+ testId: testId,
21
+ appearance: "subtle",
22
+ icon: CrossIcon,
23
+ label: label,
24
+ onClick: onClick
25
+ });
26
+ };
@@ -0,0 +1,11 @@
1
+ ._12l2x0bf{margin-inline-end:var(--ds-space-negative-100,-8px)}
2
+ ._18m91wug{overflow-y:auto}
3
+ ._1bahv2br{justify-content:start}
4
+ ._1e0c1txw{display:flex}
5
+ ._2lx21bp4{flex-direction:column}
6
+ ._4t3i1osq{height:100%}
7
+ ._6rthx0bf{margin-block-end:var(--ds-space-negative-100,-8px)}
8
+ ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
9
+ ._ahbqx0bf{margin-inline-start:var(--ds-space-negative-100,-8px)}
10
+ ._bozgu2gc{padding-inline-start:var(--ds-space-100,8px)}
11
+ ._y4tiu2gc{padding-inline-end:var(--ds-space-100,8px)}
@@ -0,0 +1,31 @@
1
+ /* flyout-body.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./flyout-body.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React from 'react';
5
+ var bodyStyles = {
6
+ root: "_1e0c1txw _2lx21bp4 _18m91wug _4t3i1osq _1bahv2br _ahbqx0bf _12l2x0bf _6rthx0bf _bozgu2gc _y4tiu2gc _85i5u2gc"
7
+ };
8
+ /**
9
+ * __Flyout menu item body__
10
+ *
11
+ * The main section of a flyout menu. This component is used to render the
12
+ * primary contents of the flyout menu. This component should be placed between
13
+ * FlyoutHeader and FlyoutFooter (if present), as is scrollable if the content
14
+ * exceeds the available space.
15
+ */
16
+ export var FlyoutBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
17
+ var children = props.children,
18
+ testId = props.testId,
19
+ onKeyDown = props.onKeyDown,
20
+ onKeyUp = props.onKeyUp,
21
+ onBlurCapture = props.onBlurCapture;
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ ref: ref,
24
+ "data-testid": testId,
25
+ onKeyDown: onKeyDown,
26
+ onKeyUp: onKeyUp,
27
+ onBlurCapture: onBlurCapture,
28
+ role: "presentation",
29
+ className: ax([bodyStyles.root])
30
+ }, children);
31
+ });
@@ -0,0 +1,5 @@
1
+ ._1pfhu2gc{margin-block-start:var(--ds-space-100,8px)}
2
+ ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
3
+ ._1sw7nqa1{border-block-start-style:solid}
4
+ ._7myae4h9{border-block-start-width:var(--ds-border-width,1px)}
5
+ ._qgnu1l7x{border-block-start-color:var(--ds-border,#0b120e24)}
@@ -0,0 +1,22 @@
1
+ /* flyout-footer.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./flyout-footer.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React from 'react';
5
+ var footerStyles = {
6
+ root: "_7myae4h9 _1sw7nqa1 _qgnu1l7x _1pfhu2gc _1q51u2gc"
7
+ };
8
+ /**
9
+ * __Flyout menu item footer__
10
+ *
11
+ * The footer section of a flyout menu. This component can display
12
+ * supplementary actions or information at the bottom of the flyout menu. This
13
+ * component should be placed after FlyoutBody within the FlyoutMenuItemContent.
14
+ */
15
+ export var FlyoutFooter = function FlyoutFooter(props) {
16
+ var children = props.children,
17
+ testId = props.testId;
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ "data-testid": testId,
20
+ className: ax([footerStyles.root])
21
+ }, children);
22
+ };
@@ -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,45 @@
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
+ var 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 var FlyoutHeader = function FlyoutHeader(props) {
21
+ var children = props.children,
22
+ testId = props.testId,
23
+ title = props.title,
24
+ closeButtonLabel = props.closeButtonLabel;
25
+ var id = useTitleId();
26
+ var onCloseRef = useContext(OnCloseContext);
27
+ var handleClose = useCallback(function (event) {
28
+ var _onCloseRef$current;
29
+ (_onCloseRef$current = onCloseRef.current) === null || _onCloseRef$current === void 0 || _onCloseRef$current.call(onCloseRef, event, 'close-button');
30
+ }, [onCloseRef]);
31
+ return /*#__PURE__*/React.createElement("div", {
32
+ "data-testid": testId,
33
+ className: ax([headerStyles.root])
34
+ }, /*#__PURE__*/React.createElement(Flex, {
35
+ xcss: headerStyles.flex
36
+ }, /*#__PURE__*/React.createElement(CloseButton, {
37
+ label: closeButtonLabel,
38
+ onClick: handleClose,
39
+ testId: testId && "".concat(testId, "--close-button")
40
+ }), /*#__PURE__*/React.createElement(Heading, {
41
+ size: "xsmall",
42
+ as: "h2",
43
+ id: id
44
+ }, title)), children);
45
+ };
@@ -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,214 @@
1
+ /* flyout-menu-item-content.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import "./flyout-menu-item-content.compiled.css";
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import React, { forwardRef, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from 'react';
6
+ import { useAnalyticsEvents } from '@atlaskit/analytics-next';
7
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
9
+ import { PopupContent } from '@atlaskit/popup/experimental';
10
+ import { OnCloseContext, SetIsOpenContext, TitleIdContextProvider } from './flyout-menu-item-context';
11
+ /**
12
+ * The vertical offset in px to ensure the flyout container does not exceed the bounds of
13
+ * the window. This matches the padding of the content container, and it's position within
14
+ * the viewport.
15
+ *
16
+ * - FlyoutMenuItemContent: paddingBlock: token('space.100'); – 8px top, 8px bottom
17
+ * - Position: 5px top, 5px bottom
18
+ *
19
+ * Total vertical padding:
20
+ * (8px [content top] + 8px [content bottom]) +
21
+ * (5px [position top] + 5px [position bottom]) = 26px
22
+ */
23
+ var FLYOUT_MENU_VERTICAL_OFFSET_PX = 26;
24
+
25
+ /**
26
+ * The maximum height of the flyout menu in pixels, following the Confluence standard maximum
27
+ * height of 760px.
28
+ */
29
+ var FLYOUT_MENU_MAX_HEIGHT_PX = 760;
30
+ var flyoutMenuItemContentStyles = {
31
+ root: "_1q51u2gc _85i5u2gc _bozgu2gc _y4tiu2gc _14b51kdj"
32
+ };
33
+ var flyoutMenuItemContentContainerStyles = {
34
+ container: "_1e0c1txw _4t3i1osq _2lx21bp4"
35
+ };
36
+ /**
37
+ * __FlyoutMenuItemContent__
38
+ *
39
+ * The content that appears when the flyout menu is open.
40
+ */
41
+ export var FlyoutMenuItemContent = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
42
+ var children = _ref.children,
43
+ containerTestId = _ref.containerTestId,
44
+ onClose = _ref.onClose,
45
+ autoFocus = _ref.autoFocus,
46
+ _ref$maxHeight = _ref.maxHeight,
47
+ maxHeight = _ref$maxHeight === void 0 ? FLYOUT_MENU_MAX_HEIGHT_PX : _ref$maxHeight;
48
+ var setIsOpen = useContext(SetIsOpenContext);
49
+ var onCloseRef = useContext(OnCloseContext);
50
+ var _useAnalyticsEvents = useAnalyticsEvents(),
51
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
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
+ var handleClose = useCallback(function (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
+ var determinedSource = source || 'other';
60
+ if (!source) {
61
+ if (event instanceof KeyboardEvent) {
62
+ var 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
+ var 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 || onClose();
85
+ setIsOpen(false);
86
+ }, [setIsOpen, onClose, createAnalyticsEvent]);
87
+
88
+ // Register handleClose in the ref to allow the FlyoutMenuItemTrigger to access it
89
+ useEffect(function () {
90
+ onCloseRef.current = handleClose;
91
+ }, [handleClose, onCloseRef]);
92
+ var titleId = useId();
93
+ var computedMaxHeight = useMemo(function () {
94
+ return "min(\n\t\t\tcalc(100vh - ".concat(FLYOUT_MENU_VERTICAL_OFFSET_PX, "px),\n\t\t\t").concat(maxHeight, "px\n\t\t)");
95
+ }, [maxHeight]);
96
+ return /*#__PURE__*/React.createElement(PopupContent, {
97
+ appearance: "UNSAFE_modal-below-sm",
98
+ onClose: handleClose,
99
+ placement: "right-start"
100
+ // Using a capture event listener so that we are more resilient against
101
+ // code that stops events. We _really_ want to close the flyout whenever
102
+ // user user clicks outside the flyout content
103
+ ,
104
+ shouldUseCaptureOnOutsideClick: true,
105
+ shouldFitViewport: true,
106
+ testId: containerTestId,
107
+ xcss: flyoutMenuItemContentStyles.root,
108
+ autoFocus: autoFocus,
109
+ role: fg("platform_dst_nav4_flyout_menu_slots_close_button") ? "dialog" : undefined,
110
+ titleId: fg("platform_dst_nav4_flyout_menu_slots_close_button") ? titleId : undefined
111
+ /**
112
+ * Disabling GPU acceleration removes the use of `transform` by popper.js for this popup.
113
+ *
114
+ * This allows makers to use popups with `shouldRenderToParent` inside the flyout.
115
+ *
116
+ * Without this, the `transform` makes the flyout the containing element for fixed positioning.
117
+ * Because the flyout is also a scroll container then any nested, layered element is unable to
118
+ * escape the flyout.
119
+ *
120
+ * Disabling the `transform` is the simplest way to resolve this layering issue,
121
+ * and should have negligible performance impacts, because the flyout menus should rarely
122
+ * need to be repositioned.
123
+ */,
124
+ shouldDisableGpuAcceleration: true,
125
+ shouldRenderToParent: fg('platform_dst_nav4_flyoutmenuitem_render_to_parent')
126
+ }, function (_ref2) {
127
+ var update = _ref2.update;
128
+ return /*#__PURE__*/React.createElement(UpdatePopperOnContentResize, {
129
+ ref: forwardedRef,
130
+ update: update
131
+ }, fg("platform_dst_nav4_flyout_menu_slots_close_button") ? /*#__PURE__*/React.createElement(TitleIdContextProvider, {
132
+ value: titleId
133
+ }, /*#__PURE__*/React.createElement("div", {
134
+ style: {
135
+ maxHeight: computedMaxHeight
136
+ },
137
+ "data-testid": containerTestId ? "".concat(containerTestId, "--container") : undefined,
138
+ className: ax([flyoutMenuItemContentContainerStyles.container])
139
+ }, children)) : children);
140
+ });
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
+ var UpdatePopperOnContentResize = /*#__PURE__*/forwardRef(function (_ref3, forwardedRef) {
159
+ var update = _ref3.update,
160
+ children = _ref3.children;
161
+ /**
162
+ * Storing our `update` function in a ref so that we have a stable reference to it.
163
+ * We need this because our `ResizeObserver` callback cannot be changed after creating it.
164
+ */
165
+ var updateRef = useRef(update);
166
+ useEffect(function () {
167
+ updateRef.current = update;
168
+ }, [update]);
169
+
170
+ /**
171
+ * Stable function that calls the latest `update` function by calling it through the stable ref.
172
+ */
173
+ var triggerUpdate = useCallback(function () {
174
+ var _updateRef$current;
175
+ (_updateRef$current = updateRef.current) === null || _updateRef$current === void 0 || _updateRef$current.call(updateRef);
176
+ }, []);
177
+ var _useState = useState(function () {
178
+ return createResizeObserver(triggerUpdate);
179
+ }),
180
+ _useState2 = _slicedToArray(_useState, 1),
181
+ resizeObserver = _useState2[0];
182
+
183
+ /**
184
+ * This is a callback ref that will update which `HTMLElement` we are observing,
185
+ * if or when the underlying `HTMLElement` changes or unmounts.
186
+ */
187
+ var observeCallbackRef = useCallback(function (element) {
188
+ /**
189
+ * Unobserves all observed elements.
190
+ * Allows us to cleanup without needing to store a reference to the previous element.
191
+ */
192
+ resizeObserver.disconnect();
193
+ if (!element) {
194
+ return;
195
+ }
196
+ resizeObserver.observe(element);
197
+ }, [resizeObserver]);
198
+
199
+ /**
200
+ * We need to memoize the ref otherwise `triggerUpdate` is repeatedly called.
201
+ *
202
+ * This stems from ResizeObserver firing once after calling `.observe()` even if there
203
+ * was no resize.
204
+ *
205
+ * Without memoizing the ref, the update causes a rerender, which causes the ref to
206
+ * get recreated, which triggers an update and so on in a loop.
207
+ */
208
+ var ref = useMemo(function () {
209
+ return mergeRefs([forwardedRef, observeCallbackRef]);
210
+ }, [forwardedRef, observeCallbackRef]);
211
+ return /*#__PURE__*/React.createElement("div", {
212
+ ref: ref
213
+ }, children);
214
+ });