@khanacademy/perseus 49.0.3 → 49.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/index.js +140 -17
- package/dist/es/index.js.map +1 -1
- package/dist/es/strings.js +45 -1
- package/dist/es/strings.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +156 -17
- package/dist/index.js.map +1 -1
- package/dist/strings.d.ts +27 -0
- package/dist/strings.js +57 -1
- package/dist/strings.js.map +1 -1
- package/dist/widgets/interactive-graphs/graphs/components/movable-line.d.ts +1 -0
- package/package.json +12 -13
package/dist/es/strings.js
CHANGED
|
@@ -217,6 +217,23 @@ const strings = {
|
|
|
217
217
|
srLinearGraphOriginIntercept: {
|
|
218
218
|
context: "Screenreader-only description of the line's intercept when the intercept is the graph's origin.",
|
|
219
219
|
message: "The line crosses the x and y axes at the graph's origin."
|
|
220
|
+
},
|
|
221
|
+
srLinearGrabHandle: {
|
|
222
|
+
context: "Screenreader-only label on the grab handle for the line on a linear graph.",
|
|
223
|
+
message: "Line from %(point1X)s comma %(point1Y)s to %(point2X)s comma %(point2Y)s."
|
|
224
|
+
},
|
|
225
|
+
srAngleSideAtCoordinates: {
|
|
226
|
+
context: "Screenreader-accessible description of the side / vertex of an angle graph",
|
|
227
|
+
message: "Point %(point)s, %(side)s at %(x)s comma %(y)s"
|
|
228
|
+
},
|
|
229
|
+
srAngleVertexAtCoordinatesWithAngleMeasure: {
|
|
230
|
+
context: "Screenreader-accessible description of a vertex on an angle graph with an angle measure",
|
|
231
|
+
message: "Point 2, vertex at %(x)s comma %(y)s. Angle %(angleMeasure)s degrees"
|
|
232
|
+
},
|
|
233
|
+
srAngleGraphAriaLabel: "An angle on a coordinate plane.",
|
|
234
|
+
srAngleGraphAriaDescription: {
|
|
235
|
+
context: "Screenreader-only description of an angle on a coordinate plane.",
|
|
236
|
+
message: "The angle measure is %(angleMeasure)s degrees with a vertex at %(vertexX)s comma %(vertexY)s, a point on the initial side at %(isX)s comma %(isY)s and a point on the terminal side at %(tsX)s comma %(tsY)s"
|
|
220
237
|
}
|
|
221
238
|
// The above strings are used for interactive graph SR descriptions.
|
|
222
239
|
};
|
|
@@ -459,7 +476,34 @@ const mockStrings = {
|
|
|
459
476
|
xIntercept,
|
|
460
477
|
yIntercept
|
|
461
478
|
}) => `The line crosses the X-axis at ${xIntercept} comma 0 and the Y-axis at 0 comma ${yIntercept}.`,
|
|
462
|
-
srLinearGraphOriginIntercept: "The line crosses the x and y axes at the graph's origin."
|
|
479
|
+
srLinearGraphOriginIntercept: "The line crosses the x and y axes at the graph's origin.",
|
|
480
|
+
srLinearGrabHandle: ({
|
|
481
|
+
point1X,
|
|
482
|
+
point1Y,
|
|
483
|
+
point2X,
|
|
484
|
+
point2Y
|
|
485
|
+
}) => `Line from ${point1X} comma ${point1Y} to ${point2X} comma ${point2Y}.`,
|
|
486
|
+
srAngleSideAtCoordinates: ({
|
|
487
|
+
point,
|
|
488
|
+
side,
|
|
489
|
+
x,
|
|
490
|
+
y
|
|
491
|
+
}) => `Point ${point}, ${side} at ${x} comma ${y}`,
|
|
492
|
+
srAngleVertexAtCoordinatesWithAngleMeasure: ({
|
|
493
|
+
x,
|
|
494
|
+
y,
|
|
495
|
+
angleMeasure
|
|
496
|
+
}) => `Point 2, vertex at ${x} comma ${y}. Angle ${angleMeasure} degrees`,
|
|
497
|
+
srAngleGraphAriaLabel: "An angle on a coordinate plane.",
|
|
498
|
+
srAngleGraphAriaDescription: ({
|
|
499
|
+
angleMeasure,
|
|
500
|
+
vertexX,
|
|
501
|
+
vertexY,
|
|
502
|
+
isX,
|
|
503
|
+
isY,
|
|
504
|
+
tsX,
|
|
505
|
+
tsY
|
|
506
|
+
}) => `The angle measure is ${angleMeasure} degrees with a vertex at ${vertexX} comma ${vertexY}, a point on the initial side at ${isX} comma ${isY} and a point on the terminal side at ${tsX} comma ${tsY}.`
|
|
463
507
|
// The above strings are used for interactive graph SR descriptions.
|
|
464
508
|
};
|
|
465
509
|
|
package/dist/es/strings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sources":["../../src/strings.ts"],"sourcesContent":["/**\n * The translated strings that are used to render Perseus.\n */\nexport type PerseusStrings = {\n closeKeypad: string;\n openKeypad: string;\n mathInputBox: string;\n removeHighlight: string;\n addHighlight: string;\n hintPos: ({pos}: {pos: number}) => string;\n errorRendering: ({error}: {error: string}) => string;\n APPROXIMATED_PI_ERROR: string;\n EXTRA_SYMBOLS_ERROR: string;\n NEEDS_TO_BE_SIMPLFIED_ERROR: string;\n MISSING_PERCENT_ERROR: string;\n MULTIPLICATION_SIGN_ERROR: string;\n WRONG_CASE_ERROR: string;\n WRONG_LETTER_ERROR: string;\n invalidSelection: string;\n ERROR_TITLE: string;\n ERROR_MESSAGE: string;\n hints: string;\n getAnotherHint: string;\n deprecatedStandin: string;\n keepTrying: string;\n tryAgain: string;\n check: string;\n correctExcited: string;\n nextQuestion: string;\n skipToTitle: ({title}: {title: string}) => string;\n current: string;\n correct: string;\n correctSelected: string;\n correctCrossedOut: string;\n incorrect: string;\n incorrectSelected: string;\n hideExplanation: string;\n explain: string;\n INVALID_MESSAGE_PREFIX: string;\n DEFAULT_INVALID_MESSAGE_1: string;\n DEFAULT_INVALID_MESSAGE_2: string;\n integerExample: string;\n properExample: string;\n simplifiedProperExample: string;\n improperExample: string;\n simplifiedImproperExample: string;\n mixedExample: string;\n decimalExample: string;\n percentExample: string;\n piExample: string;\n yourAnswer: string;\n yourAnswerLabel: string;\n addPoints: string;\n addVertices: string;\n tapMultiple: string;\n tapSingle: string;\n clickMultiple: string;\n clickSingle: string;\n choices: string;\n answers: ({num}: {num: number}) => string;\n hideAnswersToggleLabel: string;\n moves: ({num}: {num: number}) => string;\n clickTiles: string;\n turnOffLights: string;\n fillAllCells: string;\n molecularDrawing: ({content}: {content: string}) => string;\n switchDirection: string;\n circleOpen: string;\n circleFilled: string;\n numDivisions: string;\n divisions: ({divRangeString}: {divRangeString: string}) => string;\n lineRange: ({lineRange}: {lineRange: string}) => string;\n lineNumber: ({lineNumber}: {lineNumber: string}) => string;\n symbolPassage: ({\n questionSymbol,\n questionNumber,\n }: {\n questionSymbol: string;\n questionNumber: string;\n }) => string;\n symbolQuestion: ({sentenceSymbol}: {sentenceSymbol: string}) => string;\n lineLabel: string;\n beginningPassage: string;\n beginningFootnotes: string;\n endPassage: string;\n questionMarker: ({number}: {number: string}) => string;\n circleMarker: ({number}: {number: string}) => string;\n sentenceMarker: ({number}: {number: string}) => string;\n dragHandles: string;\n tapAddPoints: string;\n false: string;\n true: string;\n no: string;\n yes: string;\n chooseCorrectNum: string;\n notNoneOfTheAbove: string;\n noneOfTheAbove: string;\n chooseNumAnswers: ({numCorrect}: {numCorrect: string}) => string;\n chooseAllAnswers: string;\n chooseOneAnswer: string;\n choiceCheckedCorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutCorrect: ({letter}: {letter: string}) => string;\n choiceCorrect: ({letter}: {letter: string}) => string;\n choiceCheckedIncorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutIncorrect: ({letter}: {letter: string}) => string;\n choiceIncorrect: ({letter}: {letter: string}) => string;\n choiceChecked: ({letter}: {letter: string}) => string;\n choiceCrossedOut: ({letter}: {letter: string}) => string;\n choice: ({letter}: {letter: string}) => string;\n crossOut: string;\n crossOutOption: string;\n crossOutChoice: ({letter}: {letter: string}) => string;\n bringBack: string;\n openMenuForChoice: ({letter}: {letter: string}) => string;\n letters: string;\n rightArrow: string;\n dontUnderstandUnits: string;\n checkSigFigs: string;\n answerNumericallyIncorrect: string;\n checkUnits: string;\n dontUnderstand: string;\n loading: string;\n videoTranscript: string;\n somethingWrong: string;\n videoWrapper: string;\n mathInputTitle: string;\n mathInputDescription: string;\n sin: string;\n cos: string;\n tan: string;\n simulationLoadFail: string;\n simulationLocaleWarning: string;\n selectAnAnswer: string;\n // The following strings are used for interactive graph SR descriptions.\n addPoint: string;\n removePoint: string;\n graphKeyboardPrompt: string;\n closePolygon: string;\n openPolygon: string;\n srPointAtCoordinates: ({\n num,\n x,\n y,\n }: {\n num: number;\n x: string;\n y: string;\n }) => string;\n srInteractiveElements: ({elements}: {elements: string}) => string;\n srNoInteractiveElements: string;\n srCircleGraph: string;\n srCircleShape: ({\n centerX,\n centerY,\n }: {\n centerX: string;\n centerY: string;\n }) => string;\n srCircleRadiusPoint: ({\n radiusPointX,\n radiusPointY,\n }: {\n radiusPointX: string;\n radiusPointY: string;\n }) => string;\n srCircleRadius: ({radius}: {radius: number}) => string;\n srCircleOuterPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n point3X,\n point3Y,\n point4X,\n point4Y,\n }: {\n point1X: string;\n point1Y: string;\n point2X: string;\n point2Y: string;\n point3X: string;\n point3Y: string;\n point4X: string;\n point4Y: string;\n }) => string;\n srLinearGraph: string;\n srLinearGraphPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n }: {\n point1X: string;\n point1Y: string;\n point2X: string;\n point2Y: string;\n }) => string;\n srLinearGraphSlopeIncreasing: string;\n srLinearGraphSlopeDecreasing: string;\n srLinearGraphSlopeHorizontal: string;\n srLinearGraphSlopeVertical: string;\n srLinearGraphXOnlyIntercept: ({xIntercept}: {xIntercept: string}) => string;\n srLinearGraphYOnlyIntercept: ({yIntercept}: {yIntercept: string}) => string;\n srLinearGraphBothIntercepts: ({\n xIntercept,\n yIntercept,\n }: {\n xIntercept: string;\n yIntercept: string;\n }) => string;\n srLinearGraphOriginIntercept: string;\n\n // The above strings are used for interactive graph SR descriptions.\n};\n\n/**\n * Untranslated strings used in Perseus. To be used by an external\n * translator to produce translated strings, passed in as `PerseusStrings`.\n */\nexport const strings: {\n [key in keyof PerseusStrings]:\n | string\n | {context?: string; message: string}\n | {context?: string; one: string; other: string};\n} = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: \"Hint #%(pos)s\",\n errorRendering: \"Error rendering: %(error)s\",\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: \"Skip to %(title)s\",\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: {\n one: \"%(num)s answer\",\n other: \"%(num)s answers\",\n },\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: {\n one: \"Moves: %(num)s\",\n other: \"Moves: %(num)s\",\n },\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing:\n \"A molecular structure drawing. SMILES notation: %(content)s\",\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions:\n \"Please make sure the number of divisions is in the range %(divRangeString)s.\",\n lineRange: \"lines %(lineRange)s\",\n lineNumber: \"line %(lineNumber)s\",\n symbolPassage:\n \"The symbol %(questionSymbol)s indicates that question %(questionNumber)s references this portion of the passage.\",\n symbolQuestion:\n \" The symbol %(sentenceSymbol)s indicates that the following sentence is referenced in a question.\",\n lineLabel: {\n context: \"a label next to a reading passage to denote the line number\",\n message: \"Line\",\n },\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: \"[Marker for question %(number)s]\",\n circleMarker: \"[Circle marker %(number)s]\",\n sentenceMarker: \"[Sentence %(number)s]\",\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: \"Choose %(numCorrect)s answers:\",\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: \"(Choice %(letter)s, Checked, Correct)\",\n choiceCrossedOutCorrect: \"(Choice %(letter)s, Crossed out, Correct)\",\n choiceCorrect: \"(Choice %(letter)s, Correct)\",\n choiceCheckedIncorrect: \"(Choice %(letter)s, Checked, Incorrect)\",\n choiceCrossedOutIncorrect: \"(Choice %(letter)s, Crossed out, Incorrect)\",\n choiceIncorrect: \"(Choice %(letter)s, Incorrect)\",\n choiceChecked: \"(Choice %(letter)s, Checked)\",\n choiceCrossedOut: \"(Choice %(letter)s, Crossed out)\",\n choice: \"(Choice %(letter)s)\",\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: \"Cross out Choice %(letter)s\",\n bringBack: \"Bring back\",\n openMenuForChoice: \"Open menu for Choice %(letter)s\",\n letters: {\n context:\n \"This is a list of single-character labels that will appear in front of multiple-choice options. For instance, a multiple-choice question with three options would display (A) first option (B) second option (C) third option. There must be spaces between each of the different characters. The characters will show up next to options in the order that they are listed here. Most multiple choice questions have 5 or fewer options.\",\n message: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n },\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n sin: \"sin\",\n cos: \"cos\",\n tan: \"tan\",\n simulationLoadFail: \"Sorry, this simulation cannot load.\",\n simulationLocaleWarning:\n \"Sorry, this simulation isn't available in your language.\",\n selectAnAnswer: \"Select an answer\",\n\n // The following strings are used for interactive graph SR descriptions.\n addPoint: \"Add Point\",\n removePoint: \"Remove Point\",\n graphKeyboardPrompt: \"Press Shift + Enter to interact with the graph\",\n closePolygon: \"Close shape\",\n openPolygon: \"Re-open shape\",\n srInteractiveElements: \"Interactive elements: %(elements)s\",\n srNoInteractiveElements: \"No interactive elements\",\n // TODO(LEMS-2660): The following strings are ones that will need\n // translation tickets after all interactive graph SR strings have\n // been finalized. Remove this comment after the tickets have been\n // created.\n srPointAtCoordinates: {\n context: \"Screenreader-accessible description of a point on a graph\",\n message: \"Point %(num)s at %(x)s comma %(y)s\",\n },\n srCircleGraph: {\n context: \"Aria label for the circle graph as a whole.\",\n message: \"A circle on a coordinate plane.\",\n },\n srCircleShape: {\n context:\n \"Aria label for the interactive circle shape in a circle graph.\",\n message:\n \"Circle. The center point is at %(centerX)s comma %(centerY)s.\",\n },\n srCircleRadiusPoint: {\n context:\n \"Aria label for the interactive point that sits on the edge of the circle in a circle graph. Moving this point updates the radius of the circle\",\n message: \"Radius point at %(radiusPointX)s comma %(radiusPointY)s.\",\n },\n srCircleRadius: {\n context:\n \"Screenreader-only description of the radius of a circle in a circle graph.\",\n message: \"Circle radius is %(radius)s.\",\n },\n srCircleOuterPoints: {\n context:\n \"Screenreader-only description of key points on a circle in a circle graph.\",\n message:\n \"Points on the circle at %(point1X)s comma %(point1Y)s, %(point2X)s comma %(point2Y)s, %(point3X)s comma %(point3Y)s, %(point4X)s comma %(point4Y)s.\",\n },\n srLinearGraph: {\n context: \"Aria label for the linear graph as a whole.\",\n message: \"A line on a coordinate plane.\",\n },\n srLinearGraphPoints: {\n context:\n \"Additional information about the points for the linear graph as a whole.\",\n message:\n \"The line has two points, point 1 at %(point1X)s comma %(point1Y)s and point 2 at %(point2X)s comma %(point2Y)s.\",\n },\n srLinearGraphSlopeIncreasing: {\n context:\n \"Screenreader-only description of a line's decreasing slope on a linear graph.\",\n message: \"Its slope increases from left to right.\",\n },\n srLinearGraphSlopeDecreasing: {\n context:\n \"Screenreader-only description of a line's increasing slope on a linear graph.\",\n message: \"Its slope decreases from left to right.\",\n },\n srLinearGraphSlopeHorizontal: {\n context:\n \"Screenreader-only description of a line's horizontal slope on a linear graph.\",\n message: \"Its slope is zero.\",\n },\n srLinearGraphSlopeVertical: {\n context:\n \"Screenreader-only description of a line's vertical slope on a linear graph.\",\n message: \"Its slope is undefined.\",\n },\n srLinearGraphXOnlyIntercept: {\n context:\n \"Screenreader-only description of a line's x-intercept on a linear graph when it only has an x intercept.\",\n message: \"The line crosses the X-axis at %(xIntercept)s comma 0.\",\n },\n srLinearGraphYOnlyIntercept: {\n context:\n \"Screenreader-only description of a line's y-intercept on a linear graph when it only has a y intercept.\",\n message: \"The line crosses the Y-axis at 0 comma %(yIntercept)s.\",\n },\n srLinearGraphBothIntercepts: {\n context:\n \"Screenreader-only description of a line's x and y intercepts on a linear graph when both intercepts are present.\",\n message:\n \"The line crosses the X-axis at %(xIntercept)s comma 0 and the Y-axis at 0 comma %(yIntercept)s.\",\n },\n srLinearGraphOriginIntercept: {\n context:\n \"Screenreader-only description of the line's intercept when the intercept is the graph's origin.\",\n message: \"The line crosses the x and y axes at the graph's origin.\",\n },\n // The above strings are used for interactive graph SR descriptions.\n};\n\n/**\n * Mock strings for the Perseus package, to be used for tests and Storybook.\n */\nexport const mockStrings: PerseusStrings = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: ({pos}) => `Hint #${pos}`,\n errorRendering: ({error}) => `Error rendering: ${error}`,\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: ({title}) => `Skip to ${title}`,\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: ({num}) => (num === 1 ? `${num} answer` : `${num} answers`),\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: ({num}) => (num === 1 ? `Moves: ${num}` : `Moves: ${num}`),\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing: ({content}) =>\n `A molecular structure drawing. SMILES notation: ${content}`,\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions: ({divRangeString}) =>\n `Please make sure the number of divisions is in the range ${divRangeString}.`,\n lineRange: ({lineRange}: {lineRange: string}) => `lines ${lineRange}`,\n lineNumber: ({lineNumber}: {lineNumber: string}) => `line ${lineNumber}`,\n symbolPassage: ({questionSymbol, questionNumber}) =>\n `The symbol ${questionSymbol} indicates that question ${questionNumber} references this portion of the passage.`,\n symbolQuestion: ({sentenceSymbol}) =>\n ` The symbol ${sentenceSymbol} indicates that the following sentence is referenced in a question.`,\n lineLabel: \"Line\",\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: ({number}) => `[Marker for question ${number}]`,\n circleMarker: ({number}) => `[Circle marker ${number}]`,\n sentenceMarker: ({number}) => `[Sentence ${number}]`,\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: ({numCorrect}) => `Choose ${numCorrect} answers:`,\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: ({letter}) => `(Choice ${letter}, Checked, Correct)`,\n choiceCrossedOutCorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Correct)`,\n choiceCorrect: ({letter}) => `(Choice ${letter}, Correct)`,\n choiceCheckedIncorrect: ({letter}) =>\n `(Choice ${letter}, Checked, Incorrect)`,\n choiceCrossedOutIncorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Incorrect)`,\n choiceIncorrect: ({letter}) => `(Choice ${letter}, Incorrect)`,\n choiceChecked: ({letter}) => `(Choice ${letter}, Checked)`,\n choiceCrossedOut: ({letter}) => `(Choice ${letter}, Crossed out)`,\n choice: ({letter}) => `(Choice ${letter})`,\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: ({letter}) => `Cross out Choice ${letter}`,\n bringBack: \"Bring back\",\n openMenuForChoice: ({letter}) => `Open menu for Choice ${letter}`,\n letters: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n sin: \"sin\",\n cos: \"cos\",\n tan: \"tan\",\n simulationLoadFail: \"Sorry, this simulation cannot load.\",\n simulationLocaleWarning:\n \"Sorry, this simulation isn't available in your language.\",\n selectAnAnswer: \"Select an answer\",\n\n // The following strings are used for interactive graph SR descriptions.\n graphKeyboardPrompt: \"Press Shift + Enter to interact with the graph\",\n addPoint: \"Add Point\",\n removePoint: \"Remove Point\",\n closePolygon: \"Close shape\",\n openPolygon: \"Re-open shape\",\n srPointAtCoordinates: ({num, x, y}) => `Point ${num} at ${x} comma ${y}`,\n srInteractiveElements: ({elements}) => `Interactive elements: ${elements}`,\n srNoInteractiveElements: \"No interactive elements\",\n srCircleGraph: \"A circle on a coordinate plane.\",\n srCircleShape: ({centerX, centerY}) =>\n `Circle. The center point is at ${centerX} comma ${centerY}.`,\n srCircleRadiusPoint: ({radiusPointX, radiusPointY}) =>\n `Radius point at ${radiusPointX} comma ${radiusPointY}.`,\n srCircleRadius: ({radius}) => `Circle radius is ${radius}.`,\n srCircleOuterPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n point3X,\n point3Y,\n point4X,\n point4Y,\n }) =>\n `Points on the circle at ${point1X} comma ${point1Y}, ${point2X} comma ${point2Y}, ${point3X} comma ${point3Y}, ${point4X} comma ${point4Y}.`,\n srLinearGraph: \"A line on a coordinate plane.\",\n srLinearGraphPoints: ({point1X, point1Y, point2X, point2Y}) =>\n `The line has two points, point 1 at ${point1X} comma ${point1Y} and point 2 at ${point2X} comma ${point2Y}.`,\n srLinearGraphSlopeIncreasing: \"Its slope increases from left to right.\",\n srLinearGraphSlopeDecreasing: \"Its slope decreases from left to right.\",\n srLinearGraphSlopeHorizontal: \"Its slope is zero.\",\n srLinearGraphSlopeVertical: \"Its slope is undefined.\",\n srLinearGraphXOnlyIntercept: ({xIntercept}) =>\n `The line crosses the X-axis at ${xIntercept} comma 0.`,\n srLinearGraphYOnlyIntercept: ({yIntercept}) =>\n `The line crosses the Y-axis at 0 comma ${yIntercept}.`,\n srLinearGraphBothIntercepts: ({xIntercept, yIntercept}) =>\n `The line crosses the X-axis at ${xIntercept} comma 0 and the Y-axis at 0 comma ${yIntercept}.`,\n srLinearGraphOriginIntercept:\n \"The line crosses the x and y axes at the graph's origin.\",\n // The above strings are used for interactive graph SR descriptions.\n};\n"],"names":["strings","closeKeypad","openKeypad","mathInputBox","removeHighlight","addHighlight","hintPos","errorRendering","APPROXIMATED_PI_ERROR","EXTRA_SYMBOLS_ERROR","NEEDS_TO_BE_SIMPLFIED_ERROR","MISSING_PERCENT_ERROR","MULTIPLICATION_SIGN_ERROR","WRONG_CASE_ERROR","WRONG_LETTER_ERROR","invalidSelection","ERROR_TITLE","ERROR_MESSAGE","hints","getAnotherHint","deprecatedStandin","keepTrying","tryAgain","check","correctExcited","nextQuestion","skipToTitle","current","correct","correctSelected","correctCrossedOut","incorrect","incorrectSelected","hideExplanation","explain","INVALID_MESSAGE_PREFIX","DEFAULT_INVALID_MESSAGE_1","DEFAULT_INVALID_MESSAGE_2","integerExample","properExample","simplifiedProperExample","improperExample","simplifiedImproperExample","mixedExample","decimalExample","percentExample","piExample","yourAnswer","yourAnswerLabel","addPoints","addVertices","tapMultiple","tapSingle","clickMultiple","clickSingle","choices","answers","one","other","hideAnswersToggleLabel","moves","clickTiles","turnOffLights","fillAllCells","molecularDrawing","switchDirection","circleOpen","circleFilled","numDivisions","divisions","lineRange","lineNumber","symbolPassage","symbolQuestion","lineLabel","context","message","beginningPassage","beginningFootnotes","endPassage","questionMarker","circleMarker","sentenceMarker","dragHandles","tapAddPoints","false","true","no","yes","chooseCorrectNum","notNoneOfTheAbove","noneOfTheAbove","chooseNumAnswers","chooseAllAnswers","chooseOneAnswer","choiceCheckedCorrect","choiceCrossedOutCorrect","choiceCorrect","choiceCheckedIncorrect","choiceCrossedOutIncorrect","choiceIncorrect","choiceChecked","choiceCrossedOut","choice","crossOut","crossOutOption","crossOutChoice","bringBack","openMenuForChoice","letters","rightArrow","dontUnderstandUnits","checkSigFigs","answerNumericallyIncorrect","checkUnits","dontUnderstand","loading","videoTranscript","somethingWrong","videoWrapper","mathInputTitle","mathInputDescription","sin","cos","tan","simulationLoadFail","simulationLocaleWarning","selectAnAnswer","addPoint","removePoint","graphKeyboardPrompt","closePolygon","openPolygon","srInteractiveElements","srNoInteractiveElements","srPointAtCoordinates","srCircleGraph","srCircleShape","srCircleRadiusPoint","srCircleRadius","srCircleOuterPoints","srLinearGraph","srLinearGraphPoints","srLinearGraphSlopeIncreasing","srLinearGraphSlopeDecreasing","srLinearGraphSlopeHorizontal","srLinearGraphSlopeVertical","srLinearGraphXOnlyIntercept","srLinearGraphYOnlyIntercept","srLinearGraphBothIntercepts","srLinearGraphOriginIntercept","mockStrings","pos","error","title","num","content","divRangeString","questionSymbol","questionNumber","sentenceSymbol","number","numCorrect","letter","x","y","elements","centerX","centerY","radiusPointX","radiusPointY","radius","point1X","point1Y","point2X","point2Y","point3X","point3Y","point4X","point4Y","xIntercept","yIntercept"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strings.js","sources":["../../src/strings.ts"],"sourcesContent":["/**\n * The translated strings that are used to render Perseus.\n */\nexport type PerseusStrings = {\n closeKeypad: string;\n openKeypad: string;\n mathInputBox: string;\n removeHighlight: string;\n addHighlight: string;\n hintPos: ({pos}: {pos: number}) => string;\n errorRendering: ({error}: {error: string}) => string;\n APPROXIMATED_PI_ERROR: string;\n EXTRA_SYMBOLS_ERROR: string;\n NEEDS_TO_BE_SIMPLFIED_ERROR: string;\n MISSING_PERCENT_ERROR: string;\n MULTIPLICATION_SIGN_ERROR: string;\n WRONG_CASE_ERROR: string;\n WRONG_LETTER_ERROR: string;\n invalidSelection: string;\n ERROR_TITLE: string;\n ERROR_MESSAGE: string;\n hints: string;\n getAnotherHint: string;\n deprecatedStandin: string;\n keepTrying: string;\n tryAgain: string;\n check: string;\n correctExcited: string;\n nextQuestion: string;\n skipToTitle: ({title}: {title: string}) => string;\n current: string;\n correct: string;\n correctSelected: string;\n correctCrossedOut: string;\n incorrect: string;\n incorrectSelected: string;\n hideExplanation: string;\n explain: string;\n INVALID_MESSAGE_PREFIX: string;\n DEFAULT_INVALID_MESSAGE_1: string;\n DEFAULT_INVALID_MESSAGE_2: string;\n integerExample: string;\n properExample: string;\n simplifiedProperExample: string;\n improperExample: string;\n simplifiedImproperExample: string;\n mixedExample: string;\n decimalExample: string;\n percentExample: string;\n piExample: string;\n yourAnswer: string;\n yourAnswerLabel: string;\n addPoints: string;\n addVertices: string;\n tapMultiple: string;\n tapSingle: string;\n clickMultiple: string;\n clickSingle: string;\n choices: string;\n answers: ({num}: {num: number}) => string;\n hideAnswersToggleLabel: string;\n moves: ({num}: {num: number}) => string;\n clickTiles: string;\n turnOffLights: string;\n fillAllCells: string;\n molecularDrawing: ({content}: {content: string}) => string;\n switchDirection: string;\n circleOpen: string;\n circleFilled: string;\n numDivisions: string;\n divisions: ({divRangeString}: {divRangeString: string}) => string;\n lineRange: ({lineRange}: {lineRange: string}) => string;\n lineNumber: ({lineNumber}: {lineNumber: string}) => string;\n symbolPassage: ({\n questionSymbol,\n questionNumber,\n }: {\n questionSymbol: string;\n questionNumber: string;\n }) => string;\n symbolQuestion: ({sentenceSymbol}: {sentenceSymbol: string}) => string;\n lineLabel: string;\n beginningPassage: string;\n beginningFootnotes: string;\n endPassage: string;\n questionMarker: ({number}: {number: string}) => string;\n circleMarker: ({number}: {number: string}) => string;\n sentenceMarker: ({number}: {number: string}) => string;\n dragHandles: string;\n tapAddPoints: string;\n false: string;\n true: string;\n no: string;\n yes: string;\n chooseCorrectNum: string;\n notNoneOfTheAbove: string;\n noneOfTheAbove: string;\n chooseNumAnswers: ({numCorrect}: {numCorrect: string}) => string;\n chooseAllAnswers: string;\n chooseOneAnswer: string;\n choiceCheckedCorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutCorrect: ({letter}: {letter: string}) => string;\n choiceCorrect: ({letter}: {letter: string}) => string;\n choiceCheckedIncorrect: ({letter}: {letter: string}) => string;\n choiceCrossedOutIncorrect: ({letter}: {letter: string}) => string;\n choiceIncorrect: ({letter}: {letter: string}) => string;\n choiceChecked: ({letter}: {letter: string}) => string;\n choiceCrossedOut: ({letter}: {letter: string}) => string;\n choice: ({letter}: {letter: string}) => string;\n crossOut: string;\n crossOutOption: string;\n crossOutChoice: ({letter}: {letter: string}) => string;\n bringBack: string;\n openMenuForChoice: ({letter}: {letter: string}) => string;\n letters: string;\n rightArrow: string;\n dontUnderstandUnits: string;\n checkSigFigs: string;\n answerNumericallyIncorrect: string;\n checkUnits: string;\n dontUnderstand: string;\n loading: string;\n videoTranscript: string;\n somethingWrong: string;\n videoWrapper: string;\n mathInputTitle: string;\n mathInputDescription: string;\n sin: string;\n cos: string;\n tan: string;\n simulationLoadFail: string;\n simulationLocaleWarning: string;\n selectAnAnswer: string;\n // The following strings are used for interactive graph SR descriptions.\n addPoint: string;\n removePoint: string;\n graphKeyboardPrompt: string;\n closePolygon: string;\n openPolygon: string;\n srPointAtCoordinates: ({\n num,\n x,\n y,\n }: {\n num: number;\n x: string;\n y: string;\n }) => string;\n srInteractiveElements: ({elements}: {elements: string}) => string;\n srNoInteractiveElements: string;\n srCircleGraph: string;\n srCircleShape: ({\n centerX,\n centerY,\n }: {\n centerX: string;\n centerY: string;\n }) => string;\n srCircleRadiusPoint: ({\n radiusPointX,\n radiusPointY,\n }: {\n radiusPointX: string;\n radiusPointY: string;\n }) => string;\n srCircleRadius: ({radius}: {radius: number}) => string;\n srCircleOuterPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n point3X,\n point3Y,\n point4X,\n point4Y,\n }: {\n point1X: string;\n point1Y: string;\n point2X: string;\n point2Y: string;\n point3X: string;\n point3Y: string;\n point4X: string;\n point4Y: string;\n }) => string;\n srLinearGraph: string;\n srLinearGraphPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n }: {\n point1X: string;\n point1Y: string;\n point2X: string;\n point2Y: string;\n }) => string;\n srLinearGraphSlopeIncreasing: string;\n srLinearGraphSlopeDecreasing: string;\n srLinearGraphSlopeHorizontal: string;\n srLinearGraphSlopeVertical: string;\n srLinearGraphXOnlyIntercept: ({xIntercept}: {xIntercept: string}) => string;\n srLinearGraphYOnlyIntercept: ({yIntercept}: {yIntercept: string}) => string;\n srLinearGraphBothIntercepts: ({\n xIntercept,\n yIntercept,\n }: {\n xIntercept: string;\n yIntercept: string;\n }) => string;\n srLinearGraphOriginIntercept: string;\n srLinearGrabHandle: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n }: {\n point1X: string;\n point1Y: string;\n point2X: string;\n point2Y: string;\n }) => string;\n srAngleSideAtCoordinates: ({\n point,\n side,\n x,\n y,\n }: {\n point: number;\n side: string;\n x: string;\n y: string;\n }) => string;\n srAngleVertexAtCoordinatesWithAngleMeasure: ({\n x,\n y,\n angleMeasure,\n }: {\n x: string;\n y: string;\n angleMeasure: string;\n }) => string;\n srAngleGraphAriaLabel: string;\n srAngleGraphAriaDescription: ({\n angleMeasure,\n vertexX,\n vertexY,\n isX,\n isY,\n tsX,\n tsY,\n }: {\n angleMeasure: string;\n vertexX: string;\n vertexY: string;\n isX: string;\n isY: string;\n tsX: string;\n tsY: string;\n }) => string;\n // The above strings are used for interactive graph SR descriptions.\n};\n\n/**\n * Untranslated strings used in Perseus. To be used by an external\n * translator to produce translated strings, passed in as `PerseusStrings`.\n */\nexport const strings: {\n [key in keyof PerseusStrings]:\n | string\n | {context?: string; message: string}\n | {context?: string; one: string; other: string};\n} = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: \"Hint #%(pos)s\",\n errorRendering: \"Error rendering: %(error)s\",\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: \"Skip to %(title)s\",\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: {\n one: \"%(num)s answer\",\n other: \"%(num)s answers\",\n },\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: {\n one: \"Moves: %(num)s\",\n other: \"Moves: %(num)s\",\n },\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing:\n \"A molecular structure drawing. SMILES notation: %(content)s\",\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions:\n \"Please make sure the number of divisions is in the range %(divRangeString)s.\",\n lineRange: \"lines %(lineRange)s\",\n lineNumber: \"line %(lineNumber)s\",\n symbolPassage:\n \"The symbol %(questionSymbol)s indicates that question %(questionNumber)s references this portion of the passage.\",\n symbolQuestion:\n \" The symbol %(sentenceSymbol)s indicates that the following sentence is referenced in a question.\",\n lineLabel: {\n context: \"a label next to a reading passage to denote the line number\",\n message: \"Line\",\n },\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: \"[Marker for question %(number)s]\",\n circleMarker: \"[Circle marker %(number)s]\",\n sentenceMarker: \"[Sentence %(number)s]\",\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: \"Choose %(numCorrect)s answers:\",\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: \"(Choice %(letter)s, Checked, Correct)\",\n choiceCrossedOutCorrect: \"(Choice %(letter)s, Crossed out, Correct)\",\n choiceCorrect: \"(Choice %(letter)s, Correct)\",\n choiceCheckedIncorrect: \"(Choice %(letter)s, Checked, Incorrect)\",\n choiceCrossedOutIncorrect: \"(Choice %(letter)s, Crossed out, Incorrect)\",\n choiceIncorrect: \"(Choice %(letter)s, Incorrect)\",\n choiceChecked: \"(Choice %(letter)s, Checked)\",\n choiceCrossedOut: \"(Choice %(letter)s, Crossed out)\",\n choice: \"(Choice %(letter)s)\",\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: \"Cross out Choice %(letter)s\",\n bringBack: \"Bring back\",\n openMenuForChoice: \"Open menu for Choice %(letter)s\",\n letters: {\n context:\n \"This is a list of single-character labels that will appear in front of multiple-choice options. For instance, a multiple-choice question with three options would display (A) first option (B) second option (C) third option. There must be spaces between each of the different characters. The characters will show up next to options in the order that they are listed here. Most multiple choice questions have 5 or fewer options.\",\n message: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n },\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n sin: \"sin\",\n cos: \"cos\",\n tan: \"tan\",\n simulationLoadFail: \"Sorry, this simulation cannot load.\",\n simulationLocaleWarning:\n \"Sorry, this simulation isn't available in your language.\",\n selectAnAnswer: \"Select an answer\",\n\n // The following strings are used for interactive graph SR descriptions.\n addPoint: \"Add Point\",\n removePoint: \"Remove Point\",\n graphKeyboardPrompt: \"Press Shift + Enter to interact with the graph\",\n closePolygon: \"Close shape\",\n openPolygon: \"Re-open shape\",\n srInteractiveElements: \"Interactive elements: %(elements)s\",\n srNoInteractiveElements: \"No interactive elements\",\n // TODO(LEMS-2660): The following strings are ones that will need\n // translation tickets after all interactive graph SR strings have\n // been finalized. Remove this comment after the tickets have been\n // created.\n srPointAtCoordinates: {\n context: \"Screenreader-accessible description of a point on a graph\",\n message: \"Point %(num)s at %(x)s comma %(y)s\",\n },\n srCircleGraph: {\n context: \"Aria label for the circle graph as a whole.\",\n message: \"A circle on a coordinate plane.\",\n },\n srCircleShape: {\n context:\n \"Aria label for the interactive circle shape in a circle graph.\",\n message:\n \"Circle. The center point is at %(centerX)s comma %(centerY)s.\",\n },\n srCircleRadiusPoint: {\n context:\n \"Aria label for the interactive point that sits on the edge of the circle in a circle graph. Moving this point updates the radius of the circle\",\n message: \"Radius point at %(radiusPointX)s comma %(radiusPointY)s.\",\n },\n srCircleRadius: {\n context:\n \"Screenreader-only description of the radius of a circle in a circle graph.\",\n message: \"Circle radius is %(radius)s.\",\n },\n srCircleOuterPoints: {\n context:\n \"Screenreader-only description of key points on a circle in a circle graph.\",\n message:\n \"Points on the circle at %(point1X)s comma %(point1Y)s, %(point2X)s comma %(point2Y)s, %(point3X)s comma %(point3Y)s, %(point4X)s comma %(point4Y)s.\",\n },\n srLinearGraph: {\n context: \"Aria label for the linear graph as a whole.\",\n message: \"A line on a coordinate plane.\",\n },\n srLinearGraphPoints: {\n context:\n \"Additional information about the points for the linear graph as a whole.\",\n message:\n \"The line has two points, point 1 at %(point1X)s comma %(point1Y)s and point 2 at %(point2X)s comma %(point2Y)s.\",\n },\n srLinearGraphSlopeIncreasing: {\n context:\n \"Screenreader-only description of a line's decreasing slope on a linear graph.\",\n message: \"Its slope increases from left to right.\",\n },\n srLinearGraphSlopeDecreasing: {\n context:\n \"Screenreader-only description of a line's increasing slope on a linear graph.\",\n message: \"Its slope decreases from left to right.\",\n },\n srLinearGraphSlopeHorizontal: {\n context:\n \"Screenreader-only description of a line's horizontal slope on a linear graph.\",\n message: \"Its slope is zero.\",\n },\n srLinearGraphSlopeVertical: {\n context:\n \"Screenreader-only description of a line's vertical slope on a linear graph.\",\n message: \"Its slope is undefined.\",\n },\n srLinearGraphXOnlyIntercept: {\n context:\n \"Screenreader-only description of a line's x-intercept on a linear graph when it only has an x intercept.\",\n message: \"The line crosses the X-axis at %(xIntercept)s comma 0.\",\n },\n srLinearGraphYOnlyIntercept: {\n context:\n \"Screenreader-only description of a line's y-intercept on a linear graph when it only has a y intercept.\",\n message: \"The line crosses the Y-axis at 0 comma %(yIntercept)s.\",\n },\n srLinearGraphBothIntercepts: {\n context:\n \"Screenreader-only description of a line's x and y intercepts on a linear graph when both intercepts are present.\",\n message:\n \"The line crosses the X-axis at %(xIntercept)s comma 0 and the Y-axis at 0 comma %(yIntercept)s.\",\n },\n srLinearGraphOriginIntercept: {\n context:\n \"Screenreader-only description of the line's intercept when the intercept is the graph's origin.\",\n message: \"The line crosses the x and y axes at the graph's origin.\",\n },\n srLinearGrabHandle: {\n context:\n \"Screenreader-only label on the grab handle for the line on a linear graph.\",\n message:\n \"Line from %(point1X)s comma %(point1Y)s to %(point2X)s comma %(point2Y)s.\",\n },\n srAngleSideAtCoordinates: {\n context:\n \"Screenreader-accessible description of the side / vertex of an angle graph\",\n message: \"Point %(point)s, %(side)s at %(x)s comma %(y)s\",\n },\n srAngleVertexAtCoordinatesWithAngleMeasure: {\n context:\n \"Screenreader-accessible description of a vertex on an angle graph with an angle measure\",\n message:\n \"Point 2, vertex at %(x)s comma %(y)s. Angle %(angleMeasure)s degrees\",\n },\n srAngleGraphAriaLabel: \"An angle on a coordinate plane.\",\n srAngleGraphAriaDescription: {\n context:\n \"Screenreader-only description of an angle on a coordinate plane.\",\n message:\n \"The angle measure is %(angleMeasure)s degrees with a vertex at %(vertexX)s comma %(vertexY)s, a point on the initial side at %(isX)s comma %(isY)s and a point on the terminal side at %(tsX)s comma %(tsY)s\",\n },\n // The above strings are used for interactive graph SR descriptions.\n};\n\n/**\n * Mock strings for the Perseus package, to be used for tests and Storybook.\n */\nexport const mockStrings: PerseusStrings = {\n closeKeypad: \"close math keypad\",\n openKeypad: \"open math keypad\",\n mathInputBox: \"Math input box\",\n removeHighlight: \"Remove highlight\",\n addHighlight: \"Add highlight\",\n hintPos: ({pos}) => `Hint #${pos}`,\n errorRendering: ({error}) => `Error rendering: ${error}`,\n APPROXIMATED_PI_ERROR:\n \"Your answer is close, but you may \" +\n \"have approximated pi. Enter your \" +\n \"answer as a multiple of pi, like \" +\n \"<code>12\\\\ \\\\text{pi}</code> or \" +\n \"<code>2/3\\\\ \\\\text{pi}</code>\",\n EXTRA_SYMBOLS_ERROR:\n \"We could not understand your \" +\n \"answer. Please check your answer for extra \" +\n \"text or symbols.\",\n NEEDS_TO_BE_SIMPLFIED_ERROR:\n \"Your answer is almost correct, \" + \"but it needs to be simplified.\",\n MISSING_PERCENT_ERROR:\n \"Your answer is almost correct, \" +\n \"but it is missing a \" +\n \"<code>\\\\%</code> at the end.\",\n MULTIPLICATION_SIGN_ERROR:\n \"I'm a computer. I only understand \" +\n \"multiplication if you use an asterisk \" +\n \"(*) as the multiplication sign.\",\n WRONG_CASE_ERROR:\n \"Your answer includes use of a variable with the wrong case.\",\n WRONG_LETTER_ERROR: \"Your answer includes a wrong variable letter.\",\n invalidSelection: \"Make sure you select something for every row.\",\n ERROR_TITLE: \"Oops!\",\n ERROR_MESSAGE: \"Sorry, I don't understand that!\",\n hints: \"Hints\",\n getAnotherHint: \"Get another hint\",\n deprecatedStandin:\n \"Sorry, this part of the question is no longer available. 😅 Don't worry, you won't be graded on this part. Keep going!\",\n keepTrying: \"Keep trying\",\n tryAgain: \"Try again\",\n check: \"Check\",\n correctExcited: \"Correct!\",\n nextQuestion: \"Next question\",\n skipToTitle: ({title}) => `Skip to ${title}`,\n current: \"Current\",\n correct: \"Correct\",\n correctSelected: \"Correct (selected)\",\n correctCrossedOut: \"Correct (but you crossed it out)\",\n incorrect: \"Incorrect\",\n incorrectSelected: \"Incorrect (selected)\",\n hideExplanation: \"Hide explanation\",\n explain: \"Explain\",\n INVALID_MESSAGE_PREFIX: \"We couldn't grade your answer.\",\n DEFAULT_INVALID_MESSAGE_1: \"It looks like you left something blank or \",\n DEFAULT_INVALID_MESSAGE_2: \"entered in an invalid answer.\",\n integerExample: \"an integer, like $6$\",\n properExample: \"a *proper* fraction, like $1/2$ or $6/10$\",\n simplifiedProperExample: \"a *simplified proper* fraction, like $3/5$\",\n improperExample: \"an *improper* fraction, like $10/7$ or $14/8$\",\n simplifiedImproperExample: \"a *simplified improper* fraction, like $7/4$\",\n mixedExample: \"a mixed number, like $1\\\\ 3/4$\",\n decimalExample: \"an *exact* decimal, like $0.75$\",\n percentExample: \"a percent, like $12.34\\\\%$\",\n piExample: \"a multiple of pi, like $12\\\\ \\\\text{pi}$ or $2/3\\\\ \\\\text{pi}$\",\n yourAnswer: \"**Your answer should be** \",\n yourAnswerLabel: \"Your answer:\",\n addPoints: \"Click to add points\",\n addVertices: \"Click to add vertices\",\n tapMultiple: \"Tap each dot on the image to select all answers that apply.\",\n tapSingle: \"Tap each dot on the image to select an answer.\",\n clickMultiple:\n \"Click each dot on the image to select all answers that apply.\",\n clickSingle: \"Click each dot on the image to select an answer.\",\n choices: \"Choices:\",\n answers: ({num}) => (num === 1 ? `${num} answer` : `${num} answers`),\n hideAnswersToggleLabel: \"Hide answer choices\",\n moves: ({num}) => (num === 1 ? `Moves: ${num}` : `Moves: ${num}`),\n clickTiles: \"Click on the tiles to change the lights.\",\n turnOffLights: \"You must turn on all of the lights to continue.\",\n fillAllCells: \"Make sure you fill in all cells in the matrix.\",\n molecularDrawing: ({content}) =>\n `A molecular structure drawing. SMILES notation: ${content}`,\n switchDirection: \"Switch direction\",\n circleOpen: \"Make circle open\",\n circleFilled: \"Make circle filled\",\n numDivisions: \"Number of divisions:\",\n divisions: ({divRangeString}) =>\n `Please make sure the number of divisions is in the range ${divRangeString}.`,\n lineRange: ({lineRange}: {lineRange: string}) => `lines ${lineRange}`,\n lineNumber: ({lineNumber}: {lineNumber: string}) => `line ${lineNumber}`,\n symbolPassage: ({questionSymbol, questionNumber}) =>\n `The symbol ${questionSymbol} indicates that question ${questionNumber} references this portion of the passage.`,\n symbolQuestion: ({sentenceSymbol}) =>\n ` The symbol ${sentenceSymbol} indicates that the following sentence is referenced in a question.`,\n lineLabel: \"Line\",\n beginningPassage: \"Beginning of reading passage.\",\n beginningFootnotes: \"Beginning of reading passage footnotes.\",\n endPassage: \"End of reading passage.\",\n questionMarker: ({number}) => `[Marker for question ${number}]`,\n circleMarker: ({number}) => `[Circle marker ${number}]`,\n sentenceMarker: ({number}) => `[Sentence ${number}]`,\n dragHandles: \"Drag handles to make graph\",\n tapAddPoints: \"Tap to add points\",\n false: \"False\",\n true: \"True\",\n no: \"No\",\n yes: \"Yes\",\n chooseCorrectNum: \"Please choose the correct number of answers.\",\n notNoneOfTheAbove:\n \"'None of the above' may not be selected when other answers are selected.\",\n noneOfTheAbove: \"None of the above\",\n chooseNumAnswers: ({numCorrect}) => `Choose ${numCorrect} answers:`,\n chooseAllAnswers: \"Choose all answers that apply:\",\n chooseOneAnswer: \"Choose 1 answer:\",\n choiceCheckedCorrect: ({letter}) => `(Choice ${letter}, Checked, Correct)`,\n choiceCrossedOutCorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Correct)`,\n choiceCorrect: ({letter}) => `(Choice ${letter}, Correct)`,\n choiceCheckedIncorrect: ({letter}) =>\n `(Choice ${letter}, Checked, Incorrect)`,\n choiceCrossedOutIncorrect: ({letter}) =>\n `(Choice ${letter}, Crossed out, Incorrect)`,\n choiceIncorrect: ({letter}) => `(Choice ${letter}, Incorrect)`,\n choiceChecked: ({letter}) => `(Choice ${letter}, Checked)`,\n choiceCrossedOut: ({letter}) => `(Choice ${letter}, Crossed out)`,\n choice: ({letter}) => `(Choice ${letter})`,\n crossOut: \"Cross out\",\n crossOutOption: \"Cross out option\",\n crossOutChoice: ({letter}) => `Cross out Choice ${letter}`,\n bringBack: \"Bring back\",\n openMenuForChoice: ({letter}) => `Open menu for Choice ${letter}`,\n letters: \"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\",\n rightArrow: \"Reaction arrow pointing to the right.\",\n dontUnderstandUnits: \"I couldn't understand those units.\",\n checkSigFigs: \"Check your significant figures.\",\n answerNumericallyIncorrect: \"That answer is numerically incorrect.\",\n checkUnits: \"Check your units.\",\n dontUnderstand: \"I don't understand that\",\n loading: \"Loading...\",\n videoTranscript: \"See video transcript\",\n somethingWrong: \"Something went wrong.\",\n videoWrapper: \"Khan Academy video wrapper\",\n mathInputTitle: \"mathematics keyboard\",\n mathInputDescription:\n \"Use keyboard/mouse to interact with math-based input fields\",\n sin: \"sin\",\n cos: \"cos\",\n tan: \"tan\",\n simulationLoadFail: \"Sorry, this simulation cannot load.\",\n simulationLocaleWarning:\n \"Sorry, this simulation isn't available in your language.\",\n selectAnAnswer: \"Select an answer\",\n\n // The following strings are used for interactive graph SR descriptions.\n graphKeyboardPrompt: \"Press Shift + Enter to interact with the graph\",\n addPoint: \"Add Point\",\n removePoint: \"Remove Point\",\n closePolygon: \"Close shape\",\n openPolygon: \"Re-open shape\",\n srPointAtCoordinates: ({num, x, y}) => `Point ${num} at ${x} comma ${y}`,\n srInteractiveElements: ({elements}) => `Interactive elements: ${elements}`,\n srNoInteractiveElements: \"No interactive elements\",\n srCircleGraph: \"A circle on a coordinate plane.\",\n srCircleShape: ({centerX, centerY}) =>\n `Circle. The center point is at ${centerX} comma ${centerY}.`,\n srCircleRadiusPoint: ({radiusPointX, radiusPointY}) =>\n `Radius point at ${radiusPointX} comma ${radiusPointY}.`,\n srCircleRadius: ({radius}) => `Circle radius is ${radius}.`,\n srCircleOuterPoints: ({\n point1X,\n point1Y,\n point2X,\n point2Y,\n point3X,\n point3Y,\n point4X,\n point4Y,\n }) =>\n `Points on the circle at ${point1X} comma ${point1Y}, ${point2X} comma ${point2Y}, ${point3X} comma ${point3Y}, ${point4X} comma ${point4Y}.`,\n srLinearGraph: \"A line on a coordinate plane.\",\n srLinearGraphPoints: ({point1X, point1Y, point2X, point2Y}) =>\n `The line has two points, point 1 at ${point1X} comma ${point1Y} and point 2 at ${point2X} comma ${point2Y}.`,\n srLinearGraphSlopeIncreasing: \"Its slope increases from left to right.\",\n srLinearGraphSlopeDecreasing: \"Its slope decreases from left to right.\",\n srLinearGraphSlopeHorizontal: \"Its slope is zero.\",\n srLinearGraphSlopeVertical: \"Its slope is undefined.\",\n srLinearGraphXOnlyIntercept: ({xIntercept}) =>\n `The line crosses the X-axis at ${xIntercept} comma 0.`,\n srLinearGraphYOnlyIntercept: ({yIntercept}) =>\n `The line crosses the Y-axis at 0 comma ${yIntercept}.`,\n srLinearGraphBothIntercepts: ({xIntercept, yIntercept}) =>\n `The line crosses the X-axis at ${xIntercept} comma 0 and the Y-axis at 0 comma ${yIntercept}.`,\n srLinearGraphOriginIntercept:\n \"The line crosses the x and y axes at the graph's origin.\",\n srLinearGrabHandle: ({point1X, point1Y, point2X, point2Y}) =>\n `Line from ${point1X} comma ${point1Y} to ${point2X} comma ${point2Y}.`,\n srAngleSideAtCoordinates: ({point, side, x, y}) =>\n `Point ${point}, ${side} at ${x} comma ${y}`,\n srAngleVertexAtCoordinatesWithAngleMeasure: ({x, y, angleMeasure}) =>\n `Point 2, vertex at ${x} comma ${y}. Angle ${angleMeasure} degrees`,\n srAngleGraphAriaLabel: \"An angle on a coordinate plane.\",\n srAngleGraphAriaDescription: ({\n angleMeasure,\n vertexX,\n vertexY,\n isX,\n isY,\n tsX,\n tsY,\n }) =>\n `The angle measure is ${angleMeasure} degrees with a vertex at ${vertexX} comma ${vertexY}, a point on the initial side at ${isX} comma ${isY} and a point on the terminal side at ${tsX} comma ${tsY}.`,\n // The above strings are used for interactive graph SR descriptions.\n};\n"],"names":["strings","closeKeypad","openKeypad","mathInputBox","removeHighlight","addHighlight","hintPos","errorRendering","APPROXIMATED_PI_ERROR","EXTRA_SYMBOLS_ERROR","NEEDS_TO_BE_SIMPLFIED_ERROR","MISSING_PERCENT_ERROR","MULTIPLICATION_SIGN_ERROR","WRONG_CASE_ERROR","WRONG_LETTER_ERROR","invalidSelection","ERROR_TITLE","ERROR_MESSAGE","hints","getAnotherHint","deprecatedStandin","keepTrying","tryAgain","check","correctExcited","nextQuestion","skipToTitle","current","correct","correctSelected","correctCrossedOut","incorrect","incorrectSelected","hideExplanation","explain","INVALID_MESSAGE_PREFIX","DEFAULT_INVALID_MESSAGE_1","DEFAULT_INVALID_MESSAGE_2","integerExample","properExample","simplifiedProperExample","improperExample","simplifiedImproperExample","mixedExample","decimalExample","percentExample","piExample","yourAnswer","yourAnswerLabel","addPoints","addVertices","tapMultiple","tapSingle","clickMultiple","clickSingle","choices","answers","one","other","hideAnswersToggleLabel","moves","clickTiles","turnOffLights","fillAllCells","molecularDrawing","switchDirection","circleOpen","circleFilled","numDivisions","divisions","lineRange","lineNumber","symbolPassage","symbolQuestion","lineLabel","context","message","beginningPassage","beginningFootnotes","endPassage","questionMarker","circleMarker","sentenceMarker","dragHandles","tapAddPoints","false","true","no","yes","chooseCorrectNum","notNoneOfTheAbove","noneOfTheAbove","chooseNumAnswers","chooseAllAnswers","chooseOneAnswer","choiceCheckedCorrect","choiceCrossedOutCorrect","choiceCorrect","choiceCheckedIncorrect","choiceCrossedOutIncorrect","choiceIncorrect","choiceChecked","choiceCrossedOut","choice","crossOut","crossOutOption","crossOutChoice","bringBack","openMenuForChoice","letters","rightArrow","dontUnderstandUnits","checkSigFigs","answerNumericallyIncorrect","checkUnits","dontUnderstand","loading","videoTranscript","somethingWrong","videoWrapper","mathInputTitle","mathInputDescription","sin","cos","tan","simulationLoadFail","simulationLocaleWarning","selectAnAnswer","addPoint","removePoint","graphKeyboardPrompt","closePolygon","openPolygon","srInteractiveElements","srNoInteractiveElements","srPointAtCoordinates","srCircleGraph","srCircleShape","srCircleRadiusPoint","srCircleRadius","srCircleOuterPoints","srLinearGraph","srLinearGraphPoints","srLinearGraphSlopeIncreasing","srLinearGraphSlopeDecreasing","srLinearGraphSlopeHorizontal","srLinearGraphSlopeVertical","srLinearGraphXOnlyIntercept","srLinearGraphYOnlyIntercept","srLinearGraphBothIntercepts","srLinearGraphOriginIntercept","srLinearGrabHandle","srAngleSideAtCoordinates","srAngleVertexAtCoordinatesWithAngleMeasure","srAngleGraphAriaLabel","srAngleGraphAriaDescription","mockStrings","pos","error","title","num","content","divRangeString","questionSymbol","questionNumber","sentenceSymbol","number","numCorrect","letter","x","y","elements","centerX","centerY","radiusPointX","radiusPointY","radius","point1X","point1Y","point2X","point2Y","point3X","point3Y","point4X","point4Y","xIntercept","yIntercept","point","side","angleMeasure","vertexX","vertexY","isX","isY","tsX","tsY"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -100,5 +100,6 @@ export type { Hint, LegacyButtonSets, LockedFigure, LockedFigureColor, LockedFig
|
|
|
100
100
|
PerseusArticle, PerseusImageBackground, PerseusInputNumberWidgetOptions, PerseusInteractiveGraphWidgetOptions, PerseusItem, PerseusPhetSimulationWidgetOptions, PerseusPlotterWidgetOptions, PerseusPythonProgramWidgetOptions, PerseusRadioWidgetOptions, PerseusRenderer, PerseusWidget, PerseusWidgetsMap, PerseusWidgetTypes, WidgetOptions, } from "./perseus-types";
|
|
101
101
|
export type { UserInputMap } from "./validation.types";
|
|
102
102
|
export type { Coord } from "./interactive2/types";
|
|
103
|
+
export type { Coords } from "./widgets/grapher/grapher-types";
|
|
103
104
|
export type { MarkerType } from "./widgets/label-image/types";
|
|
104
105
|
export type { RendererPromptJSON, WidgetPromptJSON, } from "./widget-ai-utils/prompt-types";
|
package/dist/index.js
CHANGED
|
@@ -454,7 +454,46 @@ const mockStrings = {
|
|
|
454
454
|
} = _ref36;
|
|
455
455
|
return `The line crosses the X-axis at ${xIntercept} comma 0 and the Y-axis at 0 comma ${yIntercept}.`;
|
|
456
456
|
},
|
|
457
|
-
srLinearGraphOriginIntercept: "The line crosses the x and y axes at the graph's origin."
|
|
457
|
+
srLinearGraphOriginIntercept: "The line crosses the x and y axes at the graph's origin.",
|
|
458
|
+
srLinearGrabHandle: _ref37 => {
|
|
459
|
+
let {
|
|
460
|
+
point1X,
|
|
461
|
+
point1Y,
|
|
462
|
+
point2X,
|
|
463
|
+
point2Y
|
|
464
|
+
} = _ref37;
|
|
465
|
+
return `Line from ${point1X} comma ${point1Y} to ${point2X} comma ${point2Y}.`;
|
|
466
|
+
},
|
|
467
|
+
srAngleSideAtCoordinates: _ref38 => {
|
|
468
|
+
let {
|
|
469
|
+
point,
|
|
470
|
+
side,
|
|
471
|
+
x,
|
|
472
|
+
y
|
|
473
|
+
} = _ref38;
|
|
474
|
+
return `Point ${point}, ${side} at ${x} comma ${y}`;
|
|
475
|
+
},
|
|
476
|
+
srAngleVertexAtCoordinatesWithAngleMeasure: _ref39 => {
|
|
477
|
+
let {
|
|
478
|
+
x,
|
|
479
|
+
y,
|
|
480
|
+
angleMeasure
|
|
481
|
+
} = _ref39;
|
|
482
|
+
return `Point 2, vertex at ${x} comma ${y}. Angle ${angleMeasure} degrees`;
|
|
483
|
+
},
|
|
484
|
+
srAngleGraphAriaLabel: "An angle on a coordinate plane.",
|
|
485
|
+
srAngleGraphAriaDescription: _ref40 => {
|
|
486
|
+
let {
|
|
487
|
+
angleMeasure,
|
|
488
|
+
vertexX,
|
|
489
|
+
vertexY,
|
|
490
|
+
isX,
|
|
491
|
+
isY,
|
|
492
|
+
tsX,
|
|
493
|
+
tsY
|
|
494
|
+
} = _ref40;
|
|
495
|
+
return `The angle measure is ${angleMeasure} degrees with a vertex at ${vertexX} comma ${vertexY}, a point on the initial side at ${isX} comma ${isY} and a point on the terminal side at ${tsX} comma ${tsY}.`;
|
|
496
|
+
}
|
|
458
497
|
// The above strings are used for interactive graph SR descriptions.
|
|
459
498
|
};
|
|
460
499
|
|
|
@@ -34164,15 +34203,21 @@ const noop$1 = () => {};
|
|
|
34164
34203
|
|
|
34165
34204
|
const MovableLine = props => {
|
|
34166
34205
|
const {
|
|
34206
|
+
points: [start, end],
|
|
34167
34207
|
ariaLabels,
|
|
34168
34208
|
ariaDescribedBy,
|
|
34169
|
-
onMoveLine = () => {},
|
|
34170
|
-
onMovePoint = () => {},
|
|
34171
34209
|
color,
|
|
34172
|
-
|
|
34173
|
-
|
|
34210
|
+
extend,
|
|
34211
|
+
onMoveLine = () => {},
|
|
34212
|
+
onMovePoint = () => {}
|
|
34174
34213
|
} = props;
|
|
34175
34214
|
|
|
34215
|
+
// Aria live states for (0) point 1, (1) point 2, and (2) grab handle.
|
|
34216
|
+
// When moving an element, set its aria live to "polite" and the others
|
|
34217
|
+
// to "off". Otherwise, other connected elements that move at the same
|
|
34218
|
+
// time might override the currently focused element's aria live.
|
|
34219
|
+
const [ariaLives, setAriaLives] = React__namespace.useState(["off", "off", "off"]);
|
|
34220
|
+
|
|
34176
34221
|
// We use separate focusableHandle elements, instead of letting the movable
|
|
34177
34222
|
// points themselves be focusable, to allow the tab order of the points to
|
|
34178
34223
|
// be different from the rendering order. We had to solve for the following
|
|
@@ -34190,10 +34235,14 @@ const MovableLine = props => {
|
|
|
34190
34235
|
} = useControlPoint({
|
|
34191
34236
|
ariaLabel: ariaLabels?.point1AriaLabel,
|
|
34192
34237
|
ariaDescribedBy: ariaDescribedBy,
|
|
34238
|
+
ariaLive: ariaLives[0],
|
|
34193
34239
|
point: start,
|
|
34194
34240
|
sequenceNumber: 1,
|
|
34195
34241
|
color,
|
|
34196
|
-
onMove: p =>
|
|
34242
|
+
onMove: p => {
|
|
34243
|
+
setAriaLives(["polite", "off", "off"]);
|
|
34244
|
+
onMovePoint(0, p);
|
|
34245
|
+
}
|
|
34197
34246
|
});
|
|
34198
34247
|
const {
|
|
34199
34248
|
visiblePoint: visiblePoint2,
|
|
@@ -34201,17 +34250,27 @@ const MovableLine = props => {
|
|
|
34201
34250
|
} = useControlPoint({
|
|
34202
34251
|
ariaLabel: ariaLabels?.point2AriaLabel,
|
|
34203
34252
|
ariaDescribedBy: ariaDescribedBy,
|
|
34253
|
+
ariaLive: ariaLives[1],
|
|
34204
34254
|
point: end,
|
|
34205
34255
|
sequenceNumber: 2,
|
|
34206
34256
|
color,
|
|
34207
|
-
onMove: p =>
|
|
34257
|
+
onMove: p => {
|
|
34258
|
+
setAriaLives(["off", "polite", "off"]);
|
|
34259
|
+
onMovePoint(1, p);
|
|
34260
|
+
}
|
|
34208
34261
|
});
|
|
34209
34262
|
const line = /*#__PURE__*/React__namespace.createElement(Line$1, {
|
|
34263
|
+
ariaLabel: ariaLabels?.grabHandleAriaLabel,
|
|
34264
|
+
ariaDescribedBy: ariaDescribedBy,
|
|
34265
|
+
ariaLive: ariaLives[2],
|
|
34210
34266
|
start: start,
|
|
34211
34267
|
end: end,
|
|
34212
34268
|
stroke: color,
|
|
34213
34269
|
extend: extend,
|
|
34214
|
-
onMove:
|
|
34270
|
+
onMove: delta => {
|
|
34271
|
+
setAriaLives(["off", "off", "polite"]);
|
|
34272
|
+
onMoveLine(delta);
|
|
34273
|
+
}
|
|
34215
34274
|
});
|
|
34216
34275
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, focusableHandle1, line, focusableHandle2, visiblePoint1, visiblePoint2);
|
|
34217
34276
|
};
|
|
@@ -34220,9 +34279,12 @@ const Line$1 = props => {
|
|
|
34220
34279
|
const {
|
|
34221
34280
|
start,
|
|
34222
34281
|
end,
|
|
34223
|
-
|
|
34282
|
+
ariaLabel,
|
|
34283
|
+
ariaDescribedBy,
|
|
34284
|
+
ariaLive,
|
|
34224
34285
|
extend,
|
|
34225
|
-
stroke = defaultStroke
|
|
34286
|
+
stroke = defaultStroke,
|
|
34287
|
+
onMove
|
|
34226
34288
|
} = props;
|
|
34227
34289
|
const [startPtPx, endPtPx] = useTransformVectorsToPixels(start, end);
|
|
34228
34290
|
const {
|
|
@@ -34252,11 +34314,19 @@ const Line$1 = props => {
|
|
|
34252
34314
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("g", {
|
|
34253
34315
|
ref: line,
|
|
34254
34316
|
tabIndex: disableKeyboardInteraction ? -1 : 0,
|
|
34317
|
+
"aria-label": ariaLabel,
|
|
34318
|
+
"aria-describedby": ariaDescribedBy,
|
|
34319
|
+
"aria-live": ariaLive,
|
|
34255
34320
|
className: "movable-line",
|
|
34256
34321
|
"data-testid": "movable-line",
|
|
34257
34322
|
style: {
|
|
34258
34323
|
cursor: dragging ? "grabbing" : "grab"
|
|
34259
34324
|
}
|
|
34325
|
+
// Indicate that this element is interactive.
|
|
34326
|
+
// As a bonus, giving this group a non-group role makes
|
|
34327
|
+
// the screen reader skip over its empty children.
|
|
34328
|
+
,
|
|
34329
|
+
role: "button"
|
|
34260
34330
|
}, /*#__PURE__*/React__namespace.createElement(SVGLine, {
|
|
34261
34331
|
start: startPtPx,
|
|
34262
34332
|
end: endPtPx,
|
|
@@ -34381,23 +34451,82 @@ function AngleGraph(props) {
|
|
|
34381
34451
|
showAngles: showAngles || false // Whether to show the angle or not
|
|
34382
34452
|
};
|
|
34383
34453
|
|
|
34454
|
+
const {
|
|
34455
|
+
strings,
|
|
34456
|
+
locale
|
|
34457
|
+
} = usePerseusI18n();
|
|
34458
|
+
const angleMeasure = srFormatNumber(getClockwiseAngle([endPoints[0], centerPoint, endPoints[1]], allowReflexAngles), locale);
|
|
34459
|
+
const wholeAngleAriaLabel = strings.srAngleGraphAriaLabel;
|
|
34460
|
+
const wholeAngleDescription = strings.srAngleGraphAriaDescription({
|
|
34461
|
+
angleMeasure,
|
|
34462
|
+
vertexX: srFormatNumber(coords[1][X], locale),
|
|
34463
|
+
vertexY: srFormatNumber(coords[1][Y], locale),
|
|
34464
|
+
isX: srFormatNumber(coords[2][X], locale),
|
|
34465
|
+
isY: srFormatNumber(coords[2][Y], locale),
|
|
34466
|
+
tsX: srFormatNumber(coords[0][X], locale),
|
|
34467
|
+
tsY: srFormatNumber(coords[0][Y], locale)
|
|
34468
|
+
});
|
|
34469
|
+
const formatCoordinates = (x, y) => ({
|
|
34470
|
+
x: srFormatNumber(x, locale),
|
|
34471
|
+
y: srFormatNumber(y, locale)
|
|
34472
|
+
});
|
|
34473
|
+
const formatSideAriaLabel = (side, newPoint) => {
|
|
34474
|
+
const formattedCoordinates = formatCoordinates(newPoint[X], newPoint[Y]);
|
|
34475
|
+
const label = side === "terminal" ? strings.srAngleSideAtCoordinates({
|
|
34476
|
+
point: 1,
|
|
34477
|
+
side: "terminal side",
|
|
34478
|
+
...formattedCoordinates
|
|
34479
|
+
}) : strings.srAngleSideAtCoordinates({
|
|
34480
|
+
point: 3,
|
|
34481
|
+
side: "initial side",
|
|
34482
|
+
...formattedCoordinates
|
|
34483
|
+
});
|
|
34484
|
+
return label;
|
|
34485
|
+
};
|
|
34486
|
+
const formatVertexAriaLabel = newPoint => {
|
|
34487
|
+
const formattedVertexCoordinates = formatCoordinates(newPoint[X], newPoint[Y]);
|
|
34488
|
+
const label = showAngles ? strings.srAngleVertexAtCoordinatesWithAngleMeasure({
|
|
34489
|
+
...formattedVertexCoordinates,
|
|
34490
|
+
angleMeasure: angleMeasure
|
|
34491
|
+
}) : strings.srAngleSideAtCoordinates({
|
|
34492
|
+
point: 2,
|
|
34493
|
+
side: "vertex",
|
|
34494
|
+
...formattedVertexCoordinates
|
|
34495
|
+
});
|
|
34496
|
+
return label;
|
|
34497
|
+
};
|
|
34498
|
+
const initialSideAriaLabel = formatSideAriaLabel("initial", coords[2]);
|
|
34499
|
+
const terminalSideAriaLabel = formatSideAriaLabel("terminal", coords[0]);
|
|
34500
|
+
const vertexAriaLabel = formatVertexAriaLabel(coords[1]);
|
|
34501
|
+
|
|
34384
34502
|
// Render the lines, angle, and then movable points
|
|
34385
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
34503
|
+
return /*#__PURE__*/React__namespace.createElement("g", {
|
|
34504
|
+
"aria-label": wholeAngleAriaLabel,
|
|
34505
|
+
"aria-describedby": "angle-description"
|
|
34506
|
+
}, svgLines, /*#__PURE__*/React__namespace.createElement(Angle, angleParams), /*#__PURE__*/React__namespace.createElement(MovablePoint$1, {
|
|
34386
34507
|
point: coords[1],
|
|
34387
34508
|
sequenceNumber: 1,
|
|
34388
34509
|
constrain: p => p,
|
|
34389
|
-
onMove: destination => dispatch(actions.angle.movePoint(1, destination))
|
|
34510
|
+
onMove: destination => dispatch(actions.angle.movePoint(1, destination)),
|
|
34511
|
+
ariaLabel: vertexAriaLabel
|
|
34390
34512
|
}), /*#__PURE__*/React__namespace.createElement(MovablePoint$1, {
|
|
34391
34513
|
point: coords[0],
|
|
34392
34514
|
sequenceNumber: 2,
|
|
34393
34515
|
constrain: getAngleSideConstraint(coords[0], coords[1], snapDegrees || 1),
|
|
34394
|
-
onMove: destination => dispatch(actions.angle.movePoint(0, destination))
|
|
34516
|
+
onMove: destination => dispatch(actions.angle.movePoint(0, destination)),
|
|
34517
|
+
ariaLabel: terminalSideAriaLabel
|
|
34395
34518
|
}), /*#__PURE__*/React__namespace.createElement(MovablePoint$1, {
|
|
34396
34519
|
point: coords[2],
|
|
34397
34520
|
sequenceNumber: 3,
|
|
34398
34521
|
constrain: getAngleSideConstraint(coords[2], coords[1], snapDegrees || 1),
|
|
34399
|
-
onMove: destination => dispatch(actions.angle.movePoint(2, destination))
|
|
34400
|
-
|
|
34522
|
+
onMove: destination => dispatch(actions.angle.movePoint(2, destination)),
|
|
34523
|
+
ariaLabel: initialSideAriaLabel
|
|
34524
|
+
}), /*#__PURE__*/React__namespace.createElement("g", {
|
|
34525
|
+
id: "angle-description",
|
|
34526
|
+
style: {
|
|
34527
|
+
display: "hidden"
|
|
34528
|
+
}
|
|
34529
|
+
}, wholeAngleDescription));
|
|
34401
34530
|
}
|
|
34402
34531
|
const positiveX = [1, 0];
|
|
34403
34532
|
const negativeX = [-1, 0];
|
|
@@ -34771,6 +34900,12 @@ const LinearGraph = (props, key) => {
|
|
|
34771
34900
|
point2X: srFormatNumber(line[1][0], locale),
|
|
34772
34901
|
point2Y: srFormatNumber(line[1][1], locale)
|
|
34773
34902
|
});
|
|
34903
|
+
const grabHandleAriaLabel = strings.srLinearGrabHandle({
|
|
34904
|
+
point1X: srFormatNumber(line[0][0], locale),
|
|
34905
|
+
point1Y: srFormatNumber(line[0][1], locale),
|
|
34906
|
+
point2X: srFormatNumber(line[1][0], locale),
|
|
34907
|
+
point2Y: srFormatNumber(line[1][1], locale)
|
|
34908
|
+
});
|
|
34774
34909
|
|
|
34775
34910
|
// Slope description
|
|
34776
34911
|
const slope = (line[1][1] - line[0][1]) / (line[1][0] - line[0][0]);
|
|
@@ -34812,9 +34947,13 @@ const LinearGraph = (props, key) => {
|
|
|
34812
34947
|
// Outer line minimal description
|
|
34813
34948
|
,
|
|
34814
34949
|
"aria-label": strings.srLinearGraph,
|
|
34815
|
-
"aria-describedby": `${pointsDescriptionId} ${interceptDescriptionId} ${slopeDescriptionId}
|
|
34950
|
+
"aria-describedby": `${pointsDescriptionId} ${interceptDescriptionId} ${slopeDescriptionId}`,
|
|
34951
|
+
role: "figure"
|
|
34816
34952
|
}, /*#__PURE__*/React__namespace.createElement(MovableLine, {
|
|
34817
34953
|
key: 0,
|
|
34954
|
+
ariaLabels: {
|
|
34955
|
+
grabHandleAriaLabel: grabHandleAriaLabel
|
|
34956
|
+
},
|
|
34818
34957
|
ariaDescribedBy: `${interceptDescriptionId} ${slopeDescriptionId}`,
|
|
34819
34958
|
points: line,
|
|
34820
34959
|
onMoveLine: delta => {
|
|
@@ -45799,7 +45938,7 @@ const init = function () {
|
|
|
45799
45938
|
|
|
45800
45939
|
// This file is processed by a Rollup plugin (replace) to inject the production
|
|
45801
45940
|
const libName = "@khanacademy/perseus";
|
|
45802
|
-
const libVersion = "49.
|
|
45941
|
+
const libVersion = "49.1.2";
|
|
45803
45942
|
perseusCore.addLibraryVersionToPerseusDebug(libName, libVersion);
|
|
45804
45943
|
|
|
45805
45944
|
const apiVersion = {
|