@khanacademy/perseus 77.10.1 → 77.11.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.
- package/dist/es/index.css +1 -1
- package/dist/es/index.css.map +1 -1
- package/dist/es/index.js +21 -17
- package/dist/es/index.js.map +1 -1
- package/dist/es/strings.js +1 -1
- package/dist/es/strings.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +21 -17
- package/dist/index.js.map +1 -1
- package/dist/server-item-renderer.d.ts +1 -1
- package/dist/strings.js +1 -1
- package/dist/strings.js.map +1 -1
- package/dist/testing/feature-flags-util.d.ts +0 -2
- package/dist/testing/item-flipbook/item-flipbook-model.d.ts +22 -0
- package/dist/testing/item-flipbook/item-flipbook-view-model.d.ts +57 -0
- package/dist/testing/item-flipbook/item-flipbook-view.d.ts +7 -0
- package/dist/testing/item-flipbook/item-flipbook.d.ts +2 -0
- package/dist/testing/item-flipbook/safe-parse-perseus-item.d.ts +2 -0
- package/dist/testing/item-renderer-hooks.d.ts +1 -1
- package/dist/widgets/dropdown/dropdown.d.ts +1 -1
- package/dist/widgets/expression/expression.d.ts +2 -2
- package/dist/widgets/interactive-graphs/graphs/components/movable-asymptote.d.ts +8 -0
- package/dist/widgets/interactive-graphs/graphs/components/movable-line/index.d.ts +2 -0
- package/dist/widgets/interactive-graphs/graphs/components/movable-line/line.d.ts +16 -0
- package/dist/widgets/interactive-graphs/graphs/components/movable-line/movable-line.d.ts +20 -0
- package/dist/widgets/interactive-graphs/graphs/components/{movable-line.d.ts → movable-line/util.d.ts} +0 -20
- package/dist/widgets/interactive-graphs/graphs/screenreader-text.d.ts +6 -0
- package/dist/widgets/interactive-graphs/graphs/utils.d.ts +8 -2
- package/dist/widgets/interactive-graphs/interactive-graph.d.ts +1 -1
- package/dist/widgets/interactive-graphs/point-labels.d.ts +2 -0
- package/dist/widgets/interactive-graphs/types.d.ts +46 -1
- package/dist/widgets/label-image/label-image.d.ts +1 -1
- package/dist/widgets/mock-widgets/mock-widget.d.ts +1 -1
- package/dist/widgets/numeric-input/numeric-input.class.d.ts +1 -1
- package/dist/widgets/numeric-input/numeric-input.d.ts +2 -2
- package/dist/widgets/table/table.d.ts +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { PerseusItem } from "@khanacademy/perseus-core";
|
|
2
|
+
export type NoItem = {
|
|
3
|
+
status: "no-item";
|
|
4
|
+
};
|
|
5
|
+
export type ParseError = {
|
|
6
|
+
status: "parse-error";
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export type Item = {
|
|
10
|
+
status: "item";
|
|
11
|
+
item: PerseusItem;
|
|
12
|
+
key: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The information displayed in the item display section of the UI. One of:
|
|
16
|
+
* - no item (if no data has been entered)
|
|
17
|
+
* - a parse error from the currently selected item
|
|
18
|
+
* - a valid item
|
|
19
|
+
*/
|
|
20
|
+
export type ItemDisplay = NoItem | ParseError | Item;
|
|
21
|
+
export declare function noItem(): NoItem;
|
|
22
|
+
export declare function parseError(message: string): ParseError;
|
|
23
|
+
export declare function item(item: PerseusItem, key: string): Item;
|
|
24
|
+
export declare function isItem(itemDisplay: ItemDisplay): itemDisplay is Item;
|
|
25
|
+
export interface InputFieldChangeEvent {
|
|
26
|
+
target: {
|
|
27
|
+
value: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface InputField {
|
|
31
|
+
value: string;
|
|
32
|
+
onChange: (event: InputFieldChangeEvent) => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* An abstract representation of the view. The ViewModel contains exactly the
|
|
36
|
+
* values that will be rendered in React components, but it has no dependency
|
|
37
|
+
* on React. This makes it easy to write tests that assert on exactly what the
|
|
38
|
+
* user will see, yet don't need to render components.
|
|
39
|
+
*/
|
|
40
|
+
export interface ViewModel {
|
|
41
|
+
/**
|
|
42
|
+
* Input where the user can type in newline-separated Perseus item JSON
|
|
43
|
+
* objects to render.
|
|
44
|
+
*/
|
|
45
|
+
itemJsonInput: InputField;
|
|
46
|
+
/**
|
|
47
|
+
* Displays and controls which Perseus item from the `itemJsonInput` is
|
|
48
|
+
* currently selected for display.
|
|
49
|
+
*/
|
|
50
|
+
selectedItemNumber: InputField;
|
|
51
|
+
/** The number of items, formatted for display. */
|
|
52
|
+
totalItems: string;
|
|
53
|
+
nextItem: () => void;
|
|
54
|
+
previousItem: () => void;
|
|
55
|
+
/** The data that should be rendered for the currently selected item. */
|
|
56
|
+
itemDisplay: ItemDisplay;
|
|
57
|
+
}
|
|
@@ -39,7 +39,7 @@ export declare const useItemRenderer: (item: PerseusItem, apiOptions?: APIOption
|
|
|
39
39
|
hintProgressColor?: string;
|
|
40
40
|
canScrollPage?: boolean;
|
|
41
41
|
editorChangeDelay?: number;
|
|
42
|
-
flags?: Record<"
|
|
42
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
43
43
|
};
|
|
44
44
|
toggleMobile: (isMobile: boolean) => void;
|
|
45
45
|
toggleRtl: (isRtl: boolean) => void;
|
|
@@ -52,7 +52,7 @@ declare const _default: {
|
|
|
52
52
|
hintProgressColor?: string;
|
|
53
53
|
canScrollPage?: boolean;
|
|
54
54
|
editorChangeDelay?: number;
|
|
55
|
-
flags?: Record<"
|
|
55
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
56
56
|
}> & {
|
|
57
57
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
58
58
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -42,7 +42,7 @@ export declare const Expression: React.ForwardRefExoticComponent<PerseusExpressi
|
|
|
42
42
|
hintProgressColor?: string;
|
|
43
43
|
canScrollPage?: boolean;
|
|
44
44
|
editorChangeDelay?: number;
|
|
45
|
-
flags?: Record<"
|
|
45
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
46
46
|
}> & {
|
|
47
47
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
48
48
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -122,7 +122,7 @@ declare const _default: {
|
|
|
122
122
|
hintProgressColor?: string;
|
|
123
123
|
canScrollPage?: boolean;
|
|
124
124
|
editorChangeDelay?: number;
|
|
125
|
-
flags?: Record<"
|
|
125
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
126
126
|
}> & {
|
|
127
127
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
128
128
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import type { AriaLive } from "../../types";
|
|
2
3
|
import type { KeyboardMovementConstraint } from "../use-draggable";
|
|
3
4
|
import type { vec } from "mafs";
|
|
4
5
|
type Props = {
|
|
@@ -21,6 +22,13 @@ type Props = {
|
|
|
21
22
|
orientation: "horizontal" | "vertical";
|
|
22
23
|
/** Accessible label for the asymptote drag target. */
|
|
23
24
|
ariaLabel: string;
|
|
25
|
+
/**
|
|
26
|
+
* Overrides the internal aria-live used to announce moves. Defaults to
|
|
27
|
+
* "polite".
|
|
28
|
+
* TODO(LEMS-4189): Remove once exponential is also wired to the announcer
|
|
29
|
+
* and the internal aria-live can be dropped.
|
|
30
|
+
*/
|
|
31
|
+
ariaLive?: AriaLive;
|
|
24
32
|
/**
|
|
25
33
|
* Content rendered between the asymptote lines and the drag handle.
|
|
26
34
|
* Use this to render the curve so it appears above the dashed line
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { AriaLive } from "../../../types";
|
|
3
|
+
import type { vec } from "mafs";
|
|
4
|
+
export interface LineProps {
|
|
5
|
+
start: vec.Vector2;
|
|
6
|
+
end: vec.Vector2;
|
|
7
|
+
ariaLabel?: string;
|
|
8
|
+
ariaDescribedBy?: string;
|
|
9
|
+
ariaLive?: AriaLive;
|
|
10
|
+
extend?: undefined | {
|
|
11
|
+
start: boolean;
|
|
12
|
+
end: boolean;
|
|
13
|
+
};
|
|
14
|
+
onMove: (newStart: vec.Vector2) => unknown;
|
|
15
|
+
}
|
|
16
|
+
export declare const Line: (props: LineProps) => React.JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { AriaLive } from "../../../types";
|
|
3
|
+
import type { vec } from "mafs";
|
|
4
|
+
export interface MovableLineProps {
|
|
5
|
+
points: Readonly<[vec.Vector2, vec.Vector2]>;
|
|
6
|
+
ariaLabels?: {
|
|
7
|
+
point1AriaLabel?: string;
|
|
8
|
+
point2AriaLabel?: string;
|
|
9
|
+
grabHandleAriaLabel?: string;
|
|
10
|
+
};
|
|
11
|
+
ariaDescribedBy?: string;
|
|
12
|
+
ariaLive?: AriaLive;
|
|
13
|
+
extend?: {
|
|
14
|
+
start: boolean;
|
|
15
|
+
end: boolean;
|
|
16
|
+
};
|
|
17
|
+
onMovePoint?: (endpointIndex: number, destination: vec.Vector2) => unknown;
|
|
18
|
+
onMoveLine?: (newStart: vec.Vector2) => unknown;
|
|
19
|
+
}
|
|
20
|
+
export declare const MovableLine: (props: MovableLineProps) => React.JSX.Element;
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
import { vec } from "mafs";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import type { AriaLive } from "../../types";
|
|
4
2
|
import type { Interval } from "mafs";
|
|
5
|
-
type Props = {
|
|
6
|
-
points: Readonly<[vec.Vector2, vec.Vector2]>;
|
|
7
|
-
ariaLabels?: {
|
|
8
|
-
point1AriaLabel?: string;
|
|
9
|
-
point2AriaLabel?: string;
|
|
10
|
-
grabHandleAriaLabel?: string;
|
|
11
|
-
};
|
|
12
|
-
ariaDescribedBy?: string;
|
|
13
|
-
ariaLive?: AriaLive;
|
|
14
|
-
extend?: {
|
|
15
|
-
start: boolean;
|
|
16
|
-
end: boolean;
|
|
17
|
-
};
|
|
18
|
-
onMovePoint?: (endpointIndex: number, destination: vec.Vector2) => unknown;
|
|
19
|
-
onMoveLine?: (newStart: vec.Vector2) => unknown;
|
|
20
|
-
};
|
|
21
|
-
export declare const MovableLine: (props: Props) => React.JSX.Element;
|
|
22
3
|
export declare const getMovableLineKeyboardConstraint: (line: [vec.Vector2, vec.Vector2], snapStep: vec.Vector2, pointIndex: number) => {
|
|
23
4
|
up: vec.Vector2;
|
|
24
5
|
down: vec.Vector2;
|
|
@@ -33,4 +14,3 @@ export declare function trimRange(range: [Interval, Interval], graphDimensionsIn
|
|
|
33
14
|
* viewport edge.
|
|
34
15
|
*/
|
|
35
16
|
export declare function insetTipAlongRay(tail: vec.Vector2, tip: vec.Vector2, range: [Interval, Interval], graphDimensionsInPixels: vec.Vector2): vec.Vector2;
|
|
36
|
-
export {};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { InteractiveGraphStateAnnouncement } from "../types";
|
|
2
2
|
import type { PerseusStrings } from "@khanacademy/perseus/strings";
|
|
3
|
+
import type { Coord } from "@khanacademy/perseus-core";
|
|
3
4
|
export declare function getAnnouncementText(state: InteractiveGraphStateAnnouncement, strings: PerseusStrings, locale: string): string;
|
|
4
5
|
export declare function srCircleRadiusPointLabel(x: number, y: number, centerX: number, strings: PerseusStrings, locale: string): string;
|
|
5
6
|
export declare function srCircleCenterLabel(x: number, y: number, strings: PerseusStrings, locale: string): string;
|
|
7
|
+
type GraphLocations = "origin" | "x-axis" | "y-axis" | 1 | 2 | 3 | 4;
|
|
8
|
+
export declare function getCoordQuadrant(coord: Coord): GraphLocations;
|
|
9
|
+
export declare function getQuadraticVertexString(vertex: Coord, strings: PerseusStrings): string;
|
|
10
|
+
export declare function getQuadraticPointString(pointNumber: any, coord: Coord, strings: PerseusStrings, locale: string): string;
|
|
6
11
|
export declare function srFormatNumber(a: number, locale: string, maximumFractionDigits?: number): string;
|
|
7
12
|
export declare function getPiMultiple(a: number): string | null;
|
|
13
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { vec } from "mafs";
|
|
2
2
|
import type { PerseusStrings } from "../../../strings";
|
|
3
3
|
import type { PairOfPoints } from "../types";
|
|
4
|
+
import type { QuadraticCoefficient } from "@khanacademy/kmath";
|
|
4
5
|
import type { Coord } from "@khanacademy/perseus-core";
|
|
5
6
|
import type { Interval } from "mafs";
|
|
6
7
|
/**
|
|
@@ -14,9 +15,14 @@ export declare const getIntersectionOfRayWithBox: (initialPoint: vec.Vector2, th
|
|
|
14
15
|
export declare function getArrayWithoutDuplicates(array: Array<Coord>): Array<Coord>;
|
|
15
16
|
export declare function getSlopeStringForLine(line: PairOfPoints, strings: PerseusStrings): string;
|
|
16
17
|
export declare function getInterceptStringForLine(line: PairOfPoints, strings: PerseusStrings, locale: string): string;
|
|
17
|
-
export declare function getQuadraticVertexString(vertex: Coord, strings: PerseusStrings): string;
|
|
18
|
-
export declare function getQuadraticPointString(pointNumber: any, coord: Coord, strings: PerseusStrings, locale: string): string;
|
|
19
18
|
export declare function getQuadraticXIntercepts(a: number, b: number, c: number): number[];
|
|
19
|
+
/**
|
|
20
|
+
* Calculate the vertex of a quadratic from its coefficients.
|
|
21
|
+
*
|
|
22
|
+
* When a === 0 the parabola degenerates to a line and has no vertex, so
|
|
23
|
+
* we return undefined; otherwise the vertex is (-b/2a, c - b²/4a).
|
|
24
|
+
*/
|
|
25
|
+
export declare function getQuadraticVertex(coeffs: QuadraticCoefficient): Coord | undefined;
|
|
20
26
|
/**
|
|
21
27
|
* Given a list of points, return the angle made by the point at index i
|
|
22
28
|
* with the points at indices i - 1 and i + 1.
|
|
@@ -199,7 +199,7 @@ declare class InteractiveGraph extends React.Component<Props, State> {
|
|
|
199
199
|
hintProgressColor?: string;
|
|
200
200
|
canScrollPage?: boolean;
|
|
201
201
|
editorChangeDelay?: number;
|
|
202
|
-
flags?: Record<"
|
|
202
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
203
203
|
}> & {
|
|
204
204
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
205
205
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -35,6 +35,14 @@ type MoveCenterAnnouncement = {
|
|
|
35
35
|
x: number;
|
|
36
36
|
y: number;
|
|
37
37
|
};
|
|
38
|
+
type MoveQuadraticPointAnnouncement = {
|
|
39
|
+
type: "move-quadratic-point";
|
|
40
|
+
pointIndex: number;
|
|
41
|
+
pointLabel: string | number;
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
vertex: Coord | undefined;
|
|
45
|
+
};
|
|
38
46
|
type MoveVectorPointAnnouncement = {
|
|
39
47
|
type: "move-vector-point";
|
|
40
48
|
pointIndex: number;
|
|
@@ -94,6 +102,42 @@ type MoveSinusoidPointAnnouncement = {
|
|
|
94
102
|
y: number;
|
|
95
103
|
otherY: number;
|
|
96
104
|
};
|
|
105
|
+
type MoveExponentialPointAnnouncement = {
|
|
106
|
+
type: "move-exponential-point";
|
|
107
|
+
pointIndex: number;
|
|
108
|
+
pointLabel: string | number;
|
|
109
|
+
x: number;
|
|
110
|
+
y: number;
|
|
111
|
+
};
|
|
112
|
+
type MoveLogarithmPointAnnouncement = {
|
|
113
|
+
type: "move-logarithm-point";
|
|
114
|
+
pointIndex: number;
|
|
115
|
+
pointLabel: string | number;
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
};
|
|
119
|
+
type MoveExponentialAsymptoteAnnouncement = {
|
|
120
|
+
type: "move-exponential-asymptote";
|
|
121
|
+
asymptoteY: number;
|
|
122
|
+
};
|
|
123
|
+
type MoveTangentPointAnnouncement = {
|
|
124
|
+
type: "move-tangent-point";
|
|
125
|
+
pointIndex: number;
|
|
126
|
+
pointLabel: string | number;
|
|
127
|
+
x: number;
|
|
128
|
+
y: number;
|
|
129
|
+
};
|
|
130
|
+
type MoveLogarithmAsymptoteAnnouncement = {
|
|
131
|
+
type: "move-logarithm-asymptote";
|
|
132
|
+
asymptoteX: number;
|
|
133
|
+
};
|
|
134
|
+
type MoveAbsoluteValuePointAnnouncement = {
|
|
135
|
+
type: "move-absolute-value-point";
|
|
136
|
+
pointIndex: number;
|
|
137
|
+
pointLabel: string | number;
|
|
138
|
+
x: number;
|
|
139
|
+
y: number;
|
|
140
|
+
};
|
|
97
141
|
type MoveAnglePointAnnouncement = {
|
|
98
142
|
type: "move-angle-point";
|
|
99
143
|
pointIndex: number;
|
|
@@ -107,10 +151,11 @@ type MovePolygonAnnouncement = {
|
|
|
107
151
|
coords: ReadonlyArray<Coord>;
|
|
108
152
|
pointLabels?: ReadonlyArray<string>;
|
|
109
153
|
};
|
|
110
|
-
export type InteractiveGraphStateAnnouncement = MovePointAnnouncement | MoveRadiusPointAnnouncement | MoveCenterAnnouncement | MoveVectorPointAnnouncement | MoveVectorLineAnnouncement | MoveSegmentPointAnnouncement | MoveSegmentLineAnnouncement | MoveLinearSystemPointAnnouncement | MoveLinearSystemLineAnnouncement | MoveRayPointAnnouncement | MoveRayLineAnnouncement | MoveLinearLineAnnouncement | MoveSinusoidPointAnnouncement | MoveAnglePointAnnouncement | MovePolygonAnnouncement;
|
|
154
|
+
export type InteractiveGraphStateAnnouncement = MovePointAnnouncement | MoveRadiusPointAnnouncement | MoveCenterAnnouncement | MoveQuadraticPointAnnouncement | MoveVectorPointAnnouncement | MoveVectorLineAnnouncement | MoveSegmentPointAnnouncement | MoveSegmentLineAnnouncement | MoveLinearSystemPointAnnouncement | MoveLinearSystemLineAnnouncement | MoveRayPointAnnouncement | MoveRayLineAnnouncement | MoveLinearLineAnnouncement | MoveSinusoidPointAnnouncement | MoveExponentialPointAnnouncement | MoveExponentialAsymptoteAnnouncement | MoveLogarithmPointAnnouncement | MoveLogarithmAsymptoteAnnouncement | MoveTangentPointAnnouncement | MoveAbsoluteValuePointAnnouncement | MoveAnglePointAnnouncement | MovePolygonAnnouncement;
|
|
111
155
|
export interface InteractiveGraphStateCommon {
|
|
112
156
|
hasBeenInteractedWith: boolean;
|
|
113
157
|
pointLabels?: string[];
|
|
158
|
+
showPointLabels?: boolean;
|
|
114
159
|
range: [xRange: Interval, yRange: Interval];
|
|
115
160
|
snapStep: vec.Vector2;
|
|
116
161
|
stateAnnouncement?: InteractiveGraphStateAnnouncement;
|
|
@@ -151,7 +151,7 @@ declare const _default: {
|
|
|
151
151
|
hintProgressColor?: string;
|
|
152
152
|
canScrollPage?: boolean;
|
|
153
153
|
editorChangeDelay?: number;
|
|
154
|
-
flags?: Record<"
|
|
154
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
155
155
|
}> & {
|
|
156
156
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
157
157
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -75,7 +75,7 @@ declare class MockWidgetComponent extends React.Component<Props> implements Widg
|
|
|
75
75
|
hintProgressColor?: string;
|
|
76
76
|
canScrollPage?: boolean;
|
|
77
77
|
editorChangeDelay?: number;
|
|
78
|
-
flags?: Record<"
|
|
78
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
79
79
|
}> & {
|
|
80
80
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
81
81
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -83,7 +83,7 @@ export declare class NumericInput extends React.Component<NumericInputProps> imp
|
|
|
83
83
|
hintProgressColor?: string;
|
|
84
84
|
canScrollPage?: boolean;
|
|
85
85
|
editorChangeDelay?: number;
|
|
86
|
-
flags?: Record<"
|
|
86
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
87
87
|
}> & {
|
|
88
88
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
89
89
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -45,7 +45,7 @@ export declare const NumericInputComponent: React.ForwardRefExoticComponent<impo
|
|
|
45
45
|
hintProgressColor?: string;
|
|
46
46
|
canScrollPage?: boolean;
|
|
47
47
|
editorChangeDelay?: number;
|
|
48
|
-
flags?: Record<"
|
|
48
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
49
49
|
}> & {
|
|
50
50
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
51
51
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -104,7 +104,7 @@ export declare const NumericInputComponent: React.ForwardRefExoticComponent<impo
|
|
|
104
104
|
hintProgressColor?: string;
|
|
105
105
|
canScrollPage?: boolean;
|
|
106
106
|
editorChangeDelay?: number;
|
|
107
|
-
flags?: Record<"
|
|
107
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
108
108
|
}> & {
|
|
109
109
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
110
110
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -83,7 +83,7 @@ declare class Table extends React.Component<Props> implements Widget {
|
|
|
83
83
|
hintProgressColor?: string;
|
|
84
84
|
canScrollPage?: boolean;
|
|
85
85
|
editorChangeDelay?: number;
|
|
86
|
-
flags?: Record<"
|
|
86
|
+
flags?: Record<"input-number-to-numeric-input", boolean>;
|
|
87
87
|
}> & {
|
|
88
88
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
89
89
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Core Perseus API (includes renderers and widgets)",
|
|
4
4
|
"author": "Khan Academy",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "77.
|
|
6
|
+
"version": "77.11.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"tiny-invariant": "1.3.1",
|
|
44
44
|
"uuid": "^10.0.0",
|
|
45
45
|
"@khanacademy/kas": "2.2.3",
|
|
46
|
-
"@khanacademy/keypad-context": "3.2.
|
|
47
|
-
"@khanacademy/kmath": "2.4.
|
|
48
|
-
"@khanacademy/math-input": "26.4.
|
|
49
|
-
"@khanacademy/perseus-core": "27.
|
|
50
|
-
"@khanacademy/perseus-linter": "5.0
|
|
51
|
-
"@khanacademy/perseus-score": "8.11.
|
|
46
|
+
"@khanacademy/keypad-context": "3.2.61",
|
|
47
|
+
"@khanacademy/kmath": "2.4.19",
|
|
48
|
+
"@khanacademy/math-input": "26.4.33",
|
|
49
|
+
"@khanacademy/perseus-core": "27.4.0",
|
|
50
|
+
"@khanacademy/perseus-linter": "5.1.0",
|
|
51
|
+
"@khanacademy/perseus-score": "8.11.3",
|
|
52
52
|
"@khanacademy/perseus-utils": "2.1.5",
|
|
53
53
|
"@khanacademy/pure-markdown": "2.2.8",
|
|
54
54
|
"@khanacademy/simple-markdown": "2.2.3"
|