@khanacademy/perseus 43.0.1 → 44.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.
Files changed (78) hide show
  1. package/dist/all-widgets.d.ts +2 -23
  2. package/dist/basic-widgets.d.ts +2 -23
  3. package/dist/components/graph.d.ts +1 -0
  4. package/dist/components/icon.d.ts +0 -1
  5. package/dist/components/multi-button-group.d.ts +1 -0
  6. package/dist/components/number-input.d.ts +5 -3
  7. package/dist/components/text-input.d.ts +4 -2
  8. package/dist/components/tooltip.d.ts +1 -0
  9. package/dist/es/index.js +476 -261
  10. package/dist/es/index.js.map +1 -1
  11. package/dist/es/strings.js +4 -2
  12. package/dist/es/strings.js.map +1 -1
  13. package/dist/extra-widgets.d.ts +2 -23
  14. package/dist/index.d.ts +2 -2
  15. package/dist/index.js +465 -250
  16. package/dist/index.js.map +1 -1
  17. package/dist/interactive2/interactive-util.d.ts +1 -1
  18. package/dist/interactive2/movable-point-options.d.ts +2 -2
  19. package/dist/interactive2/movable-point.d.ts +7 -7
  20. package/dist/interactive2/objective_.d.ts +1 -1
  21. package/dist/jipt-paragraphs.d.ts +2 -2
  22. package/dist/perseus-api.d.ts +2 -77
  23. package/dist/perseus-types.d.ts +17 -17
  24. package/dist/server-item-renderer.d.ts +26 -49
  25. package/dist/strings.d.ts +1 -0
  26. package/dist/strings.js +4 -2
  27. package/dist/strings.js.map +1 -1
  28. package/dist/styles/global-styles.d.ts +0 -1
  29. package/dist/styles/shared.d.ts +0 -1
  30. package/dist/traversal.d.ts +1 -1
  31. package/dist/util/a11y.d.ts +0 -1
  32. package/dist/util/debounce.d.ts +1 -1
  33. package/dist/util/parse-perseus-json/general-purpose-parsers/defaulted.d.ts +1 -1
  34. package/dist/util/parse-perseus-json/general-purpose-parsers/index.d.ts +2 -0
  35. package/dist/util/parse-perseus-json/general-purpose-parsers/pipe-parsers.d.ts +7 -0
  36. package/dist/util/parse-perseus-json/general-purpose-parsers/pipe-parsers.typetest.d.ts +1 -0
  37. package/dist/util/parse-perseus-json/general-purpose-parsers/unknown.d.ts +2 -0
  38. package/dist/util/parse-perseus-json/perseus-parsers/graded-group-widget.d.ts +2 -2
  39. package/dist/util/parse-perseus-json/perseus-parsers/images-map.d.ts +5 -0
  40. package/dist/util/parse-perseus-json/perseus-parsers/widget.d.ts +4 -0
  41. package/dist/validation.types.d.ts +14 -6
  42. package/dist/widgets/categorizer/categorizer.d.ts +2 -2
  43. package/dist/widgets/categorizer/score-categorizer.d.ts +2 -2
  44. package/dist/widgets/categorizer/validate-categorizer.d.ts +15 -0
  45. package/dist/widgets/definition/definition.d.ts +1 -1
  46. package/dist/widgets/deprecated-standin/deprecated-standin.d.ts +1 -1
  47. package/dist/widgets/dropdown/dropdown.d.ts +9 -1
  48. package/dist/widgets/dropdown/validate-dropdown.d.ts +10 -0
  49. package/dist/widgets/explanation/explanation.d.ts +1 -1
  50. package/dist/widgets/expression/expression.d.ts +92 -217
  51. package/dist/widgets/image/image.d.ts +1 -1
  52. package/dist/widgets/interaction/interaction.d.ts +1 -1
  53. package/dist/widgets/interactive-graphs/graphs/components/movable-point.d.ts +11 -7
  54. package/dist/widgets/interactive-graphs/graphs/components/use-control-point.d.ts +7 -3
  55. package/dist/widgets/interactive-graphs/graphs/quadratic.d.ts +1 -1
  56. package/dist/widgets/interactive-graphs/types.d.ts +1 -0
  57. package/dist/widgets/label-image/answer-pill.d.ts +0 -1
  58. package/dist/widgets/label-image/label-image.d.ts +5 -65
  59. package/dist/widgets/label-image/marker.d.ts +0 -1
  60. package/dist/widgets/matrix/matrix.d.ts +12 -5
  61. package/dist/widgets/measurer/measurer.d.ts +2 -2
  62. package/dist/widgets/molecule/molecule.d.ts +1 -1
  63. package/dist/widgets/orderer/validate-orderer.d.ts +12 -0
  64. package/dist/widgets/passage/passage-markdown.d.ts +2 -2
  65. package/dist/widgets/passage/passage.d.ts +1 -1
  66. package/dist/widgets/passage-ref/passage-ref.d.ts +1 -1
  67. package/dist/widgets/passage-ref-target/passage-ref-target.d.ts +1 -1
  68. package/dist/widgets/plotter/plotter.d.ts +2 -2
  69. package/dist/widgets/plotter/score-plotter.d.ts +2 -2
  70. package/dist/widgets/plotter/validate-plotter.d.ts +12 -0
  71. package/dist/widgets/radio/choice-icon/shared-styles.d.ts +0 -1
  72. package/dist/widgets/radio/choice-none-above.d.ts +1 -1
  73. package/dist/widgets/radio/radio.d.ts +3 -3
  74. package/dist/widgets/radio/validate-radio.d.ts +14 -0
  75. package/dist/widgets/sorter/validate-sorter.d.ts +13 -0
  76. package/dist/widgets/video/video.d.ts +1 -1
  77. package/package.json +5 -5
  78. package/dist/util/parse-perseus-json/general-purpose-parsers/compose-parsers.d.ts +0 -2
@@ -1,11 +1,17 @@
1
1
  import * as React from "react";
2
2
  import type { CSSCursor } from "./css-cursor";
3
+ import type { AriaLive } from "../../types";
3
4
  import type { KeyboardMovementConstraint } from "../use-draggable";
4
5
  import type { vec } from "mafs";
5
6
  type Params = {
6
7
  point: vec.Vector2;
8
+ ariaDescribedBy?: string;
9
+ ariaLabel?: string;
10
+ ariaLive?: AriaLive;
7
11
  color?: string | undefined;
12
+ constrain?: KeyboardMovementConstraint;
8
13
  cursor?: CSSCursor | undefined;
14
+ forwardedRef?: React.ForwardedRef<SVGGElement | null> | undefined;
9
15
  /**
10
16
  * Represents where this point stands in the overall point sequence.
11
17
  * This is used to provide screen readers with context about the point.
@@ -14,13 +20,11 @@ type Params = {
14
20
  * Note: This number is 1-indexed, and should restart from 1 for each
15
21
  * interactive figure on the graph.
16
22
  */
17
- sequenceNumber: number;
18
- constrain?: KeyboardMovementConstraint;
23
+ sequenceNumber?: number;
19
24
  onMove?: ((newPoint: vec.Vector2) => unknown) | undefined;
20
25
  onClick?: (() => unknown) | undefined;
21
26
  onFocus?: ((event: React.FocusEvent) => unknown) | undefined;
22
27
  onBlur?: ((event: React.FocusEvent) => unknown) | undefined;
23
- forwardedRef?: React.ForwardedRef<SVGGElement | null> | undefined;
24
28
  };
25
29
  type Return = {
26
30
  focusableHandle: React.ReactNode;
@@ -2,5 +2,5 @@ import type { QuadraticGraphState, Dispatch, InteractiveGraphElementSuite } from
2
2
  export declare function renderQuadraticGraph(state: QuadraticGraphState, dispatch: Dispatch): InteractiveGraphElementSuite;
3
3
  type QuadraticCoefficient = [number, number, number];
4
4
  export type QuadraticCoords = QuadraticGraphState["coords"];
5
- export declare const getQuadraticCoefficients: (coords: [import("../../..").Coord, import("../../..").Coord, import("../../..").Coord]) => QuadraticCoefficient | undefined;
5
+ export declare const getQuadraticCoefficients: (coords: QuadraticCoords) => QuadraticCoefficient | undefined;
6
6
  export {};
@@ -90,3 +90,4 @@ export type GraphDimensions = {
90
90
  width: number;
91
91
  height: number;
92
92
  };
93
+ export type AriaLive = "off" | "assertive" | "polite" | undefined;
@@ -1,4 +1,3 @@
1
- /// <reference path="../../../types/aphrodite.d.ts" />
2
1
  import { type CSSProperties } from "aphrodite";
3
2
  import * as React from "react";
4
3
  export declare const AnswerPill: (props: {
@@ -88,72 +88,12 @@ export declare class LabelImage extends React.Component<LabelImageProps, LabelIm
88
88
  declare const _default: {
89
89
  name: string;
90
90
  displayName: string;
91
- widget: React.ForwardRefExoticComponent<Omit<ChangeableProps & Partial<import("../../types").PerseusDependenciesV2> & Omit<PerseusLabelImageWidgetOptions, "markers"> & {
92
- apiOptions: Readonly<{
93
- isArticle?: boolean | undefined;
94
- onFocusChange?: ((newFocusPath: import("../../types").FocusPath, oldFocusPath: import("../../types").FocusPath, keypadHeight?: number | undefined, focusedElement?: HTMLElement | undefined) => unknown) | undefined;
95
- GroupMetadataEditor?: React.ComponentType<any> | undefined;
96
- showAlignmentOptions?: boolean | undefined;
97
- readOnly?: boolean | undefined;
98
- answerableCallback?: ((arg1: boolean) => unknown) | undefined;
99
- getAnotherHint?: (() => unknown) | undefined;
100
- interactionCallback?: ((widgetData: {
101
- [widgetId: string]: any;
102
- }) => void) | undefined;
103
- groupAnnotator?: ((groupNumber: number, widgetId: string) => React.ReactNode) | undefined;
104
- imagePlaceholder?: React.ReactNode;
105
- widgetPlaceholder?: React.ReactNode;
106
- baseElements?: {
107
- Link: React.ComponentType<any>;
108
- } | undefined;
109
- imagePreloader?: ((dimensions: import("../../types").Dimensions) => React.ReactNode) | undefined;
110
- trackInteraction?: ((args: {
111
- type: string;
112
- id: string;
113
- correct?: boolean | undefined;
114
- } & Partial<import("../../types").TrackingGradedGroupExtraArguments> & Partial<{
115
- visible: number;
116
- }>) => void) | undefined;
117
- customKeypad?: boolean | undefined;
118
- nativeKeypadProxy?: ((blur: () => void) => import("@khanacademy/math-input").KeypadAPI) | undefined;
119
- isMobile?: boolean | undefined;
120
- setDrawingAreaAvailable?: ((arg1: boolean) => unknown) | undefined;
121
- hintProgressColor?: string | undefined;
122
- canScrollPage?: boolean | undefined;
123
- crossOutEnabled?: boolean | undefined;
124
- editorChangeDelay?: number | undefined;
125
- flags?: {
126
- mafs?: false | ({
127
- none?: boolean | undefined;
128
- linear?: boolean | undefined;
129
- circle?: boolean | undefined;
130
- polygon?: boolean | undefined;
131
- point?: boolean | undefined;
132
- quadratic?: boolean | undefined;
133
- sinusoid?: boolean | undefined;
134
- angle?: boolean | undefined;
135
- "linear-system"?: boolean | undefined;
136
- ray?: boolean | undefined;
137
- segment?: boolean | undefined;
138
- "unlimited-polygon"?: boolean | undefined;
139
- "unlimited-point"?: boolean | undefined;
140
- } & {
141
- "interactive-graph-locked-features-labels"?: boolean | undefined;
142
- "locked-figures-aria"?: boolean | undefined;
143
- "locked-point-labels"?: boolean | undefined;
144
- "locked-line-labels"?: boolean | undefined;
145
- "locked-vector-labels"?: boolean | undefined;
146
- "locked-ellipse-labels"?: boolean | undefined;
147
- "locked-polygon-labels"?: boolean | undefined;
148
- "locked-function-labels"?: boolean | undefined;
149
- }) | undefined;
150
- } | undefined;
151
- onWidgetStartProps?: ((widgets: import("../../perseus-types").PerseusWidgetsMap) => void) | undefined;
152
- }>;
153
- markers: readonly InteractiveMarkerType[];
91
+ widget: React.ForwardRefExoticComponent<Omit<ChangeableProps & Partial<import("../..").PerseusDependenciesV2> & Omit<PerseusLabelImageWidgetOptions, "markers"> & {
92
+ apiOptions: APIOptions;
93
+ markers: ReadonlyArray<InteractiveMarkerType>;
154
94
  questionCompleted: boolean;
155
- preferredPopoverDirection?: PreferredPopoverDirection | undefined;
156
- }, keyof import("../../types").PerseusDependenciesV2> & React.RefAttributes<LabelImage>>;
95
+ preferredPopoverDirection?: PreferredPopoverDirection;
96
+ }, keyof import("../..").PerseusDependenciesV2> & React.RefAttributes<LabelImage>>;
157
97
  accessible: true;
158
98
  isLintable: true;
159
99
  scorer: typeof scoreLabelImage;
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * The target for labeling question image with answers.
5
5
  */
6
- /// <reference path="../../../types/aphrodite.d.ts" />
7
6
  import * as React from "react";
8
7
  import { PerseusI18nContext } from "../../components/i18n-context";
9
8
  import type { InteractiveMarkerType } from "./types";
@@ -1,12 +1,19 @@
1
1
  import * as React from "react";
2
2
  import { PerseusI18nContext } from "../../components/i18n-context";
3
3
  import scoreMatrix from "./score-matrix";
4
- import type { PerseusMatrixWidgetOptions } from "../../perseus-types";
4
+ import type { PerseusMatrixWidgetAnswers } from "../../perseus-types";
5
5
  import type { WidgetProps, Widget, FocusPath } from "../../types";
6
6
  import type { PerseusMatrixRubric, PerseusMatrixUserInput } from "../../validation.types";
7
7
  import type { MatrixPromptJSON } from "../../widget-ai-utils/matrix/matrix-ai-utils";
8
8
  export declare function getMatrixSize(matrix: ReadonlyArray<ReadonlyArray<number>>): number[];
9
- type ExternalProps = WidgetProps<PerseusMatrixWidgetOptions, PerseusMatrixRubric>;
9
+ type ExternalProps = WidgetProps<{
10
+ prefix: string;
11
+ suffix: string;
12
+ answers: PerseusMatrixWidgetAnswers;
13
+ cursorPosition: ReadonlyArray<number>;
14
+ matrixBoardSize: ReadonlyArray<number>;
15
+ static?: boolean | undefined;
16
+ }, PerseusMatrixRubric>;
10
17
  type Props = ExternalProps & {
11
18
  onChange: (arg1: {
12
19
  cursorPosition?: ReadonlyArray<number>;
@@ -17,9 +24,9 @@ type Props = ExternalProps & {
17
24
  type DefaultProps = {
18
25
  matrixBoardSize: Props["matrixBoardSize"];
19
26
  answers: Props["answers"];
20
- prefix: Props["prefix"];
21
- suffix: Props["suffix"];
22
- cursorPosition: Props["cursorPosition"];
27
+ prefix: string;
28
+ suffix: string;
29
+ cursorPosition: ReadonlyArray<number>;
23
30
  apiOptions: Props["apiOptions"];
24
31
  linterContext: Props["linterContext"];
25
32
  };
@@ -40,8 +40,8 @@ declare const _default: {
40
40
  minor: number;
41
41
  };
42
42
  propUpgrades: {
43
- readonly "1": (v0props: any) => any;
43
+ readonly "1": (v0props: any) => PerseusMeasurerWidgetOptions;
44
44
  };
45
- scorer: () => import("../../types").PerseusScore;
45
+ scorer: () => import("../..").PerseusScore;
46
46
  };
47
47
  export default _default;
@@ -19,6 +19,6 @@ declare const _default: {
19
19
  displayName: string;
20
20
  hidden: true;
21
21
  widget: typeof MoleculeWidget;
22
- scorer: () => import("../../types").PerseusScore;
22
+ scorer: () => import("../..").PerseusScore;
23
23
  };
24
24
  export default _default;
@@ -0,0 +1,12 @@
1
+ import type { PerseusScore } from "../../types";
2
+ import type { PerseusOrdererUserInput } from "../../validation.types";
3
+ /**
4
+ * Checks user input from the orderer widget to see if the user has started
5
+ * ordering the options, making the widget scorable.
6
+ * @param userInput
7
+ * @see `scoreOrderer` for more details.
8
+ */
9
+ declare function validateOrderer(userInput: PerseusOrdererUserInput): Extract<PerseusScore, {
10
+ type: "invalid";
11
+ }> | null;
12
+ export default validateOrderer;
@@ -13,8 +13,8 @@ export type ParseState = State & {
13
13
  };
14
14
  declare function getInitialParseState(): ParseState;
15
15
  declare const _default: {
16
- parse: (arg1: string, arg2?: ParseState | null | undefined) => SingleASTNode[];
17
- output: (arg1: SingleASTNode[]) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
16
+ parse: (arg1: string, arg2?: ParseState | null | undefined) => Array<SingleASTNode>;
17
+ output: (arg1: Array<SingleASTNode>) => React.ReactElement;
18
18
  START_REF_PREFIX: string;
19
19
  END_REF_PREFIX: string;
20
20
  getInitialParseState: typeof getInitialParseState;
@@ -108,6 +108,6 @@ declare const _default: {
108
108
  widget: typeof Passage;
109
109
  transform: (editorProps: any) => RenderProps;
110
110
  isLintable: true;
111
- scorer: () => import("../../types").PerseusScore;
111
+ scorer: () => import("../..").PerseusScore;
112
112
  };
113
113
  export default _default;
@@ -51,6 +51,6 @@ declare const _default: {
51
51
  major: number;
52
52
  minor: number;
53
53
  };
54
- scorer: () => import("../../types").PerseusScore;
54
+ scorer: () => import("../..").PerseusScore;
55
55
  };
56
56
  export default _default;
@@ -36,6 +36,6 @@ declare const _default: {
36
36
  minor: number;
37
37
  };
38
38
  isLintable: true;
39
- scorer: () => import("../../types").PerseusScore;
39
+ scorer: () => import("../..").PerseusScore;
40
40
  };
41
41
  export default _default;
@@ -3,10 +3,10 @@ import { PerseusI18nContext } from "../../components/i18n-context";
3
3
  import scorePlotter from "./score-plotter";
4
4
  import type { PerseusPlotterWidgetOptions } from "../../perseus-types";
5
5
  import type { Widget, WidgetProps } from "../../types";
6
- import type { PerseusPlotterRubric, PerseusPlotterUserInput } from "../../validation.types";
6
+ import type { PerseusPlotterScoringData, PerseusPlotterUserInput } from "../../validation.types";
7
7
  import type { UnsupportedWidgetPromptJSON } from "../../widget-ai-utils/unsupported-widget";
8
8
  type RenderProps = PerseusPlotterWidgetOptions;
9
- type Props = WidgetProps<RenderProps, PerseusPlotterRubric> & {
9
+ type Props = WidgetProps<RenderProps, PerseusPlotterScoringData> & {
10
10
  labelInterval: NonNullable<PerseusPlotterWidgetOptions["labelInterval"]>;
11
11
  picSize: NonNullable<PerseusPlotterWidgetOptions["picSize"]>;
12
12
  };
@@ -1,4 +1,4 @@
1
1
  import type { PerseusScore } from "../../types";
2
- import type { PerseusPlotterRubric, PerseusPlotterUserInput } from "../../validation.types";
3
- declare function scorePlotter(userInput: PerseusPlotterUserInput, rubric: PerseusPlotterRubric): PerseusScore;
2
+ import type { PerseusPlotterScoringData, PerseusPlotterUserInput } from "../../validation.types";
3
+ declare function scorePlotter(userInput: PerseusPlotterUserInput, scoringData: PerseusPlotterScoringData): PerseusScore;
4
4
  export default scorePlotter;
@@ -0,0 +1,12 @@
1
+ import type { PerseusScore } from "../../types";
2
+ import type { PerseusPlotterUserInput, PerseusPlotterValidationData } from "../../validation.types";
3
+ /**
4
+ * Checks user input to confirm it is not the same as the starting values for the graph.
5
+ * This means the user has modified the graph, and the question can be scored.
6
+ *
7
+ * @see 'scorePlotter' for more details on scoring.
8
+ */
9
+ declare function validatePlotter(userInput: PerseusPlotterUserInput, validationData: PerseusPlotterValidationData): Extract<PerseusScore, {
10
+ type: "invalid";
11
+ }> | null;
12
+ export default validatePlotter;
@@ -1,4 +1,3 @@
1
- /// <reference path="../../../../types/aphrodite.d.ts" />
2
1
  import type { StyleDeclaration } from "aphrodite";
3
2
  declare const CHOICE_ICON_SIZE = 24;
4
3
  declare const styles: StyleDeclaration;
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { ChoiceProps } from "./choice";
3
3
  declare const _default: React.ForwardRefExoticComponent<ChoiceProps & {
4
- showContent?: boolean | undefined;
4
+ showContent?: boolean;
5
5
  } & React.RefAttributes<HTMLButtonElement>>;
6
6
  export default _default;
@@ -8,14 +8,14 @@ declare const _default: {
8
8
  displayName: string;
9
9
  accessible: true;
10
10
  widget: typeof Radio;
11
- transform: (widgetOptions: PerseusRadioWidgetOptions, strings: PerseusStrings, problemNum?: number | null | undefined) => RenderProps;
12
- staticTransform: (widgetOptions: PerseusRadioWidgetOptions, strings: PerseusStrings, problemNum?: number | null | undefined) => RenderProps;
11
+ transform: (widgetOptions: PerseusRadioWidgetOptions, strings: PerseusStrings, problemNum?: number | null) => RenderProps;
12
+ staticTransform: (widgetOptions: PerseusRadioWidgetOptions, strings: PerseusStrings, problemNum?: number | null) => RenderProps;
13
13
  version: {
14
14
  major: number;
15
15
  minor: number;
16
16
  };
17
17
  propUpgrades: {
18
- readonly "1": (v0props: any) => any;
18
+ readonly "1": (v0props: any) => PerseusRadioWidgetOptions;
19
19
  };
20
20
  isLintable: true;
21
21
  scorer: typeof scoreRadio;
@@ -0,0 +1,14 @@
1
+ import type { PerseusScore } from "../../types";
2
+ import type { PerseusRadioUserInput } from "../../validation.types";
3
+ /**
4
+ * Checks if the user has selected at least one option. Additional validation
5
+ * is done in scoreRadio to check if the number of selected options is correct
6
+ * and if the user has selected both a correct option and the "none of the above"
7
+ * option.
8
+ * @param userInput
9
+ * @see `scoreRadio` for the additional validation logic and the scoring logic.
10
+ */
11
+ declare function validateRadio(userInput: PerseusRadioUserInput): Extract<PerseusScore, {
12
+ type: "invalid";
13
+ }> | null;
14
+ export default validateRadio;
@@ -0,0 +1,13 @@
1
+ import type { PerseusScore } from "../../types";
2
+ import type { PerseusSorterUserInput } from "../../validation.types";
3
+ /**
4
+ * Checks user input for the sorter widget to ensure that the user has made
5
+ * changes before attempting to score the widget.
6
+ * @param userInput
7
+ * @see 'scoreSorter' in 'packages/perseus/src/widgets/sorter/score-sorter.ts'
8
+ * for more details on how the sorter widget is scored.
9
+ */
10
+ declare function validateSorter(userInput: PerseusSorterUserInput): Extract<PerseusScore, {
11
+ type: "invalid";
12
+ }> | null;
13
+ export default validateSorter;
@@ -30,6 +30,6 @@ declare const _default: {
30
30
  defaultAlignment: "block";
31
31
  supportedAlignments: ("block" | "full-width" | "float-left" | "float-right")[];
32
32
  widget: typeof Video;
33
- scorer: () => import("../../types").PerseusScore;
33
+ scorer: () => import("../..").PerseusScore;
34
34
  };
35
35
  export default _default;
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": "43.0.1",
6
+ "version": "44.0.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -40,14 +40,14 @@
40
40
  "test": "bash -c 'yarn --silent --cwd \"../..\" test ${@:0} $($([[ ${@: -1} = -* ]] || [[ ${@: -1} = bash ]]) && echo $PWD)'"
41
41
  },
42
42
  "dependencies": {
43
- "@khanacademy/kas": "^0.4.1",
43
+ "@khanacademy/kas": "^0.4.2",
44
44
  "@khanacademy/keypad-context": "^1.0.4",
45
45
  "@khanacademy/kmath": "^0.1.16",
46
- "@khanacademy/math-input": "^21.1.5",
46
+ "@khanacademy/math-input": "^21.1.6",
47
47
  "@khanacademy/perseus-core": "1.5.3",
48
48
  "@khanacademy/perseus-linter": "^1.2.4",
49
- "@khanacademy/pure-markdown": "^0.3.12",
50
- "@khanacademy/simple-markdown": "^0.13.5",
49
+ "@khanacademy/pure-markdown": "^0.3.13",
50
+ "@khanacademy/simple-markdown": "^0.13.6",
51
51
  "@types/classnames": "2.2.0",
52
52
  "@use-gesture/react": "^10.2.27",
53
53
  "mafs": "0.19.0",
@@ -1,2 +0,0 @@
1
- import type { ParsedValue, PartialParser, Parser } from "../parser-types";
2
- export declare function composeParsers<A extends Parser<any>, B extends PartialParser<ParsedValue<A>, any>>(parserA: A, parserB: B): Parser<ParsedValue<B>>;