@khanacademy/perseus-editor 33.0.1 → 33.0.2

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/dist/components/coordinate-pair-input.d.ts +2 -2
  2. package/dist/components/segmented-control.d.ts +35 -0
  3. package/dist/es/index.css +38 -4
  4. package/dist/es/index.css.map +1 -1
  5. package/dist/es/index.js +90 -42
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/index.css +38 -4
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.js +90 -43
  10. package/dist/index.js.map +1 -1
  11. package/dist/testing/feature-flags-util.d.ts +2 -0
  12. package/dist/widgets/expression-editor.d.ts +2 -2
  13. package/dist/widgets/interactive-graph-editor/components/graph-type-selector.d.ts +2 -2
  14. package/dist/widgets/interactive-graph-editor/components/interactive-graph-description.d.ts +2 -2
  15. package/dist/widgets/interactive-graph-editor/components/interactive-graph-settings.d.ts +4 -4
  16. package/dist/widgets/interactive-graph-editor/components/interactive-graph-sr-tree.d.ts +4 -4
  17. package/dist/widgets/interactive-graph-editor/interactive-graph-editor.d.ts +18 -18
  18. package/dist/widgets/interactive-graph-editor/locked-figures/color-select.d.ts +2 -2
  19. package/dist/widgets/interactive-graph-editor/locked-figures/line-stroke-select.d.ts +2 -2
  20. package/dist/widgets/interactive-graph-editor/locked-figures/line-weight-select.d.ts +2 -2
  21. package/dist/widgets/interactive-graph-editor/locked-figures/locked-figure-aria.d.ts +2 -2
  22. package/dist/widgets/interactive-graph-editor/locked-figures/locked-figure-select.d.ts +2 -2
  23. package/dist/widgets/interactive-graph-editor/locked-figures/locked-figure-settings-actions.d.ts +2 -2
  24. package/dist/widgets/interactive-graph-editor/locked-figures/locked-figure-settings.d.ts +2 -2
  25. package/dist/widgets/interactive-graph-editor/locked-figures/locked-figures-section.d.ts +2 -2
  26. package/dist/widgets/label-image-editor/answer-choices.d.ts +2 -2
  27. package/dist/widgets/label-image-editor/label-image-editor.d.ts +2 -2
  28. package/dist/widgets/label-image-editor/select-image.d.ts +2 -2
  29. package/dist/widgets/numeric-input-editor.d.ts +2 -2
  30. package/dist/widgets/radio/radio-image-editor.d.ts +5 -9
  31. package/dist/widgets/radio/radio-option-content-and-image-editor.d.ts +4 -4
  32. package/dist/widgets/radio/radio-status-pill.d.ts +6 -2
  33. package/package.json +43 -41
@@ -4,6 +4,7 @@ declare const DEFAULT_FEATURE_FLAGS: {
4
4
  "interactive-graph-vector": boolean;
5
5
  "interactive-graph-not-scored": boolean;
6
6
  "input-number-to-numeric-input": boolean;
7
+ "grapher-to-interactive-graph": boolean;
7
8
  };
8
9
  /** Utility to get feature flags with optional overrides for testing.
9
10
  * sample usage:
@@ -15,5 +16,6 @@ export declare function getFeatureFlags(overrides?: Partial<typeof DEFAULT_FEATU
15
16
  "interactive-graph-vector": boolean;
16
17
  "interactive-graph-not-scored": boolean;
17
18
  "input-number-to-numeric-input": boolean;
19
+ "grapher-to-interactive-graph": boolean;
18
20
  };
19
21
  export {};
@@ -7,9 +7,9 @@ type Props = {
7
7
  onChange: (newValues: Partial<PerseusExpressionWidgetOptions>) => void;
8
8
  } & Omit<PerseusExpressionWidgetOptions, "buttonsVisible">;
9
9
  type AnswerForm = PerseusExpressionWidgetOptions["answerForms"][number];
10
- type State = {
10
+ interface State {
11
11
  functionsInternal: string;
12
- };
12
+ }
13
13
  /**
14
14
  * An editor for adding an expression widget that allows users to enter mathematical expressions.
15
15
  */
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
- type GraphTypeSelectorProps = {
2
+ interface GraphTypeSelectorProps {
3
3
  graphType: string;
4
4
  onChange: (newGraphType: string) => void;
5
- };
5
+ }
6
6
  declare const GraphTypeSelector: (props: GraphTypeSelectorProps) => React.JSX.Element;
7
7
  export default GraphTypeSelector;
@@ -1,9 +1,9 @@
1
1
  import * as React from "react";
2
2
  import type { Props as EditorProps } from "../interactive-graph-editor";
3
- type Props = {
3
+ interface Props {
4
4
  ariaLabelValue: string;
5
5
  ariaDescriptionValue: string;
6
6
  onChange: (graphProps: Partial<EditorProps>) => void;
7
- };
7
+ }
8
8
  export default function InteractiveGraphDescription(props: Props): React.JSX.Element;
9
9
  export {};
@@ -7,7 +7,7 @@ import type { APIOptionsWithDefaults } from "@khanacademy/perseus";
7
7
  import type { AxisLabelLocation, ShowAxisArrows, ShowAxisTicks, MarkingsType, PerseusImageBackground } from "@khanacademy/perseus-core";
8
8
  type ChangeFn = typeof Changeable.change;
9
9
  type Range = [min: number, max: number];
10
- type Props = {
10
+ interface Props {
11
11
  /**
12
12
  * The size of the graph area in pixels.
13
13
  */
@@ -75,8 +75,8 @@ type Props = {
75
75
  showTooltips: boolean;
76
76
  onChange: (arg1: Partial<Props>) => void;
77
77
  apiOptions: APIOptionsWithDefaults;
78
- };
79
- type State = {
78
+ }
79
+ interface State {
80
80
  isExpanded: boolean;
81
81
  labelsTextbox: ReadonlyArray<string>;
82
82
  labelLocation: AxisLabelLocation;
@@ -87,7 +87,7 @@ type State = {
87
87
  showAxisArrowsSwitches: ShowAxisArrows;
88
88
  showAxisTicksSwitches: ShowAxisTicks;
89
89
  backgroundImage: PerseusImageBackground;
90
- };
90
+ }
91
91
  declare class InteractiveGraphSettings extends React.Component<Props, State> {
92
92
  _isMounted: boolean;
93
93
  bgUrlRef: React.RefObject<HTMLInputElement>;
@@ -1,13 +1,13 @@
1
1
  import * as React from "react";
2
- type Attribute = {
2
+ interface Attribute {
3
3
  name: string;
4
4
  value: string;
5
- };
6
- type AttributeMap = {
5
+ }
6
+ interface AttributeMap {
7
7
  roleOrTag: string;
8
8
  className: string;
9
9
  attributes: Array<Attribute>;
10
- };
10
+ }
11
11
  export declare function getAccessibilityAttributes(graphId: string): AttributeMap[];
12
12
  declare function InteractiveGraphSRTree({ graphId, correct, fullGraphAriaLabel, fullGraphAriaDescription, lockedFigures, }: {
13
13
  graphId: any;
@@ -63,7 +63,7 @@ declare const InteractiveGraph: {
63
63
  isMobile?: boolean;
64
64
  isMobileApp?: boolean;
65
65
  hintProgressColor?: string;
66
- flags?: Record<"input-number-to-numeric-input", boolean>;
66
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
67
67
  }> & {
68
68
  baseElements: NonNullable<Readonly<{
69
69
  isArticle?: boolean;
@@ -92,7 +92,7 @@ declare const InteractiveGraph: {
92
92
  isMobile?: boolean;
93
93
  isMobileApp?: boolean;
94
94
  hintProgressColor?: string;
95
- flags?: Record<"input-number-to-numeric-input", boolean>;
95
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
96
96
  }>["baseElements"]>;
97
97
  isArticle: NonNullable<Readonly<{
98
98
  isArticle?: boolean;
@@ -121,7 +121,7 @@ declare const InteractiveGraph: {
121
121
  isMobile?: boolean;
122
122
  isMobileApp?: boolean;
123
123
  hintProgressColor?: string;
124
- flags?: Record<"input-number-to-numeric-input", boolean>;
124
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
125
125
  }>["isArticle"]>;
126
126
  isMobile: NonNullable<Readonly<{
127
127
  isArticle?: boolean;
@@ -150,7 +150,7 @@ declare const InteractiveGraph: {
150
150
  isMobile?: boolean;
151
151
  isMobileApp?: boolean;
152
152
  hintProgressColor?: string;
153
- flags?: Record<"input-number-to-numeric-input", boolean>;
153
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
154
154
  }>["isMobile"]>;
155
155
  isMobileApp: NonNullable<Readonly<{
156
156
  isArticle?: boolean;
@@ -179,7 +179,7 @@ declare const InteractiveGraph: {
179
179
  isMobile?: boolean;
180
180
  isMobileApp?: boolean;
181
181
  hintProgressColor?: string;
182
- flags?: Record<"input-number-to-numeric-input", boolean>;
182
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
183
183
  }>["isMobileApp"]>;
184
184
  editingDisabled: NonNullable<Readonly<{
185
185
  isArticle?: boolean;
@@ -208,7 +208,7 @@ declare const InteractiveGraph: {
208
208
  isMobile?: boolean;
209
209
  isMobileApp?: boolean;
210
210
  hintProgressColor?: string;
211
- flags?: Record<"input-number-to-numeric-input", boolean>;
211
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
212
212
  }>["editingDisabled"]>;
213
213
  onFocusChange: NonNullable<Readonly<{
214
214
  isArticle?: boolean;
@@ -237,7 +237,7 @@ declare const InteractiveGraph: {
237
237
  isMobile?: boolean;
238
238
  isMobileApp?: boolean;
239
239
  hintProgressColor?: string;
240
- flags?: Record<"input-number-to-numeric-input", boolean>;
240
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
241
241
  }>["onFocusChange"]>;
242
242
  readOnly: NonNullable<Readonly<{
243
243
  isArticle?: boolean;
@@ -266,7 +266,7 @@ declare const InteractiveGraph: {
266
266
  isMobile?: boolean;
267
267
  isMobileApp?: boolean;
268
268
  hintProgressColor?: string;
269
- flags?: Record<"input-number-to-numeric-input", boolean>;
269
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
270
270
  }>["readOnly"]>;
271
271
  showAlignmentOptions: NonNullable<Readonly<{
272
272
  isArticle?: boolean;
@@ -295,7 +295,7 @@ declare const InteractiveGraph: {
295
295
  isMobile?: boolean;
296
296
  isMobileApp?: boolean;
297
297
  hintProgressColor?: string;
298
- flags?: Record<"input-number-to-numeric-input", boolean>;
298
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
299
299
  }>["showAlignmentOptions"]>;
300
300
  }>;
301
301
  keypadElement?: any;
@@ -389,7 +389,7 @@ declare const InteractiveGraph: {
389
389
  isMobile?: boolean;
390
390
  isMobileApp?: boolean;
391
391
  hintProgressColor?: string;
392
- flags?: Record<"input-number-to-numeric-input", boolean>;
392
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
393
393
  }> & {
394
394
  baseElements: NonNullable<Readonly<{
395
395
  isArticle?: boolean;
@@ -418,7 +418,7 @@ declare const InteractiveGraph: {
418
418
  isMobile?: boolean;
419
419
  isMobileApp?: boolean;
420
420
  hintProgressColor?: string;
421
- flags?: Record<"input-number-to-numeric-input", boolean>;
421
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
422
422
  }>["baseElements"]>;
423
423
  isArticle: NonNullable<Readonly<{
424
424
  isArticle?: boolean;
@@ -447,7 +447,7 @@ declare const InteractiveGraph: {
447
447
  isMobile?: boolean;
448
448
  isMobileApp?: boolean;
449
449
  hintProgressColor?: string;
450
- flags?: Record<"input-number-to-numeric-input", boolean>;
450
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
451
451
  }>["isArticle"]>;
452
452
  isMobile: NonNullable<Readonly<{
453
453
  isArticle?: boolean;
@@ -476,7 +476,7 @@ declare const InteractiveGraph: {
476
476
  isMobile?: boolean;
477
477
  isMobileApp?: boolean;
478
478
  hintProgressColor?: string;
479
- flags?: Record<"input-number-to-numeric-input", boolean>;
479
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
480
480
  }>["isMobile"]>;
481
481
  isMobileApp: NonNullable<Readonly<{
482
482
  isArticle?: boolean;
@@ -505,7 +505,7 @@ declare const InteractiveGraph: {
505
505
  isMobile?: boolean;
506
506
  isMobileApp?: boolean;
507
507
  hintProgressColor?: string;
508
- flags?: Record<"input-number-to-numeric-input", boolean>;
508
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
509
509
  }>["isMobileApp"]>;
510
510
  editingDisabled: NonNullable<Readonly<{
511
511
  isArticle?: boolean;
@@ -534,7 +534,7 @@ declare const InteractiveGraph: {
534
534
  isMobile?: boolean;
535
535
  isMobileApp?: boolean;
536
536
  hintProgressColor?: string;
537
- flags?: Record<"input-number-to-numeric-input", boolean>;
537
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
538
538
  }>["editingDisabled"]>;
539
539
  onFocusChange: NonNullable<Readonly<{
540
540
  isArticle?: boolean;
@@ -563,7 +563,7 @@ declare const InteractiveGraph: {
563
563
  isMobile?: boolean;
564
564
  isMobileApp?: boolean;
565
565
  hintProgressColor?: string;
566
- flags?: Record<"input-number-to-numeric-input", boolean>;
566
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
567
567
  }>["onFocusChange"]>;
568
568
  readOnly: NonNullable<Readonly<{
569
569
  isArticle?: boolean;
@@ -592,7 +592,7 @@ declare const InteractiveGraph: {
592
592
  isMobile?: boolean;
593
593
  isMobileApp?: boolean;
594
594
  hintProgressColor?: string;
595
- flags?: Record<"input-number-to-numeric-input", boolean>;
595
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
596
596
  }>["readOnly"]>;
597
597
  showAlignmentOptions: NonNullable<Readonly<{
598
598
  isArticle?: boolean;
@@ -621,7 +621,7 @@ declare const InteractiveGraph: {
621
621
  isMobile?: boolean;
622
622
  isMobileApp?: boolean;
623
623
  hintProgressColor?: string;
624
- flags?: Record<"input-number-to-numeric-input", boolean>;
624
+ flags?: Record<"input-number-to-numeric-input" | "grapher-to-interactive-graph", boolean>;
625
625
  }>["showAlignmentOptions"]>;
626
626
  }>;
627
627
  keypadElement?: any;
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  import type { LockedFigureColor } from "@khanacademy/perseus-core";
3
3
  import type { StyleType } from "@khanacademy/wonder-blocks-core";
4
- type Props = {
4
+ interface Props {
5
5
  selectedValue: LockedFigureColor;
6
6
  style?: StyleType;
7
7
  onChange: (newColor: LockedFigureColor) => void;
8
- };
8
+ }
9
9
  declare const ColorSelect: (props: Props) => React.JSX.Element;
10
10
  export default ColorSelect;
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  import type { StyleType } from "@khanacademy/wonder-blocks-core";
3
3
  type StyleOptions = "solid" | "dashed";
4
- type Props = {
4
+ interface Props {
5
5
  selectedValue: StyleOptions;
6
6
  onChange: (newValue: StyleOptions) => void;
7
7
  containerStyle?: StyleType;
8
- };
8
+ }
9
9
  declare const LineStrokeSelect: (props: Props) => React.JSX.Element;
10
10
  export default LineStrokeSelect;
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  import type { StrokeWeight } from "@khanacademy/perseus-core";
3
3
  import type { StyleType } from "@khanacademy/wonder-blocks-core";
4
- type Props = {
4
+ interface Props {
5
5
  selectedValue: StrokeWeight;
6
6
  onChange: (newValue: StrokeWeight) => void;
7
7
  containerStyle?: StyleType;
8
- };
8
+ }
9
9
  declare const LineWeightSelect: (props: Props) => React.JSX.Element;
10
10
  export default LineWeightSelect;
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- type Props = {
2
+ interface Props {
3
3
  ariaLabel: string | undefined;
4
4
  /**
5
5
  * The async function that generates the prepopulated aria label
@@ -9,6 +9,6 @@ type Props = {
9
9
  onChangeProps: (props: {
10
10
  ariaLabel?: string | undefined;
11
11
  }) => void;
12
- };
12
+ }
13
13
  declare function LockedFigureAria(props: Props): React.JSX.Element;
14
14
  export default LockedFigureAria;
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import type { LockedFigureType } from "@khanacademy/perseus-core";
3
- type Props = {
3
+ interface Props {
4
4
  id: string;
5
5
  onChange: (value: LockedFigureType) => void;
6
- };
6
+ }
7
7
  declare const LockedFigureSelect: (props: Props) => React.JSX.Element;
8
8
  export default LockedFigureSelect;
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  import type { LockedFigureType } from "@khanacademy/perseus-core";
3
3
  export type LockedFigureSettingsMovementType = "back" | "backward" | "forward" | "front";
4
- type Props = {
4
+ interface Props {
5
5
  figureType: LockedFigureType;
6
6
  onMove?: (movement: LockedFigureSettingsMovementType) => void;
7
7
  onRemove: () => void;
8
- };
8
+ }
9
9
  declare const LockedFigureSettingsActions: (props: Props) => React.JSX.Element;
10
10
  export default LockedFigureSettingsActions;
@@ -13,7 +13,7 @@ import type { Props as LockedLineProps } from "./locked-line-settings";
13
13
  import type { Props as LockedPointProps } from "./locked-point-settings";
14
14
  import type { Props as LockedPolygonProps } from "./locked-polygon-settings";
15
15
  import type { Props as LockedVectorProps } from "./locked-vector-settings";
16
- export type LockedFigureSettingsCommonProps = {
16
+ export interface LockedFigureSettingsCommonProps {
17
17
  /**
18
18
  * Called when a movement button (top, up, down, bottom) is pressed.
19
19
  */
@@ -30,7 +30,7 @@ export type LockedFigureSettingsCommonProps = {
30
30
  * Called when the accordion is expanded or collapsed.
31
31
  */
32
32
  onToggle?: (expanded: boolean) => void;
33
- };
33
+ }
34
34
  type Props = LockedFigureSettingsCommonProps & (LockedPointProps | LockedLineProps | LockedEllipseProps | LockedVectorProps | LockedPolygonProps | LockedFunctionProps | LockedLabelProps);
35
35
  declare const LockedFigureSettings: (props: Props) => React.JSX.Element;
36
36
  export default LockedFigureSettings;
@@ -2,10 +2,10 @@ import * as React from "react";
2
2
  import type { Props as InteractiveGraphEditorProps } from "../interactive-graph-editor";
3
3
  import type { APIOptionsWithDefaults } from "@khanacademy/perseus";
4
4
  import type { LockedFigure } from "@khanacademy/perseus-core";
5
- type Props = {
5
+ interface Props {
6
6
  figures?: Array<LockedFigure>;
7
7
  onChange: (props: Partial<InteractiveGraphEditorProps>) => void;
8
8
  apiOptions: APIOptionsWithDefaults;
9
- };
9
+ }
10
10
  declare const LockedFiguresSection: (props: Props) => React.JSX.Element;
11
11
  export default LockedFiguresSection;
@@ -2,11 +2,11 @@
2
2
  * Controlled list of answer choices, handles adding and removing answers.
3
3
  */
4
4
  import * as React from "react";
5
- export type AnswerChoicesProps = {
5
+ export interface AnswerChoicesProps {
6
6
  choices: ReadonlyArray<string>;
7
7
  onChange: (choices: ReadonlyArray<string>) => void;
8
8
  editingDisabled: boolean;
9
- };
9
+ }
10
10
  /**
11
11
  * The list of choices, handles adding, removing and reording of answers.
12
12
  */
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import type { PreferredPopoverDirection } from "./behavior";
3
3
  import type { APIOptions } from "@khanacademy/perseus";
4
4
  import type { PerseusLabelImageWidgetOptions, LabelImageDefaultWidgetOptions } from "@khanacademy/perseus-core";
5
- type Props = {
5
+ interface Props {
6
6
  apiOptions: APIOptions;
7
7
  choices: string[];
8
8
  imageAlt: string;
@@ -14,7 +14,7 @@ type Props = {
14
14
  hideChoicesFromInstructions: boolean;
15
15
  onChange: (options: any) => void;
16
16
  preferredPopoverDirection: PreferredPopoverDirection;
17
- };
17
+ }
18
18
  /**
19
19
  * Direct image labeling widget editor.
20
20
  *
@@ -2,9 +2,9 @@
2
2
  * Controlled component for selecting the question image, for answer labeling.
3
3
  */
4
4
  import * as React from "react";
5
- export type SelectImageProps = {
5
+ export interface SelectImageProps {
6
6
  onChange: (url: string) => void;
7
7
  url: string;
8
- };
8
+ }
9
9
  declare const SelectImage: ({ onChange, url }: SelectImageProps) => React.ReactElement;
10
10
  export default SelectImage;
@@ -7,12 +7,12 @@ type Props = Omit<PerseusNumericInputWidgetOptions, "static"> & {
7
7
  onChange: (results: any) => any;
8
8
  apiOptions?: APIOptionsWithDefaults;
9
9
  };
10
- type State = {
10
+ interface State {
11
11
  lastStatus: string;
12
12
  showAnswerDetails: boolean[];
13
13
  showSettings: boolean;
14
14
  showAnswers: boolean;
15
- };
15
+ }
16
16
  /**
17
17
  * An editor for adding a numeric input widget that allows users to enter
18
18
  * numerical values with specific validation rules.
@@ -1,13 +1,9 @@
1
1
  import * as React from "react";
2
2
  interface RadioImageEditorProps {
3
- initialImageUrl: string;
4
- initialImageAltText: string;
5
- initialImageWidth?: number;
6
- initialImageHeight?: number;
7
- containerClassName?: string;
8
- onSave: (imageUrl: string, imageAltText: string, width?: number, height?: number) => void;
9
- onClose?: () => void;
10
- onDelete?: () => void;
3
+ imageUrl: string;
4
+ imageAltText: string;
5
+ onSave: (imageUrl: string, imageAltText: string) => void;
6
+ onDelete: () => void;
11
7
  }
12
- export default function RadioImageEditor({ initialImageUrl, initialImageAltText, initialImageWidth, initialImageHeight, containerClassName, onSave, onClose, onDelete, }: RadioImageEditorProps): React.ReactElement;
8
+ export default function RadioImageEditor({ imageUrl, imageAltText, onSave, onDelete, }: RadioImageEditorProps): React.ReactElement;
13
9
  export {};
@@ -1,12 +1,12 @@
1
1
  import * as React from "react";
2
- type Props = {
2
+ interface Props {
3
3
  isNoneOfTheAbove: boolean;
4
4
  content: string;
5
5
  choiceIndex: number;
6
6
  onContentChange: (choiceIndex: number, content: string) => void;
7
- };
8
- export type RadioOptionContentAndImageEditorHandle = {
7
+ }
8
+ export interface RadioOptionContentAndImageEditorHandle {
9
9
  focus: () => void;
10
- };
10
+ }
11
11
  export declare const RadioOptionContentAndImageEditor: React.ForwardRefExoticComponent<Props & React.RefAttributes<RadioOptionContentAndImageEditorHandle>>;
12
12
  export {};
@@ -3,7 +3,11 @@ interface RadioStatusPillProps {
3
3
  index: number;
4
4
  correct?: boolean;
5
5
  multipleSelect: boolean;
6
- onClick: () => void;
7
6
  }
8
- export declare function RadioStatusPill({ index, correct, multipleSelect, onClick, }: RadioStatusPillProps): React.JSX.Element;
7
+ /**
8
+ * * A read-only status indicator showing whether a choice is correct or incorrect,
9
+ * labeled with the choice letter (A, B, C...). Status is changed via the
10
+ * adjacent segmented control.
11
+ */
12
+ export declare function RadioStatusPill({ index, correct, multipleSelect, }: RadioStatusPillProps): React.JSX.Element;
9
13
  export {};
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Perseus editors",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "33.0.1",
6
+ "version": "33.0.2",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -36,35 +36,36 @@
36
36
  "mafs": "^0.19.0",
37
37
  "tiny-invariant": "1.3.1",
38
38
  "@khanacademy/kas": "2.2.3",
39
- "@khanacademy/keypad-context": "3.2.63",
40
- "@khanacademy/kmath": "2.4.21",
41
- "@khanacademy/math-input": "26.4.35",
42
- "@khanacademy/perseus": "78.0.1",
43
- "@khanacademy/perseus-core": "28.0.1",
44
- "@khanacademy/perseus-linter": "5.1.2",
45
- "@khanacademy/perseus-score": "8.11.5",
39
+ "@khanacademy/keypad-context": "3.2.64",
40
+ "@khanacademy/kmath": "2.4.22",
41
+ "@khanacademy/math-input": "26.4.36",
42
+ "@khanacademy/perseus": "78.1.0",
43
+ "@khanacademy/perseus-core": "28.1.0",
44
+ "@khanacademy/perseus-linter": "5.1.3",
45
+ "@khanacademy/perseus-score": "8.11.6",
46
46
  "@khanacademy/perseus-utils": "2.1.5"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@khanacademy/mathjax-renderer": "3.0.0",
50
- "@khanacademy/wonder-blocks-accordion": "3.1.61",
51
- "@khanacademy/wonder-blocks-banner": "5.1.2",
52
- "@khanacademy/wonder-blocks-button": "11.6.2",
53
- "@khanacademy/wonder-blocks-clickable": "8.2.1",
50
+ "@khanacademy/wonder-blocks-accordion": "3.1.63",
51
+ "@khanacademy/wonder-blocks-badge": "1.1.15",
52
+ "@khanacademy/wonder-blocks-banner": "5.1.4",
53
+ "@khanacademy/wonder-blocks-button": "11.7.1",
54
+ "@khanacademy/wonder-blocks-clickable": "8.2.3",
54
55
  "@khanacademy/wonder-blocks-core": "12.4.4",
55
- "@khanacademy/wonder-blocks-dropdown": "10.9.2",
56
- "@khanacademy/wonder-blocks-form": "7.6.2",
57
- "@khanacademy/wonder-blocks-icon": "5.3.16",
58
- "@khanacademy/wonder-blocks-icon-button": "11.3.2",
59
- "@khanacademy/wonder-blocks-labeled-field": "4.1.2",
60
- "@khanacademy/wonder-blocks-layout": "3.1.53",
61
- "@khanacademy/wonder-blocks-link": "10.3.1",
62
- "@khanacademy/wonder-blocks-pill": "3.1.65",
63
- "@khanacademy/wonder-blocks-switch": "3.4.2",
56
+ "@khanacademy/wonder-blocks-dropdown": "10.11.0",
57
+ "@khanacademy/wonder-blocks-form": "7.6.4",
58
+ "@khanacademy/wonder-blocks-icon": "5.3.17",
59
+ "@khanacademy/wonder-blocks-icon-button": "11.3.4",
60
+ "@khanacademy/wonder-blocks-labeled-field": "4.1.3",
61
+ "@khanacademy/wonder-blocks-layout": "3.1.54",
62
+ "@khanacademy/wonder-blocks-link": "10.3.3",
63
+ "@khanacademy/wonder-blocks-pill": "3.1.67",
64
+ "@khanacademy/wonder-blocks-switch": "3.4.3",
64
65
  "@khanacademy/wonder-blocks-timing": "7.1.0",
65
- "@khanacademy/wonder-blocks-tokens": "16.6.0",
66
- "@khanacademy/wonder-blocks-tooltip": "4.1.77",
67
- "@khanacademy/wonder-blocks-typography": "4.3.6",
66
+ "@khanacademy/wonder-blocks-tokens": "16.7.0",
67
+ "@khanacademy/wonder-blocks-tooltip": "4.1.79",
68
+ "@khanacademy/wonder-blocks-typography": "4.3.7",
68
69
  "@khanacademy/wonder-stuff-core": "3.0.0",
69
70
  "@phosphor-icons/core": "2.0.2",
70
71
  "aphrodite": "1.2.5",
@@ -79,24 +80,25 @@
79
80
  },
80
81
  "peerDependencies": {
81
82
  "@khanacademy/mathjax-renderer": "^3.0.0",
82
- "@khanacademy/wonder-blocks-accordion": "^3.1.61",
83
- "@khanacademy/wonder-blocks-banner": "^5.1.2",
84
- "@khanacademy/wonder-blocks-button": "^11.6.2",
85
- "@khanacademy/wonder-blocks-clickable": "^8.2.1",
83
+ "@khanacademy/wonder-blocks-accordion": "^3.1.63",
84
+ "@khanacademy/wonder-blocks-badge": "^1.1.15",
85
+ "@khanacademy/wonder-blocks-banner": "^5.1.4",
86
+ "@khanacademy/wonder-blocks-button": "^11.7.1",
87
+ "@khanacademy/wonder-blocks-clickable": "^8.2.3",
86
88
  "@khanacademy/wonder-blocks-core": "^12.4.4",
87
- "@khanacademy/wonder-blocks-dropdown": "^10.9.2",
88
- "@khanacademy/wonder-blocks-form": "^7.6.2",
89
- "@khanacademy/wonder-blocks-icon": "^5.3.16",
90
- "@khanacademy/wonder-blocks-icon-button": "^11.3.2",
91
- "@khanacademy/wonder-blocks-labeled-field": "^4.1.2",
92
- "@khanacademy/wonder-blocks-layout": "^3.1.53",
93
- "@khanacademy/wonder-blocks-link": "^10.3.1",
94
- "@khanacademy/wonder-blocks-pill": "^3.1.65",
95
- "@khanacademy/wonder-blocks-switch": "^3.4.2",
89
+ "@khanacademy/wonder-blocks-dropdown": "^10.11.0",
90
+ "@khanacademy/wonder-blocks-form": "^7.6.4",
91
+ "@khanacademy/wonder-blocks-icon": "^5.3.17",
92
+ "@khanacademy/wonder-blocks-icon-button": "^11.3.4",
93
+ "@khanacademy/wonder-blocks-labeled-field": "^4.1.3",
94
+ "@khanacademy/wonder-blocks-layout": "^3.1.54",
95
+ "@khanacademy/wonder-blocks-link": "^10.3.3",
96
+ "@khanacademy/wonder-blocks-pill": "^3.1.67",
97
+ "@khanacademy/wonder-blocks-switch": "^3.4.3",
96
98
  "@khanacademy/wonder-blocks-timing": "^7.1.0",
97
- "@khanacademy/wonder-blocks-tokens": "^16.6.0",
98
- "@khanacademy/wonder-blocks-tooltip": "^4.1.77",
99
- "@khanacademy/wonder-blocks-typography": "^4.3.6",
99
+ "@khanacademy/wonder-blocks-tokens": "^16.7.0",
100
+ "@khanacademy/wonder-blocks-tooltip": "^4.1.79",
101
+ "@khanacademy/wonder-blocks-typography": "^4.3.7",
100
102
  "@khanacademy/wonder-stuff-core": "^3.0.0",
101
103
  "@phosphor-icons/core": "^2.0.2",
102
104
  "aphrodite": "^1.2.5",
@@ -109,7 +111,7 @@
109
111
  },
110
112
  "keywords": [],
111
113
  "khan": {
112
- "catalogHash": "8d63a26474e3cbb4"
114
+ "catalogHash": "6cc1eef6c5c59c5b"
113
115
  },
114
116
  "scripts": {}
115
117
  }