@khanacademy/perseus 68.0.1 → 69.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.
- package/dist/es/index.css +6 -4
- package/dist/es/index.css.map +1 -1
- package/dist/es/index.js +43 -46
- package/dist/es/index.js.map +1 -1
- package/dist/index.css +6 -4
- package/dist/index.css.map +1 -1
- package/dist/index.js +42 -45
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts +1 -12
- package/dist/server-item-renderer.d.ts +0 -6
- 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/free-response/free-response.d.ts +1 -2
- package/dist/widgets/graded-group/graded-group.d.ts +0 -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/interactive-graph.d.ts +3 -3
- package/dist/widgets/matcher/matcher.d.ts +1 -2
- package/dist/widgets/matrix/matrix.d.ts +2 -7
- 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 +1 -1
- 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 +3 -3
- package/dist/widgets/table/table.d.ts +8 -9
- package/dist/widgets.d.ts +3 -11
- package/package.json +43 -43
|
@@ -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;
|
|
@@ -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;
|
|
@@ -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.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -42,36 +42,36 @@
|
|
|
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/
|
|
47
|
-
"@khanacademy/
|
|
48
|
-
"@khanacademy/perseus-
|
|
49
|
-
"@khanacademy/perseus-
|
|
50
|
-
"@khanacademy/perseus-score": "7.7.3",
|
|
45
|
+
"@khanacademy/keypad-context": "3.2.4",
|
|
46
|
+
"@khanacademy/math-input": "26.2.4",
|
|
47
|
+
"@khanacademy/perseus-core": "19.0.2",
|
|
48
|
+
"@khanacademy/perseus-linter": "4.3.4",
|
|
49
|
+
"@khanacademy/perseus-score": "7.7.4",
|
|
51
50
|
"@khanacademy/perseus-utils": "2.1.0",
|
|
51
|
+
"@khanacademy/kmath": "2.2.4",
|
|
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-pill": "3.1.
|
|
69
|
-
"@khanacademy/wonder-blocks-popover": "6.1.
|
|
70
|
-
"@khanacademy/wonder-blocks-progress-spinner": "3.1.
|
|
71
|
-
"@khanacademy/wonder-blocks-switch": "3.3.
|
|
72
|
-
"@khanacademy/wonder-blocks-tokens": "
|
|
73
|
-
"@khanacademy/wonder-blocks-tooltip": "4.1.
|
|
74
|
-
"@khanacademy/wonder-blocks-typography": "4.2.
|
|
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-pill": "3.1.40",
|
|
69
|
+
"@khanacademy/wonder-blocks-popover": "6.1.32",
|
|
70
|
+
"@khanacademy/wonder-blocks-progress-spinner": "3.1.36",
|
|
71
|
+
"@khanacademy/wonder-blocks-switch": "3.3.18",
|
|
72
|
+
"@khanacademy/wonder-blocks-tokens": "13.0.0",
|
|
73
|
+
"@khanacademy/wonder-blocks-tooltip": "4.1.46",
|
|
74
|
+
"@khanacademy/wonder-blocks-typography": "4.2.21",
|
|
75
75
|
"@khanacademy/wonder-stuff-core": "1.5.5",
|
|
76
76
|
"@phosphor-icons/core": "2.0.2",
|
|
77
77
|
"@popperjs/core": "2.10.2",
|
|
@@ -86,29 +86,29 @@
|
|
|
86
86
|
"react-dom": "18.2.0",
|
|
87
87
|
"react-popper": "^2.2.5",
|
|
88
88
|
"underscore": "1.4.4",
|
|
89
|
-
"
|
|
90
|
-
"
|
|
89
|
+
"raphael": "1.5.4",
|
|
90
|
+
"perseus-build-settings": "0.9.0"
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
93
|
-
"@khanacademy/wonder-blocks-banner": "^4.
|
|
94
|
-
"@khanacademy/wonder-blocks-button": "^11.
|
|
95
|
-
"@khanacademy/wonder-blocks-clickable": "^7.1.
|
|
93
|
+
"@khanacademy/wonder-blocks-banner": "^4.4.0",
|
|
94
|
+
"@khanacademy/wonder-blocks-button": "^11.2.1",
|
|
95
|
+
"@khanacademy/wonder-blocks-clickable": "^7.1.25",
|
|
96
96
|
"@khanacademy/wonder-blocks-core": "^12.4.0",
|
|
97
97
|
"@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-pill": "^3.1.
|
|
106
|
-
"@khanacademy/wonder-blocks-popover": "^6.1.
|
|
107
|
-
"@khanacademy/wonder-blocks-progress-spinner": "^3.1.
|
|
108
|
-
"@khanacademy/wonder-blocks-switch": "^3.3.
|
|
109
|
-
"@khanacademy/wonder-blocks-tokens": "^
|
|
110
|
-
"@khanacademy/wonder-blocks-tooltip": "^4.1.
|
|
111
|
-
"@khanacademy/wonder-blocks-typography": "^4.2.
|
|
98
|
+
"@khanacademy/wonder-blocks-dropdown": "^10.3.11",
|
|
99
|
+
"@khanacademy/wonder-blocks-form": "^7.3.7",
|
|
100
|
+
"@khanacademy/wonder-blocks-icon": "^5.2.19",
|
|
101
|
+
"@khanacademy/wonder-blocks-icon-button": "^10.5.0",
|
|
102
|
+
"@khanacademy/wonder-blocks-labeled-field": "^4.0.5",
|
|
103
|
+
"@khanacademy/wonder-blocks-layout": "^3.1.36",
|
|
104
|
+
"@khanacademy/wonder-blocks-link": "^9.2.3",
|
|
105
|
+
"@khanacademy/wonder-blocks-pill": "^3.1.40",
|
|
106
|
+
"@khanacademy/wonder-blocks-popover": "^6.1.32",
|
|
107
|
+
"@khanacademy/wonder-blocks-progress-spinner": "^3.1.36",
|
|
108
|
+
"@khanacademy/wonder-blocks-switch": "^3.3.18",
|
|
109
|
+
"@khanacademy/wonder-blocks-tokens": "^13.0.0",
|
|
110
|
+
"@khanacademy/wonder-blocks-tooltip": "^4.1.46",
|
|
111
|
+
"@khanacademy/wonder-blocks-typography": "^4.2.21",
|
|
112
112
|
"@khanacademy/wonder-stuff-core": "^1.5.5",
|
|
113
113
|
"@phosphor-icons/core": "^2.0.2",
|
|
114
114
|
"@popperjs/core": "^2.10.2",
|