@khanacademy/perseus 68.0.2 → 69.0.1
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 +4 -6
- package/dist/es/index.css.map +1 -1
- package/dist/es/index.js +47 -50
- package/dist/es/index.js.map +1 -1
- package/dist/index.css +4 -6
- package/dist/index.css.map +1 -1
- package/dist/index.js +46 -49
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts +1 -12
- package/dist/server-item-renderer.d.ts +1 -7
- package/dist/types.d.ts +3 -26
- package/dist/widget-ai-utils/categorizer/categorizer-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/definition/definition-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/dropdown/dropdown-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/explanation/explanation-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/expression/expression-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/graded-group-set/graded-group-set-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/grapher/grapher-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/image/image-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/input-number/input-number-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/label-image/label-image-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/matcher/matcher-ai-utils.d.ts +2 -2
- package/dist/widget-ai-utils/matrix/matrix-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/mock-widget/prompt-utils.d.ts +1 -1
- package/dist/widget-ai-utils/number-line/number-line-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/numeric-input/prompt-utils.d.ts +1 -1
- package/dist/widget-ai-utils/orderer/orderer-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/passage/passage-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/passage-ref/passage-ref-ai-utils.d.ts +1 -1
- package/dist/widget-ai-utils/radio/radio-ai-utils.d.ts +1 -1
- package/dist/widget-container.d.ts +1 -4
- package/dist/widgets/categorizer/categorizer.d.ts +4 -11
- package/dist/widgets/cs-program/cs-program.d.ts +6 -2
- package/dist/widgets/definition/definition.d.ts +1 -2
- package/dist/widgets/explanation/explanation.d.ts +1 -3
- package/dist/widgets/expression/expression.d.ts +2 -2
- package/dist/widgets/free-response/free-response.d.ts +1 -2
- package/dist/widgets/graded-group/graded-group.d.ts +0 -1
- package/dist/widgets/grapher/grapher.d.ts +1 -1
- package/dist/widgets/group/group.d.ts +1 -2
- package/dist/widgets/iframe/iframe.d.ts +6 -5
- package/dist/widgets/interaction/interaction.d.ts +1 -2
- package/dist/widgets/interactive-graphs/graphs/components/angle-indicators.d.ts +1 -1
- package/dist/widgets/interactive-graphs/graphs/utils.d.ts +5 -0
- package/dist/widgets/interactive-graphs/interactive-graph.d.ts +4 -4
- package/dist/widgets/matcher/matcher.d.ts +1 -2
- package/dist/widgets/matrix/matrix.d.ts +2 -7
- package/dist/widgets/mock-widgets/mock-widget.d.ts +1 -1
- package/dist/widgets/number-line/number-line.d.ts +2 -12
- package/dist/widgets/numeric-input/numeric-input.class.d.ts +1 -1
- package/dist/widgets/numeric-input/numeric-input.d.ts +1 -1
- package/dist/widgets/orderer/orderer.d.ts +1 -2
- package/dist/widgets/passage/passage.d.ts +2 -4
- package/dist/widgets/passage-ref/passage-ref.d.ts +1 -6
- package/dist/widgets/plotter/plotter.d.ts +2 -2
- package/dist/widgets/radio/index.d.ts +0 -1
- package/dist/widgets/radio/multiple-choice-widget.new.d.ts +2 -2
- package/dist/widgets/radio/radio-component.d.ts +2 -2
- package/dist/widgets/radio/radio.ff.d.ts +4 -4
- package/dist/widgets/table/table.d.ts +9 -10
- package/dist/widgets.d.ts +3 -11
- package/package.json +43 -41
|
@@ -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<"new-radio-widget", boolean>;
|
|
86
|
+
flags?: Record<"new-radio-widget" | "image-widget-upgrade", boolean>;
|
|
87
87
|
}> & {
|
|
88
88
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
89
89
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -41,7 +41,7 @@ export declare const NumericInputComponent: React.ForwardRefExoticComponent<impo
|
|
|
41
41
|
hintProgressColor?: string;
|
|
42
42
|
canScrollPage?: boolean;
|
|
43
43
|
editorChangeDelay?: number;
|
|
44
|
-
flags?: Record<"new-radio-widget", boolean>;
|
|
44
|
+
flags?: Record<"new-radio-widget" | "image-widget-upgrade", boolean>;
|
|
45
45
|
}> & {
|
|
46
46
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
47
47
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -6,8 +6,7 @@ type Position = {
|
|
|
6
6
|
left: number;
|
|
7
7
|
top: number;
|
|
8
8
|
};
|
|
9
|
-
type
|
|
10
|
-
type OrdererProps = WidgetProps<RenderProps, PerseusOrdererUserInput>;
|
|
9
|
+
type OrdererProps = WidgetProps<OrdererPublicWidgetOptions, PerseusOrdererUserInput>;
|
|
11
10
|
type OrdererDefaultProps = Pick<OrdererProps, "options" | "height" | "layout" | "linterContext" | "userInput">;
|
|
12
11
|
type OrdererState = {
|
|
13
12
|
dragging: boolean;
|
|
@@ -2,7 +2,6 @@ import * as React from "react";
|
|
|
2
2
|
import { PerseusI18nContext } from "../../components/i18n-context";
|
|
3
3
|
import type { ParseState } from "./passage-markdown";
|
|
4
4
|
import type { SerializedHighlightSet } from "../../components/highlighting/types";
|
|
5
|
-
import type { ChangeableProps } from "../../mixins/changeable";
|
|
6
5
|
import type { WidgetProps, Widget } from "../../types";
|
|
7
6
|
import type { PassagePromptJSON } from "../../widget-ai-utils/passage/passage-ai-utils";
|
|
8
7
|
import type { PerseusPassageWidgetOptions, PerseusWidget } from "@khanacademy/perseus-core";
|
|
@@ -13,22 +12,21 @@ export declare class LineHeightMeasurer extends React.Component<Record<any, any>
|
|
|
13
12
|
render(): React.ReactNode;
|
|
14
13
|
}
|
|
15
14
|
type FindWidgetsCallback = (id: string, widgetInfo: PerseusWidget) => boolean;
|
|
16
|
-
type PassageProps =
|
|
15
|
+
type PassageProps = WidgetProps<PerseusPassageWidgetOptions> & {
|
|
17
16
|
findWidgets: (arg1: FindWidgetsCallback) => ReadonlyArray<Passage>;
|
|
18
|
-
highlights: SerializedHighlightSet;
|
|
19
17
|
};
|
|
20
18
|
type DefaultPassageProps = {
|
|
21
19
|
passageTitle: PassageProps["passageTitle"];
|
|
22
20
|
passageText: PassageProps["passageText"];
|
|
23
21
|
footnotes: PassageProps["footnotes"];
|
|
24
22
|
showLineNumbers: PassageProps["showLineNumbers"];
|
|
25
|
-
highlights: PassageProps["highlights"];
|
|
26
23
|
linterContext: PassageProps["linterContext"];
|
|
27
24
|
};
|
|
28
25
|
type PassageState = {
|
|
29
26
|
nLines: number | null | undefined;
|
|
30
27
|
startLineNumbersAfter: number;
|
|
31
28
|
stylesAreApplied: boolean;
|
|
29
|
+
highlights: SerializedHighlightSet;
|
|
32
30
|
};
|
|
33
31
|
export type Reference = {
|
|
34
32
|
startLine: number;
|
|
@@ -3,12 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { PerseusI18nContext } from "../../components/i18n-context";
|
|
4
4
|
import type { Widget, WidgetProps } from "../../types";
|
|
5
5
|
import type { PassageRefPromptJSON } from "../../widget-ai-utils/passage-ref/passage-ref-ai-utils";
|
|
6
|
-
type
|
|
7
|
-
passageNumber: PerseusPassageRefWidgetOptions["passageNumber"];
|
|
8
|
-
referenceNumber: PerseusPassageRefWidgetOptions["referenceNumber"];
|
|
9
|
-
summaryText: string;
|
|
10
|
-
};
|
|
11
|
-
type Props = WidgetProps<RenderProps>;
|
|
6
|
+
type Props = WidgetProps<PerseusPassageRefWidgetOptions>;
|
|
12
7
|
type DefaultProps = {
|
|
13
8
|
passageNumber: Props["passageNumber"];
|
|
14
9
|
referenceNumber: Props["referenceNumber"];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { type PerseusPlotterUserInput, type PerseusPlotterWidgetOptions, type PlotterPublicWidgetOptions } from "@khanacademy/perseus-core";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import { PerseusI18nContext } from "../../components/i18n-context";
|
|
3
4
|
import type { Widget, WidgetProps } from "../../types";
|
|
4
5
|
import type { UnsupportedWidgetPromptJSON } from "../../widget-ai-utils/unsupported-widget";
|
|
5
|
-
import type { PerseusPlotterUserInput, PerseusPlotterWidgetOptions, PlotterPublicWidgetOptions } from "@khanacademy/perseus-core";
|
|
6
6
|
type Props = WidgetProps<PlotterPublicWidgetOptions, PerseusPlotterUserInput> & {
|
|
7
7
|
labelInterval: NonNullable<PerseusPlotterWidgetOptions["labelInterval"]>;
|
|
8
8
|
picSize: NonNullable<PerseusPlotterWidgetOptions["picSize"]>;
|
|
@@ -130,7 +130,7 @@ export declare class Plotter extends React.Component<Props, State> implements Wi
|
|
|
130
130
|
hintProgressColor?: string;
|
|
131
131
|
canScrollPage?: boolean;
|
|
132
132
|
editorChangeDelay?: number;
|
|
133
|
-
flags?: Record<"new-radio-widget", boolean>;
|
|
133
|
+
flags?: Record<"new-radio-widget" | "image-widget-upgrade", boolean>;
|
|
134
134
|
}> & {
|
|
135
135
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
136
136
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -18,7 +18,7 @@ export interface ChoiceType {
|
|
|
18
18
|
revealNoneOfTheAbove: boolean;
|
|
19
19
|
disabled: boolean;
|
|
20
20
|
}
|
|
21
|
-
export type
|
|
21
|
+
export type RadioProps = {
|
|
22
22
|
numCorrect: number;
|
|
23
23
|
hasNoneOfTheAbove?: boolean;
|
|
24
24
|
multipleSelect?: boolean;
|
|
@@ -36,5 +36,5 @@ export interface RadioChoiceWithMetadata extends PerseusRadioChoice {
|
|
|
36
36
|
originalIndex: number;
|
|
37
37
|
correct?: boolean;
|
|
38
38
|
}
|
|
39
|
-
declare const Radio: React.ForwardRefExoticComponent<
|
|
39
|
+
declare const Radio: React.ForwardRefExoticComponent<RadioProps & import("../../types").UniversalWidgetProps<PerseusRadioRubric, PerseusRadioUserInput, Empty> & React.RefAttributes<Widget>>;
|
|
40
40
|
export default Radio;
|
|
@@ -4,7 +4,7 @@ import type { FocusFunction } from "./base-radio";
|
|
|
4
4
|
import type { WidgetProps, ChoiceState, Widget } from "../../types";
|
|
5
5
|
import type { RadioPromptJSON } from "../../widget-ai-utils/radio/radio-ai-utils";
|
|
6
6
|
import type { PerseusRadioChoice, ShowSolutions, PerseusRadioRubric, PerseusRadioUserInput, PerseusRadioWidgetOptions } from "@khanacademy/perseus-core";
|
|
7
|
-
export type
|
|
7
|
+
export type RadioProps = PerseusRadioWidgetOptions & {
|
|
8
8
|
numCorrect: number;
|
|
9
9
|
hasNoneOfTheAbove?: boolean;
|
|
10
10
|
multipleSelect?: boolean;
|
|
@@ -14,7 +14,7 @@ export type RenderProps = PerseusRadioWidgetOptions & {
|
|
|
14
14
|
showSolutions?: ShowSolutions;
|
|
15
15
|
choiceStates?: ChoiceState[];
|
|
16
16
|
};
|
|
17
|
-
export type Props = WidgetProps<
|
|
17
|
+
export type Props = WidgetProps<RadioProps, PerseusRadioUserInput, PerseusRadioRubric>;
|
|
18
18
|
type DefaultProps = Required<Pick<Props, "choices" | "multipleSelect" | "countChoices" | "deselectEnabled" | "linterContext" | "showSolutions">>;
|
|
19
19
|
export type RadioChoiceWithMetadata = PerseusRadioChoice & {
|
|
20
20
|
originalIndex: number;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type PerseusRadioRubric, type PerseusRadioUserInput } from "@khanacademy/perseus-core";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import RadioOld from "./radio-component";
|
|
4
|
-
import type {
|
|
4
|
+
import type { RadioProps } from "./radio-component";
|
|
5
5
|
import type { ChoiceState, WidgetProps } from "../../types";
|
|
6
6
|
import type { RadioPromptJSON } from "../../widget-ai-utils/radio/radio-ai-utils";
|
|
7
|
-
type Props = WidgetProps<
|
|
7
|
+
type Props = WidgetProps<RadioProps, PerseusRadioUserInput, PerseusRadioRubric>;
|
|
8
8
|
type ChoiceStateWithoutSelected = Omit<ChoiceState, "selected">;
|
|
9
9
|
type State = {
|
|
10
10
|
choiceStates: ChoiceStateWithoutSelected[];
|
|
@@ -29,8 +29,8 @@ declare class Radio extends RadioOld {
|
|
|
29
29
|
* [LEMS-3185] do not trust serializedState
|
|
30
30
|
*/
|
|
31
31
|
getSerializedState(): {
|
|
32
|
+
hasNoneOfTheAbove: boolean;
|
|
32
33
|
choices: import("@khanacademy/perseus-core").PerseusRadioChoice[] & import("./radio-component").RadioChoiceWithMetadata[];
|
|
33
|
-
hasNoneOfTheAbove?: boolean;
|
|
34
34
|
countChoices?: boolean;
|
|
35
35
|
numCorrect: number;
|
|
36
36
|
multipleSelect?: boolean;
|
|
@@ -77,7 +77,7 @@ declare class Radio extends RadioOld {
|
|
|
77
77
|
hintProgressColor?: string;
|
|
78
78
|
canScrollPage?: boolean;
|
|
79
79
|
editorChangeDelay?: number;
|
|
80
|
-
flags?: Record<"new-radio-widget", boolean>;
|
|
80
|
+
flags?: Record<"new-radio-widget" | "image-widget-upgrade", boolean>;
|
|
81
81
|
}> & {
|
|
82
82
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
83
83
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import ReactDOM from "react-dom";
|
|
3
3
|
import { PerseusI18nContext } from "../../components/i18n-context";
|
|
4
|
-
import type { ChangeableProps } from "../../mixins/changeable";
|
|
5
4
|
import type { FocusPath, Widget, WidgetProps } from "../../types";
|
|
6
5
|
import type { PerseusTableWidgetOptions, PerseusTableUserInput } from "@khanacademy/perseus-core";
|
|
7
6
|
type EditorProps = {
|
|
8
7
|
editableHeaders: boolean;
|
|
9
8
|
Editor: any;
|
|
10
9
|
};
|
|
11
|
-
type
|
|
12
|
-
type Props = WidgetProps<RenderProps, PerseusTableUserInput> & ChangeableProps & EditorProps;
|
|
10
|
+
type Props = WidgetProps<PerseusTableWidgetOptions, PerseusTableUserInput> & EditorProps;
|
|
13
11
|
type DefaultProps = {
|
|
14
12
|
apiOptions: Props["apiOptions"];
|
|
15
13
|
headers: Props["headers"];
|
|
@@ -42,9 +40,9 @@ declare class Table extends React.Component<Props> implements Widget {
|
|
|
42
40
|
*/
|
|
43
41
|
getSerializedState(): {
|
|
44
42
|
answers: PerseusTableUserInput;
|
|
45
|
-
columns: number;
|
|
46
|
-
rows: number;
|
|
47
43
|
headers: string[];
|
|
44
|
+
rows: number;
|
|
45
|
+
columns: number;
|
|
48
46
|
reviewModeRubric?: Empty | null | undefined;
|
|
49
47
|
trackInteraction: (extraData?: Empty | undefined) => void;
|
|
50
48
|
widgetId: string;
|
|
@@ -54,7 +52,10 @@ declare class Table extends React.Component<Props> implements Widget {
|
|
|
54
52
|
problemNum: number | null | undefined;
|
|
55
53
|
apiOptions: Readonly<Readonly<{
|
|
56
54
|
isArticle?: boolean;
|
|
57
|
-
onFocusChange?: (newFocusPath: FocusPath, oldFocusPath: FocusPath, keypadHeight
|
|
55
|
+
onFocusChange?: (newFocusPath: FocusPath, oldFocusPath: FocusPath, keypadHeight? /**
|
|
56
|
+
* @deprecated and likely very broken API
|
|
57
|
+
* [LEMS-3185] do not trust serializedState
|
|
58
|
+
*/: number, focusedElement?: HTMLElement) => unknown;
|
|
58
59
|
GroupMetadataEditor?: React.ComponentType<any>;
|
|
59
60
|
showAlignmentOptions?: boolean;
|
|
60
61
|
readOnly?: boolean;
|
|
@@ -85,7 +86,7 @@ declare class Table extends React.Component<Props> implements Widget {
|
|
|
85
86
|
hintProgressColor?: string;
|
|
86
87
|
canScrollPage?: boolean;
|
|
87
88
|
editorChangeDelay?: number;
|
|
88
|
-
flags?: Record<"new-radio-widget", boolean>;
|
|
89
|
+
flags?: Record<"new-radio-widget" | "image-widget-upgrade", boolean>;
|
|
89
90
|
}> & {
|
|
90
91
|
baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
|
|
91
92
|
canScrollPage: NonNullable<import("../..").APIOptions["canScrollPage"]>;
|
|
@@ -106,9 +107,7 @@ declare class Table extends React.Component<Props> implements Widget {
|
|
|
106
107
|
findWidgets: (criterion: import("../../types").FilterCriterion) => ReadonlyArray<Widget>;
|
|
107
108
|
reviewMode: boolean;
|
|
108
109
|
showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
|
|
109
|
-
onChange: import("../..").ChangeHandler
|
|
110
|
-
[key: string]: any;
|
|
111
|
-
}, callback?: (() => unknown) | null | undefined, silent?: boolean) => unknown);
|
|
110
|
+
onChange: import("../..").ChangeHandler;
|
|
112
111
|
handleUserInput: (newUserInput: PerseusTableUserInput, cb?: () => void, silent?: boolean) => void;
|
|
113
112
|
isLastUsedWidget: boolean;
|
|
114
113
|
linterContext: import("@khanacademy/perseus-linter").LinterContextProps;
|
package/dist/widgets.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { PerseusWidget, Version } from "@khanacademy/perseus-core";
|
|
1
|
+
import type { Tracking, WidgetExports } from "./types";
|
|
2
|
+
import type { Version } from "@khanacademy/perseus-core";
|
|
4
3
|
import type * as React from "react";
|
|
5
4
|
type Editor = any;
|
|
6
5
|
export declare const registerWidget: (type: string, widget: WidgetExports) => void;
|
|
@@ -29,28 +28,21 @@ export declare const replaceDeprecatedEditors: () => void;
|
|
|
29
28
|
export declare const getWidget: (type: string) => React.ComponentType<any> | null | undefined;
|
|
30
29
|
export declare const getWidgetExport: (type: string) => WidgetExports | null;
|
|
31
30
|
export declare const getEditor: (type: string) => Editor | null;
|
|
32
|
-
export declare const getTransform: (type: string) => WidgetTransform | null | undefined;
|
|
33
31
|
export declare const getVersion: (type: string) => Version | undefined;
|
|
34
32
|
export declare const getVersionVector: () => {
|
|
35
33
|
[key: string]: Version;
|
|
36
34
|
};
|
|
37
35
|
export declare const getPublicWidgets: () => Record<string, WidgetExports>;
|
|
38
36
|
export declare const getAllWidgetTypes: () => ReadonlyArray<string>;
|
|
39
|
-
export declare const getRendererPropsForWidgetInfo: (widgetInfo: PerseusWidget, strings: PerseusStrings, problemNum?: number) => PerseusWidget;
|
|
40
37
|
/**
|
|
41
38
|
* Handling for static mode for widgets that support it.
|
|
42
39
|
*/
|
|
43
40
|
/**
|
|
44
41
|
* Returns true iff the widget supports static mode.
|
|
45
42
|
* A widget implicitly supports static mode if it exports a
|
|
46
|
-
*
|
|
43
|
+
* getCorrectUserInput function.
|
|
47
44
|
*/
|
|
48
45
|
export declare const supportsStaticMode: (type: string) => boolean | undefined;
|
|
49
|
-
/**
|
|
50
|
-
* Return the staticTransform function used to convert the editorProps to
|
|
51
|
-
* the rendered widget state.
|
|
52
|
-
*/
|
|
53
|
-
export declare const getStaticTransform: (type: string) => WidgetTransform | null | undefined;
|
|
54
46
|
/**
|
|
55
47
|
* Returns the tracking option for the widget. The default is "",
|
|
56
48
|
* which means simply to track interactions once. The other available
|
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": "
|
|
6
|
+
"version": "69.0.1",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -42,36 +42,37 @@
|
|
|
42
42
|
"tiny-invariant": "1.3.1",
|
|
43
43
|
"uuid": "^10.0.0",
|
|
44
44
|
"@khanacademy/kas": "2.1.0",
|
|
45
|
-
"@khanacademy/keypad-context": "3.2.
|
|
46
|
-
"@khanacademy/kmath": "2.2.
|
|
47
|
-
"@khanacademy/math-input": "26.2.
|
|
48
|
-
"@khanacademy/perseus-core": "19.0.
|
|
49
|
-
"@khanacademy/perseus-
|
|
50
|
-
"@khanacademy/perseus-
|
|
45
|
+
"@khanacademy/keypad-context": "3.2.5",
|
|
46
|
+
"@khanacademy/kmath": "2.2.5",
|
|
47
|
+
"@khanacademy/math-input": "26.2.5",
|
|
48
|
+
"@khanacademy/perseus-core": "19.0.3",
|
|
49
|
+
"@khanacademy/perseus-score": "7.7.5",
|
|
50
|
+
"@khanacademy/perseus-linter": "4.3.5",
|
|
51
51
|
"@khanacademy/perseus-utils": "2.1.0",
|
|
52
52
|
"@khanacademy/pure-markdown": "2.2.0",
|
|
53
53
|
"@khanacademy/simple-markdown": "2.1.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@khanacademy/wonder-blocks-banner": "4.
|
|
57
|
-
"@khanacademy/wonder-blocks-button": "11.
|
|
58
|
-
"@khanacademy/wonder-blocks-clickable": "7.1.
|
|
56
|
+
"@khanacademy/wonder-blocks-banner": "4.4.0",
|
|
57
|
+
"@khanacademy/wonder-blocks-button": "11.2.1",
|
|
58
|
+
"@khanacademy/wonder-blocks-clickable": "7.1.25",
|
|
59
59
|
"@khanacademy/wonder-blocks-core": "12.4.0",
|
|
60
60
|
"@khanacademy/wonder-blocks-data": "14.1.5",
|
|
61
|
-
"@khanacademy/wonder-blocks-dropdown": "10.3.
|
|
62
|
-
"@khanacademy/wonder-blocks-form": "7.3.
|
|
63
|
-
"@khanacademy/wonder-blocks-icon-button": "10.
|
|
64
|
-
"@khanacademy/wonder-blocks-icon": "5.2.
|
|
65
|
-
"@khanacademy/wonder-blocks-labeled-field": "4.0.
|
|
66
|
-
"@khanacademy/wonder-blocks-layout": "3.1.
|
|
67
|
-
"@khanacademy/wonder-blocks-link": "9.2.
|
|
68
|
-
"@khanacademy/wonder-blocks-
|
|
69
|
-
"@khanacademy/wonder-blocks-
|
|
70
|
-
"@khanacademy/wonder-blocks-
|
|
71
|
-
"@khanacademy/wonder-blocks-
|
|
72
|
-
"@khanacademy/wonder-blocks-
|
|
73
|
-
"@khanacademy/wonder-blocks-
|
|
74
|
-
"@khanacademy/wonder-blocks-
|
|
61
|
+
"@khanacademy/wonder-blocks-dropdown": "10.3.11",
|
|
62
|
+
"@khanacademy/wonder-blocks-form": "7.3.7",
|
|
63
|
+
"@khanacademy/wonder-blocks-icon-button": "10.5.0",
|
|
64
|
+
"@khanacademy/wonder-blocks-icon": "5.2.19",
|
|
65
|
+
"@khanacademy/wonder-blocks-labeled-field": "4.0.5",
|
|
66
|
+
"@khanacademy/wonder-blocks-layout": "3.1.36",
|
|
67
|
+
"@khanacademy/wonder-blocks-link": "9.2.3",
|
|
68
|
+
"@khanacademy/wonder-blocks-modal": "8.3.1",
|
|
69
|
+
"@khanacademy/wonder-blocks-pill": "3.1.40",
|
|
70
|
+
"@khanacademy/wonder-blocks-popover": "6.1.32",
|
|
71
|
+
"@khanacademy/wonder-blocks-progress-spinner": "3.1.36",
|
|
72
|
+
"@khanacademy/wonder-blocks-switch": "3.3.18",
|
|
73
|
+
"@khanacademy/wonder-blocks-tokens": "13.0.0",
|
|
74
|
+
"@khanacademy/wonder-blocks-tooltip": "4.1.46",
|
|
75
|
+
"@khanacademy/wonder-blocks-typography": "4.2.21",
|
|
75
76
|
"@khanacademy/wonder-stuff-core": "1.5.5",
|
|
76
77
|
"@phosphor-icons/core": "2.0.2",
|
|
77
78
|
"@popperjs/core": "2.10.2",
|
|
@@ -90,25 +91,26 @@
|
|
|
90
91
|
"raphael": "1.5.4"
|
|
91
92
|
},
|
|
92
93
|
"peerDependencies": {
|
|
93
|
-
"@khanacademy/wonder-blocks-banner": "^4.
|
|
94
|
-
"@khanacademy/wonder-blocks-button": "^11.
|
|
95
|
-
"@khanacademy/wonder-blocks-clickable": "^7.1.
|
|
94
|
+
"@khanacademy/wonder-blocks-banner": "^4.4.0",
|
|
95
|
+
"@khanacademy/wonder-blocks-button": "^11.2.1",
|
|
96
|
+
"@khanacademy/wonder-blocks-clickable": "^7.1.25",
|
|
96
97
|
"@khanacademy/wonder-blocks-core": "^12.4.0",
|
|
97
98
|
"@khanacademy/wonder-blocks-data": "^14.1.5",
|
|
98
|
-
"@khanacademy/wonder-blocks-dropdown": "^10.3.
|
|
99
|
-
"@khanacademy/wonder-blocks-form": "^7.3.
|
|
100
|
-
"@khanacademy/wonder-blocks-icon": "^5.2.
|
|
101
|
-
"@khanacademy/wonder-blocks-icon-button": "^10.
|
|
102
|
-
"@khanacademy/wonder-blocks-labeled-field": "^4.0.
|
|
103
|
-
"@khanacademy/wonder-blocks-layout": "^3.1.
|
|
104
|
-
"@khanacademy/wonder-blocks-link": "^9.2.
|
|
105
|
-
"@khanacademy/wonder-blocks-
|
|
106
|
-
"@khanacademy/wonder-blocks-
|
|
107
|
-
"@khanacademy/wonder-blocks-
|
|
108
|
-
"@khanacademy/wonder-blocks-
|
|
109
|
-
"@khanacademy/wonder-blocks-
|
|
110
|
-
"@khanacademy/wonder-blocks-
|
|
111
|
-
"@khanacademy/wonder-blocks-
|
|
99
|
+
"@khanacademy/wonder-blocks-dropdown": "^10.3.11",
|
|
100
|
+
"@khanacademy/wonder-blocks-form": "^7.3.7",
|
|
101
|
+
"@khanacademy/wonder-blocks-icon": "^5.2.19",
|
|
102
|
+
"@khanacademy/wonder-blocks-icon-button": "^10.5.0",
|
|
103
|
+
"@khanacademy/wonder-blocks-labeled-field": "^4.0.5",
|
|
104
|
+
"@khanacademy/wonder-blocks-layout": "^3.1.36",
|
|
105
|
+
"@khanacademy/wonder-blocks-link": "^9.2.3",
|
|
106
|
+
"@khanacademy/wonder-blocks-modal": "^8.3.1",
|
|
107
|
+
"@khanacademy/wonder-blocks-pill": "^3.1.40",
|
|
108
|
+
"@khanacademy/wonder-blocks-popover": "^6.1.32",
|
|
109
|
+
"@khanacademy/wonder-blocks-progress-spinner": "^3.1.36",
|
|
110
|
+
"@khanacademy/wonder-blocks-switch": "^3.3.18",
|
|
111
|
+
"@khanacademy/wonder-blocks-tokens": "^13.0.0",
|
|
112
|
+
"@khanacademy/wonder-blocks-tooltip": "^4.1.46",
|
|
113
|
+
"@khanacademy/wonder-blocks-typography": "^4.2.21",
|
|
112
114
|
"@khanacademy/wonder-stuff-core": "^1.5.5",
|
|
113
115
|
"@phosphor-icons/core": "^2.0.2",
|
|
114
116
|
"@popperjs/core": "^2.10.2",
|