@khanacademy/perseus 4.0.2 → 5.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/CHANGELOG.md +15 -0
- package/dist/components/highlighting/highlightable-content.d.ts +4 -4
- package/dist/components/highlighting/highlightable-content.js.flow +4 -7
- package/dist/components/highlighting/ui/highlight-renderer.d.ts +6 -6
- package/dist/components/highlighting/ui/highlight-renderer.js.flow +6 -8
- package/dist/components/highlighting/ui/highlight-set-renderer.d.ts +5 -5
- package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +5 -8
- package/dist/components/highlighting/ui/highlight-tooltip.d.ts +2 -2
- package/dist/components/highlighting/ui/highlight-tooltip.js.flow +2 -4
- package/dist/components/highlighting/ui/highlighting-ui.d.ts +2 -2
- package/dist/components/highlighting/ui/highlighting-ui.js.flow +2 -2
- package/dist/components/highlighting/ui/selection-tracker.d.ts +5 -5
- package/dist/components/highlighting/ui/selection-tracker.js.flow +5 -7
- package/dist/components/highlighting/word-indexer.d.ts +2 -2
- package/dist/components/highlighting/word-indexer.js.flow +2 -2
- package/dist/components/inline-icon.d.ts +35 -1
- package/dist/components/inline-icon.js.flow +11 -1
- package/dist/components/simple-keypad-input.d.ts +1 -1
- package/dist/components/simple-keypad-input.js.flow +1 -1
- package/dist/components/tex-buttons.d.ts +2 -2
- package/dist/components/tex-buttons.js.flow +2 -2
- package/dist/error-boundary.d.ts +4 -4
- package/dist/error-boundary.js.flow +4 -6
- package/dist/es/index.js +7 -10
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +7 -10
- package/dist/index.js.map +1 -1
- package/dist/perseus-types.d.ts +0 -1
- package/dist/perseus-types.js.flow +0 -1
- package/dist/widgets/__stories__/test-keypad-context-wrapper.d.ts +2 -2
- package/dist/widgets/__stories__/test-keypad-context-wrapper.js.flow +2 -4
- package/dist/widgets/expression.d.ts +2 -2
- package/dist/widgets/expression.js.flow +2 -2
- package/dist/widgets/interaction/element-container.d.ts +5 -4
- package/dist/widgets/interaction/element-container.js.flow +6 -11
- package/dist/widgets/label-image/marker.d.ts +4 -4
- package/dist/widgets/label-image/marker.js.flow +4 -6
- package/dist/widgets/numeric-input.d.ts +0 -2
- package/dist/widgets/numeric-input.js.flow +0 -4
- package/dist/widgets/radio/base-radio.d.ts +7 -1
- package/dist/widgets/radio/base-radio.js.flow +7 -1
- package/dist/widgets/radio/choice-icon/choice-icon.d.ts +1 -1
- package/dist/widgets/radio/choice-icon/choice-icon.js.flow +1 -1
- package/dist/widgets/radio/choice-icon/cross-out-line.d.ts +2 -2
- package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +2 -2
- package/dist/widgets/radio/focus-ring.d.ts +8 -1
- package/dist/widgets/radio/focus-ring.js.flow +8 -1
- package/dist/widgets/radio/option-status.d.ts +2 -2
- package/dist/widgets/radio/option-status.js.flow +2 -2
- package/dist/widgets/video-transcript-link.d.ts +1 -1
- package/dist/widgets/video-transcript-link.js.flow +1 -1
- package/package.json +4 -4
- package/src/__stories__/item-renderer.stories.tsx +2 -6
- package/src/__stories__/server-item-renderer.stories.tsx +2 -6
- package/src/components/__stories__/button-group.stories.tsx +2 -6
- package/src/components/__stories__/fixed-to-responsive.stories.tsx +14 -16
- package/src/components/__stories__/graph.stories.tsx +3 -5
- package/src/components/__stories__/graphie.stories.tsx +3 -5
- package/src/components/__stories__/hud.stories.tsx +2 -6
- package/src/components/__stories__/icon.stories.tsx +1 -1
- package/src/components/__stories__/image-loader.stories.tsx +4 -4
- package/src/components/__stories__/info-tip.stories.tsx +2 -6
- package/src/components/__stories__/inline-icon.stories.tsx +4 -8
- package/src/components/__stories__/input-with-examples.stories.tsx +6 -10
- package/src/components/__stories__/lint.stories.tsx +12 -12
- package/src/components/__stories__/math-input.stories.tsx +4 -8
- package/src/components/__stories__/math-output.stories.tsx +3 -5
- package/src/components/__stories__/multi-button-group.stories.tsx +2 -6
- package/src/components/__stories__/number-input.stories.tsx +6 -8
- package/src/components/__stories__/prop-check-box.stories.tsx +9 -9
- package/src/components/__stories__/range-input.stories.tsx +4 -6
- package/src/components/__stories__/simple-keypad-input.stories.tsx +2 -4
- package/src/components/__stories__/sortable.stories.tsx +15 -15
- package/src/components/__stories__/stub-tag-editor.stories.tsx +5 -9
- package/src/components/__stories__/svg-image.stories.tsx +10 -18
- package/src/components/__stories__/tex.stories.tsx +1 -3
- package/src/components/__stories__/text-buttons.stories.tsx +10 -22
- package/src/components/__stories__/text-input.stories.tsx +4 -10
- package/src/components/__stories__/text-list-editor.stories.tsx +1 -3
- package/src/components/__stories__/zoomable-tex.stories.tsx +6 -4
- package/src/components/__stories__/zoomable.stories.tsx +1 -3
- package/src/components/highlighting/highlightable-content.tsx +4 -7
- package/src/components/highlighting/ui/highlight-renderer.tsx +6 -9
- package/src/components/highlighting/ui/highlight-set-renderer.tsx +5 -8
- package/src/components/highlighting/ui/highlight-tooltip.tsx +2 -2
- package/src/components/highlighting/ui/highlighting-ui.tsx +2 -2
- package/src/components/highlighting/ui/selection-tracker.tsx +5 -8
- package/src/components/highlighting/word-indexer.tsx +2 -2
- package/src/components/inline-icon.tsx +2 -2
- package/src/components/simple-keypad-input.tsx +2 -2
- package/src/components/tex-buttons.tsx +2 -2
- package/src/components/visibility-observer/__stories__/visibility-observer.stories.tsx +1 -3
- package/src/error-boundary.tsx +4 -7
- package/src/multi-items/__stories__/multi-renderer.stories.tsx +1 -1
- package/src/multi-items/__tests__/multi-renderer.test.tsx +2 -3
- package/src/perseus-types.ts +0 -3
- package/src/util/graphie.ts +3 -3
- package/src/widgets/__stories__/categorizer.stories.tsx +1 -1
- package/src/widgets/__stories__/cs-program.stories.tsx +1 -1
- package/src/widgets/__stories__/definition.stories.tsx +3 -7
- package/src/widgets/__stories__/dropdown.stories.tsx +1 -1
- package/src/widgets/__stories__/explanation.stories.tsx +2 -2
- package/src/widgets/__stories__/expression.stories.tsx +5 -11
- package/src/widgets/__stories__/graded-group-set.stories.tsx +1 -1
- package/src/widgets/__stories__/graded-group.stories.tsx +1 -1
- package/src/widgets/__stories__/grapher.stories.tsx +7 -21
- package/src/widgets/__stories__/group.stories.tsx +1 -1
- package/src/widgets/__stories__/iframe.stories.tsx +1 -1
- package/src/widgets/__stories__/image.stories.tsx +1 -1
- package/src/widgets/__stories__/input-number.stories.tsx +3 -12
- package/src/widgets/__stories__/interaction.stories.tsx +1 -1
- package/src/widgets/__stories__/interactive-graph.stories.tsx +9 -9
- package/src/widgets/__stories__/matcher.stories.tsx +1 -1
- package/src/widgets/__stories__/matrix.stories.tsx +1 -1
- package/src/widgets/__stories__/number-line.stories.tsx +1 -1
- package/src/widgets/__stories__/numeric-input.stories.tsx +3 -5
- package/src/widgets/__stories__/orderer.stories.tsx +1 -1
- package/src/widgets/__stories__/passage-ref.stories.tsx +2 -2
- package/src/widgets/__stories__/passage.stories.tsx +3 -9
- package/src/widgets/__stories__/radio.stories.tsx +3 -5
- package/src/widgets/__stories__/sorter.stories.tsx +1 -1
- package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +2 -4
- package/src/widgets/__stories__/transformer.stories.tsx +1 -1
- package/src/widgets/__stories__/unit.stories.tsx +1 -3
- package/src/widgets/__stories__/video-transcript-link.stories.tsx +2 -6
- package/src/widgets/__stories__/video.stories.tsx +1 -1
- package/src/widgets/__testdata__/group.testdata.ts +0 -2
- package/src/widgets/__tests__/group.test.tsx +0 -2
- package/src/widgets/__tests__/radio/focus-ring.test.tsx +0 -1
- package/src/widgets/expression.tsx +3 -3
- package/src/widgets/interaction/element-container.tsx +7 -8
- package/src/widgets/label-image/__stories__/answer-choices.stories.tsx +2 -4
- package/src/widgets/label-image/__stories__/marker.stories.tsx +9 -19
- package/src/widgets/label-image/marker.tsx +4 -4
- package/src/widgets/numeric-input.tsx +0 -3
- package/src/widgets/passage/passage-markdown.tsx +2 -2
- package/src/widgets/radio/__stories__/base-radio.stories.tsx +11 -19
- package/src/widgets/radio/__stories__/choice-icon.stories.tsx +9 -11
- package/src/widgets/radio/__stories__/choice-none-above.stories.tsx +1 -1
- package/src/widgets/radio/__stories__/choice.stories.tsx +4 -4
- package/src/widgets/radio/__stories__/focus-ring.stories.tsx +1 -1
- package/src/widgets/radio/__stories__/option-status.stories.tsx +2 -4
- package/src/widgets/radio/base-radio.tsx +1 -1
- package/src/widgets/radio/choice-icon/choice-icon.tsx +5 -5
- package/src/widgets/radio/choice-icon/cross-out-line.tsx +1 -3
- package/src/widgets/radio/choice-none-above.tsx +2 -2
- package/src/widgets/radio/choice.tsx +1 -3
- package/src/widgets/radio/focus-ring.tsx +1 -1
- package/src/widgets/radio/option-status.tsx +2 -4
- package/src/widgets/radio/widget.tsx +0 -1
- package/src/widgets/reaction-diagram.tsx +2 -2
- package/src/widgets/video-transcript-link.tsx +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/dist/perseus-types.d.ts
CHANGED
|
@@ -361,7 +361,6 @@ export type PerseusNumericInputWidgetOptions = {
|
|
|
361
361
|
labelText: string;
|
|
362
362
|
size: string;
|
|
363
363
|
coefficient: boolean;
|
|
364
|
-
multipleNumberInput?: boolean;
|
|
365
364
|
rightAlign?: boolean;
|
|
366
365
|
static: boolean;
|
|
367
366
|
answerForms?: ReadonlyArray<PerseusNumericInputAnswerForm>;
|
|
@@ -532,7 +532,6 @@ export type PerseusNumericInputWidgetOptions = {|
|
|
|
532
532
|
labelText: string,
|
|
533
533
|
size: string,
|
|
534
534
|
coefficient: boolean,
|
|
535
|
-
multipleNumberInput?: boolean,
|
|
536
535
|
rightAlign?: boolean,
|
|
537
536
|
static: boolean,
|
|
538
537
|
answerForms?: $ReadOnlyArray<PerseusNumericInputAnswerForm>,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
type
|
|
2
|
+
type Props = {
|
|
3
3
|
children: React.ReactElement;
|
|
4
4
|
};
|
|
5
|
-
declare const TestKeypadContextWrapper: (props:
|
|
5
|
+
declare const TestKeypadContextWrapper: (props: Props) => React.ReactElement;
|
|
6
6
|
export default TestKeypadContextWrapper;
|
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
* @flow
|
|
6
6
|
*/
|
|
7
7
|
import * as React from "react";
|
|
8
|
-
declare type
|
|
8
|
+
declare type Props = {|
|
|
9
9
|
children: React.Element<any>,
|
|
10
10
|
|};
|
|
11
|
-
declare var TestKeypadContextWrapper: (
|
|
12
|
-
props: TestKeypadContextWrapperProps
|
|
13
|
-
) => React.Element<any>;
|
|
11
|
+
declare var TestKeypadContextWrapper: (props: Props) => React.Element<any>;
|
|
14
12
|
declare export default typeof TestKeypadContextWrapper;
|
|
@@ -30,6 +30,8 @@ type DefaultProps = {
|
|
|
30
30
|
};
|
|
31
31
|
type OnInputErrorFunctionType = (arg1?: any, arg2?: any, arg3?: any) => boolean | null | undefined;
|
|
32
32
|
export declare class Expression extends React.Component<Props, ExpressionState> {
|
|
33
|
+
_isMounted: boolean;
|
|
34
|
+
errorTimeout: null | number;
|
|
33
35
|
static validate(userInput: string, rubric: Rubric, onInputError?: OnInputErrorFunctionType): PerseusScore;
|
|
34
36
|
static getUserInputFromProps(props: Props): string;
|
|
35
37
|
static getOneCorrectAnswerFromRubric(rubric: Rubric): string | null | undefined;
|
|
@@ -39,8 +41,6 @@ export declare class Expression extends React.Component<Props, ExpressionState>
|
|
|
39
41
|
componentDidMount: () => void;
|
|
40
42
|
componentDidUpdate: (prevProps: Props) => void;
|
|
41
43
|
componentWillUnmount: () => void;
|
|
42
|
-
_isMounted: boolean;
|
|
43
|
-
errorTimeout: null | number;
|
|
44
44
|
simpleValidate: (rubric: Rubric, onInputError: OnInputErrorFunctionType) => PerseusScore;
|
|
45
45
|
getUserInput: () => string;
|
|
46
46
|
change: (...args: any) => any | undefined;
|
|
@@ -46,6 +46,8 @@ declare type OnInputErrorFunctionType = (
|
|
|
46
46
|
declare export class Expression
|
|
47
47
|
extends React.Component<Props, ExpressionState>
|
|
48
48
|
{
|
|
49
|
+
_isMounted: boolean;
|
|
50
|
+
errorTimeout: null | number;
|
|
49
51
|
static validate(
|
|
50
52
|
userInput: string,
|
|
51
53
|
rubric: Rubric,
|
|
@@ -59,8 +61,6 @@ declare export class Expression
|
|
|
59
61
|
componentDidMount: () => void;
|
|
60
62
|
componentDidUpdate: (prevProps: Props) => void;
|
|
61
63
|
componentWillUnmount: () => void;
|
|
62
|
-
_isMounted: boolean;
|
|
63
|
-
errorTimeout: null | number;
|
|
64
64
|
simpleValidate: (
|
|
65
65
|
rubric: Rubric,
|
|
66
66
|
onInputError: OnInputErrorFunctionType
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
type
|
|
2
|
+
type Props = {
|
|
3
3
|
children: React.ReactElement<any> | ReadonlyArray<React.ReactElement<any>>;
|
|
4
4
|
initiallyVisible: boolean;
|
|
5
5
|
onDelete?: () => void | null | undefined;
|
|
@@ -7,14 +7,15 @@ type ElementContainerProps = {
|
|
|
7
7
|
onUp?: () => void | null | undefined;
|
|
8
8
|
title: string | React.ReactElement<any>;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
type State = {
|
|
11
11
|
show: boolean;
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
|
+
declare class ElementContainer extends React.Component<Props, State> {
|
|
13
14
|
static defaultProps: {
|
|
14
15
|
initiallyVisible: boolean;
|
|
15
16
|
title: string;
|
|
16
17
|
};
|
|
17
|
-
constructor(props:
|
|
18
|
+
constructor(props: Props);
|
|
18
19
|
toggle: (e: React.SyntheticEvent) => void;
|
|
19
20
|
render(): React.ReactNode;
|
|
20
21
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @flow
|
|
6
6
|
*/
|
|
7
7
|
import * as React from "react";
|
|
8
|
-
declare type
|
|
8
|
+
declare type Props = {|
|
|
9
9
|
children: React.Element<any> | $ReadOnlyArray<React.Element<any>>,
|
|
10
10
|
initiallyVisible: boolean,
|
|
11
11
|
onDelete?: () => void | null | void,
|
|
@@ -13,20 +13,15 @@ declare type ElementContainerProps = {|
|
|
|
13
13
|
onUp?: () => void | null | void,
|
|
14
14
|
title: string | React.Element<any>,
|
|
15
15
|
|};
|
|
16
|
-
declare
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{|
|
|
21
|
-
show: boolean,
|
|
22
|
-
|}
|
|
23
|
-
>
|
|
24
|
-
{
|
|
16
|
+
declare type State = {|
|
|
17
|
+
show: boolean,
|
|
18
|
+
|};
|
|
19
|
+
declare class ElementContainer extends React.Component<Props, State> {
|
|
25
20
|
static defaultProps: {|
|
|
26
21
|
initiallyVisible: boolean,
|
|
27
22
|
title: string,
|
|
28
23
|
|};
|
|
29
|
-
constructor(props:
|
|
24
|
+
constructor(props: Props): this;
|
|
30
25
|
toggle: (e: SyntheticEvent<>) => void;
|
|
31
26
|
render(): React.Node;
|
|
32
27
|
}
|
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import type { InteractiveMarkerType } from "./types";
|
|
8
|
-
type
|
|
8
|
+
type Props = InteractiveMarkerType & {
|
|
9
9
|
showSelected: boolean;
|
|
10
10
|
showPulsate: boolean;
|
|
11
11
|
onClick: (e: MouseEvent) => void;
|
|
12
12
|
onKeyDown: (e: KeyboardEvent) => void;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
14
|
+
type State = {
|
|
15
15
|
isFocused: boolean;
|
|
16
16
|
};
|
|
17
|
-
export default class Marker extends React.Component<
|
|
17
|
+
export default class Marker extends React.Component<Props, State> {
|
|
18
18
|
_icon: HTMLElement | null | undefined;
|
|
19
19
|
static defaultProps: {
|
|
20
20
|
selected: ReadonlyArray<any>;
|
|
21
21
|
};
|
|
22
|
-
state:
|
|
22
|
+
state: State;
|
|
23
23
|
handleFocus(): void;
|
|
24
24
|
handleBlur(): void;
|
|
25
25
|
renderIcon(): React.ReactElement<React.ComponentProps<"div">>;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import type { InteractiveMarkerType } from "./types";
|
|
9
|
-
declare type
|
|
9
|
+
declare type Props = {|
|
|
10
10
|
...InteractiveMarkerType,
|
|
11
11
|
...{|
|
|
12
12
|
showSelected: boolean,
|
|
@@ -15,17 +15,15 @@ declare type MarkerProps = {|
|
|
|
15
15
|
onKeyDown: (e: KeyboardEvent) => void,
|
|
16
16
|
|},
|
|
17
17
|
|};
|
|
18
|
-
declare type
|
|
18
|
+
declare type State = {|
|
|
19
19
|
isFocused: boolean,
|
|
20
20
|
|};
|
|
21
|
-
declare export default class Marker
|
|
22
|
-
extends React.Component<MarkerProps, MarkerState>
|
|
23
|
-
{
|
|
21
|
+
declare export default class Marker extends React.Component<Props, State> {
|
|
24
22
|
_icon: HTMLElement | null | void;
|
|
25
23
|
static defaultProps: {|
|
|
26
24
|
selected: $ReadOnlyArray<any>,
|
|
27
25
|
|};
|
|
28
|
-
state:
|
|
26
|
+
state: State;
|
|
29
27
|
handleFocus(): void;
|
|
30
28
|
handleBlur(): void;
|
|
31
29
|
renderIcon(): React.Element<"div">;
|
|
@@ -16,7 +16,6 @@ type Props = ExternalProps & {
|
|
|
16
16
|
answerForms: NonNullable<ExternalProps["answerForms"]>;
|
|
17
17
|
labelText: NonNullable<ExternalProps["labelText"]>;
|
|
18
18
|
linterContext: NonNullable<ExternalProps["linterContext"]>;
|
|
19
|
-
multipleNumberInput: NonNullable<ExternalProps["multipleNumberInput"]>;
|
|
20
19
|
currentValue: string;
|
|
21
20
|
};
|
|
22
21
|
type DefaultProps = {
|
|
@@ -28,7 +27,6 @@ type DefaultProps = {
|
|
|
28
27
|
answerForms: Props["answerForms"];
|
|
29
28
|
labelText: Props["labelText"];
|
|
30
29
|
linterContext: Props["linterContext"];
|
|
31
|
-
multipleNumberInput: Props["multipleNumberInput"];
|
|
32
30
|
};
|
|
33
31
|
type State = {
|
|
34
32
|
previousValues: ReadonlyArray<string>;
|
|
@@ -31,9 +31,6 @@ declare type Props = {|
|
|
|
31
31
|
answerForms: $NonMaybeType<$PropertyType<ExternalProps, "answerForms">>,
|
|
32
32
|
labelText: $NonMaybeType<$PropertyType<ExternalProps, "labelText">>,
|
|
33
33
|
linterContext: $NonMaybeType<$PropertyType<ExternalProps, "linterContext">>,
|
|
34
|
-
multipleNumberInput: $NonMaybeType<
|
|
35
|
-
$PropertyType<ExternalProps, "multipleNumberInput">
|
|
36
|
-
>,
|
|
37
34
|
currentValue: string,
|
|
38
35
|
|},
|
|
39
36
|
|};
|
|
@@ -46,7 +43,6 @@ declare type DefaultProps = {|
|
|
|
46
43
|
answerForms: $PropertyType<Props, "answerForms">,
|
|
47
44
|
labelText: $PropertyType<Props, "labelText">,
|
|
48
45
|
linterContext: $PropertyType<Props, "linterContext">,
|
|
49
|
-
multipleNumberInput: $PropertyType<Props, "multipleNumberInput">,
|
|
50
46
|
|};
|
|
51
47
|
declare type State = {|
|
|
52
48
|
previousValues: $ReadOnlyArray<string>,
|
|
@@ -34,5 +34,11 @@ type Props = {
|
|
|
34
34
|
registerFocusFunction?: (arg1: FocusFunction) => void;
|
|
35
35
|
isLastUsedWidget?: boolean;
|
|
36
36
|
};
|
|
37
|
-
declare const BaseRadio:
|
|
37
|
+
declare const BaseRadio: {
|
|
38
|
+
(props: Props): React.ReactElement;
|
|
39
|
+
defaultProps: {
|
|
40
|
+
editMode: boolean;
|
|
41
|
+
multipleSelect: boolean;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
38
44
|
export default BaseRadio;
|
|
@@ -40,5 +40,11 @@ declare type Props = {|
|
|
|
40
40
|
registerFocusFunction?: (arg1: FocusFunction) => void,
|
|
41
41
|
isLastUsedWidget?: boolean,
|
|
42
42
|
|};
|
|
43
|
-
declare var BaseRadio:
|
|
43
|
+
declare var BaseRadio: {|
|
|
44
|
+
(props: Props): React.Element<any>,
|
|
45
|
+
defaultProps: {|
|
|
46
|
+
editMode: boolean,
|
|
47
|
+
multipleSelect: boolean,
|
|
48
|
+
|},
|
|
49
|
+
|};
|
|
44
50
|
declare export default typeof BaseRadio;
|
|
@@ -18,5 +18,5 @@ declare type ChoiceIconProps = {|
|
|
|
18
18
|
reviewMode: boolean,
|
|
19
19
|
previouslyAnswered: boolean,
|
|
20
20
|
|};
|
|
21
|
-
declare var ChoiceIcon: React.
|
|
21
|
+
declare var ChoiceIcon: (props: ChoiceIconProps) => React.Element<any>;
|
|
22
22
|
declare export default typeof ChoiceIcon;
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
* The "cross-out line" that appears over the icon when the choice has been
|
|
4
4
|
* `crossedOut`.
|
|
5
5
|
*/
|
|
6
|
-
declare const CrossOutLine:
|
|
6
|
+
declare const CrossOutLine: (props: {
|
|
7
7
|
color: string;
|
|
8
|
-
}
|
|
8
|
+
}) => React.ReactElement;
|
|
9
9
|
export default CrossOutLine;
|
|
@@ -10,7 +10,7 @@ import * as React from "react";
|
|
|
10
10
|
* The "cross-out line" that appears over the icon when the choice has been
|
|
11
11
|
* `crossedOut`.
|
|
12
12
|
*/
|
|
13
|
-
declare var CrossOutLine:
|
|
13
|
+
declare var CrossOutLine: (props: {|
|
|
14
14
|
color: string,
|
|
15
|
-
|}>;
|
|
15
|
+
|}) => React.Element<any>;
|
|
16
16
|
declare export default typeof CrossOutLine;
|
|
@@ -8,5 +8,12 @@ type Props = {
|
|
|
8
8
|
color: string;
|
|
9
9
|
multipleSelect: boolean;
|
|
10
10
|
};
|
|
11
|
-
declare const FocusRing:
|
|
11
|
+
declare const FocusRing: {
|
|
12
|
+
(props: Props): React.ReactElement;
|
|
13
|
+
defaultProps: {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
color: string;
|
|
16
|
+
multipleSelect: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
12
19
|
export default FocusRing;
|
|
@@ -11,5 +11,12 @@ declare type Props = {|
|
|
|
11
11
|
color: string,
|
|
12
12
|
multipleSelect: boolean,
|
|
13
13
|
|};
|
|
14
|
-
declare var FocusRing:
|
|
14
|
+
declare var FocusRing: {|
|
|
15
|
+
(props: Props): React.Element<any>,
|
|
16
|
+
defaultProps: {|
|
|
17
|
+
visible: boolean,
|
|
18
|
+
color: string,
|
|
19
|
+
multipleSelect: boolean,
|
|
20
|
+
|},
|
|
21
|
+
|};
|
|
15
22
|
declare export default typeof FocusRing;
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
* between the states more immediately clear to users.
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
type
|
|
9
|
+
type Props = {
|
|
10
10
|
correct: boolean;
|
|
11
11
|
checked: boolean;
|
|
12
12
|
crossedOut: boolean;
|
|
13
13
|
previouslyAnswered: boolean;
|
|
14
14
|
reviewMode: boolean;
|
|
15
15
|
};
|
|
16
|
-
declare const OptionStatus: React.
|
|
16
|
+
declare const OptionStatus: (props: Props) => React.ReactElement;
|
|
17
17
|
export default OptionStatus;
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* @flow
|
|
6
6
|
*/
|
|
7
7
|
import * as React from "react";
|
|
8
|
-
declare type
|
|
8
|
+
declare type Props = {|
|
|
9
9
|
correct: boolean,
|
|
10
10
|
checked: boolean,
|
|
11
11
|
crossedOut: boolean,
|
|
12
12
|
previouslyAnswered: boolean,
|
|
13
13
|
reviewMode: boolean,
|
|
14
14
|
|};
|
|
15
|
-
declare var OptionStatus: React.
|
|
15
|
+
declare var OptionStatus: (props: Props) => React.Element<any>;
|
|
16
16
|
declare export default typeof OptionStatus;
|
|
@@ -11,5 +11,5 @@ declare type Props = {|
|
|
|
11
11
|
/**
|
|
12
12
|
* Video Transcript Link Component.
|
|
13
13
|
*/
|
|
14
|
-
declare var VideoTranscriptLink: React.
|
|
14
|
+
declare var VideoTranscriptLink: (props: Props) => React.Element<any>;
|
|
15
15
|
declare export default typeof VideoTranscriptLink;
|
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": "5.0.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@khanacademy/kas": "^0.3.1",
|
|
25
25
|
"@khanacademy/kmath": "^0.1.1",
|
|
26
|
-
"@khanacademy/math-input": "^0.
|
|
26
|
+
"@khanacademy/math-input": "^1.0.0",
|
|
27
27
|
"@khanacademy/perseus-linter": "^0.3.1",
|
|
28
|
-
"@khanacademy/pure-markdown": "^0.2.
|
|
29
|
-
"@khanacademy/simple-markdown": "^0.9.
|
|
28
|
+
"@khanacademy/pure-markdown": "^0.2.3",
|
|
29
|
+
"@khanacademy/simple-markdown": "^0.9.3",
|
|
30
30
|
"mathquill": "git+https://git@github.com/Khan/mathquill.git#a9ae54e057c5c1acc8244a5627acbff29901d992"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -16,14 +16,10 @@ export default {
|
|
|
16
16
|
title: "Perseus/Renderers/Item Renderer",
|
|
17
17
|
} as Story;
|
|
18
18
|
|
|
19
|
-
export const InputNumberItem: React.
|
|
20
|
-
args,
|
|
21
|
-
): React.ReactElement => {
|
|
19
|
+
export const InputNumberItem = (args: StoryArgs): React.ReactElement => {
|
|
22
20
|
return <ItemRendererWithDebugUI item={itemWithInput} />;
|
|
23
21
|
};
|
|
24
22
|
|
|
25
|
-
export const LabelImageItem: React.
|
|
26
|
-
args,
|
|
27
|
-
): React.ReactElement => {
|
|
23
|
+
export const LabelImageItem = (args: StoryArgs): React.ReactElement => {
|
|
28
24
|
return <ItemRendererWithDebugUI item={labelImageItem} />;
|
|
29
25
|
};
|
|
@@ -16,14 +16,10 @@ export default {
|
|
|
16
16
|
title: "Perseus/Renderers/Server Item Renderer",
|
|
17
17
|
} as Story;
|
|
18
18
|
|
|
19
|
-
export const InputNumberItem: React.
|
|
20
|
-
args,
|
|
21
|
-
): React.ReactElement => {
|
|
19
|
+
export const InputNumberItem = (args: StoryArgs): React.ReactElement => {
|
|
22
20
|
return <ServerItemRendererWithDebugUI item={itemWithInput} />;
|
|
23
21
|
};
|
|
24
22
|
|
|
25
|
-
export const LabelImageItem: React.
|
|
26
|
-
args,
|
|
27
|
-
): React.ReactElement => {
|
|
23
|
+
export const LabelImageItem = (args: StoryArgs): React.ReactElement => {
|
|
28
24
|
return <ServerItemRendererWithDebugUI item={labelImageItem} />;
|
|
29
25
|
};
|
|
@@ -30,9 +30,7 @@ const HarnassedButtonGroup = (
|
|
|
30
30
|
);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
export const ButtonsWithNoTitles: React.
|
|
34
|
-
args,
|
|
35
|
-
): React.ReactElement => {
|
|
33
|
+
export const ButtonsWithNoTitles = (args: StoryArgs): React.ReactElement => {
|
|
36
34
|
return (
|
|
37
35
|
<HarnassedButtonGroup
|
|
38
36
|
buttons={[
|
|
@@ -44,9 +42,7 @@ export const ButtonsWithNoTitles: React.FC<StoryArgs> = (
|
|
|
44
42
|
);
|
|
45
43
|
};
|
|
46
44
|
|
|
47
|
-
export const ButtonsWithTitles: React.
|
|
48
|
-
args,
|
|
49
|
-
): React.ReactElement => {
|
|
45
|
+
export const ButtonsWithTitles = (args: StoryArgs): React.ReactElement => {
|
|
50
46
|
return (
|
|
51
47
|
<HarnassedButtonGroup
|
|
52
48
|
buttons={[
|
|
@@ -21,8 +21,8 @@ export default {
|
|
|
21
21
|
title: "Perseus/Components/Fixed to Responsive",
|
|
22
22
|
} as Story;
|
|
23
23
|
|
|
24
|
-
export const SmallImageWithSmallContainer
|
|
25
|
-
args,
|
|
24
|
+
export const SmallImageWithSmallContainer = (
|
|
25
|
+
args: StoryArgs,
|
|
26
26
|
): React.ReactElement => {
|
|
27
27
|
return (
|
|
28
28
|
<FixedToResponsive width={width} height={sizeSmall}>
|
|
@@ -36,8 +36,8 @@ export const SmallImageWithSmallContainer: React.FC<StoryArgs> = (
|
|
|
36
36
|
);
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
export const SmallImageWithMediumContainer
|
|
40
|
-
args,
|
|
39
|
+
export const SmallImageWithMediumContainer = (
|
|
40
|
+
args: StoryArgs,
|
|
41
41
|
): React.ReactElement => {
|
|
42
42
|
return (
|
|
43
43
|
<FixedToResponsive width={width} height={sizeMedium}>
|
|
@@ -51,8 +51,8 @@ export const SmallImageWithMediumContainer: React.FC<StoryArgs> = (
|
|
|
51
51
|
);
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
export const LargeImageWithLargeContainer
|
|
55
|
-
args,
|
|
54
|
+
export const LargeImageWithLargeContainer = (
|
|
55
|
+
args: StoryArgs,
|
|
56
56
|
): React.ReactElement => {
|
|
57
57
|
return (
|
|
58
58
|
<FixedToResponsive width={width} height={sizeLarge}>
|
|
@@ -66,8 +66,8 @@ export const LargeImageWithLargeContainer: React.FC<StoryArgs> = (
|
|
|
66
66
|
);
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
export const LargeImageWithSmallerContainer
|
|
70
|
-
args,
|
|
69
|
+
export const LargeImageWithSmallerContainer = (
|
|
70
|
+
args: StoryArgs,
|
|
71
71
|
): React.ReactElement => {
|
|
72
72
|
return (
|
|
73
73
|
<FixedToResponsive width={width} height={sizeSmall}>
|
|
@@ -81,9 +81,9 @@ export const LargeImageWithSmallerContainer: React.FC<StoryArgs> = (
|
|
|
81
81
|
);
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
export const TwoOverlayedImagesInsteadOneResponsiveContainer
|
|
85
|
-
StoryArgs
|
|
86
|
-
|
|
84
|
+
export const TwoOverlayedImagesInsteadOneResponsiveContainer = (
|
|
85
|
+
args: StoryArgs,
|
|
86
|
+
): React.ReactElement => {
|
|
87
87
|
return (
|
|
88
88
|
<FixedToResponsive width={width} height={sizeSmall}>
|
|
89
89
|
<img
|
|
@@ -104,8 +104,8 @@ export const TwoOverlayedImagesInsteadOneResponsiveContainer: React.FC<
|
|
|
104
104
|
);
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
-
export const HeightConstrainingAnImage
|
|
108
|
-
args,
|
|
107
|
+
export const HeightConstrainingAnImage = (
|
|
108
|
+
args: StoryArgs,
|
|
109
109
|
): React.ReactElement => {
|
|
110
110
|
return (
|
|
111
111
|
<FixedToResponsive
|
|
@@ -123,9 +123,7 @@ export const HeightConstrainingAnImage: React.FC<StoryArgs> = (
|
|
|
123
123
|
);
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
export const AllowingFullBleed: React.
|
|
127
|
-
args,
|
|
128
|
-
): React.ReactElement => {
|
|
126
|
+
export const AllowingFullBleed = (args: StoryArgs): React.ReactElement => {
|
|
129
127
|
return (
|
|
130
128
|
<FixedToResponsive
|
|
131
129
|
width={width}
|
|
@@ -15,15 +15,13 @@ export default {
|
|
|
15
15
|
title: "Perseus/Components/Graph",
|
|
16
16
|
} as Story;
|
|
17
17
|
|
|
18
|
-
export const SquareBoxSizeAndOtherwiseEmpty
|
|
19
|
-
args,
|
|
18
|
+
export const SquareBoxSizeAndOtherwiseEmpty = (
|
|
19
|
+
args: StoryArgs,
|
|
20
20
|
): React.ReactElement => {
|
|
21
21
|
return <Graph box={[size, size]} />;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
export const LabeledSquaredBox: React.
|
|
25
|
-
args,
|
|
26
|
-
): React.ReactElement => {
|
|
24
|
+
export const LabeledSquaredBox = (args: StoryArgs): React.ReactElement => {
|
|
27
25
|
return (
|
|
28
26
|
<Graph box={[size, size]} labels={["First label", "Second label"]} />
|
|
29
27
|
);
|
|
@@ -16,8 +16,8 @@ export default {
|
|
|
16
16
|
title: "Perseus/Components/Graphie",
|
|
17
17
|
} as Story;
|
|
18
18
|
|
|
19
|
-
export const SquareBoxSizeAndOtherwiseEmpty
|
|
20
|
-
args,
|
|
19
|
+
export const SquareBoxSizeAndOtherwiseEmpty = (
|
|
20
|
+
args: StoryArgs,
|
|
21
21
|
): React.ReactElement => {
|
|
22
22
|
return (
|
|
23
23
|
<Graphie
|
|
@@ -28,8 +28,6 @@ export const SquareBoxSizeAndOtherwiseEmpty: React.FC<StoryArgs> = (
|
|
|
28
28
|
);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
export const PieChartGraphieLabels: React.
|
|
32
|
-
args,
|
|
33
|
-
): React.ReactElement => {
|
|
31
|
+
export const PieChartGraphieLabels = (args: StoryArgs): React.ReactElement => {
|
|
34
32
|
return <ItemRendererWithDebugUI item={itemWithPieChart} />;
|
|
35
33
|
};
|
|
@@ -12,9 +12,7 @@ export default {
|
|
|
12
12
|
title: "Perseus/Components/HUD",
|
|
13
13
|
} as Story;
|
|
14
14
|
|
|
15
|
-
export const TestMessageDisabled: React.
|
|
16
|
-
args,
|
|
17
|
-
): React.ReactElement => {
|
|
15
|
+
export const TestMessageDisabled = (args: StoryArgs): React.ReactElement => {
|
|
18
16
|
return (
|
|
19
17
|
<Hud
|
|
20
18
|
fixedPosition={false}
|
|
@@ -25,9 +23,7 @@ export const TestMessageDisabled: React.FC<StoryArgs> = (
|
|
|
25
23
|
);
|
|
26
24
|
};
|
|
27
25
|
|
|
28
|
-
export const TestMessageEnabled: React.
|
|
29
|
-
args,
|
|
30
|
-
): React.ReactElement => {
|
|
26
|
+
export const TestMessageEnabled = (args: StoryArgs): React.ReactElement => {
|
|
31
27
|
return (
|
|
32
28
|
<Hud
|
|
33
29
|
fixedPosition={false}
|
|
@@ -54,7 +54,7 @@ export default {
|
|
|
54
54
|
},
|
|
55
55
|
} as Story;
|
|
56
56
|
|
|
57
|
-
export const Icon
|
|
57
|
+
export const Icon = (args: StoryArgs): React.ReactElement => (
|
|
58
58
|
<IconComponent
|
|
59
59
|
style={{display: "block"}}
|
|
60
60
|
icon={IconPaths.iconCheck}
|
|
@@ -15,7 +15,7 @@ export default {
|
|
|
15
15
|
title: "Perseus/Components/Image Loader",
|
|
16
16
|
} as Story;
|
|
17
17
|
|
|
18
|
-
export const SvgImage
|
|
18
|
+
export const SvgImage = (args: StoryArgs): React.ReactElement => {
|
|
19
19
|
return (
|
|
20
20
|
<ImageLoader
|
|
21
21
|
src={svgUrl}
|
|
@@ -29,7 +29,7 @@ export const SvgImage: React.FC<StoryArgs> = (args): React.ReactElement => {
|
|
|
29
29
|
);
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
export const PngImage
|
|
32
|
+
export const PngImage = (args: StoryArgs): React.ReactElement => {
|
|
33
33
|
return (
|
|
34
34
|
<ImageLoader
|
|
35
35
|
src={imgUrl}
|
|
@@ -43,8 +43,8 @@ export const PngImage: React.FC<StoryArgs> = (args): React.ReactElement => {
|
|
|
43
43
|
);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
export const InvalidImageWithChildrenForFailedLoading
|
|
47
|
-
args,
|
|
46
|
+
export const InvalidImageWithChildrenForFailedLoading = (
|
|
47
|
+
args: StoryArgs,
|
|
48
48
|
): React.ReactElement => {
|
|
49
49
|
return (
|
|
50
50
|
<ImageLoader
|