@khanacademy/perseus-editor 8.2.0 → 10.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 (41) hide show
  1. package/dist/components/angle-input.d.ts +2 -2
  2. package/dist/components/coordinate-pair-input.d.ts +2 -2
  3. package/dist/components/graph-locked-figures/color-select.d.ts +2 -2
  4. package/dist/components/graph-locked-figures/color-swatch.d.ts +2 -2
  5. package/dist/components/graph-locked-figures/defining-point-settings.d.ts +2 -2
  6. package/dist/components/graph-locked-figures/ellipse-swatch.d.ts +2 -2
  7. package/dist/components/graph-locked-figures/labeled-row.d.ts +1 -1
  8. package/dist/components/graph-locked-figures/labeled-switch.d.ts +2 -2
  9. package/dist/components/graph-locked-figures/line-swatch.d.ts +2 -2
  10. package/dist/components/graph-locked-figures/locked-ellipse-settings.d.ts +2 -2
  11. package/dist/components/graph-locked-figures/locked-figure-select.d.ts +2 -2
  12. package/dist/components/graph-locked-figures/locked-figure-settings-actions.d.ts +2 -2
  13. package/dist/components/graph-locked-figures/locked-figure-settings.d.ts +2 -2
  14. package/dist/components/graph-locked-figures/locked-figures-section.d.ts +2 -2
  15. package/dist/components/graph-locked-figures/locked-line-settings.d.ts +2 -2
  16. package/dist/components/graph-locked-figures/locked-point-settings.d.ts +2 -2
  17. package/dist/components/graph-locked-figures/locked-polygon-settings.d.ts +2 -2
  18. package/dist/components/graph-locked-figures/locked-vector-settings.d.ts +2 -2
  19. package/dist/components/graph-locked-figures/polygon-swatch.d.ts +2 -2
  20. package/dist/components/graph-points-count-selector.d.ts +2 -2
  21. package/dist/components/graph-type-selector.d.ts +2 -2
  22. package/dist/components/heading.d.ts +2 -2
  23. package/dist/components/interactive-graph-correct-answer.d.ts +1 -1
  24. package/dist/components/interactive-graph-settings.d.ts +1 -1
  25. package/dist/components/perseus-editor-accordion.d.ts +1 -1
  26. package/dist/components/segment-count-selector.d.ts +2 -2
  27. package/dist/components/start-coord-settings.d.ts +2 -2
  28. package/dist/components/toggleable-caret.d.ts +2 -2
  29. package/dist/components/viewport-resizer.d.ts +2 -2
  30. package/dist/components/widget-editor.d.ts +1 -1
  31. package/dist/es/index.js +62 -172
  32. package/dist/es/index.js.map +1 -1
  33. package/dist/index.d.ts +0 -1
  34. package/dist/index.js +61 -172
  35. package/dist/index.js.map +1 -1
  36. package/dist/widgets/image-editor.d.ts +2 -2
  37. package/dist/widgets/interaction-editor/mathquill-input.d.ts +2 -2
  38. package/dist/widgets/interactive-graph-editor.d.ts +129 -75
  39. package/dist/widgets/numeric-input-editor.d.ts +1 -1
  40. package/package.json +7 -7
  41. package/dist/stateful-article-editor.d.ts +0 -10
package/dist/es/index.js CHANGED
@@ -37,7 +37,7 @@ import arrowCounterClockwise from '@phosphor-icons/core/bold/arrow-counter-clock
37
37
 
38
38
  // This file is processed by a Rollup plugin (replace) to inject the production
39
39
  const libName = "@khanacademy/perseus-editor";
40
- const libVersion = "8.2.0";
40
+ const libVersion = "10.0.0";
41
41
  addLibraryVersionToPerseusDebug(libName, libVersion);
42
42
 
43
43
  function _extends() {
@@ -227,7 +227,7 @@ class SectionControlButton extends React.Component {
227
227
  role: "button",
228
228
  hideDefaultFocusRing: true,
229
229
  "aria-label": title,
230
- style: styles$H.button
230
+ style: styles$G.button
231
231
  }, ({
232
232
  hovered,
233
233
  focused,
@@ -235,7 +235,7 @@ class SectionControlButton extends React.Component {
235
235
  }) => /*#__PURE__*/React.createElement(InlineIcon$b, icon));
236
236
  }
237
237
  }
238
- const styles$H = StyleSheet.create({
238
+ const styles$G = StyleSheet.create({
239
239
  button: {
240
240
  backgroundColor: color.gold,
241
241
  margin: 2,
@@ -20740,13 +20740,13 @@ class WidgetSelect extends React.Component {
20740
20740
  * that collapse a region.
20741
20741
  */
20742
20742
  function ToggleableCaret(props) {
20743
- const iconStyle = props.isExpanded ? styles$G.expanded : styles$G.collapsed;
20743
+ const iconStyle = props.isExpanded ? styles$F.expanded : styles$F.collapsed;
20744
20744
  return /*#__PURE__*/React.createElement(PhosphorIcon, {
20745
20745
  icon: caretRight,
20746
20746
  style: iconStyle
20747
20747
  });
20748
20748
  }
20749
- const styles$G = StyleSheet.create({
20749
+ const styles$F = StyleSheet.create({
20750
20750
  collapsed: {
20751
20751
  transition: ".15s"
20752
20752
  },
@@ -20779,16 +20779,16 @@ class TexErrorView extends React.Component {
20779
20779
  showErrors
20780
20780
  } = this.state;
20781
20781
  return /*#__PURE__*/React.createElement(View, {
20782
- style: styles$F.errorContainer
20782
+ style: styles$E.errorContainer
20783
20783
  }, /*#__PURE__*/React.createElement(View, {
20784
- style: styles$F.title,
20784
+ style: styles$E.title,
20785
20785
  onClick: this.handleToggleTexErrors
20786
20786
  }, /*#__PURE__*/React.createElement(ToggleableCaret, {
20787
20787
  isExpanded: showErrors
20788
20788
  }), "\xA0 TeX Errors (", errorList.length, ")"), showErrors && /*#__PURE__*/React.createElement(View, {
20789
- style: styles$F.errorExplanation
20789
+ style: styles$E.errorExplanation
20790
20790
  }, "If your math doesn't display correctly, these errors might help you troubleshoot. Message #content-kitchen for help."), showErrors && errorList.map((e, index) => /*#__PURE__*/React.createElement(View, {
20791
- style: styles$F.error,
20791
+ style: styles$E.error,
20792
20792
  key: index
20793
20793
  }, /*#__PURE__*/React.createElement(View, {
20794
20794
  style: {
@@ -20797,7 +20797,7 @@ class TexErrorView extends React.Component {
20797
20797
  }, e.math), /*#__PURE__*/React.createElement(View, null, e.message))));
20798
20798
  }
20799
20799
  }
20800
- const styles$F = StyleSheet.create({
20800
+ const styles$E = StyleSheet.create({
20801
20801
  title: {
20802
20802
  backgroundColor: "#eee",
20803
20803
  fontSize: "1.25em",
@@ -24591,7 +24591,7 @@ class SimpleButton extends React.Component {
24591
24591
  } = _this$props,
24592
24592
  otherProps = _objectWithoutPropertiesLoose(_this$props, _excluded$3);
24593
24593
  return /*#__PURE__*/React.createElement("div", _extends({
24594
- className: css(styles$E.baseButton, color === "green" && styles$E.green, color === "orange" && styles$E.orange),
24594
+ className: css(styles$D.baseButton, color === "green" && styles$D.green, color === "orange" && styles$D.orange),
24595
24595
  onClick: onClick
24596
24596
  }, otherProps), children);
24597
24597
  }
@@ -24606,7 +24606,7 @@ SimpleButton.defaultProps = {
24606
24606
  color: "green",
24607
24607
  onClick: () => {}
24608
24608
  };
24609
- const styles$E = StyleSheet.create({
24609
+ const styles$D = StyleSheet.create({
24610
24610
  baseButton: {
24611
24611
  top: "0",
24612
24612
  fontSize: "11px",
@@ -24826,23 +24826,23 @@ const LeafContainer = ({
24826
24826
  }) => {
24827
24827
  const hasPreviewHeading = shape.type === "content" || shape.type === "hint";
24828
24828
  const previewHeading = hasPreviewHeading && /*#__PURE__*/React.createElement("div", {
24829
- className: css(styles$D.containerHeader)
24829
+ className: css(styles$C.containerHeader)
24830
24830
  }, /*#__PURE__*/React.createElement(Header, {
24831
24831
  depth: path.length,
24832
- className: css(styles$D.containerTitle)
24832
+ className: css(styles$C.containerTitle)
24833
24833
  }, capitalize(name)));
24834
24834
  return /*#__PURE__*/React.createElement("div", {
24835
- className: css(styles$D.container)
24835
+ className: css(styles$C.container)
24836
24836
  }, /*#__PURE__*/React.createElement("span", {
24837
- className: css(styles$D.row, styles$D.rowHeading)
24837
+ className: css(styles$C.row, styles$C.rowHeading)
24838
24838
  }, /*#__PURE__*/React.createElement("div", {
24839
- className: css(styles$D.columnLeft)
24839
+ className: css(styles$C.columnLeft)
24840
24840
  }, /*#__PURE__*/React.createElement("div", {
24841
- className: "pod-title " + css(styles$D.containerHeader)
24841
+ className: "pod-title " + css(styles$C.containerHeader)
24842
24842
  }, /*#__PURE__*/React.createElement("div", {
24843
- className: css(styles$D.containerTitle)
24843
+ className: css(styles$C.containerTitle)
24844
24844
  }, capitalize(name)), controls)), /*#__PURE__*/React.createElement("div", {
24845
- className: css(styles$D.columnRight)
24845
+ className: css(styles$C.columnRight)
24846
24846
  }, previewHeading)), children);
24847
24847
  };
24848
24848
  const ArrayContainer = props => {
@@ -24855,11 +24855,11 @@ const ArrayContainer = props => {
24855
24855
  actions
24856
24856
  } = props;
24857
24857
  return /*#__PURE__*/React.createElement("div", {
24858
- className: css(styles$D.container)
24858
+ className: css(styles$C.container)
24859
24859
  }, controls && /*#__PURE__*/React.createElement("div", {
24860
- className: css(styles$D.columnLeft, styles$D.containerHeader)
24860
+ className: css(styles$C.columnLeft, styles$C.containerHeader)
24861
24861
  }, controls), /*#__PURE__*/React.createElement("div", null, children), /*#__PURE__*/React.createElement("div", {
24862
- className: css(styles$D.columnLeft)
24862
+ className: css(styles$C.columnLeft)
24863
24863
  }, /*#__PURE__*/React.createElement("a", {
24864
24864
  href: "javascript:void 0",
24865
24865
  onClick: () => actions.addArrayElement(path, shape.elementShape)
@@ -24872,28 +24872,28 @@ const ObjectContainer = ({
24872
24872
  path
24873
24873
  }) => {
24874
24874
  const headingEditor = /*#__PURE__*/React.createElement("div", {
24875
- className: css(styles$D.containerHeader)
24875
+ className: css(styles$C.containerHeader)
24876
24876
  }, /*#__PURE__*/React.createElement(Header, {
24877
24877
  depth: path.length,
24878
- className: css(styles$D.containerTitle)
24878
+ className: css(styles$C.containerTitle)
24879
24879
  }, capitalize(name)), controls);
24880
24880
  const headingPreview = (name || controls) && /*#__PURE__*/React.createElement("div", {
24881
- className: css(styles$D.containerHeader, styles$D.previewCollectionHeader)
24881
+ className: css(styles$C.containerHeader, styles$C.previewCollectionHeader)
24882
24882
  }, /*#__PURE__*/React.createElement(Header, {
24883
24883
  depth: path.length,
24884
- className: css(styles$D.containerTitle)
24884
+ className: css(styles$C.containerTitle)
24885
24885
  }, capitalize(name)));
24886
24886
  const hasBothHeadings = headingEditor && headingPreview;
24887
24887
  return /*#__PURE__*/React.createElement("div", {
24888
- className: css(styles$D.container)
24888
+ className: css(styles$C.container)
24889
24889
  }, hasBothHeadings && /*#__PURE__*/React.createElement("span", {
24890
- className: css(styles$D.row)
24890
+ className: css(styles$C.row)
24891
24891
  }, /*#__PURE__*/React.createElement("div", {
24892
- className: css(styles$D.columnLeft)
24892
+ className: css(styles$C.columnLeft)
24893
24893
  }, headingEditor), /*#__PURE__*/React.createElement("div", {
24894
- className: css(styles$D.columnRight)
24894
+ className: css(styles$C.columnRight)
24895
24895
  }, headingPreview)), /*#__PURE__*/React.createElement("div", {
24896
- className: css(path.length > 0 && styles$D.contentIndent)
24896
+ className: css(path.length > 0 && styles$C.contentIndent)
24897
24897
  }, children));
24898
24898
  };
24899
24899
 
@@ -25016,11 +25016,11 @@ const ItemNodeContent = withStickiness(props => {
25016
25016
  className: "framework-perseus"
25017
25017
  }, lens(renderers).get(path));
25018
25018
  return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("div", {
25019
- className: css(styles$D.row)
25019
+ className: css(styles$C.row)
25020
25020
  }, /*#__PURE__*/React.createElement("div", {
25021
- className: css(styles$D.columnLeft)
25021
+ className: css(styles$C.columnLeft)
25022
25022
  }, /*#__PURE__*/React.createElement("div", {
25023
- className: css(sticky && styles$D.sticky)
25023
+ className: css(sticky && styles$C.sticky)
25024
25024
  },
25025
25025
  /*#__PURE__*/
25026
25026
  // @ts-expect-error - TS2769 - No overload matches this call.
@@ -25028,9 +25028,9 @@ const ItemNodeContent = withStickiness(props => {
25028
25028
  onChange: newVal => actions.mergeValueAtPath(path, newVal),
25029
25029
  apiOptions: apiOptions
25030
25030
  })))), /*#__PURE__*/React.createElement("div", {
25031
- className: css(styles$D.columnRight)
25031
+ className: css(styles$C.columnRight)
25032
25032
  }, /*#__PURE__*/React.createElement("div", {
25033
- className: css(sticky && styles$D.sticky)
25033
+ className: css(sticky && styles$C.sticky)
25034
25034
  }, preview))));
25035
25035
  });
25036
25036
  const HintNodeContent = withStickiness(props => {
@@ -25046,13 +25046,13 @@ const HintNodeContent = withStickiness(props => {
25046
25046
  className: "framework-perseus"
25047
25047
  }, lens(renderers).get(path));
25048
25048
  return /*#__PURE__*/React.createElement("div", {
25049
- className: css(styles$D.row)
25049
+ className: css(styles$C.row)
25050
25050
  }, /*#__PURE__*/React.createElement("div", {
25051
- className: css(styles$D.columnLeft)
25051
+ className: css(styles$C.columnLeft)
25052
25052
  }, /*#__PURE__*/React.createElement("div", {
25053
- className: css(sticky && styles$D.sticky)
25053
+ className: css(sticky && styles$C.sticky)
25054
25054
  }, /*#__PURE__*/React.createElement(HintEditor, _extends({}, data, {
25055
- className: css(styles$D.hintEditor),
25055
+ className: css(styles$C.hintEditor),
25056
25056
  onChange: newVal => actions.mergeValueAtPath(path, newVal),
25057
25057
  apiOptions: apiOptions,
25058
25058
  showTitle: false,
@@ -25067,9 +25067,9 @@ const HintNodeContent = withStickiness(props => {
25067
25067
  isFirst: true,
25068
25068
  isLast: true
25069
25069
  })))), /*#__PURE__*/React.createElement("div", {
25070
- className: css(styles$D.columnRight)
25070
+ className: css(styles$C.columnRight)
25071
25071
  }, /*#__PURE__*/React.createElement("div", {
25072
- className: css(sticky && styles$D.sticky)
25072
+ className: css(sticky && styles$C.sticky)
25073
25073
  }, preview)));
25074
25074
  });
25075
25075
  const TagsNodeContent = props => {
@@ -25086,9 +25086,9 @@ const TagsNodeContent = props => {
25086
25086
  return null;
25087
25087
  }
25088
25088
  return /*#__PURE__*/React.createElement("div", {
25089
- className: css(styles$D.columnLeft)
25089
+ className: css(styles$C.columnLeft)
25090
25090
  }, /*#__PURE__*/React.createElement("div", {
25091
- className: css(styles$D.tagsEditor)
25091
+ className: css(styles$C.tagsEditor)
25092
25092
  }, /*#__PURE__*/React.createElement(GroupMetadataEditor, {
25093
25093
  value: data,
25094
25094
  onChange: newVal => actions.setValueAtPath(path, newVal),
@@ -25119,23 +25119,23 @@ const ArrayNodeContent = props => {
25119
25119
  const subpath = path.concat(i);
25120
25120
  const controls = [i > 0 && /*#__PURE__*/React.createElement("div", {
25121
25121
  key: "moveArrayElementUp",
25122
- className: css(styles$D.control)
25122
+ className: css(styles$C.control)
25123
25123
  }, /*#__PURE__*/React.createElement(SimpleButton, {
25124
25124
  color: "orange",
25125
25125
  title: "Move up",
25126
25126
  onClick: () => actions.moveArrayElementUp(subpath)
25127
25127
  }, /*#__PURE__*/React.createElement("div", {
25128
- className: css(styles$D.verticalFlip)
25128
+ className: css(styles$C.verticalFlip)
25129
25129
  }, /*#__PURE__*/React.createElement(InlineIcon$6, iconChevronDown)))), i < data.length - 1 && /*#__PURE__*/React.createElement("div", {
25130
25130
  key: "moveArrayElementDown",
25131
- className: css(styles$D.control)
25131
+ className: css(styles$C.control)
25132
25132
  }, /*#__PURE__*/React.createElement(SimpleButton, {
25133
25133
  color: "orange",
25134
25134
  title: "Move down",
25135
25135
  onClick: () => actions.moveArrayElementDown(subpath)
25136
25136
  }, /*#__PURE__*/React.createElement(InlineIcon$6, iconChevronDown))), /*#__PURE__*/React.createElement("div", {
25137
25137
  key: "removeArrayElement",
25138
- className: css(styles$D.control)
25138
+ className: css(styles$C.control)
25139
25139
  }, /*#__PURE__*/React.createElement(SimpleButton, {
25140
25140
  color: "orange",
25141
25141
  title: "Delete",
@@ -25143,7 +25143,7 @@ const ArrayNodeContent = props => {
25143
25143
  }, /*#__PURE__*/React.createElement(InlineIcon$6, iconTrash$4)))];
25144
25144
  return /*#__PURE__*/React.createElement("div", {
25145
25145
  key: i,
25146
- className: css(styles$D.arrayElement, !elementIsLeaf && styles$D.arrayElementAndNotLeaf)
25146
+ className: css(styles$C.arrayElement, !elementIsLeaf && styles$C.arrayElementAndNotLeaf)
25147
25147
  }, /*#__PURE__*/React.createElement(NodeContainer, _extends({}, otherProps, {
25148
25148
  key: i,
25149
25149
  shape: shape.elementShape,
@@ -25169,7 +25169,7 @@ const ObjectNodeContent = props => {
25169
25169
  // made sense to the shape's author is the order in which we'll iterate :)
25170
25170
  const children = Object.keys(shape.shape).map(subkey => /*#__PURE__*/React.createElement("div", {
25171
25171
  key: subkey,
25172
- className: css(styles$D.objectElement)
25172
+ className: css(styles$C.objectElement)
25173
25173
  }, /*#__PURE__*/React.createElement(NodeContainer, _extends({}, otherProps, {
25174
25174
  shape: shape.shape[subkey],
25175
25175
  data: data[subkey],
@@ -25336,7 +25336,7 @@ class MultiRendererEditor extends React.Component {
25336
25336
  }, this._renderContent());
25337
25337
  }
25338
25338
  }
25339
- const styles$D = StyleSheet.create({
25339
+ const styles$C = StyleSheet.create({
25340
25340
  // This is used in a number of places throughout this file.
25341
25341
  container: {},
25342
25342
  // eslint-disable-next-line react-native/no-unused-styles
@@ -25438,116 +25438,6 @@ const styles$D = StyleSheet.create({
25438
25438
  }
25439
25439
  });
25440
25440
 
25441
- /* eslint-disable react/no-unsafe */
25442
- const StatefulArticleEditor = createReactClass({
25443
- displayName: "StatefulArticleEditor",
25444
- getInitialState: function () {
25445
- return _({}).extend(this.props, {
25446
- mode: "edit",
25447
- onChange: this.handleChange,
25448
- ref: "editor",
25449
- screen: "phone"
25450
- });
25451
- },
25452
- componentDidMount: function () {
25453
- // TODO(scottgrant): This is a hack to remove the deprecated call to
25454
- // this.isMounted() but is still considered an anti-pattern.
25455
- this._isMounted = true;
25456
- },
25457
- // getInitialState isn't called if the react component is re-rendered
25458
- // in-place on the dom, in which case this is called instead, so we
25459
- // need to update the state here.
25460
- // (This component is currently re-rendered by the "Add image" button.)
25461
- UNSAFE_componentWillReceiveProps: function (nextProps) {
25462
- // be careful not to overwrite our onChange and ref
25463
- this.setState(_(nextProps).omit("onChange", "ref"));
25464
- },
25465
- componentWillUnmount: function () {
25466
- this._isMounted = false;
25467
- },
25468
- getSaveWarnings: function () {
25469
- // eslint-disable-next-line react/no-string-refs
25470
- return this.refs.editor.getSaveWarnings();
25471
- },
25472
- serialize: function () {
25473
- // eslint-disable-next-line react/no-string-refs
25474
- return this.refs.editor.serialize();
25475
- },
25476
- handleChange: function (newState, cb) {
25477
- if (this._isMounted) {
25478
- this.setState(newState, cb);
25479
- }
25480
- },
25481
- scorePreview: function () {
25482
- // eslint-disable-next-line react/no-string-refs
25483
- return this.refs.editor.scorePreview();
25484
- },
25485
- render: function () {
25486
- const {
25487
- mode,
25488
- screen
25489
- } = this.state;
25490
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
25491
- style: styles$C.controlBar
25492
- }, /*#__PURE__*/React.createElement("span", {
25493
- style: styles$C.controls
25494
- }, "Mode:", " ", /*#__PURE__*/React.createElement("span", {
25495
- onClick: () => this.setState({
25496
- mode: "edit"
25497
- }),
25498
- style: mode === "edit" ? styles$C.controlSelected : styles$C.control
25499
- }, "EDIT"), " | ", /*#__PURE__*/React.createElement("span", {
25500
- onClick: () => this.setState({
25501
- mode: "preview"
25502
- }),
25503
- style: mode === "preview" ? styles$C.controlSelected : styles$C.control
25504
- }, "PREVIEW"), " | ", /*#__PURE__*/React.createElement("span", {
25505
- onClick: () => this.setState({
25506
- mode: "json"
25507
- }),
25508
- style: mode === "json" ? styles$C.controlSelected : styles$C.control
25509
- }, "JSON")), /*#__PURE__*/React.createElement("span", {
25510
- style: styles$C.controls
25511
- }, "Screen:", " ", /*#__PURE__*/React.createElement("span", {
25512
- onClick: () => this.setState({
25513
- screen: "phone"
25514
- }),
25515
- style: screen === "phone" ? styles$C.controlSelected : styles$C.control
25516
- }, "PHONE"), " | ", /*#__PURE__*/React.createElement("span", {
25517
- onClick: () => this.setState({
25518
- screen: "tablet"
25519
- }),
25520
- style: screen === "tablet" ? styles$C.controlSelected : styles$C.control
25521
- }, "TABLET"), " | ", /*#__PURE__*/React.createElement("span", {
25522
- onClick: () => this.setState({
25523
- screen: "desktop"
25524
- }),
25525
- style: screen === "desktop" ? styles$C.controlSelected : styles$C.control
25526
- }, "DESKTOP"))), /*#__PURE__*/React.createElement("div", {
25527
- style: styles$C.editor
25528
- }, /*#__PURE__*/React.createElement(ArticleEditor, this.state)));
25529
- }
25530
- });
25531
- const styles$C = {
25532
- controlBar: {
25533
- marginBottom: 25,
25534
- marginTop: 5
25535
- },
25536
- controls: {
25537
- marginRight: 10
25538
- },
25539
- controlSelected: {
25540
- cursor: "default",
25541
- fontWeight: 700
25542
- },
25543
- control: {
25544
- cursor: "pointer"
25545
- },
25546
- editor: {
25547
- marginTop: -20
25548
- }
25549
- };
25550
-
25551
25441
  /* eslint-disable react/no-unsafe, react/sort-comp */
25552
25442
 
25553
25443
  /* Renders an EditorPage (or an ArticleEditor) as a non-controlled component.
@@ -29157,7 +29047,7 @@ class InteractionEditor extends React.Component {
29157
29047
  gridStep: this.props.graph.gridStep,
29158
29048
  markings: this.props.graph.markings,
29159
29049
  onChange: this._updateGraphProps
29160
- }), this.props.graph.valid !== true && /*#__PURE__*/React.createElement("div", null, this.props.graph.valid)), _.map(this.props.elements, function (element, n) {
29050
+ }), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.graph.valid !== true && /*#__PURE__*/React.createElement("div", null, this.props.graph.valid))), _.map(this.props.elements, function (element, n) {
29161
29051
  if (element.type === "movable-point") {
29162
29052
  return /*#__PURE__*/React.createElement(ElementContainer, {
29163
29053
  title: /*#__PURE__*/React.createElement("span", null, "Movable point", " ", /*#__PURE__*/React.createElement(TeX, null, "(x_{" + element.options.varSubscript + "}, y_{" + element.options.varSubscript + "})"))
@@ -29753,7 +29643,7 @@ const LockedFigureSelect = props => {
29753
29643
  key: `${id}-${figureType}`,
29754
29644
  label: figureType,
29755
29645
  onClick: () => onChange(figureType)
29756
- }, figureType))));
29646
+ }))));
29757
29647
  };
29758
29648
  const styles$x = StyleSheet.create({
29759
29649
  container: {
@@ -29988,7 +29878,7 @@ const ColorSelect = props => {
29988
29878
  color: colorName,
29989
29879
  decorative: true
29990
29880
  })
29991
- }, colorName)))));
29881
+ })))));
29992
29882
  };
29993
29883
  const styles$s = StyleSheet.create({
29994
29884
  row: {
@@ -30183,7 +30073,7 @@ const LockedEllipseSettings = props => {
30183
30073
  key: option,
30184
30074
  value: option,
30185
30075
  label: option
30186
- }, option))))), /*#__PURE__*/React.createElement(LabelMedium, {
30076
+ }))))), /*#__PURE__*/React.createElement(LabelMedium, {
30187
30077
  tag: "label",
30188
30078
  style: styles$p.row
30189
30079
  }, "stroke", /*#__PURE__*/React.createElement(Strut, {
@@ -30199,10 +30089,10 @@ const LockedEllipseSettings = props => {
30199
30089
  }, /*#__PURE__*/React.createElement(OptionItem, {
30200
30090
  value: "solid",
30201
30091
  label: "solid"
30202
- }, "solid"), /*#__PURE__*/React.createElement(OptionItem, {
30092
+ }), /*#__PURE__*/React.createElement(OptionItem, {
30203
30093
  value: "dashed",
30204
30094
  label: "dashed"
30205
- }, "dashed"))), /*#__PURE__*/React.createElement(LockedFigureSettingsActions, {
30095
+ }))), /*#__PURE__*/React.createElement(LockedFigureSettingsActions, {
30206
30096
  showM2Features: props.showM2Features,
30207
30097
  figureType: props.type,
30208
30098
  onMove: onMove,
@@ -30670,7 +30560,7 @@ const LockedPolygonSettings = props => {
30670
30560
  key: option,
30671
30561
  value: option,
30672
30562
  label: option
30673
- }, option))))), /*#__PURE__*/React.createElement(LabelMedium, {
30563
+ }))))), /*#__PURE__*/React.createElement(LabelMedium, {
30674
30564
  tag: "label",
30675
30565
  style: [styles$i.row, styles$i.spaceUnder]
30676
30566
  }, "stroke", /*#__PURE__*/React.createElement(Strut, {
@@ -30686,10 +30576,10 @@ const LockedPolygonSettings = props => {
30686
30576
  }, /*#__PURE__*/React.createElement(OptionItem, {
30687
30577
  value: "solid",
30688
30578
  label: "solid"
30689
- }, "solid"), /*#__PURE__*/React.createElement(OptionItem, {
30579
+ }), /*#__PURE__*/React.createElement(OptionItem, {
30690
30580
  value: "dashed",
30691
30581
  label: "dashed"
30692
- }, "dashed"))), /*#__PURE__*/React.createElement(LabeledSwitch, {
30582
+ }))), /*#__PURE__*/React.createElement(LabeledSwitch, {
30693
30583
  label: "show vertices",
30694
30584
  checked: showVertices,
30695
30585
  onChange: newValue => onChangeProps({
@@ -36397,5 +36287,5 @@ Widgets.registerWidgets(AllWidgets);
36397
36287
  Widgets.replaceDeprecatedWidgets();
36398
36288
  Widgets.replaceDeprecatedEditors();
36399
36289
 
36400
- export { AllEditors, AllWidgets, ArticleDiff, ArticleEditor, DeviceFramer, Editor, EditorPage, IframeContentRenderer, ItemDiff, MultiRendererEditor, StatefulArticleEditor, StatefulEditorPage, StructuredItemDiff, ViewportResizer, i18n, libVersion };
36290
+ export { AllEditors, AllWidgets, ArticleDiff, ArticleEditor, DeviceFramer, Editor, EditorPage, IframeContentRenderer, ItemDiff, MultiRendererEditor, StatefulEditorPage, StructuredItemDiff, ViewportResizer, i18n, libVersion };
36401
36291
  //# sourceMappingURL=index.js.map