@khanacademy/perseus 77.2.0 → 77.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/components/gif-image.d.ts +38 -0
  2. package/dist/components/svg-image.d.ts +12 -0
  3. package/dist/es/index.css +1 -1
  4. package/dist/es/index.css.map +1 -1
  5. package/dist/es/index.js +9 -6
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/hint-renderer.d.ts +15 -2
  8. package/dist/index.css +1 -1
  9. package/dist/index.css.map +1 -1
  10. package/dist/index.d.ts +99 -6
  11. package/dist/index.js +9 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/renderer.d.ts +3 -3
  14. package/dist/testing/test-dependencies.d.ts +0 -1
  15. package/dist/types.d.ts +2 -1
  16. package/dist/widget-ai-utils/categorizer/categorizer-ai-utils.d.ts +29 -0
  17. package/dist/widget-ai-utils/definition/definition-ai-utils.d.ts +8 -0
  18. package/dist/widget-ai-utils/dropdown/dropdown-ai-utils.d.ts +12 -0
  19. package/dist/widget-ai-utils/explanation/explanation-ai-utils.d.ts +12 -0
  20. package/dist/widget-ai-utils/expression/expression-ai-utils.d.ts +11 -0
  21. package/dist/widget-ai-utils/graded-group/graded-group-ai-utils.d.ts +15 -3
  22. package/dist/widget-ai-utils/graded-group-set/graded-group-set-ai-utils.d.ts +10 -0
  23. package/dist/widget-ai-utils/grapher/grapher-ai-utils.d.ts +35 -0
  24. package/dist/widget-ai-utils/group/group-ai-utils.d.ts +6 -0
  25. package/dist/widget-ai-utils/image/image-ai-utils.d.ts +16 -0
  26. package/dist/widget-ai-utils/input-number/input-number-ai-utils.d.ts +22 -0
  27. package/dist/widget-ai-utils/interactive-graph/interactive-graph-ai-utils.d.ts +50 -21
  28. package/dist/widget-ai-utils/label-image/label-image-ai-utils.d.ts +63 -0
  29. package/dist/widget-ai-utils/matcher/matcher-ai-utils.d.ts +40 -0
  30. package/dist/widget-ai-utils/matrix/matrix-ai-utils.d.ts +23 -0
  31. package/dist/widget-ai-utils/number-line/number-line-ai-utils.d.ts +52 -0
  32. package/dist/widget-ai-utils/numeric-input/prompt-utils.d.ts +17 -0
  33. package/dist/widget-ai-utils/orderer/orderer-ai-utils.d.ts +23 -0
  34. package/dist/widget-ai-utils/prompt-types.d.ts +16 -2
  35. package/dist/widget-ai-utils/radio/radio-ai-utils.d.ts +38 -0
  36. package/dist/widget-ai-utils/sorter/sorter-ai-utils.d.ts +19 -0
  37. package/dist/widget-ai-utils/unsupported-widget.d.ts +6 -5
  38. package/dist/widgets/dropdown/dropdown.d.ts +1 -1
  39. package/dist/widgets/expression/expression.d.ts +2 -2
  40. package/dist/widgets/image/components/explore-image-modal-content.d.ts +1 -1
  41. package/dist/widgets/interactive-graphs/interactive-graph.d.ts +1 -1
  42. package/dist/widgets/label-image/label-image.d.ts +1 -1
  43. package/dist/widgets/mock-widgets/mock-widget.d.ts +1 -1
  44. package/dist/widgets/numeric-input/numeric-input.class.d.ts +1 -1
  45. package/dist/widgets/numeric-input/numeric-input.d.ts +1 -1
  46. package/dist/widgets/table/table.d.ts +1 -1
  47. package/package.json +5 -4
@@ -0,0 +1,38 @@
1
+ import * as React from "react";
2
+ type Props = {
3
+ src: string;
4
+ alt: string;
5
+ width?: number;
6
+ height?: number;
7
+ scale: number;
8
+ isPlaying: boolean;
9
+ /**
10
+ * Called when the GIF finishes one full loop.
11
+ */
12
+ onLoop: () => void;
13
+ /**
14
+ * Called once GIF frames are decoded and the first frame is drawn.
15
+ */
16
+ onLoad?: () => void;
17
+ };
18
+ /**
19
+ * Renders a GIF using canvas-based frame-by-frame playback.
20
+ *
21
+ * Uses two canvases:
22
+ * - A display canvas (visible) composited and scaled to the display size
23
+ * - A hidden canvas (hidden) used to convert per-frame ImageData into a
24
+ * drawable source for proper alpha compositing via drawImage
25
+ *
26
+ * This is similar to the approach taken by gifuct-js's own demo:
27
+ * https://github.com/matt-way/gifuct-js/blob/master/demo/demo.js
28
+ *
29
+ * Why are we taking this approach? Because browsers don't natively
30
+ * support pausing/resuming GIF animations, and we need that for our GIF
31
+ * images. By decoding the GIF into frames and controlling the playback
32
+ * via requestAnimationFrame, we can:
33
+ * - "Pause" GIFs (i.e. show a static image).
34
+ * - "Play" GIFs (i.e. animate).
35
+ * - Detect when we have looped the animation.
36
+ */
37
+ declare const GifImage: (props: Props) => React.JSX.Element;
38
+ export default GifImage;
@@ -56,6 +56,18 @@ export type Props = {
56
56
  * If not, it defaults to a no-op.
57
57
  */
58
58
  setAssetStatus: (assetKey: string, loaded: boolean) => void;
59
+ /**
60
+ * When provided, enables GIF play/pause support.
61
+ *
62
+ * - `undefined`: no GIF controls (default, no extra DOM)
63
+ * - `true`: GIF is playing.
64
+ * - `false`: GIF is paused.
65
+ */
66
+ isGifPlaying?: boolean;
67
+ /**
68
+ * Called when the GIF completes one full loop.
69
+ */
70
+ onGifLoop?: () => void;
59
71
  };
60
72
  type DefaultProps = {
61
73
  constrainHeight: NonNullable<Props["constrainHeight"]>;
package/dist/es/index.css CHANGED
@@ -14,5 +14,5 @@
14
14
  --wb-font-heading-size-small
15
15
  );--perseus-multiple-choice-indicator-size:3.2rem;--perseus-multiple-choice-indicator-correct-size:calc(var(--perseus-multiple-choice-indicator-font-size)*1.5 + var(--perseus-multiple-choice-indicator-size));--perseus-multiple-choice-content-margin:calc(var(--perseus-multiple-choice-spacing) + var(--perseus-multiple-choice-indicator-size));--perseus-multiple-choice-fade-direction:90deg;--perseus-multiple-choice-fade-color:var(
16
16
  --perseus-widget-background-color,var(--wb-semanticColor-core-background-base-default)
17
- );box-sizing:border-box;min-width:auto;padding-inline-end:var(--perseus-multiple-choice-spacing);transform:translateZ(0)}.perseus_ejJezW-c{list-style:none;margin:0;min-width:fit-content;padding:0;scrollbar-width:thin;width:100%}.perseus_ejJezW-c:dir(rtl){--perseus-multiple-choice-fade-direction:270deg}.perseus_ejJezW-c:before{background:linear-gradient(var(--perseus-multiple-choice-fade-direction),var(--perseus-multiple-choice-fade-color) calc(var(--perseus-multiple-choice-content-margin) + var(--perseus-multiple-choice-spacing)/2),transparent calc(var(--perseus-multiple-choice-content-margin) + var(--perseus-multiple-choice-spacing)) calc(100% - var(--perseus-multiple-choice-spacing)*1.5),var(--perseus-multiple-choice-fade-color) calc(100% - var(--perseus-multiple-choice-spacing)));content:"";display:block;height:100%;position:fixed;width:100%}.perseus_zAWs4E3G{--perseus-content-line-height:var(--wb-font-heading-lineHeight-medium);display:flex;flex-direction:column;gap:var(--wb-sizing-size_120);margin-inline-start:var(--perseus-multiple-choice-content-margin);position:relative;z-index:-1}@supports (margin-block-start:1lh){.perseus_zAWs4E3G{--perseus-content-line-height:1lh}}.perseus_zAWs4E3G:not(:has(.paragraph:first-child>.paragraph :is(img,mjx-mfrac,mjx-msqrt,mjx-mroot,mjx-munder,mjx-mover,mjx-munderover))){margin-block-start:calc((var(--perseus-multiple-choice-indicator-size) - var(--perseus-content-line-height))*.4)}@media (prefers-reduced-motion:no-preference){.perseus_zAWs4E3G{transition:all .125s}}.perseus_WyGpYl3q{color:var(--wb-semanticColor-core-foreground-neutral-strong);display:block;font-family:inherit;font-size:1.8rem;font-style:normal;font-weight:700;line-height:1.25;margin-block-end:var(--wb-sizing-size_160)}.perseus_6vMrWVz0{font-size:var(--wb-font-body-size-medium);font-weight:var(--wb-font-weight-medium);line-height:var(--wb-font-body-lineHeight-medium)}.perseus_6vMrWVz0.perseus_Zv66BVdg{color:var(--wb-semanticColor-core-foreground-neutral-default)}.perseus_6vMrWVz0 .perseus-renderer{display:flex;flex-direction:column;gap:var(--wb-sizing-size_120)}.perseus_6vMrWVz0 .perseus-renderer .paragraph{margin:0}.perseus_6vMrWVz0 .perseus-renderer>.paragraph:not(:has(*)){display:none}.perseus_hJzSXKwq{--perseus-multiple-choice-content-margin:calc(var(--perseus-multiple-choice-spacing) + var(--perseus-multiple-choice-indicator-correct-size))}.perseus_5CDFHduT{border-bottom:none;color:var(--wb-semanticColor-core-foreground-instructive-strong)}:active>.perseus_5CDFHduT,:focus>.perseus_5CDFHduT,:hover>.perseus_5CDFHduT{border-bottom:2px solid var(--wb-semanticColor-core-border-instructive-default)}.perseus_ydfsz2Xj{color:var(--wb-semanticColor-core-foreground-neutral-strong);font-size:var(--wb-font-body-size-medium);font-weight:var(--wb-font-weight-medium);line-height:var(--wb-font-body-lineHeight-medium)}.perseus_3AGWQQ8Z{height:auto;line-height:inherit;margin-left:-.2rem;margin-right:.2rem;padding-left:.2rem}.perseus_HDIlPzEz{border-left:0 solid #ccc;display:inline-grid;position:relative}.perseus_NkFQFgcZ{grid-template-columns:0fr;grid-template-rows:0fr;margin-bottom:0;margin-top:0;min-width:0;padding-bottom:0;visibility:hidden}.perseus_XhV-9haB{border-left-width:5px;grid-template-columns:1fr;grid-template-rows:1fr;margin-bottom:1.4rem;margin-left:-2.3rem;margin-top:1.4rem;min-width:100%;padding-bottom:1rem;padding-left:2.3rem;visibility:visible}.perseus_WEJESS6h{overflow:hidden}.perseus_SX0g-1Bs{font-size:var(--wb-font-heading-size-medium);line-height:inherit;margin-right:-.6rem;text-align:left;white-space:normal}@media (prefers-reduced-motion:no-preference){.perseus_sbBrAODD{transition:all .25s step-end,grid-template-rows .25s,margin-top .25s,margin-bottom .25s,padding-bottom .25s}.perseus_Wp72j6qk{transition:grid-template-rows .5s,margin-top .5s,margin-bottom .5s,padding-bottom .5s}}.perseus_aAJy9Er3{border-top:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);padding-block-start:var(--wb-sizing-size_160);text-align:center}.perseus_a7ZnxMAZ,.perseus_aAJy9Er3{contain:inline-size;padding-block-end:var(--wb-sizing-size_160)}.perseus_a7ZnxMAZ{border-bottom:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);display:flex;flex-direction:row;margin-block-start:var(--wb-sizing-size_160)}.perseus_-p2ghr1-{--perseus-image-modal-padding-offset:calc(var(--wb-sizing-size_320)*-1);--perseus-image-modal-padding-offset-mobile:calc(var(--wb-sizing-size_160)*-1);--perseus-image-modal-panel-height:568px;--perseus-image-modal-description-container-width:420px;display:flex;justify-content:center;width:100%}.perseus_YxnjOOa7{align-items:center;display:flex;margin-block-end:0;margin-block-start:var(--perseus-image-modal-padding-offset)}.perseus_ryDvI8uD{border-block-start:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);display:flex;flex-direction:row;height:var(--perseus-image-modal-panel-height);margin-block-end:var(--perseus-image-modal-padding-offset);margin-inline:var(--perseus-image-modal-padding-offset);padding:var(--wb-sizing-size_080);padding-inline-end:0}.perseus_yCoMyk8e{align-items:center;background-color:var(--wb-semanticColor-core-background-neutral-strong);display:flex;flex-direction:column;justify-content:center;width:100%}.perseus_yCoMyk8e,.perseus_yCoMyk8e img{max-height:var(--perseus-image-modal-panel-height)}.perseus_yCoMyk8e img{background-color:var(--wb-semanticColor-core-background-base-default);max-width:100%}.perseus_femvuTvR{display:flex;flex-direction:column;overflow-y:auto;padding-block:var(--wb-sizing-size_240);padding-inline:var(--wb-sizing-size_320);width:var(--perseus-image-modal-description-container-width)}.perseus_y4DO7MoR{padding-block-end:var(--wb-sizing-size_240)}.perseus_fBhKbquh{margin-inline-end:var(--wb-sizing-size_160)}.perseus_9XgZ2QXH{margin-block-end:var(--wb-sizing-size_160)}@media (max-width:767px){.perseus_ryDvI8uD{flex-direction:column;height:auto;margin-inline:var(--perseus-image-modal-padding-offset-mobile);overflow-y:auto;padding:0}.perseus_yCoMyk8e{height:auto}.perseus_femvuTvR{margin-block:var(--wb-sizing-size_120);overflow-y:visible;padding:var(--wb-sizing-size_120);width:auto}}.MafsView .protractor-rotation-handle{cursor:grab;pointer-events:all;transition:transform .15s ease-out}.MafsView .protractor-rotation-handle:hover{transform:scale(1.2)}.MafsView .protractor-rotation-handle-arrow-arc{fill:none;stroke:var(--mafs-blue);stroke-width:8;stroke-linecap:square}.MafsView .protractor-rotation-handle-arrowhead{fill:var(--mafs-blue);stroke:none}.MafsView{--mafs-bg:#000;--mafs-fg:#fff;--mafs-origin-color:var(--mafs-fg);--mafs-line-color:#555;--mafs-line-stroke-dash-style:4,3;--mafs-axis-stroke-width:1px;--grid-line-subdivision-color:#222;--mafs-red:#f11d0e;--mafs-orange:#f14e0e;--mafs-yellow:#ffe44a;--mafs-green:#15e272;--mafs-blue:#58a6ff;--mafs-indigo:#7c58ff;--mafs-violet:#ae58ff;--mafs-pink:#ee00ab;background:var(--mafs-bg);display:block;font-family:inherit;font-variant-numeric:tabular-nums;outline:0;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.MafsView text{fill:var(--mafs-fg);cursor:default}.MafsView path{stroke:var(--mafs-fg)}.MafsView:focus-visible{border-radius:5px;outline:3px solid #58a6ff}@supports not selector(:focus-visible){.MafsView:focus{border-radius:5px;outline:3px solid #58a6ff}}.mafs-shadow{stroke-width:3px;stroke:var(--mafs-bg);stroke-opacity:.75;stroke-linejoin:round;paint-order:stroke}.mafs-movable-point{cursor:grab;touch-action:none}.mafs-movable-point-dragging{cursor:grabbing}.mafs-movable-point:focus{outline:0}.mafs-movable-point *{fill:none;stroke:none}.mafs-movable-point-hitbox{fill:transparent}.mafs-movable-point-focus{stroke:var(--movable-point-color);stroke-width:2;stroke-opacity:0;fill:none;transition:stroke-opacity .2s ease}.mafs-movable-point-ring{fill:var(--movable-point-color);fill-opacity:.25;stroke:none;transition:r .2s ease}.mafs-movable-point-point{fill:var(--movable-point-color);transition:r .2s ease}.mafs-movable-point:focus-visible .mafs-movable-point-point,.mafs-movable-point:hover .mafs-movable-point-point{r:calc(var(--movable-point-ring-size) - 2px)}.mafs-movable-point:focus-visible .mafs-movable-point-ring,.mafs-movable-point:hover .mafs-movable-point-ring{r:calc(var(--movable-point-ring-size) + 3px)}.mafs-movable-point.mafs-movable-point-dragging .mafs-movable-point-ring{r:var(--movable-point-ring-size)}.mafs-movable-point:focus-visible .mafs-movable-point-focus{stroke-opacity:1}.MafsView{--mafs-bg:transparent;--mafs-fg:#21242c;--mafs-line-color:rgba(33,36,44,.16);--mafs-axis-stroke-width:2px;--mafs-blue:#1865f2;--mafs-red:#d92916;--mafs-green:#00a60e;--mafs-violet:#9059ff;--mafs-yellow:#ffb100;--static-gray:#909296;--movable-point-color:var(--mafs-blue);--movable-point-center-radius:6px;--movable-point-ring-radius:calc(2px + var(--movable-point-center-radius));--movable-point-halo-radius:calc(3px + var(--movable-point-ring-radius));--movable-point-hover-expansion:2px;--movable-point-focus-ring-offset:2px;--movable-line-stroke-weight:2px;--movable-line-stroke-weight-active:4px;overflow:visible!important}.MafsView>svg{display:block;overflow:visible}.MafsView .movable-line:hover,.movable-dragging{--movable-line-stroke-weight:var(--movable-line-stroke-weight-active)}.MafsView .movable-line:focus,.movable-polygon:focus{outline:none}.MafsView .movable-line :is(.movable-line-focus-outline,.movable-line-focus-outline-gap){stroke:transparent}.MafsView .movable-line:focus-visible .movable-line-focus-outline{stroke:var(--mafs-blue);stroke-width:10px}.MafsView .movable-line:focus-visible .movable-line-focus-outline-gap{stroke:#fff;stroke-width:6px}.MafsView .movable-point{-webkit-tap-highlight-color:transparent;cursor:grab;outline:none;touch-action:none}.MafsView .movable-point.movable-point--dragging{cursor:grabbing}.MafsView .movable-point.movable-point--dragging .movable-point-halo{opacity:0}.MafsView .movable-point-hitbox{fill:transparent}.MafsView :is(.movable-point-center,.movable-point-ring,.movable-point-halo,.movable-point-focus-outline){transition:r .15s ease-out,opacity .15s ease-out}.MafsView .movable-point-center{r:var(--movable-point-center-radius)}.MafsView .movable-point-halo{r:var(--movable-point-halo-radius);fill:var(--movable-point-color);filter:drop-shadow(0 5px 5px #0008);opacity:.25}.MafsView .movable-point-ring{r:var(--movable-point-ring-radius);fill:#fff}.MafsView .movable-point:hover .movable-point-center{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-center-radius))}.MafsView .movable-point:hover .movable-point-ring{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-ring-radius))}.MafsView .movable-point:hover .movable-point-halo{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-halo-radius))}.MafsView .movable-point .movable-point-focus-outline{r:calc(var(--movable-point-halo-radius) + var(--movable-point-focus-ring-offset));stroke-width:2px;fill:none;stroke:var(--mafs-blue);visibility:hidden}.MafsView .movable-point:hover .movable-point-focus-outline{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-halo-radius) + var(--movable-point-focus-ring-offset))}.MafsView .movable-point__focusable-handle:focus-visible{outline:none}.MafsView .movable-point:is(:focus,.movable-point--focus) .movable-point-focus-outline{visibility:visible}.MafsView .movable-circle{cursor:grab}.MafsView .movable-circle .circle{stroke-width:2px;fill:transparent}.MafsView .movable-circle:hover .circle{fill:var(--mafs-blue);fill-opacity:.16}.MafsView .movable-circle.movable-circle--dragging{cursor:grabbing;outline:none}.MafsView .movable-circle .focus-ring{stroke:var(--mafs-blue);stroke-width:2px;fill:transparent;visibility:hidden}.MafsView .movable-circle:focus{outline:none}.MafsView .movable-circle:focus-visible .focus-ring{visibility:visible}.MafsView .movable-circle .movable-circle-handle{stroke:#fff;stroke-width:2px}.MafsView .movable-circle .movable-circle-handle-dot{fill:#fff;r:1.25px}.MafsView .movable-asymptote-handle-focus-ring{fill:none;stroke-width:2px}.MafsView .movable-asymptote-handle-halo{filter:drop-shadow(0 5px 5px #0008);opacity:.25}.MafsView .movable-asymptote-handle-dot,.MafsView .movable-asymptote-handle-ring{fill:var(--wb-semanticColor-core-border-knockout-default)}.MafsView .movable-asymptote-handle-dot{r:var(--wb-sizing-size_010)}@font-face{font-family:Mafs-MJXTEX;src:url(https://cdn.kastatic.org/fonts/mathjax/MathJax_Main-Regular.woff) format("woff")}.MafsView pattern g{stroke:rgba(33,36,44,.32)}.MafsView .angle-arc-interactive{stroke:var(--mafs-blue);stroke-width:.1px}.MafsView .angle-arc-static{stroke:var(--static-gray);stroke-width:.1px}.MafsView .axis-tick-label{stroke:#fff;stroke-width:5px;font-family:KaTeX_Main,Mafs-MJXTEX,sans-serif;paint-order:stroke fill}.MafsView .axis-tick{stroke:#000;stroke-width:1px}.mafs-sr-only{height:0;overflow:hidden;width:0}
17
+ );box-sizing:border-box;min-width:auto;padding-inline-end:var(--perseus-multiple-choice-spacing);transform:translateZ(0)}.perseus_ejJezW-c{list-style:none;margin:0;min-width:fit-content;padding:0;scrollbar-width:thin;width:100%}.perseus_ejJezW-c:dir(rtl){--perseus-multiple-choice-fade-direction:270deg}.perseus_ejJezW-c:before{background:linear-gradient(var(--perseus-multiple-choice-fade-direction),var(--perseus-multiple-choice-fade-color) calc(var(--perseus-multiple-choice-content-margin) + var(--perseus-multiple-choice-spacing)/2),transparent calc(var(--perseus-multiple-choice-content-margin) + var(--perseus-multiple-choice-spacing)) calc(100% - var(--perseus-multiple-choice-spacing)*1.5),var(--perseus-multiple-choice-fade-color) calc(100% - var(--perseus-multiple-choice-spacing)));content:"";display:block;height:100%;position:fixed;width:100%}.perseus_zAWs4E3G{--perseus-content-line-height:var(--wb-font-heading-lineHeight-medium);display:flex;flex-direction:column;gap:var(--wb-sizing-size_120);margin-inline-start:var(--perseus-multiple-choice-content-margin);position:relative;z-index:-1}@supports (margin-block-start:1lh){.perseus_zAWs4E3G{--perseus-content-line-height:1lh}}.perseus_zAWs4E3G:not(:has(.paragraph:first-child>.paragraph :is(img,mjx-mfrac,mjx-msqrt,mjx-mroot,mjx-munder,mjx-mover,mjx-munderover))){margin-block-start:calc((var(--perseus-multiple-choice-indicator-size) - var(--perseus-content-line-height))*.4)}@media (prefers-reduced-motion:no-preference){.perseus_zAWs4E3G{transition:all .125s}}.perseus_WyGpYl3q{color:var(--wb-semanticColor-core-foreground-neutral-strong);display:block;font-family:inherit;font-size:1.8rem;font-style:normal;font-weight:700;line-height:1.25;margin-block-end:var(--wb-sizing-size_160)}.perseus_6vMrWVz0{font-size:var(--wb-font-body-size-medium);font-weight:var(--wb-font-weight-medium);line-height:var(--wb-font-body-lineHeight-medium)}.perseus_6vMrWVz0.perseus_Zv66BVdg{color:var(--wb-semanticColor-core-foreground-neutral-default)}.perseus_6vMrWVz0 .perseus-renderer{display:flex;flex-direction:column;gap:var(--wb-sizing-size_120)}.perseus_6vMrWVz0 .perseus-renderer .paragraph{margin:0}.perseus_6vMrWVz0 .perseus-renderer>.paragraph:not(:has(*)){display:none}.perseus_hJzSXKwq{--perseus-multiple-choice-content-margin:calc(var(--perseus-multiple-choice-spacing) + var(--perseus-multiple-choice-indicator-correct-size))}.perseus_5CDFHduT{border-bottom:none;color:var(--wb-semanticColor-core-foreground-instructive-strong)}:active>.perseus_5CDFHduT,:focus>.perseus_5CDFHduT,:hover>.perseus_5CDFHduT{border-bottom:2px solid var(--wb-semanticColor-core-border-instructive-default)}.perseus_ydfsz2Xj{color:var(--wb-semanticColor-core-foreground-neutral-strong);font-size:var(--wb-font-body-size-medium);font-weight:var(--wb-font-weight-medium);line-height:var(--wb-font-body-lineHeight-medium)}.perseus_3AGWQQ8Z{height:auto;line-height:inherit;margin-left:-.2rem;margin-right:.2rem;padding-left:.2rem}.perseus_HDIlPzEz{border-left:0 solid #ccc;display:inline-grid;position:relative}.perseus_NkFQFgcZ{grid-template-columns:0fr;grid-template-rows:0fr;margin-bottom:0;margin-top:0;min-width:0;padding-bottom:0;visibility:hidden}.perseus_XhV-9haB{border-left-width:5px;grid-template-columns:1fr;grid-template-rows:1fr;margin-bottom:1.4rem;margin-left:-2.3rem;margin-top:1.4rem;min-width:100%;padding-bottom:1rem;padding-left:2.3rem;visibility:visible}.perseus_WEJESS6h{overflow:hidden}.perseus_SX0g-1Bs{font-size:var(--wb-font-heading-size-medium);line-height:inherit;margin-right:-.6rem;text-align:left;white-space:normal}@media (prefers-reduced-motion:no-preference){.perseus_sbBrAODD{transition:all .25s step-end,grid-template-rows .25s,margin-top .25s,margin-bottom .25s,padding-bottom .25s}.perseus_Wp72j6qk{transition:grid-template-rows .5s,margin-top .5s,margin-bottom .5s,padding-bottom .5s}}.perseus_aAJy9Er3{border-top:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);padding-block-start:var(--wb-sizing-size_160);text-align:center}.perseus_a7ZnxMAZ,.perseus_aAJy9Er3{contain:inline-size;padding-block-end:var(--wb-sizing-size_160)}.perseus_a7ZnxMAZ{border-bottom:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);display:flex;flex-direction:row;margin-block-start:var(--wb-sizing-size_160)}.perseus_-p2ghr1-{--perseus-image-modal-padding-offset:calc(var(--wb-c-modal-panel-layout-gap-default)*-1);--perseus-image-modal-padding-offset-mobile:calc(var(--wb-c-modal-panel-layout-gap-small)*-1);--perseus-image-modal-panel-height:568px;--perseus-image-modal-description-container-width:420px;display:flex;justify-content:center;width:100%}.perseus_YxnjOOa7{align-items:center;display:flex;margin-block-end:0;margin-block-start:var(--perseus-image-modal-padding-offset)}.perseus_ryDvI8uD{border-block-start:var(--wb-border-width-thin) solid var(--wb-semanticColor-core-border-neutral-subtle);display:flex;flex-direction:row;height:var(--perseus-image-modal-panel-height);margin-block-end:var(--perseus-image-modal-padding-offset);margin-inline:var(--perseus-image-modal-padding-offset);padding:var(--wb-sizing-size_080);padding-inline-end:0}.perseus_yCoMyk8e{align-items:center;background-color:var(--wb-semanticColor-core-background-neutral-strong);display:flex;flex-direction:column;justify-content:center;width:100%}.perseus_yCoMyk8e,.perseus_yCoMyk8e img{max-height:var(--perseus-image-modal-panel-height)}.perseus_yCoMyk8e img{background-color:var(--wb-semanticColor-core-background-base-default);max-width:100%}.perseus_femvuTvR{display:flex;flex-direction:column;overflow-y:auto;padding-block:var(--wb-sizing-size_240);padding-inline:var(--wb-sizing-size_320);width:var(--perseus-image-modal-description-container-width)}.perseus_y4DO7MoR{padding-block-end:var(--wb-sizing-size_240)}.perseus_fBhKbquh{margin-inline-end:var(--wb-sizing-size_160)}.perseus_9XgZ2QXH{margin-block-end:var(--wb-sizing-size_160)}@media (max-width:767px){.perseus_ryDvI8uD{flex-direction:column;height:auto;margin-inline:var(--perseus-image-modal-padding-offset-mobile);overflow-y:auto;padding:0}.perseus_yCoMyk8e{height:auto}.perseus_femvuTvR{margin-block:var(--wb-sizing-size_120);overflow-y:visible;padding:var(--wb-sizing-size_120);width:auto}}.MafsView .protractor-rotation-handle{cursor:grab;pointer-events:all;transition:transform .15s ease-out}.MafsView .protractor-rotation-handle:hover{transform:scale(1.2)}.MafsView .protractor-rotation-handle-arrow-arc{fill:none;stroke:var(--mafs-blue);stroke-width:8;stroke-linecap:square}.MafsView .protractor-rotation-handle-arrowhead{fill:var(--mafs-blue);stroke:none}.MafsView{--mafs-bg:#000;--mafs-fg:#fff;--mafs-origin-color:var(--mafs-fg);--mafs-line-color:#555;--mafs-line-stroke-dash-style:4,3;--mafs-axis-stroke-width:1px;--grid-line-subdivision-color:#222;--mafs-red:#f11d0e;--mafs-orange:#f14e0e;--mafs-yellow:#ffe44a;--mafs-green:#15e272;--mafs-blue:#58a6ff;--mafs-indigo:#7c58ff;--mafs-violet:#ae58ff;--mafs-pink:#ee00ab;background:var(--mafs-bg);display:block;font-family:inherit;font-variant-numeric:tabular-nums;outline:0;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.MafsView text{fill:var(--mafs-fg);cursor:default}.MafsView path{stroke:var(--mafs-fg)}.MafsView:focus-visible{border-radius:5px;outline:3px solid #58a6ff}@supports not selector(:focus-visible){.MafsView:focus{border-radius:5px;outline:3px solid #58a6ff}}.mafs-shadow{stroke-width:3px;stroke:var(--mafs-bg);stroke-opacity:.75;stroke-linejoin:round;paint-order:stroke}.mafs-movable-point{cursor:grab;touch-action:none}.mafs-movable-point-dragging{cursor:grabbing}.mafs-movable-point:focus{outline:0}.mafs-movable-point *{fill:none;stroke:none}.mafs-movable-point-hitbox{fill:transparent}.mafs-movable-point-focus{stroke:var(--movable-point-color);stroke-width:2;stroke-opacity:0;fill:none;transition:stroke-opacity .2s ease}.mafs-movable-point-ring{fill:var(--movable-point-color);fill-opacity:.25;stroke:none;transition:r .2s ease}.mafs-movable-point-point{fill:var(--movable-point-color);transition:r .2s ease}.mafs-movable-point:focus-visible .mafs-movable-point-point,.mafs-movable-point:hover .mafs-movable-point-point{r:calc(var(--movable-point-ring-size) - 2px)}.mafs-movable-point:focus-visible .mafs-movable-point-ring,.mafs-movable-point:hover .mafs-movable-point-ring{r:calc(var(--movable-point-ring-size) + 3px)}.mafs-movable-point.mafs-movable-point-dragging .mafs-movable-point-ring{r:var(--movable-point-ring-size)}.mafs-movable-point:focus-visible .mafs-movable-point-focus{stroke-opacity:1}.MafsView{--mafs-bg:transparent;--mafs-fg:#21242c;--mafs-line-color:rgba(33,36,44,.16);--mafs-axis-stroke-width:2px;--mafs-blue:#1865f2;--mafs-red:#d92916;--mafs-green:#00a60e;--mafs-violet:#9059ff;--mafs-yellow:#ffb100;--static-gray:#909296;--movable-point-color:var(--mafs-blue);--movable-point-center-radius:6px;--movable-point-ring-radius:calc(2px + var(--movable-point-center-radius));--movable-point-halo-radius:calc(3px + var(--movable-point-ring-radius));--movable-point-hover-expansion:2px;--movable-point-focus-ring-offset:2px;--movable-line-stroke-weight:2px;--movable-line-stroke-weight-active:4px;overflow:visible!important}.MafsView>svg{display:block;overflow:visible}.MafsView .movable-line:hover,.movable-dragging{--movable-line-stroke-weight:var(--movable-line-stroke-weight-active)}.MafsView .movable-line:focus,.movable-polygon:focus{outline:none}.MafsView .movable-line :is(.movable-line-focus-outline,.movable-line-focus-outline-gap){stroke:transparent}.MafsView .movable-line:focus-visible .movable-line-focus-outline{stroke:var(--mafs-blue);stroke-width:10px}.MafsView .movable-line:focus-visible .movable-line-focus-outline-gap{stroke:#fff;stroke-width:6px}.MafsView .movable-point{-webkit-tap-highlight-color:transparent;cursor:grab;outline:none;touch-action:none}.MafsView .movable-point.movable-point--dragging{cursor:grabbing}.MafsView .movable-point.movable-point--dragging .movable-point-halo{opacity:0}.MafsView .movable-point-hitbox{fill:transparent}.MafsView :is(.movable-point-center,.movable-point-ring,.movable-point-halo,.movable-point-focus-outline){transition:r .15s ease-out,opacity .15s ease-out}.MafsView .movable-point-center{r:var(--movable-point-center-radius)}.MafsView .movable-point-halo{r:var(--movable-point-halo-radius);fill:var(--movable-point-color);filter:drop-shadow(0 5px 5px #0008);opacity:.25}.MafsView .movable-point-ring{r:var(--movable-point-ring-radius);fill:#fff}.MafsView .movable-point:hover .movable-point-center{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-center-radius))}.MafsView .movable-point:hover .movable-point-ring{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-ring-radius))}.MafsView .movable-point:hover .movable-point-halo{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-halo-radius))}.MafsView .movable-point .movable-point-focus-outline{r:calc(var(--movable-point-halo-radius) + var(--movable-point-focus-ring-offset));stroke-width:2px;fill:none;stroke:var(--mafs-blue);visibility:hidden}.MafsView .movable-point:hover .movable-point-focus-outline{r:calc(var(--movable-point-hover-expansion) + var(--movable-point-halo-radius) + var(--movable-point-focus-ring-offset))}.MafsView .movable-point__focusable-handle:focus-visible{outline:none}.MafsView .movable-point:is(:focus,.movable-point--focus) .movable-point-focus-outline{visibility:visible}.MafsView .movable-circle{cursor:grab}.MafsView .movable-circle .circle{stroke-width:2px;fill:transparent}.MafsView .movable-circle:hover .circle{fill:var(--mafs-blue);fill-opacity:.16}.MafsView .movable-circle.movable-circle--dragging{cursor:grabbing;outline:none}.MafsView .movable-circle .focus-ring{stroke:var(--mafs-blue);stroke-width:2px;fill:transparent;visibility:hidden}.MafsView .movable-circle:focus{outline:none}.MafsView .movable-circle:focus-visible .focus-ring{visibility:visible}.MafsView .movable-circle .movable-circle-handle{stroke:#fff;stroke-width:2px}.MafsView .movable-circle .movable-circle-handle-dot{fill:#fff;r:1.25px}.MafsView .movable-asymptote-handle-focus-ring{fill:none;stroke-width:2px}.MafsView .movable-asymptote-handle-halo{filter:drop-shadow(0 5px 5px #0008);opacity:.25}.MafsView .movable-asymptote-handle-dot,.MafsView .movable-asymptote-handle-ring{fill:var(--wb-semanticColor-core-border-knockout-default)}.MafsView .movable-asymptote-handle-dot{r:var(--wb-sizing-size_010)}@font-face{font-family:Mafs-MJXTEX;src:url(https://cdn.kastatic.org/fonts/mathjax/MathJax_Main-Regular.woff) format("woff")}.MafsView pattern g{stroke:rgba(33,36,44,.32)}.MafsView .angle-arc-interactive{stroke:var(--mafs-blue);stroke-width:.1px}.MafsView .angle-arc-static{stroke:var(--static-gray);stroke-width:.1px}.MafsView .axis-tick-label{stroke:#fff;stroke-width:5px;font-family:KaTeX_Main,Mafs-MJXTEX,sans-serif;paint-order:stroke fill}.MafsView .axis-tick{stroke:#000;stroke-width:1px}.mafs-sr-only{height:0;overflow:hidden;width:0}
18
18
  /*# sourceMappingURL=index.css.map */