@khanacademy/perseus-core 8.0.0 → 10.0.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.
Files changed (102) hide show
  1. package/dist/data-schema.d.ts +82 -84
  2. package/dist/es/index.js +67 -53
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/index.d.ts +9 -2
  5. package/dist/index.js +71 -52
  6. package/dist/index.js.map +1 -1
  7. package/dist/keypad.d.ts +1 -1
  8. package/dist/parse-perseus-json/general-purpose-parsers/defaulted.d.ts +1 -1
  9. package/dist/parse-perseus-json/general-purpose-parsers/index.d.ts +1 -1
  10. package/dist/parse-perseus-json/general-purpose-parsers/is-plain-object.d.ts +8 -0
  11. package/dist/parse-perseus-json/general-purpose-parsers/test-helpers.d.ts +5 -0
  12. package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.d.ts +13 -3
  13. package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.typetest.d.ts +1 -0
  14. package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.d.ts +12 -3
  15. package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.typetest.d.ts +1 -0
  16. package/dist/parse-perseus-json/perseus-parsers/definition-widget.d.ts +5 -3
  17. package/dist/parse-perseus-json/perseus-parsers/definition-widget.typetest.d.ts +1 -0
  18. package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.d.ts +10 -3
  19. package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.typetest.d.ts +1 -0
  20. package/dist/parse-perseus-json/perseus-parsers/explanation-widget.d.ts +7 -3
  21. package/dist/parse-perseus-json/perseus-parsers/explanation-widget.typetest.d.ts +1 -0
  22. package/dist/parse-perseus-json/perseus-parsers/expression-widget.d.ts +16 -3
  23. package/dist/parse-perseus-json/perseus-parsers/expression-widget.typetest.d.ts +1 -0
  24. package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.d.ts +15 -3
  25. package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.typetest.d.ts +1 -0
  26. package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.d.ts +14 -4
  27. package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.typetest.d.ts +1 -0
  28. package/dist/parse-perseus-json/perseus-parsers/grapher-widget.d.ts +51 -3
  29. package/dist/parse-perseus-json/perseus-parsers/grapher-widget.typetest.d.ts +1 -0
  30. package/dist/parse-perseus-json/perseus-parsers/group-widget.d.ts +1 -3
  31. package/dist/parse-perseus-json/perseus-parsers/group-widget.typetest.d.ts +1 -0
  32. package/dist/parse-perseus-json/perseus-parsers/hint.d.ts +9 -3
  33. package/dist/parse-perseus-json/perseus-parsers/hint.typetest.d.ts +1 -0
  34. package/dist/parse-perseus-json/perseus-parsers/iframe-widget.d.ts +12 -3
  35. package/dist/parse-perseus-json/perseus-parsers/iframe-widget.typetest.d.ts +1 -0
  36. package/dist/parse-perseus-json/perseus-parsers/image-widget.d.ts +22 -3
  37. package/dist/parse-perseus-json/perseus-parsers/image-widget.typetest.d.ts +1 -0
  38. package/dist/parse-perseus-json/perseus-parsers/input-number-widget.d.ts +10 -2
  39. package/dist/parse-perseus-json/perseus-parsers/input-number-widget.typetest.d.ts +1 -0
  40. package/dist/parse-perseus-json/perseus-parsers/interaction-widget.d.ts +125 -3
  41. package/dist/parse-perseus-json/perseus-parsers/interaction-widget.typetest.d.ts +1 -0
  42. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-user-input.d.ts +60 -1
  43. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.d.ts +326 -5
  44. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.typetest.d.ts +1 -0
  45. package/dist/parse-perseus-json/perseus-parsers/label-image-widget.d.ts +16 -3
  46. package/dist/parse-perseus-json/perseus-parsers/label-image-widget.typetest.d.ts +1 -0
  47. package/dist/parse-perseus-json/perseus-parsers/legacy-button-sets.d.ts +1 -2
  48. package/dist/parse-perseus-json/perseus-parsers/matcher-widget.d.ts +7 -3
  49. package/dist/parse-perseus-json/perseus-parsers/matcher-widget.typetest.d.ts +1 -0
  50. package/dist/parse-perseus-json/perseus-parsers/matrix-widget.d.ts +8 -3
  51. package/dist/parse-perseus-json/perseus-parsers/matrix-widget.typetest.d.ts +1 -0
  52. package/dist/parse-perseus-json/perseus-parsers/measurer-widget.d.ts +18 -3
  53. package/dist/parse-perseus-json/perseus-parsers/measurer-widget.typetest.d.ts +1 -0
  54. package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.d.ts +5 -3
  55. package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.typetest.d.ts +1 -0
  56. package/dist/parse-perseus-json/perseus-parsers/number-line-widget.d.ts +17 -3
  57. package/dist/parse-perseus-json/perseus-parsers/number-line-widget.typetest.d.ts +1 -0
  58. package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.d.ts +21 -4
  59. package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.typetest.d.ts +1 -0
  60. package/dist/parse-perseus-json/perseus-parsers/orderer-widget.d.ts +7 -3
  61. package/dist/parse-perseus-json/perseus-parsers/orderer-widget.typetest.d.ts +1 -0
  62. package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.d.ts +5 -3
  63. package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.typetest.d.ts +1 -0
  64. package/dist/parse-perseus-json/perseus-parsers/passage-widget.d.ts +7 -3
  65. package/dist/parse-perseus-json/perseus-parsers/passage-widget.typetest.d.ts +1 -0
  66. package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.d.ts +11 -2
  67. package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.typetest.d.ts +1 -0
  68. package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.d.ts +9 -3
  69. package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.typetest.d.ts +1 -0
  70. package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.d.ts +4 -0
  71. package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.typetest.d.ts +1 -0
  72. package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.d.ts +4 -3
  73. package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.typetest.d.ts +1 -0
  74. package/dist/parse-perseus-json/perseus-parsers/plotter-widget.d.ts +15 -3
  75. package/dist/parse-perseus-json/perseus-parsers/plotter-widget.typetest.d.ts +1 -0
  76. package/dist/parse-perseus-json/perseus-parsers/python-program-widget.d.ts +4 -3
  77. package/dist/parse-perseus-json/perseus-parsers/python-program-widget.typetest.d.ts +1 -0
  78. package/dist/parse-perseus-json/perseus-parsers/sorter-widget.d.ts +5 -3
  79. package/dist/parse-perseus-json/perseus-parsers/sorter-widget.typetest.d.ts +1 -0
  80. package/dist/parse-perseus-json/perseus-parsers/table-widget.d.ts +6 -3
  81. package/dist/parse-perseus-json/perseus-parsers/table-widget.typetest.d.ts +1 -0
  82. package/dist/parse-perseus-json/perseus-parsers/video-widget.d.ts +4 -3
  83. package/dist/parse-perseus-json/perseus-parsers/video-widget.typetest.d.ts +1 -0
  84. package/dist/types.d.ts +6 -3
  85. package/dist/utils/deep-clone.d.ts +1 -2
  86. package/dist/utils/item-has-hints.d.ts +5 -0
  87. package/dist/utils/item-has-rationales.d.ts +5 -0
  88. package/dist/utils/random-util.d.ts +1 -1
  89. package/dist/utils/split-perseus-item.d.ts +3 -3
  90. package/dist/utils/split-perseus-renderer.d.ts +7 -0
  91. package/dist/utils/test-utils.d.ts +2 -1
  92. package/dist/validation.types.d.ts +27 -27
  93. package/dist/widgets/core-widget-registry.d.ts +8 -0
  94. package/dist/widgets/group/group-util.d.ts +12 -0
  95. package/dist/widgets/input-number/input-number-util.d.ts +12 -0
  96. package/dist/widgets/logic-export.types.d.ts +3 -1
  97. package/dist/widgets/matrix/matrix-util.d.ts +1 -2
  98. package/dist/widgets/number-line/number-line-util.d.ts +1 -2
  99. package/dist/widgets/orderer/orderer-util.d.ts +2 -6
  100. package/dist/widgets/plotter/plotter-util.d.ts +1 -1
  101. package/package.json +4 -3
  102. package/dist/parse-perseus-json/general-purpose-parsers/is-object.d.ts +0 -1
@@ -1,3 +1,4 @@
1
- import type { PythonProgramWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parsePythonProgramWidget: Parser<PythonProgramWidget>;
1
+ export declare const parsePythonProgramWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"python-program", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ programID: string;
3
+ height: number;
4
+ }>>>;
@@ -1,3 +1,5 @@
1
- import type { SorterWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseSorterWidget: Parser<SorterWidget>;
1
+ export declare const parseSorterWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"sorter", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ correct: string[];
3
+ padding: boolean;
4
+ layout: "horizontal" | "vertical";
5
+ }>>>;
@@ -1,3 +1,6 @@
1
- import type { TableWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseTableWidget: Parser<TableWidget>;
1
+ export declare const parseTableWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"table", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ headers: string[];
3
+ rows: number;
4
+ columns: number;
5
+ answers: string[][];
6
+ }>>>;
@@ -1,3 +1,4 @@
1
- import type { VideoWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseVideoWidget: Parser<VideoWidget>;
1
+ export declare const parseVideoWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"video", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ location: string;
3
+ static: boolean | undefined;
4
+ }>>>;
package/dist/types.d.ts CHANGED
@@ -15,16 +15,19 @@ export type KEScore = {
15
15
  state: any;
16
16
  };
17
17
  export type MarkerType = {
18
- answers: ReadonlyArray<string>;
18
+ answers: string[];
19
19
  label: string;
20
20
  x: number;
21
21
  y: number;
22
22
  };
23
23
  export type InteractiveMarkerType = MarkerType & {
24
- selected?: ReadonlyArray<string>;
24
+ selected?: string[];
25
25
  showCorrectness?: "correct" | "incorrect";
26
26
  focused?: boolean;
27
27
  };
28
- export type Relationship = "lt" | "gt" | "le" | "ge";
28
+ export type Relationship = "eq" | "lt" | "gt" | "le" | "ge";
29
29
  export type Alignment = "default" | "block" | "inline-block" | "inline" | "float-left" | "float-right" | "full-width";
30
+ export type RecursiveReadonly<T> = {
31
+ readonly [K in keyof T]: RecursiveReadonly<T[K]>;
32
+ };
30
33
  export {};
@@ -1,3 +1,2 @@
1
- type Cloneable = null | undefined | boolean | string | number | Cloneable[] | readonly Cloneable[];
2
- declare function deepClone<T extends Cloneable>(obj: T): T;
1
+ declare function deepClone<T>(obj: T): T;
3
2
  export default deepClone;
@@ -0,0 +1,5 @@
1
+ import type { PerseusItem } from "../data-schema";
2
+ /**
3
+ * Returns true if the item has hints
4
+ */
5
+ export declare const itemHasHints: (item: PerseusItem) => boolean;
@@ -0,0 +1,5 @@
1
+ import type { PerseusItem } from "../data-schema";
2
+ /**
3
+ * Returns true if a Perseus item contains any widget with rationales.
4
+ */
5
+ export declare const itemHasRationales: (item: PerseusItem) => boolean;
@@ -1,5 +1,5 @@
1
1
  type RNG = () => number;
2
2
  export declare const seededRNG: (seed: number) => RNG;
3
- export declare function shuffle<T>(array: ReadonlyArray<T>, randomSeed: number | RNG, ensurePermuted?: boolean): ReadonlyArray<T>;
3
+ export declare function shuffle<T>(array: ReadonlyArray<T>, randomSeed: number | RNG, ensurePermuted?: boolean): T[];
4
4
  export declare const random: RNG;
5
5
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { PerseusItem } from "../data-schema";
2
2
  /**
3
- * Return a copy of a Perseus item with rubric data removed (ie answers)
3
+ * Return a copy of a PerseusItem with rubric data removed (ie answers)
4
4
  *
5
- * @param originalItem - the original, full Perseus item (which includes the rubric - aka answer data)
5
+ * @param original - the original, full PerseusItem (which includes the rubric - aka answer data)
6
6
  */
7
- export default function splitPerseusItem(originalItem: PerseusItem): PerseusItem;
7
+ export default function splitPerseusItem(original: PerseusItem): PerseusItem;
@@ -0,0 +1,7 @@
1
+ import type { PerseusRenderer } from "../data-schema";
2
+ /**
3
+ * Return a copy of a PerseusRenderer with rubric data removed (ie answers)
4
+ *
5
+ * @param original - the original, full PerseusRenderer (which includes the rubric - aka answer data)
6
+ */
7
+ export default function splitPerseusRenderer(original: PerseusRenderer): PerseusRenderer;
@@ -1,4 +1,5 @@
1
- import type { PerseusItem } from "../data-schema";
1
+ import type { PerseusItem, PerseusRenderer } from "../data-schema";
2
+ export declare function generateTestPerseusRenderer(customFields?: Partial<PerseusRenderer>): PerseusRenderer;
2
3
  /**
3
4
  * Generate a Perseus item object for testing purposes.
4
5
  *
@@ -47,27 +47,27 @@ export type ValidationResult = Extract<PerseusScore, {
47
47
  }> | null;
48
48
  export type UserInputStatus = "correct" | "incorrect" | "incomplete";
49
49
  export type PerseusCategorizerRubric = {
50
- values: ReadonlyArray<number>;
50
+ values: number[];
51
51
  } & PerseusCategorizerValidationData;
52
52
  export type PerseusCategorizerUserInput = {
53
53
  values: PerseusCategorizerRubric["values"];
54
54
  };
55
55
  export type PerseusCategorizerValidationData = {
56
- items: ReadonlyArray<string>;
56
+ items: string[];
57
57
  };
58
58
  export type PerseusCSProgramUserInput = {
59
59
  status: UserInputStatus;
60
60
  message: string | null;
61
61
  };
62
62
  export type PerseusDropdownRubric = {
63
- choices: ReadonlyArray<PerseusDropdownChoice>;
63
+ choices: Array<PerseusDropdownChoice>;
64
64
  };
65
65
  export type PerseusDropdownUserInput = {
66
66
  value: number;
67
67
  };
68
68
  export type PerseusExpressionRubric = {
69
- answerForms: ReadonlyArray<PerseusExpressionAnswerForm>;
70
- functions: ReadonlyArray<string>;
69
+ answerForms: Array<PerseusExpressionAnswerForm>;
70
+ functions: string[];
71
71
  };
72
72
  export type PerseusExpressionUserInput = string;
73
73
  export type PerseusGroupRubric = PerseusGroupWidgetOptions;
@@ -101,24 +101,24 @@ export type PerseusInteractiveGraphRubric = {
101
101
  };
102
102
  export type PerseusInteractiveGraphUserInput = PerseusGraphType;
103
103
  export type PerseusLabelImageRubric = {
104
- markers: ReadonlyArray<{
105
- answers: ReadonlyArray<string>;
104
+ markers: Array<{
105
+ answers: string[];
106
106
  label: string;
107
107
  }>;
108
108
  };
109
109
  export type PerseusLabelImageUserInput = {
110
- markers: ReadonlyArray<{
111
- selected?: ReadonlyArray<string>;
110
+ markers: Array<{
111
+ selected?: string[];
112
112
  label: string;
113
113
  }>;
114
114
  };
115
115
  export type PerseusMatcherRubric = {
116
- left: ReadonlyArray<string>;
117
- right: ReadonlyArray<string>;
116
+ left: string[];
117
+ right: string[];
118
118
  };
119
119
  export type PerseusMatcherUserInput = {
120
- left: ReadonlyArray<string>;
121
- right: ReadonlyArray<string>;
120
+ left: string[];
121
+ right: string[];
122
122
  };
123
123
  export type PerseusMatrixRubric = {
124
124
  answers: PerseusMatrixWidgetAnswers;
@@ -130,7 +130,7 @@ export type PerseusMatrixUserInput = {
130
130
  export type PerseusNumberLineRubric = {
131
131
  correctRel: string | null | undefined;
132
132
  correctX: number;
133
- range: ReadonlyArray<number>;
133
+ range: number[];
134
134
  initialX: number | null | undefined;
135
135
  isInequality: boolean;
136
136
  };
@@ -139,10 +139,10 @@ export type PerseusNumberLineUserInput = {
139
139
  numLinePosition: number;
140
140
  rel: Relationship | "eq";
141
141
  numDivisions: number;
142
- divisionRange: ReadonlyArray<number>;
142
+ divisionRange: number[];
143
143
  };
144
144
  export type PerseusNumericInputRubric = {
145
- answers: ReadonlyArray<PerseusNumericInputAnswer>;
145
+ answers: PerseusNumericInputAnswer[];
146
146
  coefficient: boolean;
147
147
  };
148
148
  export type PerseusNumericInputUserInput = {
@@ -150,32 +150,32 @@ export type PerseusNumericInputUserInput = {
150
150
  };
151
151
  export type PerseusOrdererRubric = PerseusOrdererWidgetOptions;
152
152
  export type PerseusOrdererUserInput = {
153
- current: ReadonlyArray<string>;
153
+ current: string[];
154
154
  };
155
155
  export type PerseusPlotterRubric = {
156
- correct: ReadonlyArray<number>;
156
+ correct: number[];
157
157
  } & PerseusPlotterValidationData;
158
158
  export type PerseusPlotterValidationData = {
159
- starting: ReadonlyArray<number>;
159
+ starting: number[];
160
160
  };
161
- export type PerseusPlotterUserInput = ReadonlyArray<number>;
161
+ export type PerseusPlotterUserInput = number[];
162
162
  export type PerseusRadioRubric = {
163
- choices: ReadonlyArray<PerseusRadioChoice>;
163
+ choices: PerseusRadioChoice[];
164
164
  };
165
165
  export type PerseusRadioUserInput = {
166
- choicesSelected: ReadonlyArray<boolean>;
166
+ choicesSelected: boolean[];
167
167
  };
168
168
  export type PerseusSorterRubric = {
169
- correct: ReadonlyArray<string>;
169
+ correct: string[];
170
170
  };
171
171
  export type PerseusSorterUserInput = {
172
- options: ReadonlyArray<string>;
172
+ options: string[];
173
173
  changed: boolean;
174
174
  };
175
175
  export type PerseusTableRubric = {
176
- answers: ReadonlyArray<ReadonlyArray<string>>;
176
+ answers: string[][];
177
177
  };
178
- export type PerseusTableUserInput = ReadonlyArray<ReadonlyArray<string>>;
178
+ export type PerseusTableUserInput = string[][];
179
179
  export interface RubricRegistry {
180
180
  categorizer: PerseusCategorizerRubric;
181
181
  dropdown: PerseusDropdownRubric;
@@ -251,7 +251,7 @@ export type UserInputMap = MakeWidgetMap<UserInputRegistry>;
251
251
  /**
252
252
  * deprecated prefer using UserInputMap
253
253
  */
254
- export type UserInputArray = ReadonlyArray<UserInputArray | UserInput | null | undefined>;
254
+ export type UserInputArray = Array<UserInputArray | UserInput | null | undefined>;
255
255
  export interface ValidationDataTypes {
256
256
  categorizer: PerseusCategorizerValidationData;
257
257
  group: PerseusGroupValidationData;
@@ -28,3 +28,11 @@ export declare const getSupportedAlignments: (type: string) => ReadonlyArray<Ali
28
28
  * the exports of a widget's module.
29
29
  */
30
30
  export declare const getDefaultAlignment: (type: string) => Alignment;
31
+ /**
32
+ * We use a function here rather than registering widgets
33
+ * at the top-level of the file to avoid circular dependencies.
34
+ * Logic that needs core widget functionality
35
+ * (like a prod or in tests)
36
+ * need to call this function before trying to use that logic.
37
+ */
38
+ export declare function registerCoreWidgets(): void;
@@ -0,0 +1,12 @@
1
+ import type { PerseusGroupWidgetOptions, PerseusRenderer } from "../../data-schema";
2
+ /**
3
+ * For details on the individual options, see the
4
+ * PerseusGroupWidgetOptions type
5
+ */
6
+ export type GroupPublicWidgetOptions = PerseusRenderer;
7
+ /**
8
+ * Given a PerseusGroupWidgetOptions object, return a new object with only
9
+ * the public options that should be exposed to the client.
10
+ */
11
+ declare function getGroupPublicWidgetOptions(options: PerseusGroupWidgetOptions): GroupPublicWidgetOptions;
12
+ export default getGroupPublicWidgetOptions;
@@ -0,0 +1,12 @@
1
+ import type { PerseusInputNumberWidgetOptions } from "../../data-schema";
2
+ /**
3
+ * For details on the individual options, see the
4
+ * PerseusInputNumberWidgetOptions type
5
+ */
6
+ type InputNumberPublicWidgetOptions = Pick<PerseusInputNumberWidgetOptions, "answerType" | "inexact" | "maxError" | "rightAlign" | "simplify" | "size" | "customKeypad">;
7
+ /**
8
+ * Given a PerseusInputNumberWidgetOptions object, return a new object with only
9
+ * the public options that should be exposed to the client.
10
+ */
11
+ declare function getInputNumberPublicWidgetOptions(options: PerseusInputNumberWidgetOptions): InputNumberPublicWidgetOptions;
12
+ export default getInputNumberPublicWidgetOptions;
@@ -3,7 +3,9 @@ import type getCSProgramPublicWidgetOptions from "./cs-program/cs-program-util";
3
3
  import type getDropdownPublicWidgetOptions from "./dropdown/dropdown-util";
4
4
  import type getExpressionPublicWidgetOptions from "./expression/expression-util";
5
5
  import type getGrapherPublicWidgetOptions from "./grapher/grapher-util";
6
+ import type getGroupPublicWidgetOptions from "./group/group-util";
6
7
  import type getIFramePublicWidgetOptions from "./iframe/iframe-util";
8
+ import type getInputNumberPublicWidgetOptions from "./input-number/input-number-util";
7
9
  import type getInteractiveGraphPublicWidgetOptions from "./interactive-graph/interactive-graph-util";
8
10
  import type getLabelImagePublicWidgetOptions from "./label-image/label-image-util";
9
11
  import type getMatcherPublicWidgetOptions from "./matcher/matcher-util";
@@ -26,7 +28,7 @@ export type WidgetOptionsUpgradeMap = {
26
28
  * TODO(LEMS-2870): figure out how to make this generic so we don't need to be
27
29
  * so reliant on a set group of widgets
28
30
  */
29
- export type PublicWidgetOptionsFunction = typeof getMatcherPublicWidgetOptions | typeof getPlotterPublicWidgetOptions | typeof getIFramePublicWidgetOptions | typeof getRadioPublicWidgetOptions | typeof getNumericInputPublicWidgetOptions | typeof getDropdownPublicWidgetOptions | typeof getCategorizerPublicWidgetOptions | typeof getOrdererPublicWidgetOptions | typeof getExpressionPublicWidgetOptions | typeof getInteractiveGraphPublicWidgetOptions | typeof getLabelImagePublicWidgetOptions | typeof getSorterPublicWidgetOptions | typeof getCSProgramPublicWidgetOptions | typeof getNumberLinePublicWidgetOptions | typeof getTablePublicWidgetOptions | typeof getGrapherPublicWidgetOptions | typeof getMatrixPublicWidgetOptions;
31
+ export type PublicWidgetOptionsFunction = typeof getCategorizerPublicWidgetOptions | typeof getCSProgramPublicWidgetOptions | typeof getDropdownPublicWidgetOptions | typeof getExpressionPublicWidgetOptions | typeof getGrapherPublicWidgetOptions | typeof getGroupPublicWidgetOptions | typeof getIFramePublicWidgetOptions | typeof getInputNumberPublicWidgetOptions | typeof getInteractiveGraphPublicWidgetOptions | typeof getLabelImagePublicWidgetOptions | typeof getMatcherPublicWidgetOptions | typeof getMatrixPublicWidgetOptions | typeof getNumberLinePublicWidgetOptions | typeof getNumericInputPublicWidgetOptions | typeof getOrdererPublicWidgetOptions | typeof getPlotterPublicWidgetOptions | typeof getRadioPublicWidgetOptions | typeof getSorterPublicWidgetOptions | typeof getTablePublicWidgetOptions;
30
32
  export type WidgetLogic = {
31
33
  name: string;
32
34
  version?: Version;
@@ -1,4 +1,3 @@
1
1
  import type { PerseusMatrixWidgetOptions } from "../../data-schema";
2
- type MatrixPublicWidgetOptions = Pick<PerseusMatrixWidgetOptions, "prefix" | "suffix" | "cursorPosition" | "matrixBoardSize" | "static">;
2
+ export type MatrixPublicWidgetOptions = Pick<PerseusMatrixWidgetOptions, "prefix" | "suffix" | "cursorPosition" | "matrixBoardSize" | "static">;
3
3
  export default function getMatrixPublicWidgetOptions(options: PerseusMatrixWidgetOptions): MatrixPublicWidgetOptions;
4
- export {};
@@ -1,4 +1,3 @@
1
1
  import type { PerseusNumberLineWidgetOptions } from "../../data-schema";
2
- type NumberLinePublicWidgetOptions = Pick<PerseusNumberLineWidgetOptions, "range" | "labelRange" | "labelStyle" | "labelTicks" | "isTickCtrl" | "divisionRange" | "numDivisions" | "snapDivisions" | "tickStep" | "initialX" | "showTooltips" | "static">;
2
+ export type NumberLinePublicWidgetOptions = Pick<PerseusNumberLineWidgetOptions, "range" | "labelRange" | "labelStyle" | "labelTicks" | "isTickCtrl" | "isInequality" | "divisionRange" | "numDivisions" | "snapDivisions" | "tickStep" | "initialX" | "showTooltips" | "static">;
3
3
  export default function getNumberLinePublicWidgetOptions(options: PerseusNumberLineWidgetOptions): NumberLinePublicWidgetOptions;
4
- export {};
@@ -3,14 +3,10 @@ import type { PerseusOrdererWidgetOptions } from "../../data-schema";
3
3
  * For details on the individual options, see the
4
4
  * PerseusOrdererWidgetOptions type
5
5
  */
6
- type OrdererPublicWidgetOptions = {
7
- options: PerseusOrdererWidgetOptions["options"];
8
- height: PerseusOrdererWidgetOptions["height"];
9
- layout: PerseusOrdererWidgetOptions["layout"];
10
- };
6
+ export type OrdererPublicWidgetOptions = Pick<PerseusOrdererWidgetOptions, "options" | "height" | "layout">;
11
7
  /**
12
8
  * Given a PerseusOrdererWidgetOptions object, return a new object with only
13
9
  * the public options that should be exposed to the client.
14
10
  */
15
- declare function getOrdererPublicWidgetOptions(options: PerseusOrdererWidgetOptions): OrdererPublicWidgetOptions;
11
+ declare function getOrdererPublicWidgetOptions(fullOptions: PerseusOrdererWidgetOptions): OrdererPublicWidgetOptions;
16
12
  export default getOrdererPublicWidgetOptions;
@@ -3,7 +3,7 @@ import type { PerseusPlotterWidgetOptions } from "../../data-schema";
3
3
  * For details on the individual options, see the
4
4
  * PerseusPlotterWidgetOptions type
5
5
  */
6
- type PlotterPublicWidgetOptions = Omit<PerseusPlotterWidgetOptions, "correct">;
6
+ export type PlotterPublicWidgetOptions = Omit<PerseusPlotterWidgetOptions, "correct">;
7
7
  /**
8
8
  * Given a PerseusPlotterWidgetOptions object, return a new object with only
9
9
  * the public options that should be exposed to the client.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Shared Perseus infrastructure",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "8.0.0",
6
+ "version": "10.0.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -22,8 +22,9 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@khanacademy/kas": "2.0.2",
26
- "@khanacademy/perseus-utils": "2.0.1"
25
+ "tiny-invariant": "^1.3.1",
26
+ "@khanacademy/kas": "2.0.3",
27
+ "@khanacademy/perseus-utils": "2.0.2"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@khanacademy/wonder-stuff-core": "1.5.4",
@@ -1 +0,0 @@
1
- export declare function isObject(x: unknown): x is Record<keyof any, unknown>;