@khanacademy/perseus 81.0.2 → 82.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.
Files changed (53) hide show
  1. package/dist/es/index.css +1 -1
  2. package/dist/es/index.css.map +1 -1
  3. package/dist/es/index.js +96 -105
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/es/strings.js +1 -1
  6. package/dist/es/strings.js.map +1 -1
  7. package/dist/index.css +1 -1
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.js +96 -105
  10. package/dist/index.js.map +1 -1
  11. package/dist/server-item-renderer.d.ts +1 -1
  12. package/dist/strings.d.ts +138 -41
  13. package/dist/strings.js +1 -1
  14. package/dist/strings.js.map +1 -1
  15. package/dist/styles/constants.d.ts +0 -1
  16. package/dist/testing/feature-flags-util.d.ts +0 -1
  17. package/dist/testing/item-renderer-hooks.d.ts +1 -1
  18. package/dist/widgets/dropdown/dropdown.d.ts +1 -1
  19. package/dist/widgets/expression/expression.d.ts +2 -2
  20. package/dist/widgets/free-response/free-response.d.ts +0 -2
  21. package/dist/widgets/image/image.d.ts +1 -1
  22. package/dist/widgets/interactive-graphs/graphs/components/build-point-aria-label.d.ts +7 -1
  23. package/dist/widgets/interactive-graphs/graphs/components/dashed-asymptote-line.d.ts +26 -0
  24. package/dist/widgets/interactive-graphs/graphs/strings/absolute-value.d.ts +2 -2
  25. package/dist/widgets/interactive-graphs/graphs/strings/angle.d.ts +1 -1
  26. package/dist/widgets/interactive-graphs/graphs/strings/circle.d.ts +1 -1
  27. package/dist/widgets/interactive-graphs/graphs/strings/coord-quadrant.d.ts +1 -1
  28. package/dist/widgets/interactive-graphs/graphs/strings/exponential.d.ts +1 -1
  29. package/dist/widgets/interactive-graphs/graphs/strings/linear-system.d.ts +17 -2
  30. package/dist/widgets/interactive-graphs/graphs/strings/logarithm.d.ts +1 -1
  31. package/dist/widgets/interactive-graphs/graphs/strings/quadratic.d.ts +1 -1
  32. package/dist/widgets/interactive-graphs/graphs/strings/ray.d.ts +1 -1
  33. package/dist/widgets/interactive-graphs/graphs/strings/segment.d.ts +16 -2
  34. package/dist/widgets/interactive-graphs/graphs/strings/sinusoid.d.ts +1 -1
  35. package/dist/widgets/interactive-graphs/graphs/strings/tangent.d.ts +2 -2
  36. package/dist/widgets/interactive-graphs/interactive-graph.d.ts +1 -1
  37. package/dist/widgets/interactive-graphs/mafs-graph.d.ts +0 -2
  38. package/dist/widgets/interactive-graphs/stateful-mafs-graph.d.ts +0 -2
  39. package/dist/widgets/interactive-graphs/types.d.ts +11 -10
  40. package/dist/widgets/label-image/label-image.d.ts +1 -1
  41. package/dist/widgets/measurer/measurer.d.ts +0 -14
  42. package/dist/widgets/mock-widgets/mock-widget.d.ts +1 -1
  43. package/dist/widgets/numeric-input/numeric-input.class.d.ts +1 -1
  44. package/dist/widgets/numeric-input/numeric-input.d.ts +2 -2
  45. package/dist/widgets/plotter/plotter.d.ts +0 -2
  46. package/dist/widgets/table/table.d.ts +1 -1
  47. package/package.json +7 -7
  48. package/dist/widgets/interactive-graphs/graphs/strings/custom-point-label.d.ts +0 -22
  49. package/dist/widgets/molecule/index.d.ts +0 -1
  50. package/dist/widgets/molecule/molecule-drawing.d.ts +0 -5
  51. package/dist/widgets/molecule/molecule-layout.d.ts +0 -81
  52. package/dist/widgets/molecule/molecule.d.ts +0 -23
  53. package/dist/widgets/molecule/smiles-parser.d.ts +0 -19
@@ -15,7 +15,6 @@ export declare const pureXsMax = "567px";
15
15
  export declare const pureSmMax = "767px";
16
16
  export declare const pureMdMax = "1023px";
17
17
  export declare const pureLgMax = "1279px";
18
- export declare const tableBackgroundAccent = "#F9F9F9";
19
18
  export declare const phoneMargin = 16;
20
19
  export declare const negativePhoneMargin = -16;
21
20
  export declare const hintBorderWidth = 4;
@@ -7,7 +7,6 @@ declare const DEFAULT_FEATURE_FLAGS: Record<"perseus-test-flag-1" | "perseus-tes
7
7
  export declare function getFeatureFlags(overrides?: Partial<typeof DEFAULT_FEATURE_FLAGS>): {
8
8
  "perseus-renderer-upgrade": boolean;
9
9
  "desmos-calculator": boolean;
10
- "perseus-enable-point-label-field": boolean;
11
10
  "perseus-test-flag-1": boolean;
12
11
  "perseus-test-flag-2": boolean;
13
12
  };
@@ -34,7 +34,7 @@ export declare const useItemRenderer: (item: PerseusItem, apiOptions?: APIOption
34
34
  }>) => void;
35
35
  isMobileApp?: boolean;
36
36
  hintProgressColor?: string;
37
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
37
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
38
38
  };
39
39
  toggleMobile: (isMobile: boolean) => void;
40
40
  toggleRtl: (isRtl: boolean) => void;
@@ -47,7 +47,7 @@ declare const _default: {
47
47
  isMobile?: boolean;
48
48
  isMobileApp?: boolean;
49
49
  hintProgressColor?: string;
50
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
50
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
51
51
  }> & {
52
52
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
53
53
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -37,7 +37,7 @@ export declare const Expression: React.ForwardRefExoticComponent<PerseusExpressi
37
37
  isMobile?: boolean;
38
38
  isMobileApp?: boolean;
39
39
  hintProgressColor?: string;
40
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
40
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
41
41
  }> & {
42
42
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
43
43
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -109,7 +109,7 @@ declare const _default: {
109
109
  isMobile?: boolean;
110
110
  isMobileApp?: boolean;
111
111
  hintProgressColor?: string;
112
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
112
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
113
113
  }> & {
114
114
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
115
115
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -9,12 +9,10 @@ import { PerseusI18nContext } from "../../components/i18n-context";
9
9
  import type { Widget, WidgetExports, WidgetProps } from "../../types";
10
10
  import type { PerseusFreeResponseUserInput, PerseusFreeResponseWidgetOptions } from "@khanacademy/perseus-core";
11
11
  type Props = WidgetProps<PerseusFreeResponseWidgetOptions, PerseusFreeResponseUserInput>;
12
- type DefaultProps = Pick<Props, "userInput">;
13
12
  export declare class FreeResponse extends React.Component<Props> implements Widget {
14
13
  static contextType: React.Context<import("../../components/i18n-context").I18nContextType>;
15
14
  context: React.ContextType<typeof PerseusI18nContext>;
16
15
  isWidget: true;
17
- static defaultProps: DefaultProps;
18
16
  announceCharacterCount: (message: string, isOverLimit: boolean) => void;
19
17
  characterCount: () => number;
20
18
  _handleUserInput: (newValue: string) => void;
@@ -40,7 +40,7 @@ declare const _default: {
40
40
  isMobile?: boolean;
41
41
  isMobileApp?: boolean;
42
42
  hintProgressColor?: string;
43
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
43
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
44
44
  }> & {
45
45
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
46
46
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -1,6 +1,12 @@
1
1
  import type { PerseusStrings } from "../../../../strings";
2
2
  import type { vec } from "mafs";
3
- export declare function resolvePointLabel(pointLabels: ReadonlyArray<string> | undefined, index: number): string | number;
3
+ /**
4
+ * Returns the author's custom label for a point, or `undefined` when the
5
+ * entry is missing, an empty string, or malformed (a non-string that slipped
6
+ * past the parser in hand-authored JSON).
7
+ */
8
+ export declare function getCustomPointLabel(pointLabels: ReadonlyArray<string> | undefined, index: number): string | undefined;
9
+ export declare function resolvePointLabel(pointLabels: ReadonlyArray<string> | undefined, index: number): string;
4
10
  /**
5
11
  * Returns a screen-reader aria-label for an interactive point using a
6
12
  * custom label (e.g. "T"). Returns `undefined` when no custom label
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import type { vec } from "mafs";
3
+ interface Props {
4
+ /** Pixel-space start point of the asymptote line. */
5
+ start: vec.Vector2;
6
+ /** Pixel-space end point of the asymptote line. */
7
+ end: vec.Vector2;
8
+ /** Stroke color of the dashed line (usually the graph's interactive color). */
9
+ color: string | undefined;
10
+ /** Class applied to both lines (e.g. "movable-dragging" while dragging). */
11
+ className?: string;
12
+ /** Test id applied to the dashed line. */
13
+ testId?: string;
14
+ }
15
+ /**
16
+ * The shared visual for a graph asymptote: a dashed line drawn over a solid
17
+ * backing line. The backing line (in the page background color) sits underneath
18
+ * so the dashes stay visible on top of grid lines and axes.
19
+ *
20
+ * This is presentational only — no hit target, no drag behavior. Interactive
21
+ * asymptotes (exponential/logarithm) render it inside `MovableAsymptote`, which
22
+ * supplies the hitbox and drag handle; derived, non-interactive asymptotes
23
+ * (tangent) render it directly.
24
+ */
25
+ export declare function DashedAsymptoteLine(props: Props): React.JSX.Element;
26
+ export {};
@@ -3,7 +3,7 @@ import type { AbsoluteValueGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srAbsoluteValuePointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  slope: number;
@@ -11,7 +11,7 @@ export declare function srAbsoluteValuePointLabel(state: {
11
11
  type AbsoluteValueGraphDescriptionStrings = {
12
12
  srAbsoluteValueGraph: string;
13
13
  srAbsoluteValueVertexPoint: string;
14
- srAbsoluteValueSecondPoint: string;
14
+ srAbsoluteValueArmPoint: string;
15
15
  srAbsoluteValueDescription: string;
16
16
  srAbsoluteValueSlope: string;
17
17
  };
@@ -3,7 +3,7 @@ import type { AngleGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srAnglePointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  angleMeasure: number;
@@ -1,7 +1,7 @@
1
1
  import type { I18nContextType } from "../../../../components/i18n-context";
2
2
  import type { CircleGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
- export declare function srCircleRadiusPointLabel(x: number, y: number, centerX: number, strings: PerseusStrings, locale: string): string;
4
+ export declare function srCircleRadiusPointLabel(x: number, y: number, centerX: number, strings: PerseusStrings, locale: string, pointLabel?: string): string;
5
5
  export declare function srCircleCenterLabel(x: number, y: number, strings: PerseusStrings, locale: string): string;
6
6
  type CircleGraphDescriptionStrings = {
7
7
  srCircleGraph: string;
@@ -3,5 +3,5 @@ import type { Coord } from "@khanacademy/perseus-core";
3
3
  type GraphLocations = "origin" | "x-axis" | "y-axis" | 1 | 2 | 3 | 4;
4
4
  export declare function getCoordQuadrant(coord: Coord): GraphLocations;
5
5
  export declare function getQuadraticVertexString(vertex: Coord, strings: PerseusStrings): string;
6
- export declare function getQuadraticPointString(pointNumber: any, coord: Coord, strings: PerseusStrings, locale: string): string;
6
+ export declare function getQuadraticPointString(pointLabel: string, coord: Coord, strings: PerseusStrings, locale: string): string;
7
7
  export {};
@@ -3,7 +3,7 @@ import type { ExponentialGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srExponentialPointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  hasCurve: boolean;
@@ -4,8 +4,23 @@ import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srLinearSystemPointLabel(state: {
5
5
  lineIndex: number;
6
6
  pointIndex: number;
7
- pointLabel: string | number;
7
+ pointLabel: string | undefined;
8
8
  x: number;
9
9
  y: number;
10
10
  }, strings: PerseusStrings, locale: string): string;
11
- export declare function describeLinearSystemGraph(state: LinearSystemGraphState, i18n: I18nContextType): string;
11
+ interface LinearSystemLineDescription {
12
+ point1AriaLabel: string;
13
+ point2AriaLabel: string;
14
+ grabHandleAriaLabel: string;
15
+ pointsDescription: string;
16
+ interceptDescription: string;
17
+ slopeDescription: string;
18
+ }
19
+ interface LinearSystemGraphDescriptionStrings {
20
+ srLinearSystemGraph: string;
21
+ srLinearSystemInteractiveElements: string;
22
+ srIntersectionDescription: string;
23
+ srLines: ReadonlyArray<LinearSystemLineDescription>;
24
+ }
25
+ export declare function describeLinearSystemGraph(state: LinearSystemGraphState, i18n: I18nContextType): LinearSystemGraphDescriptionStrings;
26
+ export {};
@@ -3,7 +3,7 @@ import type { LogarithmGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srLogarithmPointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  hasCurve: boolean;
@@ -4,7 +4,7 @@ import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  import type { Coord } from "@khanacademy/perseus-core";
5
5
  export declare function srQuadraticPointLabel(state: {
6
6
  pointIndex: number;
7
- pointLabel: string | number;
7
+ pointLabel: string | undefined;
8
8
  x: number;
9
9
  y: number;
10
10
  vertex?: Coord;
@@ -3,7 +3,7 @@ import type { RayGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srRayPointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  }, strings: PerseusStrings, locale: string): string;
@@ -4,9 +4,23 @@ import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srSegmentPointLabel(state: {
5
5
  segmentIndex: number;
6
6
  pointIndex: number;
7
- pointLabel: string | number;
7
+ pointLabel: string | undefined;
8
8
  totalSegments: number;
9
9
  x: number;
10
10
  y: number;
11
11
  }, strings: PerseusStrings, locale: string): string;
12
- export declare function describeSegmentGraph(state: SegmentGraphState, i18n: I18nContextType): string;
12
+ interface SegmentDescription {
13
+ point1AriaLabel: string;
14
+ point2AriaLabel: string;
15
+ grabHandleAriaLabel: string;
16
+ individualAriaLabel: string;
17
+ lengthDescription: string;
18
+ }
19
+ interface SegmentGraphDescriptionStrings {
20
+ srSegmentGraph: string;
21
+ srSegmentInteractiveElements: string;
22
+ srWholeGraphDescription: string;
23
+ srSegments: ReadonlyArray<SegmentDescription>;
24
+ }
25
+ export declare function describeSegmentGraph(state: SegmentGraphState, i18n: I18nContextType): SegmentGraphDescriptionStrings;
26
+ export {};
@@ -3,7 +3,7 @@ import type { SinusoidGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srSinusoidPointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  otherY: number;
@@ -3,7 +3,7 @@ import type { TangentGraphState } from "../../types";
3
3
  import type { PerseusStrings } from "@khanacademy/perseus/strings";
4
4
  export declare function srTangentPointLabel(state: {
5
5
  pointIndex: number;
6
- pointLabel: string | number;
6
+ pointLabel: string | undefined;
7
7
  x: number;
8
8
  y: number;
9
9
  }, strings: PerseusStrings, locale: string): string;
@@ -11,7 +11,7 @@ type TangentGraphDescriptionStrings = {
11
11
  srTangentGraph: string;
12
12
  srTangentDescription: string;
13
13
  srTangentInflectionPoint: string;
14
- srTangentSecondPoint: string;
14
+ srTangentControlPoint: string;
15
15
  srTangentInteractiveElements: string;
16
16
  };
17
17
  export declare function describeTangentGraph(state: TangentGraphState, i18n: I18nContextType): TangentGraphDescriptionStrings;
@@ -194,7 +194,7 @@ declare class InteractiveGraph extends React.Component<Props, State> {
194
194
  isMobile?: boolean;
195
195
  isMobileApp?: boolean;
196
196
  hintProgressColor?: string;
197
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
197
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
198
198
  }> & {
199
199
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
200
200
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -1,7 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { InteractiveGraphAction } from "./reducer/interactive-graph-action";
3
3
  import type { InteractiveGraphState, InteractiveGraphProps } from "./types";
4
- import type { APIOptionsWithDefaults } from "../../types";
5
4
  import "mafs/core.css";
6
5
  import "./mafs-styles.css";
7
6
  export type MafsGraphProps = {
@@ -26,6 +25,5 @@ export type MafsGraphProps = {
26
25
  static: boolean | null | undefined;
27
26
  widgetId: string;
28
27
  ungradedDescriptionId?: string;
29
- apiOptions?: APIOptionsWithDefaults;
30
28
  };
31
29
  export declare const MafsGraph: (props: MafsGraphProps) => React.JSX.Element;
@@ -1,6 +1,5 @@
1
1
  import * as React from "react";
2
2
  import type { InteractiveGraphProps } from "./types";
3
- import type { APIOptionsWithDefaults } from "../../types";
4
3
  import type { PerseusGraphType, PerseusInteractiveGraphUserInput } from "@khanacademy/perseus-core";
5
4
  export type StatefulMafsGraphProps = {
6
5
  box: [number, number];
@@ -31,7 +30,6 @@ export type StatefulMafsGraphProps = {
31
30
  widgetId: string;
32
31
  graded?: boolean | null;
33
32
  ungradedDescriptionId?: string;
34
- apiOptions?: APIOptionsWithDefaults;
35
33
  };
36
34
  export type StatefulMafsGraphType = {
37
35
  getUserInput: () => PerseusInteractiveGraphUserInput;
@@ -29,6 +29,7 @@ type MoveRadiusPointAnnouncement = {
29
29
  y: number;
30
30
  centerX: number;
31
31
  radius: number;
32
+ pointLabel: string | undefined;
32
33
  };
33
34
  type MoveCenterAnnouncement = {
34
35
  type: "move-center";
@@ -38,7 +39,7 @@ type MoveCenterAnnouncement = {
38
39
  type MoveQuadraticPointAnnouncement = {
39
40
  type: "move-quadratic-point";
40
41
  pointIndex: number;
41
- pointLabel: string | number;
42
+ pointLabel: string | undefined;
42
43
  x: number;
43
44
  y: number;
44
45
  vertex: Coord | undefined;
@@ -53,7 +54,7 @@ type MoveSegmentPointAnnouncement = {
53
54
  type: "move-segment-point";
54
55
  segmentIndex: number;
55
56
  pointIndex: number;
56
- pointLabel: string | number;
57
+ pointLabel: string | undefined;
57
58
  x: number;
58
59
  y: number;
59
60
  totalSegments: number;
@@ -66,14 +67,14 @@ type MoveLinearSystemPointAnnouncement = {
66
67
  type: "move-linear-system-point";
67
68
  lineIndex: number;
68
69
  pointIndex: number;
69
- pointLabel: string | number;
70
+ pointLabel: string | undefined;
70
71
  x: number;
71
72
  y: number;
72
73
  };
73
74
  type MoveRayPointAnnouncement = {
74
75
  type: "move-ray-point";
75
76
  pointIndex: number;
76
- pointLabel: string | number;
77
+ pointLabel: string | undefined;
77
78
  x: number;
78
79
  y: number;
79
80
  };
@@ -97,7 +98,7 @@ type MoveLinearLineAnnouncement = {
97
98
  type MoveSinusoidPointAnnouncement = {
98
99
  type: "move-sinusoid-point";
99
100
  pointIndex: number;
100
- pointLabel: string | number;
101
+ pointLabel: string | undefined;
101
102
  x: number;
102
103
  y: number;
103
104
  otherY: number;
@@ -105,7 +106,7 @@ type MoveSinusoidPointAnnouncement = {
105
106
  type MoveExponentialPointAnnouncement = {
106
107
  type: "move-exponential-point";
107
108
  pointIndex: number;
108
- pointLabel: string | number;
109
+ pointLabel: string | undefined;
109
110
  x: number;
110
111
  y: number;
111
112
  hasCurve: boolean;
@@ -113,7 +114,7 @@ type MoveExponentialPointAnnouncement = {
113
114
  type MoveLogarithmPointAnnouncement = {
114
115
  type: "move-logarithm-point";
115
116
  pointIndex: number;
116
- pointLabel: string | number;
117
+ pointLabel: string | undefined;
117
118
  x: number;
118
119
  y: number;
119
120
  hasCurve: boolean;
@@ -125,7 +126,7 @@ type MoveExponentialAsymptoteAnnouncement = {
125
126
  type MoveTangentPointAnnouncement = {
126
127
  type: "move-tangent-point";
127
128
  pointIndex: number;
128
- pointLabel: string | number;
129
+ pointLabel: string | undefined;
129
130
  x: number;
130
131
  y: number;
131
132
  };
@@ -136,7 +137,7 @@ type MoveLogarithmAsymptoteAnnouncement = {
136
137
  type MoveAbsoluteValuePointAnnouncement = {
137
138
  type: "move-absolute-value-point";
138
139
  pointIndex: number;
139
- pointLabel: string | number;
140
+ pointLabel: string | undefined;
140
141
  x: number;
141
142
  y: number;
142
143
  slope: number;
@@ -144,7 +145,7 @@ type MoveAbsoluteValuePointAnnouncement = {
144
145
  type MoveAnglePointAnnouncement = {
145
146
  type: "move-angle-point";
146
147
  pointIndex: number;
147
- pointLabel: string | number;
148
+ pointLabel: string | undefined;
148
149
  x: number;
149
150
  y: number;
150
151
  angleMeasure: number;
@@ -146,7 +146,7 @@ declare const _default: {
146
146
  isMobile?: boolean;
147
147
  isMobileApp?: boolean;
148
148
  hintProgressColor?: string;
149
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
149
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
150
150
  }> & {
151
151
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
152
152
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -6,22 +6,8 @@ type Props = WidgetProps<PerseusMeasurerWidgetOptions> & {
6
6
  protractorX: number;
7
7
  protractorY: number;
8
8
  };
9
- type DefaultProps = {
10
- box: Props["box"];
11
- image: Props["image"];
12
- showProtractor: Props["showProtractor"];
13
- protractorX: Props["protractorX"];
14
- protractorY: Props["protractorY"];
15
- showRuler: Props["showRuler"];
16
- rulerLabel: Props["rulerLabel"];
17
- rulerTicks: Props["rulerTicks"];
18
- rulerPixels: Props["rulerPixels"];
19
- rulerLength: Props["rulerLength"];
20
- };
21
9
  declare class Measurer extends React.Component<Props> implements Widget {
22
- static defaultProps: DefaultProps;
23
10
  isWidget: true;
24
- state: {};
25
11
  ruler: any;
26
12
  protractor: any;
27
13
  componentDidMount(): void;
@@ -70,7 +70,7 @@ declare class MockWidgetComponent extends React.Component<Props> implements Widg
70
70
  isMobile?: boolean;
71
71
  isMobileApp?: boolean;
72
72
  hintProgressColor?: string;
73
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
73
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
74
74
  }> & {
75
75
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
76
76
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -78,7 +78,7 @@ export declare class NumericInput extends React.Component<NumericInputProps> imp
78
78
  isMobile?: boolean;
79
79
  isMobileApp?: boolean;
80
80
  hintProgressColor?: string;
81
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
81
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
82
82
  }> & {
83
83
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
84
84
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -40,7 +40,7 @@ export declare const NumericInputComponent: React.ForwardRefExoticComponent<impo
40
40
  isMobile?: boolean;
41
41
  isMobileApp?: boolean;
42
42
  hintProgressColor?: string;
43
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
43
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
44
44
  }> & {
45
45
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
46
46
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -91,7 +91,7 @@ export declare const NumericInputComponent: React.ForwardRefExoticComponent<impo
91
91
  isMobile?: boolean;
92
92
  isMobileApp?: boolean;
93
93
  hintProgressColor?: string;
94
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
94
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
95
95
  }> & {
96
96
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
97
97
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
@@ -2,8 +2,6 @@ import { type PerseusPlotterUserInput, type PerseusPlotterWidgetOptions, type Pl
2
2
  import * as React from "react";
3
3
  import type { PerseusDependenciesV2, WidgetProps } from "../../types";
4
4
  type Props = WidgetProps<PlotterPublicWidgetOptions, PerseusPlotterUserInput> & {
5
- labelInterval: NonNullable<PerseusPlotterWidgetOptions["labelInterval"]>;
6
- picSize: NonNullable<PerseusPlotterWidgetOptions["picSize"]>;
7
5
  dependencies: PerseusDependenciesV2;
8
6
  };
9
7
  declare function getStartUserInput(options: PlotterPublicWidgetOptions): PerseusPlotterUserInput;
@@ -78,7 +78,7 @@ declare class Table extends React.Component<Props> implements Widget {
78
78
  isMobile?: boolean;
79
79
  isMobileApp?: boolean;
80
80
  hintProgressColor?: string;
81
- flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator" | "perseus-enable-point-label-field", boolean>;
81
+ flags?: Record<"perseus-renderer-upgrade" | "desmos-calculator", boolean>;
82
82
  }> & {
83
83
  baseElements: NonNullable<import("../..").APIOptions["baseElements"]>;
84
84
  isArticle: NonNullable<import("../..").APIOptions["isArticle"]>;
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": "81.0.2",
6
+ "version": "82.0.1",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -42,13 +42,13 @@
42
42
  "mafs": "0.19.0",
43
43
  "tiny-invariant": "1.3.1",
44
44
  "uuid": "^10.0.0",
45
+ "@khanacademy/keypad-context": "3.2.76",
46
+ "@khanacademy/kmath": "2.4.35",
47
+ "@khanacademy/math-input": "26.6.5",
48
+ "@khanacademy/perseus-linter": "5.1.16",
45
49
  "@khanacademy/kas": "2.2.3",
46
- "@khanacademy/keypad-context": "3.2.75",
47
- "@khanacademy/kmath": "2.4.34",
48
- "@khanacademy/math-input": "26.6.4",
49
- "@khanacademy/perseus-core": "32.0.1",
50
- "@khanacademy/perseus-linter": "5.1.15",
51
- "@khanacademy/perseus-score": "8.12.7",
50
+ "@khanacademy/perseus-core": "33.0.0",
51
+ "@khanacademy/perseus-score": "8.12.8",
52
52
  "@khanacademy/perseus-utils": "2.1.5",
53
53
  "@khanacademy/pure-markdown": "2.3.1",
54
54
  "@khanacademy/simple-markdown": "3.0.0"
@@ -1,22 +0,0 @@
1
- import type { PerseusStrings } from "@khanacademy/perseus/strings";
2
- /**
3
- * Resolves the x/y formatting and the "custom author label overrides the
4
- * semantic label" fallback shared by every live point builder and by
5
- * build-point-aria-label.
6
- *
7
- * Returns the locale-formatted `x`/`y` strings, plus a `customLabel`: the
8
- * `srPointAtCoordinates` string when the author set a custom (string) label,
9
- * otherwise `undefined` so the caller applies its own semantic label.
10
- *
11
- * TODO(LEMS-4206): Once we update the translation keys to allow custom labels
12
- * we can remove the customLabel fallback in favor of the per-graph logic.
13
- */
14
- export declare function withCustomPointLabel(state: {
15
- pointLabel: string | number;
16
- x: number;
17
- y: number;
18
- }, strings: PerseusStrings, locale: string): {
19
- x: string;
20
- y: string;
21
- customLabel: string | undefined;
22
- };
@@ -1 +0,0 @@
1
- export { default } from "./molecule";
@@ -1,5 +0,0 @@
1
- /**
2
- * Draw an array of rendering instructions into a 2D canvas drawing context.
3
- */
4
- declare function draw(ctx: any, items: Array<any>): void;
5
- export default draw;