@khanacademy/perseus-editor 27.0.2 → 27.1.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.
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import type { Props as EditorProps } from "../interactive-graph-editor";
3
+ import type { PerseusGraphType, PerseusGraphTypeAngle } from "@khanacademy/perseus-core";
4
+ interface Props {
5
+ correct: PerseusGraphTypeAngle;
6
+ graph: PerseusGraphType | undefined;
7
+ onChange: (props: Partial<EditorProps>) => void;
8
+ }
9
+ export default function AngleAnswerOptions({ correct, graph, onChange }: Props): React.JSX.Element;
10
+ export {};
@@ -1,7 +1,10 @@
1
1
  import * as React from "react";
2
- import type { PointValue } from "../../../util/points";
3
- declare const GraphPointsCountSelector: ({ numPoints, onChange, }: {
4
- numPoints?: PointValue;
5
- onChange: (points: PointValue) => void;
6
- }) => React.JSX.Element;
2
+ import type { Props as EditorProps } from "../interactive-graph-editor";
3
+ import type { PerseusGraphType, PerseusGraphTypePoint } from "@khanacademy/perseus-core";
4
+ interface Props {
5
+ correct: PerseusGraphTypePoint;
6
+ graph: PerseusGraphType | undefined;
7
+ onChange: (props: Partial<EditorProps>) => void;
8
+ }
9
+ declare const GraphPointsCountSelector: ({ correct, graph, onChange }: Props) => React.JSX.Element;
7
10
  export default GraphPointsCountSelector;
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import type { Props as EditorProps } from "../interactive-graph-editor";
3
+ import type { PerseusGraphType, PerseusGraphTypePolygon } from "@khanacademy/perseus-core";
4
+ interface Props {
5
+ correct: PerseusGraphTypePolygon;
6
+ graph: PerseusGraphType | undefined;
7
+ onChange: (props: Partial<EditorProps>) => void;
8
+ }
9
+ export default function PolygonAnswerOptions({ correct, graph, onChange, }: Props): React.JSX.Element;
10
+ export {};
@@ -1,6 +1,10 @@
1
1
  import * as React from "react";
2
- declare const SegmentCountSelector: ({ numSegments, onChange, }: {
3
- numSegments?: number;
4
- onChange: (numSegments: number) => void;
5
- }) => React.JSX.Element;
2
+ import type { Props as EditorProps } from "../interactive-graph-editor";
3
+ import type { PerseusGraphType, PerseusGraphTypeSegment } from "@khanacademy/perseus-core";
4
+ interface Props {
5
+ correct: PerseusGraphTypeSegment;
6
+ graph: PerseusGraphType | undefined;
7
+ onChange: (props: Partial<EditorProps>) => void;
8
+ }
9
+ declare const SegmentCountSelector: ({ correct, graph, onChange }: Props) => React.JSX.Element;
6
10
  export default SegmentCountSelector;
@@ -89,7 +89,11 @@ declare const InteractiveGraph: {
89
89
  }> & {
90
90
  baseElements: NonNullable<Readonly<{
91
91
  isArticle?: boolean;
92
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
92
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
93
+ * The locked figures to display in the graph area.
94
+ * Locked figures are graph elements (points, lines, line segmeents,
95
+ * etc.) that are locked in place and not interactive.
96
+ */: number, focusedElement?: HTMLElement) => unknown;
93
97
  GroupMetadataEditor?: React.ComponentType<any>;
94
98
  showAlignmentOptions?: boolean;
95
99
  readOnly?: boolean;
@@ -125,7 +129,11 @@ declare const InteractiveGraph: {
125
129
  }>["baseElements"]>;
126
130
  canScrollPage: NonNullable<Readonly<{
127
131
  isArticle?: boolean;
128
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
132
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
133
+ * The locked figures to display in the graph area.
134
+ * Locked figures are graph elements (points, lines, line segmeents,
135
+ * etc.) that are locked in place and not interactive.
136
+ */: number, focusedElement?: HTMLElement) => unknown;
129
137
  GroupMetadataEditor?: React.ComponentType<any>;
130
138
  showAlignmentOptions?: boolean;
131
139
  readOnly?: boolean;
@@ -161,7 +169,11 @@ declare const InteractiveGraph: {
161
169
  }>["canScrollPage"]>;
162
170
  editorChangeDelay: NonNullable<Readonly<{
163
171
  isArticle?: boolean;
164
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
172
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
173
+ * The locked figures to display in the graph area.
174
+ * Locked figures are graph elements (points, lines, line segmeents,
175
+ * etc.) that are locked in place and not interactive.
176
+ */: number, focusedElement?: HTMLElement) => unknown;
165
177
  GroupMetadataEditor?: React.ComponentType<any>;
166
178
  showAlignmentOptions?: boolean;
167
179
  readOnly?: boolean;
@@ -197,7 +209,11 @@ declare const InteractiveGraph: {
197
209
  }>["editorChangeDelay"]>;
198
210
  groupAnnotator: NonNullable<Readonly<{
199
211
  isArticle?: boolean;
200
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
212
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
213
+ * The locked figures to display in the graph area.
214
+ * Locked figures are graph elements (points, lines, line segmeents,
215
+ * etc.) that are locked in place and not interactive.
216
+ */: number, focusedElement?: HTMLElement) => unknown;
201
217
  GroupMetadataEditor?: React.ComponentType<any>;
202
218
  showAlignmentOptions?: boolean;
203
219
  readOnly?: boolean;
@@ -233,7 +249,11 @@ declare const InteractiveGraph: {
233
249
  }>["groupAnnotator"]>;
234
250
  isArticle: NonNullable<Readonly<{
235
251
  isArticle?: boolean;
236
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
252
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
253
+ * The locked figures to display in the graph area.
254
+ * Locked figures are graph elements (points, lines, line segmeents,
255
+ * etc.) that are locked in place and not interactive.
256
+ */: number, focusedElement?: HTMLElement) => unknown;
237
257
  GroupMetadataEditor?: React.ComponentType<any>;
238
258
  showAlignmentOptions?: boolean;
239
259
  readOnly?: boolean;
@@ -269,7 +289,11 @@ declare const InteractiveGraph: {
269
289
  }>["isArticle"]>;
270
290
  isMobile: NonNullable<Readonly<{
271
291
  isArticle?: boolean;
272
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
292
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
293
+ * The locked figures to display in the graph area.
294
+ * Locked figures are graph elements (points, lines, line segmeents,
295
+ * etc.) that are locked in place and not interactive.
296
+ */: number, focusedElement?: HTMLElement) => unknown;
273
297
  GroupMetadataEditor?: React.ComponentType<any>;
274
298
  showAlignmentOptions?: boolean;
275
299
  readOnly?: boolean;
@@ -305,7 +329,11 @@ declare const InteractiveGraph: {
305
329
  }>["isMobile"]>;
306
330
  isMobileApp: NonNullable<Readonly<{
307
331
  isArticle?: boolean;
308
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
332
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
333
+ * The locked figures to display in the graph area.
334
+ * Locked figures are graph elements (points, lines, line segmeents,
335
+ * etc.) that are locked in place and not interactive.
336
+ */: number, focusedElement?: HTMLElement) => unknown;
309
337
  GroupMetadataEditor?: React.ComponentType<any>;
310
338
  showAlignmentOptions?: boolean;
311
339
  readOnly?: boolean;
@@ -341,7 +369,11 @@ declare const InteractiveGraph: {
341
369
  }>["isMobileApp"]>;
342
370
  onFocusChange: NonNullable<Readonly<{
343
371
  isArticle?: boolean;
344
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
372
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
373
+ * The locked figures to display in the graph area.
374
+ * Locked figures are graph elements (points, lines, line segmeents,
375
+ * etc.) that are locked in place and not interactive.
376
+ */: number, focusedElement?: HTMLElement) => unknown;
345
377
  GroupMetadataEditor?: React.ComponentType<any>;
346
378
  showAlignmentOptions?: boolean;
347
379
  readOnly?: boolean;
@@ -377,7 +409,11 @@ declare const InteractiveGraph: {
377
409
  }>["onFocusChange"]>;
378
410
  readOnly: NonNullable<Readonly<{
379
411
  isArticle?: boolean;
380
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
412
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
413
+ * The locked figures to display in the graph area.
414
+ * Locked figures are graph elements (points, lines, line segmeents,
415
+ * etc.) that are locked in place and not interactive.
416
+ */: number, focusedElement?: HTMLElement) => unknown;
381
417
  GroupMetadataEditor?: React.ComponentType<any>;
382
418
  showAlignmentOptions?: boolean;
383
419
  readOnly?: boolean;
@@ -413,7 +449,11 @@ declare const InteractiveGraph: {
413
449
  }>["readOnly"]>;
414
450
  setDrawingAreaAvailable: NonNullable<Readonly<{
415
451
  isArticle?: boolean;
416
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
452
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
453
+ * The locked figures to display in the graph area.
454
+ * Locked figures are graph elements (points, lines, line segmeents,
455
+ * etc.) that are locked in place and not interactive.
456
+ */: number, focusedElement?: HTMLElement) => unknown;
417
457
  GroupMetadataEditor?: React.ComponentType<any>;
418
458
  showAlignmentOptions?: boolean;
419
459
  readOnly?: boolean;
@@ -449,7 +489,11 @@ declare const InteractiveGraph: {
449
489
  }>["setDrawingAreaAvailable"]>;
450
490
  showAlignmentOptions: NonNullable<Readonly<{
451
491
  isArticle?: boolean;
452
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
492
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
493
+ * The locked figures to display in the graph area.
494
+ * Locked figures are graph elements (points, lines, line segmeents,
495
+ * etc.) that are locked in place and not interactive.
496
+ */: number, focusedElement?: HTMLElement) => unknown;
453
497
  GroupMetadataEditor?: React.ComponentType<any>;
454
498
  showAlignmentOptions?: boolean;
455
499
  readOnly?: boolean;
@@ -757,7 +801,11 @@ declare const InteractiveGraph: {
757
801
  }> & {
758
802
  baseElements: NonNullable<Readonly<{
759
803
  isArticle?: boolean;
760
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
804
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
805
+ * The locked figures to display in the graph area.
806
+ * Locked figures are graph elements (points, lines, line segmeents,
807
+ * etc.) that are locked in place and not interactive.
808
+ */: number, focusedElement?: HTMLElement) => unknown;
761
809
  GroupMetadataEditor?: React.ComponentType<any>;
762
810
  showAlignmentOptions?: boolean;
763
811
  readOnly?: boolean;
@@ -793,7 +841,11 @@ declare const InteractiveGraph: {
793
841
  }>["baseElements"]>;
794
842
  canScrollPage: NonNullable<Readonly<{
795
843
  isArticle?: boolean;
796
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
844
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
845
+ * The locked figures to display in the graph area.
846
+ * Locked figures are graph elements (points, lines, line segmeents,
847
+ * etc.) that are locked in place and not interactive.
848
+ */: number, focusedElement?: HTMLElement) => unknown;
797
849
  GroupMetadataEditor?: React.ComponentType<any>;
798
850
  showAlignmentOptions?: boolean;
799
851
  readOnly?: boolean;
@@ -829,7 +881,11 @@ declare const InteractiveGraph: {
829
881
  }>["canScrollPage"]>;
830
882
  editorChangeDelay: NonNullable<Readonly<{
831
883
  isArticle?: boolean;
832
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
884
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
885
+ * The locked figures to display in the graph area.
886
+ * Locked figures are graph elements (points, lines, line segmeents,
887
+ * etc.) that are locked in place and not interactive.
888
+ */: number, focusedElement?: HTMLElement) => unknown;
833
889
  GroupMetadataEditor?: React.ComponentType<any>;
834
890
  showAlignmentOptions?: boolean;
835
891
  readOnly?: boolean;
@@ -865,7 +921,11 @@ declare const InteractiveGraph: {
865
921
  }>["editorChangeDelay"]>;
866
922
  groupAnnotator: NonNullable<Readonly<{
867
923
  isArticle?: boolean;
868
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
924
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
925
+ * The locked figures to display in the graph area.
926
+ * Locked figures are graph elements (points, lines, line segmeents,
927
+ * etc.) that are locked in place and not interactive.
928
+ */: number, focusedElement?: HTMLElement) => unknown;
869
929
  GroupMetadataEditor?: React.ComponentType<any>;
870
930
  showAlignmentOptions?: boolean;
871
931
  readOnly?: boolean;
@@ -901,7 +961,11 @@ declare const InteractiveGraph: {
901
961
  }>["groupAnnotator"]>;
902
962
  isArticle: NonNullable<Readonly<{
903
963
  isArticle?: boolean;
904
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
964
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
965
+ * The locked figures to display in the graph area.
966
+ * Locked figures are graph elements (points, lines, line segmeents,
967
+ * etc.) that are locked in place and not interactive.
968
+ */: number, focusedElement?: HTMLElement) => unknown;
905
969
  GroupMetadataEditor?: React.ComponentType<any>;
906
970
  showAlignmentOptions?: boolean;
907
971
  readOnly?: boolean;
@@ -937,7 +1001,11 @@ declare const InteractiveGraph: {
937
1001
  }>["isArticle"]>;
938
1002
  isMobile: NonNullable<Readonly<{
939
1003
  isArticle?: boolean;
940
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1004
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1005
+ * The locked figures to display in the graph area.
1006
+ * Locked figures are graph elements (points, lines, line segmeents,
1007
+ * etc.) that are locked in place and not interactive.
1008
+ */: number, focusedElement?: HTMLElement) => unknown;
941
1009
  GroupMetadataEditor?: React.ComponentType<any>;
942
1010
  showAlignmentOptions?: boolean;
943
1011
  readOnly?: boolean;
@@ -973,7 +1041,11 @@ declare const InteractiveGraph: {
973
1041
  }>["isMobile"]>;
974
1042
  isMobileApp: NonNullable<Readonly<{
975
1043
  isArticle?: boolean;
976
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1044
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1045
+ * The locked figures to display in the graph area.
1046
+ * Locked figures are graph elements (points, lines, line segmeents,
1047
+ * etc.) that are locked in place and not interactive.
1048
+ */: number, focusedElement?: HTMLElement) => unknown;
977
1049
  GroupMetadataEditor?: React.ComponentType<any>;
978
1050
  showAlignmentOptions?: boolean;
979
1051
  readOnly?: boolean;
@@ -1009,7 +1081,11 @@ declare const InteractiveGraph: {
1009
1081
  }>["isMobileApp"]>;
1010
1082
  onFocusChange: NonNullable<Readonly<{
1011
1083
  isArticle?: boolean;
1012
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1084
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1085
+ * The locked figures to display in the graph area.
1086
+ * Locked figures are graph elements (points, lines, line segmeents,
1087
+ * etc.) that are locked in place and not interactive.
1088
+ */: number, focusedElement?: HTMLElement) => unknown;
1013
1089
  GroupMetadataEditor?: React.ComponentType<any>;
1014
1090
  showAlignmentOptions?: boolean;
1015
1091
  readOnly?: boolean;
@@ -1045,7 +1121,11 @@ declare const InteractiveGraph: {
1045
1121
  }>["onFocusChange"]>;
1046
1122
  readOnly: NonNullable<Readonly<{
1047
1123
  isArticle?: boolean;
1048
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1124
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1125
+ * The locked figures to display in the graph area.
1126
+ * Locked figures are graph elements (points, lines, line segmeents,
1127
+ * etc.) that are locked in place and not interactive.
1128
+ */: number, focusedElement?: HTMLElement) => unknown;
1049
1129
  GroupMetadataEditor?: React.ComponentType<any>;
1050
1130
  showAlignmentOptions?: boolean;
1051
1131
  readOnly?: boolean;
@@ -1081,7 +1161,11 @@ declare const InteractiveGraph: {
1081
1161
  }>["readOnly"]>;
1082
1162
  setDrawingAreaAvailable: NonNullable<Readonly<{
1083
1163
  isArticle?: boolean;
1084
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1164
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1165
+ * The locked figures to display in the graph area.
1166
+ * Locked figures are graph elements (points, lines, line segmeents,
1167
+ * etc.) that are locked in place and not interactive.
1168
+ */: number, focusedElement?: HTMLElement) => unknown;
1085
1169
  GroupMetadataEditor?: React.ComponentType<any>;
1086
1170
  showAlignmentOptions?: boolean;
1087
1171
  readOnly?: boolean;
@@ -1117,7 +1201,11 @@ declare const InteractiveGraph: {
1117
1201
  }>["setDrawingAreaAvailable"]>;
1118
1202
  showAlignmentOptions: NonNullable<Readonly<{
1119
1203
  isArticle?: boolean;
1120
- onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
1204
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight? /**
1205
+ * The locked figures to display in the graph area.
1206
+ * Locked figures are graph elements (points, lines, line segmeents,
1207
+ * etc.) that are locked in place and not interactive.
1208
+ */: number, focusedElement?: HTMLElement) => unknown;
1121
1209
  GroupMetadataEditor?: React.ComponentType<any>;
1122
1210
  showAlignmentOptions?: boolean;
1123
1211
  readOnly?: boolean;
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface RadioImageEditorProps {
3
+ initialImageUrl: string;
4
+ initialImageAltText: string;
5
+ containerClassName?: string;
6
+ onSave: (imageUrl: string, imageAltText: string) => void;
7
+ onClose?: () => void;
8
+ onDelete?: () => void;
9
+ }
10
+ export default function RadioImageEditor({ initialImageUrl, initialImageAltText, containerClassName, onSave, onClose, onDelete, }: RadioImageEditorProps): React.ReactElement;
11
+ export {};
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ type Props = {
3
+ isNoneOfTheAbove: boolean;
4
+ content: string;
5
+ choiceIndex: number;
6
+ onContentChange: (choiceIndex: number, content: string) => void;
7
+ };
8
+ export declare const RadioOptionContentAndImageEditor: (props: Props) => React.JSX.Element;
9
+ export {};
@@ -1,3 +1,11 @@
1
1
  import type { ChoiceMovementType } from "./radio-option-settings-actions";
2
2
  import type { PerseusRadioChoice } from "@khanacademy/perseus-core";
3
3
  export declare function getMovedChoices(choices: PerseusRadioChoice[], hasNoneOfTheAbove: boolean, choiceIndex: number, movement: ChoiceMovementType): PerseusRadioChoice[];
4
+ export declare function setImageProxyFromMarkdownContent(markdownContent: string): [string, {
5
+ url: string;
6
+ altText: string;
7
+ }[]];
8
+ export declare function setMarkdownContentFromImageProxy(proxiedContent: string, images: {
9
+ url: string;
10
+ altText: string;
11
+ }[]): string;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Perseus editors",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "27.0.2",
6
+ "version": "27.1.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -35,36 +35,36 @@
35
35
  "mafs": "^0.19.0",
36
36
  "tiny-invariant": "1.3.1",
37
37
  "@khanacademy/kas": "2.1.0",
38
- "@khanacademy/keypad-context": "3.1.1",
39
- "@khanacademy/kmath": "2.1.1",
40
- "@khanacademy/perseus-linter": "4.2.1",
41
- "@khanacademy/math-input": "26.1.2",
42
- "@khanacademy/perseus": "66.2.2",
43
- "@khanacademy/perseus-core": "18.4.0",
44
- "@khanacademy/perseus-score": "7.4.0",
38
+ "@khanacademy/keypad-context": "3.1.2",
39
+ "@khanacademy/kmath": "2.1.2",
40
+ "@khanacademy/math-input": "26.1.3",
41
+ "@khanacademy/perseus": "66.3.0",
42
+ "@khanacademy/perseus-core": "18.5.0",
43
+ "@khanacademy/perseus-linter": "4.2.2",
44
+ "@khanacademy/perseus-score": "7.5.0",
45
45
  "@khanacademy/perseus-utils": "2.1.0",
46
46
  "@khanacademy/pure-markdown": "2.2.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@khanacademy/mathjax-renderer": "3.0.0",
50
- "@khanacademy/wonder-blocks-accordion": "3.1.33",
51
- "@khanacademy/wonder-blocks-banner": "4.2.11",
52
- "@khanacademy/wonder-blocks-button": "10.2.15",
53
- "@khanacademy/wonder-blocks-clickable": "7.1.19",
50
+ "@khanacademy/wonder-blocks-accordion": "3.1.34",
51
+ "@khanacademy/wonder-blocks-banner": "4.2.14",
52
+ "@khanacademy/wonder-blocks-button": "11.0.0",
53
+ "@khanacademy/wonder-blocks-clickable": "7.1.20",
54
54
  "@khanacademy/wonder-blocks-core": "12.3.0",
55
- "@khanacademy/wonder-blocks-dropdown": "10.3.0",
56
- "@khanacademy/wonder-blocks-form": "7.3.1",
57
- "@khanacademy/wonder-blocks-icon": "5.2.13",
58
- "@khanacademy/wonder-blocks-icon-button": "10.3.14",
59
- "@khanacademy/wonder-blocks-labeled-field": "3.2.2",
60
- "@khanacademy/wonder-blocks-layout": "3.1.30",
61
- "@khanacademy/wonder-blocks-link": "9.1.19",
62
- "@khanacademy/wonder-blocks-pill": "3.1.34",
63
- "@khanacademy/wonder-blocks-switch": "3.3.12",
55
+ "@khanacademy/wonder-blocks-dropdown": "10.3.2",
56
+ "@khanacademy/wonder-blocks-form": "7.3.2",
57
+ "@khanacademy/wonder-blocks-icon": "5.2.14",
58
+ "@khanacademy/wonder-blocks-icon-button": "10.3.15",
59
+ "@khanacademy/wonder-blocks-labeled-field": "4.0.0",
60
+ "@khanacademy/wonder-blocks-layout": "3.1.31",
61
+ "@khanacademy/wonder-blocks-link": "9.1.20",
62
+ "@khanacademy/wonder-blocks-pill": "3.1.35",
63
+ "@khanacademy/wonder-blocks-switch": "3.3.13",
64
64
  "@khanacademy/wonder-blocks-timing": "7.0.2",
65
- "@khanacademy/wonder-blocks-tokens": "12.0.1",
66
- "@khanacademy/wonder-blocks-tooltip": "4.1.36",
67
- "@khanacademy/wonder-blocks-typography": "4.2.15",
65
+ "@khanacademy/wonder-blocks-tokens": "12.0.2",
66
+ "@khanacademy/wonder-blocks-tooltip": "4.1.38",
67
+ "@khanacademy/wonder-blocks-typography": "4.2.16",
68
68
  "@khanacademy/wonder-stuff-core": "1.5.5",
69
69
  "@phosphor-icons/core": "2.0.2",
70
70
  "aphrodite": "1.2.5",
@@ -79,24 +79,24 @@
79
79
  },
80
80
  "peerDependencies": {
81
81
  "@khanacademy/mathjax-renderer": "^3.0.0",
82
- "@khanacademy/wonder-blocks-accordion": "^3.1.33",
83
- "@khanacademy/wonder-blocks-banner": "^4.2.11",
84
- "@khanacademy/wonder-blocks-button": "^10.2.15",
85
- "@khanacademy/wonder-blocks-clickable": "^7.1.19",
82
+ "@khanacademy/wonder-blocks-accordion": "^3.1.34",
83
+ "@khanacademy/wonder-blocks-banner": "^4.2.14",
84
+ "@khanacademy/wonder-blocks-button": "^11.0.0",
85
+ "@khanacademy/wonder-blocks-clickable": "^7.1.20",
86
86
  "@khanacademy/wonder-blocks-core": "^12.3.0",
87
- "@khanacademy/wonder-blocks-dropdown": "^10.3.0",
88
- "@khanacademy/wonder-blocks-form": "^7.3.1",
89
- "@khanacademy/wonder-blocks-icon": "^5.2.13",
90
- "@khanacademy/wonder-blocks-icon-button": "^10.3.14",
91
- "@khanacademy/wonder-blocks-labeled-field": "^3.2.2",
92
- "@khanacademy/wonder-blocks-layout": "^3.1.30",
93
- "@khanacademy/wonder-blocks-link": "^9.1.19",
94
- "@khanacademy/wonder-blocks-pill": "^3.1.34",
95
- "@khanacademy/wonder-blocks-switch": "^3.3.12",
87
+ "@khanacademy/wonder-blocks-dropdown": "^10.3.2",
88
+ "@khanacademy/wonder-blocks-form": "^7.3.2",
89
+ "@khanacademy/wonder-blocks-icon": "^5.2.14",
90
+ "@khanacademy/wonder-blocks-icon-button": "^10.3.15",
91
+ "@khanacademy/wonder-blocks-labeled-field": "^4.0.0",
92
+ "@khanacademy/wonder-blocks-layout": "^3.1.31",
93
+ "@khanacademy/wonder-blocks-link": "^9.1.20",
94
+ "@khanacademy/wonder-blocks-pill": "^3.1.35",
95
+ "@khanacademy/wonder-blocks-switch": "^3.3.13",
96
96
  "@khanacademy/wonder-blocks-timing": "^7.0.2",
97
- "@khanacademy/wonder-blocks-tokens": "^12.0.1",
98
- "@khanacademy/wonder-blocks-tooltip": "^4.1.36",
99
- "@khanacademy/wonder-blocks-typography": "^4.2.15",
97
+ "@khanacademy/wonder-blocks-tokens": "^12.0.2",
98
+ "@khanacademy/wonder-blocks-tooltip": "^4.1.38",
99
+ "@khanacademy/wonder-blocks-typography": "^4.2.16",
100
100
  "@khanacademy/wonder-stuff-core": "^1.5.5",
101
101
  "@phosphor-icons/core": "^2.0.2",
102
102
  "aphrodite": "^1.2.5",