@khanacademy/perseus-editor 42.2.0 → 43.0.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.
@@ -45,7 +45,7 @@ declare const _default: {
45
45
  explanation: typeof ExplanationEditor;
46
46
  expression: typeof ExpressionEditor;
47
47
  "fill-in-the-blank": import("react").ForwardRefExoticComponent<import("@khanacademy/perseus-core").PerseusFillInTheBlankWidgetOptions & {
48
- onChange: (newOptions: Partial<import("@khanacademy/perseus-core").PerseusFillInTheBlankWidgetOptions>, callback?: () => void) => void;
48
+ onChange: (newOptions: import("@khanacademy/perseus-core").PerseusFillInTheBlankWidgetOptions) => void;
49
49
  apiOptions?: import("@khanacademy/perseus").APIOptionsWithDefaults;
50
50
  } & import("react").RefAttributes<{
51
51
  serialize: () => import("@khanacademy/perseus-core").PerseusFillInTheBlankWidgetOptions;
@@ -88,12 +88,6 @@ export default class ArticleEditor extends React.Component<Props, State> {
88
88
  _handleMoveSectionLater(i: number): void;
89
89
  _handleAddSectionAfter(i: number): void;
90
90
  _handleRemoveSection(i: number): void;
91
- /**
92
- * Returns the current version of the edited {@link PerseusArticle}.
93
- *
94
- * @deprecated Use the `onChange` prop instead.
95
- */
96
- serialize(): PerseusArticle;
97
91
  /**
98
92
  * Returns an array, with one element be section.
99
93
  * Each element is an array of lint warnings present in that section.
@@ -1,24 +1,24 @@
1
1
  import * as React from "react";
2
2
  import Editor from "./editor";
3
- import type { APIOptions, ImageDict, ChangeHandler, DeviceType, ImageUploader } from "@khanacademy/perseus";
3
+ import type { APIOptions, ImageDict, DeviceType, ImageUploader } from "@khanacademy/perseus";
4
4
  import type { Hint, PerseusWidgetsMap } from "@khanacademy/perseus-core";
5
5
  type HintEditorProps = {
6
6
  itemId?: string;
7
7
  apiOptions?: APIOptions;
8
8
  className: string;
9
9
  imageUploader?: ImageUploader;
10
- showMoveButtons?: boolean;
11
- showRemoveButton?: boolean;
12
- showTitle?: boolean;
13
- content?: string | null | undefined;
14
- replace?: boolean | null | undefined;
15
- widgets?: PerseusWidgetsMap | null | undefined;
16
- images?: ImageDict | null | undefined;
10
+ showMoveButtons: boolean;
11
+ showRemoveButton: boolean;
12
+ showTitle: boolean;
13
+ content: string;
14
+ replace: boolean;
15
+ widgets: PerseusWidgetsMap;
16
+ images: ImageDict;
17
17
  isLast: boolean;
18
18
  isFirst: boolean;
19
19
  onMove: (direction: number) => unknown;
20
20
  onRemove: () => unknown;
21
- onChange: ChangeHandler;
21
+ onChange: (hint: Hint) => void;
22
22
  __type?: "hint";
23
23
  widgetIsOpen?: boolean;
24
24
  };
@@ -26,16 +26,17 @@ declare class HintEditor extends React.Component<HintEditorProps> {
26
26
  static defaultProps: {
27
27
  className: string;
28
28
  content: string;
29
+ images: ImageDict;
30
+ widgets: PerseusWidgetsMap;
29
31
  replace: boolean;
30
32
  showMoveButtons: boolean;
31
33
  showRemoveButton: boolean;
32
34
  showTitle: boolean;
33
35
  };
34
36
  editor: React.RefObject<Editor>;
35
- handleReplaceChanged: (e: React.ChangeEvent<HTMLInputElement>) => void;
37
+ handleChange(updates: Partial<Hint>): void;
36
38
  focus: () => void;
37
39
  getSaveWarnings: () => any;
38
- serialize(): Hint;
39
40
  render(): React.ReactNode;
40
41
  }
41
42
  type CombinedHintsEditorProps = {
@@ -57,13 +58,11 @@ declare class CombinedHintsEditor extends React.Component<CombinedHintsEditorPro
57
58
  hints: ReadonlyArray<any>;
58
59
  onChange: () => void;
59
60
  };
60
- handleHintChange(i: number, newProps: CombinedHintsEditorProps): void;
61
+ handleHintChange(i: number, hint: Hint): void;
61
62
  handleHintRemove(i: number): void;
62
63
  handleHintMove(i: number, dir: number): void;
63
64
  addHint: () => void;
64
65
  getSaveWarnings: () => any;
65
- serialize(): Hint[];
66
- serializeHint(index: number): Hint;
67
66
  render(): React.ReactNode;
68
67
  }
69
68
  export default CombinedHintsEditor;
@@ -3,7 +3,7 @@ import type { APIOptions } from "@khanacademy/perseus";
3
3
  import type { Alignment, PerseusWidget } from "@khanacademy/perseus-core";
4
4
  type Props = {
5
5
  id: string;
6
- onChange: (widgetInfo: PerseusWidget, cb?: () => unknown, silent?: boolean) => unknown;
6
+ onChange: (widgetInfo: PerseusWidget) => void;
7
7
  onRemove: () => unknown;
8
8
  apiOptions: APIOptions;
9
9
  widgetIsOpen?: boolean;
@@ -22,7 +22,7 @@ declare class WidgetEditor extends React.Component<Props, State> {
22
22
  constructor(props: Props);
23
23
  UNSAFE_componentWillReceiveProps(nextProps: Props): void;
24
24
  _toggleWidget: (e: React.SyntheticEvent) => void;
25
- _handleWidgetChange: (newOptions: PerseusWidget["options"], cb: () => unknown, silent: boolean) => void;
25
+ _handleWidgetChange: (newOptions: PerseusWidget["options"]) => void;
26
26
  _setStatic: (value: boolean) => void;
27
27
  _setGraded: (value: boolean) => void;
28
28
  _handleAlignmentChange: (newAlignment: Alignment) => void;
@@ -12,8 +12,6 @@ type Props = {
12
12
  apiOptions?: APIOptions;
13
13
  answerArea: PerseusAnswerArea;
14
14
  dependencies: PerseusDependenciesV2;
15
- /** @deprecated - has no effect */
16
- developerMode?: boolean;
17
15
  hints: Hint[];
18
16
  /** A function which takes a file object (guaranteed to be an image) and
19
17
  * a callback, then calls the callback with the url where the image
@@ -27,8 +25,6 @@ type Props = {
27
25
  jsonMode: boolean;
28
26
  /** A function which is called with the new JSON blob of content. */
29
27
  onChange: (changed: PerseusItem) => void;
30
- /** @deprecated - has no effect, and is never called */
31
- onPreviewDeviceChange?: (arg1: DeviceType) => unknown;
32
28
  previewDevice: DeviceType;
33
29
  /** A global control to expand/collapse all widget editors on a page. */
34
30
  widgetsAreOpen?: boolean;
@@ -67,7 +63,6 @@ declare class EditorPage extends React.Component<Props, State> {
67
63
  static defaultProps: DefaultProps;
68
64
  constructor(props: Props);
69
65
  componentDidMount(): void;
70
- getSnapshotBeforeUpdate(prevProps: Props): {} | null;
71
66
  componentDidUpdate(previousProps: Props, prevState: State, snapshot: any): void;
72
67
  setIssueHighlight: (instanceId: string, highlighted: boolean) => void;
73
68
  handleA11yReport: (report: A11yReport | null) => void;
@@ -81,12 +76,6 @@ declare class EditorPage extends React.Component<Props, State> {
81
76
  */
82
77
  syncJsonStateFromProps(): void;
83
78
  getSaveWarnings(): any;
84
- /**
85
- * Returns the current version of the edited {@link PerseusItem}.
86
- *
87
- * @deprecated Use the {@link Props.onChange} prop instead.
88
- */
89
- serialize(): PerseusItem;
90
79
  handleChange: (toChange: Partial<PerseusItem>) => void;
91
80
  handleEditorChange: (newProps: Partial<PerseusRenderer>) => void;
92
81
  changeJSON: (newJson: PerseusItem) => void;
package/dist/editor.d.ts CHANGED
@@ -16,7 +16,7 @@ type Props = Readonly<{
16
16
  warnNoWidgets: boolean;
17
17
  widgetIsOpen?: boolean;
18
18
  imageUploader?: ImageUploader;
19
- onChange: (changes: Partial<PerseusRenderer>) => void;
19
+ onChange: (renderer: PerseusRenderer) => void;
20
20
  }>;
21
21
  type DefaultProps = {
22
22
  content: string;
@@ -51,6 +51,7 @@ declare class Editor extends React.Component<Props, State> {
51
51
  static getDerivedStateFromProps(props: any, state: any): Partial<State>;
52
52
  componentDidMount(): void;
53
53
  componentDidUpdate(prevProps: Props): void;
54
+ handleChange(changed: Partial<PerseusRenderer>): void;
54
55
  getWidgetEditor(id: string, type: PerseusWidget["type"]): undefined | React.ReactNode;
55
56
  _handleWidgetEditorChange: (id: string, newWidgetInfo: PerseusWidget) => void;
56
57
  _handleWidgetEditorRemove: (id: string) => void;
@@ -60,7 +61,7 @@ declare class Editor extends React.Component<Props, State> {
60
61
  */
61
62
  _sizeImages: (props: Props) => void;
62
63
  handleDrop: (e: React.MouseEvent) => void;
63
- handleChange: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
64
+ handleContentChange: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
64
65
  _handleKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
65
66
  _maybeCopyWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
66
67
  _maybePasteWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
@@ -73,7 +74,6 @@ declare class Editor extends React.Component<Props, State> {
73
74
  getSaveWarnings: () => any;
74
75
  private getWidgetsReferencedIn;
75
76
  focus: () => void;
76
- focusAndMoveToEnd: () => void;
77
77
  /**
78
78
  * Returns the current version of the edited {@link PerseusRenderer}.
79
79
  *