@khanacademy/perseus 6.2.1 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/all-widgets.d.ts +2 -2
  3. package/dist/all-widgets.js.flow +2 -2
  4. package/dist/basic-widgets.d.ts +2 -2
  5. package/dist/basic-widgets.js.flow +2 -2
  6. package/dist/components/math-input.d.ts +4 -1
  7. package/dist/components/math-input.js.flow +4 -1
  8. package/dist/components/tex-buttons.d.ts +5 -1
  9. package/dist/components/tex-buttons.js.flow +1 -1
  10. package/dist/es/index.js +172 -205
  11. package/dist/es/index.js.map +1 -1
  12. package/dist/extra-widgets.d.ts +2 -2
  13. package/dist/extra-widgets.js.flow +2 -2
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +170 -201
  16. package/dist/index.js.flow +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/strings.js +23 -0
  19. package/dist/types.d.ts +2 -2
  20. package/dist/types.js.flow +2 -2
  21. package/dist/util/geometry.d.ts +25 -0
  22. package/dist/util/geometry.js.flow +37 -0
  23. package/dist/widgets/categorizer.d.ts +2 -2
  24. package/dist/widgets/categorizer.js.flow +2 -2
  25. package/dist/widgets/cs-program.d.ts +2 -2
  26. package/dist/widgets/cs-program.js.flow +2 -2
  27. package/dist/widgets/definition.d.ts +2 -2
  28. package/dist/widgets/definition.js.flow +2 -2
  29. package/dist/widgets/dropdown.d.ts +2 -2
  30. package/dist/widgets/dropdown.js.flow +2 -2
  31. package/dist/widgets/explanation.d.ts +2 -2
  32. package/dist/widgets/explanation.js.flow +2 -2
  33. package/dist/widgets/expression.d.ts +2 -2
  34. package/dist/widgets/expression.js.flow +2 -2
  35. package/dist/widgets/graded-group-set.d.ts +2 -2
  36. package/dist/widgets/graded-group-set.js.flow +2 -2
  37. package/dist/widgets/graded-group.d.ts +2 -2
  38. package/dist/widgets/graded-group.js.flow +2 -2
  39. package/dist/widgets/grapher.d.ts +2 -2
  40. package/dist/widgets/grapher.js.flow +2 -2
  41. package/dist/widgets/group.d.ts +2 -2
  42. package/dist/widgets/group.js.flow +2 -2
  43. package/dist/widgets/iframe.d.ts +2 -2
  44. package/dist/widgets/iframe.js.flow +2 -2
  45. package/dist/widgets/image.d.ts +2 -2
  46. package/dist/widgets/image.js.flow +2 -2
  47. package/dist/widgets/input-number.d.ts +2 -2
  48. package/dist/widgets/input-number.js.flow +2 -2
  49. package/dist/widgets/interaction.d.ts +2 -2
  50. package/dist/widgets/interaction.js.flow +2 -2
  51. package/dist/widgets/interactive-graph.d.ts +4 -12
  52. package/dist/widgets/interactive-graph.js.flow +4 -7
  53. package/dist/widgets/label-image.d.ts +2 -2
  54. package/dist/widgets/label-image.js.flow +2 -2
  55. package/dist/widgets/lights-puzzle.d.ts +2 -2
  56. package/dist/widgets/lights-puzzle.js.flow +2 -2
  57. package/dist/widgets/matcher.d.ts +2 -2
  58. package/dist/widgets/matcher.js.flow +2 -2
  59. package/dist/widgets/matrix.d.ts +2 -2
  60. package/dist/widgets/matrix.js.flow +2 -2
  61. package/dist/widgets/measurer.d.ts +2 -2
  62. package/dist/widgets/measurer.js.flow +2 -2
  63. package/dist/widgets/molecule.d.ts +2 -2
  64. package/dist/widgets/molecule.js.flow +2 -2
  65. package/dist/widgets/number-line.d.ts +2 -2
  66. package/dist/widgets/number-line.js.flow +2 -2
  67. package/dist/widgets/numeric-input.d.ts +2 -2
  68. package/dist/widgets/numeric-input.js.flow +2 -2
  69. package/dist/widgets/orderer.d.ts +2 -2
  70. package/dist/widgets/orderer.js.flow +2 -2
  71. package/dist/widgets/passage-ref-target.d.ts +2 -2
  72. package/dist/widgets/passage-ref-target.js.flow +2 -2
  73. package/dist/widgets/passage-ref.d.ts +2 -2
  74. package/dist/widgets/passage-ref.js.flow +2 -2
  75. package/dist/widgets/passage.d.ts +2 -2
  76. package/dist/widgets/passage.js.flow +2 -2
  77. package/dist/widgets/plotter.d.ts +2 -2
  78. package/dist/widgets/plotter.js.flow +2 -2
  79. package/dist/widgets/radio.d.ts +2 -2
  80. package/dist/widgets/radio.js.flow +2 -2
  81. package/dist/widgets/reaction-diagram.d.ts +2 -2
  82. package/dist/widgets/reaction-diagram.js.flow +2 -2
  83. package/dist/widgets/sequence.d.ts +2 -2
  84. package/dist/widgets/sequence.js.flow +2 -2
  85. package/dist/widgets/simulator.d.ts +2 -2
  86. package/dist/widgets/simulator.js.flow +2 -2
  87. package/dist/widgets/sorter.d.ts +2 -2
  88. package/dist/widgets/sorter.js.flow +2 -2
  89. package/dist/widgets/table.d.ts +2 -2
  90. package/dist/widgets/table.js.flow +2 -2
  91. package/dist/widgets/transformer.d.ts +2 -2
  92. package/dist/widgets/transformer.js.flow +2 -2
  93. package/dist/widgets/unit.d.ts +2 -2
  94. package/dist/widgets/unit.js.flow +2 -2
  95. package/dist/widgets/video.d.ts +2 -2
  96. package/dist/widgets/video.js.flow +2 -2
  97. package/package.json +4 -5
  98. package/src/components/__tests__/math-input.test.tsx +60 -0
  99. package/src/components/math-input.tsx +88 -118
  100. package/src/components/prop-check-box.tsx +0 -1
  101. package/src/components/tex-buttons.tsx +73 -12
  102. package/src/index.ts +2 -0
  103. package/src/types.ts +19 -2
  104. package/src/util/geometry.ts +293 -0
  105. package/src/widgets/__tests__/numeric-input.test.ts +38 -0
  106. package/src/widgets/expression.tsx +0 -1
  107. package/src/widgets/grapher.tsx +0 -1
  108. package/src/widgets/image.tsx +0 -1
  109. package/src/widgets/input-number.tsx +0 -1
  110. package/src/widgets/interactive-graph.tsx +20 -288
  111. package/src/widgets/matrix.tsx +0 -1
  112. package/src/widgets/numeric-input.tsx +6 -2
  113. package/src/widgets/transformer.tsx +0 -1
  114. package/tsconfig-build.json +0 -1
  115. package/tsconfig-build.tsbuildinfo +1 -1
  116. package/dist/__tests__/mock-asset-loading-widget.d.ts +0 -59
  117. package/dist/__tests__/mock-asset-loading-widget.js.flow +0 -70
  118. package/dist/__tests__/mock-widget.d.ts +0 -30
  119. package/dist/__tests__/mock-widget.js.flow +0 -39
  120. package/dist/__tests__/test-items/image-item.d.ts +0 -14
  121. package/dist/__tests__/test-items/image-item.js.flow +0 -20
  122. package/dist/__tests__/test-items/input-number-1-item.d.ts +0 -9
  123. package/dist/__tests__/test-items/input-number-1-item.js.flow +0 -15
  124. package/dist/__tests__/test-items/input-number-2-item.d.ts +0 -9
  125. package/dist/__tests__/test-items/input-number-2-item.js.flow +0 -15
  126. package/dist/__tests__/test-items/table-item.d.ts +0 -9
  127. package/dist/__tests__/test-items/table-item.js.flow +0 -15
  128. package/dist/interactive2/__tests__/movable-mock.d.ts +0 -5
  129. package/dist/interactive2/__tests__/movable-mock.js.flow +0 -11
  130. package/dist/widgets/__stories__/test-keypad-context-wrapper.d.ts +0 -6
  131. package/dist/widgets/__stories__/test-keypad-context-wrapper.js.flow +0 -12
  132. package/dist/widgets/__tests__/renderQuestion.d.ts +0 -13
  133. package/dist/widgets/__tests__/renderQuestion.js.flow +0 -28
@@ -1,59 +0,0 @@
1
- import * as React from "react";
2
- export declare const mockedAssetItem: {
3
- readonly question: {
4
- readonly content: "[[☃ mocked-asset-widget 1]]";
5
- readonly images: Readonly<{}>;
6
- readonly widgets: {
7
- readonly "mocked-asset-widget 1": {
8
- readonly type: "mocked-asset-widget";
9
- readonly alignment: "default";
10
- readonly static: false;
11
- readonly graded: true;
12
- readonly options: Readonly<{}>;
13
- readonly version: {
14
- readonly major: 1;
15
- readonly minor: 0;
16
- };
17
- };
18
- };
19
- };
20
- readonly answerArea: {
21
- readonly calculator: false;
22
- readonly chi2Table: false;
23
- readonly periodicTable: false;
24
- readonly tTable: false;
25
- readonly zTable: false;
26
- };
27
- readonly itemDataVersion: {
28
- readonly major: 0;
29
- readonly minor: 1;
30
- };
31
- readonly hints: readonly [];
32
- readonly _multi: null;
33
- readonly answer: null;
34
- };
35
- export declare class MockAssetLoadingWidget extends React.Component<Record<any, any>> {
36
- setAssetStatus: (assetKey: string, loaded: boolean) => void;
37
- render(): React.ReactNode;
38
- }
39
- declare const _default: Readonly<{
40
- name: string;
41
- displayName: string;
42
- getWidget?: (() => typeof MockAssetLoadingWidget) | undefined;
43
- accessible?: boolean | ((props: any) => boolean) | undefined;
44
- hidden?: boolean | undefined;
45
- version?: import("../types").Version | undefined;
46
- supportedAlignments?: readonly import("../types").Alignment[] | undefined;
47
- defaultAlignment?: import("../types").Alignment | undefined;
48
- getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
49
- isLintable?: boolean | undefined;
50
- transform?: import("../types").WidgetTransform | undefined;
51
- tracking?: import("../types").Tracking | undefined;
52
- staticTransform?: import("../types").WidgetTransform | undefined;
53
- traverseChildWidgets?: any;
54
- propUpgrades?: {
55
- [key: string]: (arg1: any) => any;
56
- } | undefined;
57
- widget: typeof MockAssetLoadingWidget;
58
- }>;
59
- export default _default;
@@ -1,70 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as $Flowgen$Import$_2e__2e__2f_types from "../types";
8
- import * as React from "react";
9
- declare export var mockedAssetItem: {|
10
- +question: {|
11
- +content: "[[☃ mocked-asset-widget 1]]",
12
- +images: $ReadOnly<{||}>,
13
- +widgets: {|
14
- +"mocked-asset-widget 1": {|
15
- +type: "mocked-asset-widget",
16
- +alignment: "default",
17
- +static: false,
18
- +graded: true,
19
- +options: $ReadOnly<{||}>,
20
- +version: {|
21
- +major: 1,
22
- +minor: 0,
23
- |},
24
- |},
25
- |},
26
- |},
27
- +answerArea: {|
28
- +calculator: false,
29
- +chi2Table: false,
30
- +periodicTable: false,
31
- +tTable: false,
32
- +zTable: false,
33
- |},
34
- +itemDataVersion: {|
35
- +major: 0,
36
- +minor: 1,
37
- |},
38
- +hints: [],
39
- +_multi: null,
40
- +answer: null,
41
- |};
42
- declare export class MockAssetLoadingWidget
43
- extends React.Component<Record<any, any>>
44
- {
45
- setAssetStatus: (assetKey: string, loaded: boolean) => void;
46
- render(): React.Node;
47
- }
48
- declare var _default: $ReadOnly<{|
49
- name: string,
50
- displayName: string,
51
- getWidget?: (() => typeof MockAssetLoadingWidget) | void,
52
- accessible?: boolean | ((props: any) => boolean) | void,
53
- hidden?: boolean | void,
54
- version?: $Flowgen$Import$_2e__2e__2f_types.Version | void,
55
- supportedAlignments?: $ReadOnlyArray<$Flowgen$Import$_2e__2e__2f_types.Alignment> | void,
56
- defaultAlignment?: $Flowgen$Import$_2e__2e__2f_types.Alignment | void,
57
- getDefaultAlignment?:
58
- | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
59
- | void,
60
- isLintable?: boolean | void,
61
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
62
- tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
63
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
64
- traverseChildWidgets?: any,
65
- propUpgrades?: {
66
- [key: string]: (arg1: any) => any,
67
- } | void,
68
- widget: typeof MockAssetLoadingWidget,
69
- |}>;
70
- declare export default typeof _default;
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- import type { WidgetProps } from "../types";
3
- type PerseusMockWidgetOptions = Record<any, any>;
4
- type RenderProps = PerseusMockWidgetOptions;
5
- type Rubric = PerseusMockWidgetOptions;
6
- type Props = WidgetProps<RenderProps, Rubric>;
7
- export declare class MockWidget extends React.Component<Props> {
8
- render(): React.ReactNode;
9
- }
10
- declare const _default: Readonly<{
11
- name: string;
12
- displayName: string;
13
- getWidget?: (() => typeof MockWidget) | undefined;
14
- accessible?: boolean | ((props: any) => boolean) | undefined;
15
- hidden?: boolean | undefined;
16
- version?: import("../types").Version | undefined;
17
- supportedAlignments?: readonly import("../types").Alignment[] | undefined;
18
- defaultAlignment?: import("../types").Alignment | undefined;
19
- getDefaultAlignment?: (() => import("../types").Alignment) | undefined;
20
- isLintable?: boolean | undefined;
21
- transform?: import("../types").WidgetTransform | undefined;
22
- tracking?: import("../types").Tracking | undefined;
23
- staticTransform?: import("../types").WidgetTransform | undefined;
24
- traverseChildWidgets?: any;
25
- propUpgrades?: {
26
- [key: string]: (arg1: any) => any;
27
- } | undefined;
28
- widget: typeof MockWidget;
29
- }>;
30
- export default _default;
@@ -1,39 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as $Flowgen$Import$_2e__2e__2f_types from "../types";
8
- import * as React from "react";
9
- import type { WidgetProps } from "../types";
10
- declare type PerseusMockWidgetOptions = { [key: any]: any };
11
- declare type RenderProps = PerseusMockWidgetOptions;
12
- declare type Rubric = PerseusMockWidgetOptions;
13
- declare type Props = WidgetProps<RenderProps, Rubric>;
14
- declare export class MockWidget extends React.Component<Props> {
15
- render(): React.Node;
16
- }
17
- declare var _default: $ReadOnly<{|
18
- name: string,
19
- displayName: string,
20
- getWidget?: (() => typeof MockWidget) | void,
21
- accessible?: boolean | ((props: any) => boolean) | void,
22
- hidden?: boolean | void,
23
- version?: $Flowgen$Import$_2e__2e__2f_types.Version | void,
24
- supportedAlignments?: $ReadOnlyArray<$Flowgen$Import$_2e__2e__2f_types.Alignment> | void,
25
- defaultAlignment?: $Flowgen$Import$_2e__2e__2f_types.Alignment | void,
26
- getDefaultAlignment?:
27
- | (() => $Flowgen$Import$_2e__2e__2f_types.Alignment)
28
- | void,
29
- isLintable?: boolean | void,
30
- transform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
31
- tracking?: $Flowgen$Import$_2e__2e__2f_types.Tracking | void,
32
- staticTransform?: $Flowgen$Import$_2e__2e__2f_types.WidgetTransform | void,
33
- traverseChildWidgets?: any,
34
- propUpgrades?: {
35
- [key: string]: (arg1: any) => any,
36
- } | void,
37
- widget: typeof MockWidget,
38
- |}>;
39
- declare export default typeof _default;
@@ -1,14 +0,0 @@
1
- import type { PerseusRenderer } from "../../perseus-types";
2
- declare const _default: {
3
- question: PerseusRenderer;
4
- answerArea: {
5
- calculator: boolean;
6
- periodicTable: boolean;
7
- };
8
- itemDataVersion: {
9
- major: number;
10
- minor: number;
11
- };
12
- hints: readonly any[];
13
- };
14
- export default _default;
@@ -1,20 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import type { PerseusRenderer } from "../../perseus-types";
8
- declare var _default: {|
9
- question: PerseusRenderer,
10
- answerArea: {|
11
- calculator: boolean,
12
- periodicTable: boolean,
13
- |},
14
- itemDataVersion: {|
15
- major: number,
16
- minor: number,
17
- |},
18
- hints: $ReadOnlyArray<any>,
19
- |};
20
- declare export default typeof _default;
@@ -1,9 +0,0 @@
1
- import type { PerseusRenderer } from "../../perseus-types";
2
- declare const _default: {
3
- question: PerseusRenderer;
4
- answerArea: {
5
- calculator: boolean;
6
- };
7
- hints: readonly any[];
8
- };
9
- export default _default;
@@ -1,15 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import type { PerseusRenderer } from "../../perseus-types";
8
- declare var _default: {|
9
- question: PerseusRenderer,
10
- answerArea: {|
11
- calculator: boolean,
12
- |},
13
- hints: $ReadOnlyArray<any>,
14
- |};
15
- declare export default typeof _default;
@@ -1,9 +0,0 @@
1
- import type { PerseusRenderer } from "../../perseus-types";
2
- declare const _default: {
3
- question: PerseusRenderer;
4
- answerArea: {
5
- calculator: boolean;
6
- };
7
- hints: readonly any[];
8
- };
9
- export default _default;
@@ -1,15 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import type { PerseusRenderer } from "../../perseus-types";
8
- declare var _default: {|
9
- question: PerseusRenderer,
10
- answerArea: {|
11
- calculator: boolean,
12
- |},
13
- hints: $ReadOnlyArray<any>,
14
- |};
15
- declare export default typeof _default;
@@ -1,9 +0,0 @@
1
- import type { PerseusRenderer } from "../../perseus-types";
2
- declare const _default: {
3
- question: PerseusRenderer;
4
- answerArea: {
5
- calculator: boolean;
6
- };
7
- hints: readonly any[];
8
- };
9
- export default _default;
@@ -1,15 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import type { PerseusRenderer } from "../../perseus-types";
8
- declare var _default: {|
9
- question: PerseusRenderer,
10
- answerArea: {|
11
- calculator: boolean,
12
- |},
13
- hints: $ReadOnlyArray<any>,
14
- |};
15
- declare export default typeof _default;
@@ -1,5 +0,0 @@
1
- /**
2
- * Create a Mocked Movable
3
- */
4
- declare const createMock: () => any;
5
- export default createMock;
@@ -1,11 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- /**
8
- * Create a Mocked Movable
9
- */
10
- declare var createMock: () => any;
11
- declare export default typeof createMock;
@@ -1,6 +0,0 @@
1
- import * as React from "react";
2
- type Props = {
3
- children: React.ReactElement;
4
- };
5
- declare const TestKeypadContextWrapper: (props: Props) => React.ReactElement;
6
- export default TestKeypadContextWrapper;
@@ -1,12 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as React from "react";
8
- declare type Props = {|
9
- children: React.Element<any>,
10
- |};
11
- declare var TestKeypadContextWrapper: (props: Props) => React.Element<any>;
12
- declare export default typeof TestKeypadContextWrapper;
@@ -1,13 +0,0 @@
1
- import { render } from "@testing-library/react";
2
- import * as React from "react";
3
- import * as Perseus from "../../index";
4
- import type { PerseusRenderer } from "../../perseus-types";
5
- import type { APIOptions } from "../../types";
6
- type RenderResult = ReturnType<typeof render>;
7
- export declare const renderQuestion: (question: PerseusRenderer, apiOptions?: APIOptions, extraProps?: JSX.LibraryManagedAttributes<typeof Perseus.Renderer, React.ComponentProps<typeof Perseus.Renderer>>) => {
8
- container: HTMLElement;
9
- renderer: Perseus.Renderer;
10
- rerender: (question: PerseusRenderer, extraProps?: JSX.LibraryManagedAttributes<typeof Perseus.Renderer, React.ComponentProps<typeof Perseus.Renderer>>) => void;
11
- unmount: RenderResult["unmount"];
12
- };
13
- export {};
@@ -1,28 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import { render } from "@testing-library/react";
8
- import * as React from "react";
9
- import * as Perseus from "../../index";
10
- import type { PerseusRenderer } from "../../perseus-types";
11
- import type { APIOptions } from "../../types";
12
- declare type RenderResult = $Call<
13
- <R>((...args: any[]) => R) => R,
14
- typeof render
15
- >;
16
- declare export var renderQuestion: (
17
- question: PerseusRenderer,
18
- apiOptions?: APIOptions,
19
- extraProps?: React.ElementConfig<typeof Perseus.Renderer>
20
- ) => {|
21
- container: HTMLElement,
22
- renderer: Perseus.Renderer,
23
- rerender: (
24
- question: PerseusRenderer,
25
- extraProps?: React.ElementConfig<typeof Perseus.Renderer>
26
- ) => void,
27
- unmount: $PropertyType<RenderResult, "unmount">,
28
- |};