@atlaskit/editor-common 102.10.4 → 102.11.1

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 (33) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/floating-toolbar/DropdownMenuExtensionItems.js +203 -0
  3. package/dist/cjs/floating-toolbar/DropdownMenuItem.js +203 -0
  4. package/dist/cjs/floating-toolbar/index.js +15 -1
  5. package/dist/cjs/monitoring/error.js +1 -1
  6. package/dist/cjs/preset/core-plugin/index.js +3 -1
  7. package/dist/cjs/preset/core-plugin/requestDocument.js +2 -2
  8. package/dist/cjs/ui/DropList/index.js +1 -1
  9. package/dist/es2019/floating-toolbar/DropdownMenuExtensionItems.js +126 -0
  10. package/dist/es2019/floating-toolbar/DropdownMenuItem.js +196 -0
  11. package/dist/es2019/floating-toolbar/index.js +3 -1
  12. package/dist/es2019/monitoring/error.js +1 -1
  13. package/dist/es2019/preset/core-plugin/index.js +3 -1
  14. package/dist/es2019/preset/core-plugin/requestDocument.js +2 -3
  15. package/dist/es2019/ui/DropList/index.js +1 -1
  16. package/dist/esm/floating-toolbar/DropdownMenuExtensionItems.js +193 -0
  17. package/dist/esm/floating-toolbar/DropdownMenuItem.js +195 -0
  18. package/dist/esm/floating-toolbar/index.js +3 -1
  19. package/dist/esm/monitoring/error.js +1 -1
  20. package/dist/esm/preset/core-plugin/index.js +3 -1
  21. package/dist/esm/preset/core-plugin/requestDocument.js +2 -3
  22. package/dist/esm/ui/DropList/index.js +1 -1
  23. package/dist/types/floating-toolbar/DropdownMenuExtensionItems.d.ts +24 -0
  24. package/dist/types/floating-toolbar/DropdownMenuItem.d.ts +43 -0
  25. package/dist/types/floating-toolbar/index.d.ts +3 -0
  26. package/dist/types/preset/core-plugin/requestDocument.d.ts +6 -2
  27. package/dist/types/types/floating-toolbar.d.ts +8 -1
  28. package/dist/types-ts4.5/floating-toolbar/DropdownMenuExtensionItems.d.ts +24 -0
  29. package/dist/types-ts4.5/floating-toolbar/DropdownMenuItem.d.ts +43 -0
  30. package/dist/types-ts4.5/floating-toolbar/index.d.ts +3 -0
  31. package/dist/types-ts4.5/preset/core-plugin/requestDocument.d.ts +6 -2
  32. package/dist/types-ts4.5/types/floating-toolbar.d.ts +8 -1
  33. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { processRawFragmentValue, processRawValue, processRawValueWithoutValidation } from '../../utils/processRawValue';
2
2
  import { editorCommandToPMCommand } from '../editor-commands';
3
- import { scheduleDocumentRequest } from './requestDocument';
3
+ import { createThrottleSchedule, returnDocumentRequest } from './requestDocument';
4
4
 
5
5
  /**
6
6
  * Core plugin that is always included in the preset.
@@ -8,6 +8,8 @@ import { scheduleDocumentRequest } from './requestDocument';
8
8
  */
9
9
  export var corePlugin = function corePlugin(_ref) {
10
10
  var config = _ref.config;
11
+ // Create the document request throttler per editor (rather than at a module level)
12
+ var scheduleDocumentRequest = createThrottleSchedule(returnDocumentRequest);
11
13
  return {
12
14
  name: 'core',
13
15
  actions: {
@@ -10,7 +10,7 @@ export function toJSON(node) {
10
10
  /**
11
11
  * This throttles the callback with requestIdleCallback.
12
12
  */
13
- function createThrottleSchedule(callback) {
13
+ export function createThrottleSchedule(callback) {
14
14
  var frameId;
15
15
  var lastArgs;
16
16
  var wrapperFn = function wrapperFn() {
@@ -36,10 +36,9 @@ function createThrottleSchedule(callback) {
36
36
  };
37
37
  return wrapperFn;
38
38
  }
39
- export var scheduleDocumentRequest = createThrottleSchedule(returnDocumentRequest);
40
39
 
41
40
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- function returnDocumentRequest(editorView, callback, transformer, fireAnalyticsEvent) {
41
+ export function returnDocumentRequest(editorView, callback, transformer, fireAnalyticsEvent) {
43
42
  var _editorView$state;
44
43
  var _ref = (_editorView$state = editorView === null || editorView === void 0 ? void 0 : editorView.state) !== null && _editorView$state !== void 0 ? _editorView$state : {},
45
44
  doc = _ref.doc,
@@ -20,7 +20,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
20
20
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import Layer from '../Layer';
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "102.10.4";
23
+ var packageVersion = "102.11.1";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  // Ignored via go/ees005
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { IntlShape } from 'react-intl-next';
3
+ import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
4
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
5
+ import type { ExtensionAPI, ExtensionProvider } from '../extensions';
6
+ export interface DropdownMenuOptions {
7
+ hide: Function;
8
+ dispatchCommand: Function;
9
+ intl: IntlShape;
10
+ showSelected: boolean;
11
+ }
12
+ type OverflowExtensionPlaceholderProps = {
13
+ node: PMNode;
14
+ editorView: EditorView;
15
+ extension: ExtensionProps;
16
+ disabled?: (key: string) => boolean;
17
+ dropdownOptions?: DropdownMenuOptions;
18
+ };
19
+ export type ExtensionProps = {
20
+ extensionApi?: ExtensionAPI;
21
+ extensionProvider?: Promise<ExtensionProvider>;
22
+ };
23
+ export declare const DropdownMenuExtensionItems: (props: OverflowExtensionPlaceholderProps) => React.JSX.Element | null;
24
+ export {};
@@ -0,0 +1,43 @@
1
+ /// <reference types="react" />
2
+ import { jsx } from '@emotion/react';
3
+ import type { IntlShape } from 'react-intl-next';
4
+ import type { Node } from '@atlaskit/editor-prosemirror/model';
5
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import type { ButtonItemProps } from '@atlaskit/menu';
7
+ import type { ExtensionAPI, ExtensionProvider } from '../extensions';
8
+ import type { DropdownOptionT, FloatingToolbarOverflowDropdownOptions } from '../types';
9
+ export declare const menuItemDimensions: {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ export interface Props {
14
+ hide: Function;
15
+ dispatchCommand: Function;
16
+ items: Array<DropdownOptionT<Function>> | FloatingToolbarOverflowDropdownOptions<Function>;
17
+ showSelected?: boolean;
18
+ editorView?: EditorView;
19
+ extensions?: ExtensionProps;
20
+ }
21
+ export type ExtensionProps = {
22
+ node: Node;
23
+ extensionApi?: ExtensionAPI;
24
+ extensionsProvider?: Promise<ExtensionProvider>;
25
+ };
26
+ export interface DropdownButtonItemProps extends ButtonItemProps {
27
+ onMouseEnter?: (event: React.MouseEvent | React.KeyboardEvent) => void;
28
+ onMouseOver?: (event: React.MouseEvent | React.KeyboardEvent) => void;
29
+ onMouseLeave?: (event: React.MouseEvent | React.KeyboardEvent) => void;
30
+ onMouseOut?: (event: React.MouseEvent | React.KeyboardEvent) => void;
31
+ onFocus?: (event: React.MouseEvent | React.KeyboardEvent) => void;
32
+ onBlur?: (event: React.MouseEvent | React.KeyboardEvent) => void;
33
+ }
34
+ export type DropdownMenuItemProps = {
35
+ item: DropdownOptionT<Function>;
36
+ hide: Function;
37
+ dispatchCommand: Function;
38
+ editorView?: EditorView;
39
+ intl: IntlShape;
40
+ showSelected: boolean;
41
+ itemSelected?: boolean;
42
+ };
43
+ export declare const DropdownMenuItem: (props: DropdownMenuItemProps) => jsx.JSX.Element;
@@ -4,4 +4,7 @@ export declare const shallowEqual: (objA?: Object, objB?: Object) => boolean;
4
4
  export declare const compareArrays: <T extends any[]>(left: Array<T>, right: Array<T>, compareFn?: (left: T, right: T) => boolean) => boolean;
5
5
  export declare const isSameItem: (leftItem: Item, rightItem: Item) => boolean;
6
6
  export declare const areSameItems: (leftArr?: Array<Item>, rightArr?: Array<Item>) => boolean;
7
+ export { DropdownMenuExtensionItems } from './DropdownMenuExtensionItems';
8
+ export { DropdownMenuItem } from './DropdownMenuItem';
9
+ export type { DropdownMenuItemProps } from './DropdownMenuItem';
7
10
  export { default as messages } from './messages';
@@ -2,6 +2,10 @@ import type { JSONDocNode } from '@atlaskit/editor-json-transformer';
2
2
  import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
3
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
4
4
  import { type FireAnalyticsCallback } from '../../analytics';
5
- import type { InferTransformerResultCallback, Transformer } from '../../types';
5
+ import type { DefaultTransformerResultCallback, InferTransformerResultCallback, Transformer } from '../../types';
6
6
  export declare function toJSON(node: PMNode): JSONDocNode;
7
- export declare const scheduleDocumentRequest: <GenericTransformer extends Transformer<any> | undefined>(editorView: EditorView | null, callback: InferTransformerResultCallback<Transformer<any>>, transformer?: Transformer<any> | undefined, fireAnalyticsEvent?: FireAnalyticsCallback | undefined) => void;
7
+ /**
8
+ * This throttles the callback with requestIdleCallback.
9
+ */
10
+ export declare function createThrottleSchedule<GenericTransformer extends Transformer<any> = Transformer<JSONDocNode>>(callback: typeof returnDocumentRequest<GenericTransformer>): (editorView: EditorView | null, callback: GenericTransformer extends undefined ? DefaultTransformerResultCallback : InferTransformerResultCallback<GenericTransformer>, transformer?: GenericTransformer | undefined, fireAnalyticsEvent?: FireAnalyticsCallback | undefined) => void;
11
+ export declare function returnDocumentRequest<GenericTransformer extends Transformer<any> | undefined>(editorView: EditorView | null, callback: GenericTransformer extends undefined ? DefaultTransformerResultCallback : InferTransformerResultCallback<GenericTransformer>, transformer?: GenericTransformer, fireAnalyticsEvent?: FireAnalyticsCallback): undefined;
@@ -8,6 +8,7 @@ import type { SpotlightCard } from '@atlaskit/onboarding';
8
8
  import type { Placement } from '@atlaskit/popper';
9
9
  import type { TooltipProps } from '@atlaskit/tooltip';
10
10
  import type { DispatchAnalyticsEvent } from '../analytics/types/dispatch-analytics-event';
11
+ import type { DropdownMenuItemProps } from '../floating-toolbar';
11
12
  import type { ProviderFactory } from '../provider-factory';
12
13
  import type { PaletteColor } from '../ui-color/ColorPalette/Palettes/type';
13
14
  import type { Command, CommandDispatch } from './command';
@@ -19,7 +20,13 @@ type OverflowDropdownHeading = {
19
20
  type: 'overflow-dropdown-heading';
20
21
  title: string;
21
22
  };
22
- export type FloatingToolbarOverflowDropdownOptions<T extends Object> = Array<DropdownOptionT<T> | FloatingToolbarSeparator | OverflowDropdownHeading>;
23
+ type OverflowDropdownCustom<T extends Object> = {
24
+ type: 'custom';
25
+ fallback: Array<FloatingToolbarFallbackItem<T>>;
26
+ render: (view?: EditorView, dropdownOption?: Omit<DropdownMenuItemProps, 'item'>) => React.ReactNode;
27
+ hidden?: boolean;
28
+ };
29
+ export type FloatingToolbarOverflowDropdownOptions<T extends Object> = Array<DropdownOptionT<T> | FloatingToolbarSeparator | OverflowDropdownHeading | OverflowDropdownCustom<T>>;
23
30
  type FloatingToolbarOverflowDropdown<T extends Object> = {
24
31
  type: 'overflow-dropdown';
25
32
  options: FloatingToolbarOverflowDropdownOptions<T>;
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { IntlShape } from 'react-intl-next';
3
+ import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
4
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
5
+ import type { ExtensionAPI, ExtensionProvider } from '../extensions';
6
+ export interface DropdownMenuOptions {
7
+ hide: Function;
8
+ dispatchCommand: Function;
9
+ intl: IntlShape;
10
+ showSelected: boolean;
11
+ }
12
+ type OverflowExtensionPlaceholderProps = {
13
+ node: PMNode;
14
+ editorView: EditorView;
15
+ extension: ExtensionProps;
16
+ disabled?: (key: string) => boolean;
17
+ dropdownOptions?: DropdownMenuOptions;
18
+ };
19
+ export type ExtensionProps = {
20
+ extensionApi?: ExtensionAPI;
21
+ extensionProvider?: Promise<ExtensionProvider>;
22
+ };
23
+ export declare const DropdownMenuExtensionItems: (props: OverflowExtensionPlaceholderProps) => React.JSX.Element | null;
24
+ export {};
@@ -0,0 +1,43 @@
1
+ /// <reference types="react" />
2
+ import { jsx } from '@emotion/react';
3
+ import type { IntlShape } from 'react-intl-next';
4
+ import type { Node } from '@atlaskit/editor-prosemirror/model';
5
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import type { ButtonItemProps } from '@atlaskit/menu';
7
+ import type { ExtensionAPI, ExtensionProvider } from '../extensions';
8
+ import type { DropdownOptionT, FloatingToolbarOverflowDropdownOptions } from '../types';
9
+ export declare const menuItemDimensions: {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ export interface Props {
14
+ hide: Function;
15
+ dispatchCommand: Function;
16
+ items: Array<DropdownOptionT<Function>> | FloatingToolbarOverflowDropdownOptions<Function>;
17
+ showSelected?: boolean;
18
+ editorView?: EditorView;
19
+ extensions?: ExtensionProps;
20
+ }
21
+ export type ExtensionProps = {
22
+ node: Node;
23
+ extensionApi?: ExtensionAPI;
24
+ extensionsProvider?: Promise<ExtensionProvider>;
25
+ };
26
+ export interface DropdownButtonItemProps extends ButtonItemProps {
27
+ onMouseEnter?: (event: React.MouseEvent | React.KeyboardEvent) => void;
28
+ onMouseOver?: (event: React.MouseEvent | React.KeyboardEvent) => void;
29
+ onMouseLeave?: (event: React.MouseEvent | React.KeyboardEvent) => void;
30
+ onMouseOut?: (event: React.MouseEvent | React.KeyboardEvent) => void;
31
+ onFocus?: (event: React.MouseEvent | React.KeyboardEvent) => void;
32
+ onBlur?: (event: React.MouseEvent | React.KeyboardEvent) => void;
33
+ }
34
+ export type DropdownMenuItemProps = {
35
+ item: DropdownOptionT<Function>;
36
+ hide: Function;
37
+ dispatchCommand: Function;
38
+ editorView?: EditorView;
39
+ intl: IntlShape;
40
+ showSelected: boolean;
41
+ itemSelected?: boolean;
42
+ };
43
+ export declare const DropdownMenuItem: (props: DropdownMenuItemProps) => jsx.JSX.Element;
@@ -4,4 +4,7 @@ export declare const shallowEqual: (objA?: Object, objB?: Object) => boolean;
4
4
  export declare const compareArrays: <T extends any[]>(left: Array<T>, right: Array<T>, compareFn?: (left: T, right: T) => boolean) => boolean;
5
5
  export declare const isSameItem: (leftItem: Item, rightItem: Item) => boolean;
6
6
  export declare const areSameItems: (leftArr?: Array<Item>, rightArr?: Array<Item>) => boolean;
7
+ export { DropdownMenuExtensionItems } from './DropdownMenuExtensionItems';
8
+ export { DropdownMenuItem } from './DropdownMenuItem';
9
+ export type { DropdownMenuItemProps } from './DropdownMenuItem';
7
10
  export { default as messages } from './messages';
@@ -2,6 +2,10 @@ import type { JSONDocNode } from '@atlaskit/editor-json-transformer';
2
2
  import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
3
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
4
4
  import { type FireAnalyticsCallback } from '../../analytics';
5
- import type { InferTransformerResultCallback, Transformer } from '../../types';
5
+ import type { DefaultTransformerResultCallback, InferTransformerResultCallback, Transformer } from '../../types';
6
6
  export declare function toJSON(node: PMNode): JSONDocNode;
7
- export declare const scheduleDocumentRequest: <GenericTransformer extends Transformer<any> | undefined>(editorView: EditorView | null, callback: InferTransformerResultCallback<Transformer<any>>, transformer?: Transformer<any> | undefined, fireAnalyticsEvent?: FireAnalyticsCallback | undefined) => void;
7
+ /**
8
+ * This throttles the callback with requestIdleCallback.
9
+ */
10
+ export declare function createThrottleSchedule<GenericTransformer extends Transformer<any> = Transformer<JSONDocNode>>(callback: typeof returnDocumentRequest<GenericTransformer>): (editorView: EditorView | null, callback: GenericTransformer extends undefined ? DefaultTransformerResultCallback : InferTransformerResultCallback<GenericTransformer>, transformer?: GenericTransformer | undefined, fireAnalyticsEvent?: FireAnalyticsCallback | undefined) => void;
11
+ export declare function returnDocumentRequest<GenericTransformer extends Transformer<any> | undefined>(editorView: EditorView | null, callback: GenericTransformer extends undefined ? DefaultTransformerResultCallback : InferTransformerResultCallback<GenericTransformer>, transformer?: GenericTransformer, fireAnalyticsEvent?: FireAnalyticsCallback): undefined;
@@ -8,6 +8,7 @@ import type { SpotlightCard } from '@atlaskit/onboarding';
8
8
  import type { Placement } from '@atlaskit/popper';
9
9
  import type { TooltipProps } from '@atlaskit/tooltip';
10
10
  import type { DispatchAnalyticsEvent } from '../analytics/types/dispatch-analytics-event';
11
+ import type { DropdownMenuItemProps } from '../floating-toolbar';
11
12
  import type { ProviderFactory } from '../provider-factory';
12
13
  import type { PaletteColor } from '../ui-color/ColorPalette/Palettes/type';
13
14
  import type { Command, CommandDispatch } from './command';
@@ -19,7 +20,13 @@ type OverflowDropdownHeading = {
19
20
  type: 'overflow-dropdown-heading';
20
21
  title: string;
21
22
  };
22
- export type FloatingToolbarOverflowDropdownOptions<T extends Object> = Array<DropdownOptionT<T> | FloatingToolbarSeparator | OverflowDropdownHeading>;
23
+ type OverflowDropdownCustom<T extends Object> = {
24
+ type: 'custom';
25
+ fallback: Array<FloatingToolbarFallbackItem<T>>;
26
+ render: (view?: EditorView, dropdownOption?: Omit<DropdownMenuItemProps, 'item'>) => React.ReactNode;
27
+ hidden?: boolean;
28
+ };
29
+ export type FloatingToolbarOverflowDropdownOptions<T extends Object> = Array<DropdownOptionT<T> | FloatingToolbarSeparator | OverflowDropdownHeading | OverflowDropdownCustom<T>>;
23
30
  type FloatingToolbarOverflowDropdown<T extends Object> = {
24
31
  type: 'overflow-dropdown';
25
32
  options: FloatingToolbarOverflowDropdownOptions<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "102.10.4",
3
+ "version": "102.11.1",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"