@khanacademy/perseus 25.1.1 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/components/fixed-to-responsive.d.ts +1 -1
  2. package/dist/components/hud.d.ts +2 -2
  3. package/dist/components/i18n-context.d.ts +1 -1
  4. package/dist/components/info-tip/info-tip.d.ts +1 -1
  5. package/dist/components/math-input.d.ts +1 -1
  6. package/dist/components/tooltip.d.ts +2 -2
  7. package/dist/es/index.css +2 -2
  8. package/dist/es/index.js +48 -12
  9. package/dist/es/index.js.map +1 -1
  10. package/dist/index.css +2 -2
  11. package/dist/index.js +48 -12
  12. package/dist/index.js.map +1 -1
  13. package/dist/util/react-render.d.ts +9 -1
  14. package/dist/widgets/deprecated-standin/index.d.ts +1 -1
  15. package/dist/widgets/expression.d.ts +4 -4
  16. package/dist/widgets/interactive-graph.d.ts +1 -1
  17. package/dist/widgets/interactive-graphs/backgrounds/axis-arrows.d.ts +2 -2
  18. package/dist/widgets/interactive-graphs/backgrounds/axis-labels.d.ts +2 -2
  19. package/dist/widgets/interactive-graphs/backgrounds/axis-tick-labels.d.ts +2 -2
  20. package/dist/widgets/interactive-graphs/backgrounds/axis-ticks.d.ts +2 -2
  21. package/dist/widgets/interactive-graphs/backgrounds/grid.d.ts +2 -2
  22. package/dist/widgets/interactive-graphs/backgrounds/legacy-grid.d.ts +2 -2
  23. package/dist/widgets/interactive-graphs/graph-locked-layer.d.ts +2 -2
  24. package/dist/widgets/interactive-graphs/graphs/angle.d.ts +2 -2
  25. package/dist/widgets/interactive-graphs/graphs/circle.d.ts +2 -2
  26. package/dist/widgets/interactive-graphs/graphs/components/angle-indicators.d.ts +3 -3
  27. package/dist/widgets/interactive-graphs/graphs/components/arrowhead.d.ts +2 -2
  28. package/dist/widgets/interactive-graphs/graphs/components/css-transform-wrapper.d.ts +1 -1
  29. package/dist/widgets/interactive-graphs/graphs/components/movable-line.d.ts +3 -3
  30. package/dist/widgets/interactive-graphs/graphs/components/movable-point.d.ts +2 -2
  31. package/dist/widgets/interactive-graphs/graphs/components/svg-line.d.ts +2 -1
  32. package/dist/widgets/interactive-graphs/graphs/components/text-label.d.ts +3 -2
  33. package/dist/widgets/interactive-graphs/graphs/components/vector.d.ts +1 -1
  34. package/dist/widgets/interactive-graphs/graphs/linear-system.d.ts +2 -2
  35. package/dist/widgets/interactive-graphs/graphs/linear.d.ts +2 -2
  36. package/dist/widgets/interactive-graphs/graphs/point.d.ts +2 -2
  37. package/dist/widgets/interactive-graphs/graphs/polygon.d.ts +2 -2
  38. package/dist/widgets/interactive-graphs/graphs/quadratic.d.ts +2 -2
  39. package/dist/widgets/interactive-graphs/graphs/ray.d.ts +2 -2
  40. package/dist/widgets/interactive-graphs/graphs/segment.d.ts +2 -2
  41. package/dist/widgets/interactive-graphs/graphs/sinusoid.d.ts +2 -2
  42. package/dist/widgets/interactive-graphs/locked-figures/locked-ellipse.d.ts +2 -2
  43. package/dist/widgets/interactive-graphs/locked-figures/locked-function.d.ts +2 -2
  44. package/dist/widgets/interactive-graphs/locked-figures/locked-line.d.ts +2 -2
  45. package/dist/widgets/interactive-graphs/locked-figures/locked-point.d.ts +2 -2
  46. package/dist/widgets/interactive-graphs/locked-figures/locked-polygon.d.ts +2 -2
  47. package/dist/widgets/interactive-graphs/locked-figures/locked-vector.d.ts +2 -2
  48. package/dist/widgets/interactive-graphs/mafs-graph.d.ts +1 -1
  49. package/dist/widgets/interactive-graphs/protractor.d.ts +2 -2
  50. package/dist/widgets/label-image/answer-choices.d.ts +2 -2
  51. package/dist/widgets/label-image/answer-pill.d.ts +2 -2
  52. package/dist/widgets/label-image/hide-answers-toggle.d.ts +1 -1
  53. package/dist/widgets/label-image/marker.d.ts +1 -1
  54. package/package.json +8 -8
package/dist/index.css CHANGED
@@ -4148,11 +4148,11 @@ html body .mq-editable-field .mq-selection .mq-nthroot-container * {
4148
4148
  /* `pointer-events: all` is needed to make the hit target the size of the
4149
4149
  * entire <g> element and not just its visible subelements */
4150
4150
  pointer-events: all;
4151
- transition: transform 0.1s ease-out;
4151
+ transition: transform 0.15s ease-out;
4152
4152
  }
4153
4153
 
4154
4154
  .MafsView .protractor-rotation-handle:hover {
4155
- transform: scale(1.3);
4155
+ transform: scale(1.2);
4156
4156
  }
4157
4157
 
4158
4158
  .MafsView .protractor-rotation-handle-arrow-arc {
package/dist/index.js CHANGED
@@ -8934,12 +8934,41 @@ class GraphBounds {
8934
8934
  }
8935
8935
  }
8936
8936
 
8937
- function render(element, container, callback) {
8938
- // TODO(LP-11406): Replace this, or callers, with React Portal
8939
- // @ts-expect-error - TS2322 - Type 'void' is not assignable to type 'ElementRef<ElementType>'.
8940
- // eslint-disable-next-line no-restricted-syntax
8941
- return ReactDOM__default["default"].render(
8942
- /*#__PURE__*/
8937
+ var createRoot;
8938
+
8939
+ var m = ReactDOM__default["default"];
8940
+ if (process.env.NODE_ENV === 'production') {
8941
+ createRoot = m.createRoot;
8942
+ } else {
8943
+ var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8944
+ createRoot = function(c, o) {
8945
+ i.usingClientEntryPoint = true;
8946
+ try {
8947
+ return m.createRoot(c, o);
8948
+ } finally {
8949
+ i.usingClientEntryPoint = false;
8950
+ }
8951
+ };
8952
+ }
8953
+
8954
+ // We keep a cache of elements that have already had createRoot() called on
8955
+ // them. If we don't do this, React 18 warns every subsequent call:
8956
+ // > You are calling ReactDOMClient.createRoot() on a container that has
8957
+ // > already been passed to createRoot() before.
8958
+ //
8959
+ // Note that this cache uses a WeakMap<> so that the cache isn't causing a
8960
+ // memory leak (by retaining elements after they're released everywhere else).
8961
+ const reactRootCache = new WeakMap();
8962
+
8963
+ /**
8964
+ * Renders the given ReactNode inside the given container.
8965
+ * @param element The JSX to render
8966
+ * @param container The HTML elemetn to render into
8967
+ *
8968
+ * @deprecated this function is legacy and exists to support ancient code
8969
+ * paths. Do not use in new code.
8970
+ */
8971
+ function render(element, container) {
8943
8972
  /**
8944
8973
  * `RenderStateRoot` is responsible for tracking whether it's
8945
8974
  * the initial render or subsequent renders. It's used by
@@ -8949,9 +8978,15 @@ function render(element, container, callback) {
8949
8978
  * components using that hook or those components will function
8950
8979
  * correctly.
8951
8980
  */
8952
- React__namespace.createElement(wonderBlocksCore.RenderStateRoot, {
8981
+ const children = /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.RenderStateRoot, {
8953
8982
  throwIfNested: false
8954
- }, element), container, callback);
8983
+ }, element);
8984
+ let root = reactRootCache.get(container);
8985
+ if (root == null) {
8986
+ root = createRoot(container);
8987
+ reactRootCache.set(container, root);
8988
+ }
8989
+ root.render(children);
8955
8990
  }
8956
8991
 
8957
8992
  function findChildOrAdd(elem, className) {
@@ -9003,6 +9038,7 @@ var Tex$1 = {
9003
9038
  } = await getDependencies();
9004
9039
  // We use createElement instead of JSX here because we can't name this file tex.tsx;
9005
9040
  // that name is already taken.
9041
+ // eslint-disable-next-line import/no-deprecated
9006
9042
  render( /*#__PURE__*/React__namespace.createElement(TeX, {
9007
9043
  children: text,
9008
9044
  onRender: callback
@@ -15445,6 +15481,7 @@ class MovablePoint$4 {
15445
15481
  }
15446
15482
  const showTrashTooltip = () => {
15447
15483
  this._showTooltip(container => {
15484
+ // eslint-disable-next-line import/no-deprecated
15448
15485
  render( /*#__PURE__*/React__namespace.createElement("span", {
15449
15486
  style: {
15450
15487
  fontSize: "2em"
@@ -17741,7 +17778,6 @@ class Tex extends React__namespace.Component {
17741
17778
  this._hasRendered = false;
17742
17779
  }
17743
17780
  handleRender = () => {
17744
- this.props.onRender();
17745
17781
  this.setState({
17746
17782
  rendered: true
17747
17783
  });
@@ -32123,7 +32159,7 @@ const renderGraph = props => {
32123
32159
  dispatch: dispatch
32124
32160
  });
32125
32161
  default:
32126
- return new wonderStuffCore.UnreachableCaseError(type);
32162
+ throw new wonderStuffCore.UnreachableCaseError(type);
32127
32163
  }
32128
32164
  };
32129
32165
 
@@ -42163,6 +42199,7 @@ const rules = {
42163
42199
  }, getInitialParseState()));
42164
42200
  return {
42165
42201
  ref: ref,
42202
+ // @ts-expect-error - TS2322- Type 'SingleASTNode[]' is not assignable to type 'ReactNode'.
42166
42203
  refContent: refContent
42167
42204
  };
42168
42205
  },
@@ -45295,7 +45332,7 @@ const init = function (options) {
45295
45332
 
45296
45333
  // This file is processed by a Rollup plugin (replace) to inject the production
45297
45334
  const libName = "@khanacademy/perseus";
45298
- const libVersion = "25.1.1";
45335
+ const libVersion = "26.0.0";
45299
45336
  perseusCore.addLibraryVersionToPerseusDebug(libName, libVersion);
45300
45337
 
45301
45338
  const apiVersion = {
@@ -45738,7 +45775,6 @@ class HintsRenderer extends React__namespace.Component {
45738
45775
  }, apiOptions.isMobile && hintsVisible > 0 && /*#__PURE__*/React__namespace.createElement("div", {
45739
45776
  className: aphrodite.css(styles$2.mobileHintStylesHintTitle, sharedStyles.responsiveLabel)
45740
45777
  }, this.context.strings.hints), hints, showGetAnotherHint && /*#__PURE__*/React__namespace.createElement("button", {
45741
- // @ts-expect-error - TS2322 - Type '{ children: Element[]; rel: string; className: string; onClick: (evt: MouseEvent<HTMLButtonElement, MouseEvent>) => void; }' is not assignable to type 'DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>'.
45742
45778
  rel: "button",
45743
45779
  className: aphrodite.css(styles$2.linkButton, styles$2.getAnotherHintButton, apiOptions.isMobile && styles$2.mobileHintStylesGetAnotherHintButton),
45744
45780
  onClick: evt => {