@khanacademy/perseus-core 9.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 (99) hide show
  1. package/dist/data-schema.d.ts +20 -22
  2. package/dist/es/index.js +66 -52
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/index.d.ts +8 -1
  5. package/dist/index.js +70 -51
  6. package/dist/index.js.map +1 -1
  7. package/dist/parse-perseus-json/general-purpose-parsers/defaulted.d.ts +1 -1
  8. package/dist/parse-perseus-json/general-purpose-parsers/index.d.ts +1 -1
  9. package/dist/parse-perseus-json/general-purpose-parsers/is-plain-object.d.ts +8 -0
  10. package/dist/parse-perseus-json/general-purpose-parsers/test-helpers.d.ts +5 -0
  11. package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.d.ts +13 -3
  12. package/dist/parse-perseus-json/perseus-parsers/categorizer-widget.typetest.d.ts +1 -0
  13. package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.d.ts +12 -3
  14. package/dist/parse-perseus-json/perseus-parsers/cs-program-widget.typetest.d.ts +1 -0
  15. package/dist/parse-perseus-json/perseus-parsers/definition-widget.d.ts +5 -3
  16. package/dist/parse-perseus-json/perseus-parsers/definition-widget.typetest.d.ts +1 -0
  17. package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.d.ts +10 -3
  18. package/dist/parse-perseus-json/perseus-parsers/dropdown-widget.typetest.d.ts +1 -0
  19. package/dist/parse-perseus-json/perseus-parsers/explanation-widget.d.ts +7 -3
  20. package/dist/parse-perseus-json/perseus-parsers/explanation-widget.typetest.d.ts +1 -0
  21. package/dist/parse-perseus-json/perseus-parsers/expression-widget.d.ts +16 -3
  22. package/dist/parse-perseus-json/perseus-parsers/expression-widget.typetest.d.ts +1 -0
  23. package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.d.ts +15 -3
  24. package/dist/parse-perseus-json/perseus-parsers/graded-group-set-widget.typetest.d.ts +1 -0
  25. package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.d.ts +14 -4
  26. package/dist/parse-perseus-json/perseus-parsers/graded-group-widget.typetest.d.ts +1 -0
  27. package/dist/parse-perseus-json/perseus-parsers/grapher-widget.d.ts +51 -3
  28. package/dist/parse-perseus-json/perseus-parsers/grapher-widget.typetest.d.ts +1 -0
  29. package/dist/parse-perseus-json/perseus-parsers/group-widget.d.ts +1 -3
  30. package/dist/parse-perseus-json/perseus-parsers/group-widget.typetest.d.ts +1 -0
  31. package/dist/parse-perseus-json/perseus-parsers/hint.d.ts +9 -3
  32. package/dist/parse-perseus-json/perseus-parsers/hint.typetest.d.ts +1 -0
  33. package/dist/parse-perseus-json/perseus-parsers/iframe-widget.d.ts +12 -3
  34. package/dist/parse-perseus-json/perseus-parsers/iframe-widget.typetest.d.ts +1 -0
  35. package/dist/parse-perseus-json/perseus-parsers/image-widget.d.ts +22 -3
  36. package/dist/parse-perseus-json/perseus-parsers/image-widget.typetest.d.ts +1 -0
  37. package/dist/parse-perseus-json/perseus-parsers/input-number-widget.d.ts +10 -2
  38. package/dist/parse-perseus-json/perseus-parsers/input-number-widget.typetest.d.ts +1 -0
  39. package/dist/parse-perseus-json/perseus-parsers/interaction-widget.d.ts +125 -3
  40. package/dist/parse-perseus-json/perseus-parsers/interaction-widget.typetest.d.ts +1 -0
  41. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-user-input.d.ts +60 -1
  42. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.d.ts +326 -5
  43. package/dist/parse-perseus-json/perseus-parsers/interactive-graph-widget.typetest.d.ts +1 -0
  44. package/dist/parse-perseus-json/perseus-parsers/label-image-widget.d.ts +16 -3
  45. package/dist/parse-perseus-json/perseus-parsers/label-image-widget.typetest.d.ts +1 -0
  46. package/dist/parse-perseus-json/perseus-parsers/legacy-button-sets.d.ts +1 -3
  47. package/dist/parse-perseus-json/perseus-parsers/matcher-widget.d.ts +7 -3
  48. package/dist/parse-perseus-json/perseus-parsers/matcher-widget.typetest.d.ts +1 -0
  49. package/dist/parse-perseus-json/perseus-parsers/matrix-widget.d.ts +8 -3
  50. package/dist/parse-perseus-json/perseus-parsers/matrix-widget.typetest.d.ts +1 -0
  51. package/dist/parse-perseus-json/perseus-parsers/measurer-widget.d.ts +18 -3
  52. package/dist/parse-perseus-json/perseus-parsers/measurer-widget.typetest.d.ts +1 -0
  53. package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.d.ts +5 -3
  54. package/dist/parse-perseus-json/perseus-parsers/molecule-renderer-widget.typetest.d.ts +1 -0
  55. package/dist/parse-perseus-json/perseus-parsers/number-line-widget.d.ts +17 -3
  56. package/dist/parse-perseus-json/perseus-parsers/number-line-widget.typetest.d.ts +1 -0
  57. package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.d.ts +21 -4
  58. package/dist/parse-perseus-json/perseus-parsers/numeric-input-widget.typetest.d.ts +1 -0
  59. package/dist/parse-perseus-json/perseus-parsers/orderer-widget.d.ts +7 -3
  60. package/dist/parse-perseus-json/perseus-parsers/orderer-widget.typetest.d.ts +1 -0
  61. package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.d.ts +5 -3
  62. package/dist/parse-perseus-json/perseus-parsers/passage-ref-widget.typetest.d.ts +1 -0
  63. package/dist/parse-perseus-json/perseus-parsers/passage-widget.d.ts +7 -3
  64. package/dist/parse-perseus-json/perseus-parsers/passage-widget.typetest.d.ts +1 -0
  65. package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.d.ts +11 -2
  66. package/dist/parse-perseus-json/perseus-parsers/perseus-answer-area.typetest.d.ts +1 -0
  67. package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.d.ts +9 -3
  68. package/dist/parse-perseus-json/perseus-parsers/perseus-image-background.typetest.d.ts +1 -0
  69. package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.d.ts +4 -0
  70. package/dist/parse-perseus-json/perseus-parsers/perseus-image-detail.typetest.d.ts +1 -0
  71. package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.d.ts +4 -3
  72. package/dist/parse-perseus-json/perseus-parsers/phet-simulation-widget.typetest.d.ts +1 -0
  73. package/dist/parse-perseus-json/perseus-parsers/plotter-widget.d.ts +15 -3
  74. package/dist/parse-perseus-json/perseus-parsers/plotter-widget.typetest.d.ts +1 -0
  75. package/dist/parse-perseus-json/perseus-parsers/python-program-widget.d.ts +4 -3
  76. package/dist/parse-perseus-json/perseus-parsers/python-program-widget.typetest.d.ts +1 -0
  77. package/dist/parse-perseus-json/perseus-parsers/sorter-widget.d.ts +5 -3
  78. package/dist/parse-perseus-json/perseus-parsers/sorter-widget.typetest.d.ts +1 -0
  79. package/dist/parse-perseus-json/perseus-parsers/table-widget.d.ts +6 -3
  80. package/dist/parse-perseus-json/perseus-parsers/table-widget.typetest.d.ts +1 -0
  81. package/dist/parse-perseus-json/perseus-parsers/video-widget.d.ts +4 -3
  82. package/dist/parse-perseus-json/perseus-parsers/video-widget.typetest.d.ts +1 -0
  83. package/dist/types.d.ts +1 -1
  84. package/dist/utils/deep-clone.d.ts +1 -2
  85. package/dist/utils/item-has-hints.d.ts +5 -0
  86. package/dist/utils/item-has-rationales.d.ts +5 -0
  87. package/dist/utils/split-perseus-item.d.ts +3 -3
  88. package/dist/utils/split-perseus-renderer.d.ts +7 -0
  89. package/dist/utils/test-utils.d.ts +2 -1
  90. package/dist/widgets/core-widget-registry.d.ts +8 -0
  91. package/dist/widgets/group/group-util.d.ts +12 -0
  92. package/dist/widgets/input-number/input-number-util.d.ts +12 -0
  93. package/dist/widgets/logic-export.types.d.ts +3 -1
  94. package/dist/widgets/matrix/matrix-util.d.ts +1 -2
  95. package/dist/widgets/number-line/number-line-util.d.ts +1 -2
  96. package/dist/widgets/orderer/orderer-util.d.ts +2 -6
  97. package/dist/widgets/plotter/plotter-util.d.ts +1 -1
  98. package/package.json +4 -3
  99. package/dist/parse-perseus-json/general-purpose-parsers/is-object.d.ts +0 -1
@@ -1,2 +1,2 @@
1
1
  import type { Parser } from "../parser-types";
2
- export declare function defaulted<T, Default>(parser: Parser<T>, fallback: (missingValue: null | undefined) => Default): Parser<T | Default>;
2
+ export declare function defaulted<T>(parser: Parser<T>, fallback: (missingValue: null | undefined) => NoInfer<T>): Parser<T>;
@@ -3,7 +3,7 @@ export * from "./array";
3
3
  export * from "./boolean";
4
4
  export * from "./constant";
5
5
  export * from "./enumeration";
6
- export * from "./is-object";
6
+ export * from "./is-plain-object";
7
7
  export * from "./nullable";
8
8
  export * from "./number";
9
9
  export * from "./object";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks whether a value is a plain JS object (e.g. one constructed with `{}`
3
+ * literal syntax or `Object.create(null)`. Returns true given a plain object
4
+ * from another realm.
5
+ *
6
+ * @param x - the value to check for objectiness
7
+ */
8
+ export declare function isPlainObject(x: unknown): x is Record<keyof any, unknown>;
@@ -7,3 +7,8 @@ export declare const anySuccess: import("../result").Success<any>;
7
7
  export declare function parseFailureWith(expected: Partial<Mismatch>): Failure<Mismatch[]>;
8
8
  export declare function summonParsedValue<P extends Parser<any>>(): ParsedValue<P>;
9
9
  export declare function summon<T>(): T;
10
+ export type RecursiveRequired<T> = T extends object ? RecursiveRequiredObject<T> : T;
11
+ type RecursiveRequiredObject<T extends object> = {
12
+ [K in keyof T]-?: RecursiveRequired<T[K]>;
13
+ };
14
+ export {};
@@ -1,3 +1,13 @@
1
- import type { CategorizerWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseCategorizerWidget: Parser<CategorizerWidget>;
1
+ export declare const parseCategorizerWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"categorizer", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ items: string[];
3
+ categories: string[];
4
+ randomizeItems: boolean;
5
+ static: boolean;
6
+ values: number[];
7
+ highlightLint: boolean | undefined;
8
+ linterContext: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
9
+ contentType: string;
10
+ paths: string[];
11
+ stack: string[];
12
+ }> | undefined;
13
+ }>>>;
@@ -1,3 +1,12 @@
1
- import type { CSProgramWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseCSProgramWidget: Parser<CSProgramWidget>;
1
+ export declare const parseCSProgramWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"cs-program", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ programID: string;
3
+ programType: any;
4
+ settings: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
5
+ name: string;
6
+ value: string;
7
+ }>[];
8
+ showEditor: boolean;
9
+ showButtons: boolean;
10
+ height: number;
11
+ static: boolean;
12
+ }>>>;
@@ -1,3 +1,5 @@
1
- import type { DefinitionWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseDefinitionWidget: Parser<DefinitionWidget>;
1
+ export declare const parseDefinitionWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"definition", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ togglePrompt: string;
3
+ definition: string;
4
+ static: boolean;
5
+ }>>>;
@@ -1,3 +1,10 @@
1
- import type { DropdownWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseDropdownWidget: Parser<DropdownWidget>;
1
+ export declare const parseDropdownWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"dropdown", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ placeholder: string;
3
+ ariaLabel: string | undefined;
4
+ visibleLabel: string | undefined;
5
+ static: boolean;
6
+ choices: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
7
+ content: string;
8
+ correct: boolean;
9
+ }>[];
10
+ }>>>;
@@ -1,3 +1,7 @@
1
- import type { ExplanationWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseExplanationWidget: Parser<ExplanationWidget>;
1
+ export declare const parseExplanationWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"explanation", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ showPrompt: string;
3
+ hidePrompt: string;
4
+ explanation: string;
5
+ widgets: import("../..").MakeWidgetMap<import("../..").PerseusWidgetTypes>;
6
+ static: boolean;
7
+ }>>>;
@@ -1,3 +1,16 @@
1
- import type { ExpressionWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseExpressionWidget: Parser<ExpressionWidget>;
1
+ export declare const parseExpressionWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"expression", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ answerForms: {
3
+ value: string;
4
+ form: boolean;
5
+ simplify: boolean;
6
+ considered: "correct" | "wrong" | "ungraded";
7
+ key?: string | undefined;
8
+ }[];
9
+ functions: string[];
10
+ times: boolean;
11
+ visibleLabel: string | undefined;
12
+ ariaLabel: string | undefined;
13
+ buttonSets: ("basic" | "basic+div" | "trig" | "prealgebra" | "logarithms" | "basic relations" | "advanced relations" | "scientific")[];
14
+ buttonsVisible: "always" | "never" | "focused" | undefined;
15
+ extraKeys: ("PLUS" | "MINUS" | "NEGATIVE" | "TIMES" | "DIVIDE" | "DECIMAL" | "PERIOD" | "PERCENT" | "CDOT" | "EQUAL" | "NEQ" | "GT" | "LT" | "GEQ" | "LEQ" | "FRAC_INCLUSIVE" | "FRAC_EXCLUSIVE" | "FRAC" | "EXP" | "EXP_2" | "EXP_3" | "SQRT" | "CUBE_ROOT" | "RADICAL" | "LEFT_PAREN" | "RIGHT_PAREN" | "LN" | "LOG" | "LOG_N" | "SIN" | "COS" | "TAN" | "PI" | "THETA" | "UP" | "RIGHT" | "DOWN" | "LEFT" | "BACKSPACE" | "DISMISS" | "JUMP_OUT_PARENTHESES" | "JUMP_OUT_EXPONENT" | "JUMP_OUT_BASE" | "JUMP_INTO_NUMERATOR" | "JUMP_OUT_NUMERATOR" | "JUMP_OUT_DENOMINATOR" | "NUM_0" | "NUM_1" | "NUM_2" | "NUM_3" | "NUM_4" | "NUM_5" | "NUM_6" | "NUM_7" | "NUM_8" | "NUM_9" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z")[] | undefined;
16
+ }>>>;
@@ -1,3 +1,15 @@
1
- import type { GradedGroupSetWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseGradedGroupSetWidget: Parser<GradedGroupSetWidget>;
1
+ export declare const parseGradedGroupSetWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"graded-group-set", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ gradedGroups: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
3
+ title: string;
4
+ hasHint: boolean | null | undefined;
5
+ hint: import("../..").PerseusRenderer | null | undefined;
6
+ content: string;
7
+ widgets: import("../..").MakeWidgetMap<import("../..").PerseusWidgetTypes>;
8
+ widgetEnabled: boolean | null | undefined;
9
+ immutableWidgets: boolean | null | undefined;
10
+ images: Record<string, import("../general-purpose-parsers/object-types").OptionalizeProperties<{
11
+ width: number;
12
+ height: number;
13
+ }>>;
14
+ }>[];
15
+ }>>>;
@@ -1,6 +1,4 @@
1
- import type { GradedGroupWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseGradedGroupWidgetOptions: Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
1
+ export declare const parseGradedGroupWidgetOptions: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
4
2
  title: string;
5
3
  hasHint: boolean | null | undefined;
6
4
  hint: import("../..").PerseusRenderer | null | undefined;
@@ -13,4 +11,16 @@ export declare const parseGradedGroupWidgetOptions: Parser<import("../general-pu
13
11
  height: number;
14
12
  }>>;
15
13
  }>>;
16
- export declare const parseGradedGroupWidget: Parser<GradedGroupWidget>;
14
+ export declare const parseGradedGroupWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"graded-group", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
15
+ title: string;
16
+ hasHint: boolean | null | undefined;
17
+ hint: import("../..").PerseusRenderer | null | undefined;
18
+ content: string;
19
+ widgets: import("../..").MakeWidgetMap<import("../..").PerseusWidgetTypes>;
20
+ widgetEnabled: boolean | null | undefined;
21
+ immutableWidgets: boolean | null | undefined;
22
+ images: Record<string, import("../general-purpose-parsers/object-types").OptionalizeProperties<{
23
+ width: number;
24
+ height: number;
25
+ }>>;
26
+ }>>>;
@@ -1,3 +1,51 @@
1
- import type { GrapherWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseGrapherWidget: Parser<GrapherWidget>;
1
+ export declare const parseGrapherWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"grapher", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ availableTypes: ("absolute_value" | "exponential" | "linear" | "logarithm" | "quadratic" | "sinusoid" | "tangent")[];
3
+ correct: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
4
+ type: "absolute_value";
5
+ coords: [[number, number], [number, number]] | null;
6
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
7
+ type: "exponential";
8
+ asymptote: [[number, number], [number, number]];
9
+ coords: [[number, number], [number, number]] | null;
10
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
11
+ type: "linear";
12
+ coords: [[number, number], [number, number]] | null;
13
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
14
+ type: "logarithm";
15
+ asymptote: [[number, number], [number, number]];
16
+ coords: [[number, number], [number, number]] | null;
17
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
18
+ type: "quadratic";
19
+ coords: [[number, number], [number, number]] | null;
20
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
21
+ type: "sinusoid";
22
+ coords: [[number, number], [number, number]] | null;
23
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
24
+ type: "tangent";
25
+ coords: [[number, number], [number, number]] | null;
26
+ }>;
27
+ graph: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
28
+ backgroundImage: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
29
+ bottom: number | undefined;
30
+ height: number | undefined;
31
+ left: number | undefined;
32
+ scale: number | undefined;
33
+ url: string | null | undefined;
34
+ width: number | undefined;
35
+ }>;
36
+ box: [number, number] | undefined;
37
+ editableSettings: ("image" | "graph" | "snap" | "measure")[] | undefined;
38
+ gridStep: [number, number] | undefined;
39
+ labels: [string, string];
40
+ markings: "none" | "axes" | "graph" | "grid";
41
+ range: [[number, number], [number, number]];
42
+ rulerLabel: "";
43
+ rulerTicks: number;
44
+ showProtractor: boolean | undefined;
45
+ showRuler: boolean | undefined;
46
+ showTooltips: boolean | undefined;
47
+ snapStep: [number, number] | undefined;
48
+ step: [number, number];
49
+ valid: string | boolean | undefined;
50
+ }>;
51
+ }>>>;
@@ -1,3 +1 @@
1
- import type { GroupWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseGroupWidget: Parser<GroupWidget>;
1
+ export declare const parseGroupWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"group", import("../..").PerseusRenderer>>;
@@ -1,3 +1,9 @@
1
- import type { Hint } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseHint: Parser<Hint>;
1
+ export declare const parseHint: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ replace: boolean | undefined;
3
+ content: string;
4
+ widgets: import("../..").MakeWidgetMap<import("../..").PerseusWidgetTypes>;
5
+ images: {
6
+ [key: string]: import("../..").PerseusImageDetail;
7
+ };
8
+ metadata: any;
9
+ }>>;
@@ -1,3 +1,12 @@
1
- import type { IFrameWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseIframeWidget: Parser<IFrameWidget>;
1
+ export declare const parseIframeWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"iframe", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ url: string;
3
+ settings: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
4
+ name: string;
5
+ value: string;
6
+ }>[] | undefined;
7
+ width: string | number;
8
+ height: string | number;
9
+ allowFullScreen: boolean;
10
+ allowTopNavigation: boolean | undefined;
11
+ static: boolean;
12
+ }>>>;
@@ -1,3 +1,22 @@
1
- import type { ImageWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseImageWidget: Parser<ImageWidget>;
1
+ export declare const parseImageWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"image", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ title: string | undefined;
3
+ caption: string | undefined;
4
+ alt: string | undefined;
5
+ backgroundImage: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
6
+ url: string | null | undefined;
7
+ width: number | undefined;
8
+ height: number | undefined;
9
+ top: number | undefined;
10
+ left: number | undefined;
11
+ bottom: number | undefined;
12
+ scale: number | undefined;
13
+ }>;
14
+ static: boolean | undefined;
15
+ labels: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
16
+ content: string;
17
+ alignment: string;
18
+ coordinates: number[];
19
+ }>[] | undefined;
20
+ range: [[number, number], [number, number]] | undefined;
21
+ box: [number, number] | undefined;
22
+ }>>>;
@@ -1,3 +1,11 @@
1
- import type { InputNumberWidget } from "../../data-schema";
2
1
  import type { Parser } from "../parser-types";
3
- export declare const parseInputNumberWidget: Parser<InputNumberWidget>;
2
+ export declare const parseInputNumberWidget: Parser<import("../..").WidgetOptions<"input-number", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
3
+ answerType: "number" | "integer" | "mixed" | "improper" | "decimal" | "percent" | "pi" | "rational" | undefined;
4
+ inexact: boolean | undefined;
5
+ maxError: string | number | undefined;
6
+ rightAlign: boolean | undefined;
7
+ simplify: "required" | "enforced" | "optional";
8
+ size: "small" | "normal";
9
+ value: string | number;
10
+ customKeypad: boolean | undefined;
11
+ }>>>;
@@ -1,3 +1,125 @@
1
- import type { InteractionWidget } from "../../data-schema";
2
- import type { Parser } from "../parser-types";
3
- export declare const parseInteractionWidget: Parser<InteractionWidget>;
1
+ export declare const parseInteractionWidget: import("../parser-types").Parser<import("../..").WidgetOptions<"interaction", import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ static: boolean;
3
+ graph: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
4
+ editableSettings: ("graph" | "canvas")[] | undefined;
5
+ box: [number, number];
6
+ labels: string[];
7
+ range: [[number, number], [number, number]];
8
+ gridStep: [number, number];
9
+ markings: "none" | "axes" | "graph" | "grid";
10
+ snapStep: [number, number] | undefined;
11
+ valid: string | boolean | undefined;
12
+ backgroundImage: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
13
+ url: string | null | undefined;
14
+ width: number | undefined;
15
+ height: number | undefined;
16
+ top: number | undefined;
17
+ left: number | undefined;
18
+ bottom: number | undefined;
19
+ scale: number | undefined;
20
+ }> | undefined;
21
+ showProtractor: boolean | undefined;
22
+ showRuler: boolean | undefined;
23
+ rulerLabel: string | undefined;
24
+ rulerTicks: number | undefined;
25
+ tickStep: [number, number];
26
+ }>;
27
+ elements: (import("../general-purpose-parsers/object-types").OptionalizeProperties<{
28
+ type: "function";
29
+ key: string;
30
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
31
+ value: string;
32
+ funcName: string;
33
+ rangeMin: string;
34
+ rangeMax: string;
35
+ color: string;
36
+ strokeDasharray: string;
37
+ strokeWidth: number;
38
+ }>;
39
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
40
+ type: "label";
41
+ key: string;
42
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
43
+ label: string;
44
+ color: string;
45
+ coordX: string;
46
+ coordY: string;
47
+ }>;
48
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
49
+ type: "line";
50
+ key: string;
51
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
52
+ color: string;
53
+ startX: string;
54
+ startY: string;
55
+ endX: string;
56
+ endY: string;
57
+ strokeDasharray: string;
58
+ strokeWidth: number;
59
+ arrows: string;
60
+ }>;
61
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
62
+ type: "movable-line";
63
+ key: string;
64
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
65
+ startX: string;
66
+ startY: string;
67
+ startSubscript: number;
68
+ endX: string;
69
+ endY: string;
70
+ endSubscript: number;
71
+ constraint: string;
72
+ snap: number;
73
+ constraintFn: string;
74
+ constraintXMin: string;
75
+ constraintXMax: string;
76
+ constraintYMin: string;
77
+ constraintYMax: string;
78
+ }>;
79
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
80
+ type: "movable-point";
81
+ key: string;
82
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
83
+ startX: string;
84
+ startY: string;
85
+ varSubscript: number;
86
+ constraint: string;
87
+ snap: number;
88
+ constraintFn: string;
89
+ constraintXMin: string;
90
+ constraintXMax: string;
91
+ constraintYMin: string;
92
+ constraintYMax: string;
93
+ }>;
94
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
95
+ type: "parametric";
96
+ key: string;
97
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
98
+ x: string;
99
+ y: string;
100
+ rangeMin: string;
101
+ rangeMax: string;
102
+ color: string;
103
+ strokeDasharray: string;
104
+ strokeWidth: number;
105
+ }>;
106
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
107
+ type: "point";
108
+ key: string;
109
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
110
+ color: string;
111
+ coordX: string;
112
+ coordY: string;
113
+ }>;
114
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
115
+ type: "rectangle";
116
+ key: string;
117
+ options: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
118
+ color: string;
119
+ coordX: string;
120
+ coordY: string;
121
+ width: string;
122
+ height: string;
123
+ }>;
124
+ }>)[];
125
+ }>>>;
@@ -1 +1,60 @@
1
- export declare const parseInteractiveGraphUserInput: import("../parser-types").Parser<import("../..").PerseusGraphTypeAngle | import("../..").PerseusGraphTypeCircle | import("../..").PerseusGraphTypeLinear | import("../..").PerseusGraphTypeLinearSystem | import("../..").PerseusGraphTypeNone | import("../..").PerseusGraphTypePoint | import("../..").PerseusGraphTypePolygon | import("../..").PerseusGraphTypeQuadratic | import("../..").PerseusGraphTypeRay | import("../..").PerseusGraphTypeSegment | import("../..").PerseusGraphTypeSinusoid>;
1
+ export declare const parseInteractiveGraphUserInput: import("../parser-types").Parser<import("../general-purpose-parsers/object-types").OptionalizeProperties<{
2
+ type: "angle";
3
+ showAngles: boolean | undefined;
4
+ allowReflexAngles: boolean | undefined;
5
+ angleOffsetDeg: number | undefined;
6
+ snapDegrees: number | undefined;
7
+ match: "congruent" | undefined;
8
+ coords: [[number, number], [number, number], [number, number]] | undefined;
9
+ startCoords: [[number, number], [number, number], [number, number]] | undefined;
10
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
11
+ type: "circle";
12
+ center: [number, number] | undefined;
13
+ radius: number | undefined;
14
+ startCoords: import("../general-purpose-parsers/object-types").OptionalizeProperties<{
15
+ center: [number, number];
16
+ radius: number;
17
+ }> | undefined;
18
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
19
+ type: "linear";
20
+ coords: [[number, number], [number, number]] | null | undefined;
21
+ startCoords: [[number, number], [number, number]] | undefined;
22
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
23
+ type: "linear-system";
24
+ coords: [[number, number], [number, number]][] | null | undefined;
25
+ startCoords: [[number, number], [number, number]][] | undefined;
26
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
27
+ type: "none";
28
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
29
+ type: "point";
30
+ numPoints: number | "unlimited" | undefined;
31
+ coords: [number, number][] | null | undefined;
32
+ startCoords: [number, number][] | undefined;
33
+ coord: [number, number] | undefined;
34
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
35
+ type: "polygon";
36
+ numSides: number | "unlimited" | undefined;
37
+ showAngles: boolean | undefined;
38
+ showSides: boolean | undefined;
39
+ snapTo: "grid" | "angles" | "sides" | undefined;
40
+ match: "congruent" | "similar" | "approx" | "exact" | undefined;
41
+ startCoords: [number, number][] | undefined;
42
+ coords: [number, number][] | null | undefined;
43
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
44
+ type: "quadratic";
45
+ coords: [[number, number], [number, number], [number, number]] | null | undefined;
46
+ startCoords: [[number, number], [number, number], [number, number]] | undefined;
47
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
48
+ type: "ray";
49
+ coords: [[number, number], [number, number]] | null | undefined;
50
+ startCoords: [[number, number], [number, number]] | undefined;
51
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
52
+ type: "segment";
53
+ numSegments: number | undefined;
54
+ coords: [[number, number], [number, number]][] | null | undefined;
55
+ startCoords: [[number, number], [number, number]][] | undefined;
56
+ }> | import("../general-purpose-parsers/object-types").OptionalizeProperties<{
57
+ type: "sinusoid";
58
+ coords: [number, number][] | null | undefined;
59
+ startCoords: [number, number][] | undefined;
60
+ }>>;