@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,192 @@
1
+ /* use-menu-item-drag-and-drop.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 { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import invariant from 'tiny-invariant';
7
+ import { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
8
+ import { pointerOutsideOfPreview } from '@atlaskit/pragmatic-drag-and-drop/element/pointer-outside-of-preview';
9
+ import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';
10
+ import { DragPreview } from './drag-preview';
11
+ import { DropIndicator } from './drop-indicator';
12
+ import { attachInstruction, extractInstruction } from './hitbox';
13
+ const idle = {
14
+ type: 'idle'
15
+ };
16
+ /**
17
+ * A convenience helper for setting up drag and drop for menu items
18
+ *
19
+ * - Don't include the `draggable` property if you don't want the menu item to be a draggable
20
+ * - Don't include the `dropTarget` property if you don't want the menu item to be a drop target
21
+ */
22
+ export function useMenuItemDragAndDrop({
23
+ draggable: draggableArgs,
24
+ dropTarget: dropTargetArgs
25
+ }) {
26
+ const draggableAnchorRef = useRef(null);
27
+ const draggableButtonRef = useRef(null);
28
+ const dropTargetRef = useRef(null);
29
+ const [internalState, setInternalState] = useState(idle);
30
+ const getDraggableElement = useCallback(() => {
31
+ var _ref, _draggableAnchorRef$c;
32
+ return (_ref = (_draggableAnchorRef$c = draggableAnchorRef.current) !== null && _draggableAnchorRef$c !== void 0 ? _draggableAnchorRef$c : draggableButtonRef.current) !== null && _ref !== void 0 ? _ref : null;
33
+ }, []);
34
+
35
+ // Set up draggable
36
+ useEffect(() => {
37
+ // Don't set up a draggable if there are no draggable args
38
+ if (!draggableArgs) {
39
+ return;
40
+ }
41
+ const element = getDraggableElement();
42
+ invariant(element, `draggableAnchorRef or draggableButtonRef not set`);
43
+ return draggable({
44
+ element,
45
+ getInitialData: draggableArgs.getInitialData,
46
+ canDrag: draggableArgs.canDrag,
47
+ onGenerateDragPreview({
48
+ nativeSetDragImage,
49
+ source,
50
+ location
51
+ }) {
52
+ setCustomNativeDragPreview({
53
+ nativeSetDragImage,
54
+ getOffset: pointerOutsideOfPreview({
55
+ x: "var(--ds-space-200, 16px)",
56
+ y: "var(--ds-space-100, 8px)"
57
+ }),
58
+ render({
59
+ container
60
+ }) {
61
+ const args = {
62
+ dragHandle: source.dragHandle,
63
+ element: source.element,
64
+ input: location.current.input
65
+ };
66
+ setInternalState({
67
+ type: 'preview',
68
+ container,
69
+ ui: draggableArgs.getDragPreviewPieces(args)
70
+ });
71
+ }
72
+ });
73
+ },
74
+ onDragStart() {
75
+ setInternalState({
76
+ type: 'dragging'
77
+ });
78
+ },
79
+ onDrop() {
80
+ setInternalState(idle);
81
+ }
82
+ });
83
+ }, [draggableArgs, getDraggableElement]);
84
+
85
+ // Set up drop target
86
+ useEffect(() => {
87
+ if (!dropTargetArgs) {
88
+ return;
89
+ }
90
+
91
+ // Don't need to provide a draggable element to have a drop target.
92
+ // Using this element in our `canDrop` check
93
+ const draggableElement = getDraggableElement();
94
+ const dropTarget = dropTargetRef.current;
95
+ invariant(dropTarget, `dropTargetRef was not set`);
96
+ return dropTargetForElements({
97
+ element: dropTarget,
98
+ // cannot drop on self
99
+ canDrop: args => {
100
+ // cannot drop on self
101
+ if (args.source.element === draggableElement) {
102
+ return false;
103
+ }
104
+ if (dropTargetArgs.canDrop) {
105
+ return dropTargetArgs.canDrop(args);
106
+ }
107
+ return true;
108
+ },
109
+ // menu items are always sticky, and the GroupDropIndicator should clear stickiness
110
+ getIsSticky: () => true,
111
+ getData(args) {
112
+ var _dropTargetArgs$getDa, _dropTargetArgs$getDa2;
113
+ const data = (_dropTargetArgs$getDa = (_dropTargetArgs$getDa2 = dropTargetArgs.getData) === null || _dropTargetArgs$getDa2 === void 0 ? void 0 : _dropTargetArgs$getDa2.call(dropTargetArgs, args)) !== null && _dropTargetArgs$getDa !== void 0 ? _dropTargetArgs$getDa : {};
114
+ const operations = dropTargetArgs.getOperations(args);
115
+ return attachInstruction(data, {
116
+ input: args.input,
117
+ element: args.element,
118
+ operations
119
+ });
120
+ },
121
+ onDragStart({
122
+ self
123
+ }) {
124
+ const instruction = extractInstruction(self.data);
125
+ setInternalState({
126
+ type: 'is-over',
127
+ instruction
128
+ });
129
+ },
130
+ onDrag({
131
+ self
132
+ }) {
133
+ const instruction = extractInstruction(self.data);
134
+ setInternalState(current => {
135
+ var _current$instruction, _current$instruction2;
136
+ if (current.type === 'is-over' && (instruction === null || instruction === void 0 ? void 0 : instruction.operation) === ((_current$instruction = current.instruction) === null || _current$instruction === void 0 ? void 0 : _current$instruction.operation) && (instruction === null || instruction === void 0 ? void 0 : instruction.blocked) === ((_current$instruction2 = current.instruction) === null || _current$instruction2 === void 0 ? void 0 : _current$instruction2.blocked)) {
137
+ return current;
138
+ }
139
+ return {
140
+ type: 'is-over',
141
+ instruction
142
+ };
143
+ });
144
+ },
145
+ onDragLeave() {
146
+ setInternalState(idle);
147
+ },
148
+ onDrop() {
149
+ setInternalState(idle);
150
+ },
151
+ onDragEnter({
152
+ self
153
+ }) {
154
+ const instruction = extractInstruction(self.data);
155
+ setInternalState({
156
+ type: 'is-over',
157
+ instruction
158
+ });
159
+ }
160
+ });
161
+ }, [dropTargetArgs, getDraggableElement]);
162
+ const dragPreview = (() => {
163
+ if (internalState.type !== 'preview') {
164
+ return null;
165
+ }
166
+ return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(DragPreview, {
167
+ elemBefore: internalState.ui.elemBefore
168
+ }, internalState.ui.content), internalState.container);
169
+ })();
170
+ const dropIndicator = internalState.type === 'is-over' && internalState.instruction && /*#__PURE__*/React.createElement(DropIndicator, {
171
+ instruction: internalState.instruction
172
+ });
173
+ const state = useMemo(() => {
174
+ if (internalState.type === 'preview') {
175
+ return {
176
+ type: 'preview'
177
+ };
178
+ }
179
+ // returning a new object to avoid modification of our `internalState` object
180
+ return {
181
+ ...internalState
182
+ };
183
+ }, [internalState]);
184
+ return {
185
+ state,
186
+ draggableButtonRef,
187
+ dropTargetRef,
188
+ draggableAnchorRef,
189
+ dragPreview,
190
+ dropIndicator
191
+ };
192
+ }
@@ -0,0 +1,9 @@
1
+ ._152tidpf{inset-block-start:0}
2
+ ._1bah1h6o{justify-content:center}
3
+ ._1e02idpf{inset-inline-start:0}
4
+ ._1e0c1i3c{display:var(--drag-handle-display,none)}
5
+ ._2lx21bp4{flex-direction:column}
6
+ ._ahbqxmi2{margin-inline-start:var(--ds-space-negative-150,-9pt)}
7
+ ._kqswstnw{position:absolute}
8
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
9
+ ._u7coidpf{inset-block-end:0}
@@ -0,0 +1,19 @@
1
+ /* drag-handle.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./drag-handle.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import DragHandleVerticalIcon from '@atlaskit/icon/core/drag-handle-vertical';
6
+ const styles = {
7
+ root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _152tidpf _u7coidpf _1e02idpf _ahbqxmi2"
8
+ };
9
+
10
+ // Using default export to play well with React.lazy
11
+ export default function DragHandle() {
12
+ return /*#__PURE__*/React.createElement("div", {
13
+ "aria-hidden": "true",
14
+ className: ax([styles.root])
15
+ }, /*#__PURE__*/React.createElement(DragHandleVerticalIcon, {
16
+ label: "",
17
+ size: "small"
18
+ }));
19
+ }
@@ -0,0 +1,9 @@
1
+ // Using `lazy` so that only consumers who want drag and drop
2
+ // need to include code for the drag handle.
3
+ import { lazy } from 'react';
4
+
5
+ /**
6
+ * Exposing this for use by custom components
7
+ */
8
+ export const LazyDragHandle = /*#__PURE__*/lazy(() => import( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
9
+ './drag-handle'));
@@ -0,0 +1,2 @@
1
+ ._1e0cglyw{display:none}
2
+ ._bozg1crf{padding-inline-start:9pt}
@@ -0,0 +1,43 @@
1
+ /* expandable-menu-item-content.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./expandable-menu-item-content.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { forwardRef, useRef } from 'react';
6
+ import { cx } from '@compiled/react';
7
+ import { expandableMenuItemIndentation } from '../constants';
8
+ import { List } from '../list';
9
+ import { AreAllAncestorsExpandedContext, LevelContext, useAreAllAncestorsExpanded, useIsExpanded, useLevel } from './expandable-menu-item-context';
10
+ const styles = {
11
+ content: "_bozg1crf",
12
+ collapsedContent: "_1e0cglyw"
13
+ };
14
+ /**
15
+ * __ExpandableMenuItemContent__
16
+ *
17
+ * The expandable and collapsable section of the expandable menu item. It should contain the nested menu items.
18
+ */
19
+ export const ExpandableMenuItemContent = /*#__PURE__*/forwardRef(({
20
+ children
21
+ }, forwardedRef) => {
22
+ const isExpanded = useIsExpanded();
23
+ const level = useLevel();
24
+ const hasExpanded = useRef(false);
25
+ const areAllAncestorsExpanded = useAreAllAncestorsExpanded();
26
+ if (!isExpanded && !hasExpanded.current) {
27
+ return null;
28
+ }
29
+ hasExpanded.current = true;
30
+ return /*#__PURE__*/React.createElement(LevelContext.Provider, {
31
+ value: level + 1
32
+ }, /*#__PURE__*/React.createElement(AreAllAncestorsExpandedContext.Provider, {
33
+ value:
34
+ /**
35
+ * By combining the current ancestor and with the current menu item's state, all nested menu items will know if their
36
+ * ancestor menu items are all expanded.
37
+ */
38
+ areAllAncestorsExpanded && isExpanded
39
+ }, /*#__PURE__*/React.createElement(List, {
40
+ ref: forwardedRef,
41
+ xcss: cx(styles.content, !isExpanded && styles.collapsedContent)
42
+ }, children)));
43
+ });
@@ -0,0 +1,53 @@
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 const AreAllAncestorsExpandedContext = /*#__PURE__*/createContext(null);
9
+
10
+ /**
11
+ * A context for storing the isExpanded value of the ExpandableMenuItem.
12
+ */
13
+ export const IsExpandedContext = /*#__PURE__*/createContext(null);
14
+
15
+ /**
16
+ * A context for storing a function that sets isExpanded value of the ExpandableMenuItem.
17
+ */
18
+ export const 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 const OnExpansionToggleContext = /*#__PURE__*/createContext(null);
24
+
25
+ /**
26
+ * A context for storing the level value of the ExpandableMenuItem.
27
+ */
28
+ export const LevelContext = ExpandableMenuItemLevelContext;
29
+ export const useIsExpanded = () => {
30
+ const context = useContext(IsExpandedContext);
31
+ invariant(context !== null, 'useIsExpanded must be used within an ExpandableMenuItem');
32
+ return context;
33
+ };
34
+ export const useSetIsExpanded = () => {
35
+ const context = useContext(SetIsExpandedContext);
36
+ invariant(context !== null, 'useSetIsExpanded must be used within an ExpandableMenuItem');
37
+ return context;
38
+ };
39
+ export const useOnExpansionToggle = () => useContext(OnExpansionToggleContext);
40
+ export const useLevel = () => useContext(LevelContext);
41
+
42
+ /**
43
+ * Whether all ancestor menu items of the current menu item are expanded. Used to know if the current menu item is
44
+ * shown within the menu item tree.
45
+ *
46
+ * It works by combining (using &&) all the expansion states of the current menu item's ancestors.
47
+ *
48
+ * Using `true` as the fallback for cases when the menu item does not have ancestors.
49
+ */
50
+ export const useAreAllAncestorsExpanded = () => {
51
+ var _useContext;
52
+ return (_useContext = useContext(AreAllAncestorsExpandedContext)) !== null && _useContext !== void 0 ? _useContext : true;
53
+ };
@@ -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 const 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
+ const chevronDisplayCssVar = '--expandable-chevron-display';
15
+ const providedElemBeforeDisplayCssVar = '--expandable-provided-elembefore-display';
16
+ const wrapperStyles = {
17
+ root: "_1mmi1txw _165nglyw",
18
+ showProvidedElemBefore: "_1mmiglyw _165n1bgi _v9u71txw _1hl9glyw _b31z1txw _1vnl1txw _12xsglyw _p8btglyw"
19
+ };
20
+ const iconStyles = {
21
+ chevron: "_1e0ciw0t _1tz3r0mg",
22
+ providedElemBefore: "_1e0c1xb2",
23
+ providedElemBeforeSelected: "_syazxl6c"
24
+ };
25
+ const ExpandableMenuItemIcon = ({
26
+ iconProps,
27
+ isExpanded,
28
+ isSelected,
29
+ providedElemBefore
30
+ }) => {
31
+ const ChevronIcon = isExpanded ? ChevronDownIcon : ChevronRightIcon;
32
+ const chevronElem = /*#__PURE__*/React.createElement(ChevronIcon, _extends({}, iconProps, {
33
+ label: "",
34
+ color: isSelected ? "var(--ds-icon-selected, #1868DB)" : undefined,
35
+ size: "small"
36
+ }));
37
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
38
+ className: ax([iconStyles.chevron])
39
+ }, chevronElem), providedElemBefore && /*#__PURE__*/React.createElement("div", {
40
+ className: ax([iconStyles.providedElemBefore, isSelected && iconStyles.providedElemBeforeSelected])
41
+ }, providedElemBefore));
42
+ };
43
+ /**
44
+ * __ExpandableMenuItemTrigger__
45
+ *
46
+ * The trigger component for an `ExpandableMenuItem`. Interacting with it will expand or collapse the expandable.
47
+ */
48
+ export const ExpandableMenuItemTrigger = forwardRefWithGeneric(({
49
+ actions,
50
+ isSelected,
51
+ href,
52
+ elemBefore: providedElemBefore,
53
+ elemAfter,
54
+ actionsOnHover,
55
+ onClick,
56
+ children,
57
+ testId,
58
+ interactionName,
59
+ isContentTooltipDisabled,
60
+ visualContentRef,
61
+ isDragging,
62
+ hasDragIndicator,
63
+ dropIndicator
64
+ }, forwardedRef) => {
65
+ const id = useId();
66
+ const onExpansionToggle = useOnExpansionToggle();
67
+ const isExpanded = useIsExpanded();
68
+ const setIsExpanded = useSetIsExpanded();
69
+ const itemRef = useRef(null);
70
+ const handleIconClick = useCallback(() => {
71
+ onExpansionToggle === null || onExpansionToggle === void 0 ? void 0 : onExpansionToggle(!isExpanded);
72
+ setIsExpanded(!isExpanded);
73
+ }, [isExpanded, onExpansionToggle, setIsExpanded]);
74
+ const handleMenuContentClick = useCallback((event, analyticsEvent) => {
75
+ const newValue = !isExpanded;
76
+ onClick === null || onClick === void 0 ? void 0 : onClick(event, analyticsEvent, {
77
+ isExpanded: newValue
78
+ });
79
+ onExpansionToggle === null || onExpansionToggle === void 0 ? void 0 : onExpansionToggle(newValue);
80
+ setIsExpanded(newValue);
81
+ }, [onClick, onExpansionToggle, isExpanded, setIsExpanded]);
82
+ const isSelectable = typeof href !== 'undefined';
83
+ useScrollMenuItemIntoView({
84
+ elementRef: itemRef,
85
+ isSelected: Boolean(isSelectable && isSelected)
86
+ });
87
+
88
+ // Wrapped in an IconButton if the expandable menu item trigger is selectable
89
+ const elemBefore = isSelectable ? /*#__PURE__*/React.createElement(IconButton, {
90
+ icon: iconProps => /*#__PURE__*/React.createElement(ExpandableMenuItemIcon, {
91
+ iconProps: iconProps,
92
+ isExpanded: isExpanded,
93
+ isSelected: isSelected,
94
+ providedElemBefore: providedElemBefore
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 ? `${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,54 @@
1
+ /* expandable-menu-item.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import "./expandable-menu-item.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { forwardRef } from 'react';
6
+ import useControlled from '@atlaskit/ds-lib/use-controlled';
7
+ import { MenuListItem } from '../menu-list-item';
8
+ import { IsExpandedContext, OnExpansionToggleContext, SetIsExpandedContext } from './expandable-menu-item-context';
9
+ const relativeStyles = {
10
+ root: "_kqswh2mm"
11
+ };
12
+
13
+ /**
14
+ * __ExpandableMenuItem__
15
+ *
16
+ * A composable component for nested menu items that can be revealed and hidden by interacting witih the parent menu item.
17
+ *
18
+ * Follows the [disclosure pattern](https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/).
19
+ *
20
+ * Should be used with `ExpandableMenuItemTrigger` as the parent menu item, and children menu items should be wrapped in a `ExpandableMenuItemContent`.
21
+ *
22
+ * Usage example:
23
+ * ```jsx
24
+ * <ExpandableMenuItem>
25
+ * <ExpandableMenuItemTrigger>Parent menu item</ExpandableMenuItemTrigger>
26
+ * <ExpandableMenuItemContent>
27
+ * <ButtonMenuItem>Item 1</ButtonMenuItem>
28
+ * <ButtonMenuItem>Item 2</ButtonMenuItem>
29
+ * </ExpandableMenuItemContent>
30
+ * </ExpandableMenuItem>
31
+ * ```
32
+ */
33
+ export const ExpandableMenuItem = /*#__PURE__*/forwardRef(({
34
+ isExpanded: isExpandedControlled,
35
+ isDefaultExpanded = false,
36
+ onExpansionToggle,
37
+ children,
38
+ dropIndicator,
39
+ testId
40
+ }, forwardedRef) => {
41
+ const [isExpanded, setIsExpanded] = useControlled(isExpandedControlled, () => isDefaultExpanded);
42
+ return /*#__PURE__*/React.createElement(IsExpandedContext.Provider, {
43
+ value: isExpanded
44
+ }, /*#__PURE__*/React.createElement(SetIsExpandedContext.Provider, {
45
+ value: setIsExpanded
46
+ }, /*#__PURE__*/React.createElement(OnExpansionToggleContext.Provider, {
47
+ value: onExpansionToggle !== null && onExpansionToggle !== void 0 ? onExpansionToggle : null
48
+ }, /*#__PURE__*/React.createElement(MenuListItem, {
49
+ ref: forwardedRef,
50
+ testId: testId
51
+ }, /*#__PURE__*/React.createElement("div", {
52
+ className: ax([dropIndicator && relativeStyles.root])
53
+ }, children, dropIndicator)))));
54
+ });
@@ -0,0 +1,25 @@
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 const CloseButton = ({
16
+ label,
17
+ onClick,
18
+ testId
19
+ }) => /*#__PURE__*/React.createElement(IconButton, {
20
+ testId: testId,
21
+ appearance: "subtle",
22
+ icon: CrossIcon,
23
+ label: label,
24
+ onClick: onClick
25
+ });
@@ -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,33 @@
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
+ const 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 const FlyoutBody = /*#__PURE__*/React.forwardRef((props, ref) => {
17
+ const {
18
+ children,
19
+ testId,
20
+ onKeyDown,
21
+ onKeyUp,
22
+ onBlurCapture
23
+ } = props;
24
+ return /*#__PURE__*/React.createElement("div", {
25
+ ref: ref,
26
+ "data-testid": testId,
27
+ onKeyDown: onKeyDown,
28
+ onKeyUp: onKeyUp,
29
+ onBlurCapture: onBlurCapture,
30
+ role: "presentation",
31
+ className: ax([bodyStyles.root])
32
+ }, children);
33
+ });
@@ -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,24 @@
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
+ const 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 const FlyoutFooter = props => {
16
+ const {
17
+ children,
18
+ testId
19
+ } = props;
20
+ return /*#__PURE__*/React.createElement("div", {
21
+ "data-testid": testId,
22
+ className: ax([footerStyles.root])
23
+ }, children);
24
+ };