@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
@@ -14,7 +14,9 @@ export default function ToolbarListsIndentation(props) {
14
14
  showIndentationButtons = props.showIndentationButtons,
15
15
  popupsMountPoint = props.popupsMountPoint,
16
16
  popupsBoundariesElement = props.popupsBoundariesElement,
17
- popupsScrollableElement = props.popupsScrollableElement;
17
+ popupsScrollableElement = props.popupsScrollableElement,
18
+ indentDisabled = props.indentDisabled,
19
+ outdentDisabled = props.outdentDisabled;
18
20
 
19
21
  if (isSmall) {
20
22
  return jsx(ToolbarDropdown, {
@@ -28,6 +30,8 @@ export default function ToolbarListsIndentation(props) {
28
30
  showIndentationButtons: showIndentationButtons,
29
31
  orderedListActive: orderedListActive,
30
32
  orderedListDisabled: orderedListDisabled,
33
+ indentDisabled: indentDisabled,
34
+ outdentDisabled: outdentDisabled,
31
35
  disabled: disabled,
32
36
  onItemActivated: onItemActivated
33
37
  });
@@ -41,6 +45,8 @@ export default function ToolbarListsIndentation(props) {
41
45
  showIndentationButtons: showIndentationButtons,
42
46
  orderedListActive: orderedListActive,
43
47
  orderedListDisabled: orderedListDisabled,
48
+ indentDisabled: indentDisabled,
49
+ outdentDisabled: outdentDisabled,
44
50
  disabled: disabled,
45
51
  onItemActivated: onItemActivated
46
52
  });
@@ -1,5 +1,8 @@
1
- import { toggleBulletList, toggleOrderedList } from '../../list/commands';
1
+ import { indentList, outdentList, toggleBulletList, toggleOrderedList } from '../../list/commands';
2
+ import { getIndentCommand as indentParagraphOrHeading, getOutdentCommand as outdentParagraphOrHeading } from '../../indentation/commands';
3
+ import { getIndentCommand as indentTaskList, getUnindentCommand as outdentTaskList } from '../../tasks-and-decisions/pm-plugins/keymaps';
2
4
  import { INPUT_METHOD } from '../../analytics';
5
+ import { pluginKey as indentationButtonsPluginKey } from '../pm-plugins/indentation-buttons';
3
6
  export function onItemActivated(_ref) {
4
7
  var buttonName = _ref.buttonName,
5
8
  editorView = _ref.editorView;
@@ -14,26 +17,41 @@ export function onItemActivated(_ref) {
14
17
  break;
15
18
 
16
19
  case 'indent':
17
- editorView.someProp('handleKeyDown', function (handleKeyDown) {
18
- return handleKeyDown(editorView, new KeyboardEvent('keydown', {
19
- bubbles: true,
20
- cancelable: true,
21
- key: 'Tab',
22
- code: 'Tab'
23
- }));
24
- });
25
- break;
20
+ {
21
+ var node = indentationButtonsPluginKey.getState(editorView.state).node;
22
+
23
+ if (node === 'paragraph_heading') {
24
+ indentParagraphOrHeading(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
25
+ }
26
+
27
+ if (node === 'list') {
28
+ indentList(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
29
+ }
30
+
31
+ if (node === 'taskList') {
32
+ indentTaskList(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
33
+ }
34
+
35
+ break;
36
+ }
26
37
 
27
38
  case 'outdent':
28
- editorView.someProp('handleKeyDown', function (handleKeyDown) {
29
- return handleKeyDown(editorView, new KeyboardEvent('keydown', {
30
- bubbles: true,
31
- cancelable: true,
32
- shiftKey: true,
33
- key: 'Tab',
34
- code: 'Tab'
35
- }));
36
- });
37
- break;
39
+ {
40
+ var _node = indentationButtonsPluginKey.getState(editorView.state).node;
41
+
42
+ if (_node === 'paragraph_heading') {
43
+ outdentParagraphOrHeading(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
44
+ }
45
+
46
+ if (_node === 'list') {
47
+ outdentList(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
48
+ }
49
+
50
+ if (_node === 'taskList') {
51
+ outdentTaskList(INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
52
+ }
53
+
54
+ break;
55
+ }
38
56
  }
39
57
  }
@@ -1,6 +1,7 @@
1
1
  import { TextSelection } from 'prosemirror-state';
2
2
  import { pluginKey } from '../pm-plugins/key';
3
3
  import { ACTIONS } from '../pm-plugins/actions';
4
+ import { browser } from '@atlaskit/editor-common/utils';
4
5
  export var openTypeAhead = function openTypeAhead(props) {
5
6
  return function (tr) {
6
7
  var triggerHandler = props.triggerHandler,
@@ -21,6 +22,8 @@ export var openTypeAheadAtCursor = function openTypeAheadAtCursor(_ref) {
21
22
  inputMethod = _ref.inputMethod,
22
23
  query = _ref.query;
23
24
  return function (tr) {
25
+ var _selection$$head, _selection$$head$pare, _selection$$head$pare2, _selection$$head$pare3;
26
+
24
27
  openTypeAhead({
25
28
  triggerHandler: triggerHandler,
26
29
  inputMethod: inputMethod,
@@ -44,6 +47,12 @@ export var openTypeAheadAtCursor = function openTypeAheadAtCursor(_ref) {
44
47
 
45
48
  if (nodeAtCursor && isPlaceholderAtCursorPosition) {
46
49
  tr.delete(cursorPos, cursorPos + nodeAtCursor.nodeSize);
50
+ } // ME-2375 remove the superfluous '@' inserted before decoration
51
+ // by composition (https://github.com/ProseMirror/prosemirror/issues/903)
52
+
53
+
54
+ if (browser.chrome && browser.android && cursorPos > 2 && !!(selection !== null && selection !== void 0 && (_selection$$head = selection.$head) !== null && _selection$$head !== void 0 && (_selection$$head$pare = _selection$$head.parent) !== null && _selection$$head$pare !== void 0 && _selection$$head$pare.textContent) && (_selection$$head$pare2 = (_selection$$head$pare3 = selection.$head.parent.textContent).endsWith) !== null && _selection$$head$pare2 !== void 0 && _selection$$head$pare2.call(_selection$$head$pare3, '@')) {
55
+ tr.delete(cursorPos - 1, cursorPos);
47
56
  }
48
57
 
49
58
  return tr;
@@ -0,0 +1,2 @@
1
+ var SupportedBrowsers = ['ie', 'gecko', 'chrome', 'safari'];
2
+ export {};
@@ -13,10 +13,34 @@ var insideContentArea = function insideContentArea(ref) {
13
13
 
14
14
  return false;
15
15
  };
16
+ /**
17
+ * @see ED-14699 - check if editor is inside a modal to continue to bring cursor to input when
18
+ * any part of the editor container is clicked
19
+ *
20
+ * Handles two cases when a click event is fired:
21
+ *
22
+ * 1. if editor (e.g. comment inside of Jira ticket view) is inside modal then ensure focus and cursor is brought to the input
23
+ * 2. if another modal is open (e.g. delete confirmation modal for confluence table) then ignore clicks as they shouldn't influence editor state
24
+ */
25
+
26
+
27
+ export var checkForModal = function checkForModal(target) {
28
+ var modalDialog = target.closest('[role=dialog]');
29
+
30
+ if (modalDialog) {
31
+ // return false if not an editor inside modal, otherwise return true
32
+ return !!(modalDialog !== null && modalDialog !== void 0 && modalDialog.querySelector('.akEditor'));
33
+ } // no modal present so we can return true
34
+
35
+
36
+ return true;
37
+ };
16
38
 
17
39
  var clickAreaClickHandler = function clickAreaClickHandler(view, event) {
18
- var contentArea = event.currentTarget.querySelector('.ak-editor-content-area');
19
- var editorFocused = !!(view && view.hasFocus());
40
+ var _view$hasFocus;
41
+
42
+ var isTargetContentArea = event.currentTarget.querySelector('.ak-editor-content-area');
43
+ var isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
20
44
  var target = event.target; // @see https://product-fabric.atlassian.net/browse/ED-4287
21
45
  // click event gets triggered twice on a checkbox (on <label> first and then on <input>)
22
46
  // by the time it gets triggered on input, PM already re-renders nodeView and detaches it from DOM
@@ -28,13 +52,10 @@ var clickAreaClickHandler = function clickAreaClickHandler(view, event) {
28
52
 
29
53
  var isTextAreaClicked = target.nodeName === 'TEXTAREA';
30
54
  var isBreadcrumbClicked = !!closestElement(target, 'nav[aria-label="Breadcrumbs"]');
31
- var targetIsNotContentArea = !contentArea;
32
- var tragetIsNotChildOfContentArea = !insideContentArea(target.parentNode);
33
- var editorIsNotInFocus = editorFocused === false;
55
+ var isTargetChildOfContentArea = insideContentArea(target.parentNode);
34
56
  var selection = window.getSelection();
35
57
  var isEditorPopupTextSelected = (selection === null || selection === void 0 ? void 0 : selection.type) === 'Range' && closestElement(selection === null || selection === void 0 ? void 0 : selection.anchorNode, '[data-editor-popup]');
36
- var isModalDialog = !!target.closest('[role=dialog]');
37
- var isClickOutsideEditor = (targetIsNotContentArea || tragetIsNotChildOfContentArea || editorIsNotInFocus) && !isInputClicked && !isTextAreaClicked && !isPopupClicked && !isModalDialog && !isBreadcrumbClicked && !isPopupClicked && !isEditorPopupTextSelected;
58
+ var isClickOutsideEditor = (!isTargetContentArea || !isTargetChildOfContentArea || !isEditorFocused) && !isInputClicked && !isTextAreaClicked && !isPopupClicked && !isBreadcrumbClicked && !isEditorPopupTextSelected && checkForModal(target); // click was within editor container and focus should be brought to input
38
59
 
39
60
  if (isClickOutsideEditor && view) {
40
61
  outsideProsemirrorEditorClickHandler(view, event);
@@ -42,15 +63,21 @@ var clickAreaClickHandler = function clickAreaClickHandler(view, event) {
42
63
  };
43
64
 
44
65
  var outsideProsemirrorEditorClickHandler = function outsideProsemirrorEditorClickHandler(view, event) {
66
+ var _view$hasFocus2;
67
+
45
68
  var dispatch = view.dispatch,
46
69
  dom = view.dom,
47
70
  state = view.state;
48
- var editorFocused = !!(view && view.hasFocus());
49
71
  var tr = state.tr;
50
- appendEmptyParagraph(event, dom, tr);
72
+ var isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus2 = view.hasFocus) !== null && _view$hasFocus2 !== void 0 && _view$hasFocus2.call(view));
73
+ var isBottomAreaClicked = event.clientY > dom.getBoundingClientRect().bottom;
74
+
75
+ if (isBottomAreaClicked) {
76
+ addParagraphAtEnd(tr);
77
+ }
51
78
 
52
79
  if (hasGapCursorPlugin(state)) {
53
- setSelectionTopLevelBlocks(tr, event, dom, view.posAtCoords.bind(view), editorFocused);
80
+ setSelectionTopLevelBlocks(tr, event, dom, view.posAtCoords.bind(view), isEditorFocused);
54
81
  }
55
82
 
56
83
  if (!tr.docChanged && !tr.selectionSet) {
@@ -66,12 +93,4 @@ var outsideProsemirrorEditorClickHandler = function outsideProsemirrorEditorClic
66
93
  event.preventDefault();
67
94
  };
68
95
 
69
- var appendEmptyParagraph = function appendEmptyParagraph(event, dom, tr) {
70
- var bottomAreaClicked = event.clientY > dom.getBoundingClientRect().bottom;
71
-
72
- if (bottomAreaClicked) {
73
- addParagraphAtEnd(tr);
74
- }
75
- };
76
-
77
96
  export { clickAreaClickHandler };
@@ -40,8 +40,8 @@ import { TableControlsPadding, MainToolbar, mainToolbarCustomComponentsSlotStyle
40
40
  import { createEditorContentStyle } from '../../ContentStyles';
41
41
  var CommentEditorMargin = 14;
42
42
  var CommentEditorSmallerMargin = 8;
43
- var commentEditorStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n\n .less-margin .ProseMirror {\n margin: 12px ", "px ", "px;\n }\n\n min-width: 272px;\n /* Border + Toolbar + Footer + (Paragraph + ((Parahraph + Margin) * (DefaultLines - 1)) */\n /* calc(2px + 40px + 24px + ( 20px + (32px * 2))) */\n\n height: auto;\n background-color: ", ";\n border: 1px solid ", ";\n box-sizing: border-box;\n border-radius: ", "px;\n\n max-width: inherit;\n word-wrap: break-word;\n"])), CommentEditorSmallerMargin, CommentEditorSmallerMargin, token('color.background.input', 'white'), token('color.border', N40), borderRadius());
44
- var ContentArea = createEditorContentStyle(css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-grow: 1;\n overflow-x: hidden;\n overflow-y: auto;\n line-height: 24px;\n\n /** Hack for Bitbucket to ensure entire editorView gets drop event; see ED-3294 **/\n /** Hack for tables controlls. Otherwise marging collapse and controlls are misplaced. **/\n .ProseMirror {\n margin: 12px ", "px ", "px;\n }\n\n .gridParent {\n margin-left: ", "px;\n margin-right: ", "px;\n width: calc(100% + ", "px);\n }\n\n padding: ", "px;\n\n ", ";\n"])), CommentEditorMargin, CommentEditorMargin, CommentEditorMargin - GRID_GUTTER, CommentEditorMargin - GRID_GUTTER, CommentEditorMargin - GRID_GUTTER, TableControlsPadding, tableCommentEditorStyles));
43
+ var commentEditorStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n\n .less-margin .ProseMirror {\n margin: 12px ", "px ", "px;\n }\n\n min-width: 272px;\n /* Border + Toolbar + Footer + (Paragraph + ((Paragraph + Margin) * (DefaultLines - 1)) */\n /* calc(2px + 40px + 24px + ( 20px + (32px * 2))) */\n\n height: auto;\n background-color: ", ";\n border: 1px solid ", ";\n box-sizing: border-box;\n border-radius: ", "px;\n\n max-width: inherit;\n word-wrap: break-word;\n"])), CommentEditorSmallerMargin, CommentEditorSmallerMargin, token('color.background.input', 'white'), token('color.border', N40), borderRadius());
44
+ var ContentArea = createEditorContentStyle(css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-grow: 1;\n overflow-x: hidden;\n overflow-y: auto;\n line-height: 24px;\n\n /** Hack for Bitbucket to ensure entire editorView gets drop event; see ED-3294 **/\n /** Hack for table controls. Otherwise margin collapse and controls are misplaced. **/\n .ProseMirror {\n margin: 12px ", "px ", "px;\n }\n\n .gridParent {\n margin-left: ", "px;\n margin-right: ", "px;\n width: calc(100% + ", "px);\n }\n\n padding: ", "px;\n\n ", ";\n"])), CommentEditorMargin, CommentEditorMargin, CommentEditorMargin - GRID_GUTTER, CommentEditorMargin - GRID_GUTTER, CommentEditorMargin - GRID_GUTTER, TableControlsPadding, tableCommentEditorStyles));
45
45
  ContentArea.displayName = 'ContentArea';
46
46
  var secondaryToolbarStyle = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n box-sizing: border-box;\n justify-content: flex-end;\n align-items: center;\n display: flex;\n padding: 12px 1px;\n"])));
47
47
 
@@ -14,7 +14,7 @@ import { gapCursorStyles } from '../../plugins/selection/gap-cursor/styles';
14
14
  import { tableStyles } from '../../plugins/table/ui/common-styles';
15
15
  import { placeholderStyles } from '../../plugins/placeholder/styles';
16
16
  import { blocktypeStyles } from '../../plugins/block-type/styles';
17
- import { codeBlockStyles, highlightingCodeBlockStyles } from '../../plugins/code-block/styles';
17
+ import { codeBlockStyles } from '../../plugins/code-block/styles';
18
18
  import { listsStyles } from '../../plugins/list/styles';
19
19
  import { ruleStyles } from '../../plugins/rule/styles';
20
20
  import { mediaStyles } from '../../plugins/media/styles';
@@ -40,11 +40,9 @@ import { useFeatureFlags } from '../../plugins/feature-flags-context';
40
40
  import { InlineNodeViewSharedStyles } from '../../nodeviews/getInlineNodeViewProducer.styles';
41
41
 
42
42
  var contentStyles = function contentStyles(props) {
43
- var _props$featureFlags;
44
-
45
43
  return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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"])), editorFontSize({
46
44
  theme: props.theme
47
- }), whitespaceSharedStyles, paragraphSharedStyles, listsSharedStyles, indentationSharedStyles, shadowSharedStyle, InlineNodeViewSharedStyles, token('color.border.focused', '#8cf'), placeholderTextStyles, placeholderStyles, (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.codeBlockSyntaxHighlighting ? highlightingCodeBlockStyles(props) : codeBlockStyles(props), blocktypeStyles(props), textFormattingStyles(props), textColorStyles, listsStyles, ruleStyles(props), mediaStyles, layoutStyles, telepointerStyle, gapCursorStyles, tableStyles(props), panelStyles(props), fakeCursorStyles, mentionsStyles, emojiStyles, tasksAndDecisionsStyles, gridStyles, linkStyles, blockMarksSharedStyles, dateSharedStyle, extensionStyles, expandStyles(props), findReplaceStyles, taskDecisionStyles, statusStyles, annotationSharedStyles(props), smartCardStyles, smartCardSharedStyles, dateStyles, embedCardStyles, unsupportedStyles, ClassNames.FLOATING_TOOLBAR_COMPONENT);
45
+ }), whitespaceSharedStyles, paragraphSharedStyles, listsSharedStyles, indentationSharedStyles, shadowSharedStyle, InlineNodeViewSharedStyles, token('color.border.focused', '#8cf'), placeholderTextStyles, placeholderStyles, codeBlockStyles(props), blocktypeStyles(props), textFormattingStyles(props), textColorStyles, listsStyles, ruleStyles(props), mediaStyles, layoutStyles, telepointerStyle, gapCursorStyles, tableStyles(props), panelStyles(props), fakeCursorStyles, mentionsStyles, emojiStyles, tasksAndDecisionsStyles, gridStyles, linkStyles, blockMarksSharedStyles, dateSharedStyle, extensionStyles, expandStyles(props), findReplaceStyles, taskDecisionStyles, statusStyles, annotationSharedStyles(props), smartCardStyles, smartCardSharedStyles, dateStyles, embedCardStyles, unsupportedStyles, ClassNames.FLOATING_TOOLBAR_COMPONENT);
48
46
  };
49
47
 
50
48
  export var createEditorContentStyle = function createEditorContentStyle(styles) {
@@ -0,0 +1,203 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
+
10
+ var _templateObject, _templateObject2, _templateObject3;
11
+
12
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13
+
14
+ 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; } }
15
+
16
+ /** @jsx jsx */
17
+ import { Component } from 'react';
18
+ import { css, jsx } from '@emotion/react';
19
+ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@atlaskit/analytics-next';
20
+ import Layer from '../Layer';
21
+ import { borderRadius, gridSize } from '@atlaskit/theme/constants';
22
+ import { N0, DN50, DN600, N50A, N60A, N900 } from '@atlaskit/theme/colors';
23
+ import { themed } from '@atlaskit/theme/components';
24
+ import { token } from '@atlaskit/tokens';
25
+ var packageName = "@atlaskit/editor-core";
26
+ var packageVersion = "172.0.0";
27
+ var halfFocusRing = 1;
28
+ var dropOffset = "0, ".concat(gridSize(), "px");
29
+
30
+ var DropList = /*#__PURE__*/function (_Component) {
31
+ _inherits(DropList, _Component);
32
+
33
+ var _super = _createSuper(DropList);
34
+
35
+ function DropList() {
36
+ var _this;
37
+
38
+ _classCallCheck(this, DropList);
39
+
40
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
41
+ args[_key] = arguments[_key];
42
+ }
43
+
44
+ _this = _super.call.apply(_super, [this].concat(args));
45
+
46
+ _defineProperty(_assertThisInitialized(_this), "wrapperStyles", css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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;'));
47
+
48
+ _defineProperty(_assertThisInitialized(_this), "triggerStyles", css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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;'));
49
+
50
+ _defineProperty(_assertThisInitialized(_this), "menuWrapper", function (theme) {
51
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\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 "])), themed({
52
+ light: token('color.text', N900),
53
+ dark: token('color.text', DN600)
54
+ })(theme), themed({
55
+ light: token('elevation.surface.overlay', N0),
56
+ dark: token('elevation.surface.overlay', DN50)
57
+ })(theme), borderRadius(), gridSize() / 2, gridSize(), gridSize() / 4, N50A, N60A, gridSize() / 2);
58
+ });
59
+
60
+ _defineProperty(_assertThisInitialized(_this), "componentDidMount", function () {
61
+ _this.setContentWidth(); // We use a captured event here to avoid a radio or checkbox dropdown item firing its
62
+ // click event first, which would cause a re-render of the element and prevent DropList
63
+ // from detecting the actual source of this original click event.
64
+
65
+
66
+ document.addEventListener('click', _this.handleClickOutside, true);
67
+ document.addEventListener('keydown', _this.handleEsc);
68
+ });
69
+
70
+ _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function () {
71
+ if (_this.props.isOpen) {
72
+ _this.setContentWidth();
73
+ }
74
+ });
75
+
76
+ _defineProperty(_assertThisInitialized(_this), "componentWillUnmount", function () {
77
+ document.removeEventListener('click', _this.handleClickOutside, true);
78
+ document.removeEventListener('keydown', _this.handleEsc);
79
+ });
80
+
81
+ _defineProperty(_assertThisInitialized(_this), "setContentWidth", function () {
82
+ var _assertThisInitialize = _assertThisInitialized(_this),
83
+ dropContentRef = _assertThisInitialize.dropContentRef,
84
+ triggerRef = _assertThisInitialize.triggerRef;
85
+
86
+ var shouldFitContainer = _this.props.shouldFitContainer; // We need to manually set the content width to match the trigger width
87
+
88
+ if (shouldFitContainer && dropContentRef && triggerRef) {
89
+ dropContentRef.style.width = "".concat(triggerRef.offsetWidth - halfFocusRing * 2, "px");
90
+ }
91
+ });
92
+
93
+ _defineProperty(_assertThisInitialized(_this), "handleEsc", function (event) {
94
+ if ((event.key === 'Escape' || event.key === 'Esc') && _this.props.isOpen) {
95
+ _this.close(event);
96
+ }
97
+ });
98
+
99
+ _defineProperty(_assertThisInitialized(_this), "handleClickOutside", function (event) {
100
+ if (_this.props.isOpen) {
101
+ if (event.target instanceof Node) {
102
+ // Rather than check for the target within the entire DropList, we specify the trigger/content.
103
+ // This aids with future effort in scroll-locking DropList when isMenuFixed is enabled; the scroll
104
+ // blanket which stretches to the viewport should not stop 'close' from being triggered.
105
+ var withinTrigger = _this.triggerRef && _this.triggerRef.contains(event.target);
106
+
107
+ var withinContent = _this.dropContentRef && _this.dropContentRef.contains(event.target);
108
+
109
+ if (!withinTrigger && !withinContent) {
110
+ _this.close(event);
111
+ }
112
+ }
113
+ }
114
+ });
115
+
116
+ _defineProperty(_assertThisInitialized(_this), "close", function (event) {
117
+ if (_this.props.onOpenChange) {
118
+ _this.props.onOpenChange({
119
+ isOpen: false,
120
+ event: event
121
+ });
122
+ }
123
+ });
124
+
125
+ _defineProperty(_assertThisInitialized(_this), "handleContentRef", function (ref) {
126
+ _this.dropContentRef = ref; // If the dropdown has just been opened, we focus on the containing element so the
127
+ // user can tab to the first dropdown item. We will only receive this ref if isOpen
128
+ // is true or null, so no need to check for truthiness here.
129
+
130
+ if (ref) {
131
+ ref.focus();
132
+ }
133
+ });
134
+
135
+ _defineProperty(_assertThisInitialized(_this), "handleTriggerRef", function (ref) {
136
+ _this.triggerRef = ref;
137
+ });
138
+
139
+ return _this;
140
+ }
141
+
142
+ _createClass(DropList, [{
143
+ key: "getChildContext",
144
+ value: function getChildContext() {
145
+ return {
146
+ shouldAllowMultilineItems: false
147
+ };
148
+ }
149
+ }, {
150
+ key: "render",
151
+ value: function render() {
152
+ var _this2 = this;
153
+
154
+ var _this$props = this.props,
155
+ children = _this$props.children,
156
+ isOpen = _this$props.isOpen,
157
+ position = _this$props.position,
158
+ trigger = _this$props.trigger,
159
+ onPositioned = _this$props.onPositioned,
160
+ testId = _this$props.testId;
161
+ var layerContent = isOpen ? jsx("div", {
162
+ css: function css(theme) {
163
+ return _this2.menuWrapper({
164
+ theme: theme
165
+ });
166
+ },
167
+ "data-role": "droplistContent",
168
+ "data-testid": testId && "".concat(testId, "--content"),
169
+ ref: this.handleContentRef
170
+ }, children) : null;
171
+ return jsx("div", {
172
+ css: this.wrapperStyles
173
+ }, jsx(Layer, {
174
+ content: layerContent,
175
+ offset: dropOffset,
176
+ position: position,
177
+ onPositioned: onPositioned
178
+ }, jsx("div", {
179
+ css: this.triggerStyles,
180
+ ref: this.handleTriggerRef
181
+ }, trigger)));
182
+ }
183
+ }]);
184
+
185
+ return DropList;
186
+ }(Component);
187
+
188
+ var createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
189
+ export default withAnalyticsContext({
190
+ componentName: 'droplist',
191
+ packageName: packageName,
192
+ packageVersion: packageVersion
193
+ })(withAnalyticsEvents({
194
+ onOpenChange: createAndFireEventOnAtlaskit({
195
+ action: 'toggled',
196
+ actionSubject: 'droplist',
197
+ attributes: {
198
+ componentName: 'droplist',
199
+ packageName: packageName,
200
+ packageVersion: packageVersion
201
+ }
202
+ })
203
+ })(DropList));
@@ -11,9 +11,8 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
  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; } }
12
12
 
13
13
  import React from 'react';
14
- import { PureComponent } from 'react'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
15
-
16
- import DropdownList from '@atlaskit/droplist';
14
+ import { PureComponent } from 'react';
15
+ import DropdownList from '../DropList';
17
16
  import { Popup } from '@atlaskit/editor-common/ui';
18
17
  import withOuterListeners from '../with-outer-listeners';
19
18
 
@@ -83,12 +82,9 @@ export var Dropdown = /*#__PURE__*/function (_PureComponent) {
83
82
  minWidth: fitWidth || 0
84
83
  }
85
84
  }, /*#__PURE__*/React.createElement(DropdownList, {
86
- disabled: true,
87
85
  isOpen: true,
88
86
  onOpenChange: onOpenChange,
89
- appearance: "tall",
90
87
  position: popupPlacement.join(' '),
91
- shouldFlip: false,
92
88
  shouldFitContainer: true
93
89
  }, children)));
94
90
  }