@khanacademy/perseus-editor 11.0.2 → 11.1.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.
- package/dist/components/start-coords-circle.d.ts +11 -0
- package/dist/es/index.js +264 -179
- package/dist/es/index.js.map +1 -1
- package/dist/index.js +264 -178
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -83,7 +83,7 @@ var arrowCounterClockwise__default = /*#__PURE__*/_interopDefaultLegacy(arrowCou
|
|
|
83
83
|
|
|
84
84
|
// This file is processed by a Rollup plugin (replace) to inject the production
|
|
85
85
|
const libName = "@khanacademy/perseus-editor";
|
|
86
|
-
const libVersion = "11.0
|
|
86
|
+
const libVersion = "11.1.0";
|
|
87
87
|
perseusCore.addLibraryVersionToPerseusDebug(libName, libVersion);
|
|
88
88
|
|
|
89
89
|
function _extends() {
|
|
@@ -278,13 +278,13 @@ class SectionControlButton extends React__namespace.Component {
|
|
|
278
278
|
role: "button",
|
|
279
279
|
hideDefaultFocusRing: true,
|
|
280
280
|
"aria-label": title,
|
|
281
|
-
style: styles$
|
|
281
|
+
style: styles$J.button
|
|
282
282
|
}, _ref => {
|
|
283
283
|
return /*#__PURE__*/React__namespace.createElement(InlineIcon$a, icon);
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
const styles$
|
|
287
|
+
const styles$J = aphrodite.StyleSheet.create({
|
|
288
288
|
button: {
|
|
289
289
|
backgroundColor: wonderBlocksTokens.color.gold,
|
|
290
290
|
margin: 2,
|
|
@@ -20789,13 +20789,13 @@ class WidgetSelect extends React__namespace.Component {
|
|
|
20789
20789
|
* that collapse a region.
|
|
20790
20790
|
*/
|
|
20791
20791
|
function ToggleableCaret(props) {
|
|
20792
|
-
const iconStyle = props.isExpanded ? styles$
|
|
20792
|
+
const iconStyle = props.isExpanded ? styles$I.expanded : styles$I.collapsed;
|
|
20793
20793
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksIcon.PhosphorIcon, {
|
|
20794
20794
|
icon: caretRight__default["default"],
|
|
20795
20795
|
style: iconStyle
|
|
20796
20796
|
});
|
|
20797
20797
|
}
|
|
20798
|
-
const styles$
|
|
20798
|
+
const styles$I = aphrodite.StyleSheet.create({
|
|
20799
20799
|
collapsed: {
|
|
20800
20800
|
transition: ".15s"
|
|
20801
20801
|
},
|
|
@@ -20825,16 +20825,16 @@ class TexErrorView extends React__namespace.Component {
|
|
|
20825
20825
|
showErrors
|
|
20826
20826
|
} = this.state;
|
|
20827
20827
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
20828
|
-
style: styles$
|
|
20828
|
+
style: styles$H.errorContainer
|
|
20829
20829
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
20830
|
-
style: styles$
|
|
20830
|
+
style: styles$H.title,
|
|
20831
20831
|
onClick: this.handleToggleTexErrors
|
|
20832
20832
|
}, /*#__PURE__*/React__namespace.createElement(ToggleableCaret, {
|
|
20833
20833
|
isExpanded: showErrors
|
|
20834
20834
|
}), "\xA0 TeX Errors (", errorList.length, ")"), showErrors && /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
20835
|
-
style: styles$
|
|
20835
|
+
style: styles$H.errorExplanation
|
|
20836
20836
|
}, "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__namespace.createElement(wonderBlocksCore.View, {
|
|
20837
|
-
style: styles$
|
|
20837
|
+
style: styles$H.error,
|
|
20838
20838
|
key: index
|
|
20839
20839
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
20840
20840
|
style: {
|
|
@@ -20843,7 +20843,7 @@ class TexErrorView extends React__namespace.Component {
|
|
|
20843
20843
|
}, e.math), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, null, e.message))));
|
|
20844
20844
|
}
|
|
20845
20845
|
}
|
|
20846
|
-
const styles$
|
|
20846
|
+
const styles$H = aphrodite.StyleSheet.create({
|
|
20847
20847
|
title: {
|
|
20848
20848
|
backgroundColor: "#eee",
|
|
20849
20849
|
fontSize: "1.25em",
|
|
@@ -24593,12 +24593,12 @@ class SimpleButton extends React__namespace.Component {
|
|
|
24593
24593
|
...otherProps
|
|
24594
24594
|
} = this.props;
|
|
24595
24595
|
return /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
24596
|
-
className: aphrodite.css(styles$
|
|
24596
|
+
className: aphrodite.css(styles$G.baseButton, color === "green" && styles$G.green, color === "orange" && styles$G.orange),
|
|
24597
24597
|
onClick: onClick
|
|
24598
24598
|
}, otherProps), children);
|
|
24599
24599
|
}
|
|
24600
24600
|
}
|
|
24601
|
-
const styles$
|
|
24601
|
+
const styles$G = aphrodite.StyleSheet.create({
|
|
24602
24602
|
baseButton: {
|
|
24603
24603
|
top: "0",
|
|
24604
24604
|
fontSize: "11px",
|
|
@@ -24811,23 +24811,23 @@ const LeafContainer = _ref2 => {
|
|
|
24811
24811
|
} = _ref2;
|
|
24812
24812
|
const hasPreviewHeading = shape.type === "content" || shape.type === "hint";
|
|
24813
24813
|
const previewHeading = hasPreviewHeading && /*#__PURE__*/React__namespace.createElement("div", {
|
|
24814
|
-
className: aphrodite.css(styles$
|
|
24814
|
+
className: aphrodite.css(styles$F.containerHeader)
|
|
24815
24815
|
}, /*#__PURE__*/React__namespace.createElement(Header, {
|
|
24816
24816
|
depth: path.length,
|
|
24817
|
-
className: aphrodite.css(styles$
|
|
24817
|
+
className: aphrodite.css(styles$F.containerTitle)
|
|
24818
24818
|
}, capitalize(name)));
|
|
24819
24819
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
24820
|
-
className: aphrodite.css(styles$
|
|
24820
|
+
className: aphrodite.css(styles$F.container)
|
|
24821
24821
|
}, /*#__PURE__*/React__namespace.createElement("span", {
|
|
24822
|
-
className: aphrodite.css(styles$
|
|
24822
|
+
className: aphrodite.css(styles$F.row, styles$F.rowHeading)
|
|
24823
24823
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
24824
|
-
className: aphrodite.css(styles$
|
|
24824
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
24825
24825
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
24826
|
-
className: "pod-title " + aphrodite.css(styles$
|
|
24826
|
+
className: "pod-title " + aphrodite.css(styles$F.containerHeader)
|
|
24827
24827
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
24828
|
-
className: aphrodite.css(styles$
|
|
24828
|
+
className: aphrodite.css(styles$F.containerTitle)
|
|
24829
24829
|
}, capitalize(name)), controls)), /*#__PURE__*/React__namespace.createElement("div", {
|
|
24830
|
-
className: aphrodite.css(styles$
|
|
24830
|
+
className: aphrodite.css(styles$F.columnRight)
|
|
24831
24831
|
}, previewHeading)), children);
|
|
24832
24832
|
};
|
|
24833
24833
|
const ArrayContainer = props => {
|
|
@@ -24840,11 +24840,11 @@ const ArrayContainer = props => {
|
|
|
24840
24840
|
actions
|
|
24841
24841
|
} = props;
|
|
24842
24842
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
24843
|
-
className: aphrodite.css(styles$
|
|
24843
|
+
className: aphrodite.css(styles$F.container)
|
|
24844
24844
|
}, controls && /*#__PURE__*/React__namespace.createElement("div", {
|
|
24845
|
-
className: aphrodite.css(styles$
|
|
24845
|
+
className: aphrodite.css(styles$F.columnLeft, styles$F.containerHeader)
|
|
24846
24846
|
}, controls), /*#__PURE__*/React__namespace.createElement("div", null, children), /*#__PURE__*/React__namespace.createElement("div", {
|
|
24847
|
-
className: aphrodite.css(styles$
|
|
24847
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
24848
24848
|
}, /*#__PURE__*/React__namespace.createElement("a", {
|
|
24849
24849
|
href: "javascript:void 0",
|
|
24850
24850
|
onClick: () => actions.addArrayElement(path, shape.elementShape)
|
|
@@ -24858,28 +24858,28 @@ const ObjectContainer = _ref3 => {
|
|
|
24858
24858
|
path
|
|
24859
24859
|
} = _ref3;
|
|
24860
24860
|
const headingEditor = /*#__PURE__*/React__namespace.createElement("div", {
|
|
24861
|
-
className: aphrodite.css(styles$
|
|
24861
|
+
className: aphrodite.css(styles$F.containerHeader)
|
|
24862
24862
|
}, /*#__PURE__*/React__namespace.createElement(Header, {
|
|
24863
24863
|
depth: path.length,
|
|
24864
|
-
className: aphrodite.css(styles$
|
|
24864
|
+
className: aphrodite.css(styles$F.containerTitle)
|
|
24865
24865
|
}, capitalize(name)), controls);
|
|
24866
24866
|
const headingPreview = (name || controls) && /*#__PURE__*/React__namespace.createElement("div", {
|
|
24867
|
-
className: aphrodite.css(styles$
|
|
24867
|
+
className: aphrodite.css(styles$F.containerHeader, styles$F.previewCollectionHeader)
|
|
24868
24868
|
}, /*#__PURE__*/React__namespace.createElement(Header, {
|
|
24869
24869
|
depth: path.length,
|
|
24870
|
-
className: aphrodite.css(styles$
|
|
24870
|
+
className: aphrodite.css(styles$F.containerTitle)
|
|
24871
24871
|
}, capitalize(name)));
|
|
24872
24872
|
const hasBothHeadings = headingEditor && headingPreview;
|
|
24873
24873
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
24874
|
-
className: aphrodite.css(styles$
|
|
24874
|
+
className: aphrodite.css(styles$F.container)
|
|
24875
24875
|
}, hasBothHeadings && /*#__PURE__*/React__namespace.createElement("span", {
|
|
24876
|
-
className: aphrodite.css(styles$
|
|
24876
|
+
className: aphrodite.css(styles$F.row)
|
|
24877
24877
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
24878
|
-
className: aphrodite.css(styles$
|
|
24878
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
24879
24879
|
}, headingEditor), /*#__PURE__*/React__namespace.createElement("div", {
|
|
24880
|
-
className: aphrodite.css(styles$
|
|
24880
|
+
className: aphrodite.css(styles$F.columnRight)
|
|
24881
24881
|
}, headingPreview)), /*#__PURE__*/React__namespace.createElement("div", {
|
|
24882
|
-
className: aphrodite.css(path.length > 0 && styles$
|
|
24882
|
+
className: aphrodite.css(path.length > 0 && styles$F.contentIndent)
|
|
24883
24883
|
}, children));
|
|
24884
24884
|
};
|
|
24885
24885
|
|
|
@@ -24999,11 +24999,11 @@ const ItemNodeContent = withStickiness(props => {
|
|
|
24999
24999
|
className: "framework-perseus"
|
|
25000
25000
|
}, lens(renderers).get(path));
|
|
25001
25001
|
return /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25002
|
-
className: aphrodite.css(styles$
|
|
25002
|
+
className: aphrodite.css(styles$F.row)
|
|
25003
25003
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25004
|
-
className: aphrodite.css(styles$
|
|
25004
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
25005
25005
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25006
|
-
className: aphrodite.css(sticky && styles$
|
|
25006
|
+
className: aphrodite.css(sticky && styles$F.sticky)
|
|
25007
25007
|
},
|
|
25008
25008
|
/*#__PURE__*/
|
|
25009
25009
|
// @ts-expect-error - TS2769 - No overload matches this call.
|
|
@@ -25011,9 +25011,9 @@ const ItemNodeContent = withStickiness(props => {
|
|
|
25011
25011
|
onChange: newVal => actions.mergeValueAtPath(path, newVal),
|
|
25012
25012
|
apiOptions: apiOptions
|
|
25013
25013
|
})))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
25014
|
-
className: aphrodite.css(styles$
|
|
25014
|
+
className: aphrodite.css(styles$F.columnRight)
|
|
25015
25015
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25016
|
-
className: aphrodite.css(sticky && styles$
|
|
25016
|
+
className: aphrodite.css(sticky && styles$F.sticky)
|
|
25017
25017
|
}, preview))));
|
|
25018
25018
|
});
|
|
25019
25019
|
const HintNodeContent = withStickiness(props => {
|
|
@@ -25029,13 +25029,13 @@ const HintNodeContent = withStickiness(props => {
|
|
|
25029
25029
|
className: "framework-perseus"
|
|
25030
25030
|
}, lens(renderers).get(path));
|
|
25031
25031
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
25032
|
-
className: aphrodite.css(styles$
|
|
25032
|
+
className: aphrodite.css(styles$F.row)
|
|
25033
25033
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25034
|
-
className: aphrodite.css(styles$
|
|
25034
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
25035
25035
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25036
|
-
className: aphrodite.css(sticky && styles$
|
|
25036
|
+
className: aphrodite.css(sticky && styles$F.sticky)
|
|
25037
25037
|
}, /*#__PURE__*/React__namespace.createElement(HintEditor, _extends({}, data, {
|
|
25038
|
-
className: aphrodite.css(styles$
|
|
25038
|
+
className: aphrodite.css(styles$F.hintEditor),
|
|
25039
25039
|
onChange: newVal => actions.mergeValueAtPath(path, newVal),
|
|
25040
25040
|
apiOptions: apiOptions,
|
|
25041
25041
|
showTitle: false,
|
|
@@ -25050,9 +25050,9 @@ const HintNodeContent = withStickiness(props => {
|
|
|
25050
25050
|
isFirst: true,
|
|
25051
25051
|
isLast: true
|
|
25052
25052
|
})))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
25053
|
-
className: aphrodite.css(styles$
|
|
25053
|
+
className: aphrodite.css(styles$F.columnRight)
|
|
25054
25054
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25055
|
-
className: aphrodite.css(sticky && styles$
|
|
25055
|
+
className: aphrodite.css(sticky && styles$F.sticky)
|
|
25056
25056
|
}, preview)));
|
|
25057
25057
|
});
|
|
25058
25058
|
const TagsNodeContent = props => {
|
|
@@ -25069,9 +25069,9 @@ const TagsNodeContent = props => {
|
|
|
25069
25069
|
return null;
|
|
25070
25070
|
}
|
|
25071
25071
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
25072
|
-
className: aphrodite.css(styles$
|
|
25072
|
+
className: aphrodite.css(styles$F.columnLeft)
|
|
25073
25073
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25074
|
-
className: aphrodite.css(styles$
|
|
25074
|
+
className: aphrodite.css(styles$F.tagsEditor)
|
|
25075
25075
|
}, /*#__PURE__*/React__namespace.createElement(GroupMetadataEditor, {
|
|
25076
25076
|
value: data,
|
|
25077
25077
|
onChange: newVal => actions.setValueAtPath(path, newVal),
|
|
@@ -25102,23 +25102,23 @@ const ArrayNodeContent = props => {
|
|
|
25102
25102
|
const subpath = path.concat(i);
|
|
25103
25103
|
const controls = [i > 0 && /*#__PURE__*/React__namespace.createElement("div", {
|
|
25104
25104
|
key: "moveArrayElementUp",
|
|
25105
|
-
className: aphrodite.css(styles$
|
|
25105
|
+
className: aphrodite.css(styles$F.control)
|
|
25106
25106
|
}, /*#__PURE__*/React__namespace.createElement(SimpleButton, {
|
|
25107
25107
|
color: "orange",
|
|
25108
25108
|
title: "Move up",
|
|
25109
25109
|
onClick: () => actions.moveArrayElementUp(subpath)
|
|
25110
25110
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
25111
|
-
className: aphrodite.css(styles$
|
|
25111
|
+
className: aphrodite.css(styles$F.verticalFlip)
|
|
25112
25112
|
}, /*#__PURE__*/React__namespace.createElement(InlineIcon$5, iconChevronDown)))), i < data.length - 1 && /*#__PURE__*/React__namespace.createElement("div", {
|
|
25113
25113
|
key: "moveArrayElementDown",
|
|
25114
|
-
className: aphrodite.css(styles$
|
|
25114
|
+
className: aphrodite.css(styles$F.control)
|
|
25115
25115
|
}, /*#__PURE__*/React__namespace.createElement(SimpleButton, {
|
|
25116
25116
|
color: "orange",
|
|
25117
25117
|
title: "Move down",
|
|
25118
25118
|
onClick: () => actions.moveArrayElementDown(subpath)
|
|
25119
25119
|
}, /*#__PURE__*/React__namespace.createElement(InlineIcon$5, iconChevronDown))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
25120
25120
|
key: "removeArrayElement",
|
|
25121
|
-
className: aphrodite.css(styles$
|
|
25121
|
+
className: aphrodite.css(styles$F.control)
|
|
25122
25122
|
}, /*#__PURE__*/React__namespace.createElement(SimpleButton, {
|
|
25123
25123
|
color: "orange",
|
|
25124
25124
|
title: "Delete",
|
|
@@ -25126,7 +25126,7 @@ const ArrayNodeContent = props => {
|
|
|
25126
25126
|
}, /*#__PURE__*/React__namespace.createElement(InlineIcon$5, iconTrash$4)))];
|
|
25127
25127
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
25128
25128
|
key: i,
|
|
25129
|
-
className: aphrodite.css(styles$
|
|
25129
|
+
className: aphrodite.css(styles$F.arrayElement, !elementIsLeaf && styles$F.arrayElementAndNotLeaf)
|
|
25130
25130
|
}, /*#__PURE__*/React__namespace.createElement(NodeContainer, _extends({}, otherProps, {
|
|
25131
25131
|
key: i,
|
|
25132
25132
|
shape: shape.elementShape,
|
|
@@ -25152,7 +25152,7 @@ const ObjectNodeContent = props => {
|
|
|
25152
25152
|
// made sense to the shape's author is the order in which we'll iterate :)
|
|
25153
25153
|
const children = Object.keys(shape.shape).map(subkey => /*#__PURE__*/React__namespace.createElement("div", {
|
|
25154
25154
|
key: subkey,
|
|
25155
|
-
className: aphrodite.css(styles$
|
|
25155
|
+
className: aphrodite.css(styles$F.objectElement)
|
|
25156
25156
|
}, /*#__PURE__*/React__namespace.createElement(NodeContainer, _extends({}, otherProps, {
|
|
25157
25157
|
shape: shape.shape[subkey],
|
|
25158
25158
|
data: data[subkey],
|
|
@@ -25322,7 +25322,7 @@ class MultiRendererEditor extends React__namespace.Component {
|
|
|
25322
25322
|
}, this._renderContent());
|
|
25323
25323
|
}
|
|
25324
25324
|
}
|
|
25325
|
-
const styles$
|
|
25325
|
+
const styles$F = aphrodite.StyleSheet.create({
|
|
25326
25326
|
// This is used in a number of places throughout this file.
|
|
25327
25327
|
container: {},
|
|
25328
25328
|
// eslint-disable-next-line react-native/no-unused-styles
|
|
@@ -25821,7 +25821,7 @@ class CSProgramEditor extends React__namespace.Component {
|
|
|
25821
25821
|
|
|
25822
25822
|
/* eslint-disable @khanacademy/ts-no-error-suppressions */
|
|
25823
25823
|
const {
|
|
25824
|
-
TextInput: TextInput$
|
|
25824
|
+
TextInput: TextInput$9
|
|
25825
25825
|
} = perseus.components;
|
|
25826
25826
|
class DefinitionEditor extends React__namespace.Component {
|
|
25827
25827
|
static propTypes = {
|
|
@@ -25855,7 +25855,7 @@ class DefinitionEditor extends React__namespace.Component {
|
|
|
25855
25855
|
target: "_blank"
|
|
25856
25856
|
}, "Definition style guide"), /*#__PURE__*/React__namespace.createElement("div", {
|
|
25857
25857
|
className: "perseus-widget-row"
|
|
25858
|
-
}, /*#__PURE__*/React__namespace.createElement("label", null, "Word to be defined:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$
|
|
25858
|
+
}, /*#__PURE__*/React__namespace.createElement("label", null, "Word to be defined:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$9, {
|
|
25859
25859
|
value: this.props.togglePrompt
|
|
25860
25860
|
// @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.
|
|
25861
25861
|
,
|
|
@@ -26265,7 +26265,7 @@ class ExampleWidgetEditor extends React__namespace.Component {
|
|
|
26265
26265
|
|
|
26266
26266
|
/* eslint-disable @khanacademy/ts-no-error-suppressions */
|
|
26267
26267
|
const {
|
|
26268
|
-
TextInput: TextInput$
|
|
26268
|
+
TextInput: TextInput$8
|
|
26269
26269
|
} = perseus.components;
|
|
26270
26270
|
const defaultExplanationProps = {
|
|
26271
26271
|
showPrompt: "Explain",
|
|
@@ -26302,14 +26302,14 @@ class ExplanationEditor extends React__namespace.Component {
|
|
|
26302
26302
|
className: "perseus-widget-explanation-editor"
|
|
26303
26303
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
26304
26304
|
className: "perseus-widget-row"
|
|
26305
|
-
}, /*#__PURE__*/React__namespace.createElement("label", null, "Prompt to show explanation:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$
|
|
26305
|
+
}, /*#__PURE__*/React__namespace.createElement("label", null, "Prompt to show explanation:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$8, {
|
|
26306
26306
|
value: this.props.showPrompt
|
|
26307
26307
|
// @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.
|
|
26308
26308
|
,
|
|
26309
26309
|
onChange: this.change("showPrompt")
|
|
26310
26310
|
}))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
26311
26311
|
className: "perseus-widget-row"
|
|
26312
|
-
}, /*#__PURE__*/React__namespace.createElement("label", null, "Prompt to hide explanation:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$
|
|
26312
|
+
}, /*#__PURE__*/React__namespace.createElement("label", null, "Prompt to hide explanation:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$8, {
|
|
26313
26313
|
value: this.props.hidePrompt
|
|
26314
26314
|
// @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.
|
|
26315
26315
|
,
|
|
@@ -26515,7 +26515,8 @@ const SortableItem = createReactClass__default["default"]({
|
|
|
26515
26515
|
|
|
26516
26516
|
const {
|
|
26517
26517
|
InfoTip: InfoTip$i,
|
|
26518
|
-
PropCheckBox: PropCheckBox$a
|
|
26518
|
+
PropCheckBox: PropCheckBox$a,
|
|
26519
|
+
TextInput: TextInput$7
|
|
26519
26520
|
} = perseus.components;
|
|
26520
26521
|
|
|
26521
26522
|
// types for iterables
|
|
@@ -26635,7 +26636,20 @@ class ExpressionEditor extends React__namespace.Component {
|
|
|
26635
26636
|
className: "perseus-widget-expression-editor"
|
|
26636
26637
|
}, /*#__PURE__*/React__namespace.createElement("h3", {
|
|
26637
26638
|
className: "expression-editor-h3"
|
|
26638
|
-
}, "Global Options"), /*#__PURE__*/React__namespace.createElement("div",
|
|
26639
|
+
}, "Global Options"), /*#__PURE__*/React__namespace.createElement("div", {
|
|
26640
|
+
className: "perseus-widget-row"
|
|
26641
|
+
}, /*#__PURE__*/React__namespace.createElement("label", null, "Visible label:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$7, {
|
|
26642
|
+
value: this.props.visibleLabel,
|
|
26643
|
+
onChange: this.change("visibleLabel")
|
|
26644
|
+
})), /*#__PURE__*/React__namespace.createElement(InfoTip$i, null, /*#__PURE__*/React__namespace.createElement("p", null, "Optional visible text; strongly encouraged to help learners using dictation software, but can be omitted if the surrounding content provides enough context."))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
26645
|
+
className: "perseus-widget-row"
|
|
26646
|
+
}, /*#__PURE__*/React__namespace.createElement("label", null, "Aria label:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$7, {
|
|
26647
|
+
value: this.props.ariaLabel,
|
|
26648
|
+
onChange: this.change("ariaLabel")
|
|
26649
|
+
})), /*#__PURE__*/React__namespace.createElement(InfoTip$i, null, /*#__PURE__*/React__namespace.createElement("p", null, "Label text that's read by screen readers. Highly recommend adding a label here to ensure your exercise is accessible. For more information on writting accessible labels, please see", " ", /*#__PURE__*/React__namespace.createElement("a", {
|
|
26650
|
+
href: "https://www.w3.org/WAI/tips/designing/#ensure-that-form-elements-include-clearly-associated-labels",
|
|
26651
|
+
target: "_blank"
|
|
26652
|
+
}, "this article.")))), /*#__PURE__*/React__namespace.createElement("div", null, /*#__PURE__*/React__namespace.createElement(PropCheckBox$a, {
|
|
26639
26653
|
times: this.props.times,
|
|
26640
26654
|
onChange: this.props.onChange,
|
|
26641
26655
|
labelAlignment: "right",
|
|
@@ -26664,7 +26678,7 @@ class ExpressionEditor extends React__namespace.Component {
|
|
|
26664
26678
|
// it's a little weird to serialize the react key, but saves some
|
|
26665
26679
|
// effort reconstructing them when this item is loaded later.
|
|
26666
26680
|
"key"];
|
|
26667
|
-
const serializables = ["answerForms", "buttonSets", "functions", "times"];
|
|
26681
|
+
const serializables = ["answerForms", "buttonSets", "functions", "times", "visibleLabel", "ariaLabel"];
|
|
26668
26682
|
const answerForms = this.props.answerForms.map(form => {
|
|
26669
26683
|
return ___default["default"](form).pick(formSerializables);
|
|
26670
26684
|
});
|
|
@@ -26943,10 +26957,10 @@ class GradedGroupEditor extends React__namespace.Component {
|
|
|
26943
26957
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
26944
26958
|
className: "perseus-widget-row"
|
|
26945
26959
|
}, /*#__PURE__*/React__namespace.createElement("label", {
|
|
26946
|
-
className: aphrodite.css(styles$
|
|
26960
|
+
className: aphrodite.css(styles$E.title)
|
|
26947
26961
|
}, "Title:", " ", /*#__PURE__*/React__namespace.createElement(TextInput$6, {
|
|
26948
26962
|
value: this.props.title,
|
|
26949
|
-
className: aphrodite.css(styles$
|
|
26963
|
+
className: aphrodite.css(styles$E.input)
|
|
26950
26964
|
// @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.
|
|
26951
26965
|
,
|
|
26952
26966
|
onChange: this.change("title")
|
|
@@ -26971,7 +26985,7 @@ class GradedGroupEditor extends React__namespace.Component {
|
|
|
26971
26985
|
}, /*#__PURE__*/React__namespace.createElement(InlineIcon$3, iconPlus$1), " Add a hint"), this.props.hint && /*#__PURE__*/React__namespace.createElement("div", {
|
|
26972
26986
|
className: "perseus-hint-editor"
|
|
26973
26987
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
26974
|
-
className: aphrodite.css(styles$
|
|
26988
|
+
className: aphrodite.css(styles$E.hintsTitle)
|
|
26975
26989
|
}, "Hint"), /*#__PURE__*/React__namespace.createElement(Editor, {
|
|
26976
26990
|
ref: this.hintEditor,
|
|
26977
26991
|
content: this.props.hint ? this.props.hint.content : "",
|
|
@@ -27003,7 +27017,7 @@ class GradedGroupEditor extends React__namespace.Component {
|
|
|
27003
27017
|
};
|
|
27004
27018
|
};
|
|
27005
27019
|
}
|
|
27006
|
-
const styles$
|
|
27020
|
+
const styles$E = aphrodite.StyleSheet.create({
|
|
27007
27021
|
title: {
|
|
27008
27022
|
fontSize: 18,
|
|
27009
27023
|
fontWeight: "bold"
|
|
@@ -28374,13 +28388,13 @@ function MathquillInput(props) {
|
|
|
28374
28388
|
}
|
|
28375
28389
|
});
|
|
28376
28390
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
28377
|
-
style: styles$
|
|
28391
|
+
style: styles$D.outerWrapper
|
|
28378
28392
|
}, /*#__PURE__*/React__namespace.createElement("span", {
|
|
28379
28393
|
ref: mathFieldWrapperRef,
|
|
28380
28394
|
className: "perseus-math-input mq-editable-field mq-math-mode"
|
|
28381
28395
|
}));
|
|
28382
28396
|
}
|
|
28383
|
-
const styles$
|
|
28397
|
+
const styles$D = aphrodite.StyleSheet.create({
|
|
28384
28398
|
outerWrapper: {
|
|
28385
28399
|
display: "inline-block",
|
|
28386
28400
|
borderStyle: "solid",
|
|
@@ -29450,16 +29464,16 @@ const LabeledRow = props => {
|
|
|
29450
29464
|
style
|
|
29451
29465
|
} = props;
|
|
29452
29466
|
return /*#__PURE__*/React__namespace.createElement("label", {
|
|
29453
|
-
className: aphrodite.css(styles$
|
|
29467
|
+
className: aphrodite.css(styles$C.label)
|
|
29454
29468
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29455
|
-
style: [styles$
|
|
29469
|
+
style: [styles$C.row, style]
|
|
29456
29470
|
}, labelSide === "start" || /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelSmall, {
|
|
29457
|
-
style: styles$
|
|
29471
|
+
style: styles$C.spaceEnd
|
|
29458
29472
|
}, label), children, labelSide === "end" && /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelSmall, {
|
|
29459
|
-
style: styles$
|
|
29473
|
+
style: styles$C.spaceStart
|
|
29460
29474
|
}, label)));
|
|
29461
29475
|
};
|
|
29462
|
-
const styles$
|
|
29476
|
+
const styles$C = aphrodite.StyleSheet.create({
|
|
29463
29477
|
label: {
|
|
29464
29478
|
width: "fit-content"
|
|
29465
29479
|
},
|
|
@@ -29536,11 +29550,11 @@ class Spring extends React__namespace.Component {
|
|
|
29536
29550
|
} = this.props;
|
|
29537
29551
|
return React__namespace.createElement(wonderBlocksCore.View, {
|
|
29538
29552
|
"aria-hidden": "true",
|
|
29539
|
-
style: [styles$
|
|
29553
|
+
style: [styles$B.grow, style]
|
|
29540
29554
|
});
|
|
29541
29555
|
}
|
|
29542
29556
|
}
|
|
29543
|
-
const styles$
|
|
29557
|
+
const styles$B = aphrodite.StyleSheet.create({
|
|
29544
29558
|
grow: {
|
|
29545
29559
|
flexGrow: 1
|
|
29546
29560
|
}
|
|
@@ -29577,11 +29591,11 @@ function Heading(_ref) {
|
|
|
29577
29591
|
onToggle
|
|
29578
29592
|
} = _ref;
|
|
29579
29593
|
return /*#__PURE__*/React__namespace.createElement(Clickable__default["default"], {
|
|
29580
|
-
style: [styles$
|
|
29594
|
+
style: [styles$A.container, !isCollapsible && styles$A.notClickable],
|
|
29581
29595
|
disabled: !isCollapsible,
|
|
29582
29596
|
onClick: () => isCollapsible && onToggle?.(!isOpen)
|
|
29583
29597
|
}, () => /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29584
|
-
style: styles$
|
|
29598
|
+
style: styles$A.heading
|
|
29585
29599
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, {
|
|
29586
29600
|
style: {
|
|
29587
29601
|
fontSize: 14,
|
|
@@ -29591,7 +29605,7 @@ function Heading(_ref) {
|
|
|
29591
29605
|
isExpanded: isOpen
|
|
29592
29606
|
})));
|
|
29593
29607
|
}
|
|
29594
|
-
const styles$
|
|
29608
|
+
const styles$A = aphrodite.StyleSheet.create({
|
|
29595
29609
|
container: {
|
|
29596
29610
|
marginTop: wonderBlocksTokens.spacing.small_12,
|
|
29597
29611
|
// NOTE(jeremy): This is the inverse of the @editorPadding CSS
|
|
@@ -29739,6 +29753,16 @@ function getDefaultGraphStartCoords(graph, range, step) {
|
|
|
29739
29753
|
...graph,
|
|
29740
29754
|
startCoords: undefined
|
|
29741
29755
|
}, range, step);
|
|
29756
|
+
case "circle":
|
|
29757
|
+
const startCoords = perseus.getCircleCoords({
|
|
29758
|
+
...graph,
|
|
29759
|
+
startCoords: undefined
|
|
29760
|
+
});
|
|
29761
|
+
const radius = kmath.vector.length(kmath.vector.subtract(startCoords.radiusPoint, startCoords.center));
|
|
29762
|
+
return {
|
|
29763
|
+
center: startCoords.center,
|
|
29764
|
+
radius
|
|
29765
|
+
};
|
|
29742
29766
|
default:
|
|
29743
29767
|
return undefined;
|
|
29744
29768
|
}
|
|
@@ -29758,17 +29782,17 @@ const LockedFigureSelect = props => {
|
|
|
29758
29782
|
} = props;
|
|
29759
29783
|
const figureTypes = props.showM2Features ? ["point", "line", "vector", "ellipse", "polygon"] : ["point", "line"];
|
|
29760
29784
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29761
|
-
style: styles$
|
|
29785
|
+
style: styles$z.container
|
|
29762
29786
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.ActionMenu, {
|
|
29763
29787
|
menuText: "Add locked figure",
|
|
29764
|
-
style: styles$
|
|
29788
|
+
style: styles$z.addElementSelect
|
|
29765
29789
|
}, figureTypes.map(figureType => /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.ActionItem, {
|
|
29766
29790
|
key: `${id}-${figureType}`,
|
|
29767
29791
|
label: figureType,
|
|
29768
29792
|
onClick: () => onChange(figureType)
|
|
29769
29793
|
}))));
|
|
29770
29794
|
};
|
|
29771
|
-
const styles$
|
|
29795
|
+
const styles$z = aphrodite.StyleSheet.create({
|
|
29772
29796
|
container: {
|
|
29773
29797
|
marginTop: wonderBlocksTokens.spacing.xSmall_8
|
|
29774
29798
|
},
|
|
@@ -29799,19 +29823,19 @@ const AngleInput = props => {
|
|
|
29799
29823
|
}
|
|
29800
29824
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
29801
29825
|
tag: "label",
|
|
29802
|
-
style: styles$
|
|
29826
|
+
style: styles$y.row
|
|
29803
29827
|
}, "angle (degrees)", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29804
29828
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
29805
29829
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksForm.TextField, {
|
|
29806
29830
|
type: "number",
|
|
29807
29831
|
value: angleInput,
|
|
29808
29832
|
onChange: handleAngleChange,
|
|
29809
|
-
style: styles$
|
|
29833
|
+
style: styles$y.textField
|
|
29810
29834
|
}), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29811
29835
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
29812
29836
|
}));
|
|
29813
29837
|
};
|
|
29814
|
-
const styles$
|
|
29838
|
+
const styles$y = aphrodite.StyleSheet.create({
|
|
29815
29839
|
row: {
|
|
29816
29840
|
display: "flex",
|
|
29817
29841
|
flexDirection: "row",
|
|
@@ -29860,32 +29884,32 @@ const CoordinatePairInput = props => {
|
|
|
29860
29884
|
onChange(newCoords);
|
|
29861
29885
|
}
|
|
29862
29886
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29863
|
-
style: [styles$
|
|
29887
|
+
style: [styles$x.row, style]
|
|
29864
29888
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
29865
29889
|
tag: "label",
|
|
29866
|
-
style: styles$
|
|
29890
|
+
style: styles$x.row
|
|
29867
29891
|
}, labels ? labels[0] : "x coord", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29868
29892
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
29869
29893
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksForm.TextField, {
|
|
29870
29894
|
type: "number",
|
|
29871
29895
|
value: coordState[0],
|
|
29872
29896
|
onChange: newValue => handleCoordChange(newValue, 0),
|
|
29873
|
-
style: [styles$
|
|
29897
|
+
style: [styles$x.textField, error ? styles$x.errorField : undefined]
|
|
29874
29898
|
})), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29875
29899
|
size: wonderBlocksTokens.spacing.medium_16
|
|
29876
29900
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
29877
29901
|
tag: "label",
|
|
29878
|
-
style: styles$
|
|
29902
|
+
style: styles$x.row
|
|
29879
29903
|
}, labels ? labels[1] : "y coord", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29880
29904
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
29881
29905
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksForm.TextField, {
|
|
29882
29906
|
type: "number",
|
|
29883
29907
|
value: coordState[1],
|
|
29884
29908
|
onChange: newValue => handleCoordChange(newValue, 1),
|
|
29885
|
-
style: [styles$
|
|
29909
|
+
style: [styles$x.textField, error ? styles$x.errorField : undefined]
|
|
29886
29910
|
})));
|
|
29887
29911
|
};
|
|
29888
|
-
const styles$
|
|
29912
|
+
const styles$x = aphrodite.StyleSheet.create({
|
|
29889
29913
|
row: {
|
|
29890
29914
|
display: "flex",
|
|
29891
29915
|
flexDirection: "row",
|
|
@@ -29918,14 +29942,14 @@ const PerseusEditorAccordion = props => {
|
|
|
29918
29942
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksAccordion.AccordionSection, {
|
|
29919
29943
|
expanded: expanded,
|
|
29920
29944
|
onToggle: onToggle,
|
|
29921
|
-
style: [styles$
|
|
29922
|
-
headerStyle: styles$
|
|
29945
|
+
style: [styles$w.container, containerStyle],
|
|
29946
|
+
headerStyle: styles$w.accordionHeader,
|
|
29923
29947
|
header: header
|
|
29924
29948
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29925
|
-
style: [styles$
|
|
29949
|
+
style: [styles$w.accordionPanel, panelStyle]
|
|
29926
29950
|
}, children)));
|
|
29927
29951
|
};
|
|
29928
|
-
const styles$
|
|
29952
|
+
const styles$w = aphrodite.StyleSheet.create({
|
|
29929
29953
|
container: {
|
|
29930
29954
|
backgroundColor: wonderBlocksTokens.color.fadedBlue8,
|
|
29931
29955
|
marginTop: wonderBlocksTokens.spacing.xSmall_8
|
|
@@ -29956,13 +29980,13 @@ const ColorSwatch = props => {
|
|
|
29956
29980
|
"aria-label":
|
|
29957
29981
|
// Don't include an aria label for decorative circles.
|
|
29958
29982
|
!decorative ? `${color}, ${filled ? "filled" : "open"}` : undefined,
|
|
29959
|
-
style: [styles$
|
|
29983
|
+
style: [styles$v.colorSwatch, {
|
|
29960
29984
|
border: `4px solid ${perseus.lockedFigureColors[color]}`,
|
|
29961
29985
|
backgroundColor: filled ? perseus.lockedFigureColors[color] : wonderBlocksTokens.color.white
|
|
29962
29986
|
}]
|
|
29963
29987
|
});
|
|
29964
29988
|
};
|
|
29965
|
-
const styles$
|
|
29989
|
+
const styles$v = aphrodite.StyleSheet.create({
|
|
29966
29990
|
colorSwatch: {
|
|
29967
29991
|
// Add a white outline so that the color swatch is visible when
|
|
29968
29992
|
// the dropdown option is highlighted with its blue background.
|
|
@@ -29981,10 +30005,10 @@ const ColorSelect = props => {
|
|
|
29981
30005
|
onChange
|
|
29982
30006
|
} = props;
|
|
29983
30007
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
29984
|
-
style: [styles$
|
|
30008
|
+
style: [styles$u.row, style]
|
|
29985
30009
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
29986
30010
|
tag: "label",
|
|
29987
|
-
style: styles$
|
|
30011
|
+
style: styles$u.row
|
|
29988
30012
|
}, "color", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
29989
30013
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
29990
30014
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30003,7 +30027,7 @@ const ColorSelect = props => {
|
|
|
30003
30027
|
})
|
|
30004
30028
|
})))));
|
|
30005
30029
|
};
|
|
30006
|
-
const styles$
|
|
30030
|
+
const styles$u = aphrodite.StyleSheet.create({
|
|
30007
30031
|
row: {
|
|
30008
30032
|
display: "flex",
|
|
30009
30033
|
flexDirection: "row",
|
|
@@ -30019,17 +30043,17 @@ const EllipseSwatch = props => {
|
|
|
30019
30043
|
} = props;
|
|
30020
30044
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30021
30045
|
"aria-label": `${color}, stroke ${strokeStyle}, fill ${fillStyle}`,
|
|
30022
|
-
style: [styles$
|
|
30046
|
+
style: [styles$t.container, {
|
|
30023
30047
|
border: `4px ${strokeStyle} ${perseus.lockedFigureColors[color]}`
|
|
30024
30048
|
}]
|
|
30025
30049
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30026
|
-
style: [styles$
|
|
30050
|
+
style: [styles$t.innerCircle, {
|
|
30027
30051
|
backgroundColor: perseus.lockedFigureColors[color],
|
|
30028
30052
|
opacity: perseus.lockedFigureFillStyles[fillStyle]
|
|
30029
30053
|
}]
|
|
30030
30054
|
}));
|
|
30031
30055
|
};
|
|
30032
|
-
const styles$
|
|
30056
|
+
const styles$t = aphrodite.StyleSheet.create({
|
|
30033
30057
|
container: {
|
|
30034
30058
|
// Add a white outline so that the color swatch is visible when
|
|
30035
30059
|
// the dropdown option is highlighted with its blue background.
|
|
@@ -30060,40 +30084,40 @@ const LockedFigureSettingsActions = props => {
|
|
|
30060
30084
|
onRemove
|
|
30061
30085
|
} = props;
|
|
30062
30086
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30063
|
-
style: styles$
|
|
30087
|
+
style: styles$s.container
|
|
30064
30088
|
}, /*#__PURE__*/React__namespace.createElement(Button__default["default"], {
|
|
30065
30089
|
startIcon: trashIcon__default["default"],
|
|
30066
30090
|
"aria-label": `Delete locked ${figureType}`,
|
|
30067
30091
|
onClick: onRemove,
|
|
30068
30092
|
kind: "tertiary",
|
|
30069
|
-
style: styles$
|
|
30093
|
+
style: styles$s.deleteButton
|
|
30070
30094
|
}, "Delete"), /*#__PURE__*/React__namespace.createElement(Spring, null), props.showM2Features && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(IconButton__default["default"], {
|
|
30071
30095
|
icon: caretDoubleUpIcon__default["default"],
|
|
30072
30096
|
size: "small",
|
|
30073
30097
|
"aria-label": `Move locked ${figureType} to the back`,
|
|
30074
30098
|
onClick: () => onMove("back"),
|
|
30075
|
-
style: styles$
|
|
30099
|
+
style: styles$s.iconButton
|
|
30076
30100
|
}), /*#__PURE__*/React__namespace.createElement(IconButton__default["default"], {
|
|
30077
30101
|
icon: caretUpIcon__default["default"],
|
|
30078
30102
|
size: "small",
|
|
30079
30103
|
"aria-label": `Move locked ${figureType} backward`,
|
|
30080
30104
|
onClick: () => onMove("backward"),
|
|
30081
|
-
style: styles$
|
|
30105
|
+
style: styles$s.iconButton
|
|
30082
30106
|
}), /*#__PURE__*/React__namespace.createElement(IconButton__default["default"], {
|
|
30083
30107
|
icon: caretDownIcon__default["default"],
|
|
30084
30108
|
size: "small",
|
|
30085
30109
|
"aria-label": `Move locked ${figureType} forward`,
|
|
30086
30110
|
onClick: () => onMove("forward"),
|
|
30087
|
-
style: styles$
|
|
30111
|
+
style: styles$s.iconButton
|
|
30088
30112
|
}), /*#__PURE__*/React__namespace.createElement(IconButton__default["default"], {
|
|
30089
30113
|
icon: caretDoubleDownIcon__default["default"],
|
|
30090
30114
|
size: "small",
|
|
30091
30115
|
"aria-label": `Move locked ${figureType} to the front`,
|
|
30092
30116
|
onClick: () => onMove("front"),
|
|
30093
|
-
style: styles$
|
|
30117
|
+
style: styles$s.iconButton
|
|
30094
30118
|
})));
|
|
30095
30119
|
};
|
|
30096
|
-
const styles$
|
|
30120
|
+
const styles$s = aphrodite.StyleSheet.create({
|
|
30097
30121
|
container: {
|
|
30098
30122
|
width: "100%",
|
|
30099
30123
|
flexDirection: "row",
|
|
@@ -30140,7 +30164,7 @@ const LockedEllipseSettings = props => {
|
|
|
30140
30164
|
/*#__PURE__*/
|
|
30141
30165
|
// Summary: Ellipse, center, radius, color (opacity, dashed)
|
|
30142
30166
|
React__namespace.createElement(wonderBlocksCore.View, {
|
|
30143
|
-
style: styles$
|
|
30167
|
+
style: styles$r.row
|
|
30144
30168
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `Ellipse (${center[0]}, ${center[1]}), radius ${radius[0]}, ${radius[1]}`), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30145
30169
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30146
30170
|
}), /*#__PURE__*/React__namespace.createElement(EllipseSwatch, {
|
|
@@ -30149,19 +30173,19 @@ const LockedEllipseSettings = props => {
|
|
|
30149
30173
|
strokeStyle: strokeStyle
|
|
30150
30174
|
}))
|
|
30151
30175
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30152
|
-
style: styles$
|
|
30176
|
+
style: styles$r.row
|
|
30153
30177
|
}, /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30154
30178
|
coord: center,
|
|
30155
|
-
style: styles$
|
|
30179
|
+
style: styles$r.spaceUnder,
|
|
30156
30180
|
onChange: newCoords => onChangeProps({
|
|
30157
30181
|
center: newCoords
|
|
30158
30182
|
})
|
|
30159
30183
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30160
|
-
style: styles$
|
|
30184
|
+
style: styles$r.spaceUnder
|
|
30161
30185
|
}, /*#__PURE__*/React__namespace.createElement(InfoTip$d, null, "The coordinates for the center of the ellipse."))), /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30162
30186
|
coord: radius,
|
|
30163
30187
|
labels: ["x radius", "y radius"],
|
|
30164
|
-
style: styles$
|
|
30188
|
+
style: styles$r.spaceUnder,
|
|
30165
30189
|
onChange: newCoords => onChangeProps({
|
|
30166
30190
|
radius: newCoords
|
|
30167
30191
|
})
|
|
@@ -30173,7 +30197,7 @@ const LockedEllipseSettings = props => {
|
|
|
30173
30197
|
}), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30174
30198
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30175
30199
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30176
|
-
style: [styles$
|
|
30200
|
+
style: [styles$r.row, styles$r.spaceUnder]
|
|
30177
30201
|
}, /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30178
30202
|
selectedValue: color,
|
|
30179
30203
|
onChange: handleColorChange
|
|
@@ -30181,7 +30205,7 @@ const LockedEllipseSettings = props => {
|
|
|
30181
30205
|
size: wonderBlocksTokens.spacing.medium_16
|
|
30182
30206
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30183
30207
|
tag: "label",
|
|
30184
|
-
style: styles$
|
|
30208
|
+
style: styles$r.row
|
|
30185
30209
|
}, "fill", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30186
30210
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
30187
30211
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30198,7 +30222,7 @@ const LockedEllipseSettings = props => {
|
|
|
30198
30222
|
label: option
|
|
30199
30223
|
}))))), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30200
30224
|
tag: "label",
|
|
30201
|
-
style: styles$
|
|
30225
|
+
style: styles$r.row
|
|
30202
30226
|
}, "stroke", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30203
30227
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
30204
30228
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30222,7 +30246,7 @@ const LockedEllipseSettings = props => {
|
|
|
30222
30246
|
onRemove: onRemove
|
|
30223
30247
|
}));
|
|
30224
30248
|
};
|
|
30225
|
-
const styles$
|
|
30249
|
+
const styles$r = aphrodite.StyleSheet.create({
|
|
30226
30250
|
row: {
|
|
30227
30251
|
display: "flex",
|
|
30228
30252
|
flexDirection: "row",
|
|
@@ -30243,7 +30267,7 @@ const LabeledSwitch = props => {
|
|
|
30243
30267
|
const ids = wonderBlocksCore.useUniqueIdWithMock();
|
|
30244
30268
|
const switchId = ids.get("switch");
|
|
30245
30269
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30246
|
-
style: [styles$
|
|
30270
|
+
style: [styles$q.row, style]
|
|
30247
30271
|
}, /*#__PURE__*/React__namespace.createElement(Switch__default["default"], {
|
|
30248
30272
|
id: switchId,
|
|
30249
30273
|
checked: checked,
|
|
@@ -30255,7 +30279,7 @@ const LabeledSwitch = props => {
|
|
|
30255
30279
|
htmlFor: switchId
|
|
30256
30280
|
}, label));
|
|
30257
30281
|
};
|
|
30258
|
-
const styles$
|
|
30282
|
+
const styles$q = aphrodite.StyleSheet.create({
|
|
30259
30283
|
row: {
|
|
30260
30284
|
flexDirection: "row",
|
|
30261
30285
|
alignItems: "center"
|
|
@@ -30289,13 +30313,13 @@ const DefiningPointSettings = props => {
|
|
|
30289
30313
|
return /*#__PURE__*/React__namespace.createElement(PerseusEditorAccordion, {
|
|
30290
30314
|
expanded: expanded,
|
|
30291
30315
|
onToggle: onToggle,
|
|
30292
|
-
containerStyle: styles$
|
|
30293
|
-
panelStyle: styles$
|
|
30316
|
+
containerStyle: styles$p.container,
|
|
30317
|
+
panelStyle: styles$p.accordionPanel,
|
|
30294
30318
|
header:
|
|
30295
30319
|
/*#__PURE__*/
|
|
30296
30320
|
// Summary: Point, coords, color (filled/open)
|
|
30297
30321
|
React__namespace.createElement(wonderBlocksCore.View, {
|
|
30298
|
-
style: styles$
|
|
30322
|
+
style: styles$p.row
|
|
30299
30323
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `${label || "Point"} (${coord[0]}, ${coord[1]})`), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30300
30324
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30301
30325
|
}), showPoint && /*#__PURE__*/React__namespace.createElement(ColorSwatch, {
|
|
@@ -30305,7 +30329,7 @@ const DefiningPointSettings = props => {
|
|
|
30305
30329
|
}, /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30306
30330
|
coord: coord,
|
|
30307
30331
|
error: !!error,
|
|
30308
|
-
style: styles$
|
|
30332
|
+
style: styles$p.spaceUnder,
|
|
30309
30333
|
onChange: newCoords => {
|
|
30310
30334
|
onChangeProps({
|
|
30311
30335
|
coord: newCoords
|
|
@@ -30314,12 +30338,12 @@ const DefiningPointSettings = props => {
|
|
|
30314
30338
|
}), onTogglePoint && /*#__PURE__*/React__namespace.createElement(LabeledSwitch, {
|
|
30315
30339
|
label: "show point on graph",
|
|
30316
30340
|
checked: !!showPoint,
|
|
30317
|
-
style: showPoint && styles$
|
|
30341
|
+
style: showPoint && styles$p.spaceUnder,
|
|
30318
30342
|
onChange: onTogglePoint
|
|
30319
30343
|
}), showPoint && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30320
30344
|
selectedValue: pointColor,
|
|
30321
30345
|
onChange: handleColorChange,
|
|
30322
|
-
style: styles$
|
|
30346
|
+
style: styles$p.spaceUnder
|
|
30323
30347
|
}), /*#__PURE__*/React__namespace.createElement(LabeledSwitch, {
|
|
30324
30348
|
label: "open point",
|
|
30325
30349
|
checked: !filled,
|
|
@@ -30330,7 +30354,7 @@ const DefiningPointSettings = props => {
|
|
|
30330
30354
|
}
|
|
30331
30355
|
})));
|
|
30332
30356
|
};
|
|
30333
|
-
const styles$
|
|
30357
|
+
const styles$p = aphrodite.StyleSheet.create({
|
|
30334
30358
|
container: {
|
|
30335
30359
|
marginTop: wonderBlocksTokens.spacing.xSmall_8,
|
|
30336
30360
|
marginBottom: 0,
|
|
@@ -30357,15 +30381,15 @@ const LineSwatch = props => {
|
|
|
30357
30381
|
lineStyle
|
|
30358
30382
|
} = props;
|
|
30359
30383
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30360
|
-
style: styles$
|
|
30384
|
+
style: styles$o.container
|
|
30361
30385
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30362
30386
|
"aria-label": `${color}, ${lineStyle}`,
|
|
30363
|
-
style: [styles$
|
|
30387
|
+
style: [styles$o.lineSwatch, {
|
|
30364
30388
|
border: `5px ${lineStyle} ${perseus.lockedFigureColors[color]}`
|
|
30365
30389
|
}]
|
|
30366
30390
|
}));
|
|
30367
30391
|
};
|
|
30368
|
-
const styles$
|
|
30392
|
+
const styles$o = aphrodite.StyleSheet.create({
|
|
30369
30393
|
container: {
|
|
30370
30394
|
backgroundColor: wonderBlocksTokens.color.white,
|
|
30371
30395
|
justifyContent: "center",
|
|
@@ -30424,7 +30448,7 @@ const LockedLineSettings = props => {
|
|
|
30424
30448
|
expanded: props.expanded,
|
|
30425
30449
|
onToggle: props.onToggle,
|
|
30426
30450
|
header: /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30427
|
-
style: styles$
|
|
30451
|
+
style: styles$n.row
|
|
30428
30452
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, lineLabel), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30429
30453
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30430
30454
|
}), /*#__PURE__*/React__namespace.createElement(LineSwatch, {
|
|
@@ -30433,7 +30457,7 @@ const LockedLineSettings = props => {
|
|
|
30433
30457
|
}))
|
|
30434
30458
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30435
30459
|
tag: "label",
|
|
30436
|
-
style: [styles$
|
|
30460
|
+
style: [styles$n.row, styles$n.spaceUnder]
|
|
30437
30461
|
}, "kind", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30438
30462
|
size: wonderBlocksTokens.spacing.xxxSmall_4
|
|
30439
30463
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30454,7 +30478,7 @@ const LockedLineSettings = props => {
|
|
|
30454
30478
|
value: "segment",
|
|
30455
30479
|
label: "segment"
|
|
30456
30480
|
}))), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30457
|
-
style: styles$
|
|
30481
|
+
style: styles$n.row
|
|
30458
30482
|
}, /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30459
30483
|
selectedValue: lineColor,
|
|
30460
30484
|
onChange: handleColorChange
|
|
@@ -30462,7 +30486,7 @@ const LockedLineSettings = props => {
|
|
|
30462
30486
|
size: wonderBlocksTokens.spacing.small_12
|
|
30463
30487
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30464
30488
|
tag: "label",
|
|
30465
|
-
style: styles$
|
|
30489
|
+
style: styles$n.row
|
|
30466
30490
|
}, "style", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30467
30491
|
size: wonderBlocksTokens.spacing.xxxSmall_4
|
|
30468
30492
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30473,7 +30497,7 @@ const LockedLineSettings = props => {
|
|
|
30473
30497
|
// Placeholder is required, but never gets used.
|
|
30474
30498
|
,
|
|
30475
30499
|
placeholder: "",
|
|
30476
|
-
style: styles$
|
|
30500
|
+
style: styles$n.selectMarginOffset
|
|
30477
30501
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.OptionItem, {
|
|
30478
30502
|
value: "solid",
|
|
30479
30503
|
label: "solid"
|
|
@@ -30481,7 +30505,7 @@ const LockedLineSettings = props => {
|
|
|
30481
30505
|
value: "dashed",
|
|
30482
30506
|
label: "dashed"
|
|
30483
30507
|
})))), isInvalid && /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30484
|
-
style: styles$
|
|
30508
|
+
style: styles$n.errorText
|
|
30485
30509
|
}, lengthZeroStr), /*#__PURE__*/React__namespace.createElement(DefiningPointSettings, _extends({
|
|
30486
30510
|
label: "Point 1",
|
|
30487
30511
|
showPoint: showPoint1,
|
|
@@ -30507,7 +30531,7 @@ const LockedLineSettings = props => {
|
|
|
30507
30531
|
onRemove: onRemove
|
|
30508
30532
|
}));
|
|
30509
30533
|
};
|
|
30510
|
-
const styles$
|
|
30534
|
+
const styles$n = aphrodite.StyleSheet.create({
|
|
30511
30535
|
row: {
|
|
30512
30536
|
display: "flex",
|
|
30513
30537
|
flexDirection: "row",
|
|
@@ -30552,7 +30576,7 @@ const LockedPointSettings = props => {
|
|
|
30552
30576
|
/*#__PURE__*/
|
|
30553
30577
|
// Summary: Point, coords, color (filled/open)
|
|
30554
30578
|
React__namespace.createElement(wonderBlocksCore.View, {
|
|
30555
|
-
style: styles$
|
|
30579
|
+
style: styles$m.row
|
|
30556
30580
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `Point (${coord[0]}, ${coord[1]})`), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30557
30581
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30558
30582
|
}), /*#__PURE__*/React__namespace.createElement(ColorSwatch, {
|
|
@@ -30561,7 +30585,7 @@ const LockedPointSettings = props => {
|
|
|
30561
30585
|
}))
|
|
30562
30586
|
}, /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30563
30587
|
coord: coord,
|
|
30564
|
-
style: styles$
|
|
30588
|
+
style: styles$m.spaceUnder,
|
|
30565
30589
|
onChange: newCoord => {
|
|
30566
30590
|
onChangeProps({
|
|
30567
30591
|
coord: newCoord
|
|
@@ -30570,7 +30594,7 @@ const LockedPointSettings = props => {
|
|
|
30570
30594
|
}), /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30571
30595
|
selectedValue: pointColor,
|
|
30572
30596
|
onChange: handleColorChange,
|
|
30573
|
-
style: styles$
|
|
30597
|
+
style: styles$m.spaceUnder
|
|
30574
30598
|
}), /*#__PURE__*/React__namespace.createElement(LabeledSwitch, {
|
|
30575
30599
|
label: "open point",
|
|
30576
30600
|
checked: !filled,
|
|
@@ -30586,7 +30610,7 @@ const LockedPointSettings = props => {
|
|
|
30586
30610
|
onRemove: onRemove
|
|
30587
30611
|
}));
|
|
30588
30612
|
};
|
|
30589
|
-
const styles$
|
|
30613
|
+
const styles$m = aphrodite.StyleSheet.create({
|
|
30590
30614
|
row: {
|
|
30591
30615
|
flexDirection: "row",
|
|
30592
30616
|
alignItems: "center"
|
|
@@ -30604,17 +30628,17 @@ const PolygonSwatch = props => {
|
|
|
30604
30628
|
} = props;
|
|
30605
30629
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30606
30630
|
"aria-label": `${color}, stroke ${strokeStyle}, fill ${fillStyle}`,
|
|
30607
|
-
style: [styles$
|
|
30631
|
+
style: [styles$l.container, {
|
|
30608
30632
|
border: `4px ${strokeStyle} ${perseus.lockedFigureColors[color]}`
|
|
30609
30633
|
}]
|
|
30610
30634
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30611
|
-
style: [styles$
|
|
30635
|
+
style: [styles$l.innerSquare, {
|
|
30612
30636
|
backgroundColor: perseus.lockedFigureColors[color],
|
|
30613
30637
|
opacity: perseus.lockedFigureFillStyles[fillStyle]
|
|
30614
30638
|
}]
|
|
30615
30639
|
}));
|
|
30616
30640
|
};
|
|
30617
|
-
const styles$
|
|
30641
|
+
const styles$l = aphrodite.StyleSheet.create({
|
|
30618
30642
|
container: {
|
|
30619
30643
|
// Add a white outline so that the color swatch is visible when
|
|
30620
30644
|
// the dropdown option is highlighted with its blue background.
|
|
@@ -30656,7 +30680,7 @@ const LockedPolygonSettings = props => {
|
|
|
30656
30680
|
/*#__PURE__*/
|
|
30657
30681
|
// Summary: Polygon, number of sides, style swatch
|
|
30658
30682
|
React__namespace.createElement(wonderBlocksCore.View, {
|
|
30659
|
-
style: styles$
|
|
30683
|
+
style: styles$k.row
|
|
30660
30684
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `Polygon, ${points.length} sides`), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30661
30685
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30662
30686
|
}), /*#__PURE__*/React__namespace.createElement(PolygonSwatch, {
|
|
@@ -30665,7 +30689,7 @@ const LockedPolygonSettings = props => {
|
|
|
30665
30689
|
strokeStyle: strokeStyle
|
|
30666
30690
|
}))
|
|
30667
30691
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30668
|
-
style: [styles$
|
|
30692
|
+
style: [styles$k.row, styles$k.spaceUnder]
|
|
30669
30693
|
}, /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30670
30694
|
selectedValue: color,
|
|
30671
30695
|
onChange: handleColorChange
|
|
@@ -30673,7 +30697,7 @@ const LockedPolygonSettings = props => {
|
|
|
30673
30697
|
size: wonderBlocksTokens.spacing.medium_16
|
|
30674
30698
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30675
30699
|
tag: "label",
|
|
30676
|
-
style: styles$
|
|
30700
|
+
style: styles$k.row
|
|
30677
30701
|
}, "fill", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30678
30702
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
30679
30703
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30690,7 +30714,7 @@ const LockedPolygonSettings = props => {
|
|
|
30690
30714
|
label: option
|
|
30691
30715
|
}))))), /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30692
30716
|
tag: "label",
|
|
30693
|
-
style: [styles$
|
|
30717
|
+
style: [styles$k.row, styles$k.spaceUnder]
|
|
30694
30718
|
}, "stroke", /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30695
30719
|
size: wonderBlocksTokens.spacing.xxSmall_6
|
|
30696
30720
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.SingleSelect, {
|
|
@@ -30713,17 +30737,17 @@ const LockedPolygonSettings = props => {
|
|
|
30713
30737
|
onChange: newValue => onChangeProps({
|
|
30714
30738
|
showVertices: newValue
|
|
30715
30739
|
}),
|
|
30716
|
-
style: styles$
|
|
30740
|
+
style: styles$k.spaceUnder
|
|
30717
30741
|
}), /*#__PURE__*/React__namespace.createElement(PerseusEditorAccordion, {
|
|
30718
30742
|
header: /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, "Points"),
|
|
30719
30743
|
expanded: true,
|
|
30720
|
-
containerStyle: styles$
|
|
30721
|
-
panelStyle: styles$
|
|
30744
|
+
containerStyle: styles$k.pointAccordionContainer,
|
|
30745
|
+
panelStyle: styles$k.pointAccordionPanel
|
|
30722
30746
|
}, points.map((point, index) => {
|
|
30723
30747
|
const pointLabel = String.fromCharCode(65 + index);
|
|
30724
30748
|
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30725
30749
|
key: `locked-polygon-point-${point[0]}-${point[1]}-index-${index}`,
|
|
30726
|
-
style: [styles$
|
|
30750
|
+
style: [styles$k.row, styles$k.spaceUnder]
|
|
30727
30751
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `${pointLabel}:`), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30728
30752
|
size: wonderBlocksTokens.spacing.medium_16
|
|
30729
30753
|
}), /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
@@ -30751,7 +30775,7 @@ const LockedPolygonSettings = props => {
|
|
|
30751
30775
|
points: newPoints
|
|
30752
30776
|
});
|
|
30753
30777
|
},
|
|
30754
|
-
style: styles$
|
|
30778
|
+
style: styles$k.icon
|
|
30755
30779
|
}));
|
|
30756
30780
|
}), /*#__PURE__*/React__namespace.createElement(Button__default["default"], {
|
|
30757
30781
|
kind: "tertiary",
|
|
@@ -30768,7 +30792,7 @@ const LockedPolygonSettings = props => {
|
|
|
30768
30792
|
onRemove: onRemove
|
|
30769
30793
|
}));
|
|
30770
30794
|
};
|
|
30771
|
-
const styles$
|
|
30795
|
+
const styles$k = aphrodite.StyleSheet.create({
|
|
30772
30796
|
row: {
|
|
30773
30797
|
display: "flex",
|
|
30774
30798
|
flexDirection: "row",
|
|
@@ -30826,7 +30850,7 @@ const LockedVectorSettings = props => {
|
|
|
30826
30850
|
expanded: props.expanded,
|
|
30827
30851
|
onToggle: props.onToggle,
|
|
30828
30852
|
header: /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30829
|
-
style: styles$
|
|
30853
|
+
style: styles$j.row
|
|
30830
30854
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, lineLabel), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
30831
30855
|
size: wonderBlocksTokens.spacing.xSmall_8
|
|
30832
30856
|
}), /*#__PURE__*/React__namespace.createElement(LineSwatch, {
|
|
@@ -30834,19 +30858,19 @@ const LockedVectorSettings = props => {
|
|
|
30834
30858
|
lineStyle: "solid"
|
|
30835
30859
|
}))
|
|
30836
30860
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30837
|
-
style: [styles$
|
|
30861
|
+
style: [styles$j.row, styles$j.spaceUnder]
|
|
30838
30862
|
}, /*#__PURE__*/React__namespace.createElement(ColorSelect, {
|
|
30839
30863
|
selectedValue: lineColor,
|
|
30840
30864
|
onChange: handleColorChange
|
|
30841
30865
|
})), isInvalid && /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelMedium, {
|
|
30842
|
-
style: styles$
|
|
30866
|
+
style: styles$j.errorText
|
|
30843
30867
|
}, lengthErrorMessage), /*#__PURE__*/React__namespace.createElement(PerseusEditorAccordion, {
|
|
30844
30868
|
expanded: true // Initial state is expanded
|
|
30845
30869
|
,
|
|
30846
|
-
containerStyle: styles$
|
|
30847
|
-
panelStyle: styles$
|
|
30870
|
+
containerStyle: styles$j.container,
|
|
30871
|
+
panelStyle: styles$j.accordionPanel,
|
|
30848
30872
|
header: /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30849
|
-
style: styles$
|
|
30873
|
+
style: styles$j.row
|
|
30850
30874
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `Tail (${tail[0]}, ${tail[1]})`))
|
|
30851
30875
|
}, /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30852
30876
|
coord: tail,
|
|
@@ -30857,10 +30881,10 @@ const LockedVectorSettings = props => {
|
|
|
30857
30881
|
})), /*#__PURE__*/React__namespace.createElement(PerseusEditorAccordion, {
|
|
30858
30882
|
expanded: true // Initial state is expanded
|
|
30859
30883
|
,
|
|
30860
|
-
containerStyle: styles$
|
|
30861
|
-
panelStyle: styles$
|
|
30884
|
+
containerStyle: styles$j.container,
|
|
30885
|
+
panelStyle: styles$j.accordionPanel,
|
|
30862
30886
|
header: /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
30863
|
-
style: styles$
|
|
30887
|
+
style: styles$j.row
|
|
30864
30888
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, `Tip (${tip[0]}, ${tip[1]})`))
|
|
30865
30889
|
}, /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
30866
30890
|
coord: tip,
|
|
@@ -30875,7 +30899,7 @@ const LockedVectorSettings = props => {
|
|
|
30875
30899
|
onRemove: onRemove
|
|
30876
30900
|
}));
|
|
30877
30901
|
};
|
|
30878
|
-
const styles$
|
|
30902
|
+
const styles$j = aphrodite.StyleSheet.create({
|
|
30879
30903
|
accordionPanel: {
|
|
30880
30904
|
paddingBottom: wonderBlocksTokens.spacing.medium_16
|
|
30881
30905
|
},
|
|
@@ -31052,7 +31076,7 @@ const LockedFiguresSection = props => {
|
|
|
31052
31076
|
onRemove: () => removeLockedFigure(index)
|
|
31053
31077
|
}));
|
|
31054
31078
|
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31055
|
-
style: styles$
|
|
31079
|
+
style: styles$i.buttonContainer
|
|
31056
31080
|
}, /*#__PURE__*/React__namespace.createElement(LockedFigureSelect, {
|
|
31057
31081
|
showM2Features: props.showM2Features,
|
|
31058
31082
|
showM2bFeatures: props.showM2bFeatures,
|
|
@@ -31063,10 +31087,10 @@ const LockedFiguresSection = props => {
|
|
|
31063
31087
|
}), showExpandButton && /*#__PURE__*/React__namespace.createElement(Button__default["default"], {
|
|
31064
31088
|
kind: "secondary",
|
|
31065
31089
|
onClick: () => toggleExpanded(allCollapsed),
|
|
31066
|
-
style: styles$
|
|
31090
|
+
style: styles$i.button
|
|
31067
31091
|
}, buttonLabel))));
|
|
31068
31092
|
};
|
|
31069
|
-
const styles$
|
|
31093
|
+
const styles$i = aphrodite.StyleSheet.create({
|
|
31070
31094
|
buttonContainer: {
|
|
31071
31095
|
flexDirection: "row",
|
|
31072
31096
|
alignItems: "center"
|
|
@@ -31102,7 +31126,7 @@ const GraphPointsCountSelector = _ref => {
|
|
|
31102
31126
|
// Never uses placeholder, always has value
|
|
31103
31127
|
,
|
|
31104
31128
|
placeholder: "",
|
|
31105
|
-
style: styles$
|
|
31129
|
+
style: styles$h.singleSelectShort
|
|
31106
31130
|
}, [...[...Array(7).keys()].map(n => /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.OptionItem, {
|
|
31107
31131
|
key: n,
|
|
31108
31132
|
value: `${n}`,
|
|
@@ -31113,7 +31137,7 @@ const GraphPointsCountSelector = _ref => {
|
|
|
31113
31137
|
label: "unlimited"
|
|
31114
31138
|
})]);
|
|
31115
31139
|
};
|
|
31116
|
-
const styles$
|
|
31140
|
+
const styles$h = aphrodite.StyleSheet.create({
|
|
31117
31141
|
singleSelectShort: {
|
|
31118
31142
|
// Non-standard spacing, but it's the smallest we can go
|
|
31119
31143
|
// without running into styling issues with the dropdown.
|
|
@@ -31126,7 +31150,7 @@ const GraphTypeSelector = props => {
|
|
|
31126
31150
|
selectedValue: props.graphType,
|
|
31127
31151
|
onChange: props.onChange,
|
|
31128
31152
|
placeholder: "Select a graph type",
|
|
31129
|
-
style: styles$
|
|
31153
|
+
style: styles$g.singleSelectShort
|
|
31130
31154
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.OptionItem, {
|
|
31131
31155
|
value: "linear",
|
|
31132
31156
|
label: "Linear function"
|
|
@@ -31159,7 +31183,7 @@ const GraphTypeSelector = props => {
|
|
|
31159
31183
|
label: "Angle"
|
|
31160
31184
|
}));
|
|
31161
31185
|
};
|
|
31162
|
-
const styles$
|
|
31186
|
+
const styles$g = aphrodite.StyleSheet.create({
|
|
31163
31187
|
singleSelectShort: {
|
|
31164
31188
|
// Non-standard spacing, but it's the smallest we can go
|
|
31165
31189
|
// without running into styling issues with the dropdown.
|
|
@@ -31588,10 +31612,10 @@ class InteractiveGraphSettings extends React__namespace.Component {
|
|
|
31588
31612
|
onChange: this.change
|
|
31589
31613
|
}))), /*#__PURE__*/React__namespace.createElement(LabeledRow, {
|
|
31590
31614
|
label: "Background image URL:",
|
|
31591
|
-
style: styles$
|
|
31615
|
+
style: styles$f.resetSpaceTop
|
|
31592
31616
|
}, /*#__PURE__*/React__namespace.createElement("input", {
|
|
31593
31617
|
type: "text",
|
|
31594
|
-
className: aphrodite.css(styles$
|
|
31618
|
+
className: aphrodite.css(styles$f.backgroundUrlInput),
|
|
31595
31619
|
ref: this.bgUrlRef,
|
|
31596
31620
|
value: this.state.backgroundImage.url || "",
|
|
31597
31621
|
onChange: e => {
|
|
@@ -31607,14 +31631,14 @@ class InteractiveGraphSettings extends React__namespace.Component {
|
|
|
31607
31631
|
onKeyPress: this.changeBackgroundUrl,
|
|
31608
31632
|
onBlur: this.changeBackgroundUrl
|
|
31609
31633
|
}), /*#__PURE__*/React__namespace.createElement(InfoTip$c, null, /*#__PURE__*/React__namespace.createElement("p", null, "Create an image in graphie, or use the \"Add image\" function to create a background."))), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31610
|
-
style: styles$
|
|
31634
|
+
style: styles$f.protractorSection
|
|
31611
31635
|
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31612
|
-
style: styles$
|
|
31636
|
+
style: styles$f.checkboxRow
|
|
31613
31637
|
}, /*#__PURE__*/React__namespace.createElement(PropCheckBox$7, {
|
|
31614
31638
|
label: "Show protractor",
|
|
31615
31639
|
showProtractor: this.props.showProtractor,
|
|
31616
31640
|
onChange: this.change,
|
|
31617
|
-
style: styles$
|
|
31641
|
+
style: styles$f.resetSpaceTop
|
|
31618
31642
|
})), this.props.showProtractor && /*#__PURE__*/React__namespace.createElement(Banner__default["default"], {
|
|
31619
31643
|
layout: "floating",
|
|
31620
31644
|
text: "The protractor is not accessible. Please consider an alternate approach.",
|
|
@@ -31622,7 +31646,7 @@ class InteractiveGraphSettings extends React__namespace.Component {
|
|
|
31622
31646
|
}))));
|
|
31623
31647
|
}
|
|
31624
31648
|
}
|
|
31625
|
-
const styles$
|
|
31649
|
+
const styles$f = aphrodite.StyleSheet.create({
|
|
31626
31650
|
resetSpaceTop: {
|
|
31627
31651
|
marginTop: 0
|
|
31628
31652
|
},
|
|
@@ -31661,14 +31685,14 @@ const SegmentCountSelector = _ref => {
|
|
|
31661
31685
|
const num = +newValue;
|
|
31662
31686
|
onChange(num);
|
|
31663
31687
|
},
|
|
31664
|
-
style: styles$
|
|
31688
|
+
style: styles$e.singleSelectShort
|
|
31665
31689
|
}, ___default["default"].range(1, 7).map(n => /*#__PURE__*/React__namespace.createElement(wonderBlocksDropdown.OptionItem, {
|
|
31666
31690
|
key: n,
|
|
31667
31691
|
value: `${n}`,
|
|
31668
31692
|
label: `${n} segment${n > 1 ? "s" : ""}`
|
|
31669
31693
|
})));
|
|
31670
31694
|
};
|
|
31671
|
-
const styles$
|
|
31695
|
+
const styles$e = aphrodite.StyleSheet.create({
|
|
31672
31696
|
singleSelectShort: {
|
|
31673
31697
|
// Non-standard spacing, but it's the smallest we can go
|
|
31674
31698
|
// without running into styling issues with the dropdown.
|
|
@@ -31676,6 +31700,58 @@ const styles$d = aphrodite.StyleSheet.create({
|
|
|
31676
31700
|
}
|
|
31677
31701
|
});
|
|
31678
31702
|
|
|
31703
|
+
const StartCoordsCircle = props => {
|
|
31704
|
+
const {
|
|
31705
|
+
startCoords,
|
|
31706
|
+
onChange
|
|
31707
|
+
} = props;
|
|
31708
|
+
return /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31709
|
+
style: styles$d.tile
|
|
31710
|
+
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31711
|
+
style: styles$d.row
|
|
31712
|
+
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, "Center:"), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
31713
|
+
size: wonderBlocksTokens.spacing.small_12
|
|
31714
|
+
}), /*#__PURE__*/React__namespace.createElement(CoordinatePairInput, {
|
|
31715
|
+
coord: startCoords.center,
|
|
31716
|
+
labels: ["x", "y"],
|
|
31717
|
+
onChange: coord => onChange({
|
|
31718
|
+
center: coord,
|
|
31719
|
+
radius: startCoords.radius
|
|
31720
|
+
})
|
|
31721
|
+
})), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
31722
|
+
size: wonderBlocksTokens.spacing.small_12
|
|
31723
|
+
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksCore.View, {
|
|
31724
|
+
style: styles$d.row
|
|
31725
|
+
}, /*#__PURE__*/React__namespace.createElement(wonderBlocksTypography.LabelLarge, null, "Radius:"), /*#__PURE__*/React__namespace.createElement(Strut, {
|
|
31726
|
+
size: wonderBlocksTokens.spacing.small_12
|
|
31727
|
+
}), /*#__PURE__*/React__namespace.createElement(wonderBlocksForm.TextField, {
|
|
31728
|
+
value: startCoords.radius.toString(),
|
|
31729
|
+
type: "number",
|
|
31730
|
+
onChange: value => {
|
|
31731
|
+
onChange({
|
|
31732
|
+
center: startCoords.center,
|
|
31733
|
+
radius: parseFloat(value)
|
|
31734
|
+
});
|
|
31735
|
+
},
|
|
31736
|
+
style: styles$d.textField
|
|
31737
|
+
})));
|
|
31738
|
+
};
|
|
31739
|
+
const styles$d = aphrodite.StyleSheet.create({
|
|
31740
|
+
tile: {
|
|
31741
|
+
backgroundColor: wonderBlocksTokens.color.fadedBlue8,
|
|
31742
|
+
marginTop: wonderBlocksTokens.spacing.xSmall_8,
|
|
31743
|
+
padding: wonderBlocksTokens.spacing.small_12,
|
|
31744
|
+
borderRadius: wonderBlocksTokens.spacing.xSmall_8
|
|
31745
|
+
},
|
|
31746
|
+
row: {
|
|
31747
|
+
flexDirection: "row",
|
|
31748
|
+
alignItems: "center"
|
|
31749
|
+
},
|
|
31750
|
+
textField: {
|
|
31751
|
+
width: wonderBlocksTokens.spacing.xxxLarge_64
|
|
31752
|
+
}
|
|
31753
|
+
});
|
|
31754
|
+
|
|
31679
31755
|
const StartCoordsLine = props => {
|
|
31680
31756
|
const {
|
|
31681
31757
|
startCoords,
|
|
@@ -31785,6 +31861,16 @@ const StartCoordsSettingsInner = props => {
|
|
|
31785
31861
|
startCoords: multiLineCoords,
|
|
31786
31862
|
onChange: onChange
|
|
31787
31863
|
});
|
|
31864
|
+
case "circle":
|
|
31865
|
+
const circleCoords = perseus.getCircleCoords(props);
|
|
31866
|
+
const radius = kmath.vector.length(kmath.vector.subtract(circleCoords.radiusPoint, circleCoords.center));
|
|
31867
|
+
return /*#__PURE__*/React__namespace.createElement(StartCoordsCircle, {
|
|
31868
|
+
startCoords: {
|
|
31869
|
+
center: circleCoords.center,
|
|
31870
|
+
radius
|
|
31871
|
+
},
|
|
31872
|
+
onChange: onChange
|
|
31873
|
+
});
|
|
31788
31874
|
default:
|
|
31789
31875
|
return null;
|
|
31790
31876
|
}
|
|
@@ -32076,7 +32162,7 @@ class InteractiveGraphEditor extends React__namespace.Component {
|
|
|
32076
32162
|
}
|
|
32077
32163
|
});
|
|
32078
32164
|
}
|
|
32079
|
-
})), this.props.graph?.type && this.props.apiOptions
|
|
32165
|
+
})), this.props.graph?.type && this.props.apiOptions?.flags?.mafs?.["start-coords-ui"] && /*#__PURE__*/React__namespace.createElement(StartCoordsSettings, _extends({}, this.props.graph, {
|
|
32080
32166
|
range: this.props.range,
|
|
32081
32167
|
step: this.props.step,
|
|
32082
32168
|
onChange: this.changeStartCoords
|