@khanacademy/perseus 53.1.0 → 54.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 (52) hide show
  1. package/dist/components/highlighting/types.d.ts +2 -1
  2. package/dist/components.d.ts +0 -1
  3. package/dist/es/index.js +603 -1867
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/es/strings.js +61 -10
  6. package/dist/es/strings.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +678 -691
  9. package/dist/index.js.map +1 -1
  10. package/dist/interactive2/movable.d.ts +2 -1
  11. package/dist/strings.d.ts +57 -6
  12. package/dist/strings.js +139 -67
  13. package/dist/strings.js.map +1 -1
  14. package/dist/types.d.ts +3 -12
  15. package/dist/util/graphie.d.ts +1 -1
  16. package/dist/widget-ai-utils/radio/radio-ai-utils.d.ts +2 -1
  17. package/dist/widget-type-utils.d.ts +1 -0
  18. package/dist/widgets/categorizer/categorizer.d.ts +1 -2
  19. package/dist/widgets/cs-program/cs-program.d.ts +0 -2
  20. package/dist/widgets/dropdown/dropdown.d.ts +0 -2
  21. package/dist/widgets/expression/expression.d.ts +3 -4
  22. package/dist/widgets/grapher/grapher.d.ts +0 -2
  23. package/dist/widgets/iframe/iframe.d.ts +1 -2
  24. package/dist/widgets/interactive-graph.d.ts +2 -87
  25. package/dist/widgets/interactive-graphs/backgrounds/axis-labels.d.ts +4 -1
  26. package/dist/widgets/interactive-graphs/graphs/angle.d.ts +2 -1
  27. package/dist/widgets/interactive-graphs/graphs/circle.d.ts +6 -2
  28. package/dist/widgets/interactive-graphs/graphs/components/hairlines.d.ts +7 -0
  29. package/dist/widgets/interactive-graphs/graphs/components/movable-point-view.d.ts +1 -0
  30. package/dist/widgets/interactive-graphs/graphs/components/svg-line.d.ts +2 -1
  31. package/dist/widgets/interactive-graphs/graphs/linear-system.d.ts +2 -2
  32. package/dist/widgets/interactive-graphs/graphs/linear.d.ts +1 -1
  33. package/dist/widgets/interactive-graphs/graphs/point.d.ts +3 -2
  34. package/dist/widgets/interactive-graphs/graphs/ray.d.ts +1 -1
  35. package/dist/widgets/interactive-graphs/graphs/screenreader-text.d.ts +1 -0
  36. package/dist/widgets/interactive-graphs/graphs/segment.d.ts +2 -2
  37. package/dist/widgets/interactive-graphs/graphs/sinusoid.d.ts +2 -1
  38. package/dist/widgets/interactive-graphs/graphs/utils.d.ts +0 -3
  39. package/dist/widgets/interactive-graphs/interactive-graph-question-builder.d.ts +1 -2
  40. package/dist/widgets/interactive-graphs/reducer/interactive-graph-action.d.ts +3 -3
  41. package/dist/widgets/label-image/label-image.d.ts +1 -3
  42. package/dist/widgets/matrix/matrix.d.ts +1 -2
  43. package/dist/widgets/number-line/number-line.d.ts +0 -2
  44. package/dist/widgets/numeric-input/numeric-input.d.ts +0 -2
  45. package/dist/widgets/orderer/orderer.d.ts +0 -2
  46. package/dist/widgets/plotter/plotter.d.ts +0 -2
  47. package/dist/widgets/radio/radio.d.ts +1 -2
  48. package/dist/widgets/sorter/sorter.d.ts +1 -2
  49. package/dist/widgets/table/table.d.ts +0 -2
  50. package/dist/widgets.d.ts +1 -2
  51. package/package.json +10 -10
  52. package/dist/components/graph.d.ts +0 -61
@@ -1,6 +1,6 @@
1
1
  import type { Constraint, ConstraintCallbacks, Coord } from "./types";
2
2
  import type { Graphie } from "../util/graphie";
3
- export interface State {
3
+ interface State {
4
4
  added?: boolean;
5
5
  isHovering?: boolean;
6
6
  isMouseOver?: boolean;
@@ -96,3 +96,4 @@ export declare class Movable<Options extends Record<string, any>> {
96
96
  getMouseTarget(): Element;
97
97
  } | null | undefined;
98
98
  }
99
+ export {};
package/dist/strings.d.ts CHANGED
@@ -178,6 +178,10 @@ export type PerseusStrings = {
178
178
  simulationLoadFail: string;
179
179
  simulationLocaleWarning: string;
180
180
  selectAnAnswer: string;
181
+ srGraphInstructions: string;
182
+ srUnlimitedGraphInstructions: string;
183
+ xAxis: string;
184
+ yAxis: string;
181
185
  addPoint: string;
182
186
  removePoint: string;
183
187
  graphKeyboardPrompt: string;
@@ -242,13 +246,19 @@ export type PerseusStrings = {
242
246
  point2X: string;
243
247
  point2Y: string;
244
248
  }) => string;
245
- srAngleSideAtCoordinates: ({ point, side, x, y, }: {
246
- point: number;
247
- side: string;
249
+ srAngleStartingSide: ({ x, y }: {
248
250
  x: string;
249
251
  y: string;
250
252
  }) => string;
251
- srAngleVertexAtCoordinatesWithAngleMeasure: ({ x, y, angleMeasure, }: {
253
+ srAngleEndingSide: ({ x, y }: {
254
+ x: string;
255
+ y: string;
256
+ }) => string;
257
+ srAngleVertex: ({ x, y }: {
258
+ x: string;
259
+ y: string;
260
+ }) => string;
261
+ srAngleVertexWithAngleMeasure: ({ x, y, angleMeasure, }: {
252
262
  x: string;
253
263
  y: string;
254
264
  angleMeasure: string;
@@ -263,6 +273,14 @@ export type PerseusStrings = {
263
273
  endingSideX: string;
264
274
  endingSideY: string;
265
275
  }) => string;
276
+ srAngleInteractiveElements: ({ vertexX, vertexY, startingSideX, startingSideY, endingSideX, endingSideY, }: {
277
+ vertexX: string;
278
+ vertexY: string;
279
+ startingSideX: string;
280
+ startingSideY: string;
281
+ endingSideX: string;
282
+ endingSideY: string;
283
+ }) => string;
266
284
  srSingleSegmentGraphAriaLabel: string;
267
285
  srMultipleSegmentGraphAriaLabel: ({ countOfSegments, }: {
268
286
  countOfSegments: number;
@@ -401,6 +419,27 @@ export type PerseusStrings = {
401
419
  length: string;
402
420
  }) => string;
403
421
  srUnlimitedPolygonEmpty: string;
422
+ srSinusoidGraph: string;
423
+ srSinusoidRootPoint: ({ x, y }: {
424
+ x: string;
425
+ y: string;
426
+ }) => string;
427
+ srSinusoidPeakPoint: ({ x, y }: {
428
+ x: string;
429
+ y: string;
430
+ }) => string;
431
+ srSinusoidDescription: ({ minValue, maxValue, cycleStart, cycleEnd, }: {
432
+ minValue: string;
433
+ maxValue: string;
434
+ cycleStart: string;
435
+ cycleEnd: string;
436
+ }) => string;
437
+ srSinusoidInteractiveElements: ({ point1X, point1Y, point2X, point2Y, }: {
438
+ point1X: string;
439
+ point1Y: string;
440
+ point2X: string;
441
+ point2Y: string;
442
+ }) => string;
404
443
  };
405
444
  /**
406
445
  * Untranslated strings used in Perseus. To be used by an external
@@ -550,6 +589,10 @@ export declare const strings: {
550
589
  openPolygon: string;
551
590
  srInteractiveElements: string;
552
591
  srNoInteractiveElements: string;
592
+ srGraphInstructions: string;
593
+ srUnlimitedGraphInstructions: string;
594
+ xAxis: string;
595
+ yAxis: string;
553
596
  srPointAtCoordinates: string;
554
597
  srCircleGraph: string;
555
598
  srCircleShape: string;
@@ -567,10 +610,13 @@ export declare const strings: {
567
610
  srLinearGraphBothIntercepts: string;
568
611
  srLinearGraphOriginIntercept: string;
569
612
  srLinearGrabHandle: string;
570
- srAngleSideAtCoordinates: string;
571
- srAngleVertexAtCoordinatesWithAngleMeasure: string;
613
+ srAngleStartingSide: string;
614
+ srAngleEndingSide: string;
615
+ srAngleVertex: string;
616
+ srAngleVertexWithAngleMeasure: string;
572
617
  srAngleGraphAriaLabel: string;
573
618
  srAngleGraphAriaDescription: string;
619
+ srAngleInteractiveElements: string;
574
620
  srSingleSegmentGraphAriaLabel: string;
575
621
  srMultipleSegmentGraphAriaLabel: string;
576
622
  srMultipleSegmentIndividualLabel: string;
@@ -612,6 +658,11 @@ export declare const strings: {
612
658
  srPolygonSideLength: string;
613
659
  srPolygonSideLengthApprox: string;
614
660
  srUnlimitedPolygonEmpty: string;
661
+ srSinusoidGraph: string;
662
+ srSinusoidRootPoint: string;
663
+ srSinusoidPeakPoint: string;
664
+ srSinusoidDescription: string;
665
+ srSinusoidInteractiveElements: string;
615
666
  };
616
667
  /**
617
668
  * Mock strings for the Perseus package, to be used for tests and Storybook.
package/dist/strings.js CHANGED
@@ -159,6 +159,10 @@ const strings = {
159
159
  // translation tickets after all interactive graph SR strings have
160
160
  // been finalized. Remove this comment after the tickets have been
161
161
  // created.
162
+ srGraphInstructions: "Use the Tab key to move through the interactive elements in the graph. When an interactive element has focus, use the Arrow keys to move it.",
163
+ srUnlimitedGraphInstructions: "Press Shift + Enter to interact with the graph. Use the Tab key to move through the interactive elements in the graph and access the graph Action Bar. When an interactive element has focus, use the Arrow keys to move it or use the Delete key to remove it from the graph. Use the buttons in the Action Bar to add or adjust elements within the graph.",
164
+ xAxis: "X-axis",
165
+ yAxis: "Y-axis",
162
166
  srPointAtCoordinates: "Point %(num)s at %(x)s comma %(y)s.",
163
167
  srCircleGraph: "A circle on a coordinate plane.",
164
168
  srCircleShape: "Circle. The center point is at %(centerX)s comma %(centerY)s.",
@@ -176,10 +180,13 @@ const strings = {
176
180
  srLinearGraphBothIntercepts: "The line crosses the X-axis at %(xIntercept)s comma 0 and the Y-axis at 0 comma %(yIntercept)s.",
177
181
  srLinearGraphOriginIntercept: "The line crosses the x and y axes at the graph's origin.",
178
182
  srLinearGrabHandle: "Line from %(point1X)s comma %(point1Y)s to %(point2X)s comma %(point2Y)s.",
179
- srAngleSideAtCoordinates: "Point %(point)s, %(side)s at %(x)s comma %(y)s",
180
- srAngleVertexAtCoordinatesWithAngleMeasure: "Point 2, vertex at %(x)s comma %(y)s. Angle %(angleMeasure)s degrees",
183
+ srAngleStartingSide: "Point 3, starting side at %(x)s comma %(y)s.",
184
+ srAngleEndingSide: "Point 2, ending side at %(x)s comma %(y)s.",
185
+ srAngleVertex: "Point 1, vertex at %(x)s comma %(y)s.",
186
+ srAngleVertexWithAngleMeasure: "Point 1, vertex at %(x)s comma %(y)s. Angle %(angleMeasure)s degrees.",
181
187
  srAngleGraphAriaLabel: "An angle on a coordinate plane.",
182
188
  srAngleGraphAriaDescription: "The angle measure is %(angleMeasure)s degrees with a vertex at %(vertexX)s comma %(vertexY)s, a point on the starting side at %(startingSideX)s comma %(startingSideY)s and a point on the ending side at %(endingSideX)s comma %(endingSideY)s",
189
+ srAngleInteractiveElements: "An angle formed by 3 points. The vertex is at %(vertexX)s comma %(vertexY)s. The starting side point is at %(startingSideX)s comma %(startingSideY)s. The ending side point is at %(endingSideX)s comma %(endingSideY)s.",
183
190
  srSingleSegmentGraphAriaLabel: "A line segment on a coordinate plane.",
184
191
  srMultipleSegmentGraphAriaLabel: "%(countOfSegments)s line segments on a coordinate plane.",
185
192
  srMultipleSegmentIndividualLabel: "Segment %(indexOfSegment)s: Endpoint 1 at %(point1X)s comma %(point1Y)s. Endpoint 2 at %(point2X)s comma %(point2Y)s.",
@@ -220,7 +227,12 @@ const strings = {
220
227
  srPolygonPointAngle: "Angle equal to %(angle)s degrees.",
221
228
  srPolygonSideLength: "A line segment, length equal to %(length)s units, connects to point %(pointNum)s.",
222
229
  srPolygonSideLengthApprox: "A line segment, length approximately equal to %(length)s units, connects to point %(pointNum)s.",
223
- srUnlimitedPolygonEmpty: "An empty coordinate plane."
230
+ srUnlimitedPolygonEmpty: "An empty coordinate plane.",
231
+ srSinusoidGraph: "A sinusoid function on a coordinate plane.",
232
+ srSinusoidRootPoint: "Midline intersection at %(x)s comma %(y)s.",
233
+ srSinusoidPeakPoint: "Extremum point at %(x)s comma %(y)s.",
234
+ srSinusoidDescription: "The graph shows a wave with a minimum value of %(minValue)s and a maximum value of %(maxValue)s. The wave completes a full cycle from %(cycleStart)s to %(cycleEnd)s.",
235
+ srSinusoidInteractiveElements: "Sinusoid graph with midline intersection point at %(point1X)s comma %(point1Y)s and extremum point at %(point2X)s comma %(point2Y)s."
224
236
  // The above strings are used for interactive graph SR descriptions.
225
237
  };
226
238
 
@@ -483,6 +495,10 @@ const mockStrings = {
483
495
  simulationLocaleWarning: "Sorry, this simulation isn't available in your language.",
484
496
  selectAnAnswer: "Select an answer",
485
497
  // The following strings are used for interactive graph SR descriptions.
498
+ srGraphInstructions: "Use the Tab key to move through the interactive elements in the graph. When an interactive element has focus, use the Arrow keys to move it.",
499
+ srUnlimitedGraphInstructions: "Press Shift + Enter to interact with the graph. Use the Tab key to move through the interactive elements in the graph and access the graph Action Bar. When an interactive element has focus, use the Arrow keys to move it or use the Delete key to remove it from the graph. Use the buttons in the Action Bar to add or adjust elements within the graph.",
500
+ xAxis: "X-axis",
501
+ yAxis: "Y-axis",
486
502
  graphKeyboardPrompt: "Press Shift + Enter to interact with the graph",
487
503
  addPoint: "Add Point",
488
504
  removePoint: "Remove Point",
@@ -580,25 +596,37 @@ const mockStrings = {
580
596
  } = _ref37;
581
597
  return `Line from ${point1X} comma ${point1Y} to ${point2X} comma ${point2Y}.`;
582
598
  },
583
- srAngleSideAtCoordinates: _ref38 => {
599
+ srAngleStartingSide: _ref38 => {
584
600
  let {
585
- point,
586
- side,
587
601
  x,
588
602
  y
589
603
  } = _ref38;
590
- return `Point ${point}, ${side} at ${x} comma ${y}`;
604
+ return `Point 3, starting side at ${x} comma ${y}.`;
591
605
  },
592
- srAngleVertexAtCoordinatesWithAngleMeasure: _ref39 => {
606
+ srAngleEndingSide: _ref39 => {
607
+ let {
608
+ x,
609
+ y
610
+ } = _ref39;
611
+ return `Point 2, ending side at ${x} comma ${y}.`;
612
+ },
613
+ srAngleVertex: _ref40 => {
614
+ let {
615
+ x,
616
+ y
617
+ } = _ref40;
618
+ return `Point 1, vertex at ${x} comma ${y}.`;
619
+ },
620
+ srAngleVertexWithAngleMeasure: _ref41 => {
593
621
  let {
594
622
  x,
595
623
  y,
596
624
  angleMeasure
597
- } = _ref39;
598
- return `Point 2, vertex at ${x} comma ${y}. Angle ${angleMeasure} degrees`;
625
+ } = _ref41;
626
+ return `Point 1, vertex at ${x} comma ${y}. Angle ${angleMeasure} degrees.`;
599
627
  },
600
628
  srAngleGraphAriaLabel: "An angle on a coordinate plane.",
601
- srAngleGraphAriaDescription: _ref40 => {
629
+ srAngleGraphAriaDescription: _ref42 => {
602
630
  let {
603
631
  angleMeasure,
604
632
  vertexX,
@@ -607,118 +635,129 @@ const mockStrings = {
607
635
  startingSideY,
608
636
  endingSideX,
609
637
  endingSideY
610
- } = _ref40;
638
+ } = _ref42;
611
639
  return `The angle measure is ${angleMeasure} degrees with a vertex at ${vertexX} comma ${vertexY}, a point on the starting side at ${startingSideX} comma ${startingSideY} and a point on the ending side at ${endingSideX} comma ${endingSideY}.`;
612
640
  },
641
+ srAngleInteractiveElements: _ref43 => {
642
+ let {
643
+ vertexX,
644
+ vertexY,
645
+ startingSideX,
646
+ startingSideY,
647
+ endingSideX,
648
+ endingSideY
649
+ } = _ref43;
650
+ return `An angle formed by 3 points. The vertex is at ${vertexX} comma ${vertexY}. The starting side point is at ${startingSideX} comma ${startingSideY}. The ending side point is at ${endingSideX} comma ${endingSideY}.`;
651
+ },
613
652
  srSingleSegmentGraphAriaLabel: "A line segment on a coordinate plane.",
614
- srMultipleSegmentGraphAriaLabel: _ref41 => {
653
+ srMultipleSegmentGraphAriaLabel: _ref44 => {
615
654
  let {
616
655
  countOfSegments
617
- } = _ref41;
656
+ } = _ref44;
618
657
  return `${countOfSegments} segments on a coordinate plane.`;
619
658
  },
620
- srMultipleSegmentIndividualLabel: _ref42 => {
659
+ srMultipleSegmentIndividualLabel: _ref45 => {
621
660
  let {
622
661
  point1X,
623
662
  point1Y,
624
663
  point2X,
625
664
  point2Y,
626
665
  indexOfSegment
627
- } = _ref42;
666
+ } = _ref45;
628
667
  return `Segment ${indexOfSegment}: Endpoint 1 at ${point1X} comma ${point1Y}. Endpoint 2 at ${point2X} comma ${point2Y}.`;
629
668
  },
630
- srSingleSegmentLabel: _ref43 => {
669
+ srSingleSegmentLabel: _ref46 => {
631
670
  let {
632
671
  point1X,
633
672
  point1Y,
634
673
  point2X,
635
674
  point2Y
636
- } = _ref43;
675
+ } = _ref46;
637
676
  return `Endpoint 1 at ${point1X} comma ${point1Y}. Endpoint 2 at ${point2X} comma ${point2Y}.`;
638
677
  },
639
- srSegmentLength: _ref44 => {
678
+ srSegmentLength: _ref47 => {
640
679
  let {
641
680
  length
642
- } = _ref44;
681
+ } = _ref47;
643
682
  return `Segment length ${length} units.`;
644
683
  },
645
- srSingleSegmentGraphEndpointAriaLabel: _ref45 => {
684
+ srSingleSegmentGraphEndpointAriaLabel: _ref48 => {
646
685
  let {
647
686
  endpointNumber,
648
687
  x,
649
688
  y
650
- } = _ref45;
689
+ } = _ref48;
651
690
  return `Endpoint ${endpointNumber} at ${x} comma ${y}.`;
652
691
  },
653
- srMultipleSegmentGraphEndpointAriaLabel: _ref46 => {
692
+ srMultipleSegmentGraphEndpointAriaLabel: _ref49 => {
654
693
  let {
655
694
  endpointNumber,
656
695
  x,
657
696
  y,
658
697
  indexOfSegment
659
- } = _ref46;
698
+ } = _ref49;
660
699
  return `Endpoint ${endpointNumber} on segment ${indexOfSegment} at ${x} comma ${y}.`;
661
700
  },
662
- srSegmentGrabHandle: _ref47 => {
701
+ srSegmentGrabHandle: _ref50 => {
663
702
  let {
664
703
  point1X,
665
704
  point1Y,
666
705
  point2X,
667
706
  point2Y
668
- } = _ref47;
707
+ } = _ref50;
669
708
  return `Segment from ${point1X} comma ${point1Y} to ${point2X} comma ${point2Y}.`;
670
709
  },
671
710
  srLinearSystemGraph: "Two lines on a coordinate plane.",
672
- srLinearSystemPoints: _ref48 => {
711
+ srLinearSystemPoints: _ref51 => {
673
712
  let {
674
713
  lineNumber,
675
714
  point1X,
676
715
  point1Y,
677
716
  point2X,
678
717
  point2Y
679
- } = _ref48;
718
+ } = _ref51;
680
719
  return `Line ${lineNumber} has two points, point 1 at ${point1X} comma ${point1Y} and point 2 at ${point2X} comma ${point2Y}.`;
681
720
  },
682
- srLinearSystemPoint: _ref49 => {
721
+ srLinearSystemPoint: _ref52 => {
683
722
  let {
684
723
  lineNumber,
685
724
  pointSequence,
686
725
  x,
687
726
  y
688
- } = _ref49;
727
+ } = _ref52;
689
728
  return `Point ${pointSequence} on line ${lineNumber} at ${x} comma ${y}.`;
690
729
  },
691
730
  srRayGraph: "A ray on a coordinate plane.",
692
- srRayPoints: _ref50 => {
731
+ srRayPoints: _ref53 => {
693
732
  let {
694
733
  point1X,
695
734
  point1Y,
696
735
  point2X,
697
736
  point2Y
698
- } = _ref50;
737
+ } = _ref53;
699
738
  return `The endpoint is at ${point1X} comma ${point1Y} and the ray goes through point ${point2X} comma ${point2Y}.`;
700
739
  },
701
- srRayGrabHandle: _ref51 => {
740
+ srRayGrabHandle: _ref54 => {
702
741
  let {
703
742
  point1X,
704
743
  point1Y,
705
744
  point2X,
706
745
  point2Y
707
- } = _ref51;
746
+ } = _ref54;
708
747
  return `Ray with endpoint ${point1X} comma ${point1Y} going through point ${point2X} comma ${point2Y}.`;
709
748
  },
710
- srRayEndpoint: _ref52 => {
749
+ srRayEndpoint: _ref55 => {
711
750
  let {
712
751
  x,
713
752
  y
714
- } = _ref52;
753
+ } = _ref55;
715
754
  return `Endpoint at ${x} comma ${y}.`;
716
755
  },
717
- srRayTerminalPoint: _ref53 => {
756
+ srRayTerminalPoint: _ref56 => {
718
757
  let {
719
758
  x,
720
759
  y
721
- } = _ref53;
760
+ } = _ref56;
722
761
  return `Through point at ${x} comma ${y}.`;
723
762
  },
724
763
  srQuadraticGraph: "A parabola on a 4-quadrant coordinate plane.",
@@ -727,55 +766,55 @@ const mockStrings = {
727
766
  srQuadraticGraphVertexOrigin: "Vertex is at the origin.",
728
767
  srQuadraticGraphVertexXAxis: "Vertex is on the X-axis.",
729
768
  srQuadraticGraphVertexYAxis: "Vertex is on the Y-axis.",
730
- srQuadraticGraphVertexQuadrant: _ref54 => {
769
+ srQuadraticGraphVertexQuadrant: _ref57 => {
731
770
  let {
732
771
  quadrant
733
- } = _ref54;
772
+ } = _ref57;
734
773
  return `Vertex is in quadrant ${quadrant}.`;
735
774
  },
736
- srQuadraticTwoXIntercepts: _ref55 => {
775
+ srQuadraticTwoXIntercepts: _ref58 => {
737
776
  let {
738
777
  intercept1,
739
778
  intercept2
740
- } = _ref55;
779
+ } = _ref58;
741
780
  return `The X-intercepts are at ${intercept1} comma 0 and ${intercept2} comma 0.`;
742
781
  },
743
- srQuadraticOneXIntercept: _ref56 => {
782
+ srQuadraticOneXIntercept: _ref59 => {
744
783
  let {
745
784
  intercept
746
- } = _ref56;
785
+ } = _ref59;
747
786
  return `The X-intercept is at ${intercept} comma 0.`;
748
787
  },
749
- srQuadraticYIntercept: _ref57 => {
788
+ srQuadraticYIntercept: _ref60 => {
750
789
  let {
751
790
  intercept
752
- } = _ref57;
791
+ } = _ref60;
753
792
  return `The Y-intercept is at 0 comma ${intercept}.`;
754
793
  },
755
- srQuadraticPointOrigin: _ref58 => {
794
+ srQuadraticPointOrigin: _ref61 => {
756
795
  let {
757
796
  pointNumber
758
- } = _ref58;
797
+ } = _ref61;
759
798
  return `Point ${pointNumber} on parabola at the origin.`;
760
799
  },
761
- srQuadraticPointAxis: _ref59 => {
800
+ srQuadraticPointAxis: _ref62 => {
762
801
  let {
763
802
  pointNumber,
764
803
  x,
765
804
  y
766
- } = _ref59;
805
+ } = _ref62;
767
806
  return `Point ${pointNumber} on parabola at ${x} comma ${y}.`;
768
807
  },
769
- srQuadraticPointQuadrant: _ref60 => {
808
+ srQuadraticPointQuadrant: _ref63 => {
770
809
  let {
771
810
  pointNumber,
772
811
  x,
773
812
  y,
774
813
  quadrant
775
- } = _ref60;
814
+ } = _ref63;
776
815
  return `Point ${pointNumber} on parabola in quadrant ${quadrant} at ${x} comma ${y}.`;
777
816
  },
778
- srQuadraticInteractiveElements: _ref61 => {
817
+ srQuadraticInteractiveElements: _ref64 => {
779
818
  let {
780
819
  point1X,
781
820
  point1Y,
@@ -783,52 +822,85 @@ const mockStrings = {
783
822
  point2Y,
784
823
  point3X,
785
824
  point3Y
786
- } = _ref61;
825
+ } = _ref64;
787
826
  return `Parabola with points at ${point1X} comma ${point1Y}, ${point2X} comma ${point2Y}, and ${point3X} comma ${point3Y}.`;
788
827
  },
789
828
  srPolygonGraph: "A polygon.",
790
829
  srPolygonGraphCoordinatePlane: "A polygon on a coordinate plane.",
791
- srPolygonGraphPointsNum: _ref62 => {
830
+ srPolygonGraphPointsNum: _ref65 => {
792
831
  let {
793
832
  num
794
- } = _ref62;
833
+ } = _ref65;
795
834
  return `The polygon has ${num} points.`;
796
835
  },
797
836
  srPolygonGraphPointsOne: "The polygon has 1 point.",
798
- srPolygonElementsNum: _ref63 => {
837
+ srPolygonElementsNum: _ref66 => {
799
838
  let {
800
839
  num
801
- } = _ref63;
840
+ } = _ref66;
802
841
  return `A polygon with ${num} points.`;
803
842
  },
804
843
  srPolygonElementsOne: "A polygon with 1 point.",
805
- srPolygonPointAngleApprox: _ref64 => {
844
+ srPolygonPointAngleApprox: _ref67 => {
806
845
  let {
807
846
  angle
808
- } = _ref64;
847
+ } = _ref67;
809
848
  return `Angle approximately equal to ${angle} degrees.`;
810
849
  },
811
- srPolygonPointAngle: _ref65 => {
850
+ srPolygonPointAngle: _ref68 => {
812
851
  let {
813
852
  angle
814
- } = _ref65;
853
+ } = _ref68;
815
854
  return `Angle equal to ${angle} degrees.`;
816
855
  },
817
- srPolygonSideLength: _ref66 => {
856
+ srPolygonSideLength: _ref69 => {
818
857
  let {
819
858
  pointNum,
820
859
  length
821
- } = _ref66;
860
+ } = _ref69;
822
861
  return `A line segment, length equal to ${length} units, connects to point ${pointNum}.`;
823
862
  },
824
- srPolygonSideLengthApprox: _ref67 => {
863
+ srPolygonSideLengthApprox: _ref70 => {
825
864
  let {
826
865
  pointNum,
827
866
  length
828
- } = _ref67;
867
+ } = _ref70;
829
868
  return `A line segment, length approximately equal to ${length} units, connects to point ${pointNum}.`;
830
869
  },
831
- srUnlimitedPolygonEmpty: "An empty coordinate plane."
870
+ srUnlimitedPolygonEmpty: "An empty coordinate plane.",
871
+ srSinusoidGraph: "A sinusoid function on a coordinate plane.",
872
+ srSinusoidRootPoint: _ref71 => {
873
+ let {
874
+ x,
875
+ y
876
+ } = _ref71;
877
+ return `Midline intersection at ${x} comma ${y}.`;
878
+ },
879
+ srSinusoidPeakPoint: _ref72 => {
880
+ let {
881
+ x,
882
+ y
883
+ } = _ref72;
884
+ return `Extremum point at ${x} comma ${y}.`;
885
+ },
886
+ srSinusoidDescription: _ref73 => {
887
+ let {
888
+ minValue,
889
+ maxValue,
890
+ cycleStart,
891
+ cycleEnd
892
+ } = _ref73;
893
+ return `The graph shows a wave with a minimum value of ${minValue} and a maximum value of ${maxValue}. The wave completes a full cycle from ${cycleStart} to ${cycleEnd}.`;
894
+ },
895
+ srSinusoidInteractiveElements: _ref74 => {
896
+ let {
897
+ point1X,
898
+ point1Y,
899
+ point2X,
900
+ point2Y
901
+ } = _ref74;
902
+ return `Sinusoid graph with midline intersection point at ${point1X} comma ${point1Y} and extremum point at ${point2X} comma ${point2Y}.`;
903
+ }
832
904
  // The above strings are used for interactive graph SR descriptions.
833
905
  };
834
906