@khanacademy/perseus-editor 30.2.0 → 30.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.
@@ -5,6 +5,26 @@
5
5
  import type { APIOptions, DeviceType } from "@khanacademy/perseus";
6
6
  import type { Hint, PerseusArticle, PerseusItem } from "@khanacademy/perseus-core";
7
7
  import type { LinterContextProps } from "@khanacademy/perseus-linter";
8
+ /**
9
+ * Constant identifier for all Perseus preview messages
10
+ */
11
+ export declare const PREVIEW_MESSAGE_SOURCE: "perseus-preview";
12
+ /**
13
+ * Base type for all preview messages
14
+ */
15
+ interface PreviewMessageBase {
16
+ source: typeof PREVIEW_MESSAGE_SOURCE;
17
+ }
18
+ /**
19
+ * Base type for messages with iframe ID
20
+ *
21
+ * Note: The ID is primarily used for debugging/logging purposes.
22
+ * Message routing is handled by event.source filtering in the hooks,
23
+ * not by comparing ID strings.
24
+ */
25
+ interface PreviewMessageWithId extends PreviewMessageBase {
26
+ id: string;
27
+ }
8
28
  /**
9
29
  * Data for question preview (full item with question, answer area, and hints)
10
30
  */
@@ -23,7 +43,6 @@ export type QuestionPreviewData = {
23
43
  */
24
44
  export type HintPreviewData = {
25
45
  hint: Hint;
26
- bold: boolean;
27
46
  pos: number;
28
47
  apiOptions: APIOptions;
29
48
  linterContext: LinterContextProps;
@@ -53,3 +72,39 @@ export type PreviewContent = {
53
72
  type: "article-all";
54
73
  data: ArticlePreviewData[];
55
74
  };
75
+ /**
76
+ * Message from parent sending content data to iframe
77
+ */
78
+ type PreviewDataMessage = PreviewMessageWithId & {
79
+ type: "content-data";
80
+ content: PreviewContent;
81
+ };
82
+ /**
83
+ * Union of all messages sent from parent to iframe
84
+ */
85
+ export type ParentToIframeMessage = PreviewDataMessage;
86
+ /**
87
+ * Message from iframe requesting data from parent
88
+ */
89
+ type PreviewDataRequestMessage = PreviewMessageWithId & {
90
+ type: "request-data";
91
+ };
92
+ /**
93
+ * Message from iframe reporting its content height
94
+ */
95
+ type PreviewHeightUpdateMessage = PreviewMessageWithId & {
96
+ type: "height-update";
97
+ height: number;
98
+ };
99
+ /**
100
+ * Message from iframe reporting lint warnings
101
+ */
102
+ type PreviewLintReportMessage = PreviewMessageWithId & {
103
+ type: "lint-report";
104
+ lintWarnings: ReadonlyArray<any>;
105
+ };
106
+ /**
107
+ * Union of all messages sent from iframe to parent
108
+ */
109
+ export type IframeToParentMessage = PreviewDataRequestMessage | PreviewHeightUpdateMessage | PreviewLintReportMessage;
110
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { IframeToParentMessage, ParentToIframeMessage } from "./message-types";
2
+ /**
3
+ * Type guard to check if an object is an {@link IframeToParentMessage} type.
4
+ *
5
+ * This validates that the message has the correct structure and source
6
+ * identifier to be from a Perseus preview iframe.
7
+ *
8
+ * @param message - Unknown message to validate
9
+ * @returns True if message is a valid {@link IframeToParentMessage}
10
+ */
11
+ export declare function isIframeToParentMessage(message: unknown): message is IframeToParentMessage;
12
+ /**
13
+ * Type guard to check if a message is from the Perseus preview system parent.
14
+ *
15
+ * This validates that the message has the correct structure and source
16
+ * identifier to be from a Perseus preview host.
17
+ *
18
+ * @param message - Unknown message to validate
19
+ * @returns True if message is a valid {@link ParentToIframeMessage}
20
+ */
21
+ export declare function isParentToIframeMessage(message: unknown): message is ParentToIframeMessage;
@@ -1 +1 @@
1
- export declare const runAxeCoreOnUpdate: (priorTimeoutId: any, setState: any) => any;
1
+ export declare const runAxeCoreOnUpdate: (priorTimeoutId: any, setState: any, logToConsole: boolean) => any;
@@ -81,7 +81,7 @@ declare const InteractiveGraph: {
81
81
  keypadElement?: any;
82
82
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
83
83
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
84
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
84
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
85
85
  reviewMode: boolean;
86
86
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
87
87
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -91,7 +91,7 @@ declare const InteractiveGraph: {
91
91
  }): {
92
92
  mafsRef: React.RefObject<import("../../../../perseus/src/widgets/interactive-graphs/stateful-mafs-graph").StatefulMafsGraphType>;
93
93
  getUserInput(): import("@khanacademy/perseus-core").PerseusInteractiveGraphUserInput;
94
- getPromptJSON(): import("../../../../perseus/src/widget-ai-utils/interactive-graph/interactive-graph-ai-utils").InteractiveGraphPromptJSON | import("../../../../perseus/src/widget-ai-utils/unsupported-widget").UnsupportedWidgetPromptJSON;
94
+ getPromptJSON(): import("@khanacademy/perseus").InteractiveGraphPromptJSON | import("@khanacademy/perseus").UnsupportedWidgetPromptJSON;
95
95
  getSerializedState(): {
96
96
  graph: PerseusGraphType;
97
97
  step: [number, number];
@@ -530,7 +530,7 @@ declare const InteractiveGraph: {
530
530
  keypadElement?: any;
531
531
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
532
532
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
533
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
533
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
534
534
  reviewMode: boolean;
535
535
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
536
536
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -619,7 +619,7 @@ declare const InteractiveGraph: {
619
619
  keypadElement?: any;
620
620
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
621
621
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
622
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
622
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
623
623
  reviewMode: boolean;
624
624
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
625
625
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -710,7 +710,7 @@ declare const InteractiveGraph: {
710
710
  keypadElement?: any;
711
711
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
712
712
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
713
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
713
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
714
714
  reviewMode: boolean;
715
715
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
716
716
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -798,7 +798,7 @@ declare const InteractiveGraph: {
798
798
  keypadElement?: any;
799
799
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
800
800
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
801
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
801
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
802
802
  reviewMode: boolean;
803
803
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
804
804
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -884,7 +884,7 @@ declare const InteractiveGraph: {
884
884
  keypadElement?: any;
885
885
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
886
886
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
887
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
887
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
888
888
  reviewMode: boolean;
889
889
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
890
890
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -972,7 +972,7 @@ declare const InteractiveGraph: {
972
972
  keypadElement?: any;
973
973
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
974
974
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
975
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
975
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
976
976
  reviewMode: boolean;
977
977
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
978
978
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1058,7 +1058,7 @@ declare const InteractiveGraph: {
1058
1058
  keypadElement?: any;
1059
1059
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1060
1060
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1061
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1061
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1062
1062
  reviewMode: boolean;
1063
1063
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1064
1064
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1144,7 +1144,7 @@ declare const InteractiveGraph: {
1144
1144
  keypadElement?: any;
1145
1145
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1146
1146
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1147
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1147
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1148
1148
  reviewMode: boolean;
1149
1149
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1150
1150
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1230,7 +1230,7 @@ declare const InteractiveGraph: {
1230
1230
  keypadElement?: any;
1231
1231
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1232
1232
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1233
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1233
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1234
1234
  reviewMode: boolean;
1235
1235
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1236
1236
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1317,7 +1317,7 @@ declare const InteractiveGraph: {
1317
1317
  keypadElement?: any;
1318
1318
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1319
1319
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1320
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1320
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1321
1321
  reviewMode: boolean;
1322
1322
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1323
1323
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1327,7 +1327,7 @@ declare const InteractiveGraph: {
1327
1327
  }, context: any): {
1328
1328
  mafsRef: React.RefObject<import("../../../../perseus/src/widgets/interactive-graphs/stateful-mafs-graph").StatefulMafsGraphType>;
1329
1329
  getUserInput(): import("@khanacademy/perseus-core").PerseusInteractiveGraphUserInput;
1330
- getPromptJSON(): import("../../../../perseus/src/widget-ai-utils/interactive-graph/interactive-graph-ai-utils").InteractiveGraphPromptJSON | import("../../../../perseus/src/widget-ai-utils/unsupported-widget").UnsupportedWidgetPromptJSON;
1330
+ getPromptJSON(): import("@khanacademy/perseus").InteractiveGraphPromptJSON | import("@khanacademy/perseus").UnsupportedWidgetPromptJSON;
1331
1331
  getSerializedState(): {
1332
1332
  graph: PerseusGraphType;
1333
1333
  step: [number, number];
@@ -1766,7 +1766,7 @@ declare const InteractiveGraph: {
1766
1766
  keypadElement?: any;
1767
1767
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1768
1768
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1769
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1769
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1770
1770
  reviewMode: boolean;
1771
1771
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1772
1772
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1855,7 +1855,7 @@ declare const InteractiveGraph: {
1855
1855
  keypadElement?: any;
1856
1856
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1857
1857
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1858
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1858
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1859
1859
  reviewMode: boolean;
1860
1860
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1861
1861
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -1946,7 +1946,7 @@ declare const InteractiveGraph: {
1946
1946
  keypadElement?: any;
1947
1947
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1948
1948
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1949
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
1949
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
1950
1950
  reviewMode: boolean;
1951
1951
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
1952
1952
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2034,7 +2034,7 @@ declare const InteractiveGraph: {
2034
2034
  keypadElement?: any;
2035
2035
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2036
2036
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2037
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2037
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2038
2038
  reviewMode: boolean;
2039
2039
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2040
2040
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2120,7 +2120,7 @@ declare const InteractiveGraph: {
2120
2120
  keypadElement?: any;
2121
2121
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2122
2122
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2123
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2123
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2124
2124
  reviewMode: boolean;
2125
2125
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2126
2126
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2208,7 +2208,7 @@ declare const InteractiveGraph: {
2208
2208
  keypadElement?: any;
2209
2209
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2210
2210
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2211
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2211
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2212
2212
  reviewMode: boolean;
2213
2213
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2214
2214
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2294,7 +2294,7 @@ declare const InteractiveGraph: {
2294
2294
  keypadElement?: any;
2295
2295
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2296
2296
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2297
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2297
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2298
2298
  reviewMode: boolean;
2299
2299
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2300
2300
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2380,7 +2380,7 @@ declare const InteractiveGraph: {
2380
2380
  keypadElement?: any;
2381
2381
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2382
2382
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2383
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2383
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2384
2384
  reviewMode: boolean;
2385
2385
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2386
2386
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2466,7 +2466,7 @@ declare const InteractiveGraph: {
2466
2466
  keypadElement?: any;
2467
2467
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2468
2468
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2469
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2469
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2470
2470
  reviewMode: boolean;
2471
2471
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2472
2472
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2563,7 +2563,7 @@ declare const InteractiveGraph: {
2563
2563
  keypadElement?: any;
2564
2564
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2565
2565
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2566
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2566
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2567
2567
  reviewMode: boolean;
2568
2568
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2569
2569
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2647,7 +2647,7 @@ declare const InteractiveGraph: {
2647
2647
  keypadElement?: any;
2648
2648
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2649
2649
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2650
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2650
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2651
2651
  reviewMode: boolean;
2652
2652
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2653
2653
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2731,7 +2731,7 @@ declare const InteractiveGraph: {
2731
2731
  keypadElement?: any;
2732
2732
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2733
2733
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2734
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2734
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2735
2735
  reviewMode: boolean;
2736
2736
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2737
2737
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2815,7 +2815,7 @@ declare const InteractiveGraph: {
2815
2815
  keypadElement?: any;
2816
2816
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2817
2817
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2818
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2818
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2819
2819
  reviewMode: boolean;
2820
2820
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2821
2821
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2899,7 +2899,7 @@ declare const InteractiveGraph: {
2899
2899
  keypadElement?: any;
2900
2900
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2901
2901
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2902
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2902
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2903
2903
  reviewMode: boolean;
2904
2904
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2905
2905
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -2983,7 +2983,7 @@ declare const InteractiveGraph: {
2983
2983
  keypadElement?: any;
2984
2984
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2985
2985
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2986
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
2986
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
2987
2987
  reviewMode: boolean;
2988
2988
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
2989
2989
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3068,7 +3068,7 @@ declare const InteractiveGraph: {
3068
3068
  keypadElement?: any;
3069
3069
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3070
3070
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3071
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3071
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3072
3072
  reviewMode: boolean;
3073
3073
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3074
3074
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3152,7 +3152,7 @@ declare const InteractiveGraph: {
3152
3152
  keypadElement?: any;
3153
3153
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3154
3154
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3155
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3155
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3156
3156
  reviewMode: boolean;
3157
3157
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3158
3158
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3237,7 +3237,7 @@ declare const InteractiveGraph: {
3237
3237
  keypadElement?: any;
3238
3238
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3239
3239
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3240
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3240
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3241
3241
  reviewMode: boolean;
3242
3242
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3243
3243
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3321,7 +3321,7 @@ declare const InteractiveGraph: {
3321
3321
  keypadElement?: any;
3322
3322
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3323
3323
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3324
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3324
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3325
3325
  reviewMode: boolean;
3326
3326
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3327
3327
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3405,7 +3405,7 @@ declare const InteractiveGraph: {
3405
3405
  keypadElement?: any;
3406
3406
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3407
3407
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3408
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3408
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3409
3409
  reviewMode: boolean;
3410
3410
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3411
3411
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3489,7 +3489,7 @@ declare const InteractiveGraph: {
3489
3489
  keypadElement?: any;
3490
3490
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3491
3491
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3492
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3492
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3493
3493
  reviewMode: boolean;
3494
3494
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3495
3495
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3573,7 +3573,7 @@ declare const InteractiveGraph: {
3573
3573
  keypadElement?: any;
3574
3574
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3575
3575
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3576
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3576
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3577
3577
  reviewMode: boolean;
3578
3578
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3579
3579
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3657,7 +3657,7 @@ declare const InteractiveGraph: {
3657
3657
  keypadElement?: any;
3658
3658
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3659
3659
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3660
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3660
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3661
3661
  reviewMode: boolean;
3662
3662
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3663
3663
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3741,7 +3741,7 @@ declare const InteractiveGraph: {
3741
3741
  keypadElement?: any;
3742
3742
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3743
3743
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3744
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3744
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3745
3745
  reviewMode: boolean;
3746
3746
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3747
3747
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3825,7 +3825,7 @@ declare const InteractiveGraph: {
3825
3825
  keypadElement?: any;
3826
3826
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3827
3827
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3828
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3828
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3829
3829
  reviewMode: boolean;
3830
3830
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3831
3831
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3909,7 +3909,7 @@ declare const InteractiveGraph: {
3909
3909
  keypadElement?: any;
3910
3910
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3911
3911
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3912
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3912
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3913
3913
  reviewMode: boolean;
3914
3914
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3915
3915
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -3993,7 +3993,7 @@ declare const InteractiveGraph: {
3993
3993
  keypadElement?: any;
3994
3994
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3995
3995
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3996
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3996
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
3997
3997
  reviewMode: boolean;
3998
3998
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3999
3999
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4077,7 +4077,7 @@ declare const InteractiveGraph: {
4077
4077
  keypadElement?: any;
4078
4078
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4079
4079
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4080
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4080
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4081
4081
  reviewMode: boolean;
4082
4082
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4083
4083
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4161,7 +4161,7 @@ declare const InteractiveGraph: {
4161
4161
  keypadElement?: any;
4162
4162
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4163
4163
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4164
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4164
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4165
4165
  reviewMode: boolean;
4166
4166
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4167
4167
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4245,7 +4245,7 @@ declare const InteractiveGraph: {
4245
4245
  keypadElement?: any;
4246
4246
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4247
4247
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4248
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4248
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4249
4249
  reviewMode: boolean;
4250
4250
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4251
4251
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4329,7 +4329,7 @@ declare const InteractiveGraph: {
4329
4329
  keypadElement?: any;
4330
4330
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4331
4331
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4332
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4332
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4333
4333
  reviewMode: boolean;
4334
4334
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4335
4335
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4413,7 +4413,7 @@ declare const InteractiveGraph: {
4413
4413
  keypadElement?: any;
4414
4414
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4415
4415
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4416
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4416
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4417
4417
  reviewMode: boolean;
4418
4418
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4419
4419
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4497,7 +4497,7 @@ declare const InteractiveGraph: {
4497
4497
  keypadElement?: any;
4498
4498
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4499
4499
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4500
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4500
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4501
4501
  reviewMode: boolean;
4502
4502
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4503
4503
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4581,7 +4581,7 @@ declare const InteractiveGraph: {
4581
4581
  keypadElement?: any;
4582
4582
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4583
4583
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4584
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4584
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4585
4585
  reviewMode: boolean;
4586
4586
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4587
4587
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4665,7 +4665,7 @@ declare const InteractiveGraph: {
4665
4665
  keypadElement?: any;
4666
4666
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4667
4667
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4668
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4668
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4669
4669
  reviewMode: boolean;
4670
4670
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4671
4671
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4749,7 +4749,7 @@ declare const InteractiveGraph: {
4749
4749
  keypadElement?: any;
4750
4750
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4751
4751
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4752
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4752
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4753
4753
  reviewMode: boolean;
4754
4754
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4755
4755
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4833,7 +4833,7 @@ declare const InteractiveGraph: {
4833
4833
  keypadElement?: any;
4834
4834
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4835
4835
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4836
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4836
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4837
4837
  reviewMode: boolean;
4838
4838
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4839
4839
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -4917,7 +4917,7 @@ declare const InteractiveGraph: {
4917
4917
  keypadElement?: any;
4918
4918
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4919
4919
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4920
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
4920
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
4921
4921
  reviewMode: boolean;
4922
4922
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
4923
4923
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
@@ -5001,7 +5001,7 @@ declare const InteractiveGraph: {
5001
5001
  keypadElement?: any;
5002
5002
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
5003
5003
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
5004
- findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
5004
+ findWidgets: import("../../../../perseus/src/types").FindWidgetsFunction;
5005
5005
  reviewMode: boolean;
5006
5006
  showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
5007
5007
  handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Perseus editors",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "30.2.0",
6
+ "version": "30.3.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -36,13 +36,13 @@
36
36
  "mafs": "^0.19.0",
37
37
  "tiny-invariant": "1.3.1",
38
38
  "@khanacademy/kas": "2.2.1",
39
- "@khanacademy/keypad-context": "3.2.42",
40
- "@khanacademy/kmath": "2.4.0",
41
- "@khanacademy/math-input": "26.4.13",
42
- "@khanacademy/perseus": "77.2.0",
43
- "@khanacademy/perseus-core": "24.1.0",
44
- "@khanacademy/perseus-linter": "4.9.2",
45
- "@khanacademy/perseus-score": "8.6.0",
39
+ "@khanacademy/keypad-context": "3.2.43",
40
+ "@khanacademy/kmath": "2.4.1",
41
+ "@khanacademy/math-input": "26.4.14",
42
+ "@khanacademy/perseus": "77.2.2",
43
+ "@khanacademy/perseus-core": "24.1.1",
44
+ "@khanacademy/perseus-linter": "4.9.4",
45
+ "@khanacademy/perseus-score": "8.6.1",
46
46
  "@khanacademy/perseus-utils": "2.1.5"
47
47
  },
48
48
  "devDependencies": {