@atlaskit/editor-common 69.2.1 → 69.3.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.
- package/CHANGELOG.md +30 -0
- package/analytics/package.json +8 -0
- package/core-utils/package.json +8 -0
- package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +21 -0
- package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +25 -0
- package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +37 -0
- package/dist/cjs/__tests_external__/cases/media/test-cases/alt-text.js +45 -0
- package/dist/cjs/__tests_external__/cases/media/test-cases/caption.js +44 -0
- package/dist/cjs/__tests_external__/cases/media/test-cases/index.js +23 -0
- package/dist/cjs/__tests_external__/cases/media/test-cases/types.js +5 -0
- package/dist/cjs/__tests_external__/cases/media/test-cases/upload.js +38 -0
- package/dist/cjs/__tests_external__/cases/smart-links/index.js +37 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +43 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +77 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +23 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +42 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +43 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +77 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +23 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +42 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +42 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +75 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +25 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +41 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +44 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/types.js +5 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +19 -0
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +39 -0
- package/dist/cjs/__tests_external__/cases/types.js +5 -0
- package/dist/cjs/__tests_external__/index.js +55 -0
- package/dist/cjs/__tests_external__/page-objects/Editor.js +71 -0
- package/dist/cjs/__tests_external__/page-objects/EditorMedia.js +98 -0
- package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +232 -0
- package/dist/cjs/__tests_external__/page-objects/Renderer.js +59 -0
- package/dist/cjs/analytics/api.js +5 -0
- package/dist/cjs/analytics/index.js +223 -0
- package/dist/cjs/analytics/types/avatar.js +5 -0
- package/dist/cjs/analytics/types/block.js +5 -0
- package/dist/cjs/analytics/types/config-panel-events.js +5 -0
- package/dist/cjs/analytics/types/cut-copy-events.js +5 -0
- package/dist/cjs/analytics/types/date-events.js +5 -0
- package/dist/cjs/analytics/types/dispatch-analytics-event.js +5 -0
- package/dist/cjs/analytics/types/element-browser-events.js +5 -0
- package/dist/cjs/analytics/types/enums.js +350 -0
- package/dist/cjs/analytics/types/events.js +5 -0
- package/dist/cjs/analytics/types/experimental-events.js +5 -0
- package/dist/cjs/analytics/types/extension-events.js +22 -0
- package/dist/cjs/analytics/types/find-replace-events.js +5 -0
- package/dist/cjs/analytics/types/format-events.js +24 -0
- package/dist/cjs/analytics/types/general-events.js +40 -0
- package/dist/cjs/analytics/types/index.js +249 -0
- package/dist/cjs/analytics/types/inline-comment-events.js +14 -0
- package/dist/cjs/analytics/types/insert-events.js +51 -0
- package/dist/cjs/analytics/types/link-tool-bar-events.js +5 -0
- package/dist/cjs/analytics/types/list-events.js +25 -0
- package/dist/cjs/analytics/types/media-events.js +5 -0
- package/dist/cjs/analytics/types/node-events.js +26 -0
- package/dist/cjs/analytics/types/paste-events.js +55 -0
- package/dist/cjs/analytics/types/performance-report.js +5 -0
- package/dist/cjs/analytics/types/selection-events.js +5 -0
- package/dist/cjs/analytics/types/smart-links.js +19 -0
- package/dist/cjs/analytics/types/substitute-events.js +24 -0
- package/dist/cjs/analytics/types/table-events.js +43 -0
- package/dist/cjs/analytics/types/toolbar-button.js +26 -0
- package/dist/cjs/analytics/types/type-ahead.js +5 -0
- package/dist/cjs/analytics/types/utils.js +28 -0
- package/dist/cjs/core-utils/index.js +13 -0
- package/dist/cjs/core-utils/inside.js +17 -0
- package/dist/cjs/event-dispatcher/index.js +88 -0
- package/dist/cjs/keymaps/consts.js +30 -0
- package/dist/cjs/keymaps/index.js +362 -0
- package/dist/cjs/messages/index.js +137 -1
- package/dist/cjs/messages/insert-block.js +177 -0
- package/dist/cjs/node-width/index.js +85 -0
- package/dist/cjs/react-node-view/index.js +252 -0
- package/dist/cjs/react-node-view/types.js +5 -0
- package/dist/cjs/selection/gap-cursor/selection.js +196 -0
- package/dist/cjs/selection/gap-cursor/utils/index.js +21 -0
- package/dist/cjs/selection/gap-cursor/utils/is-ignored.js +14 -0
- package/dist/cjs/selection/gap-cursor/utils/is-valid-target-node.js +14 -0
- package/dist/cjs/selection/index.js +67 -0
- package/dist/cjs/selection/types.js +15 -0
- package/dist/cjs/selection/utils.js +50 -0
- package/dist/cjs/styles/index.js +29 -1
- package/dist/cjs/styles/shared/extension.js +13 -0
- package/dist/cjs/styles/shared/layout.js +13 -0
- package/dist/cjs/styles/shared/table.js +3 -1
- package/dist/cjs/transforms/expand.js +52 -0
- package/dist/cjs/transforms/extension.js +34 -0
- package/dist/cjs/transforms/index.js +59 -0
- package/dist/cjs/transforms/layout.js +72 -0
- package/dist/cjs/types/command.js +5 -0
- package/dist/cjs/types/context-panel.js +5 -0
- package/dist/cjs/types/editor-actions.js +5 -0
- package/dist/cjs/types/editor-appearance.js +5 -0
- package/dist/cjs/types/editor-container-width.js +5 -0
- package/dist/cjs/types/editor-plugin.js +5 -0
- package/dist/cjs/types/editor-react-context.js +5 -0
- package/dist/cjs/types/empty-state-handler.js +5 -0
- package/dist/cjs/types/feature-flags.js +5 -0
- package/dist/cjs/types/floating-toolbar.js +5 -0
- package/dist/cjs/types/index.js +20 -0
- package/dist/cjs/types/plugin-factory.js +5 -0
- package/dist/cjs/types/prosemirror-config.js +5 -0
- package/dist/cjs/types/quick-insert.js +5 -0
- package/dist/cjs/types/supported-browsers.js +6 -0
- package/dist/cjs/types/toolbar.js +39 -0
- package/dist/cjs/types/ui-components.js +5 -0
- package/dist/cjs/ui/DropList/index.js +217 -0
- package/dist/cjs/ui/ErrorBoundary/index.js +100 -0
- package/dist/cjs/ui/Layer/index.js +245 -0
- package/dist/cjs/ui/Layer/internal/helpers.js +70 -0
- package/dist/cjs/ui/PortalProvider/PortalProviderThemesProvider.js +60 -0
- package/dist/cjs/ui/PortalProvider/index.js +294 -0
- package/dist/cjs/ui-color/ColorPalette/Color/index.js +115 -0
- package/dist/cjs/ui-color/ColorPalette/Color/styles.js +32 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +30 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/common.js +37 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/getColorMessage.js +17 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/index.js +13 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessages.js +123 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +164 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/statusColorPalette.js +72 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +41 -0
- package/dist/cjs/ui-color/ColorPalette/Palettes/type.js +5 -0
- package/dist/cjs/ui-color/ColorPalette/index.js +90 -0
- package/dist/cjs/ui-color/ColorPalette/styles.js +19 -0
- package/dist/cjs/ui-color/index.js +89 -0
- package/dist/cjs/ui-menu/Dropdown/index.js +127 -0
- package/dist/cjs/ui-menu/DropdownMenu/index.js +294 -0
- package/dist/cjs/ui-menu/DropdownMenu/types.js +5 -0
- package/dist/cjs/ui-menu/ToolbarButton/index.js +127 -0
- package/dist/cjs/ui-menu/ToolbarButton/styles.js +26 -0
- package/dist/cjs/ui-menu/index.js +43 -0
- package/dist/cjs/ui-react/ReactEditorViewContext.js +15 -0
- package/dist/cjs/ui-react/index.js +23 -0
- package/dist/cjs/ui-react/with-react-editor-view-outer-listeners.js +159 -0
- package/dist/cjs/utils/dom.js +138 -0
- package/dist/cjs/utils/editor-core-utils.js +108 -0
- package/dist/cjs/utils/index.js +222 -0
- package/dist/cjs/utils/is-text-input.js +31 -0
- package/dist/cjs/utils/nodes.js +134 -0
- package/dist/cjs/utils/plugin-state-factory.js +113 -0
- package/dist/cjs/utils/slice.js +77 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/with-plugin-state/index.js +316 -0
- package/dist/cjs/with-plugin-state/types.js +5 -0
- package/dist/es2019/__tests_external__/cases/fundamentals/collection.js +7 -0
- package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +12 -0
- package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
- package/dist/es2019/__tests_external__/cases/media/test-cases/alt-text.js +29 -0
- package/dist/es2019/__tests_external__/cases/media/test-cases/caption.js +28 -0
- package/dist/es2019/__tests_external__/cases/media/test-cases/index.js +8 -0
- package/dist/es2019/__tests_external__/cases/media/test-cases/types.js +1 -0
- package/dist/es2019/__tests_external__/cases/media/test-cases/upload.js +23 -0
- package/dist/es2019/__tests_external__/cases/smart-links/index.js +4 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +29 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +59 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/index.js +8 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +28 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +29 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +59 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/index.js +8 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +28 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +28 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +57 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/index.js +9 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +27 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +30 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/index.js +6 -0
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +25 -0
- package/dist/es2019/__tests_external__/cases/types.js +1 -0
- package/dist/es2019/__tests_external__/index.js +4 -0
- package/dist/es2019/__tests_external__/page-objects/Editor.js +29 -0
- package/dist/es2019/__tests_external__/page-objects/EditorMedia.js +51 -0
- package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +168 -0
- package/dist/es2019/__tests_external__/page-objects/Renderer.js +17 -0
- package/dist/es2019/analytics/api.js +1 -0
- package/dist/es2019/analytics/index.js +1 -0
- package/dist/es2019/analytics/types/avatar.js +1 -0
- package/dist/es2019/analytics/types/block.js +1 -0
- package/dist/es2019/analytics/types/config-panel-events.js +1 -0
- package/dist/es2019/analytics/types/cut-copy-events.js +1 -0
- package/dist/es2019/analytics/types/date-events.js +1 -0
- package/dist/es2019/analytics/types/dispatch-analytics-event.js +1 -0
- package/dist/es2019/analytics/types/element-browser-events.js +1 -0
- package/dist/es2019/analytics/types/enums.js +336 -0
- package/dist/es2019/analytics/types/events.js +1 -0
- package/dist/es2019/analytics/types/experimental-events.js +1 -0
- package/dist/es2019/analytics/types/extension-events.js +13 -0
- package/dist/es2019/analytics/types/find-replace-events.js +1 -0
- package/dist/es2019/analytics/types/format-events.js +16 -0
- package/dist/es2019/analytics/types/general-events.js +30 -0
- package/dist/es2019/analytics/types/index.js +14 -0
- package/dist/es2019/analytics/types/inline-comment-events.js +7 -0
- package/dist/es2019/analytics/types/insert-events.js +41 -0
- package/dist/es2019/analytics/types/link-tool-bar-events.js +1 -0
- package/dist/es2019/analytics/types/list-events.js +17 -0
- package/dist/es2019/analytics/types/media-events.js +1 -0
- package/dist/es2019/analytics/types/node-events.js +18 -0
- package/dist/es2019/analytics/types/paste-events.js +46 -0
- package/dist/es2019/analytics/types/performance-report.js +1 -0
- package/dist/es2019/analytics/types/selection-events.js +1 -0
- package/dist/es2019/analytics/types/smart-links.js +12 -0
- package/dist/es2019/analytics/types/substitute-events.js +16 -0
- package/dist/es2019/analytics/types/table-events.js +34 -0
- package/dist/es2019/analytics/types/toolbar-button.js +19 -0
- package/dist/es2019/analytics/types/type-ahead.js +1 -0
- package/dist/es2019/analytics/types/utils.js +20 -0
- package/dist/es2019/core-utils/index.js +1 -0
- package/dist/es2019/core-utils/inside.js +8 -0
- package/dist/es2019/event-dispatcher/index.js +60 -0
- package/dist/es2019/keymaps/consts.js +12 -0
- package/dist/es2019/keymaps/index.js +186 -0
- package/dist/es2019/messages/index.js +125 -1
- package/dist/es2019/messages/insert-block.js +168 -0
- package/dist/es2019/node-width/index.js +74 -0
- package/dist/es2019/react-node-view/index.js +199 -0
- package/dist/es2019/react-node-view/types.js +1 -0
- package/dist/es2019/selection/gap-cursor/selection.js +136 -0
- package/dist/es2019/selection/gap-cursor/utils/index.js +2 -0
- package/dist/es2019/selection/gap-cursor/utils/is-ignored.js +5 -0
- package/dist/es2019/selection/gap-cursor/utils/is-valid-target-node.js +4 -0
- package/dist/es2019/selection/index.js +4 -0
- package/dist/es2019/selection/types.js +8 -0
- package/dist/es2019/selection/utils.js +38 -0
- package/dist/es2019/styles/index.js +3 -1
- package/dist/es2019/styles/shared/extension.js +3 -0
- package/dist/es2019/styles/shared/layout.js +3 -0
- package/dist/es2019/styles/shared/table.js +3 -1
- package/dist/es2019/transforms/expand.js +36 -0
- package/dist/es2019/transforms/extension.js +26 -0
- package/dist/es2019/transforms/index.js +3 -0
- package/dist/es2019/transforms/layout.js +54 -0
- package/dist/es2019/types/command.js +1 -0
- package/dist/es2019/types/context-panel.js +1 -0
- package/dist/es2019/types/editor-actions.js +1 -0
- package/dist/es2019/types/editor-appearance.js +1 -0
- package/dist/es2019/types/editor-container-width.js +1 -0
- package/dist/es2019/types/editor-plugin.js +1 -0
- package/dist/es2019/types/editor-react-context.js +1 -0
- package/dist/es2019/types/empty-state-handler.js +1 -0
- package/dist/es2019/types/feature-flags.js +1 -0
- package/dist/es2019/types/floating-toolbar.js +1 -0
- package/dist/es2019/types/index.js +2 -1
- package/dist/es2019/types/plugin-factory.js +1 -0
- package/dist/es2019/types/prosemirror-config.js +1 -0
- package/dist/es2019/types/quick-insert.js +1 -0
- package/dist/es2019/types/supported-browsers.js +2 -0
- package/dist/es2019/types/toolbar.js +30 -0
- package/dist/es2019/types/ui-components.js +1 -0
- package/dist/es2019/ui/DropList/index.js +187 -0
- package/dist/es2019/ui/ErrorBoundary/index.js +52 -0
- package/dist/es2019/ui/Layer/index.js +195 -0
- package/dist/es2019/ui/Layer/internal/helpers.js +62 -0
- package/dist/es2019/ui/PortalProvider/PortalProviderThemesProvider.js +43 -0
- package/dist/es2019/ui/PortalProvider/index.js +193 -0
- package/dist/es2019/ui-color/ColorPalette/Color/index.js +72 -0
- package/dist/es2019/ui-color/ColorPalette/Color/styles.js +35 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +15 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/common.js +25 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/getColorMessage.js +14 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/index.js +1 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessages.js +113 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +143 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/statusColorPalette.js +56 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +25 -0
- package/dist/es2019/ui-color/ColorPalette/Palettes/type.js +1 -0
- package/dist/es2019/ui-color/ColorPalette/index.js +68 -0
- package/dist/es2019/ui-color/ColorPalette/styles.js +7 -0
- package/dist/es2019/ui-color/index.js +8 -0
- package/dist/es2019/ui-menu/Dropdown/index.js +83 -0
- package/dist/es2019/ui-menu/DropdownMenu/index.js +244 -0
- package/dist/es2019/ui-menu/DropdownMenu/types.js +1 -0
- package/dist/es2019/ui-menu/ToolbarButton/index.js +94 -0
- package/dist/es2019/ui-menu/ToolbarButton/styles.js +12 -0
- package/dist/es2019/ui-menu/index.js +3 -0
- package/dist/es2019/ui-react/ReactEditorViewContext.js +3 -0
- package/dist/es2019/ui-react/index.js +2 -0
- package/dist/es2019/ui-react/with-react-editor-view-outer-listeners.js +103 -0
- package/dist/es2019/utils/dom.js +113 -0
- package/dist/es2019/utils/editor-core-utils.js +72 -0
- package/dist/es2019/utils/index.js +6 -0
- package/dist/es2019/utils/is-text-input.js +19 -0
- package/dist/es2019/utils/nodes.js +88 -0
- package/dist/es2019/utils/plugin-state-factory.js +107 -0
- package/dist/es2019/utils/slice.js +56 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/with-plugin-state/index.js +263 -0
- package/dist/es2019/with-plugin-state/types.js +1 -0
- package/dist/esm/__tests_external__/cases/fundamentals/collection.js +9 -0
- package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +14 -0
- package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
- package/dist/esm/__tests_external__/cases/media/test-cases/alt-text.js +32 -0
- package/dist/esm/__tests_external__/cases/media/test-cases/caption.js +31 -0
- package/dist/esm/__tests_external__/cases/media/test-cases/index.js +10 -0
- package/dist/esm/__tests_external__/cases/media/test-cases/types.js +1 -0
- package/dist/esm/__tests_external__/cases/media/test-cases/upload.js +26 -0
- package/dist/esm/__tests_external__/cases/smart-links/index.js +4 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +30 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +61 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/index.js +10 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +29 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +30 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +61 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/index.js +10 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +29 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +29 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +59 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/index.js +11 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +28 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +31 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/index.js +8 -0
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +26 -0
- package/dist/esm/__tests_external__/cases/types.js +1 -0
- package/dist/esm/__tests_external__/index.js +4 -0
- package/dist/esm/__tests_external__/page-objects/Editor.js +56 -0
- package/dist/esm/__tests_external__/page-objects/EditorMedia.js +83 -0
- package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +218 -0
- package/dist/esm/__tests_external__/page-objects/Renderer.js +45 -0
- package/dist/esm/analytics/api.js +1 -0
- package/dist/esm/analytics/index.js +1 -0
- package/dist/esm/analytics/types/avatar.js +1 -0
- package/dist/esm/analytics/types/block.js +1 -0
- package/dist/esm/analytics/types/config-panel-events.js +1 -0
- package/dist/esm/analytics/types/cut-copy-events.js +1 -0
- package/dist/esm/analytics/types/date-events.js +1 -0
- package/dist/esm/analytics/types/dispatch-analytics-event.js +1 -0
- package/dist/esm/analytics/types/element-browser-events.js +1 -0
- package/dist/esm/analytics/types/enums.js +336 -0
- package/dist/esm/analytics/types/events.js +1 -0
- package/dist/esm/analytics/types/experimental-events.js +1 -0
- package/dist/esm/analytics/types/extension-events.js +13 -0
- package/dist/esm/analytics/types/find-replace-events.js +1 -0
- package/dist/esm/analytics/types/format-events.js +16 -0
- package/dist/esm/analytics/types/general-events.js +30 -0
- package/dist/esm/analytics/types/index.js +14 -0
- package/dist/esm/analytics/types/inline-comment-events.js +7 -0
- package/dist/esm/analytics/types/insert-events.js +41 -0
- package/dist/esm/analytics/types/link-tool-bar-events.js +1 -0
- package/dist/esm/analytics/types/list-events.js +17 -0
- package/dist/esm/analytics/types/media-events.js +1 -0
- package/dist/esm/analytics/types/node-events.js +18 -0
- package/dist/esm/analytics/types/paste-events.js +46 -0
- package/dist/esm/analytics/types/performance-report.js +1 -0
- package/dist/esm/analytics/types/selection-events.js +1 -0
- package/dist/esm/analytics/types/smart-links.js +12 -0
- package/dist/esm/analytics/types/substitute-events.js +16 -0
- package/dist/esm/analytics/types/table-events.js +34 -0
- package/dist/esm/analytics/types/toolbar-button.js +19 -0
- package/dist/esm/analytics/types/type-ahead.js +1 -0
- package/dist/esm/analytics/types/utils.js +20 -0
- package/dist/esm/core-utils/index.js +1 -0
- package/dist/esm/core-utils/inside.js +7 -0
- package/dist/esm/event-dispatcher/index.js +74 -0
- package/dist/esm/keymaps/consts.js +12 -0
- package/dist/esm/keymaps/index.js +184 -0
- package/dist/esm/messages/index.js +125 -1
- package/dist/esm/messages/insert-block.js +168 -0
- package/dist/esm/node-width/index.js +72 -0
- package/dist/esm/react-node-view/index.js +244 -0
- package/dist/esm/react-node-view/types.js +1 -0
- package/dist/esm/selection/gap-cursor/selection.js +176 -0
- package/dist/esm/selection/gap-cursor/utils/index.js +2 -0
- package/dist/esm/selection/gap-cursor/utils/is-ignored.js +5 -0
- package/dist/esm/selection/gap-cursor/utils/is-valid-target-node.js +4 -0
- package/dist/esm/selection/index.js +4 -0
- package/dist/esm/selection/types.js +8 -0
- package/dist/esm/selection/utils.js +38 -0
- package/dist/esm/styles/index.js +3 -1
- package/dist/esm/styles/shared/extension.js +3 -0
- package/dist/esm/styles/shared/layout.js +3 -0
- package/dist/esm/styles/shared/table.js +3 -1
- package/dist/esm/transforms/expand.js +34 -0
- package/dist/esm/transforms/extension.js +24 -0
- package/dist/esm/transforms/index.js +3 -0
- package/dist/esm/transforms/layout.js +58 -0
- package/dist/esm/types/command.js +1 -0
- package/dist/esm/types/context-panel.js +1 -0
- package/dist/esm/types/editor-actions.js +1 -0
- package/dist/esm/types/editor-appearance.js +1 -0
- package/dist/esm/types/editor-container-width.js +1 -0
- package/dist/esm/types/editor-plugin.js +1 -0
- package/dist/esm/types/editor-react-context.js +1 -0
- package/dist/esm/types/empty-state-handler.js +1 -0
- package/dist/esm/types/feature-flags.js +1 -0
- package/dist/esm/types/floating-toolbar.js +1 -0
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/plugin-factory.js +1 -0
- package/dist/esm/types/prosemirror-config.js +1 -0
- package/dist/esm/types/quick-insert.js +1 -0
- package/dist/esm/types/supported-browsers.js +2 -0
- package/dist/esm/types/toolbar.js +30 -0
- package/dist/esm/types/ui-components.js +1 -0
- package/dist/esm/ui/DropList/index.js +205 -0
- package/dist/esm/ui/ErrorBoundary/index.js +84 -0
- package/dist/esm/ui/Layer/index.js +228 -0
- package/dist/esm/ui/Layer/internal/helpers.js +62 -0
- package/dist/esm/ui/PortalProvider/PortalProviderThemesProvider.js +43 -0
- package/dist/esm/ui/PortalProvider/index.js +275 -0
- package/dist/esm/ui-color/ColorPalette/Color/index.js +93 -0
- package/dist/esm/ui-color/ColorPalette/Color/styles.js +19 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +15 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/common.js +24 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/getColorMessage.js +10 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/index.js +1 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessages.js +113 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +153 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/statusColorPalette.js +56 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +25 -0
- package/dist/esm/ui-color/ColorPalette/Palettes/type.js +1 -0
- package/dist/esm/ui-color/ColorPalette/index.js +70 -0
- package/dist/esm/ui-color/ColorPalette/styles.js +7 -0
- package/dist/esm/ui-color/index.js +8 -0
- package/dist/esm/ui-menu/Dropdown/index.js +105 -0
- package/dist/esm/ui-menu/DropdownMenu/index.js +265 -0
- package/dist/esm/ui-menu/DropdownMenu/types.js +1 -0
- package/dist/esm/ui-menu/ToolbarButton/index.js +102 -0
- package/dist/esm/ui-menu/ToolbarButton/styles.js +12 -0
- package/dist/esm/ui-menu/index.js +3 -0
- package/dist/esm/ui-react/ReactEditorViewContext.js +3 -0
- package/dist/esm/ui-react/index.js +2 -0
- package/dist/esm/ui-react/with-react-editor-view-outer-listeners.js +138 -0
- package/dist/esm/utils/dom.js +113 -0
- package/dist/esm/utils/editor-core-utils.js +72 -0
- package/dist/esm/utils/index.js +6 -0
- package/dist/esm/utils/is-text-input.js +18 -0
- package/dist/esm/utils/nodes.js +100 -0
- package/dist/esm/utils/plugin-state-factory.js +106 -0
- package/dist/esm/utils/slice.js +59 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/with-plugin-state/index.js +311 -0
- package/dist/esm/with-plugin-state/types.js +1 -0
- package/dist/types/analytics/api.d.ts +5 -0
- package/dist/types/analytics/index.d.ts +3 -0
- package/dist/types/analytics/types/avatar.d.ts +5 -0
- package/dist/types/analytics/types/block.d.ts +3 -0
- package/dist/types/analytics/types/config-panel-events.d.ts +17 -0
- package/dist/types/analytics/types/cut-copy-events.d.ts +12 -0
- package/dist/types/analytics/types/date-events.d.ts +17 -0
- package/dist/types/analytics/types/dispatch-analytics-event.d.ts +2 -0
- package/dist/types/analytics/types/element-browser-events.d.ts +11 -0
- package/dist/types/analytics/types/enums.d.ts +313 -0
- package/dist/types/analytics/types/events.d.ts +125 -0
- package/dist/types/analytics/types/experimental-events.d.ts +17 -0
- package/dist/types/analytics/types/extension-events.d.ts +37 -0
- package/dist/types/analytics/types/find-replace-events.d.ts +23 -0
- package/dist/types/analytics/types/format-events.d.ts +49 -0
- package/dist/types/analytics/types/general-events.d.ts +179 -0
- package/dist/types/analytics/types/index.d.ts +34 -0
- package/dist/types/analytics/types/inline-comment-events.d.ts +17 -0
- package/dist/types/analytics/types/insert-events.d.ts +128 -0
- package/dist/types/analytics/types/link-tool-bar-events.d.ts +76 -0
- package/dist/types/analytics/types/list-events.d.ts +52 -0
- package/dist/types/analytics/types/media-events.d.ts +16 -0
- package/dist/types/analytics/types/node-events.d.ts +56 -0
- package/dist/types/analytics/types/paste-events.d.ts +39 -0
- package/dist/types/analytics/types/performance-report.d.ts +24 -0
- package/dist/types/analytics/types/selection-events.d.ts +18 -0
- package/dist/types/analytics/types/smart-links.d.ts +13 -0
- package/dist/types/analytics/types/substitute-events.d.ts +26 -0
- package/dist/types/analytics/types/table-events.d.ts +94 -0
- package/dist/types/analytics/types/toolbar-button.d.ts +22 -0
- package/dist/types/analytics/types/type-ahead.d.ts +27 -0
- package/dist/types/analytics/types/utils.d.ts +46 -0
- package/dist/types/core-utils/index.d.ts +1 -0
- package/dist/types/core-utils/inside.d.ts +2 -0
- package/dist/types/event-dispatcher/index.d.ts +19 -0
- package/dist/types/keymaps/consts.d.ts +12 -0
- package/dist/types/keymaps/index.d.ts +89 -0
- package/dist/types/messages/index.d.ts +124 -0
- package/dist/types/messages/insert-block.d.ts +167 -0
- package/dist/types/node-width/index.d.ts +7 -0
- package/dist/types/react-node-view/index.d.ts +52 -0
- package/dist/types/react-node-view/types.d.ts +12 -0
- package/dist/types/selection/gap-cursor/selection.d.ts +40 -0
- package/dist/types/selection/gap-cursor/utils/index.d.ts +2 -0
- package/dist/types/selection/gap-cursor/utils/is-ignored.d.ts +2 -0
- package/dist/types/selection/gap-cursor/utils/is-valid-target-node.d.ts +2 -0
- package/dist/types/selection/index.d.ts +5 -0
- package/dist/types/selection/types.d.ts +26 -0
- package/dist/types/selection/utils.d.ts +4 -0
- package/dist/types/styles/index.d.ts +2 -0
- package/dist/types/styles/shared/extension.d.ts +2 -0
- package/dist/types/styles/shared/layout.d.ts +2 -0
- package/dist/types/styles/shared/table.d.ts +2 -0
- package/dist/types/transforms/expand.d.ts +5 -0
- package/dist/types/transforms/extension.d.ts +6 -0
- package/dist/types/transforms/index.d.ts +3 -0
- package/dist/types/transforms/layout.d.ts +15 -0
- package/dist/types/types/command.d.ts +5 -0
- package/dist/types/types/context-panel.d.ts +3 -0
- package/dist/types/types/editor-actions.d.ts +19 -0
- package/dist/types/types/editor-appearance.d.ts +1 -0
- package/dist/types/types/editor-container-width.d.ts +6 -0
- package/dist/types/types/editor-plugin.d.ts +61 -0
- package/dist/types/types/editor-react-context.d.ts +6 -0
- package/dist/types/types/empty-state-handler.d.ts +7 -0
- package/dist/types/types/feature-flags.d.ts +344 -0
- package/dist/types/types/floating-toolbar.d.ts +183 -0
- package/dist/types/types/index.d.ts +17 -1
- package/dist/types/types/plugin-factory.d.ts +27 -0
- package/dist/types/types/prosemirror-config.d.ts +14 -0
- package/dist/types/types/quick-insert.d.ts +26 -0
- package/dist/types/types/supported-browsers.d.ts +10 -0
- package/dist/types/types/toolbar.d.ts +30 -0
- package/dist/types/types/type-ahead.d.ts +50 -1
- package/dist/types/types/ui-components.d.ts +22 -0
- package/dist/types/ui/DropList/index.d.ts +19 -0
- package/dist/types/ui/ErrorBoundary/index.d.ts +24 -0
- package/dist/types/ui/Layer/index.d.ts +47 -0
- package/dist/types/ui/Layer/internal/helpers.d.ts +5 -0
- package/dist/types/ui/PortalProvider/PortalProviderThemesProvider.d.ts +6 -0
- package/dist/types/ui/PortalProvider/index.d.ts +50 -0
- package/dist/types/ui-color/ColorPalette/Color/index.d.ts +19 -0
- package/dist/types/ui-color/ColorPalette/Color/styles.d.ts +4 -0
- package/dist/types/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.d.ts +3 -0
- package/dist/types/ui-color/ColorPalette/Palettes/common.d.ts +2 -0
- package/dist/types/ui-color/ColorPalette/Palettes/getColorMessage.d.ts +2 -0
- package/dist/types/ui-color/ColorPalette/Palettes/index.d.ts +2 -0
- package/dist/types/ui-color/ColorPalette/Palettes/paletteMessages.d.ts +113 -0
- package/dist/types/ui-color/ColorPalette/Palettes/panelBackgroundPalette.d.ts +4 -0
- package/dist/types/ui-color/ColorPalette/Palettes/statusColorPalette.d.ts +4 -0
- package/dist/types/ui-color/ColorPalette/Palettes/textColorPalette.d.ts +3 -0
- package/dist/types/ui-color/ColorPalette/Palettes/type.d.ts +8 -0
- package/dist/types/ui-color/ColorPalette/index.d.ts +15 -0
- package/dist/types/ui-color/ColorPalette/styles.d.ts +1 -0
- package/dist/types/ui-color/index.d.ts +9 -0
- package/dist/types/ui-menu/Dropdown/index.d.ts +32 -0
- package/dist/types/ui-menu/DropdownMenu/index.d.ts +19 -0
- package/dist/types/ui-menu/DropdownMenu/types.d.ts +43 -0
- package/dist/types/ui-menu/ToolbarButton/index.d.ts +53 -0
- package/dist/types/ui-menu/ToolbarButton/styles.d.ts +4 -0
- package/dist/types/ui-menu/index.d.ts +5 -0
- package/dist/types/ui-react/ReactEditorViewContext.d.ts +8 -0
- package/dist/types/ui-react/index.d.ts +2 -0
- package/dist/types/ui-react/with-react-editor-view-outer-listeners.d.ts +9 -0
- package/dist/types/utils/dom.d.ts +26 -0
- package/dist/types/utils/editor-core-utils.d.ts +23 -0
- package/dist/types/utils/getModeFromTheme.d.ts +1 -1
- package/dist/types/utils/index.d.ts +9 -0
- package/dist/types/utils/is-text-input.d.ts +2 -0
- package/dist/types/utils/nodes.d.ts +35 -0
- package/dist/types/utils/plugin-state-factory.d.ts +16 -0
- package/dist/types/utils/slice.d.ts +11 -0
- package/dist/types/with-plugin-state/index.d.ts +86 -0
- package/dist/types/with-plugin-state/types.d.ts +10 -0
- package/error-boundary/package.json +8 -0
- package/event-dispatcher/package.json +8 -0
- package/keymaps/package.json +8 -0
- package/node-width/package.json +8 -0
- package/package.json +28 -7
- package/portal-provider/package.json +8 -0
- package/react-node-view/package.json +8 -0
- package/selection/package.json +8 -0
- package/transforms/package.json +8 -0
- package/ui-color/package.json +8 -0
- package/ui-menu/package.json +8 -0
- package/ui-react/package.json +8 -0
- package/with-plugin-state/package.json +8 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import chromatism from 'chromatism';
|
|
5
|
+
import { injectIntl } from 'react-intl-next';
|
|
6
|
+
import { N0, N500 } from '@atlaskit/theme/colors';
|
|
7
|
+
import Color from './Color';
|
|
8
|
+
import { colorPaletteWrapper } from './styles';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* For a given color pick the color from a list of colors with
|
|
12
|
+
* the highest contrast
|
|
13
|
+
*
|
|
14
|
+
* @param color color string, suppports HEX, RGB, RGBA etc.
|
|
15
|
+
* @return Highest contrast color in pool
|
|
16
|
+
*/
|
|
17
|
+
function getContrastColor(color, pool) {
|
|
18
|
+
return pool.sort((a, b) => chromatism.difference(b, color) - chromatism.difference(a, color))[0];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const ColorPalette = props => {
|
|
22
|
+
const {
|
|
23
|
+
palette,
|
|
24
|
+
cols = 7,
|
|
25
|
+
onClick,
|
|
26
|
+
selectedColor,
|
|
27
|
+
className,
|
|
28
|
+
intl: {
|
|
29
|
+
formatMessage
|
|
30
|
+
}
|
|
31
|
+
} = props;
|
|
32
|
+
const colorsPerRow = React.useMemo(() => {
|
|
33
|
+
return palette.reduce((resultArray, item, index) => {
|
|
34
|
+
const chunkIndex = Math.floor(index / cols);
|
|
35
|
+
resultArray[chunkIndex] = resultArray[chunkIndex] || []; // start a new chunk
|
|
36
|
+
|
|
37
|
+
resultArray[chunkIndex].push(item);
|
|
38
|
+
return resultArray;
|
|
39
|
+
}, []);
|
|
40
|
+
}, [palette, cols]);
|
|
41
|
+
return jsx(React.Fragment, null, colorsPerRow.map((row, rowIdx) => jsx("div", {
|
|
42
|
+
css: colorPaletteWrapper,
|
|
43
|
+
className: className,
|
|
44
|
+
key: `row-first-color-${row[0].value}`,
|
|
45
|
+
role: "radiogroup"
|
|
46
|
+
}, row.map(({
|
|
47
|
+
value,
|
|
48
|
+
label,
|
|
49
|
+
border,
|
|
50
|
+
message
|
|
51
|
+
}, colorIdx) => jsx(Color, {
|
|
52
|
+
key: value,
|
|
53
|
+
value: value,
|
|
54
|
+
borderColor: border,
|
|
55
|
+
label: message ? formatMessage(message) : label,
|
|
56
|
+
onClick: onClick,
|
|
57
|
+
isSelected: value === selectedColor
|
|
58
|
+
/** this is not new usage - old code extracted from editor-core */
|
|
59
|
+
|
|
60
|
+
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
61
|
+
,
|
|
62
|
+
checkMarkColor: getContrastColor(value, [N0, N500])
|
|
63
|
+
/* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
|
|
64
|
+
|
|
65
|
+
})))));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default injectIntl(ColorPalette);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as ColorPalette } from './ColorPalette';
|
|
2
|
+
export { default as Color } from './ColorPalette/Color';
|
|
3
|
+
export { default as cellBackgroundColorPalette } from './ColorPalette/Palettes/cellBackgroundColorPalette';
|
|
4
|
+
export { default as colorPaletteMessages } from './ColorPalette/Palettes/paletteMessages';
|
|
5
|
+
export { panelBackgroundPalette, panelDarkModeBackgroundPalette } from './ColorPalette/Palettes/panelBackgroundPalette';
|
|
6
|
+
export { lightModeStatusColorPalette, darkModeStatusColorPalette } from './ColorPalette/Palettes/statusColorPalette';
|
|
7
|
+
export { textColorPalette, textColorPaletteExtended } from './ColorPalette/Palettes/textColorPalette';
|
|
8
|
+
export { DEFAULT_BORDER_COLOR } from './ColorPalette/Palettes/common';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import React, { PureComponent } from 'react';
|
|
3
|
+
import { withReactEditorViewOuterListeners } from '../../ui-react';
|
|
4
|
+
import DropdownList from '../../ui/DropList';
|
|
5
|
+
import Popup from '../../ui/Popup';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper around @atlaskit/droplist which uses Popup and Portal to render
|
|
9
|
+
* droplist outside of "overflow: hidden" containers when needed.
|
|
10
|
+
*
|
|
11
|
+
* Also it controls popper's placement.
|
|
12
|
+
*/
|
|
13
|
+
export class Dropdown extends PureComponent {
|
|
14
|
+
constructor(props) {
|
|
15
|
+
super(props);
|
|
16
|
+
|
|
17
|
+
_defineProperty(this, "handleRef", target => {
|
|
18
|
+
this.setState({
|
|
19
|
+
target: target || undefined
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
_defineProperty(this, "updatePopupPlacement", placement => {
|
|
24
|
+
this.setState({
|
|
25
|
+
popupPlacement: placement
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
this.state = {
|
|
30
|
+
popupPlacement: ['bottom', 'left']
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
renderDropdown() {
|
|
35
|
+
const {
|
|
36
|
+
target,
|
|
37
|
+
popupPlacement
|
|
38
|
+
} = this.state;
|
|
39
|
+
const {
|
|
40
|
+
children,
|
|
41
|
+
mountTo,
|
|
42
|
+
boundariesElement,
|
|
43
|
+
scrollableElement,
|
|
44
|
+
onOpenChange,
|
|
45
|
+
fitHeight,
|
|
46
|
+
fitWidth,
|
|
47
|
+
zIndex
|
|
48
|
+
} = this.props;
|
|
49
|
+
return /*#__PURE__*/React.createElement(Popup, {
|
|
50
|
+
target: target,
|
|
51
|
+
mountTo: mountTo,
|
|
52
|
+
boundariesElement: boundariesElement,
|
|
53
|
+
scrollableElement: scrollableElement,
|
|
54
|
+
onPlacementChanged: this.updatePopupPlacement,
|
|
55
|
+
fitHeight: fitHeight,
|
|
56
|
+
fitWidth: fitWidth,
|
|
57
|
+
zIndex: zIndex
|
|
58
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
59
|
+
style: {
|
|
60
|
+
height: 0,
|
|
61
|
+
minWidth: fitWidth || 0
|
|
62
|
+
}
|
|
63
|
+
}, /*#__PURE__*/React.createElement(DropdownList, {
|
|
64
|
+
isOpen: true,
|
|
65
|
+
onOpenChange: onOpenChange,
|
|
66
|
+
position: popupPlacement.join(' '),
|
|
67
|
+
shouldFitContainer: true
|
|
68
|
+
}, children)));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
render() {
|
|
72
|
+
const {
|
|
73
|
+
trigger,
|
|
74
|
+
isOpen
|
|
75
|
+
} = this.props;
|
|
76
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
77
|
+
ref: this.handleRef
|
|
78
|
+
}, trigger), isOpen ? this.renderDropdown() : null);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
const DropdownWithOuterListeners = withReactEditorViewOuterListeners(Dropdown);
|
|
83
|
+
export default DropdownWithOuterListeners;
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
|
|
4
|
+
/** @jsx jsx */
|
|
5
|
+
import React, { PureComponent } from 'react';
|
|
6
|
+
import { css, jsx } from '@emotion/react';
|
|
7
|
+
import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
8
|
+
import { CustomItem, MenuGroup } from '@atlaskit/menu';
|
|
9
|
+
import { DN600, DN80, N70, N900 } from '@atlaskit/theme/colors';
|
|
10
|
+
import { themed } from '@atlaskit/theme/components';
|
|
11
|
+
import { token } from '@atlaskit/tokens';
|
|
12
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
13
|
+
import { withReactEditorViewOuterListeners } from '../../ui-react';
|
|
14
|
+
import DropList from '../../ui/DropList';
|
|
15
|
+
import Popup from '../../ui/Popup';
|
|
16
|
+
const wrapper = css`
|
|
17
|
+
/* tooltip in ToolbarButton is display:block */
|
|
18
|
+
& > div > div {
|
|
19
|
+
display: flex;
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
const buttonStyles = isActive => theme => {
|
|
24
|
+
if (isActive) {
|
|
25
|
+
/**
|
|
26
|
+
* Hack for item to imitate old dropdown-menu selected styles
|
|
27
|
+
*/
|
|
28
|
+
return css`
|
|
29
|
+
> span,
|
|
30
|
+
> span:hover,
|
|
31
|
+
> span:active {
|
|
32
|
+
background: ${token('color.background.selected', '#6c798f')};
|
|
33
|
+
color: ${token('color.text', '#fff')};
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
} else {
|
|
37
|
+
return css`
|
|
38
|
+
> span:hover[aria-disabled='false'] {
|
|
39
|
+
color: ${themed({
|
|
40
|
+
light: token('color.text', N900),
|
|
41
|
+
dark: token('color.text', DN600)
|
|
42
|
+
})(theme)};
|
|
43
|
+
background-color: ${themed({
|
|
44
|
+
light: token('color.background.neutral.subtle.hovered', 'rgb(244, 245, 247)'),
|
|
45
|
+
dark: token('color.background.neutral.subtle.hovered', 'rgb(59, 71, 92)')
|
|
46
|
+
})(theme)};
|
|
47
|
+
}
|
|
48
|
+
> span:active[aria-disabled='false'] {
|
|
49
|
+
background-color: ${themed({
|
|
50
|
+
light: token('color.background.neutral.subtle.pressed', 'rgb(179, 212, 255)'),
|
|
51
|
+
dark: token('color.background.neutral.subtle.pressed', 'rgb(179, 212, 255)')
|
|
52
|
+
})(theme)};
|
|
53
|
+
}
|
|
54
|
+
> span[aria-disabled='true'] {
|
|
55
|
+
color: ${themed({
|
|
56
|
+
light: token('color.text.disabled', N70),
|
|
57
|
+
dark: token('color.text.disabled', DN80)
|
|
58
|
+
})(theme)};
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const DropListWithOutsideListeners = withReactEditorViewOuterListeners(DropList);
|
|
65
|
+
/**
|
|
66
|
+
* Wrapper around @atlaskit/droplist which uses Popup and Portal to render
|
|
67
|
+
* dropdown-menu outside of "overflow: hidden" containers when needed.
|
|
68
|
+
*
|
|
69
|
+
* Also it controls popper's placement.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
export default class DropdownMenuWrapper extends PureComponent {
|
|
73
|
+
constructor(...args) {
|
|
74
|
+
super(...args);
|
|
75
|
+
|
|
76
|
+
_defineProperty(this, "state", {
|
|
77
|
+
popupPlacement: ['bottom', 'left']
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
_defineProperty(this, "handleRef", target => {
|
|
81
|
+
this.setState({
|
|
82
|
+
target: target || undefined
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
_defineProperty(this, "updatePopupPlacement", placement => {
|
|
87
|
+
const {
|
|
88
|
+
popupPlacement: previousPlacement
|
|
89
|
+
} = this.state;
|
|
90
|
+
|
|
91
|
+
if (placement[0] !== previousPlacement[0] || placement[1] !== previousPlacement[1]) {
|
|
92
|
+
this.setState({
|
|
93
|
+
popupPlacement: placement
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
_defineProperty(this, "handleClose", () => {
|
|
99
|
+
if (this.props.onOpenChange) {
|
|
100
|
+
this.props.onOpenChange({
|
|
101
|
+
isOpen: false
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
renderDropdownMenu() {
|
|
108
|
+
const {
|
|
109
|
+
target,
|
|
110
|
+
popupPlacement
|
|
111
|
+
} = this.state;
|
|
112
|
+
const {
|
|
113
|
+
items,
|
|
114
|
+
mountTo,
|
|
115
|
+
boundariesElement,
|
|
116
|
+
scrollableElement,
|
|
117
|
+
offset,
|
|
118
|
+
fitHeight,
|
|
119
|
+
fitWidth,
|
|
120
|
+
isOpen,
|
|
121
|
+
zIndex,
|
|
122
|
+
shouldUseDefaultRole
|
|
123
|
+
} = this.props;
|
|
124
|
+
return jsx(Popup, {
|
|
125
|
+
target: isOpen ? target : undefined,
|
|
126
|
+
mountTo: mountTo,
|
|
127
|
+
boundariesElement: boundariesElement,
|
|
128
|
+
scrollableElement: scrollableElement,
|
|
129
|
+
onPlacementChanged: this.updatePopupPlacement,
|
|
130
|
+
fitHeight: fitHeight,
|
|
131
|
+
fitWidth: fitWidth,
|
|
132
|
+
zIndex: zIndex || akEditorFloatingPanelZIndex,
|
|
133
|
+
offset: offset
|
|
134
|
+
}, jsx(DropListWithOutsideListeners, {
|
|
135
|
+
isOpen: true,
|
|
136
|
+
appearance: "tall",
|
|
137
|
+
position: popupPlacement.join(' '),
|
|
138
|
+
shouldFlip: false,
|
|
139
|
+
shouldFitContainer: true,
|
|
140
|
+
isTriggerNotTabbable: true,
|
|
141
|
+
handleClickOutside: this.handleClose,
|
|
142
|
+
handleEscapeKeydown: this.handleClose
|
|
143
|
+
}, jsx("div", {
|
|
144
|
+
style: {
|
|
145
|
+
height: 0,
|
|
146
|
+
minWidth: fitWidth || 0
|
|
147
|
+
}
|
|
148
|
+
}), items.map((group, index) => jsx(MenuGroup, {
|
|
149
|
+
key: index,
|
|
150
|
+
role: shouldUseDefaultRole ? 'group' : 'menu'
|
|
151
|
+
}, group.items.map(item => {
|
|
152
|
+
var _item$key;
|
|
153
|
+
|
|
154
|
+
return jsx(DropdownMenuItem, {
|
|
155
|
+
key: (_item$key = item.key) !== null && _item$key !== void 0 ? _item$key : String(item.content),
|
|
156
|
+
item: item,
|
|
157
|
+
onItemActivated: this.props.onItemActivated,
|
|
158
|
+
shouldUseDefaultRole: this.props.shouldUseDefaultRole,
|
|
159
|
+
onMouseEnter: this.props.onMouseEnter,
|
|
160
|
+
onMouseLeave: this.props.onMouseLeave
|
|
161
|
+
});
|
|
162
|
+
})))));
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
render() {
|
|
166
|
+
const {
|
|
167
|
+
children,
|
|
168
|
+
isOpen
|
|
169
|
+
} = this.props;
|
|
170
|
+
return jsx("div", {
|
|
171
|
+
css: wrapper
|
|
172
|
+
}, jsx("div", {
|
|
173
|
+
ref: this.handleRef
|
|
174
|
+
}, children), isOpen ? this.renderDropdownMenu() : null);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
}
|
|
178
|
+
const DropdownMenuItemCustomComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
179
|
+
const {
|
|
180
|
+
children,
|
|
181
|
+
...rest
|
|
182
|
+
} = props;
|
|
183
|
+
return jsx("span", _extends({
|
|
184
|
+
ref: ref
|
|
185
|
+
}, rest), children);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
function DropdownMenuItem({
|
|
189
|
+
item,
|
|
190
|
+
onItemActivated,
|
|
191
|
+
shouldUseDefaultRole,
|
|
192
|
+
onMouseEnter,
|
|
193
|
+
onMouseLeave
|
|
194
|
+
}) {
|
|
195
|
+
var _item$key2;
|
|
196
|
+
|
|
197
|
+
// onClick and value.name are the action indicators in the handlers
|
|
198
|
+
// If neither are present, don't wrap in an Item.
|
|
199
|
+
if (!item.onClick && !(item.value && item.value.name)) {
|
|
200
|
+
return jsx("span", {
|
|
201
|
+
key: String(item.content)
|
|
202
|
+
}, item.content);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const dropListItem = jsx("div", {
|
|
206
|
+
css: theme => buttonStyles(item.isActive)({
|
|
207
|
+
theme
|
|
208
|
+
})
|
|
209
|
+
}, jsx(CustomItem, {
|
|
210
|
+
item: item,
|
|
211
|
+
key: (_item$key2 = item.key) !== null && _item$key2 !== void 0 ? _item$key2 : String(item.content),
|
|
212
|
+
role: shouldUseDefaultRole ? 'button' : 'menuitem',
|
|
213
|
+
iconBefore: item.elemBefore,
|
|
214
|
+
iconAfter: item.elemAfter,
|
|
215
|
+
isDisabled: item.isDisabled,
|
|
216
|
+
onClick: () => onItemActivated && onItemActivated({
|
|
217
|
+
item
|
|
218
|
+
}),
|
|
219
|
+
"aria-label": item['aria-label'] || String(item.content),
|
|
220
|
+
"aria-pressed": shouldUseDefaultRole ? item.isActive : undefined,
|
|
221
|
+
onMouseDown: e => {
|
|
222
|
+
e.preventDefault();
|
|
223
|
+
},
|
|
224
|
+
component: DropdownMenuItemCustomComponent,
|
|
225
|
+
onMouseEnter: () => onMouseEnter && onMouseEnter({
|
|
226
|
+
item
|
|
227
|
+
}),
|
|
228
|
+
onMouseLeave: () => onMouseLeave && onMouseLeave({
|
|
229
|
+
item
|
|
230
|
+
})
|
|
231
|
+
}, item.content));
|
|
232
|
+
|
|
233
|
+
if (item.tooltipDescription) {
|
|
234
|
+
var _item$key3;
|
|
235
|
+
|
|
236
|
+
return jsx(Tooltip, {
|
|
237
|
+
key: (_item$key3 = item.key) !== null && _item$key3 !== void 0 ? _item$key3 : String(item.content),
|
|
238
|
+
content: item.tooltipDescription,
|
|
239
|
+
position: item.tooltipPosition
|
|
240
|
+
}, dropListItem);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return dropListItem;
|
|
244
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
|
+
import { css, jsx } from '@emotion/react';
|
|
4
|
+
import { FabricChannel } from '@atlaskit/analytics-listeners';
|
|
5
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
6
|
+
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, TOOLBAR_ACTION_SUBJECT_ID } from '../../analytics';
|
|
7
|
+
import Button from './styles';
|
|
8
|
+
export const TOOLBAR_BUTTON = TOOLBAR_ACTION_SUBJECT_ID;
|
|
9
|
+
const buttonWrapper = css`
|
|
10
|
+
display: flex;
|
|
11
|
+
height: 100%;
|
|
12
|
+
`;
|
|
13
|
+
const ToolbarButton = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
14
|
+
const {
|
|
15
|
+
buttonId,
|
|
16
|
+
testId,
|
|
17
|
+
className = '',
|
|
18
|
+
href,
|
|
19
|
+
iconAfter,
|
|
20
|
+
iconBefore,
|
|
21
|
+
disabled,
|
|
22
|
+
selected,
|
|
23
|
+
spacing,
|
|
24
|
+
target,
|
|
25
|
+
children,
|
|
26
|
+
hideTooltip,
|
|
27
|
+
title,
|
|
28
|
+
titlePosition = 'top',
|
|
29
|
+
item,
|
|
30
|
+
'aria-label': ariaLabel,
|
|
31
|
+
'aria-haspopup': ariaHasPopup,
|
|
32
|
+
'aria-expanded': ariaExpanded,
|
|
33
|
+
'aria-pressed': ariaPressed,
|
|
34
|
+
onClick,
|
|
35
|
+
onItemClick
|
|
36
|
+
} = props;
|
|
37
|
+
const handleClick = useCallback((event, analyticsEvent) => {
|
|
38
|
+
if (disabled) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (buttonId) {
|
|
43
|
+
analyticsEvent.update(payload => ({ ...payload,
|
|
44
|
+
action: ACTION.CLICKED,
|
|
45
|
+
actionSubject: ACTION_SUBJECT.TOOLBAR_BUTTON,
|
|
46
|
+
actionSubjectId: buttonId,
|
|
47
|
+
eventType: EVENT_TYPE.UI
|
|
48
|
+
})).fire(FabricChannel.editor);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (onClick) {
|
|
52
|
+
onClick(event);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (item && onItemClick) {
|
|
56
|
+
onItemClick(item);
|
|
57
|
+
}
|
|
58
|
+
}, [disabled, onClick, onItemClick, item, buttonId]);
|
|
59
|
+
const id = buttonId ? `editor-toolbar__${buttonId}` : undefined;
|
|
60
|
+
const button = jsx(Button, {
|
|
61
|
+
id: id,
|
|
62
|
+
ref: ref,
|
|
63
|
+
appearance: "subtle",
|
|
64
|
+
testId: testId,
|
|
65
|
+
className: className,
|
|
66
|
+
href: href,
|
|
67
|
+
iconAfter: iconAfter,
|
|
68
|
+
iconBefore: iconBefore,
|
|
69
|
+
isDisabled: disabled,
|
|
70
|
+
isSelected: selected,
|
|
71
|
+
onClick: handleClick,
|
|
72
|
+
spacing: spacing || 'default',
|
|
73
|
+
target: target,
|
|
74
|
+
shouldFitContainer: true,
|
|
75
|
+
"aria-expanded": ariaExpanded,
|
|
76
|
+
"aria-haspopup": ariaHasPopup,
|
|
77
|
+
"aria-label": ariaLabel,
|
|
78
|
+
"aria-pressed": ariaPressed
|
|
79
|
+
}, children);
|
|
80
|
+
|
|
81
|
+
if (!title) {
|
|
82
|
+
return button;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const tooltipContent = !hideTooltip ? title : null;
|
|
86
|
+
return jsx(Tooltip, {
|
|
87
|
+
content: tooltipContent,
|
|
88
|
+
hideTooltipOnClick: true,
|
|
89
|
+
position: titlePosition
|
|
90
|
+
}, jsx("div", {
|
|
91
|
+
css: buttonWrapper
|
|
92
|
+
}, button));
|
|
93
|
+
});
|
|
94
|
+
export default ToolbarButton;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Button from '@atlaskit/button/standard-button';
|
|
4
|
+
export default /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
5
|
+
return /*#__PURE__*/React.createElement(Button, _extends({
|
|
6
|
+
ref: ref
|
|
7
|
+
}, props, {
|
|
8
|
+
style: {
|
|
9
|
+
alignItems: 'center'
|
|
10
|
+
}
|
|
11
|
+
}));
|
|
12
|
+
});
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import React, { PureComponent } from 'react';
|
|
3
|
+
import ReactDOM from 'react-dom';
|
|
4
|
+
import ReactEditorViewContext from './ReactEditorViewContext';
|
|
5
|
+
|
|
6
|
+
class WithOutsideClick extends PureComponent {
|
|
7
|
+
constructor(...args) {
|
|
8
|
+
super(...args);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "handleClick", evt => {
|
|
11
|
+
if (!this.props.isActiveComponent) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const domNode = ReactDOM.findDOMNode(this); // eslint-disable-line react/no-find-dom-node
|
|
16
|
+
|
|
17
|
+
if (!domNode || evt.target instanceof Node && !domNode.contains(evt.target)) {
|
|
18
|
+
if (this.props.handleClickOutside) {
|
|
19
|
+
this.props.handleClickOutside(evt);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
_defineProperty(this, "handleKeydown", evt => {
|
|
25
|
+
if (!this.props.isActiveComponent) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (evt.code === 'Escape' && this.props.handleEscapeKeydown) {
|
|
30
|
+
var _this$props$editorVie;
|
|
31
|
+
|
|
32
|
+
evt.preventDefault();
|
|
33
|
+
evt.stopPropagation();
|
|
34
|
+
this.props.handleEscapeKeydown(evt);
|
|
35
|
+
|
|
36
|
+
if (!((_this$props$editorVie = this.props.editorView) !== null && _this$props$editorVie !== void 0 && _this$props$editorVie.hasFocus())) {
|
|
37
|
+
var _this$props$editorVie2;
|
|
38
|
+
|
|
39
|
+
(_this$props$editorVie2 = this.props.editorView) === null || _this$props$editorVie2 === void 0 ? void 0 : _this$props$editorVie2.focus();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return false;
|
|
43
|
+
} else if (evt.code === 'Enter' && this.props.handleEnterKeydown) {
|
|
44
|
+
this.props.handleEnterKeydown(evt);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
componentDidMount() {
|
|
50
|
+
if (this.props.handleClickOutside) {
|
|
51
|
+
document.addEventListener('click', this.handleClick, false);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (this.props.handleEscapeKeydown) {
|
|
55
|
+
var _this$props$editorRef;
|
|
56
|
+
|
|
57
|
+
(((_this$props$editorRef = this.props.editorRef) === null || _this$props$editorRef === void 0 ? void 0 : _this$props$editorRef.current) || document).addEventListener('keydown', this.handleKeydown, false);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
componentWillUnmount() {
|
|
62
|
+
if (this.props.handleClickOutside) {
|
|
63
|
+
document.removeEventListener('click', this.handleClick, false);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (this.props.handleEscapeKeydown) {
|
|
67
|
+
var _this$props$editorRef2;
|
|
68
|
+
|
|
69
|
+
(((_this$props$editorRef2 = this.props.editorRef) === null || _this$props$editorRef2 === void 0 ? void 0 : _this$props$editorRef2.current) || document).removeEventListener('keydown', this.handleKeydown, false);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
render() {
|
|
74
|
+
return this.props.children;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function hasIsOpen(props) {
|
|
80
|
+
return 'isOpen' in props;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export default function withReactEditorViewOuterListeners(Component) {
|
|
84
|
+
return ({
|
|
85
|
+
handleClickOutside,
|
|
86
|
+
handleEnterKeydown,
|
|
87
|
+
handleEscapeKeydown,
|
|
88
|
+
...props
|
|
89
|
+
}) => {
|
|
90
|
+
const isActiveComponent = hasIsOpen(props) ? props.isOpen : true;
|
|
91
|
+
return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, ({
|
|
92
|
+
editorView,
|
|
93
|
+
editorRef
|
|
94
|
+
}) => /*#__PURE__*/React.createElement(WithOutsideClick, {
|
|
95
|
+
editorView: editorView,
|
|
96
|
+
editorRef: editorRef,
|
|
97
|
+
isActiveComponent: isActiveComponent,
|
|
98
|
+
handleClickOutside: handleClickOutside,
|
|
99
|
+
handleEnterKeydown: handleEnterKeydown,
|
|
100
|
+
handleEscapeKeydown: handleEscapeKeydown
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Component, props)));
|
|
102
|
+
};
|
|
103
|
+
}
|