@atlaskit/editor-core 171.0.1 → 172.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 (300) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/codemods/172.0.0-transform-smartlinks-prop.ts +8 -0
  3. package/codemods/__tests__/rename-smartlinks-prop.ts +204 -0
  4. package/codemods/migrates/rename-smartlinks-prop.ts +56 -0
  5. package/dist/cjs/create-editor/ReactEditorView.js +13 -4
  6. package/dist/cjs/create-editor/create-plugins-list.js +21 -12
  7. package/dist/cjs/editor.js +8 -23
  8. package/dist/cjs/labs/next/internal/hooks/use-editor/index.js +6 -1
  9. package/dist/cjs/labs/next/presets/default.js +1 -1
  10. package/dist/cjs/nodeviews/context-adapter.js +2 -2
  11. package/dist/cjs/plugins/analytics/plugin.js +24 -11
  12. package/dist/cjs/plugins/base/index.js +3 -3
  13. package/dist/cjs/plugins/base/pm-plugins/disable-spell-checking.js +84 -0
  14. package/dist/cjs/plugins/card/index.js +1 -1
  15. package/dist/cjs/plugins/card/toolbar.js +11 -5
  16. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +5 -1
  17. package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +7 -7
  18. package/dist/cjs/plugins/clipboard/pm-plugins/main.js +4 -2
  19. package/dist/cjs/plugins/code-block/actions.js +13 -0
  20. package/dist/cjs/plugins/code-block/index.js +7 -0
  21. package/dist/cjs/plugins/code-block/nodeviews/code-block.js +2 -4
  22. package/dist/cjs/plugins/code-block/pm-plugins/codeBlockCopySelectionPlugin.js +132 -0
  23. package/dist/cjs/plugins/code-block/pm-plugins/main.js +1 -23
  24. package/dist/cjs/plugins/code-block/styles.js +3 -36
  25. package/dist/cjs/plugins/code-block/toolbar.js +9 -0
  26. package/dist/cjs/plugins/code-block/ui/class-names.js +1 -2
  27. package/dist/cjs/plugins/copy-button/commands.js +40 -20
  28. package/dist/cjs/plugins/copy-button/toolbar.js +51 -0
  29. package/dist/cjs/plugins/copy-button/utils.js +16 -38
  30. package/dist/cjs/plugins/expand/toolbar.js +8 -2
  31. package/dist/cjs/plugins/extension/toolbar.js +5 -1
  32. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +1 -1
  33. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +1 -1
  34. package/dist/cjs/plugins/extension/ui/Extension/styles.js +2 -4
  35. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +29 -18
  36. package/dist/cjs/plugins/feedback-dialog/index.js +2 -2
  37. package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +0 -20
  38. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +7 -32
  39. package/dist/cjs/plugins/hyperlink/Toolbar.js +146 -135
  40. package/dist/cjs/plugins/hyperlink/index.js +4 -4
  41. package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/index.js +50 -0
  42. package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/useEscapeClickaway.js +38 -0
  43. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +50 -5
  44. package/dist/cjs/plugins/indentation/commands/index.js +35 -7
  45. package/dist/cjs/plugins/indentation/commands/utils.js +11 -7
  46. package/dist/cjs/plugins/indentation/pm-plugins/keymap.js +5 -3
  47. package/dist/cjs/plugins/layout/toolbar.js +3 -1
  48. package/dist/cjs/plugins/media/toolbar/index.js +13 -5
  49. package/dist/cjs/plugins/mentions/analytics.js +5 -5
  50. package/dist/cjs/plugins/panel/toolbar.js +3 -3
  51. package/dist/cjs/plugins/paste/edge-cases/index.js +16 -3
  52. package/dist/cjs/plugins/paste/handlers.js +25 -2
  53. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +16 -3
  54. package/dist/cjs/plugins/paste/pm-plugins/main.js +22 -3
  55. package/dist/cjs/plugins/status/analytics.js +3 -3
  56. package/dist/cjs/plugins/table/toolbar.js +2 -2
  57. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/keymaps.js +43 -32
  58. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +33 -13
  59. package/dist/cjs/plugins/toolbar-lists-indentation/pm-plugins/indentation-buttons.js +122 -0
  60. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +8 -2
  61. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -2
  62. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +7 -1
  63. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +40 -19
  64. package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +10 -0
  65. package/dist/cjs/types/browser.js +6 -0
  66. package/dist/cjs/ui/Addon/click-area-helper.js +40 -19
  67. package/dist/cjs/ui/Appearance/Comment/Comment.js +2 -2
  68. package/dist/cjs/ui/ContentStyles/index.js +1 -3
  69. package/dist/cjs/ui/DropList/index.js +215 -0
  70. package/dist/cjs/ui/Dropdown/index.js +2 -5
  71. package/dist/cjs/ui/DropdownMenu/index.js +140 -86
  72. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +25 -14
  73. package/dist/cjs/ui/ElementBrowser/components/ElementList/cellSizeAndPositionGetter.js +2 -2
  74. package/dist/cjs/ui/ElementBrowser/components/ElementList/utils.js +28 -1
  75. package/dist/cjs/ui/ElementBrowser/constants.js +2 -7
  76. package/dist/cjs/ui/Layer/index.js +245 -0
  77. package/dist/cjs/ui/Layer/internal/helpers.js +70 -0
  78. package/dist/cjs/ui/PortalProvider/index.js +7 -26
  79. package/dist/cjs/version-wrapper.js +1 -1
  80. package/dist/cjs/version.json +1 -1
  81. package/dist/es2019/create-editor/ReactEditorView.js +15 -4
  82. package/dist/es2019/create-editor/create-plugins-list.js +21 -11
  83. package/dist/es2019/editor.js +9 -23
  84. package/dist/es2019/labs/next/internal/hooks/use-editor/index.js +6 -1
  85. package/dist/es2019/labs/next/presets/default.js +1 -1
  86. package/dist/es2019/nodeviews/context-adapter.js +2 -2
  87. package/dist/es2019/plugins/analytics/plugin.js +19 -4
  88. package/dist/es2019/plugins/base/index.js +3 -3
  89. package/dist/es2019/plugins/base/pm-plugins/disable-spell-checking.js +70 -0
  90. package/dist/es2019/plugins/card/index.js +1 -1
  91. package/dist/es2019/plugins/card/nodeviews/embedCard.js +1 -2
  92. package/dist/es2019/plugins/card/toolbar.js +10 -5
  93. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +5 -1
  94. package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +7 -7
  95. package/dist/es2019/plugins/clipboard/pm-plugins/main.js +1 -2
  96. package/dist/es2019/plugins/code-block/actions.js +12 -0
  97. package/dist/es2019/plugins/code-block/index.js +4 -0
  98. package/dist/es2019/plugins/code-block/nodeviews/code-block.js +1 -1
  99. package/dist/es2019/plugins/code-block/pm-plugins/codeBlockCopySelectionPlugin.js +112 -0
  100. package/dist/es2019/plugins/code-block/pm-plugins/main.js +1 -21
  101. package/dist/es2019/plugins/code-block/styles.js +2 -159
  102. package/dist/es2019/plugins/code-block/toolbar.js +8 -0
  103. package/dist/es2019/plugins/code-block/ui/class-names.js +1 -2
  104. package/dist/es2019/plugins/copy-button/commands.js +35 -15
  105. package/dist/es2019/plugins/copy-button/toolbar.js +29 -0
  106. package/dist/es2019/plugins/copy-button/utils.js +15 -27
  107. package/dist/es2019/plugins/expand/toolbar.js +4 -1
  108. package/dist/es2019/plugins/extension/toolbar.js +4 -1
  109. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +1 -1
  110. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +1 -1
  111. package/dist/es2019/plugins/extension/ui/Extension/styles.js +1 -3
  112. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +27 -15
  113. package/dist/es2019/plugins/feedback-dialog/index.js +1 -1
  114. package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +0 -19
  115. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +14 -29
  116. package/dist/es2019/plugins/hyperlink/Toolbar.js +11 -5
  117. package/dist/es2019/plugins/hyperlink/index.js +4 -4
  118. package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/index.js +24 -0
  119. package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/useEscapeClickaway.js +28 -0
  120. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +50 -9
  121. package/dist/es2019/plugins/indentation/commands/index.js +24 -9
  122. package/dist/es2019/plugins/indentation/commands/utils.js +8 -3
  123. package/dist/es2019/plugins/indentation/pm-plugins/keymap.js +5 -4
  124. package/dist/es2019/plugins/layout/toolbar.js +2 -1
  125. package/dist/es2019/plugins/media/toolbar/index.js +10 -3
  126. package/dist/es2019/plugins/mentions/analytics.js +1 -1
  127. package/dist/es2019/plugins/panel/toolbar.js +1 -1
  128. package/dist/es2019/plugins/paste/edge-cases/index.js +15 -3
  129. package/dist/es2019/plugins/paste/handlers.js +27 -2
  130. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +12 -3
  131. package/dist/es2019/plugins/paste/pm-plugins/main.js +24 -4
  132. package/dist/es2019/plugins/status/analytics.js +1 -1
  133. package/dist/es2019/plugins/table/toolbar.js +1 -1
  134. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/keymaps.js +10 -10
  135. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +23 -4
  136. package/dist/es2019/plugins/toolbar-lists-indentation/pm-plugins/indentation-buttons.js +104 -0
  137. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +8 -2
  138. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -2
  139. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +7 -1
  140. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +38 -16
  141. package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +9 -0
  142. package/dist/es2019/types/browser.js +2 -0
  143. package/dist/es2019/ui/Addon/click-area-helper.js +37 -18
  144. package/dist/es2019/ui/Appearance/Comment/Comment.js +2 -2
  145. package/dist/es2019/ui/ContentStyles/index.js +5 -9
  146. package/dist/es2019/ui/DropList/index.js +186 -0
  147. package/dist/es2019/ui/Dropdown/index.js +2 -6
  148. package/dist/es2019/ui/DropdownMenu/index.js +124 -75
  149. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +11 -22
  150. package/dist/es2019/ui/ElementBrowser/components/ElementList/cellSizeAndPositionGetter.js +3 -3
  151. package/dist/es2019/ui/ElementBrowser/components/ElementList/utils.js +26 -2
  152. package/dist/es2019/ui/ElementBrowser/constants.js +1 -4
  153. package/dist/es2019/ui/Layer/index.js +195 -0
  154. package/dist/es2019/ui/Layer/internal/helpers.js +62 -0
  155. package/dist/es2019/ui/PortalProvider/index.js +5 -23
  156. package/dist/es2019/version-wrapper.js +1 -1
  157. package/dist/es2019/version.json +1 -1
  158. package/dist/esm/create-editor/ReactEditorView.js +13 -4
  159. package/dist/esm/create-editor/create-plugins-list.js +21 -12
  160. package/dist/esm/editor.js +9 -23
  161. package/dist/esm/labs/next/internal/hooks/use-editor/index.js +6 -1
  162. package/dist/esm/labs/next/presets/default.js +1 -1
  163. package/dist/esm/nodeviews/context-adapter.js +2 -2
  164. package/dist/esm/plugins/analytics/plugin.js +24 -11
  165. package/dist/esm/plugins/base/index.js +3 -3
  166. package/dist/esm/plugins/base/pm-plugins/disable-spell-checking.js +72 -0
  167. package/dist/esm/plugins/card/index.js +1 -1
  168. package/dist/esm/plugins/card/nodeviews/embedCard.js +1 -2
  169. package/dist/esm/plugins/card/toolbar.js +11 -5
  170. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +5 -1
  171. package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +7 -7
  172. package/dist/esm/plugins/clipboard/pm-plugins/main.js +1 -2
  173. package/dist/esm/plugins/code-block/actions.js +12 -0
  174. package/dist/esm/plugins/code-block/index.js +6 -0
  175. package/dist/esm/plugins/code-block/nodeviews/code-block.js +2 -4
  176. package/dist/esm/plugins/code-block/pm-plugins/codeBlockCopySelectionPlugin.js +112 -0
  177. package/dist/esm/plugins/code-block/pm-plugins/main.js +1 -20
  178. package/dist/esm/plugins/code-block/styles.js +4 -32
  179. package/dist/esm/plugins/code-block/toolbar.js +8 -0
  180. package/dist/esm/plugins/code-block/ui/class-names.js +1 -2
  181. package/dist/esm/plugins/copy-button/commands.js +35 -15
  182. package/dist/esm/plugins/copy-button/toolbar.js +31 -0
  183. package/dist/esm/plugins/copy-button/utils.js +14 -29
  184. package/dist/esm/plugins/expand/toolbar.js +6 -2
  185. package/dist/esm/plugins/extension/toolbar.js +4 -1
  186. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +1 -1
  187. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +1 -1
  188. package/dist/esm/plugins/extension/ui/Extension/styles.js +3 -4
  189. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +28 -16
  190. package/dist/esm/plugins/feedback-dialog/index.js +1 -1
  191. package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +0 -21
  192. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +8 -27
  193. package/dist/esm/plugins/hyperlink/Toolbar.js +144 -135
  194. package/dist/esm/plugins/hyperlink/index.js +4 -4
  195. package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/index.js +26 -0
  196. package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/useEscapeClickaway.js +28 -0
  197. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +46 -5
  198. package/dist/esm/plugins/indentation/commands/index.js +30 -9
  199. package/dist/esm/plugins/indentation/commands/utils.js +12 -8
  200. package/dist/esm/plugins/indentation/pm-plugins/keymap.js +5 -4
  201. package/dist/esm/plugins/layout/toolbar.js +2 -1
  202. package/dist/esm/plugins/media/toolbar/index.js +12 -5
  203. package/dist/esm/plugins/mentions/analytics.js +1 -1
  204. package/dist/esm/plugins/panel/toolbar.js +1 -1
  205. package/dist/esm/plugins/paste/edge-cases/index.js +15 -3
  206. package/dist/esm/plugins/paste/handlers.js +23 -2
  207. package/dist/esm/plugins/paste/pm-plugins/analytics.js +13 -3
  208. package/dist/esm/plugins/paste/pm-plugins/main.js +23 -4
  209. package/dist/esm/plugins/status/analytics.js +1 -1
  210. package/dist/esm/plugins/table/toolbar.js +1 -1
  211. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/keymaps.js +37 -31
  212. package/dist/esm/plugins/toolbar-lists-indentation/index.js +32 -13
  213. package/dist/esm/plugins/toolbar-lists-indentation/pm-plugins/indentation-buttons.js +105 -0
  214. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +8 -2
  215. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -2
  216. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +7 -1
  217. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +38 -20
  218. package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +9 -0
  219. package/dist/esm/types/browser.js +2 -0
  220. package/dist/esm/ui/Addon/click-area-helper.js +37 -18
  221. package/dist/esm/ui/Appearance/Comment/Comment.js +2 -2
  222. package/dist/esm/ui/ContentStyles/index.js +2 -4
  223. package/dist/esm/ui/DropList/index.js +203 -0
  224. package/dist/esm/ui/Dropdown/index.js +2 -6
  225. package/dist/esm/ui/DropdownMenu/index.js +134 -88
  226. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +27 -17
  227. package/dist/esm/ui/ElementBrowser/components/ElementList/cellSizeAndPositionGetter.js +3 -3
  228. package/dist/esm/ui/ElementBrowser/components/ElementList/utils.js +26 -2
  229. package/dist/esm/ui/ElementBrowser/constants.js +1 -4
  230. package/dist/esm/ui/Layer/index.js +228 -0
  231. package/dist/esm/ui/Layer/internal/helpers.js +62 -0
  232. package/dist/esm/ui/PortalProvider/index.js +7 -26
  233. package/dist/esm/version-wrapper.js +1 -1
  234. package/dist/esm/version.json +1 -1
  235. package/dist/types/labs/next/presets/default.d.ts +2 -0
  236. package/dist/types/plugins/analytics/plugin.d.ts +5 -1
  237. package/dist/types/plugins/analytics/types/cut-copy-events.d.ts +2 -0
  238. package/dist/types/plugins/analytics/types/general-events.d.ts +1 -0
  239. package/dist/types/plugins/analytics/types/paste-events.d.ts +1 -0
  240. package/dist/types/plugins/base/index.d.ts +1 -1
  241. package/dist/types/plugins/base/pm-plugins/{fix-chrome-spell-checking.d.ts → disable-spell-checking.d.ts} +0 -0
  242. package/dist/types/plugins/card/index.d.ts +2 -7
  243. package/dist/types/plugins/card/nodeviews/genericCard.d.ts +2 -1
  244. package/dist/types/plugins/card/toolbar.d.ts +3 -5
  245. package/dist/types/plugins/card/types.d.ts +2 -0
  246. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +4 -1
  247. package/dist/types/plugins/card/ui/LinkToolbarAppearance.d.ts +2 -1
  248. package/dist/types/plugins/clipboard/pm-plugins/main.d.ts +3 -0
  249. package/dist/types/plugins/code-block/nodeviews/code-block.d.ts +1 -1
  250. package/dist/types/plugins/code-block/pm-plugins/codeBlockCopySelectionPlugin.d.ts +11 -0
  251. package/dist/types/plugins/code-block/styles.d.ts +0 -1
  252. package/dist/types/plugins/code-block/ui/class-names.d.ts +0 -1
  253. package/dist/types/plugins/copy-button/commands.d.ts +2 -2
  254. package/dist/types/plugins/copy-button/toolbar.d.ts +7 -0
  255. package/dist/types/plugins/copy-button/utils.d.ts +7 -6
  256. package/dist/types/plugins/floating-toolbar/types.d.ts +1 -2
  257. package/dist/types/plugins/hyperlink/Toolbar.d.ts +2 -1
  258. package/dist/types/plugins/hyperlink/index.d.ts +2 -2
  259. package/dist/types/plugins/hyperlink/types.d.ts +30 -0
  260. package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/index.d.ts +7 -0
  261. package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/useEscapeClickaway.d.ts +2 -0
  262. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +4 -3
  263. package/dist/types/plugins/indentation/commands/index.d.ts +6 -2
  264. package/dist/types/plugins/indentation/commands/utils.d.ts +8 -2
  265. package/dist/types/plugins/paste/edge-cases/index.d.ts +3 -2
  266. package/dist/types/plugins/paste/handlers.d.ts +1 -0
  267. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +7 -1
  268. package/dist/types/plugins/tasks-and-decisions/pm-plugins/keymaps.d.ts +5 -0
  269. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +2 -1
  270. package/dist/types/plugins/toolbar-lists-indentation/pm-plugins/indentation-buttons.d.ts +14 -0
  271. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +2 -0
  272. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +2 -0
  273. package/dist/types/types/browser.d.ts +10 -0
  274. package/dist/types/types/editor-props.d.ts +6 -5
  275. package/dist/types/types/feature-flags.d.ts +29 -24
  276. package/dist/types/types/index.d.ts +1 -0
  277. package/dist/types/ui/Addon/click-area-helper.d.ts +10 -0
  278. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +2 -2
  279. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  280. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  281. package/dist/types/ui/DropList/index.d.ts +22 -0
  282. package/dist/types/ui/Dropdown/index.d.ts +2 -1
  283. package/dist/types/ui/DropdownMenu/index.d.ts +0 -1
  284. package/dist/types/ui/ElementBrowser/components/ElementList/cellSizeAndPositionGetter.d.ts +1 -1
  285. package/dist/types/ui/ElementBrowser/components/ElementList/utils.d.ts +1 -0
  286. package/dist/types/ui/ElementBrowser/constants.d.ts +1 -3
  287. package/dist/types/ui/Layer/index.d.ts +47 -0
  288. package/dist/types/ui/Layer/internal/helpers.d.ts +5 -0
  289. package/package.json +23 -18
  290. package/dist/cjs/plugins/base/pm-plugins/fix-chrome-spell-checking.js +0 -37
  291. package/dist/cjs/plugins/code-block/nodeviews/highlighting-code-block.js +0 -195
  292. package/dist/cjs/utils/check-if-mobile-bridge.js +0 -19
  293. package/dist/es2019/plugins/base/pm-plugins/fix-chrome-spell-checking.js +0 -22
  294. package/dist/es2019/plugins/code-block/nodeviews/highlighting-code-block.js +0 -152
  295. package/dist/es2019/utils/check-if-mobile-bridge.js +0 -12
  296. package/dist/esm/plugins/base/pm-plugins/fix-chrome-spell-checking.js +0 -24
  297. package/dist/esm/plugins/code-block/nodeviews/highlighting-code-block.js +0 -178
  298. package/dist/esm/utils/check-if-mobile-bridge.js +0 -12
  299. package/dist/types/plugins/code-block/nodeviews/highlighting-code-block.d.ts +0 -48
  300. package/dist/types/utils/check-if-mobile-bridge.d.ts +0 -1
@@ -88,11 +88,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
88
88
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
89
89
 
90
90
  var contentStyles = function contentStyles(props) {
91
- var _props$featureFlags;
92
-
93
91
  return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .ProseMirror {\n outline: none;\n font-size: ", "px;\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n }\n\n .ProseMirror[contenteditable='false'] .taskItemView-content-wrap {\n pointer-events: none;\n opacity: 0.7;\n }\n\n .ProseMirror-hideselection *::selection {\n background: transparent;\n }\n\n .ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n }\n\n .ProseMirror-selectednode {\n outline: none;\n }\n\n .ProseMirror-selectednode:empty {\n outline: 2px solid ", ";\n }\n\n ", "\n ", "\n ", "\n\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", ";\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n\n .panelView-content-wrap {\n box-sizing: border-box;\n }\n\n .mediaGroupView-content-wrap ul {\n padding: 0;\n }\n\n /** Needed to override any cleared floats, e.g. image wrapping */\n\n div.fabric-editor-block-mark[class^='fabric-editor-align'] {\n clear: none !important;\n }\n\n .fabric-editor-align-end {\n text-align: right;\n }\n\n .fabric-editor-align-start {\n text-align: left;\n }\n\n .fabric-editor-align-center {\n text-align: center;\n }\n\n .pm-table-header-content-wrap,\n .pm-table-cell-content-wrap div.fabric-editor-block-mark {\n p:first-of-type {\n margin-top: 0;\n }\n }\n\n .hyperlink-floating-toolbar,\n .", " {\n padding: 0;\n }\n\n /* Link icon in the Atlaskit package\n is bigger than the others\n */\n .hyperlink-open-link {\n svg {\n max-width: 18px;\n }\n &[href] {\n padding: 0 4px;\n }\n }\n"])), (0, _editorSharedStyles.editorFontSize)({
94
92
  theme: props.theme
95
- }), _styles.whitespaceSharedStyles, _styles.paragraphSharedStyles, _styles.listsSharedStyles, _styles.indentationSharedStyles, _styles.shadowSharedStyle, _getInlineNodeViewProducer.InlineNodeViewSharedStyles, (0, _tokens.token)('color.border.focused', '#8cf'), _styles17.placeholderTextStyles, _styles5.placeholderStyles, (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.codeBlockSyntaxHighlighting ? (0, _styles7.highlightingCodeBlockStyles)(props) : (0, _styles7.codeBlockStyles)(props), (0, _styles6.blocktypeStyles)(props), (0, _styles16.textFormattingStyles)(props), _styles.textColorStyles, _styles8.listsStyles, (0, _styles9.ruleStyles)(props), _styles10.mediaStyles, _styles11.layoutStyles, _styles3.telepointerStyle, _styles4.gapCursorStyles, (0, _commonStyles.tableStyles)(props), (0, _styles12.panelStyles)(props), _styles13.fakeCursorStyles, _styles14.mentionsStyles, _styles15.emojiStyles, _styles.tasksAndDecisionsStyles, _styles18.gridStyles, _styles19.linkStyles, _styles.blockMarksSharedStyles, _styles.dateSharedStyle, _styles20.extensionStyles, (0, _styles21.expandStyles)(props), _styles22.findReplaceStyles, _styles23.taskDecisionStyles, _styles24.statusStyles, (0, _styles.annotationSharedStyles)(props), _styles25.smartCardStyles, _styles.smartCardSharedStyles, _styles26.dateStyles, _styled.embedCardStyles, _styles2.unsupportedStyles, _style.ClassNames.FLOATING_TOOLBAR_COMPONENT);
93
+ }), _styles.whitespaceSharedStyles, _styles.paragraphSharedStyles, _styles.listsSharedStyles, _styles.indentationSharedStyles, _styles.shadowSharedStyle, _getInlineNodeViewProducer.InlineNodeViewSharedStyles, (0, _tokens.token)('color.border.focused', '#8cf'), _styles17.placeholderTextStyles, _styles5.placeholderStyles, (0, _styles7.codeBlockStyles)(props), (0, _styles6.blocktypeStyles)(props), (0, _styles16.textFormattingStyles)(props), _styles.textColorStyles, _styles8.listsStyles, (0, _styles9.ruleStyles)(props), _styles10.mediaStyles, _styles11.layoutStyles, _styles3.telepointerStyle, _styles4.gapCursorStyles, (0, _commonStyles.tableStyles)(props), (0, _styles12.panelStyles)(props), _styles13.fakeCursorStyles, _styles14.mentionsStyles, _styles15.emojiStyles, _styles.tasksAndDecisionsStyles, _styles18.gridStyles, _styles19.linkStyles, _styles.blockMarksSharedStyles, _styles.dateSharedStyle, _styles20.extensionStyles, (0, _styles21.expandStyles)(props), _styles22.findReplaceStyles, _styles23.taskDecisionStyles, _styles24.statusStyles, (0, _styles.annotationSharedStyles)(props), _styles25.smartCardStyles, _styles.smartCardSharedStyles, _styles26.dateStyles, _styled.embedCardStyles, _styles2.unsupportedStyles, _style.ClassNames.FLOATING_TOOLBAR_COMPONENT);
96
94
  };
97
95
 
98
96
  var createEditorContentStyle = function createEditorContentStyle(styles) {
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = require("react");
27
+
28
+ var _react2 = require("@emotion/react");
29
+
30
+ var _analyticsNext = require("@atlaskit/analytics-next");
31
+
32
+ var _Layer = _interopRequireDefault(require("../Layer"));
33
+
34
+ var _constants = require("@atlaskit/theme/constants");
35
+
36
+ var _colors = require("@atlaskit/theme/colors");
37
+
38
+ var _components = require("@atlaskit/theme/components");
39
+
40
+ var _tokens = require("@atlaskit/tokens");
41
+
42
+ var _templateObject, _templateObject2, _templateObject3;
43
+
44
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
45
+
46
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
+
48
+ var packageName = "@atlaskit/editor-core";
49
+ var packageVersion = "172.0.0";
50
+ var halfFocusRing = 1;
51
+ var dropOffset = "0, ".concat((0, _constants.gridSize)(), "px");
52
+
53
+ var DropList = /*#__PURE__*/function (_Component) {
54
+ (0, _inherits2.default)(DropList, _Component);
55
+
56
+ var _super = _createSuper(DropList);
57
+
58
+ function DropList() {
59
+ var _this;
60
+
61
+ (0, _classCallCheck2.default)(this, DropList);
62
+
63
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
64
+ args[_key] = arguments[_key];
65
+ }
66
+
67
+ _this = _super.call.apply(_super, [this].concat(args));
68
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "wrapperStyles", (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n transition-duration: 0.2s;\n transition: box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);\n "])), _this.props.shouldFitContainer ? 'display: block; flex: 1 1 auto;' : 'display: inline-flex;'));
69
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "triggerStyles", (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n transition-duration: 0.2s;\n transition: box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);\n ", "\n "])), _this.props.shouldFitContainer ? 'display: block; box-sizing: border-box;' : 'display: inline-flex;'));
70
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "menuWrapper", function (theme) {
71
+ return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n background-color: ", ";\n border-radius: ", "px;\n box-shadow: 0 ", "px ", "px -", "px ", ",\n 0 0 1px ", ";\n box-sizing: border-box;\n overflow: auto;\n padding: ", "px 0;\n max-height: 90vh;\n "])), (0, _components.themed)({
72
+ light: (0, _tokens.token)('color.text', _colors.N900),
73
+ dark: (0, _tokens.token)('color.text', _colors.DN600)
74
+ })(theme), (0, _components.themed)({
75
+ light: (0, _tokens.token)('elevation.surface.overlay', _colors.N0),
76
+ dark: (0, _tokens.token)('elevation.surface.overlay', _colors.DN50)
77
+ })(theme), (0, _constants.borderRadius)(), (0, _constants.gridSize)() / 2, (0, _constants.gridSize)(), (0, _constants.gridSize)() / 4, _colors.N50A, _colors.N60A, (0, _constants.gridSize)() / 2);
78
+ });
79
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidMount", function () {
80
+ _this.setContentWidth(); // We use a captured event here to avoid a radio or checkbox dropdown item firing its
81
+ // click event first, which would cause a re-render of the element and prevent DropList
82
+ // from detecting the actual source of this original click event.
83
+
84
+
85
+ document.addEventListener('click', _this.handleClickOutside, true);
86
+ document.addEventListener('keydown', _this.handleEsc);
87
+ });
88
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidUpdate", function () {
89
+ if (_this.props.isOpen) {
90
+ _this.setContentWidth();
91
+ }
92
+ });
93
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentWillUnmount", function () {
94
+ document.removeEventListener('click', _this.handleClickOutside, true);
95
+ document.removeEventListener('keydown', _this.handleEsc);
96
+ });
97
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setContentWidth", function () {
98
+ var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
99
+ dropContentRef = _assertThisInitialize.dropContentRef,
100
+ triggerRef = _assertThisInitialize.triggerRef;
101
+
102
+ var shouldFitContainer = _this.props.shouldFitContainer; // We need to manually set the content width to match the trigger width
103
+
104
+ if (shouldFitContainer && dropContentRef && triggerRef) {
105
+ dropContentRef.style.width = "".concat(triggerRef.offsetWidth - halfFocusRing * 2, "px");
106
+ }
107
+ });
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleEsc", function (event) {
109
+ if ((event.key === 'Escape' || event.key === 'Esc') && _this.props.isOpen) {
110
+ _this.close(event);
111
+ }
112
+ });
113
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleClickOutside", function (event) {
114
+ if (_this.props.isOpen) {
115
+ if (event.target instanceof Node) {
116
+ // Rather than check for the target within the entire DropList, we specify the trigger/content.
117
+ // This aids with future effort in scroll-locking DropList when isMenuFixed is enabled; the scroll
118
+ // blanket which stretches to the viewport should not stop 'close' from being triggered.
119
+ var withinTrigger = _this.triggerRef && _this.triggerRef.contains(event.target);
120
+
121
+ var withinContent = _this.dropContentRef && _this.dropContentRef.contains(event.target);
122
+
123
+ if (!withinTrigger && !withinContent) {
124
+ _this.close(event);
125
+ }
126
+ }
127
+ }
128
+ });
129
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "close", function (event) {
130
+ if (_this.props.onOpenChange) {
131
+ _this.props.onOpenChange({
132
+ isOpen: false,
133
+ event: event
134
+ });
135
+ }
136
+ });
137
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleContentRef", function (ref) {
138
+ _this.dropContentRef = ref; // If the dropdown has just been opened, we focus on the containing element so the
139
+ // user can tab to the first dropdown item. We will only receive this ref if isOpen
140
+ // is true or null, so no need to check for truthiness here.
141
+
142
+ if (ref) {
143
+ ref.focus();
144
+ }
145
+ });
146
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleTriggerRef", function (ref) {
147
+ _this.triggerRef = ref;
148
+ });
149
+ return _this;
150
+ }
151
+
152
+ (0, _createClass2.default)(DropList, [{
153
+ key: "getChildContext",
154
+ value: function getChildContext() {
155
+ return {
156
+ shouldAllowMultilineItems: false
157
+ };
158
+ }
159
+ }, {
160
+ key: "render",
161
+ value: function render() {
162
+ var _this2 = this;
163
+
164
+ var _this$props = this.props,
165
+ children = _this$props.children,
166
+ isOpen = _this$props.isOpen,
167
+ position = _this$props.position,
168
+ trigger = _this$props.trigger,
169
+ onPositioned = _this$props.onPositioned,
170
+ testId = _this$props.testId;
171
+ var layerContent = isOpen ? (0, _react2.jsx)("div", {
172
+ css: function css(theme) {
173
+ return _this2.menuWrapper({
174
+ theme: theme
175
+ });
176
+ },
177
+ "data-role": "droplistContent",
178
+ "data-testid": testId && "".concat(testId, "--content"),
179
+ ref: this.handleContentRef
180
+ }, children) : null;
181
+ return (0, _react2.jsx)("div", {
182
+ css: this.wrapperStyles
183
+ }, (0, _react2.jsx)(_Layer.default, {
184
+ content: layerContent,
185
+ offset: dropOffset,
186
+ position: position,
187
+ onPositioned: onPositioned
188
+ }, (0, _react2.jsx)("div", {
189
+ css: this.triggerStyles,
190
+ ref: this.handleTriggerRef
191
+ }, trigger)));
192
+ }
193
+ }]);
194
+ return DropList;
195
+ }(_react.Component);
196
+
197
+ var createAndFireEventOnAtlaskit = (0, _analyticsNext.createAndFireEvent)('atlaskit');
198
+
199
+ var _default = (0, _analyticsNext.withAnalyticsContext)({
200
+ componentName: 'droplist',
201
+ packageName: packageName,
202
+ packageVersion: packageVersion
203
+ })((0, _analyticsNext.withAnalyticsEvents)({
204
+ onOpenChange: createAndFireEventOnAtlaskit({
205
+ action: 'toggled',
206
+ actionSubject: 'droplist',
207
+ attributes: {
208
+ componentName: 'droplist',
209
+ packageName: packageName,
210
+ packageVersion: packageVersion
211
+ }
212
+ })
213
+ })(DropList));
214
+
215
+ exports.default = _default;
@@ -25,7 +25,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var _react = _interopRequireWildcard(require("react"));
27
27
 
28
- var _droplist = _interopRequireDefault(require("@atlaskit/droplist"));
28
+ var _DropList = _interopRequireDefault(require("../DropList"));
29
29
 
30
30
  var _ui = require("@atlaskit/editor-common/ui");
31
31
 
@@ -100,13 +100,10 @@ var Dropdown = /*#__PURE__*/function (_PureComponent) {
100
100
  height: 0,
101
101
  minWidth: fitWidth || 0
102
102
  }
103
- }, /*#__PURE__*/_react.default.createElement(_droplist.default, {
104
- disabled: true,
103
+ }, /*#__PURE__*/_react.default.createElement(_DropList.default, {
105
104
  isOpen: true,
106
105
  onOpenChange: onOpenChange,
107
- appearance: "tall",
108
106
  position: popupPlacement.join(' '),
109
- shouldFlip: false,
110
107
  shouldFitContainer: true
111
108
  }, children)));
112
109
  }
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
17
 
14
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -25,13 +29,13 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
29
 
26
30
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
27
31
 
28
- var _react = require("react");
32
+ var _react = _interopRequireWildcard(require("react"));
29
33
 
30
34
  var _react2 = require("@emotion/react");
31
35
 
32
- var _droplist = _interopRequireDefault(require("@atlaskit/droplist"));
36
+ var _DropList = _interopRequireDefault(require("../DropList"));
33
37
 
34
- var _item = _interopRequireWildcard(require("@atlaskit/item"));
38
+ var _menu = require("@atlaskit/menu");
35
39
 
36
40
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
37
41
 
@@ -41,6 +45,14 @@ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
41
45
 
42
46
  var _withOuterListeners = _interopRequireDefault(require("../with-outer-listeners"));
43
47
 
48
+ var _colors = require("@atlaskit/theme/colors");
49
+
50
+ var _components = require("@atlaskit/theme/components");
51
+
52
+ var _tokens = require("@atlaskit/tokens");
53
+
54
+ var _excluded = ["children"];
55
+
44
56
  var _templateObject, _templateObject2, _templateObject3;
45
57
 
46
58
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -52,18 +64,33 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
52
64
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
65
 
54
66
  var wrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* tooltip in ToolbarButton is display:block */\n & > div > div {\n display: flex;\n }\n"])));
55
- var DropListWithOutsideListeners = (0, _withOuterListeners.default)(_droplist.default);
56
- /**
57
- * Hack for item to imitate old dropdown-menu selected styles
58
- */
59
- // TODO: https://product-fabric.atlassian.net/browse/DSP-4500
60
67
 
61
- /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
62
-
63
- var itemWrapper = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n && > span,\n && > span:hover {\n background: #6c798f;\n color: #fff;\n }\n"])));
64
- /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
68
+ var buttonStyles = function buttonStyles(isActive) {
69
+ return function (theme) {
70
+ if (isActive) {
71
+ /**
72
+ * Hack for item to imitate old dropdown-menu selected styles
73
+ */
74
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4500
75
+
76
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
77
+ return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n > span,\n > span:hover {\n background: #6c798f;\n color: #fff;\n }\n "])));
78
+ } else {
79
+ return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n > span:hover[aria-disabled='false'] {\n color: ", ";\n background-color: ", ";\n }\n > span[aria-disabled='true'] {\n color: ", ";\n }\n "])), (0, _components.themed)({
80
+ light: (0, _tokens.token)('color.text', _colors.N900),
81
+ dark: (0, _tokens.token)('color.text', _colors.DN600)
82
+ })(theme), (0, _components.themed)({
83
+ light: (0, _tokens.token)('color.background.neutral.subtle.hovered', 'rgb(244, 245, 247)'),
84
+ dark: (0, _tokens.token)('color.background.neutral.subtle.hovered', 'rgb(59, 71, 92)')
85
+ })(theme), (0, _components.themed)({
86
+ light: (0, _tokens.token)('color.text.disabled', _colors.N70),
87
+ dark: (0, _tokens.token)('color.text.disabled', _colors.DN80)
88
+ })(theme));
89
+ }
90
+ };
91
+ };
65
92
 
66
- var itemContentWrapper = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: 8px;\n"])));
93
+ var DropListWithOutsideListeners = (0, _withOuterListeners.default)(_DropList.default);
67
94
  /**
68
95
  * Wrapper around @atlaskit/droplist which uses Popup and Portal to render
69
96
  * dropdown-menu outside of "overflow: hidden" containers when needed.
@@ -114,62 +141,6 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
114
141
  }
115
142
 
116
143
  (0, _createClass2.default)(DropdownMenuWrapper, [{
117
- key: "renderItem",
118
- value: function renderItem(item) {
119
- var _this$props = this.props,
120
- onItemActivated = _this$props.onItemActivated,
121
- _onMouseEnter = _this$props.onMouseEnter,
122
- _onMouseLeave = _this$props.onMouseLeave,
123
- shouldUseDefaultRole = _this$props.shouldUseDefaultRole; // onClick and value.name are the action indicators in the handlers
124
- // If neither are present, don't wrap in an Item.
125
-
126
- if (!item.onClick && !item.value && !item.value.name) {
127
- return (0, _react2.jsx)("span", {
128
- key: String(item.content)
129
- }, item.content);
130
- }
131
-
132
- var dropListItem = (0, _react2.jsx)("div", {
133
- css: item.isActive ? itemWrapper : '',
134
- key: item.key || item.content
135
- }, (0, _react2.jsx)(_item.default, {
136
- role: shouldUseDefaultRole ? 'button' : 'menuitem',
137
- elemBefore: item.elemBefore,
138
- elemAfter: item.elemAfter,
139
- isDisabled: item.isDisabled,
140
- onClick: function onClick() {
141
- return onItemActivated && onItemActivated({
142
- item: item
143
- });
144
- },
145
- onMouseEnter: function onMouseEnter() {
146
- return _onMouseEnter && _onMouseEnter({
147
- item: item
148
- });
149
- },
150
- onMouseLeave: function onMouseLeave() {
151
- return _onMouseLeave && _onMouseLeave({
152
- item: item
153
- });
154
- },
155
- className: item.className,
156
- "aria-label": item.label || String(item.content),
157
- "aria-pressed": shouldUseDefaultRole ? item.isActive : undefined
158
- }, (0, _react2.jsx)("span", {
159
- css: !!item.elemBefore ? itemContentWrapper : ''
160
- }, item.content)));
161
-
162
- if (item.tooltipDescription) {
163
- return (0, _react2.jsx)(_tooltip.default, {
164
- key: item.key || item.content,
165
- content: item.tooltipDescription,
166
- position: item.tooltipPosition
167
- }, dropListItem);
168
- }
169
-
170
- return dropListItem;
171
- }
172
- }, {
173
144
  key: "renderDropdownMenu",
174
145
  value: function renderDropdownMenu() {
175
146
  var _this2 = this;
@@ -177,17 +148,17 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
177
148
  var _this$state = this.state,
178
149
  target = _this$state.target,
179
150
  popupPlacement = _this$state.popupPlacement;
180
- var _this$props2 = this.props,
181
- items = _this$props2.items,
182
- mountTo = _this$props2.mountTo,
183
- boundariesElement = _this$props2.boundariesElement,
184
- scrollableElement = _this$props2.scrollableElement,
185
- offset = _this$props2.offset,
186
- fitHeight = _this$props2.fitHeight,
187
- fitWidth = _this$props2.fitWidth,
188
- isOpen = _this$props2.isOpen,
189
- zIndex = _this$props2.zIndex,
190
- shouldUseDefaultRole = _this$props2.shouldUseDefaultRole;
151
+ var _this$props = this.props,
152
+ items = _this$props.items,
153
+ mountTo = _this$props.mountTo,
154
+ boundariesElement = _this$props.boundariesElement,
155
+ scrollableElement = _this$props.scrollableElement,
156
+ offset = _this$props.offset,
157
+ fitHeight = _this$props.fitHeight,
158
+ fitWidth = _this$props.fitWidth,
159
+ isOpen = _this$props.isOpen,
160
+ zIndex = _this$props.zIndex,
161
+ shouldUseDefaultRole = _this$props.shouldUseDefaultRole;
191
162
  return (0, _react2.jsx)(_ui.Popup, {
192
163
  target: isOpen ? target : undefined,
193
164
  mountTo: mountTo,
@@ -213,20 +184,29 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
213
184
  minWidth: fitWidth || 0
214
185
  }
215
186
  }), items.map(function (group, index) {
216
- return (0, _react2.jsx)(_item.ItemGroup, {
187
+ return (0, _react2.jsx)(_menu.MenuGroup, {
217
188
  key: index,
218
189
  role: shouldUseDefaultRole ? 'group' : 'menu'
219
190
  }, group.items.map(function (item) {
220
- return _this2.renderItem(item);
191
+ var _item$key;
192
+
193
+ return (0, _react2.jsx)(DropdownMenuItem, {
194
+ key: (_item$key = item.key) !== null && _item$key !== void 0 ? _item$key : String(item.content),
195
+ item: item,
196
+ onItemActivated: _this2.props.onItemActivated,
197
+ shouldUseDefaultRole: _this2.props.shouldUseDefaultRole,
198
+ onMouseEnter: _this2.props.onMouseEnter,
199
+ onMouseLeave: _this2.props.onMouseLeave
200
+ });
221
201
  }));
222
202
  })));
223
203
  }
224
204
  }, {
225
205
  key: "render",
226
206
  value: function render() {
227
- var _this$props3 = this.props,
228
- children = _this$props3.children,
229
- isOpen = _this$props3.isOpen;
207
+ var _this$props2 = this.props,
208
+ children = _this$props2.children,
209
+ isOpen = _this$props2.isOpen;
230
210
  return (0, _react2.jsx)("div", {
231
211
  css: wrapper
232
212
  }, (0, _react2.jsx)("div", {
@@ -237,4 +217,78 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
237
217
  return DropdownMenuWrapper;
238
218
  }(_react.PureComponent);
239
219
 
240
- exports.default = DropdownMenuWrapper;
220
+ exports.default = DropdownMenuWrapper;
221
+
222
+ var DropdownMenuItemCustomComponent = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
223
+ var children = props.children,
224
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
225
+ return (0, _react2.jsx)("span", (0, _extends2.default)({
226
+ ref: ref
227
+ }, rest), children);
228
+ });
229
+
230
+ function DropdownMenuItem(_ref) {
231
+ var _item$key2;
232
+
233
+ var item = _ref.item,
234
+ onItemActivated = _ref.onItemActivated,
235
+ shouldUseDefaultRole = _ref.shouldUseDefaultRole,
236
+ _onMouseEnter = _ref.onMouseEnter,
237
+ _onMouseLeave = _ref.onMouseLeave;
238
+
239
+ // onClick and value.name are the action indicators in the handlers
240
+ // If neither are present, don't wrap in an Item.
241
+ if (!item.onClick && !(item.value && item.value.name)) {
242
+ return (0, _react2.jsx)("span", {
243
+ key: String(item.content)
244
+ }, item.content);
245
+ }
246
+
247
+ var dropListItem = (0, _react2.jsx)("div", {
248
+ css: function css(theme) {
249
+ return buttonStyles(item.isActive)({
250
+ theme: theme
251
+ });
252
+ }
253
+ }, (0, _react2.jsx)(_menu.CustomItem, {
254
+ item: item,
255
+ key: (_item$key2 = item.key) !== null && _item$key2 !== void 0 ? _item$key2 : String(item.content),
256
+ role: shouldUseDefaultRole ? 'button' : 'menuitem',
257
+ iconBefore: item.elemBefore,
258
+ iconAfter: item.elemAfter,
259
+ isDisabled: item.isDisabled,
260
+ onClick: function onClick() {
261
+ return onItemActivated && onItemActivated({
262
+ item: item
263
+ });
264
+ },
265
+ "aria-label": item['aria-label'] || String(item.content),
266
+ "aria-pressed": shouldUseDefaultRole ? item.isActive : undefined,
267
+ onMouseDown: function onMouseDown(e) {
268
+ e.preventDefault();
269
+ },
270
+ component: DropdownMenuItemCustomComponent,
271
+ onMouseEnter: function onMouseEnter() {
272
+ return _onMouseEnter && _onMouseEnter({
273
+ item: item
274
+ });
275
+ },
276
+ onMouseLeave: function onMouseLeave() {
277
+ return _onMouseLeave && _onMouseLeave({
278
+ item: item
279
+ });
280
+ }
281
+ }, item.content));
282
+
283
+ if (item.tooltipDescription) {
284
+ var _item$key3;
285
+
286
+ return (0, _react2.jsx)(_tooltip.default, {
287
+ key: (_item$key3 = item.key) !== null && _item$key3 !== void 0 ? _item$key3 : String(item.content),
288
+ content: item.tooltipDescription,
289
+ position: item.tooltipPosition
290
+ }, dropListItem);
291
+ }
292
+
293
+ return dropListItem;
294
+ }
@@ -14,6 +14,8 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
14
14
 
15
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
16
 
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+
17
19
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
18
20
 
19
21
  var _react = _interopRequireWildcard(require("react"));
@@ -58,7 +60,7 @@ var _EmptyState = _interopRequireDefault(require("./EmptyState"));
58
60
 
59
61
  var _utils = require("./utils");
60
62
 
61
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
63
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
62
64
 
63
65
  var _excluded = ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent", "emptyStateHandler", "selectedCategory", "searchTerm"];
64
66
 
@@ -82,6 +84,11 @@ function ElementList(_ref) {
82
84
  containerWidth = _useContainerWidth.containerWidth,
83
85
  ContainerWidthMonitor = _useContainerWidth.ContainerWidthMonitor;
84
86
 
87
+ var _useState = (0, _react.useState)(_constants.SCROLLBAR_WIDTH),
88
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
89
+ scrollbarWidth = _useState2[0],
90
+ setScrollbarWidth = _useState2[1];
91
+
85
92
  var fullMode = mode === _types.Modes.full;
86
93
  (0, _react.useEffect)(function () {
87
94
  /**
@@ -90,8 +97,13 @@ function ElementList(_ref) {
90
97
  **/
91
98
  if (fullMode && containerWidth > 0) {
92
99
  setColumnCount((0, _utils.getColumnCount)(containerWidth));
100
+ var updatedScrollbarWidth = (0, _utils.getScrollbarWidth)();
101
+
102
+ if (updatedScrollbarWidth > 0) {
103
+ setScrollbarWidth(updatedScrollbarWidth);
104
+ }
93
105
  }
94
- }, [fullMode, containerWidth, setColumnCount]);
106
+ }, [fullMode, containerWidth, setColumnCount, scrollbarWidth]);
95
107
  var onExternalLinkClick = (0, _react.useCallback)(function () {
96
108
  (0, _analytics.fireAnalyticsEvent)(createAnalyticsEvent)({
97
109
  payload: {
@@ -141,7 +153,7 @@ function ElementList(_ref) {
141
153
  return (0, _react2.jsx)(_Collection.Collection, {
142
154
  cellCount: items.length,
143
155
  cellRenderer: cellRenderer,
144
- cellSizeAndPositionGetter: (0, _cellSizeAndPositionGetter.default)(containerWidth),
156
+ cellSizeAndPositionGetter: (0, _cellSizeAndPositionGetter.default)(containerWidth - _constants.ELEMENT_LIST_PADDING * 2, scrollbarWidth),
145
157
  height: height,
146
158
  width: containerWidth - _constants.ELEMENT_LIST_PADDING * 2 // containerWidth - padding on Left/Right (for focus outline)
147
159
 
@@ -265,22 +277,21 @@ var ItemContent = /*#__PURE__*/(0, _react.memo)(function (_ref6) {
265
277
  css: itemDescription
266
278
  }, description)));
267
279
  });
268
- var scrollbarStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ::-webkit-scrollbar {\n width: ", "px;\n }\n ::-webkit-scrollbar-track-piece {\n background: ", ";\n }\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n\n /** Firefox **/\n scrollbar-color: ", " ", ";\n\n -ms-overflow-style: -ms-autohiding-scrollbar;\n"])), _constants.SCROLLBAR_WIDTH, _constants.SCROLLBAR_TRACK_COLOR, _constants.SCROLLBAR_THUMB_COLOR, _constants.SCROLLBAR_THUMB_COLOR, _constants.SCROLLBAR_TRACK_COLOR);
269
- var elementItemsWrapper = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n flex-flow: row wrap;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n padding: ", "px; // For Focus outline\n\n .ReactVirtualized__Collection {\n ", ";\n border-radius: 3px; // Standard border-radius across other components like Search or Item.\n outline: none;\n\n :focus {\n box-shadow: 0 0 0 ", "px\n ", ";\n }\n }\n .ReactVirtualized__Collection__innerScrollContainer {\n div[class='element-item-wrapper']:last-child {\n padding-bottom: 4px;\n }\n }\n"])), _constants.ELEMENT_LIST_PADDING, scrollbarStyle, _constants.ELEMENT_LIST_PADDING, (0, _tokens.token)('color.border.focused', _colors.B100));
270
- var elementItemWrapper = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n div {\n button {\n height: 75px;\n align-items: flex-start;\n padding: 12px 12px 11px;\n }\n }\n"])));
271
- var itemBody = (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n line-height: 1.4;\n width: 100%;\n\n margin-top: -2px; // Fixes the Item Icon and text's alignment issue\n"])));
280
+ var elementItemsWrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n flex-flow: row wrap;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n padding: ", "px; // For Focus outline\n\n .ReactVirtualized__Collection {\n border-radius: 3px; // Standard border-radius across other components like Search or Item.\n outline: none;\n\n :focus {\n box-shadow: 0 0 0 ", "px\n ", ";\n }\n }\n .ReactVirtualized__Collection__innerScrollContainer {\n div[class='element-item-wrapper']:last-child {\n padding-bottom: 4px;\n }\n }\n"])), _constants.ELEMENT_LIST_PADDING, _constants.ELEMENT_LIST_PADDING, (0, _tokens.token)('color.border.focused', _colors.B100));
281
+ var elementItemWrapper = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n div {\n button {\n height: 75px;\n align-items: flex-start;\n padding: 12px 12px 11px;\n }\n }\n"])));
282
+ var itemBody = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n line-height: 1.4;\n width: 100%;\n\n margin-top: -2px; // Fixes the Item Icon and text's alignment issue\n"])));
272
283
  /*
273
284
  * -webkit-line-clamp is also supported by firefox 🎉
274
285
  * https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/68#CSS
275
286
  */
276
287
 
277
- var multilineStyle = (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n"])));
278
- var itemDescription = (0, _react2.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n overflow: hidden;\n font-size: ", ";\n color: ", ";\n margin-top: 2px;\n"])), multilineStyle, (0, _editorSharedStyles.relativeFontSizeToBase16)(11.67), (0, _tokens.token)('color.text.subtle', _colors.N200));
279
- var itemText = (0, _react2.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n width: inherit;\n white-space: initial;\n"])));
280
- var itemTitleWrapper = (0, _react2.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: space-between; // Title and keyboardshortcut are rendered in the same block\n"])));
281
- var itemTitle = (0, _react2.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n overflow: hidden;\n\n white-space: nowrap;\n text-overflow: ellipsis;\n"])));
282
- var itemAfter = (0, _react2.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 auto;\n"])));
283
- var itemIconStyle = (0, _react2.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n img {\n height: 40px;\n width: 40px;\n object-fit: cover;\n }\n"])));
288
+ var multilineStyle = (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n"])));
289
+ var itemDescription = (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n overflow: hidden;\n font-size: ", ";\n color: ", ";\n margin-top: 2px;\n"])), multilineStyle, (0, _editorSharedStyles.relativeFontSizeToBase16)(11.67), (0, _tokens.token)('color.text.subtle', _colors.N200));
290
+ var itemText = (0, _react2.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n width: inherit;\n white-space: initial;\n"])));
291
+ var itemTitleWrapper = (0, _react2.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: space-between; // Title and keyboardshortcut are rendered in the same block\n"])));
292
+ var itemTitle = (0, _react2.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n overflow: hidden;\n\n white-space: nowrap;\n text-overflow: ellipsis;\n"])));
293
+ var itemAfter = (0, _react2.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 auto;\n"])));
294
+ var itemIconStyle = (0, _react2.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n img {\n height: 40px;\n width: 40px;\n object-fit: cover;\n }\n"])));
284
295
  var MemoizedElementListWithAnalytics = /*#__PURE__*/(0, _react.memo)((0, _analyticsNext.withAnalyticsContext)({
285
296
  component: 'ElementList'
286
297
  })(ElementList));